@contractspec/lib.schema 1.57.0 → 1.58.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 (96) hide show
  1. package/dist/EnumType.d.ts +29 -31
  2. package/dist/EnumType.d.ts.map +1 -1
  3. package/dist/EnumType.js +38 -54
  4. package/dist/EnumType.test.d.ts +2 -0
  5. package/dist/EnumType.test.d.ts.map +1 -0
  6. package/dist/FieldType.d.ts +19 -23
  7. package/dist/FieldType.d.ts.map +1 -1
  8. package/dist/FieldType.js +41 -47
  9. package/dist/FieldType.test.d.ts +2 -0
  10. package/dist/FieldType.test.d.ts.map +1 -0
  11. package/dist/GraphQLSchemaType.d.ts +8 -12
  12. package/dist/GraphQLSchemaType.d.ts.map +1 -1
  13. package/dist/GraphQLSchemaType.js +16 -18
  14. package/dist/GraphQLSchemaType.test.d.ts +2 -0
  15. package/dist/GraphQLSchemaType.test.d.ts.map +1 -0
  16. package/dist/JsonSchemaType.d.ts +67 -63
  17. package/dist/JsonSchemaType.d.ts.map +1 -1
  18. package/dist/JsonSchemaType.js +73 -123
  19. package/dist/JsonSchemaType.test.d.ts +2 -0
  20. package/dist/JsonSchemaType.test.d.ts.map +1 -0
  21. package/dist/ScalarTypeEnum.d.ts +23 -27
  22. package/dist/ScalarTypeEnum.d.ts.map +1 -1
  23. package/dist/ScalarTypeEnum.js +235 -235
  24. package/dist/ScalarTypeEnum.test.d.ts +2 -0
  25. package/dist/ScalarTypeEnum.test.d.ts.map +1 -0
  26. package/dist/SchemaModel.d.ts +38 -39
  27. package/dist/SchemaModel.d.ts.map +1 -1
  28. package/dist/SchemaModel.js +28 -55
  29. package/dist/SchemaModel.test.d.ts +2 -0
  30. package/dist/SchemaModel.test.d.ts.map +1 -0
  31. package/dist/SchemaModelType.d.ts +28 -24
  32. package/dist/SchemaModelType.d.ts.map +1 -1
  33. package/dist/SchemaModelType.js +6 -19
  34. package/dist/SchemaModelType.test.d.ts +2 -0
  35. package/dist/SchemaModelType.test.d.ts.map +1 -0
  36. package/dist/ZodSchemaType.d.ts +44 -40
  37. package/dist/ZodSchemaType.d.ts.map +1 -1
  38. package/dist/ZodSchemaType.js +30 -101
  39. package/dist/ZodSchemaType.test.d.ts +2 -0
  40. package/dist/ZodSchemaType.test.d.ts.map +1 -0
  41. package/dist/browser/EnumType.js +40 -0
  42. package/dist/browser/FieldType.js +43 -0
  43. package/dist/browser/GraphQLSchemaType.js +18 -0
  44. package/dist/browser/JsonSchemaType.js +74 -0
  45. package/dist/browser/ScalarTypeEnum.js +236 -0
  46. package/dist/browser/SchemaModel.js +30 -0
  47. package/dist/browser/SchemaModelType.js +7 -0
  48. package/dist/browser/ZodSchemaType.js +31 -0
  49. package/dist/browser/entity/defineEntity.js +128 -0
  50. package/dist/browser/entity/generator.js +283 -0
  51. package/dist/browser/entity/index.js +410 -0
  52. package/dist/browser/entity/types.js +0 -0
  53. package/dist/browser/index.js +840 -0
  54. package/dist/entity/defineEntity.d.ts +55 -34
  55. package/dist/entity/defineEntity.d.ts.map +1 -1
  56. package/dist/entity/defineEntity.js +123 -231
  57. package/dist/entity/defineEntity.test.d.ts +2 -0
  58. package/dist/entity/defineEntity.test.d.ts.map +1 -0
  59. package/dist/entity/generator.d.ts +16 -20
  60. package/dist/entity/generator.d.ts.map +1 -1
  61. package/dist/entity/generator.js +262 -196
  62. package/dist/entity/generator.test.d.ts +2 -0
  63. package/dist/entity/generator.test.d.ts.map +1 -0
  64. package/dist/entity/index.d.ts +4 -4
  65. package/dist/entity/index.d.ts.map +1 -0
  66. package/dist/entity/index.js +410 -4
  67. package/dist/entity/types.d.ts +99 -103
  68. package/dist/entity/types.d.ts.map +1 -1
  69. package/dist/entity/types.js +1 -1
  70. package/dist/index.d.ts +10 -13
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +841 -13
  73. package/dist/node/EnumType.js +40 -0
  74. package/dist/node/FieldType.js +43 -0
  75. package/dist/node/GraphQLSchemaType.js +18 -0
  76. package/dist/node/JsonSchemaType.js +74 -0
  77. package/dist/node/ScalarTypeEnum.js +236 -0
  78. package/dist/node/SchemaModel.js +30 -0
  79. package/dist/node/SchemaModelType.js +7 -0
  80. package/dist/node/ZodSchemaType.js +31 -0
  81. package/dist/node/entity/defineEntity.js +128 -0
  82. package/dist/node/entity/generator.js +283 -0
  83. package/dist/node/entity/index.js +410 -0
  84. package/dist/node/entity/types.js +0 -0
  85. package/dist/node/index.js +840 -0
  86. package/package.json +123 -25
  87. package/dist/EnumType.js.map +0 -1
  88. package/dist/FieldType.js.map +0 -1
  89. package/dist/GraphQLSchemaType.js.map +0 -1
  90. package/dist/JsonSchemaType.js.map +0 -1
  91. package/dist/ScalarTypeEnum.js.map +0 -1
  92. package/dist/SchemaModel.js.map +0 -1
  93. package/dist/SchemaModelType.js.map +0 -1
  94. package/dist/ZodSchemaType.js.map +0 -1
  95. package/dist/entity/defineEntity.js.map +0 -1
  96. package/dist/entity/generator.js.map +0 -1
@@ -1,6 +1,4 @@
1
- import { EntityEnumDef, EntityEnumField, EntityField, EntityIndex, EntityRelationField, EntityScalarField, EntitySpec } from "./types.js";
2
-
3
- //#region src/entity/defineEntity.d.ts
1
+ import type { EntityEnumDef, EntityEnumField, EntityField, EntityIndex, EntityRelationField, EntityScalarField, EntitySpec } from './types';
4
2
  /**
5
3
  * Helper to define a database entity with full type safety.
6
4
  *
@@ -22,46 +20,69 @@ import { EntityEnumDef, EntityEnumField, EntityField, EntityIndex, EntityRelatio
22
20
  * });
23
21
  * ```
24
22
  */
25
- declare function defineEntity<TFields extends Record<string, EntityField>>(spec: EntitySpec<TFields>): EntitySpec<TFields>;
23
+ export declare function defineEntity<TFields extends Record<string, EntityField>>(spec: EntitySpec<TFields>): EntitySpec<TFields>;
26
24
  /**
27
25
  * Helper to define an enum that can be shared across entities.
28
26
  */
29
- declare function defineEntityEnum(def: EntityEnumDef): EntityEnumDef;
27
+ export declare function defineEntityEnum(def: EntityEnumDef): EntityEnumDef;
30
28
  /**
31
29
  * Field builder helpers for common field patterns.
32
30
  */
33
- declare const field: {
34
- /** String field */string(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** Integer field */
35
- int(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** Float field */
36
- float(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** Boolean field */
37
- boolean(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** DateTime field */
38
- dateTime(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** JSON field */
39
- json(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** BigInt field */
40
- bigInt(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** Decimal field */
41
- decimal(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** Bytes field */
42
- bytes(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** Primary key field with cuid() default */
43
- id(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "isId">>): EntityScalarField; /** Primary key field with uuid() default */
44
- uuid(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "isId">>): EntityScalarField; /** Auto-increment integer primary key */
45
- autoIncrement(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "isId">>): EntityScalarField; /** createdAt timestamp with now() default */
46
- createdAt(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "default">>): EntityScalarField; /** updatedAt timestamp with @updatedAt */
47
- updatedAt(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "updatedAt">>): EntityScalarField; /** Email field with validation */
48
- email(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** URL field with validation */
49
- url(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField; /** Enum field */
50
- enum(enumName: string, opts?: Partial<Omit<EntityEnumField, "kind" | "enumName">>): EntityEnumField; /** Inline enum field with values */
51
- inlineEnum(enumName: string, values: readonly string[], opts?: Partial<Omit<EntityEnumField, "kind" | "enumName" | "values">>): EntityEnumField; /** Has one relation (1:1 inverse side) */
52
- hasOne(target: string, opts?: Partial<Omit<EntityRelationField, "kind" | "type" | "target">>): EntityRelationField; /** Has many relation (1:N inverse side) */
53
- hasMany(target: string, opts?: Partial<Omit<EntityRelationField, "kind" | "type" | "target">>): EntityRelationField; /** Belongs to relation (N:1 owning side with foreign key) */
54
- belongsTo(target: string, fields: string[], references: string[], opts?: Partial<Omit<EntityRelationField, "kind" | "type" | "target" | "fields" | "references">>): EntityRelationField; /** Foreign key field (string) - use with belongsTo */
55
- foreignKey(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
31
+ export declare const field: {
32
+ /** String field */
33
+ string(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
34
+ /** Integer field */
35
+ int(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
36
+ /** Float field */
37
+ float(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
38
+ /** Boolean field */
39
+ boolean(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
40
+ /** DateTime field */
41
+ dateTime(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
42
+ /** JSON field */
43
+ json(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
44
+ /** BigInt field */
45
+ bigInt(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
46
+ /** Decimal field */
47
+ decimal(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
48
+ /** Bytes field */
49
+ bytes(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
50
+ /** Primary key field with cuid() default */
51
+ id(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "isId">>): EntityScalarField;
52
+ /** Primary key field with uuid() default */
53
+ uuid(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "isId">>): EntityScalarField;
54
+ /** Auto-increment integer primary key */
55
+ autoIncrement(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "isId">>): EntityScalarField;
56
+ /** createdAt timestamp with now() default */
57
+ createdAt(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "default">>): EntityScalarField;
58
+ /** updatedAt timestamp with @updatedAt */
59
+ updatedAt(opts?: Partial<Omit<EntityScalarField, "kind" | "type" | "updatedAt">>): EntityScalarField;
60
+ /** Email field with validation */
61
+ email(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
62
+ /** URL field with validation */
63
+ url(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
64
+ /** Enum field */
65
+ enum(enumName: string, opts?: Partial<Omit<EntityEnumField, "kind" | "enumName">>): EntityEnumField;
66
+ /** Inline enum field with values */
67
+ inlineEnum(enumName: string, values: readonly string[], opts?: Partial<Omit<EntityEnumField, "kind" | "enumName" | "values">>): EntityEnumField;
68
+ /** Has one relation (1:1 inverse side) */
69
+ hasOne(target: string, opts?: Partial<Omit<EntityRelationField, "kind" | "type" | "target">>): EntityRelationField;
70
+ /** Has many relation (1:N inverse side) */
71
+ hasMany(target: string, opts?: Partial<Omit<EntityRelationField, "kind" | "type" | "target">>): EntityRelationField;
72
+ /** Belongs to relation (N:1 owning side with foreign key) */
73
+ belongsTo(target: string, fields: string[], references: string[], opts?: Partial<Omit<EntityRelationField, "kind" | "type" | "target" | "fields" | "references">>): EntityRelationField;
74
+ /** Foreign key field (string) - use with belongsTo */
75
+ foreignKey(opts?: Partial<Omit<EntityScalarField, "kind" | "type">>): EntityScalarField;
56
76
  };
57
77
  /**
58
78
  * Index builder helpers.
59
79
  */
60
- declare const index: {
61
- /** Create a regular index */on(fields: string[], opts?: Partial<Omit<EntityIndex, "fields">>): EntityIndex; /** Create a unique constraint index */
62
- unique(fields: string[], opts?: Partial<Omit<EntityIndex, "fields" | "unique">>): EntityIndex; /** Create a compound index with sort orders */
63
- compound(fields: string[], sort: Record<string, "Asc" | "Desc">, opts?: Partial<Omit<EntityIndex, "fields" | "sort">>): EntityIndex;
80
+ export declare const index: {
81
+ /** Create a regular index */
82
+ on(fields: string[], opts?: Partial<Omit<EntityIndex, "fields">>): EntityIndex;
83
+ /** Create a unique constraint index */
84
+ unique(fields: string[], opts?: Partial<Omit<EntityIndex, "fields" | "unique">>): EntityIndex;
85
+ /** Create a compound index with sort orders */
86
+ compound(fields: string[], sort: Record<string, "Asc" | "Desc">, opts?: Partial<Omit<EntityIndex, "fields" | "sort">>): EntityIndex;
64
87
  };
65
- //#endregion
66
- export { defineEntity, defineEntityEnum, field, index };
67
88
  //# sourceMappingURL=defineEntity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineEntity.d.ts","names":[],"sources":["../../src/entity/defineEntity.ts"],"mappings":";;;;;AAgCA;;;;;;;;;;;;;;;;;;;iBAAgB,YAAA,iBAA6B,MAAA,SAAe,WAAA,EAAA,CAC1D,IAAA,EAAM,UAAA,CAAW,OAAA,IAChB,UAAA,CAAW,OAAA;;AAOd;;iBAAgB,gBAAA,CAAiB,GAAA,EAAK,aAAA,GAAgB,aAAA;;;;cAOzC,KAAA;EAPsD,iCAYxD,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EANQ;aAYF,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA;eAMM,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EAfc;iBAqBR,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EArBA;kBA2BM,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EAtBc;cA4BR,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EA5BA;gBAkCM,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EA7Bc;iBAmCR,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EAnCA;eAyCM,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EApCc;YA4CR,OAAA,CAAQ,IAAA,CAAK,iBAAA,+BACnB,iBAAA,EA5CA;cAwDM,OAAA,CAAQ,IAAA,CAAK,iBAAA,+BACnB,iBAAA,EAnDc;uBA+DR,OAAA,CAAQ,IAAA,CAAK,iBAAA,+BACnB,iBAAA,EA/DA;mBA2EM,OAAA,CAAQ,IAAA,CAAK,iBAAA,kCACnB,iBAAA,EAtEc;mBA4ER,OAAA,CAAQ,IAAA,CAAK,iBAAA,oCACnB,iBAAA,EA5EA;eAkFM,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EA7Ec;aAwFR,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA,EAxFA;yBAqGe,IAAA,GACT,OAAA,CAAQ,IAAA,CAAK,eAAA,0BACnB,eAAA,EAjGc;+BAuGC,MAAA,qBACS,IAAA,GAClB,OAAA,CAAQ,IAAA,CAAK,eAAA,qCACnB,eAAA,EAzGA;yBAiHa,IAAA,GACP,OAAA,CAAQ,IAAA,CAAK,mBAAA,iCACnB,mBAAA,EA7Gc;0BAmHD,IAAA,GACP,OAAA,CAAQ,IAAA,CAAK,mBAAA,iCACnB,mBAAA,EApHA;4BA0Ha,MAAA,YACE,UAAA,YACI,IAAA,GACb,OAAA,CACL,IAAA,CACE,mBAAA,2DAIH,mBAAA,EA3Hc;oBAwIR,OAAA,CAAQ,IAAA,CAAK,iBAAA,sBACnB,iBAAA;AAAA;;;;cAQQ,KAAA;EAvHW,kDA0HJ,IAAA,GACT,OAAA,CAAQ,IAAA,CAAK,WAAA,eACnB,WAAA,EA5HM;2BAkIS,IAAA,GACT,OAAA,CAAQ,IAAA,CAAK,WAAA,0BACnB,WAAA,EAvHmB;6BA6HJ,IAAA,EACV,MAAA,0BAA8B,IAAA,GAC7B,OAAA,CAAQ,IAAA,CAAK,WAAA,wBACnB,WAAA;AAAA"}
1
+ {"version":3,"file":"defineEntity.d.ts","sourceRoot":"","sources":["../../src/entity/defineEntity.ts"],"names":[],"mappings":"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"}
@@ -1,237 +1,129 @@
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
- */
1
+ // @bun
2
+ // src/entity/defineEntity.ts
3
+ import * as z from "zod";
25
4
  function defineEntity(spec) {
26
- return spec;
5
+ return spec;
27
6
  }
28
- /**
29
- * Helper to define an enum that can be shared across entities.
30
- */
31
7
  function defineEntityEnum(def) {
32
- return def;
8
+ return def;
33
9
  }
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
- }
10
+ var field = {
11
+ string(opts) {
12
+ return { kind: "scalar", type: "String", ...opts };
13
+ },
14
+ int(opts) {
15
+ return { kind: "scalar", type: "Int", ...opts };
16
+ },
17
+ float(opts) {
18
+ return { kind: "scalar", type: "Float", ...opts };
19
+ },
20
+ boolean(opts) {
21
+ return { kind: "scalar", type: "Boolean", ...opts };
22
+ },
23
+ dateTime(opts) {
24
+ return { kind: "scalar", type: "DateTime", ...opts };
25
+ },
26
+ json(opts) {
27
+ return { kind: "scalar", type: "Json", ...opts };
28
+ },
29
+ bigInt(opts) {
30
+ return { kind: "scalar", type: "BigInt", ...opts };
31
+ },
32
+ decimal(opts) {
33
+ return { kind: "scalar", type: "Decimal", ...opts };
34
+ },
35
+ bytes(opts) {
36
+ return { kind: "scalar", type: "Bytes", ...opts };
37
+ },
38
+ id(opts) {
39
+ return {
40
+ kind: "scalar",
41
+ type: "String",
42
+ isId: true,
43
+ default: "cuid()",
44
+ ...opts
45
+ };
46
+ },
47
+ uuid(opts) {
48
+ return {
49
+ kind: "scalar",
50
+ type: "String",
51
+ isId: true,
52
+ default: "uuid()",
53
+ ...opts
54
+ };
55
+ },
56
+ autoIncrement(opts) {
57
+ return {
58
+ kind: "scalar",
59
+ type: "Int",
60
+ isId: true,
61
+ default: "autoincrement()",
62
+ ...opts
63
+ };
64
+ },
65
+ createdAt(opts) {
66
+ return { kind: "scalar", type: "DateTime", default: "now()", ...opts };
67
+ },
68
+ updatedAt(opts) {
69
+ return { kind: "scalar", type: "DateTime", updatedAt: true, ...opts };
70
+ },
71
+ email(opts) {
72
+ return {
73
+ kind: "scalar",
74
+ type: "String",
75
+ zod: z.email(),
76
+ ...opts
77
+ };
78
+ },
79
+ url(opts) {
80
+ return {
81
+ kind: "scalar",
82
+ type: "String",
83
+ zod: z.url(),
84
+ ...opts
85
+ };
86
+ },
87
+ enum(enumName, opts) {
88
+ return { kind: "enum", enumName, ...opts };
89
+ },
90
+ inlineEnum(enumName, values, opts) {
91
+ return { kind: "enum", enumName, values, ...opts };
92
+ },
93
+ hasOne(target, opts) {
94
+ return { kind: "relation", type: "hasOne", target, ...opts };
95
+ },
96
+ hasMany(target, opts) {
97
+ return { kind: "relation", type: "hasMany", target, ...opts };
98
+ },
99
+ belongsTo(target, fields, references, opts) {
100
+ return {
101
+ kind: "relation",
102
+ type: "belongsTo",
103
+ target,
104
+ fields,
105
+ references,
106
+ ...opts
107
+ };
108
+ },
109
+ foreignKey(opts) {
110
+ return { kind: "scalar", type: "String", ...opts };
111
+ }
208
112
  };
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
- }
113
+ var index = {
114
+ on(fields, opts) {
115
+ return { fields, ...opts };
116
+ },
117
+ unique(fields, opts) {
118
+ return { fields, unique: true, ...opts };
119
+ },
120
+ compound(fields, sort, opts) {
121
+ return { fields, sort, ...opts };
122
+ }
123
+ };
124
+ export {
125
+ index,
126
+ field,
127
+ defineEntityEnum,
128
+ defineEntity
233
129
  };
234
-
235
- //#endregion
236
- export { defineEntity, defineEntityEnum, field, index };
237
- //# sourceMappingURL=defineEntity.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=defineEntity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineEntity.test.d.ts","sourceRoot":"","sources":["../../src/entity/defineEntity.test.ts"],"names":[],"mappings":""}
@@ -1,37 +1,33 @@
1
- import { EntityEnumDef, EntitySpec, ModuleSchemaContribution } from "./types.js";
2
-
3
- //#region src/entity/generator.d.ts
1
+ import type { EntityEnumDef, EntitySpec, ModuleSchemaContribution } from './types';
4
2
  /**
5
3
  * Options for Prisma schema generation.
6
4
  */
7
- interface PrismaGeneratorOptions {
8
- /** Output file path for the generated schema */
9
- outputPath?: string;
10
- /** Prisma datasource provider (default: 'postgresql') */
11
- provider?: 'postgresql' | 'mysql' | 'sqlite' | 'mongodb' | 'sqlserver';
12
- /** Prisma generator output path */
13
- clientOutput?: string;
14
- /** Include Pothos generator */
15
- includePothos?: boolean;
16
- /** Pothos output path */
17
- pothosOutput?: string;
5
+ export interface PrismaGeneratorOptions {
6
+ /** Output file path for the generated schema */
7
+ outputPath?: string;
8
+ /** Prisma datasource provider (default: 'postgresql') */
9
+ provider?: 'postgresql' | 'mysql' | 'sqlite' | 'mongodb' | 'sqlserver';
10
+ /** Prisma generator output path */
11
+ clientOutput?: string;
12
+ /** Include Pothos generator */
13
+ includePothos?: boolean;
14
+ /** Pothos output path */
15
+ pothosOutput?: string;
18
16
  }
19
17
  /**
20
18
  * Generate Prisma schema content from entity specifications.
21
19
  */
22
- declare function generatePrismaSchema(entities: EntitySpec[], options?: PrismaGeneratorOptions): string;
20
+ export declare function generatePrismaSchema(entities: EntitySpec[], options?: PrismaGeneratorOptions): string;
23
21
  /**
24
22
  * Compose multiple module schema contributions into a single schema.
25
23
  */
26
- declare function composeModuleSchemas(contributions: ModuleSchemaContribution[], options?: PrismaGeneratorOptions): string;
24
+ export declare function composeModuleSchemas(contributions: ModuleSchemaContribution[], options?: PrismaGeneratorOptions): string;
27
25
  /**
28
26
  * Generate a single entity's Prisma schema fragment (for modular output).
29
27
  */
30
- declare function generateEntityFragment(entity: EntitySpec): string;
28
+ export declare function generateEntityFragment(entity: EntitySpec): string;
31
29
  /**
32
30
  * Generate a single enum's Prisma schema fragment (for modular output).
33
31
  */
34
- declare function generateEnumFragment(enumDef: EntityEnumDef): string;
35
- //#endregion
36
- export { PrismaGeneratorOptions, composeModuleSchemas, generateEntityFragment, generateEnumFragment, generatePrismaSchema };
32
+ export declare function generateEnumFragment(enumDef: EntityEnumDef): string;
37
33
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","names":[],"sources":["../../src/entity/generator.ts"],"mappings":";;;;;AAcA;UAAiB,sBAAA;;EAEf,UAAA;EAAA;EAEA,QAAA;EAEA;EAAA,YAAA;EAIA;EAFA,aAAA;EAEY;EAAZ,YAAA;AAAA;;;;iBAMc,oBAAA,CACd,QAAA,EAAU,UAAA,IACV,OAAA,GAAS,sBAAA;;;;iBA0WK,oBAAA,CACd,aAAA,EAAe,wBAAA,IACf,OAAA,GAAS,sBAAA;AAFX;;;AAAA,iBAuCgB,sBAAA,CAAuB,MAAA,EAAQ,UAAA;;;;iBAO/B,oBAAA,CAAqB,OAAA,EAAS,aAAA"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/entity/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAMb,UAAU,EACV,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IACvE,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,GAAE,sBAA2B,GACnC,MAAM,CA0FR;AA4QD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,wBAAwB,EAAE,EACzC,OAAO,GAAE,sBAA2B,GACnC,MAAM,CA+BR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAEnE"}