@contractspec/lib.schema 1.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +154 -0
  3. package/dist/EnumType.d.ts +42 -0
  4. package/dist/EnumType.d.ts.map +1 -0
  5. package/dist/EnumType.js +57 -0
  6. package/dist/EnumType.js.map +1 -0
  7. package/dist/FieldType.d.ts +31 -0
  8. package/dist/FieldType.d.ts.map +1 -0
  9. package/dist/FieldType.js +50 -0
  10. package/dist/FieldType.js.map +1 -0
  11. package/dist/GraphQLSchemaType.d.ts +19 -0
  12. package/dist/GraphQLSchemaType.d.ts.map +1 -0
  13. package/dist/GraphQLSchemaType.js +21 -0
  14. package/dist/GraphQLSchemaType.js.map +1 -0
  15. package/dist/JsonSchemaType.d.ts +112 -0
  16. package/dist/JsonSchemaType.d.ts.map +1 -0
  17. package/dist/JsonSchemaType.js +125 -0
  18. package/dist/JsonSchemaType.js.map +1 -0
  19. package/dist/ScalarTypeEnum.d.ts +33 -0
  20. package/dist/ScalarTypeEnum.d.ts.map +1 -0
  21. package/dist/ScalarTypeEnum.js +237 -0
  22. package/dist/ScalarTypeEnum.js.map +1 -0
  23. package/dist/SchemaModel.d.ts +92 -0
  24. package/dist/SchemaModel.d.ts.map +1 -0
  25. package/dist/SchemaModel.js +58 -0
  26. package/dist/SchemaModel.js.map +1 -0
  27. package/dist/SchemaModelType.d.ts +60 -0
  28. package/dist/SchemaModelType.d.ts.map +1 -0
  29. package/dist/SchemaModelType.js +21 -0
  30. package/dist/SchemaModelType.js.map +1 -0
  31. package/dist/ZodSchemaType.d.ts +92 -0
  32. package/dist/ZodSchemaType.d.ts.map +1 -0
  33. package/dist/ZodSchemaType.js +103 -0
  34. package/dist/ZodSchemaType.js.map +1 -0
  35. package/dist/entity/defineEntity.d.ts +93 -0
  36. package/dist/entity/defineEntity.d.ts.map +1 -0
  37. package/dist/entity/defineEntity.js +237 -0
  38. package/dist/entity/defineEntity.js.map +1 -0
  39. package/dist/entity/generator.d.ts +38 -0
  40. package/dist/entity/generator.d.ts.map +1 -0
  41. package/dist/entity/generator.js +218 -0
  42. package/dist/entity/generator.js.map +1 -0
  43. package/dist/entity/index.d.ts +4 -0
  44. package/dist/entity/index.js +5 -0
  45. package/dist/entity/types.d.ts +146 -0
  46. package/dist/entity/types.d.ts.map +1 -0
  47. package/dist/entity/types.js +1 -0
  48. package/dist/index.d.ts +13 -0
  49. package/dist/index.js +13 -0
  50. package/package.json +64 -0
@@ -0,0 +1,92 @@
1
+ import { SchemaModelType } from "./SchemaModelType.js";
2
+ import * as z$1 from "zod";
3
+
4
+ //#region src/ZodSchemaType.d.ts
5
+
6
+ /**
7
+ * Options for ZodSchemaType wrapper.
8
+ */
9
+ interface ZodSchemaTypeOptions {
10
+ /** Name for GraphQL/JSON Schema representation */
11
+ name?: string;
12
+ /** Description for documentation */
13
+ description?: string;
14
+ }
15
+ /**
16
+ * Wrapper to use a raw Zod schema as a SchemaType.
17
+ * Enables schema definition directly with Zod for maximum flexibility.
18
+ *
19
+ * @template T - The Zod schema type being wrapped
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const UserSchema = fromZod(
24
+ * z.object({
25
+ * id: z.string().uuid(),
26
+ * name: z.string().min(1),
27
+ * email: z.string().email(),
28
+ * }),
29
+ * { name: 'User' }
30
+ * );
31
+ *
32
+ * // Use in SchemaModel
33
+ * const CreateUserInput = new SchemaModel({
34
+ * name: 'CreateUserInput',
35
+ * fields: {
36
+ * user: { type: UserSchema, isOptional: false },
37
+ * },
38
+ * });
39
+ * ```
40
+ */
41
+ declare class ZodSchemaType<T extends z$1.ZodType> implements SchemaModelType<z$1.infer<T>> {
42
+ private readonly schema;
43
+ private readonly options;
44
+ constructor(schema: T, options?: ZodSchemaTypeOptions);
45
+ /**
46
+ * Return the wrapped Zod schema.
47
+ */
48
+ getZod(): z$1.ZodType<z$1.infer<T>>;
49
+ /**
50
+ * Return JSON Schema representation using Zod's toJSONSchema.
51
+ */
52
+ getJsonSchema(): unknown;
53
+ /**
54
+ * Return GraphQL type info.
55
+ * For complex Zod types, defaults to JSON scalar.
56
+ */
57
+ getPothos(): {
58
+ type: string;
59
+ name?: string;
60
+ };
61
+ /**
62
+ * Get the configured name for this schema.
63
+ */
64
+ getName(): string | undefined;
65
+ /**
66
+ * Get the configured description for this schema.
67
+ */
68
+ getDescription(): string | undefined;
69
+ }
70
+ /**
71
+ * Helper to wrap a raw Zod schema as a SchemaType.
72
+ *
73
+ * @param schema - The Zod schema to wrap
74
+ * @param options - Optional configuration
75
+ * @returns A SchemaType-compatible wrapper
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const AddressSchema = fromZod(
80
+ * z.object({
81
+ * street: z.string(),
82
+ * city: z.string(),
83
+ * country: z.string(),
84
+ * }),
85
+ * { name: 'Address', description: 'Physical address' }
86
+ * );
87
+ * ```
88
+ */
89
+ declare const fromZod: <T extends z$1.ZodType>(schema: T, options?: ZodSchemaTypeOptions) => ZodSchemaType<T>;
90
+ //#endregion
91
+ export { ZodSchemaType, ZodSchemaTypeOptions, fromZod };
92
+ //# sourceMappingURL=ZodSchemaType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZodSchemaType.d.ts","names":[],"sources":["../src/ZodSchemaType.ts"],"sourcesContent":[],"mappings":";;;;;;;;AA8Dc,UA/CG,oBAAA,CA+CH;EAd6C;EAAe,IAAA,CAAA,EAAA,MAAA;EAmE7D;EAAqB,WAAE,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAnEvB,wBAAwB,GAAA,CAAE,oBAAoB,gBACzD,GAAA,CAAE,MAAM;;;sBAKY,aAAY;;;;YAQtB,GAAA,CAAE,QAAQ,GAAA,CAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqDjB,oBAAqB,GAAA,CAAE,iBAC1B,aACE,yBACT,cAAc"}
@@ -0,0 +1,103 @@
1
+ import * as z$1 from "zod";
2
+
3
+ //#region src/ZodSchemaType.ts
4
+ /**
5
+ * Zod schema wrapper for ContractSpec compatibility.
6
+ *
7
+ * Wraps raw Zod schemas to implement the SchemaType interface,
8
+ * enabling direct Zod usage in ContractSpec definitions.
9
+ *
10
+ * @module ZodSchemaType
11
+ */
12
+ /**
13
+ * Wrapper to use a raw Zod schema as a SchemaType.
14
+ * Enables schema definition directly with Zod for maximum flexibility.
15
+ *
16
+ * @template T - The Zod schema type being wrapped
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const UserSchema = fromZod(
21
+ * z.object({
22
+ * id: z.string().uuid(),
23
+ * name: z.string().min(1),
24
+ * email: z.string().email(),
25
+ * }),
26
+ * { name: 'User' }
27
+ * );
28
+ *
29
+ * // Use in SchemaModel
30
+ * const CreateUserInput = new SchemaModel({
31
+ * name: 'CreateUserInput',
32
+ * fields: {
33
+ * user: { type: UserSchema, isOptional: false },
34
+ * },
35
+ * });
36
+ * ```
37
+ */
38
+ var ZodSchemaType = class {
39
+ schema;
40
+ options;
41
+ constructor(schema, options = {}) {
42
+ this.schema = schema;
43
+ this.options = options;
44
+ }
45
+ /**
46
+ * Return the wrapped Zod schema.
47
+ */
48
+ getZod() {
49
+ return this.schema;
50
+ }
51
+ /**
52
+ * Return JSON Schema representation using Zod's toJSONSchema.
53
+ */
54
+ getJsonSchema() {
55
+ return z$1.toJSONSchema(this.schema);
56
+ }
57
+ /**
58
+ * Return GraphQL type info.
59
+ * For complex Zod types, defaults to JSON scalar.
60
+ */
61
+ getPothos() {
62
+ return {
63
+ type: "JSON",
64
+ name: this.options.name
65
+ };
66
+ }
67
+ /**
68
+ * Get the configured name for this schema.
69
+ */
70
+ getName() {
71
+ return this.options.name;
72
+ }
73
+ /**
74
+ * Get the configured description for this schema.
75
+ */
76
+ getDescription() {
77
+ return this.options.description;
78
+ }
79
+ };
80
+ /**
81
+ * Helper to wrap a raw Zod schema as a SchemaType.
82
+ *
83
+ * @param schema - The Zod schema to wrap
84
+ * @param options - Optional configuration
85
+ * @returns A SchemaType-compatible wrapper
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const AddressSchema = fromZod(
90
+ * z.object({
91
+ * street: z.string(),
92
+ * city: z.string(),
93
+ * country: z.string(),
94
+ * }),
95
+ * { name: 'Address', description: 'Physical address' }
96
+ * );
97
+ * ```
98
+ */
99
+ const fromZod = (schema, options) => new ZodSchemaType(schema, options);
100
+
101
+ //#endregion
102
+ export { ZodSchemaType, fromZod };
103
+ //# sourceMappingURL=ZodSchemaType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZodSchemaType.js","names":["z"],"sources":["../src/ZodSchemaType.ts"],"sourcesContent":["/**\n * Zod schema wrapper for ContractSpec compatibility.\n *\n * Wraps raw Zod schemas to implement the SchemaType interface,\n * enabling direct Zod usage in ContractSpec definitions.\n *\n * @module ZodSchemaType\n */\n\nimport * as z from 'zod';\nimport type { SchemaModelType } from './SchemaModelType';\n\n/**\n * Options for ZodSchemaType wrapper.\n */\nexport interface ZodSchemaTypeOptions {\n /** Name for GraphQL/JSON Schema representation */\n name?: string;\n /** Description for documentation */\n description?: string;\n}\n\n/**\n * Wrapper to use a raw Zod schema as a SchemaType.\n * Enables schema definition directly with Zod for maximum flexibility.\n *\n * @template T - The Zod schema type being wrapped\n *\n * @example\n * ```typescript\n * const UserSchema = fromZod(\n * z.object({\n * id: z.string().uuid(),\n * name: z.string().min(1),\n * email: z.string().email(),\n * }),\n * { name: 'User' }\n * );\n *\n * // Use in SchemaModel\n * const CreateUserInput = new SchemaModel({\n * name: 'CreateUserInput',\n * fields: {\n * user: { type: UserSchema, isOptional: false },\n * },\n * });\n * ```\n */\nexport class ZodSchemaType<T extends z.ZodType> implements SchemaModelType<\n z.infer<T>\n> {\n private readonly schema: T;\n private readonly options: ZodSchemaTypeOptions;\n\n constructor(schema: T, options: ZodSchemaTypeOptions = {}) {\n this.schema = schema;\n this.options = options;\n }\n\n /**\n * Return the wrapped Zod schema.\n */\n getZod(): z.ZodType<z.infer<T>> {\n return this.schema as z.ZodType<z.infer<T>>;\n }\n\n /**\n * Return JSON Schema representation using Zod's toJSONSchema.\n */\n getJsonSchema(): unknown {\n return z.toJSONSchema(this.schema);\n }\n\n /**\n * Return GraphQL type info.\n * For complex Zod types, defaults to JSON scalar.\n */\n getPothos(): { type: string; name?: string } {\n return { type: 'JSON', name: this.options.name };\n }\n\n /**\n * Get the configured name for this schema.\n */\n getName(): string | undefined {\n return this.options.name;\n }\n\n /**\n * Get the configured description for this schema.\n */\n getDescription(): string | undefined {\n return this.options.description;\n }\n}\n\n/**\n * Helper to wrap a raw Zod schema as a SchemaType.\n *\n * @param schema - The Zod schema to wrap\n * @param options - Optional configuration\n * @returns A SchemaType-compatible wrapper\n *\n * @example\n * ```typescript\n * const AddressSchema = fromZod(\n * z.object({\n * street: z.string(),\n * city: z.string(),\n * country: z.string(),\n * }),\n * { name: 'Address', description: 'Physical address' }\n * );\n * ```\n */\nexport const fromZod = <T extends z.ZodType>(\n schema: T,\n options?: ZodSchemaTypeOptions\n): ZodSchemaType<T> => new ZodSchemaType(schema, options);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,IAAa,gBAAb,MAEE;CACA,AAAiB;CACjB,AAAiB;CAEjB,YAAY,QAAW,UAAgC,EAAE,EAAE;AACzD,OAAK,SAAS;AACd,OAAK,UAAU;;;;;CAMjB,SAAgC;AAC9B,SAAO,KAAK;;;;;CAMd,gBAAyB;AACvB,SAAOA,IAAE,aAAa,KAAK,OAAO;;;;;;CAOpC,YAA6C;AAC3C,SAAO;GAAE,MAAM;GAAQ,MAAM,KAAK,QAAQ;GAAM;;;;;CAMlD,UAA8B;AAC5B,SAAO,KAAK,QAAQ;;;;;CAMtB,iBAAqC;AACnC,SAAO,KAAK,QAAQ;;;;;;;;;;;;;;;;;;;;;;AAuBxB,MAAa,WACX,QACA,YACqB,IAAI,cAAc,QAAQ,QAAQ"}
@@ -0,0 +1,93 @@
1
+ import { EntityEnumDef, EntityEnumField, EntityField, EntityIndex, EntityRelationField, EntityScalarField, EntitySpec } from "./types.js";
2
+
3
+ //#region src/entity/defineEntity.d.ts
4
+
5
+ /**
6
+ * Helper to define a database entity with full type safety.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const UserEntity = defineEntity({
11
+ * name: 'User',
12
+ * schema: 'lssm_sigil',
13
+ * description: 'A user of the platform.',
14
+ * fields: {
15
+ * id: field.id(),
16
+ * email: field.string({ isUnique: true, zod: z.string().email() }),
17
+ * name: field.string({ isOptional: true }),
18
+ * createdAt: field.createdAt(),
19
+ * updatedAt: field.updatedAt(),
20
+ * memberships: field.hasMany('Member'),
21
+ * },
22
+ * indexes: [{ fields: ['email'], unique: true }],
23
+ * });
24
+ * ```
25
+ */
26
+ declare function defineEntity<TFields extends Record<string, EntityField>>(spec: EntitySpec<TFields>): EntitySpec<TFields>;
27
+ /**
28
+ * Helper to define an enum that can be shared across entities.
29
+ */
30
+ declare function defineEntityEnum(def: EntityEnumDef): EntityEnumDef;
31
+ /**
32
+ * Field builder helpers for common field patterns.
33
+ */
34
+ declare const field: {
35
+ /** String field */
36
+ string(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
37
+ /** Integer field */
38
+ int(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
39
+ /** Float field */
40
+ float(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
41
+ /** Boolean field */
42
+ boolean(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
43
+ /** DateTime field */
44
+ dateTime(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
45
+ /** JSON field */
46
+ json(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
47
+ /** BigInt field */
48
+ bigInt(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
49
+ /** Decimal field */
50
+ decimal(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
51
+ /** Bytes field */
52
+ bytes(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
53
+ /** Primary key field with cuid() default */
54
+ id(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "isId">>): EntityScalarField;
55
+ /** Primary key field with uuid() default */
56
+ uuid(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "isId">>): EntityScalarField;
57
+ /** Auto-increment integer primary key */
58
+ autoIncrement(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "isId">>): EntityScalarField;
59
+ /** createdAt timestamp with now() default */
60
+ createdAt(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "default">>): EntityScalarField;
61
+ /** updatedAt timestamp with @updatedAt */
62
+ updatedAt(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "updatedAt">>): EntityScalarField;
63
+ /** Email field with validation */
64
+ email(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
65
+ /** URL field with validation */
66
+ url(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
67
+ /** Enum field */
68
+ enum(enumName: string, opts?: Partial<Omit<EntityEnumField, "kind" | "enumName">>): EntityEnumField;
69
+ /** Inline enum field with values */
70
+ inlineEnum(enumName: string, values: readonly string[], opts?: Partial<Omit<EntityEnumField, "kind" | "enumName" | "values">>): EntityEnumField;
71
+ /** Has one relation (1:1 inverse side) */
72
+ hasOne(target: string, opts?: Partial<Omit<EntityRelationField, "kind" | "type" | "target">>): EntityRelationField;
73
+ /** Has many relation (1:N inverse side) */
74
+ hasMany(target: string, opts?: Partial<Omit<EntityRelationField, "kind" | "type" | "target">>): EntityRelationField;
75
+ /** Belongs to relation (N:1 owning side with foreign key) */
76
+ belongsTo(target: string, fields: string[], references: string[], opts?: Partial<Omit<EntityRelationField, "kind" | "type" | "target" | "fields" | "references">>): EntityRelationField;
77
+ /** Foreign key field (string) - use with belongsTo */
78
+ foreignKey(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
79
+ };
80
+ /**
81
+ * Index builder helpers.
82
+ */
83
+ declare const index: {
84
+ /** Create a regular index */
85
+ on(fields: string[], opts?: Partial<Omit<EntityIndex, "fields">>): EntityIndex;
86
+ /** Create a unique constraint index */
87
+ unique(fields: string[], opts?: Partial<Omit<EntityIndex, "fields" | "unique">>): EntityIndex;
88
+ /** Create a compound index with sort orders */
89
+ compound(fields: string[], sort: Record<string, "Asc" | "Desc">, opts?: Partial<Omit<EntityIndex, "fields" | "sort">>): EntityIndex;
90
+ };
91
+ //#endregion
92
+ export { defineEntity, defineEntityEnum, field, index };
93
+ //# sourceMappingURL=defineEntity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineEntity.d.ts","names":[],"sources":["../../src/entity/defineEntity.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,237 @@
1
+ import * as z$1 from "zod";
2
+
3
+ //#region src/entity/defineEntity.ts
4
+ /**
5
+ * Helper to define a database entity with full type safety.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const UserEntity = defineEntity({
10
+ * name: 'User',
11
+ * schema: 'lssm_sigil',
12
+ * description: 'A user of the platform.',
13
+ * fields: {
14
+ * id: field.id(),
15
+ * email: field.string({ isUnique: true, zod: z.string().email() }),
16
+ * name: field.string({ isOptional: true }),
17
+ * createdAt: field.createdAt(),
18
+ * updatedAt: field.updatedAt(),
19
+ * memberships: field.hasMany('Member'),
20
+ * },
21
+ * indexes: [{ fields: ['email'], unique: true }],
22
+ * });
23
+ * ```
24
+ */
25
+ function defineEntity(spec) {
26
+ return spec;
27
+ }
28
+ /**
29
+ * Helper to define an enum that can be shared across entities.
30
+ */
31
+ function defineEntityEnum(def) {
32
+ return def;
33
+ }
34
+ /**
35
+ * Field builder helpers for common field patterns.
36
+ */
37
+ const field = {
38
+ string(opts) {
39
+ return {
40
+ kind: "scalar",
41
+ type: "String",
42
+ ...opts
43
+ };
44
+ },
45
+ int(opts) {
46
+ return {
47
+ kind: "scalar",
48
+ type: "Int",
49
+ ...opts
50
+ };
51
+ },
52
+ float(opts) {
53
+ return {
54
+ kind: "scalar",
55
+ type: "Float",
56
+ ...opts
57
+ };
58
+ },
59
+ boolean(opts) {
60
+ return {
61
+ kind: "scalar",
62
+ type: "Boolean",
63
+ ...opts
64
+ };
65
+ },
66
+ dateTime(opts) {
67
+ return {
68
+ kind: "scalar",
69
+ type: "DateTime",
70
+ ...opts
71
+ };
72
+ },
73
+ json(opts) {
74
+ return {
75
+ kind: "scalar",
76
+ type: "Json",
77
+ ...opts
78
+ };
79
+ },
80
+ bigInt(opts) {
81
+ return {
82
+ kind: "scalar",
83
+ type: "BigInt",
84
+ ...opts
85
+ };
86
+ },
87
+ decimal(opts) {
88
+ return {
89
+ kind: "scalar",
90
+ type: "Decimal",
91
+ ...opts
92
+ };
93
+ },
94
+ bytes(opts) {
95
+ return {
96
+ kind: "scalar",
97
+ type: "Bytes",
98
+ ...opts
99
+ };
100
+ },
101
+ id(opts) {
102
+ return {
103
+ kind: "scalar",
104
+ type: "String",
105
+ isId: true,
106
+ default: "cuid()",
107
+ ...opts
108
+ };
109
+ },
110
+ uuid(opts) {
111
+ return {
112
+ kind: "scalar",
113
+ type: "String",
114
+ isId: true,
115
+ default: "uuid()",
116
+ ...opts
117
+ };
118
+ },
119
+ autoIncrement(opts) {
120
+ return {
121
+ kind: "scalar",
122
+ type: "Int",
123
+ isId: true,
124
+ default: "autoincrement()",
125
+ ...opts
126
+ };
127
+ },
128
+ createdAt(opts) {
129
+ return {
130
+ kind: "scalar",
131
+ type: "DateTime",
132
+ default: "now()",
133
+ ...opts
134
+ };
135
+ },
136
+ updatedAt(opts) {
137
+ return {
138
+ kind: "scalar",
139
+ type: "DateTime",
140
+ updatedAt: true,
141
+ ...opts
142
+ };
143
+ },
144
+ email(opts) {
145
+ return {
146
+ kind: "scalar",
147
+ type: "String",
148
+ zod: z$1.email(),
149
+ ...opts
150
+ };
151
+ },
152
+ url(opts) {
153
+ return {
154
+ kind: "scalar",
155
+ type: "String",
156
+ zod: z$1.url(),
157
+ ...opts
158
+ };
159
+ },
160
+ enum(enumName, opts) {
161
+ return {
162
+ kind: "enum",
163
+ enumName,
164
+ ...opts
165
+ };
166
+ },
167
+ inlineEnum(enumName, values, opts) {
168
+ return {
169
+ kind: "enum",
170
+ enumName,
171
+ values,
172
+ ...opts
173
+ };
174
+ },
175
+ hasOne(target, opts) {
176
+ return {
177
+ kind: "relation",
178
+ type: "hasOne",
179
+ target,
180
+ ...opts
181
+ };
182
+ },
183
+ hasMany(target, opts) {
184
+ return {
185
+ kind: "relation",
186
+ type: "hasMany",
187
+ target,
188
+ ...opts
189
+ };
190
+ },
191
+ belongsTo(target, fields, references, opts) {
192
+ return {
193
+ kind: "relation",
194
+ type: "belongsTo",
195
+ target,
196
+ fields,
197
+ references,
198
+ ...opts
199
+ };
200
+ },
201
+ foreignKey(opts) {
202
+ return {
203
+ kind: "scalar",
204
+ type: "String",
205
+ ...opts
206
+ };
207
+ }
208
+ };
209
+ /**
210
+ * Index builder helpers.
211
+ */
212
+ const index = {
213
+ on(fields, opts) {
214
+ return {
215
+ fields,
216
+ ...opts
217
+ };
218
+ },
219
+ unique(fields, opts) {
220
+ return {
221
+ fields,
222
+ unique: true,
223
+ ...opts
224
+ };
225
+ },
226
+ compound(fields, sort, opts) {
227
+ return {
228
+ fields,
229
+ sort,
230
+ ...opts
231
+ };
232
+ }
233
+ };
234
+
235
+ //#endregion
236
+ export { defineEntity, defineEntityEnum, field, index };
237
+ //# sourceMappingURL=defineEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineEntity.js","names":["z"],"sources":["../../src/entity/defineEntity.ts"],"sourcesContent":["import * as z from 'zod';\nimport type {\n EntityEnumDef,\n EntityEnumField,\n EntityField,\n EntityIndex,\n EntityRelationField,\n EntityScalarField,\n EntitySpec,\n} from './types';\n\n/**\n * Helper to define a database entity with full type safety.\n *\n * @example\n * ```typescript\n * const UserEntity = defineEntity({\n * name: 'User',\n * schema: 'lssm_sigil',\n * description: 'A user of the platform.',\n * fields: {\n * id: field.id(),\n * email: field.string({ isUnique: true, zod: z.string().email() }),\n * name: field.string({ isOptional: true }),\n * createdAt: field.createdAt(),\n * updatedAt: field.updatedAt(),\n * memberships: field.hasMany('Member'),\n * },\n * indexes: [{ fields: ['email'], unique: true }],\n * });\n * ```\n */\nexport function defineEntity<TFields extends Record<string, EntityField>>(\n spec: EntitySpec<TFields>\n): EntitySpec<TFields> {\n return spec;\n}\n\n/**\n * Helper to define an enum that can be shared across entities.\n */\nexport function defineEntityEnum(def: EntityEnumDef): EntityEnumDef {\n return def;\n}\n\n/**\n * Field builder helpers for common field patterns.\n */\nexport const field = {\n // ============ Scalar fields ============\n\n /** String field */\n string(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'String', ...opts };\n },\n\n /** Integer field */\n int(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'Int', ...opts };\n },\n\n /** Float field */\n float(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'Float', ...opts };\n },\n\n /** Boolean field */\n boolean(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'Boolean', ...opts };\n },\n\n /** DateTime field */\n dateTime(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'DateTime', ...opts };\n },\n\n /** JSON field */\n json(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'Json', ...opts };\n },\n\n /** BigInt field */\n bigInt(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'BigInt', ...opts };\n },\n\n /** Decimal field */\n decimal(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'Decimal', ...opts };\n },\n\n /** Bytes field */\n bytes(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'Bytes', ...opts };\n },\n\n // ============ Common patterns ============\n\n /** Primary key field with cuid() default */\n id(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type' | 'isId'>>\n ): EntityScalarField {\n return {\n kind: 'scalar',\n type: 'String',\n isId: true,\n default: 'cuid()',\n ...opts,\n };\n },\n\n /** Primary key field with uuid() default */\n uuid(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type' | 'isId'>>\n ): EntityScalarField {\n return {\n kind: 'scalar',\n type: 'String',\n isId: true,\n default: 'uuid()',\n ...opts,\n };\n },\n\n /** Auto-increment integer primary key */\n autoIncrement(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type' | 'isId'>>\n ): EntityScalarField {\n return {\n kind: 'scalar',\n type: 'Int',\n isId: true,\n default: 'autoincrement()',\n ...opts,\n };\n },\n\n /** createdAt timestamp with now() default */\n createdAt(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type' | 'default'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'DateTime', default: 'now()', ...opts };\n },\n\n /** updatedAt timestamp with @updatedAt */\n updatedAt(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type' | 'updatedAt'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'DateTime', updatedAt: true, ...opts };\n },\n\n /** Email field with validation */\n email(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return {\n kind: 'scalar',\n type: 'String',\n zod: z.email(),\n ...opts,\n };\n },\n\n /** URL field with validation */\n url(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return {\n kind: 'scalar',\n type: 'String',\n zod: z.url(),\n ...opts,\n };\n },\n\n // ============ Enum fields ============\n\n /** Enum field */\n enum(\n enumName: string,\n opts?: Partial<Omit<EntityEnumField, 'kind' | 'enumName'>>\n ): EntityEnumField {\n return { kind: 'enum', enumName, ...opts };\n },\n\n /** Inline enum field with values */\n inlineEnum(\n enumName: string,\n values: readonly string[],\n opts?: Partial<Omit<EntityEnumField, 'kind' | 'enumName' | 'values'>>\n ): EntityEnumField {\n return { kind: 'enum', enumName, values, ...opts };\n },\n\n // ============ Relation fields ============\n\n /** Has one relation (1:1 inverse side) */\n hasOne(\n target: string,\n opts?: Partial<Omit<EntityRelationField, 'kind' | 'type' | 'target'>>\n ): EntityRelationField {\n return { kind: 'relation', type: 'hasOne', target, ...opts };\n },\n\n /** Has many relation (1:N inverse side) */\n hasMany(\n target: string,\n opts?: Partial<Omit<EntityRelationField, 'kind' | 'type' | 'target'>>\n ): EntityRelationField {\n return { kind: 'relation', type: 'hasMany', target, ...opts };\n },\n\n /** Belongs to relation (N:1 owning side with foreign key) */\n belongsTo(\n target: string,\n fields: string[],\n references: string[],\n opts?: Partial<\n Omit<\n EntityRelationField,\n 'kind' | 'type' | 'target' | 'fields' | 'references'\n >\n >\n ): EntityRelationField {\n return {\n kind: 'relation',\n type: 'belongsTo',\n target,\n fields,\n references,\n ...opts,\n };\n },\n\n /** Foreign key field (string) - use with belongsTo */\n foreignKey(\n opts?: Partial<Omit<EntityScalarField, 'kind' | 'type'>>\n ): EntityScalarField {\n return { kind: 'scalar', type: 'String', ...opts };\n },\n};\n\n/**\n * Index builder helpers.\n */\nexport const index = {\n /** Create a regular index */\n on(\n fields: string[],\n opts?: Partial<Omit<EntityIndex, 'fields'>>\n ): EntityIndex {\n return { fields, ...opts };\n },\n\n /** Create a unique constraint index */\n unique(\n fields: string[],\n opts?: Partial<Omit<EntityIndex, 'fields' | 'unique'>>\n ): EntityIndex {\n return { fields, unique: true, ...opts };\n },\n\n /** Create a compound index with sort orders */\n compound(\n fields: string[],\n sort: Record<string, 'Asc' | 'Desc'>,\n opts?: Partial<Omit<EntityIndex, 'fields' | 'sort'>>\n ): EntityIndex {\n return { fields, sort, ...opts };\n },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgCA,SAAgB,aACd,MACqB;AACrB,QAAO;;;;;AAMT,SAAgB,iBAAiB,KAAmC;AAClE,QAAO;;;;;AAMT,MAAa,QAAQ;CAInB,OACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAU,GAAG;GAAM;;CAIpD,IACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAO,GAAG;GAAM;;CAIjD,MACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAS,GAAG;GAAM;;CAInD,QACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAW,GAAG;GAAM;;CAIrD,SACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAY,GAAG;GAAM;;CAItD,KACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAQ,GAAG;GAAM;;CAIlD,OACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAU,GAAG;GAAM;;CAIpD,QACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAW,GAAG;GAAM;;CAIrD,MACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAS,GAAG;GAAM;;CAMnD,GACE,MACmB;AACnB,SAAO;GACL,MAAM;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,GAAG;GACJ;;CAIH,KACE,MACmB;AACnB,SAAO;GACL,MAAM;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,GAAG;GACJ;;CAIH,cACE,MACmB;AACnB,SAAO;GACL,MAAM;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,GAAG;GACJ;;CAIH,UACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAY,SAAS;GAAS,GAAG;GAAM;;CAIxE,UACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAY,WAAW;GAAM,GAAG;GAAM;;CAIvE,MACE,MACmB;AACnB,SAAO;GACL,MAAM;GACN,MAAM;GACN,KAAKA,IAAE,OAAO;GACd,GAAG;GACJ;;CAIH,IACE,MACmB;AACnB,SAAO;GACL,MAAM;GACN,MAAM;GACN,KAAKA,IAAE,KAAK;GACZ,GAAG;GACJ;;CAMH,KACE,UACA,MACiB;AACjB,SAAO;GAAE,MAAM;GAAQ;GAAU,GAAG;GAAM;;CAI5C,WACE,UACA,QACA,MACiB;AACjB,SAAO;GAAE,MAAM;GAAQ;GAAU;GAAQ,GAAG;GAAM;;CAMpD,OACE,QACA,MACqB;AACrB,SAAO;GAAE,MAAM;GAAY,MAAM;GAAU;GAAQ,GAAG;GAAM;;CAI9D,QACE,QACA,MACqB;AACrB,SAAO;GAAE,MAAM;GAAY,MAAM;GAAW;GAAQ,GAAG;GAAM;;CAI/D,UACE,QACA,QACA,YACA,MAMqB;AACrB,SAAO;GACL,MAAM;GACN,MAAM;GACN;GACA;GACA;GACA,GAAG;GACJ;;CAIH,WACE,MACmB;AACnB,SAAO;GAAE,MAAM;GAAU,MAAM;GAAU,GAAG;GAAM;;CAErD;;;;AAKD,MAAa,QAAQ;CAEnB,GACE,QACA,MACa;AACb,SAAO;GAAE;GAAQ,GAAG;GAAM;;CAI5B,OACE,QACA,MACa;AACb,SAAO;GAAE;GAAQ,QAAQ;GAAM,GAAG;GAAM;;CAI1C,SACE,QACA,MACA,MACa;AACb,SAAO;GAAE;GAAQ;GAAM,GAAG;GAAM;;CAEnC"}
@@ -0,0 +1,38 @@
1
+ import { EntityEnumDef, EntitySpec, ModuleSchemaContribution } from "./types.js";
2
+
3
+ //#region src/entity/generator.d.ts
4
+
5
+ /**
6
+ * Options for Prisma schema generation.
7
+ */
8
+ interface PrismaGeneratorOptions {
9
+ /** Output file path for the generated schema */
10
+ outputPath?: string;
11
+ /** Prisma datasource provider (default: 'postgresql') */
12
+ provider?: 'postgresql' | 'mysql' | 'sqlite' | 'mongodb' | 'sqlserver';
13
+ /** Prisma generator output path */
14
+ clientOutput?: string;
15
+ /** Include Pothos generator */
16
+ includePothos?: boolean;
17
+ /** Pothos output path */
18
+ pothosOutput?: string;
19
+ }
20
+ /**
21
+ * Generate Prisma schema content from entity specifications.
22
+ */
23
+ declare function generatePrismaSchema(entities: EntitySpec[], options?: PrismaGeneratorOptions): string;
24
+ /**
25
+ * Compose multiple module schema contributions into a single schema.
26
+ */
27
+ declare function composeModuleSchemas(contributions: ModuleSchemaContribution[], options?: PrismaGeneratorOptions): string;
28
+ /**
29
+ * Generate a single entity's Prisma schema fragment (for modular output).
30
+ */
31
+ declare function generateEntityFragment(entity: EntitySpec): string;
32
+ /**
33
+ * Generate a single enum's Prisma schema fragment (for modular output).
34
+ */
35
+ declare function generateEnumFragment(enumDef: EntityEnumDef): string;
36
+ //#endregion
37
+ export { PrismaGeneratorOptions, composeModuleSchemas, generateEntityFragment, generateEnumFragment, generatePrismaSchema };
38
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","names":[],"sources":["../../src/entity/generator.ts"],"sourcesContent":[],"mappings":";;;;;;AAcA;AAgBgB,UAhBC,sBAAA,CAiBL;EA2WI;EAuCA,UAAA,CAAA,EAAA,MAAA;EAOA;;;;;;;;;;;;iBA1ZA,oBAAA,WACJ,wBACD;;;;iBA0WK,oBAAA,gBACC,sCACN;;;;iBAqCK,sBAAA,SAA+B;;;;iBAO/B,oBAAA,UAA8B"}