pushwork 2.0.0-a.sub.0 → 2.0.0-preview

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/dist/branches.d.ts +19 -0
  2. package/dist/branches.d.ts.map +1 -0
  3. package/dist/branches.js +111 -0
  4. package/dist/branches.js.map +1 -0
  5. package/dist/cli.d.ts +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +238 -272
  8. package/dist/cli.js.map +1 -1
  9. package/dist/config.d.ts +17 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/config.js +84 -0
  12. package/dist/config.js.map +1 -0
  13. package/dist/fs-tree.d.ts +6 -0
  14. package/dist/fs-tree.d.ts.map +1 -0
  15. package/dist/fs-tree.js +99 -0
  16. package/dist/fs-tree.js.map +1 -0
  17. package/dist/ignore.d.ts +6 -0
  18. package/dist/ignore.d.ts.map +1 -0
  19. package/dist/ignore.js +74 -0
  20. package/dist/ignore.js.map +1 -0
  21. package/dist/index.d.ts +8 -4
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +34 -4
  24. package/dist/index.js.map +1 -1
  25. package/dist/log.d.ts +3 -0
  26. package/dist/log.d.ts.map +1 -0
  27. package/dist/log.js +14 -0
  28. package/dist/log.js.map +1 -0
  29. package/dist/pushwork.d.ts +115 -0
  30. package/dist/pushwork.d.ts.map +1 -0
  31. package/dist/pushwork.js +918 -0
  32. package/dist/pushwork.js.map +1 -0
  33. package/dist/repo.d.ts +14 -0
  34. package/dist/repo.d.ts.map +1 -0
  35. package/dist/repo.js +60 -0
  36. package/dist/repo.js.map +1 -0
  37. package/dist/shapes/custom.d.ts +3 -0
  38. package/dist/shapes/custom.d.ts.map +1 -0
  39. package/dist/shapes/custom.js +57 -0
  40. package/dist/shapes/custom.js.map +1 -0
  41. package/dist/shapes/file.d.ts +20 -0
  42. package/dist/shapes/file.d.ts.map +1 -0
  43. package/dist/shapes/file.js +140 -0
  44. package/dist/shapes/file.js.map +1 -0
  45. package/dist/shapes/index.d.ts +10 -0
  46. package/dist/shapes/index.d.ts.map +1 -0
  47. package/dist/shapes/index.js +35 -0
  48. package/dist/shapes/index.js.map +1 -0
  49. package/dist/shapes/patchwork-folder.d.ts +3 -0
  50. package/dist/shapes/patchwork-folder.d.ts.map +1 -0
  51. package/dist/shapes/patchwork-folder.js +160 -0
  52. package/dist/shapes/patchwork-folder.js.map +1 -0
  53. package/dist/shapes/types.d.ts +37 -0
  54. package/dist/shapes/types.d.ts.map +1 -0
  55. package/dist/shapes/types.js +52 -0
  56. package/dist/shapes/types.js.map +1 -0
  57. package/dist/shapes/vfs.d.ts +3 -0
  58. package/dist/shapes/vfs.d.ts.map +1 -0
  59. package/dist/shapes/vfs.js +88 -0
  60. package/dist/shapes/vfs.js.map +1 -0
  61. package/dist/stash.d.ts +23 -0
  62. package/dist/stash.d.ts.map +1 -0
  63. package/dist/stash.js +118 -0
  64. package/dist/stash.js.map +1 -0
  65. package/flake.lock +128 -0
  66. package/flake.nix +66 -0
  67. package/package.json +15 -48
  68. package/patches/@automerge__automerge-repo@2.6.0-subduction.15.patch +26 -0
  69. package/pnpm-workspace.yaml +5 -0
  70. package/src/branches.ts +93 -0
  71. package/src/cli.ts +258 -408
  72. package/src/config.ts +64 -0
  73. package/src/fs-tree.ts +70 -0
  74. package/src/ignore.ts +33 -0
  75. package/src/index.ts +38 -4
  76. package/src/log.ts +8 -0
  77. package/src/pushwork.ts +1055 -0
  78. package/src/repo.ts +76 -0
  79. package/src/shapes/custom.ts +29 -0
  80. package/src/shapes/file.ts +115 -0
  81. package/src/shapes/index.ts +19 -0
  82. package/src/shapes/patchwork-folder.ts +156 -0
  83. package/src/shapes/types.ts +79 -0
  84. package/src/shapes/vfs.ts +93 -0
  85. package/src/stash.ts +106 -0
  86. package/test/integration/branches.test.ts +389 -0
  87. package/test/integration/pushwork.test.ts +547 -0
  88. package/test/setup.ts +29 -0
  89. package/test/unit/doc-shape.test.ts +612 -0
  90. package/tsconfig.json +2 -3
  91. package/vitest.config.ts +14 -0
  92. package/ARCHITECTURE-ACCORDING-TO-CLAUDE.md +0 -248
  93. package/CLAUDE.md +0 -141
  94. package/README.md +0 -221
  95. package/babel.config.js +0 -5
  96. package/dist/cli/commands.d.ts +0 -71
  97. package/dist/cli/commands.d.ts.map +0 -1
  98. package/dist/cli/commands.js +0 -794
  99. package/dist/cli/commands.js.map +0 -1
  100. package/dist/cli/index.d.ts +0 -2
  101. package/dist/cli/index.d.ts.map +0 -1
  102. package/dist/cli/index.js +0 -19
  103. package/dist/cli/index.js.map +0 -1
  104. package/dist/commands.d.ts +0 -61
  105. package/dist/commands.d.ts.map +0 -1
  106. package/dist/commands.js +0 -861
  107. package/dist/commands.js.map +0 -1
  108. package/dist/config/index.d.ts +0 -71
  109. package/dist/config/index.d.ts.map +0 -1
  110. package/dist/config/index.js +0 -314
  111. package/dist/config/index.js.map +0 -1
  112. package/dist/core/change-detection.d.ts +0 -80
  113. package/dist/core/change-detection.d.ts.map +0 -1
  114. package/dist/core/change-detection.js +0 -523
  115. package/dist/core/change-detection.js.map +0 -1
  116. package/dist/core/config.d.ts +0 -81
  117. package/dist/core/config.d.ts.map +0 -1
  118. package/dist/core/config.js +0 -258
  119. package/dist/core/config.js.map +0 -1
  120. package/dist/core/index.d.ts +0 -6
  121. package/dist/core/index.d.ts.map +0 -1
  122. package/dist/core/index.js +0 -6
  123. package/dist/core/index.js.map +0 -1
  124. package/dist/core/move-detection.d.ts +0 -34
  125. package/dist/core/move-detection.d.ts.map +0 -1
  126. package/dist/core/move-detection.js +0 -121
  127. package/dist/core/move-detection.js.map +0 -1
  128. package/dist/core/snapshot.d.ts +0 -105
  129. package/dist/core/snapshot.d.ts.map +0 -1
  130. package/dist/core/snapshot.js +0 -217
  131. package/dist/core/snapshot.js.map +0 -1
  132. package/dist/core/sync-engine.d.ts +0 -151
  133. package/dist/core/sync-engine.d.ts.map +0 -1
  134. package/dist/core/sync-engine.js +0 -1346
  135. package/dist/core/sync-engine.js.map +0 -1
  136. package/dist/types/config.d.ts +0 -99
  137. package/dist/types/config.d.ts.map +0 -1
  138. package/dist/types/config.js +0 -5
  139. package/dist/types/config.js.map +0 -1
  140. package/dist/types/documents.d.ts +0 -88
  141. package/dist/types/documents.d.ts.map +0 -1
  142. package/dist/types/documents.js +0 -20
  143. package/dist/types/documents.js.map +0 -1
  144. package/dist/types/index.d.ts +0 -4
  145. package/dist/types/index.d.ts.map +0 -1
  146. package/dist/types/index.js +0 -4
  147. package/dist/types/index.js.map +0 -1
  148. package/dist/types/snapshot.d.ts +0 -64
  149. package/dist/types/snapshot.d.ts.map +0 -1
  150. package/dist/types/snapshot.js +0 -2
  151. package/dist/types/snapshot.js.map +0 -1
  152. package/dist/utils/content-similarity.d.ts +0 -53
  153. package/dist/utils/content-similarity.d.ts.map +0 -1
  154. package/dist/utils/content-similarity.js +0 -155
  155. package/dist/utils/content-similarity.js.map +0 -1
  156. package/dist/utils/content.d.ts +0 -10
  157. package/dist/utils/content.d.ts.map +0 -1
  158. package/dist/utils/content.js +0 -31
  159. package/dist/utils/content.js.map +0 -1
  160. package/dist/utils/directory.d.ts +0 -24
  161. package/dist/utils/directory.d.ts.map +0 -1
  162. package/dist/utils/directory.js +0 -52
  163. package/dist/utils/directory.js.map +0 -1
  164. package/dist/utils/fs.d.ts +0 -74
  165. package/dist/utils/fs.d.ts.map +0 -1
  166. package/dist/utils/fs.js +0 -248
  167. package/dist/utils/fs.js.map +0 -1
  168. package/dist/utils/index.d.ts +0 -5
  169. package/dist/utils/index.d.ts.map +0 -1
  170. package/dist/utils/index.js +0 -5
  171. package/dist/utils/index.js.map +0 -1
  172. package/dist/utils/mime-types.d.ts +0 -13
  173. package/dist/utils/mime-types.d.ts.map +0 -1
  174. package/dist/utils/mime-types.js +0 -209
  175. package/dist/utils/mime-types.js.map +0 -1
  176. package/dist/utils/network-sync.d.ts +0 -36
  177. package/dist/utils/network-sync.d.ts.map +0 -1
  178. package/dist/utils/network-sync.js +0 -250
  179. package/dist/utils/network-sync.js.map +0 -1
  180. package/dist/utils/node-polyfills.d.ts +0 -9
  181. package/dist/utils/node-polyfills.d.ts.map +0 -1
  182. package/dist/utils/node-polyfills.js +0 -9
  183. package/dist/utils/node-polyfills.js.map +0 -1
  184. package/dist/utils/output.d.ts +0 -129
  185. package/dist/utils/output.d.ts.map +0 -1
  186. package/dist/utils/output.js +0 -368
  187. package/dist/utils/output.js.map +0 -1
  188. package/dist/utils/repo-factory.d.ts +0 -13
  189. package/dist/utils/repo-factory.d.ts.map +0 -1
  190. package/dist/utils/repo-factory.js +0 -46
  191. package/dist/utils/repo-factory.js.map +0 -1
  192. package/dist/utils/string-similarity.d.ts +0 -14
  193. package/dist/utils/string-similarity.d.ts.map +0 -1
  194. package/dist/utils/string-similarity.js +0 -39
  195. package/dist/utils/string-similarity.js.map +0 -1
  196. package/dist/utils/text-diff.d.ts +0 -37
  197. package/dist/utils/text-diff.d.ts.map +0 -1
  198. package/dist/utils/text-diff.js +0 -93
  199. package/dist/utils/text-diff.js.map +0 -1
  200. package/dist/utils/trace.d.ts +0 -19
  201. package/dist/utils/trace.d.ts.map +0 -1
  202. package/dist/utils/trace.js +0 -63
  203. package/dist/utils/trace.js.map +0 -1
  204. package/src/commands.ts +0 -1134
  205. package/src/core/change-detection.ts +0 -712
  206. package/src/core/config.ts +0 -313
  207. package/src/core/index.ts +0 -5
  208. package/src/core/move-detection.ts +0 -169
  209. package/src/core/snapshot.ts +0 -275
  210. package/src/core/sync-engine.ts +0 -1758
  211. package/src/types/config.ts +0 -111
  212. package/src/types/documents.ts +0 -91
  213. package/src/types/index.ts +0 -3
  214. package/src/types/snapshot.ts +0 -67
  215. package/src/utils/content.ts +0 -34
  216. package/src/utils/directory.ts +0 -73
  217. package/src/utils/fs.ts +0 -297
  218. package/src/utils/index.ts +0 -4
  219. package/src/utils/mime-types.ts +0 -244
  220. package/src/utils/network-sync.ts +0 -319
  221. package/src/utils/node-polyfills.ts +0 -8
  222. package/src/utils/output.ts +0 -450
  223. package/src/utils/repo-factory.ts +0 -73
  224. package/src/utils/string-similarity.ts +0 -54
  225. package/src/utils/text-diff.ts +0 -101
  226. package/src/utils/trace.ts +0 -70
  227. package/test/integration/README.md +0 -328
  228. package/test/integration/clone-test.sh +0 -310
  229. package/test/integration/conflict-resolution-test.sh +0 -309
  230. package/test/integration/debug-both-nested.sh +0 -74
  231. package/test/integration/debug-concurrent-nested.sh +0 -87
  232. package/test/integration/debug-nested.sh +0 -73
  233. package/test/integration/deletion-behavior-test.sh +0 -487
  234. package/test/integration/deletion-sync-test-simple.sh +0 -193
  235. package/test/integration/deletion-sync-test.sh +0 -297
  236. package/test/integration/exclude-patterns.test.ts +0 -144
  237. package/test/integration/full-integration-test.sh +0 -363
  238. package/test/integration/fuzzer.test.ts +0 -818
  239. package/test/integration/in-memory-sync.test.ts +0 -830
  240. package/test/integration/init-sync.test.ts +0 -89
  241. package/test/integration/manual-sync-test.sh +0 -84
  242. package/test/integration/sync-deletion.test.ts +0 -280
  243. package/test/integration/sync-flow.test.ts +0 -291
  244. package/test/jest.setup.ts +0 -34
  245. package/test/run-tests.sh +0 -225
  246. package/test/unit/deletion-behavior.test.ts +0 -249
  247. package/test/unit/enhanced-mime-detection.test.ts +0 -244
  248. package/test/unit/snapshot.test.ts +0 -404
  249. package/test/unit/sync-convergence.test.ts +0 -298
  250. package/test/unit/sync-timing.test.ts +0 -134
  251. package/test/unit/utils.test.ts +0 -366
package/dist/cli.js CHANGED
@@ -1,310 +1,276 @@
1
1
  #!/usr/bin/env node
2
- import { Command, Option } from "@commander-js/extra-typings";
3
- import chalk from "chalk";
4
- import { init, clone, sync, root, diff, status, log, checkout, commit, url, rm, ls, config, watch, read, } from "./commands.js";
5
- import { createRequire } from "module";
6
- const require = createRequire(import.meta.url);
7
- const version = require("../package.json").version;
8
- const program = new Command()
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ require("./log.js"); // sets up DEBUG=true → DEBUG=* before anything else
38
+ const extra_typings_1 = require("@commander-js/extra-typings");
39
+ const path = __importStar(require("path"));
40
+ const pushwork_js_1 = require("./pushwork.js");
41
+ const log_js_1 = require("./log.js");
42
+ const dlog = (0, log_js_1.log)("cli");
43
+ const collect = (value, prev) => (prev ?? []).concat(value);
44
+ const program = new extra_typings_1.Command()
9
45
  .name("pushwork")
10
- .description("Bidirectional directory synchronization using Automerge CRDTs")
11
- .version(version, "-V, --version", "output the version number");
12
- // Init command
46
+ .description("Bidirectional directory synchronization using Automerge CRDTs");
13
47
  program
14
48
  .command("init")
15
- .summary("Initialize sync in a directory")
16
- .argument("[path]", "Directory path to initialize (default: current directory)", ".")
17
- .option("--sync-server <url>", "Custom sync server URL")
18
- .action(async (path, opts) => {
19
- await init(path, { syncServer: opts.syncServer });
20
- });
21
- // Track command (set root directory URL without full initialization)
22
- const trackAction = async (url, path, opts) => {
23
- await root(url, path, { force: opts.force });
24
- };
25
- program
26
- .command("track")
27
- .summary("Set root directory URL without full initialization")
28
- .argument("<url>", "AutomergeUrl of root directory (format: automerge:XXXXX)")
29
- .argument("[path]", "Directory path (default: current directory)", ".")
30
- .option("-f, --force", "Overwrite existing pushwork setup", false)
31
- .action(async (url, path, opts) => {
32
- await trackAction(url, path, opts);
33
- });
34
- // Hidden alias for backwards compatibility
35
- program
36
- .command("root", { hidden: true })
37
- .argument("<url>")
38
- .argument("[path]", "", ".")
39
- .option("-f, --force", "", false)
40
- .action(async (url, path, opts) => {
41
- await trackAction(url, path, opts);
49
+ .description("Initialize pushwork in a directory")
50
+ .argument("[dir]", "Directory to initialize", ".")
51
+ .option("--sub", "Use subduction backend")
52
+ .option("--shape <shape>", "Document shape: vfs, patchwork-folder, or path to a custom shape module", "vfs")
53
+ .option("--artifact-dir <dir>", "Directory whose contents are stored as ImmutableString and pinned with heads in the root doc. Repeatable.", collect, undefined)
54
+ .option("--no-branches", "Skip wrapping the root doc in a branches doc")
55
+ .action(async (dir, opts) => {
56
+ dlog("init dir=%s opts=%o", dir, opts);
57
+ const u = await (0, pushwork_js_1.init)({
58
+ dir: path.resolve(dir),
59
+ backend: opts.sub ? "subduction" : "legacy",
60
+ shape: opts.shape,
61
+ artifactDirectories: opts.artifactDir,
62
+ branches: opts.branches,
63
+ });
64
+ process.stderr.write(`initialized ${u}\n`);
42
65
  });
43
- // Clone command
44
66
  program
45
67
  .command("clone")
46
- .summary("Clone an existing synced directory")
47
- .argument("<url>", "AutomergeUrl of root directory to clone (format: automerge:XXXXX)")
48
- .argument("<path>", "Target directory path")
49
- .option("-f, --force", "Overwrite existing directory", false)
50
- .option("--sync-server <url>", "Custom sync server URL")
51
- .option("-v, --verbose", "Verbose output", false)
52
- .action(async (url, path, opts) => {
53
- await clone(url, path, {
54
- force: opts.force,
55
- verbose: opts.verbose,
56
- syncServer: opts.syncServer,
68
+ .description("Clone an automerge URL into a directory")
69
+ .argument("<url>", "automerge: URL")
70
+ .argument("[dir]", "Target directory", ".")
71
+ .option("--sub", "Use subduction backend")
72
+ .option("--shape <shape>", "Document shape: vfs, patchwork-folder, or path to a custom shape module", "vfs")
73
+ .option("--artifact-dir <dir>", "Directory whose contents are stored as ImmutableString and pinned with heads in the root doc. Repeatable.", collect, undefined)
74
+ .option("--branch <name>", "Branch to track when cloning a branches doc")
75
+ .action(async (u, dir, opts) => {
76
+ dlog("clone url=%s dir=%s opts=%o", u, dir, opts);
77
+ await (0, pushwork_js_1.clone)({
78
+ url: u,
79
+ dir: path.resolve(dir),
80
+ backend: opts.sub ? "subduction" : "legacy",
81
+ shape: opts.shape,
82
+ artifactDirectories: opts.artifactDir,
83
+ branch: opts.branch,
57
84
  });
85
+ process.stderr.write(`cloned into ${path.resolve(dir)}\n`);
58
86
  });
59
- // Commit command
60
87
  program
61
- .command("commit")
62
- .summary("Save local changes to Automerge documents")
63
- .argument("[path]", "Directory path to commit (default: current directory)", ".")
64
- .action(async (path, _opts) => {
65
- await commit(path);
88
+ .command("url")
89
+ .description("Print the automerge URL of this pushwork repo")
90
+ .action(async () => {
91
+ dlog("url cwd=%s", process.cwd());
92
+ const u = await (0, pushwork_js_1.url)(process.cwd());
93
+ process.stdout.write(u + "\n");
66
94
  });
67
- // Sync command
68
95
  program
69
96
  .command("sync")
70
- .summary("Run full bidirectional synchronization")
71
- .argument("[path]", "Directory path to sync (default: current directory)", ".")
72
- .option("--dry-run", "Show what would be done without applying changes", false)
73
- .option("--gentle", "Use config files and only sync changed files (instead of default full resync)", false)
74
- .option("--nuclear", "Recreate all Automerge documents from scratch", false)
75
- .addOption(new Option("-f, --force", "Accepted for backwards compatibility").default(false).hideHelp())
76
- .option("-v, --verbose", "Verbose output", false)
77
- .action(async (path, opts) => {
78
- await sync(path, {
79
- dryRun: opts.dryRun,
80
- force: opts.force,
81
- gentle: opts.gentle,
82
- nuclear: opts.nuclear,
83
- verbose: opts.verbose,
84
- });
97
+ .description("Sync local changes with peers")
98
+ .action(async () => {
99
+ dlog("sync cwd=%s", process.cwd());
100
+ await (0, pushwork_js_1.sync)(process.cwd());
101
+ process.stderr.write("synced\n");
85
102
  });
86
- // Diff command
87
103
  program
88
- .command("diff")
89
- .summary("Show changes in working directory")
90
- .argument("[path]", "Limit diff to specific path (default: current directory)", ".")
91
- .option("--name-only", "Show only changed file names", false)
92
- .action(async (path, opts) => {
93
- await diff(path, {
94
- nameOnly: opts.nameOnly,
95
- });
104
+ .command("save")
105
+ .alias("commit")
106
+ .description("Commit local changes to the current branch without contacting the sync server")
107
+ .action(async () => {
108
+ dlog("save cwd=%s", process.cwd());
109
+ await (0, pushwork_js_1.save)(process.cwd());
110
+ process.stderr.write("saved\n");
96
111
  });
97
- // Status command
98
112
  program
99
113
  .command("status")
100
- .summary("Show sync status summary")
101
- .argument("[path]", "Directory path (default: current directory)", ".")
102
- .option("-v, --verbose", "Show detailed status including document info and all tracked files", false)
103
- .action(async (path, opts) => {
104
- await status(path, {
105
- verbose: opts.verbose,
106
- });
114
+ .description("Show current branch and changes against it")
115
+ .action(async () => {
116
+ const { branch, diff: d } = await (0, pushwork_js_1.status)(process.cwd());
117
+ const lines = [];
118
+ if (branch)
119
+ lines.push(`On branch ${branch}`);
120
+ else
121
+ lines.push("(no branches)");
122
+ const total = d.added.length + d.modified.length + d.deleted.length;
123
+ if (total === 0) {
124
+ lines.push("nothing to save, working tree clean");
125
+ }
126
+ else {
127
+ lines.push("Changes:");
128
+ for (const p of d.modified)
129
+ lines.push(` modified: ${p}`);
130
+ for (const p of d.added)
131
+ lines.push(` added: ${p}`);
132
+ for (const p of d.deleted)
133
+ lines.push(` deleted: ${p}`);
134
+ }
135
+ process.stdout.write(lines.join("\n") + "\n");
107
136
  });
108
- // Log command
109
137
  program
110
- .command("log")
111
- .summary("Show sync history (experimental)")
112
- .argument("[path]", "Show history for specific file or directory (default: current directory)", ".")
113
- .option("--oneline", "Compact one-line per sync format", false)
114
- .option("--since <date>", "Show syncs since date")
115
- .option("--limit <n>", "Limit number of syncs shown", "10")
116
- .action(async (path, opts) => {
117
- await log(path, {
118
- oneline: opts.oneline,
119
- since: opts.since,
120
- limit: parseInt(opts.limit),
121
- });
138
+ .command("diff")
139
+ .description("Show textual diffs of local changes against the current branch")
140
+ .argument("[path]", "Limit to a specific path")
141
+ .action(async (limitPath) => {
142
+ const entries = await (0, pushwork_js_1.diff)(process.cwd(), limitPath);
143
+ if (entries.length === 0) {
144
+ process.stdout.write("(no changes)\n");
145
+ return;
146
+ }
147
+ const { createPatch } = await Promise.resolve().then(() => __importStar(require("diff")));
148
+ const td = new TextDecoder("utf-8", { fatal: false });
149
+ for (const e of entries) {
150
+ const before = e.before ? td.decode(e.before) : "";
151
+ const after = e.after ? td.decode(e.after) : "";
152
+ const header = e.kind === "added" ? `+++ ${e.path}` :
153
+ e.kind === "deleted" ? `--- ${e.path}` :
154
+ `*** ${e.path}`;
155
+ process.stdout.write(header + "\n");
156
+ process.stdout.write(createPatch(e.path, before, after, "", "") + "\n");
157
+ }
122
158
  });
123
- // Checkout command
124
159
  program
125
- .command("checkout")
126
- .summary("Restore to previous sync (experimental)")
127
- .argument("<sync-id>", "Sync ID to restore to")
128
- .argument("[path]", "Specific path to restore (default: current directory)", ".")
129
- .option("-f, --force", "Force checkout even if there are uncommitted changes", false)
130
- .action(async (syncId, path, opts) => {
131
- await checkout(syncId, path, {
132
- force: opts.force,
133
- });
160
+ .command("branch")
161
+ .description("With no arg: print the current branch. With <name>: create a new branch from the current one (offline).")
162
+ .argument("[name]", "Name of the new branch")
163
+ .action(async (name) => {
164
+ if (!name) {
165
+ const cur = await (0, pushwork_js_1.currentBranch)(process.cwd());
166
+ process.stdout.write((cur ?? "(none)") + "\n");
167
+ return;
168
+ }
169
+ const newUrl = await (0, pushwork_js_1.createBranch)(process.cwd(), name);
170
+ process.stderr.write(`created branch ${name} → ${newUrl}\n`);
134
171
  });
135
- // URL command
136
172
  program
137
- .command("url")
138
- .summary("Show the Automerge root URL")
139
- .argument("[path]", "Directory path (default: current directory)", ".")
140
- .action(async (path) => {
141
- await url(path);
173
+ .command("switch")
174
+ .description("Switch to a branch (offline). With no name: list branches.")
175
+ .argument("[name]", "Name of the branch to switch to")
176
+ .action(async (name) => {
177
+ if (!name) {
178
+ const { current, names } = await (0, pushwork_js_1.listBranches)(process.cwd());
179
+ for (const n of names) {
180
+ process.stdout.write(`${n === current ? "* " : " "}${n}\n`);
181
+ }
182
+ return;
183
+ }
184
+ await (0, pushwork_js_1.switchBranch)(process.cwd(), name);
185
+ process.stderr.write(`switched to ${name}\n`);
142
186
  });
143
- // Remove command
144
187
  program
145
- .command("rm")
146
- .summary("Remove local pushwork data")
147
- .argument("[path]", "Directory path (default: current directory)", ".")
148
- .action(async (path) => {
149
- await rm(path);
188
+ .command("merge")
189
+ .description("Apply changes from <source> branch onto the current branch (offline)")
190
+ .argument("<source>", "Branch to merge into the current one")
191
+ .option("--dry", "Preview the merge without applying")
192
+ .action(async (source, opts) => {
193
+ if (opts.dry) {
194
+ const preview = await (0, pushwork_js_1.previewMerge)(process.cwd(), source);
195
+ const lines = [];
196
+ lines.push(`Merging ${preview.source} into ${preview.target} (preview)`);
197
+ if (preview.entries.length === 0) {
198
+ lines.push("(no changes)");
199
+ process.stdout.write(lines.join("\n") + "\n");
200
+ return;
201
+ }
202
+ const { createPatch } = await Promise.resolve().then(() => __importStar(require("diff")));
203
+ const td = new TextDecoder("utf-8", { fatal: false });
204
+ for (const e of preview.entries) {
205
+ const before = e.before ? td.decode(e.before) : "";
206
+ const after = td.decode(e.after);
207
+ const tag = e.kind === "added" ? "added" : "merged";
208
+ lines.push(` ${tag}: ${e.path}`);
209
+ lines.push(createPatch(e.path, before, after, "", ""));
210
+ }
211
+ process.stdout.write(lines.join("\n") + "\n");
212
+ return;
213
+ }
214
+ const report = await (0, pushwork_js_1.mergeBranch)(process.cwd(), source);
215
+ const lines = [];
216
+ lines.push(`Merging ${report.source} into ${report.target}`);
217
+ if (report.merged.length === 0 && report.added.length === 0) {
218
+ lines.push("(no changes)");
219
+ }
220
+ else {
221
+ for (const p of report.merged)
222
+ lines.push(` merged: ${p}`);
223
+ for (const p of report.added)
224
+ lines.push(` added: ${p}`);
225
+ }
226
+ process.stdout.write(lines.join("\n") + "\n");
150
227
  });
151
- // List command
152
228
  program
153
- .command("ls")
154
- .summary("List tracked files")
155
- .argument("[path]", "Directory path (default: current directory)", ".")
156
- .option("-v, --verbose", "Show with Automerge URLs", false)
157
- .action(async (path, opts) => {
158
- await ls(path, {
159
- verbose: opts.verbose,
160
- });
229
+ .command("cut")
230
+ .description("Stash working-tree changes against the current branch and reset the tree to clean (offline)")
231
+ .argument("[name]", "Optional name for the stash entry")
232
+ .action(async (name) => {
233
+ const result = await (0, pushwork_js_1.cutWorkdir)(process.cwd(), { name });
234
+ process.stderr.write(`cut #${result.id}: ${result.entries} entr${result.entries === 1 ? "y" : "ies"}\n`);
161
235
  });
162
- // Config command
163
236
  program
164
- .command("config")
165
- .summary("View or edit configuration")
166
- .argument("[path]", "Directory path (default: current directory)", ".")
167
- .option("--list", "Show full configuration", false)
168
- .option("--get <key>", "Get specific config value (dot notation, e.g., sync.move_detection_threshold)")
169
- .action(async (path, opts) => {
170
- await config(path, {
171
- list: opts.list,
172
- get: opts.get,
173
- });
237
+ .command("paste")
238
+ .description("Re-apply a stashed set of changes; default is the most recent (offline)")
239
+ .argument("[id-or-name]", "Stash id or name")
240
+ .action(async (selector) => {
241
+ const result = await (0, pushwork_js_1.pasteStash)(process.cwd(), selector);
242
+ process.stderr.write(`pasted #${result.id}${result.name ? ` (${result.name})` : ""}: ${result.entries} entr${result.entries === 1 ? "y" : "ies"}\n`);
174
243
  });
175
- // Watch command
176
244
  program
177
- .command("watch")
178
- .summary("Watch directory for changes, build, and sync")
179
- .argument("[path]", "Directory path to sync (default: current directory)", ".")
180
- .option("--script <command>", "Build script to run before syncing", "pnpm build")
181
- .option("--dir <dir>", "Directory to watch for changes (relative to working directory)", "src")
182
- .option("-v, --verbose", "Show build script output", false)
183
- .action(async (path, opts) => {
184
- await watch(path, {
185
- script: opts.script,
186
- watchDir: opts.dir,
187
- verbose: opts.verbose,
188
- });
245
+ .command("cuts")
246
+ .description("List stashed change sets (newest first)")
247
+ .action(async () => {
248
+ const stashes = await (0, pushwork_js_1.showStashes)(process.cwd());
249
+ if (stashes.length === 0) {
250
+ process.stdout.write("(no stashes)\n");
251
+ return;
252
+ }
253
+ for (const s of stashes) {
254
+ const ts = new Date(s.createdAt).toISOString();
255
+ const label = s.name ? `"${s.name}"` : "";
256
+ const branch = s.branch ? ` on ${s.branch}` : "";
257
+ process.stdout.write(`#${s.id}${label ? " " + label : ""}${branch} ${s.entries.length} entr${s.entries.length === 1 ? "y" : "ies"} ${ts}\n`);
258
+ }
189
259
  });
190
- // Read command
191
260
  program
192
- .command("read")
193
- .summary("Read a file document by its Automerge URL")
194
- .argument("<url>", "AutomergeUrl of file document (format: automerge:XXXXX)")
195
- .option("-r, --remote", "Read from sync server instead of local storage", false)
196
- .action(async (url, opts) => {
197
- await read(url, {
198
- remote: opts.remote,
199
- });
200
- });
201
- // Completion command (hidden from help)
202
- program.command("completion", { hidden: true }).action(() => {
203
- // Generate completion dynamically from registered commands
204
- const commands = program.commands
205
- .filter((cmd) => cmd.name() !== "completion") // Exclude self
206
- .map((cmd) => {
207
- const name = cmd.name();
208
- const desc = (cmd.summary() || cmd.description() || "").replace(/'/g, "\\'");
209
- return `'${name}:${desc}'`;
210
- })
211
- .join(" ");
212
- // Generate option completions for each command
213
- const commandCases = program.commands
214
- .filter((cmd) => cmd.name() !== "completion")
215
- .map((cmd) => {
216
- const options = cmd.options
217
- .filter((opt) => opt.flags !== "-h, --help") // Exclude help
218
- .map((opt) => {
219
- // Parse flags like "-v, --verbose" or "--dry-run"
220
- const flags = opt.flags.split(",").map((f) => f.trim());
221
- const desc = (opt.description || "")
222
- .replace(/'/g, "\\'")
223
- .replace(/\n/g, " ");
224
- // For options with arguments like "--sync-server <url>"
225
- // Extract just the flag part
226
- const cleanFlags = flags.map((f) => f.split(/\s+/)[0]);
227
- if (cleanFlags.length > 1) {
228
- // Multiple flags (short and long): '(-v --verbose)'{-v,--verbose}'[description]'
229
- const short = cleanFlags[0];
230
- const long = cleanFlags[1];
231
- return `'(${short} ${long})'{${short},${long}}'[${desc}]'`;
232
- }
233
- else {
234
- // Single flag: '--flag[description]'
235
- return `'${cleanFlags[0]}[${desc}]'`;
236
- }
237
- })
238
- .join(" \\\n ");
239
- return options
240
- ? ` ${cmd.name()})
241
- _arguments \\
242
- ${options}
243
- ;;`
244
- : "";
245
- })
246
- .filter(Boolean)
247
- .join("\n");
248
- const completionScript = `
249
- # pushwork completion for zsh
250
- _pushwork() {
251
- local -a commands
252
- commands=(${commands})
253
-
254
- _arguments -C \\
255
- '1: :->command' \\
256
- '*::arg:->args'
257
-
258
- case $state in
259
- command)
260
- _describe 'command' commands
261
- ;;
262
- args)
263
- case $words[1] in
264
- ${commandCases}
265
- esac
266
- ;;
267
- esac
268
- }
269
-
270
- compdef _pushwork pushwork
271
- `.trim();
272
- console.log(completionScript);
273
- });
274
- process.on("unhandledRejection", (error) => {
275
- console.log(chalk.bgRed.white(" ERROR "));
276
- if (error instanceof Error && error.stack) {
277
- console.log(chalk.red(error.stack));
261
+ .command("branches")
262
+ .description("List branches")
263
+ .action(async () => {
264
+ const { current, names } = await (0, pushwork_js_1.listBranches)(process.cwd());
265
+ for (const n of names) {
266
+ process.stdout.write(`${n === current ? "* " : " "}${n}\n`);
278
267
  }
279
- else {
280
- console.error(chalk.red(error));
281
- }
282
- process.exit(1);
283
268
  });
284
- // Configure help colors using Commander v13's built-in color support
285
269
  program
286
- .configureHelp({
287
- styleTitle: (str) => chalk.bold(str),
288
- styleCommandText: (str) => chalk.white(str),
289
- styleCommandDescription: (str) => chalk.dim(str),
290
- styleOptionText: (str) => chalk.green(str),
291
- styleArgumentText: (str) => chalk.cyan(str),
292
- subcommandTerm: (cmd) => {
293
- const opts = cmd.options
294
- .filter((opt) => opt.flags !== "-h, --help")
295
- .map((opt) => opt.short || opt.long)
296
- .join(", ");
297
- const name = chalk.white(cmd.name());
298
- const args = cmd.registeredArguments
299
- .map((arg) => arg.required
300
- ? chalk.cyan(`<${arg.name()}>`)
301
- : chalk.dim(`[${arg.name()}]`))
302
- .join(" ");
303
- return [name, args, opts && chalk.dim(`[${opts}]`)]
304
- .filter(Boolean)
305
- .join(" ");
306
- },
307
- })
308
- .addHelpText("after", chalk.dim('\nEnable tab completion by adding this to your ~/.zshrc:\neval "$(pushwork completion)"'));
309
- program.parseAsync();
270
+ .parseAsync(process.argv)
271
+ .then(() => process.exit(0))
272
+ .catch((err) => {
273
+ process.stderr.write(`pushwork: ${err instanceof Error ? err.message : String(err)}\n`);
274
+ process.exit(1);
275
+ });
310
276
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oBAAkB,CAAC,oDAAoD;AACvE,+DAAsD;AACtD,2CAA6B;AAC7B,+CAiBuB;AACvB,qCAA+B;AAE/B,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,KAAK,CAAC,CAAC;AAExB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,IAA0B,EAAE,EAAE,CAC7D,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE5B,MAAM,OAAO,GAAG,IAAI,uBAAO,EAAE;KAC3B,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,+DAA+D,CAAC,CAAC;AAE/E,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,OAAO,EAAE,yBAAyB,EAAE,GAAG,CAAC;KACjD,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC;KACzC,MAAM,CACN,iBAAiB,EACjB,yEAAyE,EACzE,KAAK,CACL;KACA,MAAM,CACN,sBAAsB,EACtB,2GAA2G,EAC3G,OAAO,EACP,SAAiC,CACjC;KACA,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;KACvE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC3B,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,MAAM,IAAA,kBAAI,EAAC;QACpB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QACtB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;QAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,mBAAmB,EAAE,IAAI,CAAC,WAAW;QACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACvB,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yCAAyC,CAAC;KACtD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC;KAC1C,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC;KACzC,MAAM,CACN,iBAAiB,EACjB,yEAAyE,EACzE,KAAK,CACL;KACA,MAAM,CACN,sBAAsB,EACtB,2GAA2G,EAC3G,OAAO,EACP,SAAiC,CACjC;KACA,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC9B,IAAI,CAAC,6BAA6B,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,IAAA,mBAAK,EAAC;QACX,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QACtB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;QAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,mBAAmB,EAAE,IAAI,CAAC,WAAW;QACrC,MAAM,EAAE,IAAI,CAAC,MAAM;KACnB,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,KAAK,IAAI,EAAE;IAClB,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,IAAA,iBAAG,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,KAAK,IAAI,EAAE;IAClB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,MAAM,IAAA,kBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,QAAQ,CAAC;KACf,WAAW,CAAC,+EAA+E,CAAC;KAC5F,MAAM,CAAC,KAAK,IAAI,EAAE;IAClB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,MAAM,IAAA,kBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,KAAK,IAAI,EAAE;IAClB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,IAAA,oBAAM,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;;QACzC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpE,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gEAAgE,CAAC;KAC7E,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;IAC3B,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvC,OAAO;IACR,CAAC;IACD,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GACX,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;AACF,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yGAAyG,CAAC;KACtH,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACtB,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,MAAM,IAAA,2BAAa,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/C,OAAO;IACR,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAY,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,MAAM,MAAM,IAAI,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4DAA4D,CAAC;KACzE,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACtB,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,0BAAY,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO;IACR,CAAC;IACD,MAAM,IAAA,0BAAY,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sEAAsE,CAAC;KACnF,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC;KAC5D,MAAM,CAAC,OAAO,EAAE,oCAAoC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAC9B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,IAAA,0BAAY,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,YAAY,CAAC,CAAC;QACzE,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9C,OAAO;QACR,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9C,OAAO;IACR,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACP,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,6FAA6F,CAAC;KAC1G,QAAQ,CAAC,QAAQ,EAAE,mCAAmC,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACtB,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAU,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,QAAQ,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC1G,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yEAAyE,CAAC;KACtF,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAU,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,WAAW,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,QAAQ,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAC9H,CAAC;AACH,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,KAAK,IAAI,EAAE;IAClB,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAW,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvC,OAAO;IACR,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,CACxH,CAAC;IACH,CAAC;AACF,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,KAAK,IAAI,EAAE;IAClB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,0BAAY,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;AACF,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;KACxB,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC3B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACd,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,aAAa,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACjE,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { AutomergeUrl } from "@automerge/automerge-repo";
2
+ export type Backend = "legacy" | "subduction";
3
+ export declare const CONFIG_VERSION = 3;
4
+ export interface PushworkConfig {
5
+ version: typeof CONFIG_VERSION;
6
+ rootUrl: AutomergeUrl;
7
+ backend: Backend;
8
+ shape: string;
9
+ artifactDirectories: string[];
10
+ branches: boolean;
11
+ }
12
+ export declare const pushworkDir: (root: string) => string;
13
+ export declare const storageDir: (root: string) => string;
14
+ export declare function readConfig(root: string): Promise<PushworkConfig>;
15
+ export declare function writeConfig(root: string, config: PushworkConfig): Promise<void>;
16
+ export declare function configExists(root: string): Promise<boolean>;
17
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE9C,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,OAAO,cAAc,CAAC;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CAClB;AAMD,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,WAAyB,CAAC;AAClE,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,WAAkC,CAAC;AAE1E,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBtE;AAED,wBAAsB,WAAW,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOjE"}