@confect/cli 1.0.0-next.0

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 (92) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +7 -0
  3. package/dist/FunctionPath.mjs +19 -0
  4. package/dist/FunctionPath.mjs.map +1 -0
  5. package/dist/FunctionPaths.mjs +41 -0
  6. package/dist/FunctionPaths.mjs.map +1 -0
  7. package/dist/GroupPath.mjs +52 -0
  8. package/dist/GroupPath.mjs.map +1 -0
  9. package/dist/GroupPaths.mjs +9 -0
  10. package/dist/GroupPaths.mjs.map +1 -0
  11. package/dist/_virtual/rolldown_runtime.mjs +28 -0
  12. package/dist/cliApp.mjs +13 -0
  13. package/dist/cliApp.mjs.map +1 -0
  14. package/dist/confect/codegen.mjs +111 -0
  15. package/dist/confect/codegen.mjs.map +1 -0
  16. package/dist/confect/dev.mjs +253 -0
  17. package/dist/confect/dev.mjs.map +1 -0
  18. package/dist/confect.mjs +14 -0
  19. package/dist/confect.mjs.map +1 -0
  20. package/dist/index.d.mts +1 -0
  21. package/dist/index.mjs +19 -0
  22. package/dist/index.mjs.map +1 -0
  23. package/dist/log.mjs +25 -0
  24. package/dist/log.mjs.map +1 -0
  25. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeCommandExecutor.mjs +12 -0
  26. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeCommandExecutor.mjs.map +1 -0
  27. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeFileSystem.mjs +15 -0
  28. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeFileSystem.mjs.map +1 -0
  29. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodePath.mjs +25 -0
  30. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodePath.mjs.map +1 -0
  31. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeRuntime.mjs +12 -0
  32. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeRuntime.mjs.map +1 -0
  33. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeTerminal.mjs +17 -0
  34. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeTerminal.mjs.map +1 -0
  35. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/commandExecutor.mjs +129 -0
  36. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/commandExecutor.mjs.map +1 -0
  37. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/error.mjs +43 -0
  38. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/error.mjs.map +1 -0
  39. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/fileSystem.mjs +329 -0
  40. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/fileSystem.mjs.map +1 -0
  41. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/path.mjs +51 -0
  42. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/path.mjs.map +1 -0
  43. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/runtime.mjs +31 -0
  44. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/runtime.mjs.map +1 -0
  45. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/sink.mjs +24 -0
  46. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/sink.mjs.map +1 -0
  47. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/stream.mjs +91 -0
  48. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/stream.mjs.map +1 -0
  49. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/terminal.mjs +75 -0
  50. package/dist/node_modules/.pnpm/@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/terminal.mjs.map +1 -0
  51. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeContext.mjs +21 -0
  52. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeContext.mjs.map +1 -0
  53. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeFileSystem.mjs +15 -0
  54. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeFileSystem.mjs.map +1 -0
  55. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeRuntime.mjs +15 -0
  56. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeRuntime.mjs.map +1 -0
  57. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeWorker.mjs +27 -0
  58. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeWorker.mjs.map +1 -0
  59. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/internal/worker.mjs +71 -0
  60. package/dist/node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/internal/worker.mjs.map +1 -0
  61. package/dist/packages/cli/package.mjs +6 -0
  62. package/dist/packages/cli/package.mjs.map +1 -0
  63. package/dist/packages/core/dist/Spec.mjs +23 -0
  64. package/dist/packages/core/dist/Spec.mjs.map +1 -0
  65. package/dist/packages/core/dist/_virtual/rolldown_runtime.mjs +14 -0
  66. package/dist/packages/core/dist/_virtual/rolldown_runtime.mjs.map +1 -0
  67. package/dist/services/ConfectDirectory.mjs +31 -0
  68. package/dist/services/ConfectDirectory.mjs.map +1 -0
  69. package/dist/services/ConvexDirectory.mjs +41 -0
  70. package/dist/services/ConvexDirectory.mjs.map +1 -0
  71. package/dist/services/ProjectRoot.mjs +35 -0
  72. package/dist/services/ProjectRoot.mjs.map +1 -0
  73. package/dist/templates.mjs +204 -0
  74. package/dist/templates.mjs.map +1 -0
  75. package/dist/utils.mjs +162 -0
  76. package/dist/utils.mjs.map +1 -0
  77. package/package.json +86 -0
  78. package/src/FunctionPath.ts +28 -0
  79. package/src/FunctionPaths.ts +103 -0
  80. package/src/GroupPath.ts +117 -0
  81. package/src/GroupPaths.ts +7 -0
  82. package/src/cliApp.ts +8 -0
  83. package/src/confect/codegen.ts +228 -0
  84. package/src/confect/dev.ts +611 -0
  85. package/src/confect.ts +19 -0
  86. package/src/index.ts +22 -0
  87. package/src/log.ts +106 -0
  88. package/src/services/ConfectDirectory.ts +41 -0
  89. package/src/services/ConvexDirectory.ts +67 -0
  90. package/src/services/ProjectRoot.ts +49 -0
  91. package/src/templates.ts +380 -0
  92. package/src/utils.ts +332 -0
@@ -0,0 +1,75 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Exit from "effect/Exit";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Mailbox from "effect/Mailbox";
5
+ import * as Option from "effect/Option";
6
+ import * as Error from "@effect/platform/Error";
7
+ import * as Terminal from "@effect/platform/Terminal";
8
+ import * as RcRef from "effect/RcRef";
9
+ import * as readline from "node:readline";
10
+
11
+ //#region ../../node_modules/.pnpm/@effect+platform-node-shared@0.53.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/terminal.js
12
+ const defaultShouldQuit = (input) => input.key.ctrl && (input.key.name === "c" || input.key.name === "d");
13
+ /** @internal */
14
+ const make = /* @__PURE__ */ Effect.fnUntraced(function* (shouldQuit = defaultShouldQuit) {
15
+ const stdin = process.stdin;
16
+ const stdout = process.stdout;
17
+ const rlRef = yield* RcRef.make({ acquire: Effect.acquireRelease(Effect.sync(() => {
18
+ const rl = readline.createInterface({
19
+ input: stdin,
20
+ escapeCodeTimeout: 50
21
+ });
22
+ readline.emitKeypressEvents(stdin, rl);
23
+ if (stdin.isTTY) stdin.setRawMode(true);
24
+ return rl;
25
+ }), (rl) => Effect.sync(() => {
26
+ if (stdin.isTTY) stdin.setRawMode(false);
27
+ rl.close();
28
+ })) });
29
+ const columns = Effect.sync(() => stdout.columns ?? 0);
30
+ const readInput = Effect.gen(function* () {
31
+ yield* RcRef.get(rlRef);
32
+ const mailbox = yield* Mailbox.make();
33
+ const handleKeypress = (s, k) => {
34
+ const userInput = {
35
+ input: Option.fromNullable(s),
36
+ key: {
37
+ name: k.name ?? "",
38
+ ctrl: !!k.ctrl,
39
+ meta: !!k.meta,
40
+ shift: !!k.shift
41
+ }
42
+ };
43
+ mailbox.unsafeOffer(userInput);
44
+ if (shouldQuit(userInput)) mailbox.unsafeDone(Exit.void);
45
+ };
46
+ yield* Effect.addFinalizer(() => Effect.sync(() => stdin.off("keypress", handleKeypress)));
47
+ stdin.on("keypress", handleKeypress);
48
+ return mailbox;
49
+ });
50
+ const readLine = RcRef.get(rlRef).pipe(Effect.flatMap((readlineInterface) => Effect.async((resume) => {
51
+ const onLine = (line) => resume(Effect.succeed(line));
52
+ readlineInterface.once("line", onLine);
53
+ return Effect.sync(() => readlineInterface.off("line", onLine));
54
+ })), Effect.scoped);
55
+ const display = (prompt) => Effect.uninterruptible(Effect.async((resume) => {
56
+ stdout.write(prompt, (err) => err ? resume(Effect.fail(new Error.BadArgument({
57
+ module: "Terminal",
58
+ method: "display",
59
+ description: "Failed to write prompt to stdout",
60
+ cause: err
61
+ }))) : resume(Effect.void));
62
+ }));
63
+ return Terminal.Terminal.of({
64
+ columns,
65
+ readInput,
66
+ readLine,
67
+ display
68
+ });
69
+ });
70
+ /** @internal */
71
+ const layer = /* @__PURE__ */ Layer.scoped(Terminal.Terminal, /* @__PURE__ */ make(defaultShouldQuit));
72
+
73
+ //#endregion
74
+ export { layer, make };
75
+ //# sourceMappingURL=terminal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.mjs","names":[],"sources":["../../../../../../../../../../../../node_modules/.pnpm/@effect+platform-node-shared@0.53.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/internal/terminal.js"],"sourcesContent":["import * as Error from \"@effect/platform/Error\";\nimport * as Terminal from \"@effect/platform/Terminal\";\nimport * as Effect from \"effect/Effect\";\nimport * as Exit from \"effect/Exit\";\nimport * as Layer from \"effect/Layer\";\nimport * as Mailbox from \"effect/Mailbox\";\nimport * as Option from \"effect/Option\";\nimport * as RcRef from \"effect/RcRef\";\nimport * as readline from \"node:readline\";\nconst defaultShouldQuit = input => input.key.ctrl && (input.key.name === \"c\" || input.key.name === \"d\");\n/** @internal */\nexport const make = /*#__PURE__*/Effect.fnUntraced(function* (shouldQuit = defaultShouldQuit) {\n const stdin = process.stdin;\n const stdout = process.stdout;\n // Acquire readline interface with TTY setup/cleanup inside the scope\n const rlRef = yield* RcRef.make({\n acquire: Effect.acquireRelease(Effect.sync(() => {\n const rl = readline.createInterface({\n input: stdin,\n escapeCodeTimeout: 50\n });\n readline.emitKeypressEvents(stdin, rl);\n if (stdin.isTTY) {\n stdin.setRawMode(true);\n }\n return rl;\n }), rl => Effect.sync(() => {\n if (stdin.isTTY) {\n stdin.setRawMode(false);\n }\n rl.close();\n }))\n });\n const columns = Effect.sync(() => stdout.columns ?? 0);\n const readInput = Effect.gen(function* () {\n yield* RcRef.get(rlRef);\n const mailbox = yield* Mailbox.make();\n const handleKeypress = (s, k) => {\n const userInput = {\n input: Option.fromNullable(s),\n key: {\n name: k.name ?? \"\",\n ctrl: !!k.ctrl,\n meta: !!k.meta,\n shift: !!k.shift\n }\n };\n mailbox.unsafeOffer(userInput);\n if (shouldQuit(userInput)) {\n mailbox.unsafeDone(Exit.void);\n }\n };\n yield* Effect.addFinalizer(() => Effect.sync(() => stdin.off(\"keypress\", handleKeypress)));\n stdin.on(\"keypress\", handleKeypress);\n return mailbox;\n });\n const readLine = RcRef.get(rlRef).pipe(Effect.flatMap(readlineInterface => Effect.async(resume => {\n const onLine = line => resume(Effect.succeed(line));\n readlineInterface.once(\"line\", onLine);\n return Effect.sync(() => readlineInterface.off(\"line\", onLine));\n })), Effect.scoped);\n const display = prompt => Effect.uninterruptible(Effect.async(resume => {\n stdout.write(prompt, err => err ? resume(Effect.fail(new Error.BadArgument({\n module: \"Terminal\",\n method: \"display\",\n description: \"Failed to write prompt to stdout\",\n cause: err\n }))) : resume(Effect.void));\n }));\n return Terminal.Terminal.of({\n columns,\n readInput,\n readLine,\n display\n });\n});\n/** @internal */\nexport const layer = /*#__PURE__*/Layer.scoped(Terminal.Terminal, /*#__PURE__*/make(defaultShouldQuit));\n//# sourceMappingURL=terminal.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;AASA,MAAM,qBAAoB,UAAS,MAAM,IAAI,SAAS,MAAM,IAAI,SAAS,OAAO,MAAM,IAAI,SAAS;;AAEnG,MAAa,OAAoB,uBAAO,WAAW,WAAW,aAAa,mBAAmB;CAC5F,MAAM,QAAQ,QAAQ;CACtB,MAAM,SAAS,QAAQ;CAEvB,MAAM,QAAQ,OAAO,MAAM,KAAK,EAC9B,SAAS,OAAO,eAAe,OAAO,WAAW;EAC/C,MAAM,KAAK,SAAS,gBAAgB;GAClC,OAAO;GACP,mBAAmB;GACpB,CAAC;AACF,WAAS,mBAAmB,OAAO,GAAG;AACtC,MAAI,MAAM,MACR,OAAM,WAAW,KAAK;AAExB,SAAO;GACP,GAAE,OAAM,OAAO,WAAW;AAC1B,MAAI,MAAM,MACR,OAAM,WAAW,MAAM;AAEzB,KAAG,OAAO;GACV,CAAC,EACJ,CAAC;CACF,MAAM,UAAU,OAAO,WAAW,OAAO,WAAW,EAAE;CACtD,MAAM,YAAY,OAAO,IAAI,aAAa;AACxC,SAAO,MAAM,IAAI,MAAM;EACvB,MAAM,UAAU,OAAO,QAAQ,MAAM;EACrC,MAAM,kBAAkB,GAAG,MAAM;GAC/B,MAAM,YAAY;IAChB,OAAO,OAAO,aAAa,EAAE;IAC7B,KAAK;KACH,MAAM,EAAE,QAAQ;KAChB,MAAM,CAAC,CAAC,EAAE;KACV,MAAM,CAAC,CAAC,EAAE;KACV,OAAO,CAAC,CAAC,EAAE;KACZ;IACF;AACD,WAAQ,YAAY,UAAU;AAC9B,OAAI,WAAW,UAAU,CACvB,SAAQ,WAAW,KAAK,KAAK;;AAGjC,SAAO,OAAO,mBAAmB,OAAO,WAAW,MAAM,IAAI,YAAY,eAAe,CAAC,CAAC;AAC1F,QAAM,GAAG,YAAY,eAAe;AACpC,SAAO;GACP;CACF,MAAM,WAAW,MAAM,IAAI,MAAM,CAAC,KAAK,OAAO,SAAQ,sBAAqB,OAAO,OAAM,WAAU;EAChG,MAAM,UAAS,SAAQ,OAAO,OAAO,QAAQ,KAAK,CAAC;AACnD,oBAAkB,KAAK,QAAQ,OAAO;AACtC,SAAO,OAAO,WAAW,kBAAkB,IAAI,QAAQ,OAAO,CAAC;GAC/D,CAAC,EAAE,OAAO,OAAO;CACnB,MAAM,WAAU,WAAU,OAAO,gBAAgB,OAAO,OAAM,WAAU;AACtE,SAAO,MAAM,SAAQ,QAAO,MAAM,OAAO,OAAO,KAAK,IAAI,MAAM,YAAY;GACzE,QAAQ;GACR,QAAQ;GACR,aAAa;GACb,OAAO;GACR,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,KAAK,CAAC;GAC3B,CAAC;AACH,QAAO,SAAS,SAAS,GAAG;EAC1B;EACA;EACA;EACA;EACD,CAAC;EACF;;AAEF,MAAa,QAAqB,sBAAM,OAAO,SAAS,UAAuB,qBAAK,kBAAkB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { layer as layer$1 } from "../../../../../../@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeFileSystem.mjs";
2
+ import { layer as layer$2 } from "../../../../../../@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeCommandExecutor.mjs";
3
+ import { layer as layer$3 } from "../../../../../../@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodePath.mjs";
4
+ import { layer as layer$4 } from "../../../../../../@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeTerminal.mjs";
5
+ import { layerManager } from "./NodeWorker.mjs";
6
+ import { pipe } from "effect/Function";
7
+ import * as Layer from "effect/Layer";
8
+
9
+ //#region ../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeContext.js
10
+ /**
11
+ * @since 1.0.0
12
+ */
13
+ /**
14
+ * @since 1.0.0
15
+ * @category layer
16
+ */
17
+ const layer = /* @__PURE__ */ pipe(/* @__PURE__ */ Layer.mergeAll(layer$3, layer$2, layer$4, layerManager), /* @__PURE__ */ Layer.provideMerge(layer$1));
18
+
19
+ //#endregion
20
+ export { layer };
21
+ //# sourceMappingURL=NodeContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeContext.mjs","names":["NodePath.layer","NodeCommandExecutor.layer","NodeTerminal.layer","NodeWorker.layerManager","NodeFileSystem.layer"],"sources":["../../../../../../../../../../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeContext.js"],"sourcesContent":["/**\n * @since 1.0.0\n */\nimport * as NodeCommandExecutor from \"@effect/platform-node-shared/NodeCommandExecutor\";\nimport * as NodeFileSystem from \"@effect/platform-node-shared/NodeFileSystem\";\nimport * as NodePath from \"@effect/platform-node-shared/NodePath\";\nimport * as NodeTerminal from \"@effect/platform-node-shared/NodeTerminal\";\nimport { pipe } from \"effect/Function\";\nimport * as Layer from \"effect/Layer\";\nimport * as NodeWorker from \"./NodeWorker.js\";\n/**\n * @since 1.0.0\n * @category layer\n */\nexport const layer = /*#__PURE__*/pipe(/*#__PURE__*/Layer.mergeAll(NodePath.layer, NodeCommandExecutor.layer, NodeTerminal.layer, NodeWorker.layerManager), /*#__PURE__*/Layer.provideMerge(NodeFileSystem.layer));\n//# sourceMappingURL=NodeContext.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;AAcA,MAAa,QAAqB,qBAAkB,sBAAM,SAASA,SAAgBC,SAA2BC,SAAoBC,aAAwB,EAAe,sBAAM,aAAaC,QAAqB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { layer as layer$1 } from "../../../../../../@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeFileSystem.mjs";
2
+
3
+ //#region ../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeFileSystem.js
4
+ /**
5
+ * @since 1.0.0
6
+ */
7
+ /**
8
+ * @since 1.0.0
9
+ * @category layer
10
+ */
11
+ const layer = layer$1;
12
+
13
+ //#endregion
14
+ export { layer };
15
+ //# sourceMappingURL=NodeFileSystem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeFileSystem.mjs","names":["NodeFileSystem.layer"],"sources":["../../../../../../../../../../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeFileSystem.js"],"sourcesContent":["/**\n * @since 1.0.0\n */\nimport * as NodeFileSystem from \"@effect/platform-node-shared/NodeFileSystem\";\n/**\n * @since 1.0.0\n * @category layer\n */\nexport const layer = NodeFileSystem.layer;\n//# sourceMappingURL=NodeFileSystem.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAQA,MAAa,QAAQA"}
@@ -0,0 +1,15 @@
1
+ import { runMain as runMain$1 } from "../../../../../../@effect_platform-node-shared@0.53.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effe_e0eeb3aae5ffec3060feb87d17ffb17c/node_modules/@effect/platform-node-shared/dist/esm/NodeRuntime.mjs";
2
+
3
+ //#region ../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeRuntime.js
4
+ /**
5
+ * @since 1.0.0
6
+ */
7
+ /**
8
+ * @since 1.0.0
9
+ * @category runtime
10
+ */
11
+ const runMain = runMain$1;
12
+
13
+ //#endregion
14
+ export { runMain };
15
+ //# sourceMappingURL=NodeRuntime.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeRuntime.mjs","names":["NodeRuntime.runMain"],"sources":["../../../../../../../../../../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeRuntime.js"],"sourcesContent":["/**\n * @since 1.0.0\n */\nimport * as NodeRuntime from \"@effect/platform-node-shared/NodeRuntime\";\n/**\n * @since 1.0.0\n * @category runtime\n */\nexport const runMain = NodeRuntime.runMain;\n//# sourceMappingURL=NodeRuntime.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;AAQA,MAAa,UAAUA"}
@@ -0,0 +1,27 @@
1
+ import { layer as layer$1, layerManager as layerManager$1, layerPlatform as layerPlatform$1, layerWorker as layerWorker$1 } from "./internal/worker.mjs";
2
+
3
+ //#region ../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeWorker.js
4
+ /**
5
+ * @since 1.0.0
6
+ * @category layers
7
+ */
8
+ const layerManager = layerManager$1;
9
+ /**
10
+ * @since 1.0.0
11
+ * @category layers
12
+ */
13
+ const layerWorker = layerWorker$1;
14
+ /**
15
+ * @since 1.0.0
16
+ * @category layers
17
+ */
18
+ const layer = layer$1;
19
+ /**
20
+ * @since 1.0.0
21
+ * @category layers
22
+ */
23
+ const layerPlatform = layerPlatform$1;
24
+
25
+ //#endregion
26
+ export { layerManager };
27
+ //# sourceMappingURL=NodeWorker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeWorker.mjs","names":["internal.layerManager","internal.layerWorker","internal.layer","internal.layerPlatform"],"sources":["../../../../../../../../../../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeWorker.js"],"sourcesContent":["import * as internal from \"./internal/worker.js\";\n/**\n * @since 1.0.0\n * @category layers\n */\nexport const layerManager = internal.layerManager;\n/**\n * @since 1.0.0\n * @category layers\n */\nexport const layerWorker = internal.layerWorker;\n/**\n * @since 1.0.0\n * @category layers\n */\nexport const layer = internal.layer;\n/**\n * @since 1.0.0\n * @category layers\n */\nexport const layerPlatform = internal.layerPlatform;\n//# sourceMappingURL=NodeWorker.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;AAKA,MAAa,eAAeA;;;;;AAK5B,MAAa,cAAcC;;;;;AAK3B,MAAa,QAAQC;;;;;AAKrB,MAAa,gBAAgBC"}
@@ -0,0 +1,71 @@
1
+ import * as Worker from "@effect/platform/Worker";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Exit from "effect/Exit";
4
+ import * as Layer from "effect/Layer";
5
+ import * as Scope from "effect/Scope";
6
+ import * as Deferred from "effect/Deferred";
7
+ import { WorkerError } from "@effect/platform/WorkerError";
8
+
9
+ //#region ../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/internal/worker.js
10
+ const platformWorkerImpl = /* @__PURE__ */ Worker.makePlatform()({
11
+ setup({ scope, worker }) {
12
+ return Effect.flatMap(Deferred.make(), (exitDeferred) => {
13
+ const thing = "postMessage" in worker ? {
14
+ postMessage(msg, t) {
15
+ worker.postMessage(msg, t);
16
+ },
17
+ kill: () => worker.terminate(),
18
+ worker
19
+ } : {
20
+ postMessage(msg, _) {
21
+ worker.send(msg);
22
+ },
23
+ kill: () => worker.kill("SIGKILL"),
24
+ worker
25
+ };
26
+ worker.on("exit", () => {
27
+ Deferred.unsafeDone(exitDeferred, Exit.void);
28
+ });
29
+ return Effect.as(Scope.addFinalizer(scope, Effect.suspend(() => {
30
+ thing.postMessage([1]);
31
+ return Deferred.await(exitDeferred);
32
+ }).pipe(Effect.interruptible, Effect.timeout(5e3), Effect.catchAllCause(() => Effect.sync(() => thing.kill())))), thing);
33
+ });
34
+ },
35
+ listen({ deferred, emit, port }) {
36
+ port.worker.on("message", (message) => {
37
+ emit(message);
38
+ });
39
+ port.worker.on("messageerror", (cause) => {
40
+ Deferred.unsafeDone(deferred, new WorkerError({
41
+ reason: "decode",
42
+ cause
43
+ }));
44
+ });
45
+ port.worker.on("error", (cause) => {
46
+ Deferred.unsafeDone(deferred, new WorkerError({
47
+ reason: "unknown",
48
+ cause
49
+ }));
50
+ });
51
+ port.worker.on("exit", (code) => {
52
+ Deferred.unsafeDone(deferred, new WorkerError({
53
+ reason: "unknown",
54
+ cause: /* @__PURE__ */ new Error(`exited with code ${code}`)
55
+ }));
56
+ });
57
+ return Effect.void;
58
+ }
59
+ });
60
+ /** @internal */
61
+ const layerWorker = /* @__PURE__ */ Layer.succeed(Worker.PlatformWorker, platformWorkerImpl);
62
+ /** @internal */
63
+ const layerManager = /* @__PURE__ */ Layer.provide(Worker.layerManager, layerWorker);
64
+ /** @internal */
65
+ const layer = (spawn) => Layer.merge(layerManager, Worker.layerSpawner(spawn));
66
+ /** @internal */
67
+ const layerPlatform = (spawn) => Layer.merge(layerWorker, Worker.layerSpawner(spawn));
68
+
69
+ //#endregion
70
+ export { layer, layerManager, layerPlatform, layerWorker };
71
+ //# sourceMappingURL=worker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.mjs","names":[],"sources":["../../../../../../../../../../../../node_modules/.pnpm/@effect+platform-node@0.100.0_@effect+cluster@0.52.9_@effect+platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/internal/worker.js"],"sourcesContent":["import * as Worker from \"@effect/platform/Worker\";\nimport { WorkerError } from \"@effect/platform/WorkerError\";\nimport * as Deferred from \"effect/Deferred\";\nimport * as Effect from \"effect/Effect\";\nimport * as Exit from \"effect/Exit\";\nimport * as Layer from \"effect/Layer\";\nimport * as Scope from \"effect/Scope\";\nconst platformWorkerImpl = /*#__PURE__*/Worker.makePlatform()({\n setup({\n scope,\n worker\n }) {\n return Effect.flatMap(Deferred.make(), exitDeferred => {\n const thing = \"postMessage\" in worker ? {\n postMessage(msg, t) {\n worker.postMessage(msg, t);\n },\n kill: () => worker.terminate(),\n worker\n } : {\n postMessage(msg, _) {\n worker.send(msg);\n },\n kill: () => worker.kill(\"SIGKILL\"),\n worker\n };\n worker.on(\"exit\", () => {\n Deferred.unsafeDone(exitDeferred, Exit.void);\n });\n return Effect.as(Scope.addFinalizer(scope, Effect.suspend(() => {\n thing.postMessage([1]);\n return Deferred.await(exitDeferred);\n }).pipe(Effect.interruptible, Effect.timeout(5000), Effect.catchAllCause(() => Effect.sync(() => thing.kill())))), thing);\n });\n },\n listen({\n deferred,\n emit,\n port\n }) {\n port.worker.on(\"message\", message => {\n emit(message);\n });\n port.worker.on(\"messageerror\", cause => {\n Deferred.unsafeDone(deferred, new WorkerError({\n reason: \"decode\",\n cause\n }));\n });\n port.worker.on(\"error\", cause => {\n Deferred.unsafeDone(deferred, new WorkerError({\n reason: \"unknown\",\n cause\n }));\n });\n port.worker.on(\"exit\", code => {\n Deferred.unsafeDone(deferred, new WorkerError({\n reason: \"unknown\",\n cause: new Error(`exited with code ${code}`)\n }));\n });\n return Effect.void;\n }\n});\n/** @internal */\nexport const layerWorker = /*#__PURE__*/Layer.succeed(Worker.PlatformWorker, platformWorkerImpl);\n/** @internal */\nexport const layerManager = /*#__PURE__*/Layer.provide(Worker.layerManager, layerWorker);\n/** @internal */\nexport const layer = spawn => Layer.merge(layerManager, Worker.layerSpawner(spawn));\n/** @internal */\nexport const layerPlatform = spawn => Layer.merge(layerWorker, Worker.layerSpawner(spawn));\n//# sourceMappingURL=worker.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;AAOA,MAAM,qBAAkC,uBAAO,cAAc,CAAC;CAC5D,MAAM,EACJ,OACA,UACC;AACD,SAAO,OAAO,QAAQ,SAAS,MAAM,GAAE,iBAAgB;GACrD,MAAM,QAAQ,iBAAiB,SAAS;IACtC,YAAY,KAAK,GAAG;AAClB,YAAO,YAAY,KAAK,EAAE;;IAE5B,YAAY,OAAO,WAAW;IAC9B;IACD,GAAG;IACF,YAAY,KAAK,GAAG;AAClB,YAAO,KAAK,IAAI;;IAElB,YAAY,OAAO,KAAK,UAAU;IAClC;IACD;AACD,UAAO,GAAG,cAAc;AACtB,aAAS,WAAW,cAAc,KAAK,KAAK;KAC5C;AACF,UAAO,OAAO,GAAG,MAAM,aAAa,OAAO,OAAO,cAAc;AAC9D,UAAM,YAAY,CAAC,EAAE,CAAC;AACtB,WAAO,SAAS,MAAM,aAAa;KACnC,CAAC,KAAK,OAAO,eAAe,OAAO,QAAQ,IAAK,EAAE,OAAO,oBAAoB,OAAO,WAAW,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM;IACzH;;CAEJ,OAAO,EACL,UACA,MACA,QACC;AACD,OAAK,OAAO,GAAG,YAAW,YAAW;AACnC,QAAK,QAAQ;IACb;AACF,OAAK,OAAO,GAAG,iBAAgB,UAAS;AACtC,YAAS,WAAW,UAAU,IAAI,YAAY;IAC5C,QAAQ;IACR;IACD,CAAC,CAAC;IACH;AACF,OAAK,OAAO,GAAG,UAAS,UAAS;AAC/B,YAAS,WAAW,UAAU,IAAI,YAAY;IAC5C,QAAQ;IACR;IACD,CAAC,CAAC;IACH;AACF,OAAK,OAAO,GAAG,SAAQ,SAAQ;AAC7B,YAAS,WAAW,UAAU,IAAI,YAAY;IAC5C,QAAQ;IACR,uBAAO,IAAI,MAAM,oBAAoB,OAAO;IAC7C,CAAC,CAAC;IACH;AACF,SAAO,OAAO;;CAEjB,CAAC;;AAEF,MAAa,cAA2B,sBAAM,QAAQ,OAAO,gBAAgB,mBAAmB;;AAEhG,MAAa,eAA4B,sBAAM,QAAQ,OAAO,cAAc,YAAY;;AAExF,MAAa,SAAQ,UAAS,MAAM,MAAM,cAAc,OAAO,aAAa,MAAM,CAAC;;AAEnF,MAAa,iBAAgB,UAAS,MAAM,MAAM,aAAa,OAAO,aAAa,MAAM,CAAC"}
@@ -0,0 +1,6 @@
1
+ //#region package.json
2
+ var version = "1.0.0-next.0";
3
+
4
+ //#endregion
5
+ export { version };
6
+ //# sourceMappingURL=package.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.mjs","names":[],"sources":["../../../package.json"],"sourcesContent":["{\n \"name\": \"@confect/cli\",\n \"version\": \"1.0.0-next.0\",\n \"description\": \"Confect CLI\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/rjdellecese/confect.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/rjdellecese/confect/issues\"\n },\n \"homepage\": \"https://confect.rjdellecese.com\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"bin\": {\n \"confect\": \"./dist/index.mjs\"\n },\n \"files\": [\n \"CHANGELOG.md\",\n \"LICENSE\",\n \"README.md\",\n \"dist\",\n \"package.json\",\n \"src\"\n ],\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"default\": \"./dist/index.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"build\": \"tsdown --config-loader unrun\",\n \"dev\": \"tsdown --watch\",\n \"test\": \"vitest run\",\n \"typecheck\": \"tsc --noEmit --project tsconfig.json\",\n \"fix\": \"prettier --write . && eslint --fix . --max-warnings=0\",\n \"lint\": \"prettier --check . && eslint . --max-warnings=0\",\n \"clean\": \"rm -rf dist coverage node_modules\"\n },\n \"keywords\": [\n \"effect\",\n \"convex\",\n \"cli\"\n ],\n \"author\": \"RJ Dellecese\",\n \"license\": \"ISC\",\n \"dependencies\": {\n \"@effect/cli\": \"^0.72.1\",\n \"@effect/printer\": \"^0.47.0\",\n \"@effect/printer-ansi\": \"^0.47.0\",\n \"code-block-writer\": \"^13.0.3\",\n \"esbuild\": \"^0.25.0\",\n \"tsx\": \"^4.19.2\"\n },\n \"devDependencies\": {\n \"@effect/language-service\": \"0.56.0\",\n \"@effect/platform-node\": \"0.100.0\",\n \"@effect/vitest\": \"0.27.0\",\n \"@eslint/js\": \"9.39.1\",\n \"@tsconfig/strictest\": \"2.0.8\",\n \"@types/node\": \"24.10.1\",\n \"@vitest/coverage-v8\": \"3.2.4\",\n \"eslint\": \"9.39.1\",\n \"prettier\": \"3.6.2\",\n \"tsdown\": \"0.16.4\",\n \"typescript\": \"5.9.3\",\n \"typescript-eslint\": \"8.46.4\",\n \"vite\": \"7.2.2\",\n \"vite-tsconfig-paths\": \"5.1.4\",\n \"vitest\": \"3.2.4\"\n },\n \"peerDependencies\": {\n \"@confect/server\": \"workspace:*\",\n \"@effect/platform\": \"^0.93.2\",\n \"effect\": \"^3.19.3\"\n },\n \"engines\": {\n \"node\": \">=22\",\n \"pnpm\": \">=10\"\n },\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\"\n}\n"],"mappings":";cAEa"}
@@ -0,0 +1,23 @@
1
+ import { __export } from "./_virtual/rolldown_runtime.mjs";
2
+ import { Predicate, Record } from "effect";
3
+
4
+ //#region ../core/dist/Spec.js
5
+ var Spec_exports = /* @__PURE__ */ __export({
6
+ TypeId: () => TypeId,
7
+ isSpec: () => isSpec,
8
+ make: () => make
9
+ });
10
+ const TypeId = "@confect/core/api/Spec";
11
+ const isSpec = (u) => Predicate.hasProperty(u, TypeId);
12
+ const Proto = {
13
+ [TypeId]: TypeId,
14
+ add(group) {
15
+ return makeProto({ groups: Record.set(this.groups, group.name, group) });
16
+ }
17
+ };
18
+ const makeProto = ({ groups }) => Object.assign(Object.create(Proto), { groups });
19
+ const make = () => makeProto({ groups: {} });
20
+
21
+ //#endregion
22
+ export { Spec_exports };
23
+ //# sourceMappingURL=Spec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spec.mjs","names":[],"sources":["../../../../../core/dist/Spec.js"],"sourcesContent":["import { __export } from \"./_virtual/rolldown_runtime.js\";\nimport { Predicate, Record } from \"effect\";\n\n//#region src/Spec.ts\nvar Spec_exports = /* @__PURE__ */ __export({\n\tTypeId: () => TypeId,\n\tisSpec: () => isSpec,\n\tmake: () => make\n});\nconst TypeId = \"@confect/core/api/Spec\";\nconst isSpec = (u) => Predicate.hasProperty(u, TypeId);\nconst Proto = {\n\t[TypeId]: TypeId,\n\tadd(group) {\n\t\treturn makeProto({ groups: Record.set(this.groups, group.name, group) });\n\t}\n};\nconst makeProto = ({ groups }) => Object.assign(Object.create(Proto), { groups });\nconst make = () => makeProto({ groups: {} });\n\n//#endregion\nexport { Spec_exports, TypeId, isSpec, make };\n//# sourceMappingURL=Spec.js.map"],"mappings":";;;;AAIA,IAAI,eAA+B,yBAAS;CAC3C,cAAc;CACd,cAAc;CACd,YAAY;CACZ,CAAC;AACF,MAAM,SAAS;AACf,MAAM,UAAU,MAAM,UAAU,YAAY,GAAG,OAAO;AACtD,MAAM,QAAQ;EACZ,SAAS;CACV,IAAI,OAAO;AACV,SAAO,UAAU,EAAE,QAAQ,OAAO,IAAI,KAAK,QAAQ,MAAM,MAAM,MAAM,EAAE,CAAC;;CAEzE;AACD,MAAM,aAAa,EAAE,aAAa,OAAO,OAAO,OAAO,OAAO,MAAM,EAAE,EAAE,QAAQ,CAAC;AACjF,MAAM,aAAa,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ //#region ../core/dist/_virtual/rolldown_runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (all) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ return target;
10
+ };
11
+
12
+ //#endregion
13
+ export { __export };
14
+ //# sourceMappingURL=rolldown_runtime.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolldown_runtime.mjs","names":[],"sources":["../../../../../../core/dist/_virtual/rolldown_runtime.js"],"sourcesContent":["//#region rolldown:runtime\nvar __defProp = Object.defineProperty;\nvar __export = (all) => {\n\tlet target = {};\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n\treturn target;\n};\n\n//#endregion\nexport { __export };"],"mappings":";AACA,IAAI,YAAY,OAAO;AACvB,IAAI,YAAY,QAAQ;CACvB,IAAI,SAAS,EAAE;AACf,MAAK,IAAI,QAAQ,IAAK,WAAU,QAAQ,MAAM;EAC7C,KAAK,IAAI;EACT,YAAY;EACZ,CAAC;AACF,QAAO"}
@@ -0,0 +1,31 @@
1
+ import { ConvexDirectory } from "./ConvexDirectory.mjs";
2
+ import { Effect, Ref, Schema } from "effect";
3
+ import { FileSystem, Path } from "@effect/platform";
4
+
5
+ //#region src/services/ConfectDirectory.ts
6
+ var ConfectDirectory = class extends Effect.Service()("@confect/cli/services/ConfectDirectory", {
7
+ effect: Effect.gen(function* () {
8
+ const convexDirectory = yield* findConfectDirectory;
9
+ const ref = yield* Ref.make(convexDirectory);
10
+ return { get: Ref.get(ref) };
11
+ }),
12
+ dependencies: [ConvexDirectory.Default],
13
+ accessors: true
14
+ }) {};
15
+ var ConfectDirectoryNotFoundError = class extends Schema.TaggedError("ConfectDirectoryNotFoundError")("ConfectDirectoryNotFoundError", {}) {
16
+ get message() {
17
+ return "Could not find Confect directory";
18
+ }
19
+ };
20
+ const findConfectDirectory = Effect.gen(function* () {
21
+ const fs = yield* FileSystem.FileSystem;
22
+ const path = yield* Path.Path;
23
+ const convexDirectory = yield* ConvexDirectory.get;
24
+ const confectDirectory = path.join(path.dirname(convexDirectory), "confect");
25
+ if (yield* fs.exists(confectDirectory)) return confectDirectory;
26
+ else return yield* Effect.fail(new ConfectDirectoryNotFoundError());
27
+ });
28
+
29
+ //#endregion
30
+ export { ConfectDirectory };
31
+ //# sourceMappingURL=ConfectDirectory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfectDirectory.mjs","names":[],"sources":["../../src/services/ConfectDirectory.ts"],"sourcesContent":["import { FileSystem, Path } from \"@effect/platform\";\nimport { Effect, Ref, Schema } from \"effect\";\nimport { ConvexDirectory } from \"./ConvexDirectory\";\n\nexport class ConfectDirectory extends Effect.Service<ConfectDirectory>()(\n \"@confect/cli/services/ConfectDirectory\",\n {\n effect: Effect.gen(function* () {\n const convexDirectory = yield* findConfectDirectory;\n\n const ref = yield* Ref.make<string>(convexDirectory);\n\n return { get: Ref.get(ref) } as const;\n }),\n dependencies: [ConvexDirectory.Default],\n accessors: true,\n },\n) {}\n\nexport class ConfectDirectoryNotFoundError extends Schema.TaggedError<ConfectDirectoryNotFoundError>(\n \"ConfectDirectoryNotFoundError\",\n)(\"ConfectDirectoryNotFoundError\", {}) {\n override get message(): string {\n return \"Could not find Confect directory\";\n }\n}\n\nexport const findConfectDirectory = Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n\n const convexDirectory = yield* ConvexDirectory.get;\n\n const confectDirectory = path.join(path.dirname(convexDirectory), \"confect\");\n\n if (yield* fs.exists(confectDirectory)) {\n return confectDirectory;\n } else {\n return yield* Effect.fail(new ConfectDirectoryNotFoundError());\n }\n});\n"],"mappings":";;;;;AAIA,IAAa,mBAAb,cAAsC,OAAO,SAA2B,CACtE,0CACA;CACE,QAAQ,OAAO,IAAI,aAAa;EAC9B,MAAM,kBAAkB,OAAO;EAE/B,MAAM,MAAM,OAAO,IAAI,KAAa,gBAAgB;AAEpD,SAAO,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE;GAC5B;CACF,cAAc,CAAC,gBAAgB,QAAQ;CACvC,WAAW;CACZ,CACF,CAAC;AAEF,IAAa,gCAAb,cAAmD,OAAO,YACxD,gCACD,CAAC,iCAAiC,EAAE,CAAC,CAAC;CACrC,IAAa,UAAkB;AAC7B,SAAO;;;AAIX,MAAa,uBAAuB,OAAO,IAAI,aAAa;CAC1D,MAAM,KAAK,OAAO,WAAW;CAC7B,MAAM,OAAO,OAAO,KAAK;CAEzB,MAAM,kBAAkB,OAAO,gBAAgB;CAE/C,MAAM,mBAAmB,KAAK,KAAK,KAAK,QAAQ,gBAAgB,EAAE,UAAU;AAE5E,KAAI,OAAO,GAAG,OAAO,iBAAiB,CACpC,QAAO;KAEP,QAAO,OAAO,OAAO,KAAK,IAAI,+BAA+B,CAAC;EAEhE"}
@@ -0,0 +1,41 @@
1
+ import { ProjectRoot } from "./ProjectRoot.mjs";
2
+ import { Effect, Option, Ref, Schema } from "effect";
3
+ import { FileSystem, Path } from "@effect/platform";
4
+
5
+ //#region src/services/ConvexDirectory.ts
6
+ var ConvexDirectory = class extends Effect.Service()("@confect/cli/services/ConvexDirectory", {
7
+ effect: Effect.gen(function* () {
8
+ const convexDirectory = yield* findConvexDirectory;
9
+ const ref = yield* Ref.make(convexDirectory);
10
+ return { get: Ref.get(ref) };
11
+ }),
12
+ dependencies: [ProjectRoot.Default],
13
+ accessors: true
14
+ }) {};
15
+ var ConvexDirectoryNotFoundError = class extends Schema.TaggedError("ConvexDirectoryNotFoundError")("ConvexDirectoryNotFoundError", {}) {
16
+ get message() {
17
+ return "Could not find Convex directory";
18
+ }
19
+ };
20
+ /**
21
+ * Schema for `convex.json` configuration file.
22
+ * @see https://docs.convex.dev/production/project-configuration
23
+ */
24
+ const ConvexJsonConfig = Schema.parseJson(Schema.Struct({ functions: Schema.optional(Schema.String) }));
25
+ const findConvexDirectory = Effect.gen(function* () {
26
+ const fs = yield* FileSystem.FileSystem;
27
+ const path = yield* Path.Path;
28
+ const projectRoot = yield* ProjectRoot.get;
29
+ const defaultPath = path.join(projectRoot, "convex");
30
+ const convexJsonPath = path.join(projectRoot, "convex.json");
31
+ const convexDirectory = yield* Effect.if(fs.exists(convexJsonPath), {
32
+ onTrue: () => fs.readFileString(convexJsonPath).pipe(Effect.andThen(Schema.decodeOption(ConvexJsonConfig)), Effect.map((config) => Option.fromNullable(config.functions).pipe(Option.map((functionsDir) => path.join(projectRoot, functionsDir)))), Effect.andThen(Option.getOrElse(() => defaultPath))),
33
+ onFalse: () => Effect.succeed(defaultPath)
34
+ });
35
+ if (yield* fs.exists(convexDirectory)) return convexDirectory;
36
+ else return yield* Effect.fail(new ConvexDirectoryNotFoundError());
37
+ });
38
+
39
+ //#endregion
40
+ export { ConvexDirectory };
41
+ //# sourceMappingURL=ConvexDirectory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvexDirectory.mjs","names":[],"sources":["../../src/services/ConvexDirectory.ts"],"sourcesContent":["import { FileSystem, Path } from \"@effect/platform\";\nimport { Effect, Option, Ref, Schema } from \"effect\";\nimport { ProjectRoot } from \"./ProjectRoot\";\n\nexport class ConvexDirectory extends Effect.Service<ConvexDirectory>()(\n \"@confect/cli/services/ConvexDirectory\",\n {\n effect: Effect.gen(function* () {\n const convexDirectory = yield* findConvexDirectory;\n\n const ref = yield* Ref.make<string>(convexDirectory);\n\n return { get: Ref.get(ref) } as const;\n }),\n dependencies: [ProjectRoot.Default],\n accessors: true,\n },\n) {}\n\nexport class ConvexDirectoryNotFoundError extends Schema.TaggedError<ConvexDirectoryNotFoundError>(\n \"ConvexDirectoryNotFoundError\",\n)(\"ConvexDirectoryNotFoundError\", {}) {\n override get message(): string {\n return \"Could not find Convex directory\";\n }\n}\n\n/**\n * Schema for `convex.json` configuration file.\n * @see https://docs.convex.dev/production/project-configuration\n */\nconst ConvexJsonConfig = Schema.parseJson(\n Schema.Struct({\n functions: Schema.optional(Schema.String),\n }),\n);\n\nconst findConvexDirectory = Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n\n const projectRoot = yield* ProjectRoot.get;\n\n const defaultPath = path.join(projectRoot, \"convex\");\n\n const convexJsonPath = path.join(projectRoot, \"convex.json\");\n\n const convexDirectory = yield* Effect.if(fs.exists(convexJsonPath), {\n onTrue: () =>\n fs.readFileString(convexJsonPath).pipe(\n Effect.andThen(Schema.decodeOption(ConvexJsonConfig)),\n Effect.map((config) =>\n Option.fromNullable(config.functions).pipe(\n Option.map((functionsDir) => path.join(projectRoot, functionsDir)),\n ),\n ),\n Effect.andThen(Option.getOrElse(() => defaultPath)),\n ),\n onFalse: () => Effect.succeed(defaultPath),\n });\n\n if (yield* fs.exists(convexDirectory)) {\n return convexDirectory;\n } else {\n return yield* Effect.fail(new ConvexDirectoryNotFoundError());\n }\n});\n"],"mappings":";;;;;AAIA,IAAa,kBAAb,cAAqC,OAAO,SAA0B,CACpE,yCACA;CACE,QAAQ,OAAO,IAAI,aAAa;EAC9B,MAAM,kBAAkB,OAAO;EAE/B,MAAM,MAAM,OAAO,IAAI,KAAa,gBAAgB;AAEpD,SAAO,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE;GAC5B;CACF,cAAc,CAAC,YAAY,QAAQ;CACnC,WAAW;CACZ,CACF,CAAC;AAEF,IAAa,+BAAb,cAAkD,OAAO,YACvD,+BACD,CAAC,gCAAgC,EAAE,CAAC,CAAC;CACpC,IAAa,UAAkB;AAC7B,SAAO;;;;;;;AAQX,MAAM,mBAAmB,OAAO,UAC9B,OAAO,OAAO,EACZ,WAAW,OAAO,SAAS,OAAO,OAAO,EAC1C,CAAC,CACH;AAED,MAAM,sBAAsB,OAAO,IAAI,aAAa;CAClD,MAAM,KAAK,OAAO,WAAW;CAC7B,MAAM,OAAO,OAAO,KAAK;CAEzB,MAAM,cAAc,OAAO,YAAY;CAEvC,MAAM,cAAc,KAAK,KAAK,aAAa,SAAS;CAEpD,MAAM,iBAAiB,KAAK,KAAK,aAAa,cAAc;CAE5D,MAAM,kBAAkB,OAAO,OAAO,GAAG,GAAG,OAAO,eAAe,EAAE;EAClE,cACE,GAAG,eAAe,eAAe,CAAC,KAChC,OAAO,QAAQ,OAAO,aAAa,iBAAiB,CAAC,EACrD,OAAO,KAAK,WACV,OAAO,aAAa,OAAO,UAAU,CAAC,KACpC,OAAO,KAAK,iBAAiB,KAAK,KAAK,aAAa,aAAa,CAAC,CACnE,CACF,EACD,OAAO,QAAQ,OAAO,gBAAgB,YAAY,CAAC,CACpD;EACH,eAAe,OAAO,QAAQ,YAAY;EAC3C,CAAC;AAEF,KAAI,OAAO,GAAG,OAAO,gBAAgB,CACnC,QAAO;KAEP,QAAO,OAAO,OAAO,KAAK,IAAI,8BAA8B,CAAC;EAE/D"}
@@ -0,0 +1,35 @@
1
+ import { layer } from "../node_modules/.pnpm/@effect_platform-node@0.100.0_@effect_cluster@0.52.9_@effect_platform@0.93.2_effect@3.1_a15ca1802d939cd85cc564105ef862ac/node_modules/@effect/platform-node/dist/esm/NodeFileSystem.mjs";
2
+ import { Array, Effect, Option, Ref, Schema } from "effect";
3
+ import { FileSystem, Path } from "@effect/platform";
4
+
5
+ //#region src/services/ProjectRoot.ts
6
+ var ProjectRoot = class extends Effect.Service()("@confect/cli/services/ProjectRoot", {
7
+ effect: Effect.gen(function* () {
8
+ const projectRoot = yield* findProjectRoot;
9
+ const ref = yield* Ref.make(projectRoot);
10
+ return { get: Ref.get(ref) };
11
+ }),
12
+ dependencies: [layer],
13
+ accessors: true
14
+ }) {};
15
+ const findProjectRoot = Effect.gen(function* () {
16
+ const fs = yield* FileSystem.FileSystem;
17
+ const path = yield* Path.Path;
18
+ const startDir = path.resolve(".");
19
+ const root = path.parse(startDir).root;
20
+ const directories = Array.unfold(startDir, (dir) => dir === root ? Option.none() : Option.some([dir, path.dirname(dir)]));
21
+ const projectRoot = yield* Effect.findFirst(directories, (dir) => fs.exists(path.join(dir, "package.json")));
22
+ return yield* Option.match(projectRoot, {
23
+ onNone: () => Effect.fail(new ProjectRootNotFoundError()),
24
+ onSome: Effect.succeed
25
+ });
26
+ });
27
+ var ProjectRootNotFoundError = class extends Schema.TaggedError("ProjectRootNotFoundError")("ProjectRootNotFoundError", {}) {
28
+ get message() {
29
+ return "Could not find project root (no 'package.json' found)";
30
+ }
31
+ };
32
+
33
+ //#endregion
34
+ export { ProjectRoot };
35
+ //# sourceMappingURL=ProjectRoot.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectRoot.mjs","names":["NodeFileSystem.layer"],"sources":["../../src/services/ProjectRoot.ts"],"sourcesContent":["import { FileSystem, Path } from \"@effect/platform\";\nimport { NodeFileSystem } from \"@effect/platform-node\";\nimport { Array, Effect, Option, Ref, Schema } from \"effect\";\n\nexport class ProjectRoot extends Effect.Service<ProjectRoot>()(\n \"@confect/cli/services/ProjectRoot\",\n {\n effect: Effect.gen(function* () {\n const projectRoot = yield* findProjectRoot;\n\n const ref = yield* Ref.make<string>(projectRoot);\n\n return { get: Ref.get(ref) } as const;\n }),\n dependencies: [NodeFileSystem.layer],\n accessors: true,\n },\n) {}\n\nexport const findProjectRoot = Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n\n const startDir = path.resolve(\".\");\n const root = path.parse(startDir).root;\n\n const directories = Array.unfold(startDir, (dir) =>\n dir === root\n ? Option.none()\n : Option.some([dir, path.dirname(dir)] as const),\n );\n\n const projectRoot = yield* Effect.findFirst(directories, (dir) =>\n fs.exists(path.join(dir, \"package.json\")),\n );\n\n return yield* Option.match(projectRoot, {\n onNone: () => Effect.fail(new ProjectRootNotFoundError()),\n onSome: Effect.succeed,\n });\n});\n\nexport class ProjectRootNotFoundError extends Schema.TaggedError<ProjectRootNotFoundError>(\n \"ProjectRootNotFoundError\",\n)(\"ProjectRootNotFoundError\", {}) {\n override get message(): string {\n return \"Could not find project root (no 'package.json' found)\";\n }\n}\n"],"mappings":";;;;;AAIA,IAAa,cAAb,cAAiC,OAAO,SAAsB,CAC5D,qCACA;CACE,QAAQ,OAAO,IAAI,aAAa;EAC9B,MAAM,cAAc,OAAO;EAE3B,MAAM,MAAM,OAAO,IAAI,KAAa,YAAY;AAEhD,SAAO,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE;GAC5B;CACF,cAAc,CAACA,MAAqB;CACpC,WAAW;CACZ,CACF,CAAC;AAEF,MAAa,kBAAkB,OAAO,IAAI,aAAa;CACrD,MAAM,KAAK,OAAO,WAAW;CAC7B,MAAM,OAAO,OAAO,KAAK;CAEzB,MAAM,WAAW,KAAK,QAAQ,IAAI;CAClC,MAAM,OAAO,KAAK,MAAM,SAAS,CAAC;CAElC,MAAM,cAAc,MAAM,OAAO,WAAW,QAC1C,QAAQ,OACJ,OAAO,MAAM,GACb,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAU,CACnD;CAED,MAAM,cAAc,OAAO,OAAO,UAAU,cAAc,QACxD,GAAG,OAAO,KAAK,KAAK,KAAK,eAAe,CAAC,CAC1C;AAED,QAAO,OAAO,OAAO,MAAM,aAAa;EACtC,cAAc,OAAO,KAAK,IAAI,0BAA0B,CAAC;EACzD,QAAQ,OAAO;EAChB,CAAC;EACF;AAEF,IAAa,2BAAb,cAA8C,OAAO,YACnD,2BACD,CAAC,4BAA4B,EAAE,CAAC,CAAC;CAChC,IAAa,UAAkB;AAC7B,SAAO"}