@danielfgray/pg-sourcerer 0.2.2 → 0.4.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 (307) hide show
  1. package/bin/pgsourcerer +2 -0
  2. package/dist/__tests__/fixtures/index.d.ts +15 -0
  3. package/dist/__tests__/fixtures/index.d.ts.map +1 -0
  4. package/dist/__tests__/fixtures/index.js +19 -0
  5. package/dist/__tests__/fixtures/index.js.map +1 -0
  6. package/dist/__tests__/fixtures/introspection.json +40522 -0
  7. package/dist/cli.d.ts +0 -1
  8. package/dist/cli.js +7 -46
  9. package/dist/cli.js.map +1 -1
  10. package/dist/config.d.ts +38 -5
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +13 -2
  13. package/dist/config.js.map +1 -1
  14. package/dist/{lib/conjure.d.ts → conjure/index.d.ts} +62 -3
  15. package/dist/conjure/index.d.ts.map +1 -0
  16. package/dist/{lib/conjure.js → conjure/index.js} +124 -3
  17. package/dist/conjure/index.js.map +1 -0
  18. package/dist/conjure/signature.d.ts +85 -0
  19. package/dist/conjure/signature.d.ts.map +1 -0
  20. package/dist/conjure/signature.js +130 -0
  21. package/dist/conjure/signature.js.map +1 -0
  22. package/dist/conjure/types.d.ts +97 -0
  23. package/dist/conjure/types.d.ts.map +1 -0
  24. package/dist/conjure/types.js +206 -0
  25. package/dist/conjure/types.js.map +1 -0
  26. package/dist/errors.d.ts +114 -139
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/errors.js +82 -36
  29. package/dist/errors.js.map +1 -1
  30. package/dist/generate.d.ts +45 -46
  31. package/dist/generate.d.ts.map +1 -1
  32. package/dist/generate.js +86 -59
  33. package/dist/generate.js.map +1 -1
  34. package/dist/hex/builder.d.ts +12 -0
  35. package/dist/hex/builder.d.ts.map +1 -0
  36. package/dist/hex/builder.js +64 -0
  37. package/dist/hex/builder.js.map +1 -0
  38. package/dist/hex/ddl.d.ts +53 -0
  39. package/dist/hex/ddl.d.ts.map +1 -0
  40. package/dist/hex/ddl.js +306 -0
  41. package/dist/hex/ddl.js.map +1 -0
  42. package/dist/hex/index.d.ts +105 -0
  43. package/dist/hex/index.d.ts.map +1 -0
  44. package/dist/hex/index.js +81 -0
  45. package/dist/hex/index.js.map +1 -0
  46. package/dist/hex/primitives.d.ts +23 -0
  47. package/dist/hex/primitives.d.ts.map +1 -0
  48. package/dist/hex/primitives.js +38 -0
  49. package/dist/hex/primitives.js.map +1 -0
  50. package/dist/hex/query.d.ts +116 -0
  51. package/dist/hex/query.d.ts.map +1 -0
  52. package/dist/hex/query.js +219 -0
  53. package/dist/hex/query.js.map +1 -0
  54. package/dist/hex/types.d.ts +287 -0
  55. package/dist/hex/types.d.ts.map +1 -0
  56. package/dist/hex/types.js +431 -0
  57. package/dist/hex/types.js.map +1 -0
  58. package/dist/index.d.ts +17 -25
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +33 -44
  61. package/dist/index.js.map +1 -1
  62. package/dist/init.d.ts.map +1 -1
  63. package/dist/init.js +76 -140
  64. package/dist/init.js.map +1 -1
  65. package/dist/ir/extensions/queries.d.ts +6 -6
  66. package/dist/ir/extensions/queries.d.ts.map +1 -1
  67. package/dist/ir/extensions/queries.js +6 -4
  68. package/dist/ir/extensions/queries.js.map +1 -1
  69. package/dist/ir/extensions/schema-builder.d.ts.map +1 -1
  70. package/dist/ir/extensions/schema-builder.js.map +1 -1
  71. package/dist/ir/index.d.ts.map +1 -1
  72. package/dist/ir/index.js.map +1 -1
  73. package/dist/ir/relation-graph.d.ts.map +1 -1
  74. package/dist/ir/relation-graph.js +8 -8
  75. package/dist/ir/relation-graph.js.map +1 -1
  76. package/dist/ir/semantic-ir.d.ts +38 -0
  77. package/dist/ir/semantic-ir.d.ts.map +1 -1
  78. package/dist/ir/semantic-ir.js +50 -2
  79. package/dist/ir/semantic-ir.js.map +1 -1
  80. package/dist/ir/smart-tags.d.ts.map +1 -1
  81. package/dist/ir/smart-tags.js.map +1 -1
  82. package/dist/lib/field-utils.d.ts.map +1 -1
  83. package/dist/lib/field-utils.js +7 -7
  84. package/dist/lib/field-utils.js.map +1 -1
  85. package/dist/lib/join-graph.d.ts +95 -0
  86. package/dist/lib/join-graph.d.ts.map +1 -0
  87. package/dist/lib/join-graph.js +305 -0
  88. package/dist/lib/join-graph.js.map +1 -0
  89. package/dist/lib/picker.d.ts +60 -0
  90. package/dist/lib/picker.d.ts.map +1 -0
  91. package/dist/lib/picker.js +325 -0
  92. package/dist/lib/picker.js.map +1 -0
  93. package/dist/plugins/arktype.d.ts +20 -24
  94. package/dist/plugins/arktype.d.ts.map +1 -1
  95. package/dist/plugins/arktype.js +462 -386
  96. package/dist/plugins/arktype.js.map +1 -1
  97. package/dist/plugins/effect/http.d.ts +7 -0
  98. package/dist/plugins/effect/http.d.ts.map +1 -0
  99. package/dist/plugins/effect/http.js +460 -0
  100. package/dist/plugins/effect/http.js.map +1 -0
  101. package/dist/plugins/effect/index.d.ts +22 -0
  102. package/dist/plugins/effect/index.d.ts.map +1 -0
  103. package/dist/plugins/effect/index.js +65 -0
  104. package/dist/plugins/effect/index.js.map +1 -0
  105. package/dist/plugins/effect/models.d.ts +6 -0
  106. package/dist/plugins/effect/models.d.ts.map +1 -0
  107. package/dist/plugins/effect/models.js +116 -0
  108. package/dist/plugins/effect/models.js.map +1 -0
  109. package/dist/plugins/effect/repos.d.ts +21 -0
  110. package/dist/plugins/effect/repos.d.ts.map +1 -0
  111. package/dist/plugins/effect/repos.js +131 -0
  112. package/dist/plugins/effect/repos.js.map +1 -0
  113. package/dist/plugins/effect/schemas.d.ts +7 -0
  114. package/dist/plugins/effect/schemas.d.ts.map +1 -0
  115. package/dist/plugins/effect/schemas.js +75 -0
  116. package/dist/plugins/effect/schemas.js.map +1 -0
  117. package/dist/plugins/effect/shared.d.ts +116 -0
  118. package/dist/plugins/effect/shared.d.ts.map +1 -0
  119. package/dist/plugins/effect/shared.js +164 -0
  120. package/dist/plugins/effect/shared.js.map +1 -0
  121. package/dist/plugins/http-elysia.d.ts +20 -27
  122. package/dist/plugins/http-elysia.d.ts.map +1 -1
  123. package/dist/plugins/http-elysia.js +350 -475
  124. package/dist/plugins/http-elysia.js.map +1 -1
  125. package/dist/plugins/http-express.d.ts +20 -31
  126. package/dist/plugins/http-express.d.ts.map +1 -1
  127. package/dist/plugins/http-express.js +281 -268
  128. package/dist/plugins/http-express.js.map +1 -1
  129. package/dist/plugins/http-hono.d.ts +17 -33
  130. package/dist/plugins/http-hono.d.ts.map +1 -1
  131. package/dist/plugins/http-hono.js +317 -341
  132. package/dist/plugins/http-hono.js.map +1 -1
  133. package/dist/plugins/http-orpc.d.ts +34 -33
  134. package/dist/plugins/http-orpc.d.ts.map +1 -1
  135. package/dist/plugins/http-orpc.js +345 -257
  136. package/dist/plugins/http-orpc.js.map +1 -1
  137. package/dist/plugins/http-trpc.d.ts +33 -35
  138. package/dist/plugins/http-trpc.d.ts.map +1 -1
  139. package/dist/plugins/http-trpc.js +337 -241
  140. package/dist/plugins/http-trpc.js.map +1 -1
  141. package/dist/plugins/kysely.d.ts +54 -59
  142. package/dist/plugins/kysely.d.ts.map +1 -1
  143. package/dist/plugins/kysely.js +826 -687
  144. package/dist/plugins/kysely.js.map +1 -1
  145. package/dist/plugins/sql-queries.d.ts +38 -44
  146. package/dist/plugins/sql-queries.d.ts.map +1 -1
  147. package/dist/plugins/sql-queries.js +497 -897
  148. package/dist/plugins/sql-queries.js.map +1 -1
  149. package/dist/plugins/types.d.ts +12 -20
  150. package/dist/plugins/types.d.ts.map +1 -1
  151. package/dist/plugins/types.js +84 -227
  152. package/dist/plugins/types.js.map +1 -1
  153. package/dist/plugins/valibot.d.ts +7 -44
  154. package/dist/plugins/valibot.d.ts.map +1 -1
  155. package/dist/plugins/valibot.js +376 -382
  156. package/dist/plugins/valibot.js.map +1 -1
  157. package/dist/plugins/zod.d.ts +20 -24
  158. package/dist/plugins/zod.d.ts.map +1 -1
  159. package/dist/plugins/zod.js +370 -367
  160. package/dist/plugins/zod.js.map +1 -1
  161. package/dist/runtime/emit.d.ts +64 -0
  162. package/dist/runtime/emit.d.ts.map +1 -0
  163. package/dist/runtime/emit.js +445 -0
  164. package/dist/runtime/emit.js.map +1 -0
  165. package/dist/runtime/errors.d.ts +36 -0
  166. package/dist/runtime/errors.d.ts.map +1 -0
  167. package/dist/runtime/errors.js +29 -0
  168. package/dist/runtime/errors.js.map +1 -0
  169. package/dist/runtime/file-assignment.d.ts +161 -0
  170. package/dist/runtime/file-assignment.d.ts.map +1 -0
  171. package/dist/runtime/file-assignment.js +195 -0
  172. package/dist/runtime/file-assignment.js.map +1 -0
  173. package/dist/runtime/orchestrator.d.ts +62 -0
  174. package/dist/runtime/orchestrator.d.ts.map +1 -0
  175. package/dist/runtime/orchestrator.js +99 -0
  176. package/dist/runtime/orchestrator.js.map +1 -0
  177. package/dist/runtime/registry.d.ts +268 -0
  178. package/dist/runtime/registry.d.ts.map +1 -0
  179. package/dist/runtime/registry.js +436 -0
  180. package/dist/runtime/registry.js.map +1 -0
  181. package/dist/runtime/types.d.ts +182 -0
  182. package/dist/runtime/types.d.ts.map +1 -0
  183. package/dist/runtime/types.js +2 -0
  184. package/dist/runtime/types.js.map +1 -0
  185. package/dist/runtime/validation.d.ts +41 -0
  186. package/dist/runtime/validation.d.ts.map +1 -0
  187. package/dist/runtime/validation.js +70 -0
  188. package/dist/runtime/validation.js.map +1 -0
  189. package/dist/services/config-loader.d.ts.map +1 -1
  190. package/dist/services/config-loader.js +15 -6
  191. package/dist/services/config-loader.js.map +1 -1
  192. package/dist/services/config.d.ts +55 -25
  193. package/dist/services/config.d.ts.map +1 -1
  194. package/dist/services/config.js +60 -34
  195. package/dist/services/config.js.map +1 -1
  196. package/dist/services/file-writer.d.ts +3 -3
  197. package/dist/services/file-writer.d.ts.map +1 -1
  198. package/dist/services/file-writer.js +6 -8
  199. package/dist/services/file-writer.js.map +1 -1
  200. package/dist/services/inflection.d.ts +126 -27
  201. package/dist/services/inflection.d.ts.map +1 -1
  202. package/dist/services/inflection.js +300 -72
  203. package/dist/services/inflection.js.map +1 -1
  204. package/dist/services/introspection.d.ts.map +1 -1
  205. package/dist/services/introspection.js +6 -6
  206. package/dist/services/introspection.js.map +1 -1
  207. package/dist/services/ir-builder.d.ts.map +1 -1
  208. package/dist/services/ir-builder.js +73 -77
  209. package/dist/services/ir-builder.js.map +1 -1
  210. package/dist/services/ir.d.ts.map +1 -1
  211. package/dist/services/ir.js.map +1 -1
  212. package/dist/services/pg-types.d.ts.map +1 -1
  213. package/dist/services/pg-types.js +3 -3
  214. package/dist/services/pg-types.js.map +1 -1
  215. package/dist/services/smart-tags-parser.d.ts.map +1 -1
  216. package/dist/services/smart-tags-parser.js +4 -4
  217. package/dist/services/smart-tags-parser.js.map +1 -1
  218. package/dist/services/type-hints.d.ts.map +1 -1
  219. package/dist/services/type-hints.js +1 -1
  220. package/dist/services/type-hints.js.map +1 -1
  221. package/dist/services/user-module-parser.d.ts +46 -0
  222. package/dist/services/user-module-parser.d.ts.map +1 -0
  223. package/dist/services/user-module-parser.js +181 -0
  224. package/dist/services/user-module-parser.js.map +1 -0
  225. package/dist/shared/converters.d.ts +60 -0
  226. package/dist/shared/converters.d.ts.map +1 -0
  227. package/dist/shared/converters.js +168 -0
  228. package/dist/shared/converters.js.map +1 -0
  229. package/dist/shared/query-types.d.ts +95 -0
  230. package/dist/shared/query-types.d.ts.map +1 -0
  231. package/dist/shared/query-types.js +9 -0
  232. package/dist/shared/query-types.js.map +1 -0
  233. package/dist/testing.d.ts +125 -37
  234. package/dist/testing.d.ts.map +1 -1
  235. package/dist/testing.js +134 -42
  236. package/dist/testing.js.map +1 -1
  237. package/dist/user-module.d.ts +86 -0
  238. package/dist/user-module.d.ts.map +1 -0
  239. package/dist/user-module.js +55 -0
  240. package/dist/user-module.js.map +1 -0
  241. package/package.json +10 -6
  242. package/dist/lib/conjure.d.ts.map +0 -1
  243. package/dist/lib/conjure.js.map +0 -1
  244. package/dist/lib/hex.d.ts +0 -119
  245. package/dist/lib/hex.d.ts.map +0 -1
  246. package/dist/lib/hex.js +0 -188
  247. package/dist/lib/hex.js.map +0 -1
  248. package/dist/plugins/effect.d.ts +0 -53
  249. package/dist/plugins/effect.d.ts.map +0 -1
  250. package/dist/plugins/effect.js +0 -1074
  251. package/dist/plugins/effect.js.map +0 -1
  252. package/dist/plugins/kysely/queries.d.ts +0 -92
  253. package/dist/plugins/kysely/queries.d.ts.map +0 -1
  254. package/dist/plugins/kysely/queries.js +0 -1169
  255. package/dist/plugins/kysely/queries.js.map +0 -1
  256. package/dist/plugins/kysely/shared.d.ts +0 -59
  257. package/dist/plugins/kysely/shared.d.ts.map +0 -1
  258. package/dist/plugins/kysely/shared.js +0 -247
  259. package/dist/plugins/kysely/shared.js.map +0 -1
  260. package/dist/plugins/kysely/types.d.ts +0 -22
  261. package/dist/plugins/kysely/types.d.ts.map +0 -1
  262. package/dist/plugins/kysely/types.js +0 -428
  263. package/dist/plugins/kysely/types.js.map +0 -1
  264. package/dist/services/artifact-store.d.ts +0 -65
  265. package/dist/services/artifact-store.d.ts.map +0 -1
  266. package/dist/services/artifact-store.js +0 -57
  267. package/dist/services/artifact-store.js.map +0 -1
  268. package/dist/services/core-providers.d.ts +0 -15
  269. package/dist/services/core-providers.d.ts.map +0 -1
  270. package/dist/services/core-providers.js +0 -23
  271. package/dist/services/core-providers.js.map +0 -1
  272. package/dist/services/emissions.d.ts +0 -103
  273. package/dist/services/emissions.d.ts.map +0 -1
  274. package/dist/services/emissions.js +0 -241
  275. package/dist/services/emissions.js.map +0 -1
  276. package/dist/services/execution.d.ts +0 -35
  277. package/dist/services/execution.d.ts.map +0 -1
  278. package/dist/services/execution.js +0 -86
  279. package/dist/services/execution.js.map +0 -1
  280. package/dist/services/file-builder.d.ts +0 -85
  281. package/dist/services/file-builder.d.ts.map +0 -1
  282. package/dist/services/file-builder.js +0 -112
  283. package/dist/services/file-builder.js.map +0 -1
  284. package/dist/services/plugin-meta.d.ts +0 -33
  285. package/dist/services/plugin-meta.d.ts.map +0 -1
  286. package/dist/services/plugin-meta.js +0 -24
  287. package/dist/services/plugin-meta.js.map +0 -1
  288. package/dist/services/plugin-runner.d.ts +0 -42
  289. package/dist/services/plugin-runner.d.ts.map +0 -1
  290. package/dist/services/plugin-runner.js +0 -84
  291. package/dist/services/plugin-runner.js.map +0 -1
  292. package/dist/services/plugin.d.ts +0 -421
  293. package/dist/services/plugin.d.ts.map +0 -1
  294. package/dist/services/plugin.js +0 -197
  295. package/dist/services/plugin.js.map +0 -1
  296. package/dist/services/resolution.d.ts +0 -38
  297. package/dist/services/resolution.d.ts.map +0 -1
  298. package/dist/services/resolution.js +0 -242
  299. package/dist/services/resolution.js.map +0 -1
  300. package/dist/services/service-registry.d.ts +0 -74
  301. package/dist/services/service-registry.d.ts.map +0 -1
  302. package/dist/services/service-registry.js +0 -61
  303. package/dist/services/service-registry.js.map +0 -1
  304. package/dist/services/symbols.d.ts +0 -144
  305. package/dist/services/symbols.d.ts.map +0 -1
  306. package/dist/services/symbols.js +0 -144
  307. package/dist/services/symbols.js.map +0 -1
@@ -1,112 +0,0 @@
1
- /**
2
- * FileBuilder - Fluent API for structured file emission
3
- *
4
- * Provides a builder pattern for constructing files with:
5
- * - Header comments
6
- * - Import declarations (resolved after all plugins run)
7
- * - AST program body with symbol metadata extraction
8
- */
9
- import recast from "recast";
10
- // =============================================================================
11
- // Type Guards
12
- // =============================================================================
13
- function isSymbolProgram(prog) {
14
- return "_tag" in prog && prog._tag === "SymbolProgram";
15
- }
16
- /**
17
- * Create a FileBuilder instance
18
- */
19
- export function createFileBuilder(path, plugin, emissions, symbolRegistry) {
20
- const state = {
21
- path,
22
- plugin,
23
- headers: [],
24
- imports: [],
25
- statements: [],
26
- symbols: [],
27
- rawContent: null,
28
- };
29
- const builder = {
30
- header(content) {
31
- if (typeof content === "string") {
32
- state.headers.push(content);
33
- }
34
- else {
35
- // Convert statements to string via placeholder
36
- // For now, just store a marker - actual serialization happens in emit()
37
- throw new Error("AST headers not yet implemented - use string headers for now");
38
- }
39
- return builder;
40
- },
41
- import(ref) {
42
- state.imports.push(ref);
43
- return builder;
44
- },
45
- ast(program) {
46
- if (state.rawContent !== null) {
47
- throw new Error(`Cannot mix ast() and content() for file ${state.path}`);
48
- }
49
- if (isSymbolProgram(program)) {
50
- // Extract statements and symbols
51
- state.statements.push(...program.node.body);
52
- state.symbols.push(...program.symbols);
53
- }
54
- else {
55
- // Plain n.Program - just extract statements
56
- state.statements.push(...program.body);
57
- }
58
- return builder;
59
- },
60
- content(text) {
61
- if (state.statements.length > 0) {
62
- throw new Error(`Cannot mix content() and ast() for file ${state.path}`);
63
- }
64
- state.rawContent =
65
- state.rawContent !== null ? state.rawContent + text : text;
66
- return builder;
67
- },
68
- emit() {
69
- // Register all symbols with file path
70
- for (const meta of state.symbols) {
71
- const baseSymbol = {
72
- name: meta.name,
73
- file: state.path,
74
- capability: meta.capability,
75
- entity: meta.entity,
76
- isType: meta.isType,
77
- isDefault: meta.isDefault ?? false,
78
- };
79
- const symbol = meta.shape !== undefined
80
- ? { ...baseSymbol, shape: meta.shape }
81
- : baseSymbol;
82
- symbolRegistry.register(symbol, state.plugin);
83
- }
84
- // Build header string
85
- const headerStr = state.headers.length > 0 ? state.headers.join("\n") + "\n" : undefined;
86
- if (state.rawContent !== null) {
87
- // Raw content mode
88
- const fullContent = headerStr
89
- ? headerStr + state.rawContent
90
- : state.rawContent;
91
- emissions.emit(state.path, fullContent, state.plugin);
92
- }
93
- else {
94
- // AST mode - create program and emit via emitAst
95
- // Import resolution will happen in a later pass
96
- const b = recast.types.builders;
97
- // Type assertion needed: recast's StatementKind is compatible with n.Statement
98
- const program = b.program(state.statements);
99
- // Emit AST with imports for resolution during serializeAst
100
- emissions.emitAst(state.path, program, state.plugin, headerStr, state.imports.length > 0 ? state.imports : undefined);
101
- }
102
- },
103
- };
104
- return builder;
105
- }
106
- /**
107
- * Create a factory that produces FileBuilders with shared context
108
- */
109
- export function createFileBuilderFactory(plugin, emissions, symbolRegistry) {
110
- return (path) => createFileBuilder(path, plugin, emissions, symbolRegistry);
111
- }
112
- //# sourceMappingURL=file-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-builder.js","sourceRoot":"","sources":["../../src/services/file-builder.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Plugin Meta Service
3
- *
4
- * Provides metadata about the currently executing plugin.
5
- * This is a per-plugin value - a new layer is created for each plugin.
6
- */
7
- import { Context } from "effect";
8
- /**
9
- * Plugin metadata interface
10
- */
11
- export interface PluginMetaInfo {
12
- /** The plugin's name */
13
- readonly name: string;
14
- }
15
- declare const PluginMeta_base: Context.TagClass<PluginMeta, "PluginMeta", PluginMetaInfo>;
16
- /**
17
- * PluginMeta service tag
18
- *
19
- * Usage in plugins:
20
- * ```typescript
21
- * const meta = yield* PluginMeta
22
- * console.log(`Running plugin: ${meta.name}`)
23
- * ```
24
- *
25
- * Layer is created per-plugin by PluginRunner:
26
- * ```typescript
27
- * const metaLayer = Layer.succeed(PluginMeta, { name: plugin.name })
28
- * ```
29
- */
30
- export declare class PluginMeta extends PluginMeta_base {
31
- }
32
- export {};
33
- //# sourceMappingURL=plugin-meta.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-meta.d.ts","sourceRoot":"","sources":["../../src/services/plugin-meta.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAW,SAAQ,eAAuD;CAAG"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Plugin Meta Service
3
- *
4
- * Provides metadata about the currently executing plugin.
5
- * This is a per-plugin value - a new layer is created for each plugin.
6
- */
7
- import { Context } from "effect";
8
- /**
9
- * PluginMeta service tag
10
- *
11
- * Usage in plugins:
12
- * ```typescript
13
- * const meta = yield* PluginMeta
14
- * console.log(`Running plugin: ${meta.name}`)
15
- * ```
16
- *
17
- * Layer is created per-plugin by PluginRunner:
18
- * ```typescript
19
- * const metaLayer = Layer.succeed(PluginMeta, { name: plugin.name })
20
- * ```
21
- */
22
- export class PluginMeta extends Context.Tag("PluginMeta")() {
23
- }
24
- //# sourceMappingURL=plugin-meta.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-meta.js","sourceRoot":"","sources":["../../src/services/plugin-meta.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAUhC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,UAAW,SAAQ,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAA8B;CAAG"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Plugin Runner Service
3
- *
4
- * Orchestrates the plugin system: registration → resolution → execution.
5
- */
6
- import { Effect } from "effect";
7
- import { type Plugin, type PluginError } from "./plugin.js";
8
- import { type EmissionBuffer } from "./emissions.js";
9
- import { type SymbolRegistry } from "./symbols.js";
10
- import { EmitConflict, SymbolConflict, UndefinedReference } from "../errors.js";
11
- import type { SemanticIR } from "../ir/semantic-ir.js";
12
- import type { TypeHintRegistry } from "./type-hints.js";
13
- import type { CoreInflection } from "./inflection.js";
14
- /**
15
- * Context required to run plugins.
16
- * Contains the IR and services that all plugins need access to.
17
- */
18
- export interface PluginRunContext {
19
- readonly ir: SemanticIR;
20
- readonly typeHints: TypeHintRegistry;
21
- readonly inflection: CoreInflection;
22
- }
23
- /**
24
- * Result of running plugins
25
- */
26
- export interface PluginRunResult {
27
- readonly emissions: EmissionBuffer;
28
- readonly symbols: SymbolRegistry;
29
- }
30
- /**
31
- * Errors that can occur during plugin execution
32
- */
33
- export type PluginRunError = PluginError | EmitConflict | SymbolConflict | UndefinedReference;
34
- /**
35
- * Run plugins through the full pipeline.
36
- *
37
- * @param plugins - Plugins to run (from config.plugins)
38
- * @param context - IR, type hints, and inflection for plugins to access
39
- * @returns Effect with emissions and symbols
40
- */
41
- export declare const runPlugins: (plugins: readonly Plugin[], context: PluginRunContext) => Effect.Effect<PluginRunResult, PluginRunError>;
42
- //# sourceMappingURL=plugin-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-runner.d.ts","sourceRoot":"","sources":["../../src/services/plugin-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EACL,KAAK,MAAM,EACX,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAGxE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAE/E,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;AAMrD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,YAAY,GACZ,cAAc,GACd,kBAAkB,CAAA;AAMtB;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,SAAS,SAAS,MAAM,EAAE,EAC1B,SAAS,gBAAgB,KACxB,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,cAAc,CA2E5C,CAAA"}
@@ -1,84 +0,0 @@
1
- /**
2
- * Plugin Runner Service
3
- *
4
- * Orchestrates the plugin system: registration → resolution → execution.
5
- */
6
- import { Effect } from "effect";
7
- import { createPluginRegistry, } from "./plugin.js";
8
- import { resolve } from "./resolution.js";
9
- import { execute } from "./execution.js";
10
- import { createEmissionBuffer } from "./emissions.js";
11
- import { createSymbolRegistry } from "./symbols.js";
12
- import { createServiceRegistry } from "./service-registry.js";
13
- import { createFileBuilderFactory } from "./file-builder.js";
14
- import { SymbolConflict, UndefinedReference } from "../errors.js";
15
- import { conjure } from "../lib/conjure.js";
16
- // ============================================================================
17
- // Plugin Runner
18
- // ============================================================================
19
- /**
20
- * Run plugins through the full pipeline.
21
- *
22
- * @param plugins - Plugins to run (from config.plugins)
23
- * @param context - IR, type hints, and inflection for plugins to access
24
- * @returns Effect with emissions and symbols
25
- */
26
- export const runPlugins = (plugins, context) => Effect.gen(function* () {
27
- // 1. Create shared state
28
- const emissions = createEmissionBuffer();
29
- const symbols = createSymbolRegistry();
30
- const registry = createPluginRegistry();
31
- // 2. Register all plugins
32
- for (const plugin of plugins) {
33
- registry.register(plugin);
34
- }
35
- // 3. Resolution phase - match requests to plugins, build DAG
36
- const plan = yield* resolve(registry);
37
- yield* Effect.logDebug(`Execution plan: ${plan.steps.length} steps`);
38
- for (const step of plan.steps) {
39
- yield* Effect.logDebug(` - ${step.provider.name}: ${step.kind}`);
40
- }
41
- // 4. Execution phase - run plugins in topological order
42
- const serviceRegistry = createServiceRegistry();
43
- const services = {
44
- fileBuilder: createFileBuilderFactory("plugin-runner", emissions, symbols),
45
- symbols,
46
- ir: context.ir,
47
- typeHints: context.typeHints,
48
- inflection: context.inflection,
49
- serviceRegistry,
50
- };
51
- yield* execute(plan, registry, services);
52
- // 5. Serialize AST emissions (resolves imports)
53
- emissions.serializeAst(conjure.print, symbols);
54
- // 6. Check for unresolved symbol references
55
- const unresolvedRefs = emissions.getUnresolvedRefs();
56
- if (unresolvedRefs.length > 0) {
57
- yield* Effect.fail(new UndefinedReference({
58
- message: `Undefined symbol references: ${unresolvedRefs
59
- .map((r) => `${r.capability}/${r.entity}${r.shape ? `/${r.shape}` : ""} (requested by ${r.plugin} in ${r.file})`)
60
- .join(", ")}`,
61
- references: unresolvedRefs.map((r) => ({
62
- capability: r.capability,
63
- entity: r.entity,
64
- shape: r.shape,
65
- requestedBy: r.plugin,
66
- inFile: r.file,
67
- })),
68
- }));
69
- }
70
- // 7. Validate emissions for conflicts
71
- yield* emissions.validate();
72
- // 8. Validate symbols for collisions
73
- const collisions = symbols.validate();
74
- if (collisions.length > 0) {
75
- yield* Effect.fail(new SymbolConflict({
76
- message: `Symbol collision: "${collisions[0].symbol}" in ${collisions[0].file} from plugins: ${collisions[0].plugins.join(", ")}`,
77
- symbol: collisions[0].symbol,
78
- file: collisions[0].file,
79
- plugins: collisions[0].plugins,
80
- }));
81
- }
82
- return { emissions, symbols };
83
- });
84
- //# sourceMappingURL=plugin-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-runner.js","sourceRoot":"","sources":["../../src/services/plugin-runner.ts"],"names":[],"mappings":"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"}