@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
@@ -16,19 +16,17 @@ import { findEnumByPgName, TsType } from "../services/pg-types.js";
16
16
  import { getTableEntities, getEnumEntities, getCompositeEntities } from "../ir/semantic-ir.js";
17
17
  import { conjure } from "../lib/conjure.js";
18
18
  import { isUuidType, isDateType, isEnumType, getPgTypeName, resolveFieldType, } from "../lib/field-utils.js";
19
+ import { SCHEMA_BUILDER_KIND, } from "../ir/extensions/schema-builder.js";
19
20
  const { ts, exp, obj } = conjure;
20
- // ============================================================================
21
- // Configuration
22
- // ============================================================================
23
- const ArkTypePluginConfig = S.Struct({
24
- /** Output directory relative to main outputDir */
21
+ const ArkTypeConfigSchema = S.Struct({
25
22
  outputDir: S.optionalWith(S.String, { default: () => "arktype" }),
26
- /** Export inferred types alongside schemas */
27
23
  exportTypes: S.optionalWith(S.Boolean, { default: () => true }),
28
- /** How to represent enum values: 'strings' uses union literals, 'enum' uses TS enum */
29
- enumStyle: S.optionalWith(S.Union(S.Literal("strings"), S.Literal("enum")), { default: () => "strings" }),
30
- /** Where to define enum types: 'inline' embeds at usage, 'separate' generates enum files */
31
- typeReferences: S.optionalWith(S.Union(S.Literal("inline"), S.Literal("separate")), { default: () => "separate" }),
24
+ enumStyle: S.optionalWith(S.Union(S.Literal("strings"), S.Literal("enum")), {
25
+ default: () => "strings",
26
+ }),
27
+ typeReferences: S.optionalWith(S.Union(S.Literal("inline"), S.Literal("separate")), {
28
+ default: () => "separate",
29
+ }),
32
30
  });
33
31
  // ============================================================================
34
32
  // ArkType Schema Builders (pure functions)
@@ -88,8 +86,6 @@ const resolveFieldArkType = (field, ctx) => {
88
86
  if (resolved.enumDef) {
89
87
  if (ctx.typeReferences === "separate") {
90
88
  // Reference by name - will be imported
91
- // ArkType can reference other types by name in a scope, but for simple
92
- // cases we'll use the type directly
93
89
  const baseRef = resolved.enumDef.name;
94
90
  const withMods = buildArkTypeString(baseRef, {
95
91
  nullable: field.nullable,
@@ -165,16 +161,17 @@ const buildShapeArkTypeObject = (shape, ctx) => {
165
161
  * Generate schema const + optional inferred type for a shape
166
162
  */
167
163
  const generateShapeStatements = (shape, entityName, shapeKind, ctx, exportTypes) => {
168
- const symbolCtx = { capability: "schemas:arktype", entity: entityName, shape: shapeKind };
164
+ const schemaSymbolCtx = { capability: "schemas", entity: entityName, shape: shapeKind };
169
165
  const schemaExpr = buildShapeArkTypeObject(shape, ctx);
170
- const schemaStatement = exp.const(shape.name, symbolCtx, schemaExpr);
166
+ const schemaStatement = exp.const(shape.name, schemaSymbolCtx, schemaExpr);
171
167
  if (!exportTypes) {
172
168
  return [schemaStatement];
173
169
  }
174
170
  // Generate: export type ShapeName = typeof ShapeName.infer
175
171
  // ArkType uses Schema.infer for the inferred type
172
+ const typeSymbolCtx = { capability: "types", entity: entityName, shape: shapeKind };
176
173
  const inferType = ts.typeof(`${shape.name}.infer`);
177
- const typeStatement = exp.type(shape.name, symbolCtx, inferType);
174
+ const typeStatement = exp.type(shape.name, typeSymbolCtx, inferType);
178
175
  return [schemaStatement, typeStatement];
179
176
  };
180
177
  /**
@@ -213,15 +210,16 @@ const buildCompositeArkTypeObject = (composite, ctx) => {
213
210
  * Generate schema const + optional inferred type for a composite type
214
211
  */
215
212
  const generateCompositeStatements = (composite, ctx, exportTypes) => {
216
- const symbolCtx = { capability: "schemas:arktype", entity: composite.name };
213
+ const schemaSymbolCtx = { capability: "schemas", entity: composite.name };
217
214
  const schemaExpr = buildCompositeArkTypeObject(composite, ctx);
218
- const schemaStatement = exp.const(composite.name, symbolCtx, schemaExpr);
215
+ const schemaStatement = exp.const(composite.name, schemaSymbolCtx, schemaExpr);
219
216
  if (!exportTypes) {
220
217
  return [schemaStatement];
221
218
  }
222
219
  // Generate: export type CompositeName = typeof CompositeName.infer
220
+ const typeSymbolCtx = { capability: "types", entity: composite.name };
223
221
  const inferType = ts.typeof(`${composite.name}.infer`);
224
- const typeStatement = exp.type(composite.name, symbolCtx, inferType);
222
+ const typeStatement = exp.type(composite.name, typeSymbolCtx, inferType);
225
223
  return [schemaStatement, typeStatement];
226
224
  };
227
225
  // ============================================================================
@@ -232,21 +230,11 @@ const generateCompositeStatements = (composite, ctx, exportTypes) => {
232
230
  * - For 'strings': export const EnumName = type("'a' | 'b' | 'c'")
233
231
  * - For 'enum': export enum EnumName { ... } + const EnumNameType = type("keyof", typeof EnumName)
234
232
  */
235
- const generateEnumStatement = (enumEntity, enumStyle) => {
236
- const symbolCtx = { capability: "schemas:arktype", entity: enumEntity.name };
233
+ const generateEnumStatement = (enumEntity, enumStyle, exportTypes) => {
234
+ const schemaSymbolCtx = { capability: "schemas", entity: enumEntity.name };
237
235
  if (enumStyle === "enum") {
238
236
  // Generate: export enum EnumName { A = 'a', B = 'b', ... }
239
- 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))));
240
- const enumStatement = {
241
- _tag: "SymbolStatement",
242
- node: conjure.b.exportNamedDeclaration(enumDecl, []),
243
- symbol: {
244
- name: enumEntity.name,
245
- capability: "schemas:arktype",
246
- entity: enumEntity.name,
247
- isType: true,
248
- },
249
- };
237
+ const enumStatement = exp.tsEnum(enumEntity.name, { capability: "types", entity: enumEntity.name }, enumEntity.values);
250
238
  // For arktype with native enums: type("keyof", typeof EnumName)
251
239
  const schemaName = `${enumEntity.name}Type`;
252
240
  const typeofExpr = conjure.b.unaryExpression("typeof", conjure.id(enumEntity.name).build(), true);
@@ -254,7 +242,7 @@ const generateEnumStatement = (enumEntity, enumStyle) => {
254
242
  .id("type")
255
243
  .call([conjure.str("keyof"), typeofExpr])
256
244
  .build();
257
- const schemaStatement = exp.const(schemaName, symbolCtx, schemaExpr);
245
+ const schemaStatement = exp.const(schemaName, schemaSymbolCtx, schemaExpr);
258
246
  return [enumStatement, schemaStatement];
259
247
  }
260
248
  // strings style: export const EnumName = type("'a' | 'b' | 'c'")
@@ -263,7 +251,15 @@ const generateEnumStatement = (enumEntity, enumStyle) => {
263
251
  .id("type")
264
252
  .call([conjure.str(enumString)])
265
253
  .build();
266
- return [exp.const(enumEntity.name, symbolCtx, schemaExpr)];
254
+ const schemaStatement = exp.const(enumEntity.name, schemaSymbolCtx, schemaExpr);
255
+ if (!exportTypes) {
256
+ return [schemaStatement];
257
+ }
258
+ // Generate: export type EnumName = typeof EnumName.infer
259
+ const typeSymbolCtx = { capability: "types", entity: enumEntity.name };
260
+ const inferType = ts.typeof(`${enumEntity.name}.infer`);
261
+ const typeStatement = exp.type(enumEntity.name, typeSymbolCtx, inferType);
262
+ return [schemaStatement, typeStatement];
267
263
  };
268
264
  /** Collect enum names used by fields */
269
265
  const collectUsedEnums = (fields, enums) => {
@@ -278,109 +274,149 @@ const collectUsedEnums = (fields, enums) => {
278
274
  /** Build import refs for used enums */
279
275
  const buildEnumImports = (usedEnums) => Arr.fromIterable(usedEnums).map(enumName => ({
280
276
  kind: "symbol",
281
- ref: { capability: "schemas:arktype", entity: enumName },
277
+ ref: { capability: "schemas", entity: enumName },
282
278
  }));
283
279
  // ============================================================================
284
- // Plugin Definition
280
+ // Schema Builder Service
285
281
  // ============================================================================
286
282
  /**
287
- * ArkType Plugin
288
- *
289
- * Generates ArkType schemas for each entity's shapes (base, Insert, Update)
290
- * with inferred TypeScript types.
283
+ * Map TypeScript type string to ArkType string for params.
284
+ * URL params are strings, so we use string.integer for numbers (coerces).
291
285
  */
292
- export const arktypePlugin = definePlugin({
293
- name: "arktype",
294
- provides: ["schemas:arktype", "schemas"],
295
- configSchema: ArkTypePluginConfig,
296
- inflection: {
297
- outputFile: ctx => `${ctx.entityName}.ts`,
298
- symbolName: (entityName, artifactKind) => `${entityName}${artifactKind}`,
299
- },
300
- run: (ctx, config) => {
301
- const enumEntities = getEnumEntities(ctx.ir);
302
- const { enumStyle, typeReferences } = config;
303
- const fieldCtx = {
304
- enums: enumEntities,
305
- extensions: ctx.ir.extensions,
306
- enumStyle,
307
- typeReferences,
308
- };
309
- // Generate separate enum files if configured
310
- if (typeReferences === "separate") {
311
- enumEntities
312
- .filter(e => e.tags.omit !== true)
313
- .forEach(enumEntity => {
314
- const fileNameCtx = {
315
- entityName: enumEntity.name,
316
- pgName: enumEntity.pgName,
317
- schema: enumEntity.schemaName,
318
- inflection: ctx.inflection,
319
- entity: enumEntity,
320
- };
321
- const filePath = `${config.outputDir}/${ctx.pluginInflection.outputFile(fileNameCtx)}`;
322
- const statements = generateEnumStatement(enumEntity, enumStyle);
323
- ctx
324
- .file(filePath)
325
- .import({ kind: "package", names: ["type"], from: "arktype" })
326
- .ast(conjure.symbolProgram(...statements))
327
- .emit();
328
- });
286
+ const paramTypeToArkTypeString = (tsType) => {
287
+ switch (tsType.toLowerCase()) {
288
+ case "number":
289
+ // string.integer parses string to integer
290
+ return "string.integer.parse";
291
+ case "boolean":
292
+ return "string"; // ArkType doesn't have built-in boolean coercion from string
293
+ case "bigint":
294
+ return "string"; // Handle as string, parse manually
295
+ case "string":
296
+ default:
297
+ return "string";
298
+ }
299
+ };
300
+ /**
301
+ * Build type({ ... }) expression from QueryMethodParam[].
302
+ * For path/query parameter validation in HTTP handlers.
303
+ */
304
+ const buildParamArkTypeObject = (params) => {
305
+ const objBuilder = params.reduce((builder, param) => {
306
+ const arkType = paramTypeToArkTypeString(param.type);
307
+ // Use "key?" syntax for optional params
308
+ const key = param.required ? param.name : `${param.name}?`;
309
+ return builder.stringProp(key, conjure.str(arkType));
310
+ }, obj());
311
+ return conjure.id("type").call([objBuilder.build()]).build();
312
+ };
313
+ /**
314
+ * Create a SchemaBuilder implementation for ArkType.
315
+ */
316
+ const createArkTypeSchemaBuilder = () => ({
317
+ build: (request) => {
318
+ if (request.params.length === 0) {
319
+ return undefined;
329
320
  }
330
- getTableEntities(ctx.ir)
331
- .filter(entity => entity.tags.omit !== true)
332
- .forEach(entity => {
333
- const statements = generateEntityStatements(entity, fieldCtx, config.exportTypes);
334
- const entityName = ctx.inflection.entityName(entity.pgClass, entity.tags);
335
- const fileNameCtx = {
336
- entityName,
337
- pgName: entity.pgName,
338
- schema: entity.schemaName,
339
- inflection: ctx.inflection,
340
- entity,
341
- };
342
- const fileName = ctx.pluginInflection.outputFile(fileNameCtx);
343
- const filePath = `${config.outputDir}/${fileName}`;
344
- // Collect all fields for enum detection
345
- const allFields = [
346
- ...entity.shapes.row.fields,
347
- ...(entity.shapes.insert?.fields ?? []),
348
- ...(entity.shapes.update?.fields ?? []),
349
- ];
350
- const usedEnums = typeReferences === "separate"
351
- ? collectUsedEnums(allFields, Arr.fromIterable(fieldCtx.enums))
352
- : new Set();
353
- const fileBuilder = ctx
354
- .file(filePath)
355
- .import({ kind: "package", names: ["type"], from: "arktype" });
356
- // Add enum imports when using separate files
357
- buildEnumImports(usedEnums).forEach(ref => fileBuilder.import(ref));
358
- fileBuilder.ast(conjure.symbolProgram(...statements)).emit();
359
- });
360
- // Generate composite type schemas
361
- getCompositeEntities(ctx.ir)
362
- .filter(composite => composite.tags.omit !== true)
363
- .forEach(composite => {
364
- const statements = generateCompositeStatements(composite, fieldCtx, config.exportTypes);
365
- const fileNameCtx = {
366
- entityName: composite.name,
367
- pgName: composite.pgName,
368
- schema: composite.schemaName,
369
- inflection: ctx.inflection,
370
- entity: composite,
371
- };
372
- const fileName = ctx.pluginInflection.outputFile(fileNameCtx);
373
- const filePath = `${config.outputDir}/${fileName}`;
374
- // Collect enum usage for imports
375
- const usedEnums = typeReferences === "separate"
376
- ? collectUsedEnums(composite.fields, Arr.fromIterable(fieldCtx.enums))
377
- : new Set();
378
- const fileBuilder = ctx
379
- .file(filePath)
380
- .import({ kind: "package", names: ["type"], from: "arktype" });
381
- buildEnumImports(usedEnums).forEach(ref => fileBuilder.import(ref));
382
- fileBuilder.ast(conjure.symbolProgram(...statements)).emit();
383
- });
321
+ const ast = buildParamArkTypeObject(request.params);
322
+ return {
323
+ ast,
324
+ importSpec: {
325
+ names: ["type"],
326
+ from: "arktype",
327
+ },
328
+ };
384
329
  },
385
330
  });
331
+ // ============================================================================
332
+ // Provider Definition
333
+ // ============================================================================
334
+ /**
335
+ * Create an arktype provider that generates ArkType schemas.
336
+ *
337
+ * @example
338
+ * ```typescript
339
+ * import { arktype } from "pg-sourcerer"
340
+ *
341
+ * export default defineConfig({
342
+ * plugins: [
343
+ * arktype(),
344
+ * arktype({ outputDir: "schemas", exportTypes: false }),
345
+ * ],
346
+ * })
347
+ * ```
348
+ */
349
+ export function arktype(config = {}) {
350
+ const parsed = S.decodeUnknownSync(ArkTypeConfigSchema)(config);
351
+ return definePlugin({
352
+ name: "arktype",
353
+ kind: "schemas",
354
+ singleton: true,
355
+ canProvide: () => true,
356
+ provide: (_params, _deps, ctx) => {
357
+ const { ir, inflection } = ctx;
358
+ const enumEntities = getEnumEntities(ir);
359
+ // Register schema-builder service for on-demand param/query schema generation
360
+ ctx.registerHandler(SCHEMA_BUILDER_KIND, createArkTypeSchemaBuilder().build);
361
+ const fieldCtx = {
362
+ enums: enumEntities,
363
+ extensions: ir.extensions,
364
+ enumStyle: parsed.enumStyle,
365
+ typeReferences: parsed.typeReferences,
366
+ };
367
+ // Helper to build file path
368
+ const buildFilePath = (entityName) => `${parsed.outputDir}/${entityName}.ts`;
369
+ // Generate separate enum files if configured
370
+ if (parsed.typeReferences === "separate") {
371
+ enumEntities
372
+ .filter(e => e.tags.omit !== true)
373
+ .forEach(enumEntity => {
374
+ const statements = generateEnumStatement(enumEntity, parsed.enumStyle, parsed.exportTypes);
375
+ ctx
376
+ .file(buildFilePath(enumEntity.name))
377
+ .import({ kind: "package", names: ["type"], from: "arktype" })
378
+ .ast(conjure.symbolProgram(...statements))
379
+ .emit();
380
+ });
381
+ }
382
+ getTableEntities(ir)
383
+ .filter(entity => entity.tags.omit !== true)
384
+ .forEach(entity => {
385
+ const statements = generateEntityStatements(entity, fieldCtx, parsed.exportTypes);
386
+ const entityName = inflection.entityName(entity.pgClass, entity.tags);
387
+ // Collect all fields for enum detection
388
+ const allFields = [
389
+ ...entity.shapes.row.fields,
390
+ ...(entity.shapes.insert?.fields ?? []),
391
+ ...(entity.shapes.update?.fields ?? []),
392
+ ];
393
+ const usedEnums = parsed.typeReferences === "separate"
394
+ ? collectUsedEnums(allFields, Arr.fromIterable(fieldCtx.enums))
395
+ : new Set();
396
+ const fileBuilder = ctx
397
+ .file(buildFilePath(entityName))
398
+ .import({ kind: "package", names: ["type"], from: "arktype" });
399
+ // Add enum imports when using separate files
400
+ buildEnumImports(usedEnums).forEach(ref => fileBuilder.import(ref));
401
+ fileBuilder.ast(conjure.symbolProgram(...statements)).emit();
402
+ });
403
+ // Generate composite type schemas
404
+ getCompositeEntities(ir)
405
+ .filter(composite => composite.tags.omit !== true)
406
+ .forEach(composite => {
407
+ const statements = generateCompositeStatements(composite, fieldCtx, parsed.exportTypes);
408
+ // Collect enum usage for imports
409
+ const usedEnums = parsed.typeReferences === "separate"
410
+ ? collectUsedEnums(composite.fields, Arr.fromIterable(fieldCtx.enums))
411
+ : new Set();
412
+ const fileBuilder = ctx
413
+ .file(buildFilePath(composite.name))
414
+ .import({ kind: "package", names: ["type"], from: "arktype" });
415
+ buildEnumImports(usedEnums).forEach(ref => fileBuilder.import(ref));
416
+ fileBuilder.ast(conjure.symbolProgram(...statements)).emit();
417
+ });
418
+ return undefined;
419
+ },
420
+ });
421
+ }
386
422
  //# sourceMappingURL=arktype.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arktype.js","sourceRoot":"","sources":["../../src/plugins/arktype.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arktype.js","sourceRoot":"","sources":["../../src/plugins/arktype.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { definePlugin } from "../services/plugin.js";
2
+ /**
3
+ * Configuration for the effect plugin
4
+ */
5
+ export interface EffectConfig {
6
+ /** Output directory relative to main outputDir. Default: "effect". Use "." for flat (no subfolder). */
7
+ readonly outputDir?: string;
8
+ /** Subdirectory for models/enums within outputDir. Default: undefined (flat). Example: "schema" */
9
+ readonly schemaDir?: string;
10
+ /** How to represent enum values: 'strings' uses S.Union(S.Literal(...)), 'enum' uses S.Enums(TsEnum) */
11
+ readonly enumStyle?: "strings" | "enum";
12
+ /** Where to define enum types: 'inline' embeds at usage, 'separate' generates enum files */
13
+ readonly typeReferences?: "inline" | "separate";
14
+ /** Export inferred types for composite schemas. Default: true */
15
+ readonly exportTypes?: boolean;
16
+ /** Query generation mode: 'repository' uses Model.makeRepository, 'resolvers' uses SqlSchema functions */
17
+ readonly queryMode?: "repository" | "resolvers";
18
+ /** HTTP API generation config. Set to false to disable. */
19
+ readonly http?: false | {
20
+ readonly enabled?: boolean;
21
+ /** Output subdirectory for API files. Default: "api" */
22
+ readonly outputDir?: string;
23
+ readonly basePath?: string;
24
+ readonly swagger?: boolean;
25
+ };
26
+ }
27
+ /**
28
+ * Effect Plugin
29
+ *
30
+ * Generates @effect/sql Model classes, repositories, and HTTP APIs.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * import { effect } from "pg-sourcerer"
35
+ *
36
+ * export default defineConfig({
37
+ * plugins: [
38
+ * effect(),
39
+ * effect({
40
+ * outputDir: "generated/effect",
41
+ * queryMode: "resolvers",
42
+ * http: { basePath: "/api/v1" },
43
+ * }),
44
+ * ],
45
+ * })
46
+ * ```
47
+ */
48
+ export declare function effect(config?: EffectConfig): ReturnType<typeof definePlugin>;
49
+ /**
50
+ * @deprecated Use `effect()` instead. This alias is provided for backward compatibility.
51
+ */
52
+ export declare const effectPlugin: typeof effect;
53
+ //# sourceMappingURL=effect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../src/plugins/effect.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAsB,MAAM,uBAAuB,CAAC;AAgDzE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uGAAuG;IACvG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mGAAmG;IACnG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,wGAAwG;IACxG,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACxC,4FAA4F;IAC5F,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChD,iEAAiE;IACjE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,0GAA0G;IAC1G,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG;QACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAC3B,wDAAwD;QACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;CACH;AA8oDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,MAAM,GAAE,YAAiB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAkCjF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,eAAS,CAAC"}