@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.
- package/dist/cli.js +25 -19
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +14 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -1
- package/dist/generate.d.ts +31 -21
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +53 -43
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +20 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -13
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +0 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +90 -35
- package/dist/init.js.map +1 -1
- package/dist/ir/extensions/queries.d.ts +264 -0
- package/dist/ir/extensions/queries.d.ts.map +1 -0
- package/dist/ir/extensions/queries.js +153 -0
- package/dist/ir/extensions/queries.js.map +1 -0
- package/dist/ir/extensions/schema-builder.d.ts +61 -0
- package/dist/ir/extensions/schema-builder.d.ts.map +1 -0
- package/dist/ir/extensions/schema-builder.js +5 -0
- package/dist/ir/extensions/schema-builder.js.map +1 -0
- package/dist/lib/conjure.d.ts +101 -0
- package/dist/lib/conjure.d.ts.map +1 -1
- package/dist/lib/conjure.js +204 -26
- package/dist/lib/conjure.js.map +1 -1
- package/dist/lib/hex.d.ts +10 -8
- package/dist/lib/hex.d.ts.map +1 -1
- package/dist/lib/hex.js +18 -15
- package/dist/lib/hex.js.map +1 -1
- package/dist/plugins/arktype.d.ts +27 -14
- package/dist/plugins/arktype.d.ts.map +1 -1
- package/dist/plugins/arktype.js +166 -130
- package/dist/plugins/arktype.js.map +1 -1
- package/dist/plugins/effect.d.ts +53 -0
- package/dist/plugins/effect.d.ts.map +1 -0
- package/dist/plugins/effect.js +1074 -0
- package/dist/plugins/effect.js.map +1 -0
- package/dist/plugins/http-elysia.d.ts +32 -0
- package/dist/plugins/http-elysia.d.ts.map +1 -0
- package/dist/plugins/http-elysia.js +613 -0
- package/dist/plugins/http-elysia.js.map +1 -0
- package/dist/plugins/http-express.d.ts +36 -0
- package/dist/plugins/http-express.d.ts.map +1 -0
- package/dist/plugins/http-express.js +388 -0
- package/dist/plugins/http-express.js.map +1 -0
- package/dist/plugins/http-hono.d.ts +36 -0
- package/dist/plugins/http-hono.d.ts.map +1 -0
- package/dist/plugins/http-hono.js +453 -0
- package/dist/plugins/http-hono.js.map +1 -0
- package/dist/plugins/http-orpc.d.ts +55 -0
- package/dist/plugins/http-orpc.d.ts.map +1 -0
- package/dist/plugins/http-orpc.js +370 -0
- package/dist/plugins/http-orpc.js.map +1 -0
- package/dist/plugins/http-trpc.d.ts +59 -0
- package/dist/plugins/http-trpc.d.ts.map +1 -0
- package/dist/plugins/http-trpc.js +392 -0
- package/dist/plugins/http-trpc.js.map +1 -0
- package/dist/plugins/kysely/queries.d.ts +92 -0
- package/dist/plugins/kysely/queries.d.ts.map +1 -0
- package/dist/plugins/kysely/queries.js +1169 -0
- package/dist/plugins/kysely/queries.js.map +1 -0
- package/dist/plugins/kysely/shared.d.ts +59 -0
- package/dist/plugins/kysely/shared.d.ts.map +1 -0
- package/dist/plugins/kysely/shared.js +247 -0
- package/dist/plugins/kysely/shared.js.map +1 -0
- package/dist/plugins/kysely/types.d.ts +22 -0
- package/dist/plugins/kysely/types.d.ts.map +1 -0
- package/dist/plugins/kysely/types.js +428 -0
- package/dist/plugins/kysely/types.js.map +1 -0
- package/dist/plugins/kysely.d.ts +72 -0
- package/dist/plugins/kysely.d.ts.map +1 -0
- package/dist/plugins/kysely.js +906 -0
- package/dist/plugins/kysely.js.map +1 -0
- package/dist/plugins/sql-queries.d.ts +55 -7
- package/dist/plugins/sql-queries.d.ts.map +1 -1
- package/dist/plugins/sql-queries.js +747 -121
- package/dist/plugins/sql-queries.js.map +1 -1
- package/dist/plugins/types.d.ts +20 -14
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/plugins/types.js +90 -112
- package/dist/plugins/types.js.map +1 -1
- package/dist/plugins/valibot.d.ts +45 -0
- package/dist/plugins/valibot.d.ts.map +1 -0
- package/dist/plugins/valibot.js +422 -0
- package/dist/plugins/valibot.js.map +1 -0
- package/dist/plugins/zod.d.ts +27 -14
- package/dist/plugins/zod.d.ts.map +1 -1
- package/dist/plugins/zod.js +231 -166
- package/dist/plugins/zod.js.map +1 -1
- package/dist/services/artifact-store.d.ts +11 -1
- package/dist/services/artifact-store.d.ts.map +1 -1
- package/dist/services/artifact-store.js +9 -0
- package/dist/services/artifact-store.js.map +1 -1
- package/dist/services/config-loader.d.ts +4 -0
- package/dist/services/config-loader.d.ts.map +1 -1
- package/dist/services/config-loader.js +1 -1
- package/dist/services/config-loader.js.map +1 -1
- package/dist/services/config.d.ts +57 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +66 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/core-providers.d.ts +15 -0
- package/dist/services/core-providers.d.ts.map +1 -0
- package/dist/services/core-providers.js +23 -0
- package/dist/services/core-providers.js.map +1 -0
- package/dist/services/emissions.d.ts +14 -0
- package/dist/services/emissions.d.ts.map +1 -1
- package/dist/services/emissions.js +86 -47
- package/dist/services/emissions.js.map +1 -1
- package/dist/services/execution.d.ts +35 -0
- package/dist/services/execution.d.ts.map +1 -0
- package/dist/services/execution.js +86 -0
- package/dist/services/execution.js.map +1 -0
- package/dist/services/file-builder.d.ts +4 -0
- package/dist/services/file-builder.d.ts.map +1 -1
- package/dist/services/file-builder.js.map +1 -1
- package/dist/services/inflection.d.ts +2 -2
- package/dist/services/inflection.d.ts.map +1 -1
- package/dist/services/inflection.js +4 -4
- package/dist/services/inflection.js.map +1 -1
- package/dist/services/ir-builder.d.ts.map +1 -1
- package/dist/services/ir-builder.js +10 -3
- package/dist/services/ir-builder.js.map +1 -1
- package/dist/services/pg-types.d.ts +31 -0
- package/dist/services/pg-types.d.ts.map +1 -1
- package/dist/services/pg-types.js +24 -0
- package/dist/services/pg-types.js.map +1 -1
- package/dist/services/plugin-runner.d.ts +27 -37
- package/dist/services/plugin-runner.d.ts.map +1 -1
- package/dist/services/plugin-runner.js +73 -171
- package/dist/services/plugin-runner.js.map +1 -1
- package/dist/services/plugin.d.ts +350 -215
- package/dist/services/plugin.d.ts.map +1 -1
- package/dist/services/plugin.js +182 -130
- package/dist/services/plugin.js.map +1 -1
- package/dist/services/resolution.d.ts +38 -0
- package/dist/services/resolution.d.ts.map +1 -0
- package/dist/services/resolution.js +242 -0
- package/dist/services/resolution.js.map +1 -0
- package/dist/services/service-registry.d.ts +74 -0
- package/dist/services/service-registry.d.ts.map +1 -0
- package/dist/services/service-registry.js +61 -0
- package/dist/services/service-registry.js.map +1 -0
- package/dist/services/symbols.d.ts +59 -0
- package/dist/services/symbols.d.ts.map +1 -1
- package/dist/services/symbols.js +16 -0
- package/dist/services/symbols.js.map +1 -1
- package/dist/testing.d.ts +4 -25
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +2 -23
- package/dist/testing.js.map +1 -1
- package/package.json +1 -1
- package/dist/plugins/effect-model.d.ts +0 -17
- package/dist/plugins/effect-model.d.ts.map +0 -1
- package/dist/plugins/effect-model.js +0 -409
- package/dist/plugins/effect-model.js.map +0 -1
- package/dist/plugins/kysely-queries.d.ts +0 -66
- package/dist/plugins/kysely-queries.d.ts.map +0 -1
- package/dist/plugins/kysely-queries.js +0 -960
- package/dist/plugins/kysely-queries.js.map +0 -1
- package/dist/plugins/kysely-types.d.ts +0 -35
- package/dist/plugins/kysely-types.d.ts.map +0 -1
- package/dist/plugins/kysely-types.js +0 -601
- 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":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAe,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAyC,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAiB7D;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAGjE;CAAG;AAEN;;GAEG;AACH,MAAM,iBAAiB,GAAG;
|
|
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,
|
|
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
|
|
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
|
-
|
|
171
|
-
|
|
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"}
|