@danielfgray/pg-sourcerer 0.2.0 → 0.2.2

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 (173) hide show
  1. package/dist/cli.js +25 -19
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config.d.ts +1 -1
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +1 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/errors.d.ts +14 -1
  8. package/dist/errors.d.ts.map +1 -1
  9. package/dist/errors.js +2 -0
  10. package/dist/errors.js.map +1 -1
  11. package/dist/generate.d.ts +31 -21
  12. package/dist/generate.d.ts.map +1 -1
  13. package/dist/generate.js +53 -43
  14. package/dist/generate.js.map +1 -1
  15. package/dist/index.d.ts +20 -12
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +27 -13
  18. package/dist/index.js.map +1 -1
  19. package/dist/init.d.ts +0 -1
  20. package/dist/init.d.ts.map +1 -1
  21. package/dist/init.js +90 -35
  22. package/dist/init.js.map +1 -1
  23. package/dist/ir/extensions/queries.d.ts +264 -0
  24. package/dist/ir/extensions/queries.d.ts.map +1 -0
  25. package/dist/ir/extensions/queries.js +153 -0
  26. package/dist/ir/extensions/queries.js.map +1 -0
  27. package/dist/ir/extensions/schema-builder.d.ts +61 -0
  28. package/dist/ir/extensions/schema-builder.d.ts.map +1 -0
  29. package/dist/ir/extensions/schema-builder.js +5 -0
  30. package/dist/ir/extensions/schema-builder.js.map +1 -0
  31. package/dist/lib/conjure.d.ts +101 -0
  32. package/dist/lib/conjure.d.ts.map +1 -1
  33. package/dist/lib/conjure.js +204 -26
  34. package/dist/lib/conjure.js.map +1 -1
  35. package/dist/lib/hex.d.ts +10 -8
  36. package/dist/lib/hex.d.ts.map +1 -1
  37. package/dist/lib/hex.js +18 -15
  38. package/dist/lib/hex.js.map +1 -1
  39. package/dist/plugins/arktype.d.ts +27 -14
  40. package/dist/plugins/arktype.d.ts.map +1 -1
  41. package/dist/plugins/arktype.js +166 -130
  42. package/dist/plugins/arktype.js.map +1 -1
  43. package/dist/plugins/effect.d.ts +53 -0
  44. package/dist/plugins/effect.d.ts.map +1 -0
  45. package/dist/plugins/effect.js +1074 -0
  46. package/dist/plugins/effect.js.map +1 -0
  47. package/dist/plugins/http-elysia.d.ts +32 -0
  48. package/dist/plugins/http-elysia.d.ts.map +1 -0
  49. package/dist/plugins/http-elysia.js +613 -0
  50. package/dist/plugins/http-elysia.js.map +1 -0
  51. package/dist/plugins/http-express.d.ts +36 -0
  52. package/dist/plugins/http-express.d.ts.map +1 -0
  53. package/dist/plugins/http-express.js +388 -0
  54. package/dist/plugins/http-express.js.map +1 -0
  55. package/dist/plugins/http-hono.d.ts +36 -0
  56. package/dist/plugins/http-hono.d.ts.map +1 -0
  57. package/dist/plugins/http-hono.js +453 -0
  58. package/dist/plugins/http-hono.js.map +1 -0
  59. package/dist/plugins/http-orpc.d.ts +55 -0
  60. package/dist/plugins/http-orpc.d.ts.map +1 -0
  61. package/dist/plugins/http-orpc.js +370 -0
  62. package/dist/plugins/http-orpc.js.map +1 -0
  63. package/dist/plugins/http-trpc.d.ts +59 -0
  64. package/dist/plugins/http-trpc.d.ts.map +1 -0
  65. package/dist/plugins/http-trpc.js +392 -0
  66. package/dist/plugins/http-trpc.js.map +1 -0
  67. package/dist/plugins/kysely/queries.d.ts +92 -0
  68. package/dist/plugins/kysely/queries.d.ts.map +1 -0
  69. package/dist/plugins/kysely/queries.js +1169 -0
  70. package/dist/plugins/kysely/queries.js.map +1 -0
  71. package/dist/plugins/kysely/shared.d.ts +59 -0
  72. package/dist/plugins/kysely/shared.d.ts.map +1 -0
  73. package/dist/plugins/kysely/shared.js +247 -0
  74. package/dist/plugins/kysely/shared.js.map +1 -0
  75. package/dist/plugins/kysely/types.d.ts +22 -0
  76. package/dist/plugins/kysely/types.d.ts.map +1 -0
  77. package/dist/plugins/kysely/types.js +428 -0
  78. package/dist/plugins/kysely/types.js.map +1 -0
  79. package/dist/plugins/kysely.d.ts +72 -0
  80. package/dist/plugins/kysely.d.ts.map +1 -0
  81. package/dist/plugins/kysely.js +906 -0
  82. package/dist/plugins/kysely.js.map +1 -0
  83. package/dist/plugins/sql-queries.d.ts +55 -7
  84. package/dist/plugins/sql-queries.d.ts.map +1 -1
  85. package/dist/plugins/sql-queries.js +747 -121
  86. package/dist/plugins/sql-queries.js.map +1 -1
  87. package/dist/plugins/types.d.ts +20 -14
  88. package/dist/plugins/types.d.ts.map +1 -1
  89. package/dist/plugins/types.js +90 -112
  90. package/dist/plugins/types.js.map +1 -1
  91. package/dist/plugins/valibot.d.ts +45 -0
  92. package/dist/plugins/valibot.d.ts.map +1 -0
  93. package/dist/plugins/valibot.js +422 -0
  94. package/dist/plugins/valibot.js.map +1 -0
  95. package/dist/plugins/zod.d.ts +27 -14
  96. package/dist/plugins/zod.d.ts.map +1 -1
  97. package/dist/plugins/zod.js +231 -166
  98. package/dist/plugins/zod.js.map +1 -1
  99. package/dist/services/artifact-store.d.ts +11 -1
  100. package/dist/services/artifact-store.d.ts.map +1 -1
  101. package/dist/services/artifact-store.js +9 -0
  102. package/dist/services/artifact-store.js.map +1 -1
  103. package/dist/services/config-loader.d.ts +4 -0
  104. package/dist/services/config-loader.d.ts.map +1 -1
  105. package/dist/services/config-loader.js +1 -1
  106. package/dist/services/config-loader.js.map +1 -1
  107. package/dist/services/config.d.ts +57 -0
  108. package/dist/services/config.d.ts.map +1 -0
  109. package/dist/services/config.js +66 -0
  110. package/dist/services/config.js.map +1 -0
  111. package/dist/services/core-providers.d.ts +15 -0
  112. package/dist/services/core-providers.d.ts.map +1 -0
  113. package/dist/services/core-providers.js +23 -0
  114. package/dist/services/core-providers.js.map +1 -0
  115. package/dist/services/emissions.d.ts +14 -0
  116. package/dist/services/emissions.d.ts.map +1 -1
  117. package/dist/services/emissions.js +86 -47
  118. package/dist/services/emissions.js.map +1 -1
  119. package/dist/services/execution.d.ts +35 -0
  120. package/dist/services/execution.d.ts.map +1 -0
  121. package/dist/services/execution.js +86 -0
  122. package/dist/services/execution.js.map +1 -0
  123. package/dist/services/file-builder.d.ts +4 -0
  124. package/dist/services/file-builder.d.ts.map +1 -1
  125. package/dist/services/file-builder.js.map +1 -1
  126. package/dist/services/inflection.d.ts +2 -2
  127. package/dist/services/inflection.d.ts.map +1 -1
  128. package/dist/services/inflection.js +4 -4
  129. package/dist/services/inflection.js.map +1 -1
  130. package/dist/services/ir-builder.d.ts.map +1 -1
  131. package/dist/services/ir-builder.js +10 -3
  132. package/dist/services/ir-builder.js.map +1 -1
  133. package/dist/services/pg-types.d.ts +31 -0
  134. package/dist/services/pg-types.d.ts.map +1 -1
  135. package/dist/services/pg-types.js +24 -0
  136. package/dist/services/pg-types.js.map +1 -1
  137. package/dist/services/plugin-runner.d.ts +27 -37
  138. package/dist/services/plugin-runner.d.ts.map +1 -1
  139. package/dist/services/plugin-runner.js +73 -171
  140. package/dist/services/plugin-runner.js.map +1 -1
  141. package/dist/services/plugin.d.ts +350 -215
  142. package/dist/services/plugin.d.ts.map +1 -1
  143. package/dist/services/plugin.js +182 -130
  144. package/dist/services/plugin.js.map +1 -1
  145. package/dist/services/resolution.d.ts +38 -0
  146. package/dist/services/resolution.d.ts.map +1 -0
  147. package/dist/services/resolution.js +242 -0
  148. package/dist/services/resolution.js.map +1 -0
  149. package/dist/services/service-registry.d.ts +74 -0
  150. package/dist/services/service-registry.d.ts.map +1 -0
  151. package/dist/services/service-registry.js +61 -0
  152. package/dist/services/service-registry.js.map +1 -0
  153. package/dist/services/symbols.d.ts +59 -0
  154. package/dist/services/symbols.d.ts.map +1 -1
  155. package/dist/services/symbols.js +16 -0
  156. package/dist/services/symbols.js.map +1 -1
  157. package/dist/testing.d.ts +4 -25
  158. package/dist/testing.d.ts.map +1 -1
  159. package/dist/testing.js +2 -23
  160. package/dist/testing.js.map +1 -1
  161. package/package.json +1 -1
  162. package/dist/plugins/effect-model.d.ts +0 -17
  163. package/dist/plugins/effect-model.d.ts.map +0 -1
  164. package/dist/plugins/effect-model.js +0 -409
  165. package/dist/plugins/effect-model.js.map +0 -1
  166. package/dist/plugins/kysely-queries.d.ts +0 -66
  167. package/dist/plugins/kysely-queries.d.ts.map +0 -1
  168. package/dist/plugins/kysely-queries.js +0 -960
  169. package/dist/plugins/kysely-queries.js.map +0 -1
  170. package/dist/plugins/kysely-types.d.ts +0 -35
  171. package/dist/plugins/kysely-types.d.ts.map +0 -1
  172. package/dist/plugins/kysely-types.js +0 -601
  173. package/dist/plugins/kysely-types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/services/config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/services/config-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Config Service
3
+ *
4
+ * Provides loaded configuration via Effect DI.
5
+ *
6
+ * This is the service that effects depend on to get config.
7
+ * The config-loader.ts provides the loading logic, while this
8
+ * module provides the service tag and layer constructors.
9
+ *
10
+ * Layers available:
11
+ * - ConfigFromFile: Load from file, fail if not found
12
+ * - ConfigWithInit: Load from file, or run interactive init (for CLI)
13
+ * - ConfigTest: Provide config directly for testing
14
+ */
15
+ import { Context, Layer } from "effect";
16
+ import { FileSystem, Terminal } from "@effect/platform";
17
+ import type { PlatformError } from "@effect/platform/Error";
18
+ import type { ResolvedConfig } from "../config.js";
19
+ import { ConfigNotFound, ConfigInvalid } from "../errors.js";
20
+ declare const ConfigService_base: Context.TagClass<ConfigService, "ConfigService", ResolvedConfig>;
21
+ /**
22
+ * Service that provides the loaded configuration.
23
+ * The service value IS the ResolvedConfig directly.
24
+ */
25
+ export declare class ConfigService extends ConfigService_base {
26
+ }
27
+ /**
28
+ * Load config from file. Fails with ConfigNotFound if not found.
29
+ */
30
+ export declare const ConfigFromFile: (opts?: {
31
+ configPath?: string;
32
+ searchFrom?: string;
33
+ }) => Layer.Layer<ConfigService, ConfigNotFound | ConfigInvalid>;
34
+ /**
35
+ * Load config from file, or run interactive init if not found.
36
+ * This is the layer to use for CLI commands.
37
+ *
38
+ * Flow:
39
+ * 1. Try to load config from file
40
+ * 2. If ConfigNotFound, print message and run init prompts
41
+ * 3. After init writes config, load it
42
+ * 4. Return the loaded config
43
+ */
44
+ export declare const ConfigWithInit: (opts?: {
45
+ configPath?: string;
46
+ searchFrom?: string;
47
+ }) => Layer.Layer<ConfigService, ConfigInvalid | Error | Terminal.QuitException | PlatformError, Terminal.Terminal | FileSystem.FileSystem>;
48
+ /**
49
+ * Provide config directly for testing.
50
+ */
51
+ export declare const ConfigTest: (config: ResolvedConfig) => Layer.Layer<ConfigService>;
52
+ /**
53
+ * Get the default search paths for config files.
54
+ */
55
+ export declare const getConfigSearchPaths: (searchFrom?: string) => string[];
56
+ export {};
57
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAW,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;;AAO7D;;;GAGG;AACH,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AAMN;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,cAAc,GAAG,aAAa,CAO1D,CAAC;AAEJ;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,KAAK,CAAC,KAAK,CACb,aAAa,EACb,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,aAAa,GAAG,aAAa,EAC9D,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC,UAAU,CAuBxC,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CACvC,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,aAAY,MAAsB,KAAG,MAAM,EACxB,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Config Service
3
+ *
4
+ * Provides loaded configuration via Effect DI.
5
+ *
6
+ * This is the service that effects depend on to get config.
7
+ * The config-loader.ts provides the loading logic, while this
8
+ * module provides the service tag and layer constructors.
9
+ *
10
+ * Layers available:
11
+ * - ConfigFromFile: Load from file, fail if not found
12
+ * - ConfigWithInit: Load from file, or run interactive init (for CLI)
13
+ * - ConfigTest: Provide config directly for testing
14
+ */
15
+ import { Console, Context, Effect, Layer } from "effect";
16
+ import { createConfigLoader, CONFIG_FILE_NAMES } from "./config-loader.js";
17
+ // ============================================================================
18
+ // Service Definition
19
+ // ============================================================================
20
+ /**
21
+ * Service that provides the loaded configuration.
22
+ * The service value IS the ResolvedConfig directly.
23
+ */
24
+ export class ConfigService extends Context.Tag("ConfigService")() {
25
+ }
26
+ // ============================================================================
27
+ // Layer Constructors
28
+ // ============================================================================
29
+ /**
30
+ * Load config from file. Fails with ConfigNotFound if not found.
31
+ */
32
+ export const ConfigFromFile = (opts) => Layer.effect(ConfigService, Effect.gen(function* () {
33
+ const loader = createConfigLoader();
34
+ return yield* loader.load(opts);
35
+ }));
36
+ /**
37
+ * Load config from file, or run interactive init if not found.
38
+ * This is the layer to use for CLI commands.
39
+ *
40
+ * Flow:
41
+ * 1. Try to load config from file
42
+ * 2. If ConfigNotFound, print message and run init prompts
43
+ * 3. After init writes config, load it
44
+ * 4. Return the loaded config
45
+ */
46
+ export const ConfigWithInit = (opts) => Layer.effect(ConfigService, Effect.gen(function* () {
47
+ const loader = createConfigLoader();
48
+ return yield* loader.load(opts).pipe(Effect.catchTag("ConfigNotFound", (error) => Effect.gen(function* () {
49
+ yield* Console.error(`\n✗ No config file found`);
50
+ yield* Console.error(` Searched: ${error.searchPaths.join(", ")}`);
51
+ // Dynamic import to avoid circular dependency with init.ts
52
+ const initModule = yield* Effect.promise(() => import("../init.js"));
53
+ const result = yield* initModule.runInit;
54
+ // Load the newly created config
55
+ return yield* loader.load({ configPath: result.configPath });
56
+ })));
57
+ }));
58
+ /**
59
+ * Provide config directly for testing.
60
+ */
61
+ export const ConfigTest = (config) => Layer.succeed(ConfigService, config);
62
+ /**
63
+ * Get the default search paths for config files.
64
+ */
65
+ export const getConfigSearchPaths = (searchFrom = process.cwd()) => CONFIG_FILE_NAMES.map(name => `${searchFrom}/${name}`);
66
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAKzD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAG5D;CAAG;AAEN,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAG9B,EAA8D,EAAE,CAC/D,KAAK,CAAC,MAAM,CACV,aAAa,EACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CACH,CAAC;AAEJ;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAG9B,EAIC,EAAE,CACF,KAAK,CAAC,MAAM,CACV,aAAa,EACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAClC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,KAAqB,EAAE,EAAE,CAC1D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACjD,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpE,2DAA2D;QAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAEzC,gCAAgC;QAChC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC,CAAC,CACH,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAsB,EAA8B,EAAE,CAC/E,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,aAAqB,OAAO,CAAC,GAAG,EAAE,EAAY,EAAE,CACnF,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Core Providers
3
+ *
4
+ * Built-in providers that other providers depend on.
5
+ */
6
+ import { type Plugin } from "./plugin.js";
7
+ import type { SemanticIR } from "../ir/semantic-ir.js";
8
+ /**
9
+ * Semantic IR Provider
10
+ *
11
+ * Singleton provider that supplies the built IR to other providers.
12
+ * The IR is passed in at construction time (built by generate.ts).
13
+ */
14
+ export declare function createSemanticIRProvider(ir: SemanticIR): Plugin<Record<string, never>, SemanticIR>;
15
+ //# sourceMappingURL=core-providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-providers.d.ts","sourceRoot":"","sources":["../../src/services/core-providers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,CAWlG"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Core Providers
3
+ *
4
+ * Built-in providers that other providers depend on.
5
+ */
6
+ import { definePlugin } from "./plugin.js";
7
+ /**
8
+ * Semantic IR Provider
9
+ *
10
+ * Singleton provider that supplies the built IR to other providers.
11
+ * The IR is passed in at construction time (built by generate.ts).
12
+ */
13
+ export function createSemanticIRProvider(ir) {
14
+ return definePlugin({
15
+ name: "semantic-ir",
16
+ kind: "semantic-ir",
17
+ singleton: true,
18
+ singletonParams: {},
19
+ canProvide: () => true,
20
+ provide: () => ir,
21
+ });
22
+ }
23
+ //# sourceMappingURL=core-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-providers.js","sourceRoot":"","sources":["../../src/services/core-providers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAe,MAAM,aAAa,CAAA;AAGvD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAc;IACrD,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,EAAE;QAEnB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;QAEtB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC,CAAA;AACJ,CAAC"}
@@ -30,6 +30,16 @@ export interface AstEmissionEntry {
30
30
  /** Import requests to resolve during serialization */
31
31
  readonly imports?: readonly ImportRef[];
32
32
  }
33
+ /**
34
+ * Unresolved symbol reference - tracked during import resolution
35
+ */
36
+ export interface UnresolvedRef {
37
+ readonly capability: string;
38
+ readonly entity: string;
39
+ readonly shape?: string;
40
+ readonly plugin: string;
41
+ readonly file: string;
42
+ }
33
43
  /**
34
44
  * Emission buffer interface
35
45
  */
@@ -66,6 +76,10 @@ export interface EmissionBuffer {
66
76
  * Note: AST emissions are merged, not conflicted.
67
77
  */
68
78
  readonly validate: () => Effect.Effect<void, EmitConflict>;
79
+ /**
80
+ * Get unresolved symbol references (populated during serializeAst)
81
+ */
82
+ readonly getUnresolvedRefs: () => readonly UnresolvedRef[];
69
83
  /**
70
84
  * Clear all emissions
71
85
  */
@@ -1 +1 @@
1
- {"version":3,"file":"emissions.d.ts","sourceRoot":"","sources":["../../src/services/emissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAEL,OAAO,EACP,MAAM,EACN,KAAK,EAKN,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAC;AAOjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvE;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,KAC3B,IAAI,CAAC;IAEV;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7E;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAEhD;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,SAAS,gBAAgB,EAAE,CAAC;IAE5D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAEhG;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,cAAqD;CAAG;AAmKvF;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CA+HrD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,sCAAsD,CAAC"}
1
+ {"version":3,"file":"emissions.d.ts","sourceRoot":"","sources":["../../src/services/emissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAEL,OAAO,EACP,MAAM,EACN,KAAK,EAKN,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAC;AAOjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvE;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,KAC3B,IAAI,CAAC;IAEV;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7E;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAEhD;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,SAAS,gBAAgB,EAAE,CAAC;IAE5D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAEhG;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,cAAqD;CAAG;AA0MvF;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CA+IrD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,sCAAsD,CAAC"}
@@ -17,55 +17,17 @@ export class Emissions extends Context.Tag("Emissions")() {
17
17
  // =============================================================================
18
18
  import recast from "recast";
19
19
  const b = recast.types.builders;
20
- /**
21
- * Resolve imports and prepend import statements to AST
22
- */
23
- function prependImports(ast, imports, forFile, symbols) {
24
- // Group imports by source path for merging
25
- const bySource = pipe(imports, Arr.reduce(new Map(), (map, ref) => {
26
- const resolved = resolveImportRef(ref, forFile, symbols);
27
- if (!resolved)
28
- return map;
29
- const { source, named, types, defaultImport } = resolved;
30
- const existing = map.get(source) ?? { named: new Set(), types: new Set() };
31
- named.forEach(n => existing.named.add(n));
32
- types.forEach(t => existing.types.add(t));
33
- if (defaultImport)
34
- existing.default = defaultImport;
35
- map.set(source, existing);
36
- return map;
37
- }));
38
- const statements = pipe([...bySource.entries()], Arr.flatMap(([source, { named, types, default: defaultImport }]) => {
39
- const result = [];
40
- // Value imports (default + named)
41
- const valueSpecifiers = [
42
- ...(defaultImport ? [b.importDefaultSpecifier(b.identifier(defaultImport))] : []),
43
- ...pipe([...named], Arr.map(name => b.importSpecifier(b.identifier(name), b.identifier(name)))),
44
- ];
45
- if (valueSpecifiers.length > 0) {
46
- result.push(b.importDeclaration(valueSpecifiers, b.stringLiteral(source)));
47
- }
48
- // Type imports as a separate type-only import declaration
49
- if (types.size > 0) {
50
- const typeSpecifiers = pipe([...types], Arr.map(name => b.importSpecifier(b.identifier(name), b.identifier(name))));
51
- const typeImport = b.importDeclaration(typeSpecifiers, b.stringLiteral(source));
52
- typeImport.importKind = "type";
53
- result.push(typeImport);
54
- }
55
- return result;
56
- }));
57
- // Prepend imports to program body
58
- return b.program([...statements, ...ast.body]);
59
- }
60
20
  /** Normalize path for comparison (remove leading ./) */
61
21
  const normalizePath = (path) => path.replace(/^\.\//, "");
62
- /** Resolve an ImportRef to source/named/types/default */
63
- function resolveImportRef(ref, forFile, symbols) {
22
+ /** Resolve an ImportRef to source/named/types/default/namespace */
23
+ function resolveImportRef(ref, forFile, symbols, onUnresolved) {
64
24
  switch (ref.kind) {
65
25
  case "symbol": {
66
26
  const symbol = symbols.resolve(ref.ref);
67
- if (!symbol)
27
+ if (!symbol) {
28
+ onUnresolved?.(ref, forFile);
68
29
  return undefined;
30
+ }
69
31
  // Skip import if symbol is in the same file (already declared locally)
70
32
  if (normalizePath(symbol.file) === normalizePath(forFile))
71
33
  return undefined;
@@ -85,11 +47,61 @@ function resolveImportRef(ref, forFile, symbols) {
85
47
  source: ref.from,
86
48
  named: ref.names ? [...ref.names] : [],
87
49
  types: ref.types ? [...ref.types] : [],
50
+ namespace: ref.namespace,
88
51
  };
89
52
  return ref.default !== undefined ? { ...base, defaultImport: ref.default } : base;
90
53
  }
91
54
  }
92
55
  }
56
+ /**
57
+ * Resolve imports and prepend import statements to AST
58
+ */
59
+ function prependImports(ast, imports, forFile, symbols, onUnresolved) {
60
+ // Group imports by source path for merging
61
+ const bySource = pipe(imports, Arr.reduce(new Map(), (map, ref) => {
62
+ const resolved = resolveImportRef(ref, forFile, symbols, onUnresolved);
63
+ if (!resolved)
64
+ return map;
65
+ const { source, named, types, defaultImport, namespace } = resolved;
66
+ const existing = map.get(source) ?? { named: new Set(), types: new Set() };
67
+ named.forEach(n => existing.named.add(n));
68
+ types.forEach(t => existing.types.add(t));
69
+ if (defaultImport)
70
+ existing.default = defaultImport;
71
+ if (namespace)
72
+ existing.namespace = namespace;
73
+ map.set(source, existing);
74
+ return map;
75
+ }));
76
+ const statements = pipe([...bySource.entries()], Arr.flatMap(([source, { named, types, default: defaultImport, namespace }]) => {
77
+ const result = [];
78
+ // Namespace import: import * as foo from "..."
79
+ if (namespace) {
80
+ const namespaceSpecifier = b.importNamespaceSpecifier(b.identifier(namespace));
81
+ result.push(b.importDeclaration([namespaceSpecifier], b.stringLiteral(source)));
82
+ }
83
+ // Value imports (default + named) - only if no namespace import for this source
84
+ if (!namespace) {
85
+ const valueSpecifiers = [
86
+ ...(defaultImport ? [b.importDefaultSpecifier(b.identifier(defaultImport))] : []),
87
+ ...pipe([...named], Arr.map(name => b.importSpecifier(b.identifier(name), b.identifier(name)))),
88
+ ];
89
+ if (valueSpecifiers.length > 0) {
90
+ result.push(b.importDeclaration(valueSpecifiers, b.stringLiteral(source)));
91
+ }
92
+ }
93
+ // Type imports as a separate type-only import declaration
94
+ if (types.size > 0) {
95
+ const typeSpecifiers = pipe([...types], Arr.map(name => b.importSpecifier(b.identifier(name), b.identifier(name))));
96
+ const typeImport = b.importDeclaration(typeSpecifiers, b.stringLiteral(source));
97
+ typeImport.importKind = "type";
98
+ result.push(typeImport);
99
+ }
100
+ return result;
101
+ }));
102
+ // Prepend imports to program body
103
+ return b.program([...statements, ...ast.body]);
104
+ }
93
105
  // =============================================================================
94
106
  // AST Emission Merging (Pure Functions)
95
107
  // =============================================================================
@@ -105,6 +117,18 @@ const makeAstEntry = (path, ast, plugin, header, imports) => pipe({ path, ast, p
105
117
  /** Merge a new emission into an existing one (keeps first header) */
106
118
  const mergeAstEntries = (existing, ast, plugin, _header, imports) => makeAstEntry(existing.path, b.program([...existing.ast.body, ...ast.body]), mergePluginAttribution(existing.plugin, plugin), existing.header, mergeImports(existing.imports, imports));
107
119
  // =============================================================================
120
+ // Output Formatting (Pure Functions)
121
+ // =============================================================================
122
+ /** Ensure exactly one blank line before each export statement */
123
+ const ensureBlankLinesBeforeExports = (code) => code
124
+ .split("\n")
125
+ .reduce((acc, line) => {
126
+ const prevLine = acc[acc.length - 1];
127
+ const needsBlankLine = line.startsWith("export ") && prevLine !== undefined && prevLine !== "";
128
+ return needsBlankLine ? [...acc, "", line] : [...acc, line];
129
+ }, [])
130
+ .join("\n");
131
+ // =============================================================================
108
132
  // Emission Buffer Implementation
109
133
  // =============================================================================
110
134
  /**
@@ -115,6 +139,8 @@ export function createEmissionBuffer() {
115
139
  const astEmissions = MutableHashMap.empty();
116
140
  // Track plugins per path for string emission conflict detection
117
141
  const stringEmitPlugins = MutableHashMap.empty();
142
+ // Track unresolved symbol references during import resolution
143
+ const unresolvedRefs = [];
118
144
  return {
119
145
  emit: (path, content, plugin) => {
120
146
  // Track plugin for conflict detection
@@ -163,12 +189,23 @@ export function createEmissionBuffer() {
163
189
  for (const entry of MutableHashMap.values(astEmissions)) {
164
190
  // Generate import statements as code first
165
191
  const importCode = entry.imports && entry.imports.length > 0
166
- ? serialize(prependImports(recast.types.builders.program([]), entry.imports, entry.path, symbols)) + "\n\n"
192
+ ? serialize(prependImports(recast.types.builders.program([]), entry.imports, entry.path, symbols,
193
+ // Track unresolved refs with plugin context
194
+ (ref, file) => {
195
+ unresolvedRefs.push({
196
+ capability: ref.ref.capability,
197
+ entity: ref.ref.entity,
198
+ shape: ref.ref.shape,
199
+ plugin: entry.plugin,
200
+ file,
201
+ });
202
+ })) + "\n\n"
167
203
  : "";
168
- // Serialize the main AST body
204
+ // Serialize the main AST body and ensure blank lines before exports
169
205
  const bodyCode = serialize(entry.ast);
170
- // Order: imports → header → body
171
- const content = importCode + (entry.header ? entry.header + bodyCode : bodyCode);
206
+ const formattedBody = ensureBlankLinesBeforeExports(bodyCode);
207
+ // Order: header imports body
208
+ const content = (entry.header ? entry.header : "") + importCode + formattedBody;
172
209
  MutableHashMap.set(emissions, entry.path, {
173
210
  path: entry.path,
174
211
  content,
@@ -188,10 +225,12 @@ export function createEmissionBuffer() {
188
225
  }));
189
226
  },
190
227
  })),
228
+ getUnresolvedRefs: () => [...unresolvedRefs],
191
229
  clear: () => {
192
230
  MutableHashMap.clear(emissions);
193
231
  MutableHashMap.clear(astEmissions);
194
232
  MutableHashMap.clear(stringEmitPlugins);
233
+ unresolvedRefs.length = 0;
195
234
  },
196
235
  };
197
236
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emissions.js","sourceRoot":"","sources":["../../src/services/emissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emissions.js","sourceRoot":"","sources":["../../src/services/emissions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Execution Phase
3
+ *
4
+ * Executes providers in topological order, populating deferred resources.
5
+ */
6
+ import { Effect } from "effect";
7
+ import type { FileBuilder } from "./file-builder.js";
8
+ import type { SymbolRegistry } from "./symbols.js";
9
+ import type { SemanticIR } from "../ir/semantic-ir.js";
10
+ import type { TypeHintRegistry } from "./type-hints.js";
11
+ import type { CoreInflection } from "./inflection.js";
12
+ import type { ServiceRegistry } from "./service-registry.js";
13
+ import { type PluginRegistry, PluginExecutionFailed } from "./plugin.js";
14
+ import { type ExecutionPlan } from "./resolution.js";
15
+ /**
16
+ * Services needed for execution.
17
+ */
18
+ export interface ExecutionServices {
19
+ readonly fileBuilder: (path: string) => FileBuilder;
20
+ readonly symbols: SymbolRegistry;
21
+ readonly ir: SemanticIR;
22
+ readonly typeHints: TypeHintRegistry;
23
+ readonly inflection: CoreInflection;
24
+ readonly serviceRegistry: ServiceRegistry;
25
+ }
26
+ /**
27
+ * Execute all providers in the execution plan.
28
+ *
29
+ * @param plan - Topologically sorted execution plan from resolution phase
30
+ * @param registry - Provider registry with pending requests
31
+ * @param services - File builder and symbol registry
32
+ * @returns Effect that completes when all providers have executed
33
+ */
34
+ export declare const execute: (plan: ExecutionPlan, registry: PluginRegistry, services: ExecutionServices) => Effect.Effect<void, PluginExecutionFailed>;
35
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/services/execution.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAQ,MAAM,EAAyB,MAAM,QAAQ,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAIL,KAAK,cAAc,EAEnB,qBAAqB,EAEtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,iBAAiB,CAAA;AAoB1E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAA;IACnD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IACnC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;CAC1C;AAsFD;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAClB,MAAM,aAAa,EACnB,UAAU,cAAc,EACxB,UAAU,iBAAiB,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAgBzC,CAAA"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Execution Phase
3
+ *
4
+ * Executes providers in topological order, populating deferred resources.
5
+ */
6
+ import { Data, Effect, HashMap, Option, pipe } from "effect";
7
+ import { PluginExecutionFailed, } from "./plugin.js";
8
+ const makeResultKey = (kind, params) => Data.struct({
9
+ kind,
10
+ paramsJson: JSON.stringify(params ?? {}),
11
+ });
12
+ // ============================================================================
13
+ // Execution
14
+ // ============================================================================
15
+ /**
16
+ * Execute a single provider step.
17
+ */
18
+ const executeStep = (step, resultCache, services) => {
19
+ // Gather dependency results
20
+ const depResults = step.dependencies.map((dep) => {
21
+ const key = makeResultKey(dep.kind, dep.params);
22
+ return pipe(HashMap.get(resultCache, key), Option.getOrThrow // Dependencies should already be resolved
23
+ );
24
+ });
25
+ // Build provider context
26
+ const ctx = {
27
+ ir: services.ir,
28
+ typeHints: services.typeHints,
29
+ inflection: services.inflection,
30
+ registerHandler: (kind, handler) => {
31
+ // Store handler in the service registry
32
+ // We wrap it to make it callable via services.get()
33
+ services.serviceRegistry.register(kind, handler);
34
+ },
35
+ request: (kind, params) => {
36
+ // First check if there's a registered handler
37
+ const handler = services.serviceRegistry.get(kind);
38
+ if (handler) {
39
+ return handler(params, ctx);
40
+ }
41
+ // Fall back to static result cache
42
+ const key = makeResultKey(kind, params);
43
+ return pipe(HashMap.get(resultCache, key), Option.getOrThrow);
44
+ },
45
+ file: services.fileBuilder,
46
+ symbols: services.symbols,
47
+ };
48
+ // Execute the plugin
49
+ return Effect.try({
50
+ try: () => step.provider.provide(step.params, depResults, ctx),
51
+ catch: (cause) => new PluginExecutionFailed({
52
+ message: `Plugin "${step.provider.name}" failed: ${cause instanceof Error ? cause.message : String(cause)}`,
53
+ plugin: step.provider.name,
54
+ kind: step.kind,
55
+ params: step.params,
56
+ cause,
57
+ }),
58
+ });
59
+ };
60
+ /**
61
+ * Populate deferred resources from the result cache.
62
+ */
63
+ const populateDeferreds = (pendingRequests, resultCache) => {
64
+ for (const req of pendingRequests) {
65
+ const key = makeResultKey(req.kind, req.params);
66
+ const result = pipe(HashMap.get(resultCache, key), Option.getOrUndefined);
67
+ if (result !== undefined) {
68
+ const mutable = req.deferred;
69
+ mutable.resolved = true;
70
+ mutable.value = result;
71
+ }
72
+ }
73
+ };
74
+ /**
75
+ * Execute all providers in the execution plan.
76
+ *
77
+ * @param plan - Topologically sorted execution plan from resolution phase
78
+ * @param registry - Provider registry with pending requests
79
+ * @param services - File builder and symbol registry
80
+ * @returns Effect that completes when all providers have executed
81
+ */
82
+ export const execute = (plan, registry, services) => Effect.reduce(plan.steps, HashMap.empty(), (cache, step) => executeStep(step, cache, services).pipe(Effect.map((result) => {
83
+ const key = makeResultKey(step.kind, step.params);
84
+ return HashMap.set(cache, key, result);
85
+ }))).pipe(Effect.tap((cache) => Effect.sync(() => populateDeferreds(registry.getPendingRequests(), cache))), Effect.asVoid);
86
+ //# sourceMappingURL=execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/services/execution.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ export interface PackageImportRef {
21
21
  readonly names?: readonly string[];
22
22
  readonly types?: readonly string[];
23
23
  readonly default?: string;
24
+ /** Namespace import: import * as <namespace> from "..." */
25
+ readonly namespace?: string;
24
26
  readonly from: string;
25
27
  }
26
28
  /**
@@ -31,6 +33,8 @@ export interface RelativeImportRef {
31
33
  readonly names?: readonly string[];
32
34
  readonly types?: readonly string[];
33
35
  readonly default?: string;
36
+ /** Namespace import: import * as <namespace> from "..." */
37
+ readonly namespace?: string;
34
38
  readonly from: string;
35
39
  }
36
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"file-builder.d.ts","sourceRoot":"","sources":["../../src/services/file-builder.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAU,MAAM,cAAc,CAAA;AAM1D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;CACF;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAM9E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,WAAW,CAAA;IAE7D;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,WAAW,CAAA;IAEnC;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,aAAa,GAAG,WAAW,CAAA;IAEpD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAElC;;;OAGG;IACH,IAAI,IAAI,IAAI,CAAA;CACb;AA0BD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EACzB,cAAc,EAAE,cAAc,GAC7B,WAAW,CA2Gb;AAMD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAA;AAE9D;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EACzB,cAAc,EAAE,cAAc,GAC7B,kBAAkB,CAGpB"}
1
+ {"version":3,"file":"file-builder.d.ts","sourceRoot":"","sources":["../../src/services/file-builder.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAU,MAAM,cAAc,CAAA;AAM1D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;CACF;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAM9E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,WAAW,CAAA;IAE7D;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,WAAW,CAAA;IAEnC;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,aAAa,GAAG,WAAW,CAAA;IAEpD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAElC;;;OAGG;IACH,IAAI,IAAI,IAAI,CAAA;CACb;AA0BD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EACzB,cAAc,EAAE,cAAc,GAC7B,WAAW,CA2Gb;AAMD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAA;AAE9D;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EACzB,cAAc,EAAE,cAAc,GAC7B,kBAAkB,CAGpB"}