@danielfgray/pg-sourcerer 0.2.1 → 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 +3 -4
- 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 +5 -9
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +27 -29
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +19 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -13
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +39 -9
- 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 +66 -0
- package/dist/lib/conjure.d.ts.map +1 -1
- package/dist/lib/conjure.js +127 -29
- package/dist/lib/conjure.js.map +1 -1
- package/dist/lib/hex.d.ts +10 -3
- package/dist/lib/hex.d.ts.map +1 -1
- package/dist/lib/hex.js +18 -8
- 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 -11
- package/dist/plugins/sql-queries.d.ts.map +1 -1
- package/dist/plugins/sql-queries.js +467 -218
- 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/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 +349 -217
- 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 -951
- 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
package/dist/plugins/zod.js
CHANGED
|
@@ -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
|
-
*
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
106
|
-
enumSchema = buildZodEnum(resolved.enumDef.values);
|
|
108
|
+
baseSchema = buildZodChain("unknown", []);
|
|
107
109
|
}
|
|
108
|
-
return applyFieldModifiers(enumSchema, field);
|
|
109
110
|
}
|
|
110
|
-
//
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
//
|
|
115
|
-
if (
|
|
116
|
-
|
|
117
|
-
return applyFieldModifiers(dateSchema, field);
|
|
117
|
+
// Wrap with array if needed
|
|
118
|
+
if (field.isArray) {
|
|
119
|
+
baseSchema = buildZodArray(baseSchema);
|
|
118
120
|
}
|
|
119
|
-
//
|
|
120
|
-
|
|
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
|
-
//
|
|
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
|
|
144
|
+
const schemaSymbolCtx = { capability: "schemas", entity: entityName, shape: shapeKind };
|
|
137
145
|
const schemaExpr = buildShapeZodObject(shape, ctx);
|
|
138
|
-
const schemaStatement = exp.const(shape.name,
|
|
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,
|
|
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
|
|
183
|
+
const schemaSymbolCtx = { capability: "schemas", entity: composite.name };
|
|
174
184
|
const schemaExpr = buildCompositeZodObject(composite, ctx);
|
|
175
|
-
const schemaStatement = exp.const(composite.name,
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
243
|
+
ref: { capability: "schemas", entity: enumName },
|
|
233
244
|
}));
|
|
234
245
|
// ============================================================================
|
|
235
|
-
//
|
|
246
|
+
// Schema Builder Service
|
|
236
247
|
// ============================================================================
|
|
237
248
|
/**
|
|
238
|
-
* Zod
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
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
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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
|
package/dist/plugins/zod.js.map
CHANGED
|
@@ -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,
|
|
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;
|
|
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"}
|
|
@@ -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"}
|