ormbridge 0.13.0 → 0.15.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 (116) hide show
  1. package/README.md +23 -22
  2. package/dist/cliRunner.js +20 -2
  3. package/dist/cliRunner.js.map +1 -1
  4. package/dist/config.d.ts +6 -1
  5. package/dist/config.js +17 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/emitters/jpa.d.ts +17 -2
  8. package/dist/emitters/jpa.js +55 -7
  9. package/dist/emitters/jpa.js.map +1 -1
  10. package/dist/emitters/jpaKeyClass.d.ts +18 -0
  11. package/dist/emitters/jpaKeyClass.js +88 -0
  12. package/dist/emitters/jpaKeyClass.js.map +1 -0
  13. package/dist/emitters/jpaKeys.d.ts +1 -7
  14. package/dist/emitters/jpaKeys.js +0 -43
  15. package/dist/emitters/jpaKeys.js.map +1 -1
  16. package/dist/emitters/jpaRelations.d.ts +5 -1
  17. package/dist/emitters/jpaRelations.js +7 -1
  18. package/dist/emitters/jpaRelations.js.map +1 -1
  19. package/dist/emitters/jpaRender.d.ts +5 -1
  20. package/dist/emitters/jpaRender.js +11 -4
  21. package/dist/emitters/jpaRender.js.map +1 -1
  22. package/dist/emitters/jpaTypes.d.ts +9 -3
  23. package/dist/emitters/jpaTypes.js +8 -0
  24. package/dist/emitters/jpaTypes.js.map +1 -1
  25. package/dist/emitters/sequelize.d.ts +16 -3
  26. package/dist/emitters/sequelize.js +270 -45
  27. package/dist/emitters/sequelize.js.map +1 -1
  28. package/dist/emitters/sequelize7.d.ts +68 -0
  29. package/dist/emitters/sequelize7.js +199 -0
  30. package/dist/emitters/sequelize7.js.map +1 -0
  31. package/dist/emitters/sequelizeText.d.ts +12 -0
  32. package/dist/emitters/sequelizeText.js +37 -0
  33. package/dist/emitters/sequelizeText.js.map +1 -0
  34. package/dist/formats.d.ts +13 -2
  35. package/dist/formats.js +17 -6
  36. package/dist/formats.js.map +1 -1
  37. package/dist/index.d.ts +7 -4
  38. package/dist/index.js +4 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/io.js +105 -26
  41. package/dist/io.js.map +1 -1
  42. package/dist/parsers/efcore.js +60 -3
  43. package/dist/parsers/efcore.js.map +1 -1
  44. package/dist/parsers/efcoreAnnotations.js +1 -1
  45. package/dist/parsers/efcoreAnnotations.js.map +1 -1
  46. package/dist/parsers/efcoreBuild.d.ts +1 -0
  47. package/dist/parsers/efcoreBuild.js +15 -4
  48. package/dist/parsers/efcoreBuild.js.map +1 -1
  49. package/dist/parsers/efcoreEntities.js +90 -22
  50. package/dist/parsers/efcoreEntities.js.map +1 -1
  51. package/dist/parsers/efcoreMigrationHistory.d.ts +17 -0
  52. package/dist/parsers/efcoreMigrationHistory.js +105 -0
  53. package/dist/parsers/efcoreMigrationHistory.js.map +1 -0
  54. package/dist/parsers/efcoreMigrationReplay.d.ts +25 -0
  55. package/dist/parsers/efcoreMigrationReplay.js +790 -0
  56. package/dist/parsers/efcoreMigrationReplay.js.map +1 -0
  57. package/dist/parsers/efcoreMigrationSchema.d.ts +14 -0
  58. package/dist/parsers/efcoreMigrationSchema.js +550 -0
  59. package/dist/parsers/efcoreMigrationSchema.js.map +1 -0
  60. package/dist/parsers/efcoreMigrationState.d.ts +82 -0
  61. package/dist/parsers/efcoreMigrationState.js +104 -0
  62. package/dist/parsers/efcoreMigrationState.js.map +1 -0
  63. package/dist/parsers/efcoreModel.d.ts +18 -2
  64. package/dist/parsers/efcoreOwned.d.ts +12 -0
  65. package/dist/parsers/efcoreOwned.js +139 -0
  66. package/dist/parsers/efcoreOwned.js.map +1 -0
  67. package/dist/parsers/efcoreSnapshot.d.ts +85 -0
  68. package/dist/parsers/efcoreSnapshot.js +791 -0
  69. package/dist/parsers/efcoreSnapshot.js.map +1 -0
  70. package/dist/parsers/efcoreSteps.js +28 -3
  71. package/dist/parsers/efcoreSteps.js.map +1 -1
  72. package/dist/parsers/jpaBuild.js +2 -1
  73. package/dist/parsers/jpaBuild.js.map +1 -1
  74. package/dist/parsers/jpaClasses.js +7 -1
  75. package/dist/parsers/jpaClasses.js.map +1 -1
  76. package/dist/parsers/jpaColumns.d.ts +4 -1
  77. package/dist/parsers/jpaColumns.js +8 -2
  78. package/dist/parsers/jpaColumns.js.map +1 -1
  79. package/dist/parsers/jpaEntities.js +15 -0
  80. package/dist/parsers/jpaEntities.js.map +1 -1
  81. package/dist/parsers/jpaModel.d.ts +6 -0
  82. package/dist/parsers/sequelize.js +37 -10
  83. package/dist/parsers/sequelize.js.map +1 -1
  84. package/dist/parsers/sequelizeAssociations.js +13 -2
  85. package/dist/parsers/sequelizeAssociations.js.map +1 -1
  86. package/dist/parsers/sequelizeCollect.d.ts +7 -2
  87. package/dist/parsers/sequelizeCollect.js +120 -9
  88. package/dist/parsers/sequelizeCollect.js.map +1 -1
  89. package/dist/parsers/sequelizeMigrationState.d.ts +75 -0
  90. package/dist/parsers/sequelizeMigrationState.js +330 -0
  91. package/dist/parsers/sequelizeMigrationState.js.map +1 -0
  92. package/dist/parsers/sequelizeMigrations.d.ts +14 -0
  93. package/dist/parsers/sequelizeMigrations.js +1123 -0
  94. package/dist/parsers/sequelizeMigrations.js.map +1 -0
  95. package/dist/parsers/sequelizeModel.d.ts +19 -2
  96. package/dist/parsers/sqlDdl.js +1306 -65
  97. package/dist/parsers/sqlDdl.js.map +1 -1
  98. package/dist/parsers/sqlMigrationOrder.d.ts +8 -0
  99. package/dist/parsers/sqlMigrationOrder.js +110 -0
  100. package/dist/parsers/sqlMigrationOrder.js.map +1 -0
  101. package/dist/parsers/sqlSyntax.d.ts +6 -0
  102. package/dist/parsers/sqlSyntax.js +15 -2
  103. package/dist/parsers/sqlSyntax.js.map +1 -1
  104. package/dist/parsers/zod.d.ts +11 -0
  105. package/dist/parsers/zod.js +796 -0
  106. package/dist/parsers/zod.js.map +1 -0
  107. package/dist/parsers/zodFields.d.ts +73 -0
  108. package/dist/parsers/zodFields.js +681 -0
  109. package/dist/parsers/zodFields.js.map +1 -0
  110. package/dist/parsers/zodSyntax.d.ts +72 -0
  111. package/dist/parsers/zodSyntax.js +347 -0
  112. package/dist/parsers/zodSyntax.js.map +1 -0
  113. package/dist/styles.d.ts +3 -3
  114. package/dist/styles.js +4 -4
  115. package/dist/styles.js.map +1 -1
  116. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zodFields.js","sourceRoot":"","sources":["../../src/parsers/zodFields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import type { SyntaxNode } from './typescriptSyntax.js';
2
+ /**
3
+ * Syntax helpers of the Zod reader: which names are Zod, how a `z.string().min(1).optional()` chain
4
+ * is split into its base and steps, and how object literals, const objects and TypeScript enums are read.
5
+ * Nothing here runs the code; everything is read from the tree-sitter syntax tree.
6
+ */
7
+ export interface ZodFileInfo {
8
+ path: string;
9
+ /** Short name used in warnings. */
10
+ label: string;
11
+ /** Local names that stand for the Zod namespace (`z`, `zod`, `* as z`). */
12
+ namespaces: Set<string>;
13
+ /** Local name -> exported name for named imports other than `z` (`import { object, string } from 'zod'`). */
14
+ direct: Map<string, string>;
15
+ }
16
+ /** One call chained on a schema, for example `.min(3)` in `z.string().min(3)`. */
17
+ export interface ChainStep {
18
+ name: string;
19
+ args: SyntaxNode[];
20
+ }
21
+ /**
22
+ * A Zod expression split into where it starts and the calls chained on it. It starts either at a Zod
23
+ * constructor (`base`, such as `string`, `coerce.number` or `iso.date`) or at a name declared elsewhere (`ref`).
24
+ */
25
+ export interface ZodChain {
26
+ base?: {
27
+ name: string;
28
+ args: SyntaxNode[];
29
+ };
30
+ ref?: string;
31
+ steps: ChainStep[];
32
+ }
33
+ export declare function stripWrappers(node: SyntaxNode): SyntaxNode;
34
+ /** Reads the imports of a file to find the names Zod is bound to. */
35
+ export declare function describeZodFile(path: string, root: SyntaxNode): ZodFileInfo;
36
+ /**
37
+ * Splits `z.string().min(3).optional()` or `UserSchema.omit({ id: true })` into its base and steps.
38
+ * Returns undefined when the expression is neither (a number, a plain object, an unknown call).
39
+ */
40
+ export declare function unwindChain(file: ZodFileInfo, node: SyntaxNode): ZodChain | undefined;
41
+ /** The expression a function returns (an arrow's expression body, or the `return` of a block body). */
42
+ export declare function functionResult(fn: SyntaxNode): SyntaxNode | undefined;
43
+ export declare function isFunctionNode(node: SyntaxNode): boolean;
44
+ /** A literal read from the syntax tree. */
45
+ export type LiteralValue = string | number | boolean | null;
46
+ /** Reads a string, number, boolean or null literal (also `-1`); undefined for anything else. */
47
+ export declare function literalOf(node: SyntaxNode): LiteralValue | undefined;
48
+ /** The key of an object property: an identifier, a string or a number. */
49
+ export declare function propertyKey(keyNode: SyntaxNode): string | undefined;
50
+ /** One member of an object literal that holds a value expression. */
51
+ export interface ObjectMember {
52
+ kind: 'property' | 'spread';
53
+ key: string;
54
+ /** The value expression (the argument of a spread). */
55
+ node: SyntaxNode;
56
+ }
57
+ /**
58
+ * The members of an object literal, in order: `key: value` pairs, shorthand properties (`{ name }`),
59
+ * getters (`get parent() { return CategorySchema; }`, the Zod 4 way to write a recursive schema) and spreads.
60
+ * Anything else (computed keys, methods) is returned in `skipped`.
61
+ */
62
+ export declare function objectMembers(objectNode: SyntaxNode): {
63
+ members: ObjectMember[];
64
+ skipped: string[];
65
+ };
66
+ /** The name `X` of an expression `X` or `X.shape`, the two ways to point at another schema's shape. */
67
+ export declare function shapeReference(node: SyntaxNode): string | undefined;
68
+ /** The members of a TypeScript `enum` declaration: member name and its string or number value. */
69
+ export declare function enumMembers(enumNode: SyntaxNode): {
70
+ name: string;
71
+ value: string | number;
72
+ }[];
@@ -0,0 +1,347 @@
1
+ import { basename } from 'node:path';
2
+ const TRANSPARENT_NODES = new Set([
3
+ 'parenthesized_expression',
4
+ 'as_expression',
5
+ 'satisfies_expression',
6
+ 'non_null_expression',
7
+ 'type_assertion',
8
+ ]);
9
+ /** Prefixes of Zod 4 sub-namespaces (`z.coerce.number()`, `z.iso.date()`). */
10
+ const SUB_NAMESPACES = ['coerce', 'iso'];
11
+ export function stripWrappers(node) {
12
+ let current = node;
13
+ while (TRANSPARENT_NODES.has(current.type)) {
14
+ const inner = current.namedChildren[0];
15
+ if (inner === undefined) {
16
+ break;
17
+ }
18
+ current = inner;
19
+ }
20
+ return current;
21
+ }
22
+ function isZodModule(source) {
23
+ return /(^|[/@-])zod($|[/-])/.test(source);
24
+ }
25
+ /** Reads the imports of a file to find the names Zod is bound to. */
26
+ export function describeZodFile(path, root) {
27
+ const namespaces = new Set();
28
+ const direct = new Map();
29
+ let importsZod = false;
30
+ for (const statement of root.namedChildren) {
31
+ if (statement.type !== 'import_statement') {
32
+ continue;
33
+ }
34
+ const sourceNode = statement.childForFieldName('source');
35
+ const source = sourceNode?.text.slice(1, -1) ?? '';
36
+ if (!isZodModule(source)) {
37
+ continue;
38
+ }
39
+ importsZod = true;
40
+ const stack = [...statement.namedChildren];
41
+ while (stack.length > 0) {
42
+ const node = stack.pop();
43
+ if (node === undefined) {
44
+ break;
45
+ }
46
+ if (node.type === 'import_specifier') {
47
+ const nameNode = node.childForFieldName('name');
48
+ const aliasNode = node.childForFieldName('alias');
49
+ const exported = nameNode?.text ?? '';
50
+ const local = aliasNode?.text ?? exported;
51
+ if (exported === 'z') {
52
+ namespaces.add(local);
53
+ }
54
+ else if (exported !== '') {
55
+ direct.set(local, exported);
56
+ }
57
+ }
58
+ else if (node.type === 'namespace_import') {
59
+ const nameNode = node.namedChildren[0];
60
+ if (nameNode !== undefined) {
61
+ namespaces.add(nameNode.text);
62
+ }
63
+ }
64
+ else if (node.type === 'import_clause') {
65
+ // A default import (`import z from 'zod'`) is a direct child identifier of the clause.
66
+ for (const child of node.namedChildren) {
67
+ if (child.type === 'identifier') {
68
+ namespaces.add(child.text);
69
+ }
70
+ else {
71
+ stack.push(child);
72
+ }
73
+ }
74
+ }
75
+ else {
76
+ stack.push(...node.namedChildren);
77
+ }
78
+ }
79
+ }
80
+ if (!importsZod) {
81
+ // Snippets without imports are common in tests and docs: assume the usual `z`.
82
+ namespaces.add('z');
83
+ }
84
+ return { path, label: basename(path), namespaces, direct };
85
+ }
86
+ function callArguments(call) {
87
+ const argumentsNode = call.childForFieldName('arguments');
88
+ if (argumentsNode === null || argumentsNode.type === 'template_string') {
89
+ return [];
90
+ }
91
+ return argumentsNode.namedChildren.filter((child) => child.type !== 'comment');
92
+ }
93
+ /** The Zod constructor a callee names (`z.string` gives "string", `z.coerce.number` gives "coerce.number"). */
94
+ function constructorName(file, callee) {
95
+ if (callee.type === 'identifier') {
96
+ return file.direct.get(callee.text);
97
+ }
98
+ if (callee.type !== 'member_expression') {
99
+ return undefined;
100
+ }
101
+ const objectNode = callee.childForFieldName('object');
102
+ const propertyNode = callee.childForFieldName('property');
103
+ if (objectNode === null || propertyNode === null) {
104
+ return undefined;
105
+ }
106
+ const objectText = objectNode.text.replace(/\s+/g, '');
107
+ if (file.namespaces.has(objectText)) {
108
+ return propertyNode.text;
109
+ }
110
+ for (const namespace of file.namespaces) {
111
+ for (const sub of SUB_NAMESPACES) {
112
+ if (objectText === `${namespace}.${sub}`) {
113
+ return `${sub}.${propertyNode.text}`;
114
+ }
115
+ }
116
+ }
117
+ return undefined;
118
+ }
119
+ /**
120
+ * Splits `z.string().min(3).optional()` or `UserSchema.omit({ id: true })` into its base and steps.
121
+ * Returns undefined when the expression is neither (a number, a plain object, an unknown call).
122
+ */
123
+ export function unwindChain(file, node) {
124
+ const current = stripWrappers(node);
125
+ if (current.type === 'identifier') {
126
+ if (file.namespaces.has(current.text)) {
127
+ return undefined;
128
+ }
129
+ return { ref: current.text, steps: [] };
130
+ }
131
+ if (current.type !== 'call_expression') {
132
+ return undefined;
133
+ }
134
+ const callee = current.childForFieldName('function');
135
+ if (callee === null) {
136
+ return undefined;
137
+ }
138
+ const args = callArguments(current);
139
+ const name = constructorName(file, callee);
140
+ if (name !== undefined) {
141
+ return { base: { name, args }, steps: [] };
142
+ }
143
+ if (callee.type !== 'member_expression') {
144
+ return undefined;
145
+ }
146
+ const objectNode = callee.childForFieldName('object');
147
+ const propertyNode = callee.childForFieldName('property');
148
+ if (objectNode === null || propertyNode === null) {
149
+ return undefined;
150
+ }
151
+ const inner = unwindChain(file, objectNode);
152
+ if (inner === undefined) {
153
+ return undefined;
154
+ }
155
+ return {
156
+ ...inner,
157
+ steps: [...inner.steps, { name: propertyNode.text, args }],
158
+ };
159
+ }
160
+ /** The expression a function returns (an arrow's expression body, or the `return` of a block body). */
161
+ export function functionResult(fn) {
162
+ const body = fn.childForFieldName('body');
163
+ if (body === null) {
164
+ return undefined;
165
+ }
166
+ if (body.type === 'statement_block') {
167
+ const returned = body.namedChildren.find((statement) => statement.type === 'return_statement');
168
+ const value = returned?.namedChildren.find((child) => child.type !== 'comment');
169
+ return value === undefined ? undefined : stripWrappers(value);
170
+ }
171
+ return stripWrappers(body);
172
+ }
173
+ export function isFunctionNode(node) {
174
+ return (node.type === 'arrow_function' ||
175
+ node.type === 'function_expression' ||
176
+ node.type === 'function');
177
+ }
178
+ function unquote(text) {
179
+ const quote = text.charAt(0);
180
+ if (quote !== '"' && quote !== "'" && quote !== '`') {
181
+ return text;
182
+ }
183
+ return text
184
+ .slice(1, -1)
185
+ .replace(/\\(n|t|r|\\|"|'|`)/g, (_whole, escaped) => escaped === 'n'
186
+ ? '\n'
187
+ : escaped === 't'
188
+ ? '\t'
189
+ : escaped === 'r'
190
+ ? '\r'
191
+ : escaped);
192
+ }
193
+ /** Reads a string, number, boolean or null literal (also `-1`); undefined for anything else. */
194
+ export function literalOf(node) {
195
+ const current = stripWrappers(node);
196
+ switch (current.type) {
197
+ case 'string':
198
+ return unquote(current.text);
199
+ case 'template_string':
200
+ return current.namedChildren.some((child) => child.type === 'template_substitution')
201
+ ? undefined
202
+ : unquote(current.text);
203
+ case 'number': {
204
+ const value = Number(current.text.replace(/_/g, ''));
205
+ return Number.isNaN(value) ? undefined : value;
206
+ }
207
+ case 'true':
208
+ return true;
209
+ case 'false':
210
+ return false;
211
+ case 'null':
212
+ return null;
213
+ case 'unary_expression': {
214
+ const operand = current.namedChildren[0];
215
+ const value = operand === undefined ? undefined : literalOf(operand);
216
+ return current.text.startsWith('-') && typeof value === 'number'
217
+ ? -value
218
+ : undefined;
219
+ }
220
+ default:
221
+ return undefined;
222
+ }
223
+ }
224
+ /** The key of an object property: an identifier, a string or a number. */
225
+ export function propertyKey(keyNode) {
226
+ switch (keyNode.type) {
227
+ case 'property_identifier':
228
+ case 'identifier':
229
+ return keyNode.text;
230
+ case 'string':
231
+ return unquote(keyNode.text);
232
+ case 'number':
233
+ return keyNode.text;
234
+ default:
235
+ return undefined;
236
+ }
237
+ }
238
+ /**
239
+ * The members of an object literal, in order: `key: value` pairs, shorthand properties (`{ name }`),
240
+ * getters (`get parent() { return CategorySchema; }`, the Zod 4 way to write a recursive schema) and spreads.
241
+ * Anything else (computed keys, methods) is returned in `skipped`.
242
+ */
243
+ export function objectMembers(objectNode) {
244
+ const members = [];
245
+ const skipped = [];
246
+ for (const child of objectNode.namedChildren) {
247
+ switch (child.type) {
248
+ case 'pair': {
249
+ const keyNode = child.childForFieldName('key');
250
+ const valueNode = child.childForFieldName('value');
251
+ const key = keyNode === null ? undefined : propertyKey(keyNode);
252
+ if (key === undefined || valueNode === null) {
253
+ skipped.push(child.text);
254
+ }
255
+ else {
256
+ members.push({ kind: 'property', key, node: valueNode });
257
+ }
258
+ break;
259
+ }
260
+ case 'shorthand_property_identifier':
261
+ members.push({ kind: 'property', key: child.text, node: child });
262
+ break;
263
+ case 'method_definition': {
264
+ const nameNode = child.childForFieldName('name');
265
+ const isGetter = child.children.some((part) => part.type === 'get');
266
+ const result = isFunctionNode(child)
267
+ ? undefined
268
+ : functionResult(child);
269
+ const key = nameNode === null ? undefined : propertyKey(nameNode);
270
+ if (isGetter && key !== undefined && result !== undefined) {
271
+ members.push({ kind: 'property', key, node: result });
272
+ }
273
+ else {
274
+ skipped.push(child.text);
275
+ }
276
+ break;
277
+ }
278
+ case 'spread_element': {
279
+ const target = child.namedChildren[0];
280
+ if (target === undefined) {
281
+ skipped.push(child.text);
282
+ }
283
+ else {
284
+ members.push({ kind: 'spread', key: '', node: target });
285
+ }
286
+ break;
287
+ }
288
+ case 'comment':
289
+ break;
290
+ default:
291
+ skipped.push(child.text);
292
+ }
293
+ }
294
+ return { members, skipped };
295
+ }
296
+ /** The name `X` of an expression `X` or `X.shape`, the two ways to point at another schema's shape. */
297
+ export function shapeReference(node) {
298
+ const current = stripWrappers(node);
299
+ if (current.type === 'identifier') {
300
+ return current.text;
301
+ }
302
+ if (current.type === 'member_expression') {
303
+ const objectNode = current.childForFieldName('object');
304
+ const propertyNode = current.childForFieldName('property');
305
+ if (objectNode !== null &&
306
+ propertyNode?.text === 'shape' &&
307
+ objectNode.type === 'identifier') {
308
+ return objectNode.text;
309
+ }
310
+ }
311
+ return undefined;
312
+ }
313
+ /** The members of a TypeScript `enum` declaration: member name and its string or number value. */
314
+ export function enumMembers(enumNode) {
315
+ const members = [];
316
+ const body = enumNode.childForFieldName('body');
317
+ let nextNumber = 0;
318
+ for (const member of body?.namedChildren ?? []) {
319
+ let name;
320
+ let valueNode = null;
321
+ if (member.type === 'property_identifier' || member.type === 'string') {
322
+ name = propertyKey(member);
323
+ }
324
+ else if (member.type === 'enum_assignment') {
325
+ const nameNode = member.childForFieldName('name');
326
+ name = nameNode === null ? undefined : propertyKey(nameNode);
327
+ valueNode = member.childForFieldName('value');
328
+ }
329
+ if (name === undefined) {
330
+ continue;
331
+ }
332
+ const literal = valueNode === null ? undefined : literalOf(valueNode);
333
+ if (typeof literal === 'string') {
334
+ members.push({ name, value: literal });
335
+ }
336
+ else if (typeof literal === 'number') {
337
+ members.push({ name, value: literal });
338
+ nextNumber = literal + 1;
339
+ }
340
+ else if (valueNode === null) {
341
+ members.push({ name, value: nextNumber });
342
+ nextNumber += 1;
343
+ }
344
+ }
345
+ return members;
346
+ }
347
+ //# sourceMappingURL=zodSyntax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zodSyntax.js","sourceRoot":"","sources":["../../src/parsers/zodSyntax.ts"],"names":[],"mappings":"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"}
package/dist/styles.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { type EfcoreStyle } from './emitters/efcore.js';
2
2
  import { type JpaStyle } from './emitters/jpa.js';
3
3
  import { type Neo4jStyle } from './emitters/neo4j.js';
4
- import { type SequelizeStyle } from './emitters/sequelize.js';
4
+ import { type SequelizeOutputStyle } from './emitters/sequelize.js';
5
5
  import { type SqlAlchemyStyle } from './emitters/sqlalchemy.js';
6
6
  import { type Result } from './result.js';
7
7
  /** Every value `--style` accepts; which ones apply depends on the target format. */
8
- export type OutputStyle = SqlAlchemyStyle | SequelizeStyle | EfcoreStyle | JpaStyle | Neo4jStyle;
8
+ export type OutputStyle = SqlAlchemyStyle | SequelizeOutputStyle | EfcoreStyle | JpaStyle | Neo4jStyle;
9
9
  /** Every style of every format, in the order the help lists them. */
10
10
  export declare const OUTPUT_STYLES: readonly OutputStyle[];
11
11
  /** True when a value is a style of some format. */
@@ -14,7 +14,7 @@ export declare function isOutputStyle(value: string): value is OutputStyle;
14
14
  export declare function stylesOf(format: string): readonly OutputStyle[] | undefined;
15
15
  /**
16
16
  * Checks a `--style` value against the target format. A format with styles accepts only its own
17
- * (`sqlalchemy`, `sqlmodel` for SQLAlchemy; `init`, `define` for Sequelize; `annotations`, `fluent` for EF Core; `jakarta`, `javax` for JPA; `community`, `enterprise` for Neo4j). Any other format
17
+ * (`sqlalchemy`, `sqlmodel` for SQLAlchemy; `init`, `define`, `v6`, `v7` for Sequelize; `annotations`, `fluent` for EF Core; `jakarta`, `javax` for JPA; `community`, `enterprise` for Neo4j). Any other format
18
18
  * ignores the option, so it accepts every known style but still rejects values nobody knows.
19
19
  */
20
20
  export declare function checkStyle(format: string, value: string, label?: string): Result<OutputStyle>;
package/dist/styles.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { EFCORE_STYLES } from './emitters/efcore.js';
2
2
  import { JPA_STYLES } from './emitters/jpa.js';
3
3
  import { NEO4J_STYLES } from './emitters/neo4j.js';
4
- import { SEQUELIZE_STYLES } from './emitters/sequelize.js';
4
+ import { SEQUELIZE_OUTPUT_STYLES, } from './emitters/sequelize.js';
5
5
  import { SQLALCHEMY_STYLES, } from './emitters/sqlalchemy.js';
6
6
  import { err, ok } from './result.js';
7
7
  /** The output styles of the formats that have any, by format name. */
8
8
  const STYLES_BY_FORMAT = {
9
9
  sqlalchemy: SQLALCHEMY_STYLES,
10
- sequelize: SEQUELIZE_STYLES,
10
+ sequelize: SEQUELIZE_OUTPUT_STYLES,
11
11
  efcore: EFCORE_STYLES,
12
12
  jpa: JPA_STYLES,
13
13
  neo4j: NEO4J_STYLES,
@@ -15,7 +15,7 @@ const STYLES_BY_FORMAT = {
15
15
  /** Every style of every format, in the order the help lists them. */
16
16
  export const OUTPUT_STYLES = [
17
17
  ...SQLALCHEMY_STYLES,
18
- ...SEQUELIZE_STYLES,
18
+ ...SEQUELIZE_OUTPUT_STYLES,
19
19
  ...EFCORE_STYLES,
20
20
  ...JPA_STYLES,
21
21
  ...NEO4J_STYLES,
@@ -30,7 +30,7 @@ export function stylesOf(format) {
30
30
  }
31
31
  /**
32
32
  * Checks a `--style` value against the target format. A format with styles accepts only its own
33
- * (`sqlalchemy`, `sqlmodel` for SQLAlchemy; `init`, `define` for Sequelize; `annotations`, `fluent` for EF Core; `jakarta`, `javax` for JPA; `community`, `enterprise` for Neo4j). Any other format
33
+ * (`sqlalchemy`, `sqlmodel` for SQLAlchemy; `init`, `define`, `v6`, `v7` for Sequelize; `annotations`, `fluent` for EF Core; `jakarta`, `javax` for JPA; `community`, `enterprise` for Neo4j). Any other format
34
34
  * ignores the option, so it accepts every known style but still rejects values nobody knows.
35
35
  */
36
36
  export function checkStyle(format, value, label = '--style value') {
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AAMnD,sEAAsE;AACtE,MAAM,gBAAgB,GAAqD;IACzE,UAAU,EAAE,iBAAiB;IAC7B,SAAS,EAAE,gBAAgB;IAC3B,MAAM,EAAE,aAAa;IACrB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,YAAY;CACpB,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,GAAG,iBAAiB;IACpB,GAAG,gBAAgB;IACnB,GAAG,aAAa;IAChB,GAAG,UAAU;IACb,GAAG,YAAY;CAChB,CAAC;AAEF,mDAAmD;AACnD,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAQ,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAAc,EACd,KAAa,EACb,QAAgB,eAAe;IAE/B,MAAM,GAAG,GAAuC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAoB,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC,KAAoB,CAAC;YAC1B,CAAC,CAAC,GAAG,CACD,gBAAgB,EAChB,WAAW,KAAK,KAAK,KAAK,aAAa,MAAM,6BAA6B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5F,CAAC;IACR,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACX,CAAC,CAAC,GAAG,CACD,gBAAgB,EAChB,WAAW,KAAK,KAAK,KAAK,uBAAuB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,OAAO,CAC1F,gBAAgB,CACjB;aACE,GAAG,CACF,CAAC,CAAC,IAAI,EAAE,MAAM,CAAmC,EAAE,EAAE,CACnD,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CACrC;aACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAClB,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EACL,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AAMnD,sEAAsE;AACtE,MAAM,gBAAgB,GAAqD;IACzE,UAAU,EAAE,iBAAiB;IAC7B,SAAS,EAAE,uBAAuB;IAClC,MAAM,EAAE,aAAa;IACrB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,YAAY;CACpB,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,GAAG,iBAAiB;IACpB,GAAG,uBAAuB;IAC1B,GAAG,aAAa;IAChB,GAAG,UAAU;IACb,GAAG,YAAY;CAChB,CAAC;AAEF,mDAAmD;AACnD,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAQ,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAAc,EACd,KAAa,EACb,QAAgB,eAAe;IAE/B,MAAM,GAAG,GAAuC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAoB,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC,KAAoB,CAAC;YAC1B,CAAC,CAAC,GAAG,CACD,gBAAgB,EAChB,WAAW,KAAK,KAAK,KAAK,aAAa,MAAM,6BAA6B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5F,CAAC;IACR,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACX,CAAC,CAAC,GAAG,CACD,gBAAgB,EAChB,WAAW,KAAK,KAAK,KAAK,uBAAuB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,OAAO,CAC1F,gBAAgB,CACjB;aACE,GAAG,CACF,CAAC,CAAC,IAAI,EAAE,MAAM,CAAmC,EAAE,EAAE,CACnD,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CACrC;aACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAClB,CAAC;AACR,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ormbridge",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "description": "Convert ORM models between frameworks and languages (Django, Prisma, TypeORM, Doctrine, Laravel). Define your data model once and share typed schemas across your stack.",
5
5
  "author": {
6
6
  "name": "Richard McQuiston",