@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
@@ -7,21 +7,15 @@
7
7
  import { Array as Arr, Option, pipe, Schema as S } from "effect";
8
8
  import { definePlugin } from "../services/plugin.js";
9
9
  import { findEnumByPgName, TsType } from "../services/pg-types.js";
10
+ import { SCHEMA_BUILDER_KIND, } from "../ir/extensions/schema-builder.js";
10
11
  import { getTableEntities, getEnumEntities, getCompositeEntities } from "../ir/semantic-ir.js";
11
12
  import { conjure } from "../lib/conjure.js";
12
13
  import { isUuidType, isDateType, isEnumType, getPgTypeName, resolveFieldType, } from "../lib/field-utils.js";
13
14
  const { ts, exp, obj } = conjure;
14
- // ============================================================================
15
- // Configuration
16
- // ============================================================================
17
- const ZodPluginConfig = S.Struct({
18
- /** Output directory relative to main outputDir */
15
+ const ZodConfigSchema = S.Struct({
19
16
  outputDir: S.optionalWith(S.String, { default: () => "zod" }),
20
- /** Export inferred types alongside schemas */
21
17
  exportTypes: S.optionalWith(S.Boolean, { default: () => true }),
22
- /** How to represent enum values: 'strings' uses z.enum([...]), 'enum' uses z.nativeEnum(TsEnum) */
23
18
  enumStyle: S.optionalWith(S.Union(S.Literal("strings"), S.Literal("enum")), { default: () => "strings" }),
24
- /** Where to define enum types: 'inline' embeds at usage, 'separate' generates enum files */
25
19
  typeReferences: S.optionalWith(S.Union(S.Literal("inline"), S.Literal("separate")), { default: () => "separate" }),
26
20
  });
27
21
  // ============================================================================
@@ -69,58 +63,72 @@ const tsTypeToZodMethod = (tsType) => {
69
63
  return "unknown";
70
64
  }
71
65
  };
66
+ // ============================================================================
67
+ // Field → Zod Schema Resolution
68
+ // ============================================================================
72
69
  /**
73
- * Apply nullable/optional/array modifiers to a base schema
74
- */
75
- const applyFieldModifiers = (schema, field) => {
76
- const modifiers = [];
77
- if (field.nullable)
78
- modifiers.push("nullable");
79
- if (field.optional)
80
- modifiers.push("optional");
81
- const withArray = field.isArray ? buildZodArray(schema) : schema;
82
- return modifiers.length > 0 ? chainZodMethods(withArray, modifiers) : withArray;
83
- };
84
- /**
85
- * Resolve a field to its Zod schema expression
70
+ * Resolve a field to its Zod schema expression.
71
+ *
72
+ * Order of resolution (first match wins):
73
+ * 1. UUID types → z.string().uuid()
74
+ * 2. Date types → z.coerce.date()
75
+ * 3. Enum types → z.enum([...]) or reference
76
+ * 4. Fallback to resolved TypeScript type
77
+ *
78
+ * Then wraps with array/nullable/optional as needed.
86
79
  */
87
80
  const resolveFieldZodSchema = (field, ctx) => {
88
- const resolved = resolveFieldType(field, ctx.enums, ctx.extensions);
89
- // Enum handling
90
- if (resolved.enumDef) {
91
- let enumSchema;
92
- if (ctx.typeReferences === "separate") {
93
- // Reference by name - the enum schema is imported
94
- enumSchema = conjure.id(resolved.enumDef.name).build();
95
- }
96
- else if (ctx.enumStyle === "enum") {
97
- // Inline native enum: z.nativeEnum(EnumName)
98
- // Note: This requires the TS enum to be generated separately
99
- enumSchema = conjure
100
- .id("z")
101
- .method("nativeEnum", [conjure.id(resolved.enumDef.name).build()])
102
- .build();
81
+ // Get the base schema expression
82
+ let baseSchema;
83
+ // 1. UUID types get special treatment
84
+ if (isUuidType(field)) {
85
+ baseSchema = buildZodChain("string", ["uuid"]);
86
+ }
87
+ // 2. Date types use coercion for flexibility
88
+ else if (isDateType(field)) {
89
+ baseSchema = conjure.id("z").prop("coerce").method("date").build();
90
+ }
91
+ // 3. Enum types
92
+ else if (isEnumType(field)) {
93
+ const pgTypeName = getPgTypeName(field);
94
+ const enumDef = pgTypeName
95
+ ? pipe(findEnumByPgName(ctx.enums, pgTypeName), Option.getOrUndefined)
96
+ : undefined;
97
+ if (enumDef) {
98
+ if (ctx.typeReferences === "inline") {
99
+ // Inline the enum values
100
+ baseSchema = buildZodEnum(enumDef.values);
101
+ }
102
+ else {
103
+ // Reference the separate enum schema
104
+ baseSchema = conjure.id(enumDef.name).build();
105
+ }
103
106
  }
104
107
  else {
105
- // Inline strings: z.enum(['a', 'b', 'c'])
106
- enumSchema = buildZodEnum(resolved.enumDef.values);
108
+ baseSchema = buildZodChain("unknown", []);
107
109
  }
108
- return applyFieldModifiers(enumSchema, field);
109
110
  }
110
- // UUID z.string().uuid()
111
- if (isUuidType(field)) {
112
- return applyFieldModifiers(buildZodChain("string", ["uuid"]), field);
111
+ // 4. Fallback to resolved TypeScript type
112
+ else {
113
+ const resolved = resolveFieldType(field, ctx.enums, ctx.extensions);
114
+ const zodMethod = tsTypeToZodMethod(resolved.tsType);
115
+ baseSchema = buildZodChain(zodMethod, []);
113
116
  }
114
- // Date/timestamp z.coerce.date()
115
- if (isDateType(field)) {
116
- const dateSchema = conjure.id("z").prop("coerce").method("date").build();
117
- return applyFieldModifiers(dateSchema, field);
117
+ // Wrap with array if needed
118
+ if (field.isArray) {
119
+ baseSchema = buildZodArray(baseSchema);
118
120
  }
119
- // Standard type mapping
120
- return applyFieldModifiers(buildZodChain(tsTypeToZodMethod(resolved.tsType), []), field);
121
+ // Collect modifiers to chain
122
+ const modifiers = [];
123
+ if (field.nullable)
124
+ modifiers.push("nullable");
125
+ if (field.optional)
126
+ modifiers.push("optional");
127
+ // Apply modifiers
128
+ return modifiers.length > 0 ? chainZodMethods(baseSchema, modifiers) : baseSchema;
121
129
  };
122
130
  // ============================================================================
123
- // Shape → Statement Generation
131
+ // Statement Generators
124
132
  // ============================================================================
125
133
  /**
126
134
  * Build z.object({...}) expression from shape fields
@@ -133,15 +141,17 @@ const buildShapeZodObject = (shape, ctx) => {
133
141
  * Generate schema const + optional inferred type for a shape
134
142
  */
135
143
  const generateShapeStatements = (shape, entityName, shapeKind, ctx, exportTypes) => {
136
- const symbolCtx = { capability: "schemas:zod", entity: entityName, shape: shapeKind };
144
+ const schemaSymbolCtx = { capability: "schemas", entity: entityName, shape: shapeKind };
137
145
  const schemaExpr = buildShapeZodObject(shape, ctx);
138
- const schemaStatement = exp.const(shape.name, symbolCtx, schemaExpr);
146
+ const schemaStatement = exp.const(shape.name, schemaSymbolCtx, schemaExpr);
139
147
  if (!exportTypes) {
140
148
  return [schemaStatement];
141
149
  }
142
150
  // Generate: export type ShapeName = z.infer<typeof ShapeName>
151
+ // Register under "types" capability so other plugins can import
152
+ const typeSymbolCtx = { capability: "types", entity: entityName, shape: shapeKind };
143
153
  const inferType = ts.qualifiedRef("z", "infer", [ts.typeof(shape.name)]);
144
- const typeStatement = exp.type(shape.name, symbolCtx, inferType);
154
+ const typeStatement = exp.type(shape.name, typeSymbolCtx, inferType);
145
155
  return [schemaStatement, typeStatement];
146
156
  };
147
157
  /**
@@ -170,15 +180,17 @@ const buildCompositeZodObject = (composite, ctx) => {
170
180
  * Generate schema const + optional inferred type for a composite type
171
181
  */
172
182
  const generateCompositeStatements = (composite, ctx, exportTypes) => {
173
- const symbolCtx = { capability: "schemas:zod", entity: composite.name };
183
+ const schemaSymbolCtx = { capability: "schemas", entity: composite.name };
174
184
  const schemaExpr = buildCompositeZodObject(composite, ctx);
175
- const schemaStatement = exp.const(composite.name, symbolCtx, schemaExpr);
185
+ const schemaStatement = exp.const(composite.name, schemaSymbolCtx, schemaExpr);
176
186
  if (!exportTypes) {
177
187
  return [schemaStatement];
178
188
  }
179
189
  // Generate: export type CompositeName = z.infer<typeof CompositeName>
190
+ // Register under "types" capability so other plugins can import
191
+ const typeSymbolCtx = { capability: "types", entity: composite.name };
180
192
  const inferType = ts.qualifiedRef("z", "infer", [ts.typeof(composite.name)]);
181
- const typeStatement = exp.type(composite.name, symbolCtx, inferType);
193
+ const typeStatement = exp.type(composite.name, typeSymbolCtx, inferType);
182
194
  return [schemaStatement, typeStatement];
183
195
  };
184
196
  // ============================================================================
@@ -188,33 +200,32 @@ const generateCompositeStatements = (composite, ctx, exportTypes) => {
188
200
  * Generate enum schema statement: export const EnumName = z.enum(['a', 'b', ...])
189
201
  * or for native enums: export enum EnumName { A = 'a', ... } + schema
190
202
  */
191
- const generateEnumStatement = (enumEntity, enumStyle) => {
192
- const symbolCtx = { capability: "schemas:zod", entity: enumEntity.name };
203
+ const generateEnumStatement = (enumEntity, enumStyle, exportTypes) => {
204
+ const schemaSymbolCtx = { capability: "schemas", entity: enumEntity.name };
193
205
  if (enumStyle === "enum") {
194
206
  // Generate: export enum EnumName { A = 'a', B = 'b', ... }
195
207
  // Then: export const EnumNameSchema = z.nativeEnum(EnumName)
196
- const enumDecl = conjure.b.tsEnumDeclaration(conjure.b.identifier(enumEntity.name), enumEntity.values.map(v => conjure.b.tsEnumMember(conjure.b.identifier(v.toUpperCase().replace(/[^A-Z0-9_]/g, "_")), conjure.str(v))));
197
- const enumStatement = {
198
- _tag: "SymbolStatement",
199
- node: conjure.b.exportNamedDeclaration(enumDecl, []),
200
- symbol: {
201
- name: enumEntity.name,
202
- capability: "schemas:zod",
203
- entity: enumEntity.name,
204
- isType: true,
205
- },
206
- };
208
+ const enumStatement = exp.tsEnum(enumEntity.name, { capability: "types", entity: enumEntity.name }, enumEntity.values);
207
209
  const schemaName = `${enumEntity.name}Schema`;
208
210
  const schemaExpr = conjure
209
211
  .id("z")
210
212
  .method("nativeEnum", [conjure.id(enumEntity.name).build()])
211
213
  .build();
212
- const schemaStatement = exp.const(schemaName, symbolCtx, schemaExpr);
214
+ const schemaStatement = exp.const(schemaName, schemaSymbolCtx, schemaExpr);
213
215
  return [enumStatement, schemaStatement];
214
216
  }
215
217
  // strings style: export const EnumName = z.enum(['a', 'b', ...])
216
218
  const schemaExpr = buildZodEnum(enumEntity.values);
217
- return [exp.const(enumEntity.name, symbolCtx, schemaExpr)];
219
+ const schemaStatement = exp.const(enumEntity.name, schemaSymbolCtx, schemaExpr);
220
+ if (!exportTypes) {
221
+ return [schemaStatement];
222
+ }
223
+ // Generate: export type EnumName = z.infer<typeof EnumName>
224
+ // Register under "types" capability so other plugins can import
225
+ const typeSymbolCtx = { capability: "types", entity: enumEntity.name };
226
+ const inferType = ts.qualifiedRef("z", "infer", [ts.typeof(enumEntity.name)]);
227
+ const typeStatement = exp.type(enumEntity.name, typeSymbolCtx, inferType);
228
+ return [schemaStatement, typeStatement];
218
229
  };
219
230
  /** Collect enum names used by fields */
220
231
  const collectUsedEnums = (fields, enums) => {
@@ -229,108 +240,162 @@ const collectUsedEnums = (fields, enums) => {
229
240
  /** Build import refs for used enums */
230
241
  const buildEnumImports = (usedEnums) => Arr.fromIterable(usedEnums).map(enumName => ({
231
242
  kind: "symbol",
232
- ref: { capability: "schemas:zod", entity: enumName },
243
+ ref: { capability: "schemas", entity: enumName },
233
244
  }));
234
245
  // ============================================================================
235
- // Plugin Definition
246
+ // Schema Builder Service
236
247
  // ============================================================================
237
248
  /**
238
- * Zod Plugin
239
- *
240
- * Generates Zod schemas for each entity's shapes (base, Insert, Update)
241
- * with inferred TypeScript types.
249
+ * Build Zod schema expression for a single param.
250
+ * Uses z.coerce for numeric types since URL params are always strings.
242
251
  */
243
- export const zodPlugin = definePlugin({
244
- name: "zod",
245
- provides: ["schemas:zod", "schemas"],
246
- configSchema: ZodPluginConfig,
247
- inflection: {
248
- outputFile: ctx => `${ctx.entityName}.ts`,
249
- symbolName: (entityName, artifactKind) => `${entityName}${artifactKind}`,
250
- },
251
- run: (ctx, config) => {
252
- const enumEntities = getEnumEntities(ctx.ir);
253
- const fieldCtx = {
254
- enums: enumEntities,
255
- extensions: ctx.ir.extensions,
256
- enumStyle: config.enumStyle,
257
- typeReferences: config.typeReferences,
258
- };
259
- // Generate separate enum files if configured
260
- if (config.typeReferences === "separate") {
261
- enumEntities
262
- .filter(e => e.tags.omit !== true)
263
- .forEach(enumEntity => {
264
- const fileNameCtx = {
265
- entityName: enumEntity.name,
266
- pgName: enumEntity.pgName,
267
- schema: enumEntity.schemaName,
268
- inflection: ctx.inflection,
269
- entity: enumEntity,
270
- };
271
- const filePath = `${config.outputDir}/${ctx.pluginInflection.outputFile(fileNameCtx)}`;
272
- const statements = generateEnumStatement(enumEntity, config.enumStyle);
273
- ctx
274
- .file(filePath)
275
- .import({ kind: "package", names: ["z"], from: "zod" })
276
- .ast(conjure.symbolProgram(...statements))
277
- .emit();
278
- });
252
+ const buildParamFieldSchema = (param) => {
253
+ const tsType = param.type.toLowerCase();
254
+ let fieldSchema;
255
+ switch (tsType) {
256
+ case "number":
257
+ // z.coerce.number() - converts string "10" to number 10
258
+ fieldSchema = conjure.id("z").prop("coerce").method("number").build();
259
+ break;
260
+ case "boolean":
261
+ // z.coerce.boolean() - converts "true"/"false" strings
262
+ fieldSchema = conjure.id("z").prop("coerce").method("boolean").build();
263
+ break;
264
+ case "bigint":
265
+ // z.coerce.bigint()
266
+ fieldSchema = conjure.id("z").prop("coerce").method("bigint").build();
267
+ break;
268
+ case "date":
269
+ // z.coerce.date() - converts ISO strings to Date objects
270
+ fieldSchema = conjure.id("z").prop("coerce").method("date").build();
271
+ break;
272
+ case "string":
273
+ default:
274
+ // z.string() - no coercion needed
275
+ fieldSchema = buildZodChain("string", []);
276
+ break;
277
+ }
278
+ // Add .optional() for non-required params
279
+ if (!param.required) {
280
+ fieldSchema = chainZodMethods(fieldSchema, ["optional"]);
281
+ }
282
+ return fieldSchema;
283
+ };
284
+ /**
285
+ * Build z.object({ ... }) expression from QueryMethodParam[].
286
+ * For path/query parameter validation in HTTP handlers.
287
+ */
288
+ const buildParamZodObject = (params) => {
289
+ const objBuilder = params.reduce((builder, param) => builder.prop(param.name, buildParamFieldSchema(param)), obj());
290
+ return conjure.id("z").method("object", [objBuilder.build()]).build();
291
+ };
292
+ /**
293
+ * Create a SchemaBuilder implementation for Zod.
294
+ */
295
+ const createZodSchemaBuilder = () => ({
296
+ build: (request) => {
297
+ if (request.params.length === 0) {
298
+ return undefined;
279
299
  }
280
- getTableEntities(ctx.ir)
281
- .filter(entity => entity.tags.omit !== true)
282
- .forEach(entity => {
283
- const statements = generateEntityStatements(entity, fieldCtx, config.exportTypes);
284
- const entityName = ctx.inflection.entityName(entity.pgClass, entity.tags);
285
- const fileNameCtx = {
286
- entityName,
287
- pgName: entity.pgName,
288
- schema: entity.schemaName,
289
- inflection: ctx.inflection,
290
- entity,
291
- };
292
- const fileName = ctx.pluginInflection.outputFile(fileNameCtx);
293
- const filePath = `${config.outputDir}/${fileName}`;
294
- // Collect all fields for enum detection
295
- const allFields = [
296
- ...entity.shapes.row.fields,
297
- ...(entity.shapes.insert?.fields ?? []),
298
- ...(entity.shapes.update?.fields ?? []),
299
- ];
300
- const usedEnums = config.typeReferences === "separate"
301
- ? collectUsedEnums(allFields, Arr.fromIterable(fieldCtx.enums))
302
- : new Set();
303
- const fileBuilder = ctx
304
- .file(filePath)
305
- .import({ kind: "package", names: ["z"], from: "zod" });
306
- // Add enum imports when using separate files
307
- buildEnumImports(usedEnums).forEach(ref => fileBuilder.import(ref));
308
- fileBuilder.ast(conjure.symbolProgram(...statements)).emit();
309
- });
310
- // Generate composite type schemas
311
- getCompositeEntities(ctx.ir)
312
- .filter(composite => composite.tags.omit !== true)
313
- .forEach(composite => {
314
- const statements = generateCompositeStatements(composite, fieldCtx, config.exportTypes);
315
- const fileNameCtx = {
316
- entityName: composite.name,
317
- pgName: composite.pgName,
318
- schema: composite.schemaName,
319
- inflection: ctx.inflection,
320
- entity: composite,
321
- };
322
- const fileName = ctx.pluginInflection.outputFile(fileNameCtx);
323
- const filePath = `${config.outputDir}/${fileName}`;
324
- // Collect enum usage for imports
325
- const usedEnums = config.typeReferences === "separate"
326
- ? collectUsedEnums(composite.fields, Arr.fromIterable(fieldCtx.enums))
327
- : new Set();
328
- const fileBuilder = ctx
329
- .file(filePath)
330
- .import({ kind: "package", names: ["z"], from: "zod" });
331
- buildEnumImports(usedEnums).forEach(ref => fileBuilder.import(ref));
332
- fileBuilder.ast(conjure.symbolProgram(...statements)).emit();
333
- });
300
+ const ast = buildParamZodObject(request.params);
301
+ return {
302
+ ast,
303
+ importSpec: {
304
+ names: ["z"],
305
+ from: "zod",
306
+ },
307
+ };
334
308
  },
335
309
  });
310
+ // ============================================================================
311
+ // Provider Definition
312
+ // ============================================================================
313
+ /**
314
+ * Create a zod provider that generates Zod schemas.
315
+ *
316
+ * @example
317
+ * ```typescript
318
+ * import { zod } from "pg-sourcerer"
319
+ *
320
+ * export default defineConfig({
321
+ * plugins: [
322
+ * zod(),
323
+ * zod({ outputDir: "schemas", exportTypes: false }),
324
+ * ],
325
+ * })
326
+ * ```
327
+ */
328
+ export function zod(config = {}) {
329
+ const parsed = S.decodeUnknownSync(ZodConfigSchema)(config);
330
+ return definePlugin({
331
+ name: "zod",
332
+ kind: "schemas",
333
+ singleton: true,
334
+ canProvide: () => true,
335
+ provide: (_params, _deps, ctx) => {
336
+ const { ir, inflection } = ctx;
337
+ const enumEntities = getEnumEntities(ir);
338
+ // Register schema-builder service for on-demand param/query schema generation
339
+ ctx.registerHandler(SCHEMA_BUILDER_KIND, createZodSchemaBuilder().build);
340
+ const fieldCtx = {
341
+ enums: enumEntities,
342
+ extensions: ir.extensions,
343
+ enumStyle: parsed.enumStyle,
344
+ typeReferences: parsed.typeReferences,
345
+ };
346
+ // Helper to build file path
347
+ const buildFilePath = (entityName) => `${parsed.outputDir}/${entityName}.ts`;
348
+ // Generate separate enum files if configured
349
+ if (parsed.typeReferences === "separate") {
350
+ enumEntities
351
+ .filter(e => e.tags.omit !== true)
352
+ .forEach(enumEntity => {
353
+ const statements = generateEnumStatement(enumEntity, parsed.enumStyle, parsed.exportTypes);
354
+ ctx
355
+ .file(buildFilePath(enumEntity.name))
356
+ .import({ kind: "package", names: ["z"], from: "zod" })
357
+ .ast(conjure.symbolProgram(...statements))
358
+ .emit();
359
+ });
360
+ }
361
+ getTableEntities(ir)
362
+ .filter(entity => entity.tags.omit !== true)
363
+ .forEach(entity => {
364
+ const statements = generateEntityStatements(entity, fieldCtx, parsed.exportTypes);
365
+ const entityName = inflection.entityName(entity.pgClass, entity.tags);
366
+ // Collect all fields for enum detection
367
+ const allFields = [
368
+ ...entity.shapes.row.fields,
369
+ ...(entity.shapes.insert?.fields ?? []),
370
+ ...(entity.shapes.update?.fields ?? []),
371
+ ];
372
+ const usedEnums = parsed.typeReferences === "separate"
373
+ ? collectUsedEnums(allFields, Arr.fromIterable(fieldCtx.enums))
374
+ : new Set();
375
+ const fileBuilder = ctx
376
+ .file(buildFilePath(entityName))
377
+ .import({ kind: "package", names: ["z"], from: "zod" });
378
+ // Add enum imports when using separate files
379
+ buildEnumImports(usedEnums).forEach(ref => fileBuilder.import(ref));
380
+ fileBuilder.ast(conjure.symbolProgram(...statements)).emit();
381
+ });
382
+ // Generate composite type schemas
383
+ getCompositeEntities(ir)
384
+ .filter(composite => composite.tags.omit !== true)
385
+ .forEach(composite => {
386
+ const statements = generateCompositeStatements(composite, fieldCtx, parsed.exportTypes);
387
+ // Collect enum usage for imports
388
+ const usedEnums = parsed.typeReferences === "separate"
389
+ ? collectUsedEnums(composite.fields, Arr.fromIterable(fieldCtx.enums))
390
+ : new Set();
391
+ const fileBuilder = ctx
392
+ .file(buildFilePath(composite.name))
393
+ .import({ kind: "package", names: ["z"], from: "zod" });
394
+ buildEnumImports(usedEnums).forEach(ref => fileBuilder.import(ref));
395
+ fileBuilder.ast(conjure.symbolProgram(...statements)).emit();
396
+ });
397
+ return undefined;
398
+ },
399
+ });
400
+ }
336
401
  //# sourceMappingURL=zod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/plugins/zod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/plugins/zod.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,19 @@ import type { Artifact, CapabilityKey } from "../ir/semantic-ir.js";
14
14
  */
15
15
  export interface ArtifactStoreImpl {
16
16
  /**
17
- * Get an artifact by capability key
17
+ * Get an artifact by exact capability key
18
18
  */
19
19
  readonly get: (capability: CapabilityKey) => Artifact | undefined;
20
+ /**
21
+ * Find an artifact by capability prefix.
22
+ * Returns the first artifact whose capability starts with the given prefix.
23
+ * Useful for finding "queries" regardless of whether it's "queries:sql" or "queries:kysely".
24
+ *
25
+ * @example
26
+ * // Returns artifact from "queries:sql" or "queries:kysely"
27
+ * store.find("queries")
28
+ */
29
+ readonly find: (capabilityPrefix: string) => Artifact | undefined;
20
30
  /**
21
31
  * Store an artifact for a capability
22
32
  * @param capability - The capability key
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-store.d.ts","sourceRoot":"","sources":["../../src/services/artifact-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAgB,OAAO,EAAE,KAAK,EAAgC,MAAM,QAAQ,CAAA;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEnE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,QAAQ,GAAG,SAAS,CAAA;IAEjE;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAEhF;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;CAC5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAyBvD;;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AAEN;;GAEG;AACH,eAAO,MAAM,iBAAiB,0CAAiD,CAAA"}
1
+ {"version":3,"file":"artifact-store.d.ts","sourceRoot":"","sources":["../../src/services/artifact-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAgB,OAAO,EAAE,KAAK,EAAgC,MAAM,QAAQ,CAAA;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEnE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,QAAQ,GAAG,SAAS,CAAA;IAEjE;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAA;IAEjE;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAEhF;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;CAC5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAmCvD;;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AAEN;;GAEG;AACH,eAAO,MAAM,iBAAiB,0CAAiD,CAAA"}
@@ -16,6 +16,15 @@ export function createArtifactStore() {
16
16
  const artifacts = MutableHashMap.empty();
17
17
  return {
18
18
  get: (capability) => Option.getOrUndefined(MutableHashMap.get(artifacts, capability)),
19
+ find: (capabilityPrefix) => {
20
+ // Find first artifact whose capability matches prefix exactly or starts with "prefix:"
21
+ for (const [key, value] of artifacts) {
22
+ if (key === capabilityPrefix || key.startsWith(`${capabilityPrefix}:`)) {
23
+ return value;
24
+ }
25
+ }
26
+ return undefined;
27
+ },
19
28
  set: (capability, plugin, data) => {
20
29
  MutableHashMap.set(artifacts, capability, {
21
30
  capability,
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-store.js","sourceRoot":"","sources":["../../src/services/artifact-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AA0BnF;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAA2B,CAAA;IAEjE,OAAO;QACL,GAAG,EAAE,CAAC,UAAyB,EAAE,EAAE,CACjC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAElE,GAAG,EAAE,CAAC,UAAyB,EAAE,MAAc,EAAE,IAAa,EAAE,EAAE;YAChE,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE;gBACxC,UAAU;gBACV,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,CACX,IAAI,CACF,CAAC,GAAG,SAAS,CAAC,EACd,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,EAA2B,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACnB,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,GAA2C,CACrD;KACJ,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAG5D;CAAG;AAEN;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"artifact-store.js","sourceRoot":"","sources":["../../src/services/artifact-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAqCnF;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAA2B,CAAA;IAEjE,OAAO;QACL,GAAG,EAAE,CAAC,UAAyB,EAAE,EAAE,CACjC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAElE,IAAI,EAAE,CAAC,gBAAwB,EAAE,EAAE;YACjC,uFAAuF;YACvF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;gBACrC,IAAI,GAAG,KAAK,gBAAgB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,gBAAgB,GAAG,CAAC,EAAE,CAAC;oBACvE,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,GAAG,EAAE,CAAC,UAAyB,EAAE,MAAc,EAAE,IAAa,EAAE,EAAE;YAChE,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE;gBACxC,UAAU;gBACV,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,CACX,IAAI,CACF,CAAC,GAAG,SAAS,CAAC,EACd,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,EAA2B,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACnB,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,GAA2C,CACrD;KACJ,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAG5D;CAAG;AAEN;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA"}
@@ -27,6 +27,10 @@ declare const ConfigLoaderService_base: Context.TagClass<ConfigLoaderService, "C
27
27
  */
28
28
  export declare class ConfigLoaderService extends ConfigLoaderService_base {
29
29
  }
30
+ /**
31
+ * Default config file names to search for
32
+ */
33
+ export declare const CONFIG_FILE_NAMES: string[];
30
34
  /**
31
35
  * Create a ConfigLoader implementation
32
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/services/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAkC,MAAM,QAAQ,CAAC;AAEhF,OAAO,EAAU,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;KAC9B,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC;CACrE;;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,wBAGtC;CAAG;AAsCN;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAkEjD;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,gDAA2D,CAAC;AAEzF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAE7D"}
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/services/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAkC,MAAM,QAAQ,CAAC;AAEhF,OAAO,EAAU,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;KAC9B,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC;CACrE;;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,wBAGtC;CAAG;AAEN;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAK7B,CAAC;AA4BF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAkEjD;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,gDAA2D,CAAC;AAEzF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAE7D"}
@@ -16,7 +16,7 @@ export class ConfigLoaderService extends Context.Tag("ConfigLoader")() {
16
16
  /**
17
17
  * Default config file names to search for
18
18
  */
19
- const CONFIG_FILE_NAMES = [
19
+ export const CONFIG_FILE_NAMES = [
20
20
  "pgsourcerer.config.ts",
21
21
  "pgsourcerer.config.js",
22
22
  "pgsourcerer.config.mjs",