ormbridge 0.0.0-stage → 0.2.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 (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +408 -2
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.js +20 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/cliRunner.d.ts +20 -0
  7. package/dist/cliRunner.js +343 -0
  8. package/dist/cliRunner.js.map +1 -0
  9. package/dist/config.d.ts +40 -0
  10. package/dist/config.js +204 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/convert.d.ts +20 -0
  13. package/dist/convert.js +61 -0
  14. package/dist/convert.js.map +1 -0
  15. package/dist/emitters/django.d.ts +4 -0
  16. package/dist/emitters/django.js +501 -0
  17. package/dist/emitters/django.js.map +1 -0
  18. package/dist/emitters/doctrine.d.ts +20 -0
  19. package/dist/emitters/doctrine.js +1134 -0
  20. package/dist/emitters/doctrine.js.map +1 -0
  21. package/dist/emitters/graphene.d.ts +4 -0
  22. package/dist/emitters/graphene.js +431 -0
  23. package/dist/emitters/graphene.js.map +1 -0
  24. package/dist/emitters/laravel.d.ts +33 -0
  25. package/dist/emitters/laravel.js +1695 -0
  26. package/dist/emitters/laravel.js.map +1 -0
  27. package/dist/emitters/prisma.d.ts +21 -0
  28. package/dist/emitters/prisma.js +1058 -0
  29. package/dist/emitters/prisma.js.map +1 -0
  30. package/dist/emitters/typeorm.d.ts +9 -0
  31. package/dist/emitters/typeorm.js +833 -0
  32. package/dist/emitters/typeorm.js.map +1 -0
  33. package/dist/emitters/typescriptInterfaces.d.ts +15 -0
  34. package/dist/emitters/typescriptInterfaces.js +350 -0
  35. package/dist/emitters/typescriptInterfaces.js.map +1 -0
  36. package/dist/formats.d.ts +80 -0
  37. package/dist/formats.js +212 -0
  38. package/dist/formats.js.map +1 -0
  39. package/dist/index.d.ts +33 -0
  40. package/dist/index.js +18 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/io.d.ts +48 -0
  43. package/dist/io.js +328 -0
  44. package/dist/io.js.map +1 -0
  45. package/dist/ir.d.ts +197 -0
  46. package/dist/ir.js +10 -0
  47. package/dist/ir.js.map +1 -0
  48. package/dist/naming.d.ts +11 -0
  49. package/dist/naming.js +88 -0
  50. package/dist/naming.js.map +1 -0
  51. package/dist/parsers/django.d.ts +14 -0
  52. package/dist/parsers/django.js +1161 -0
  53. package/dist/parsers/django.js.map +1 -0
  54. package/dist/parsers/doctrine.d.ts +12 -0
  55. package/dist/parsers/doctrine.js +1782 -0
  56. package/dist/parsers/doctrine.js.map +1 -0
  57. package/dist/parsers/laravel.d.ts +17 -0
  58. package/dist/parsers/laravel.js +2824 -0
  59. package/dist/parsers/laravel.js.map +1 -0
  60. package/dist/parsers/phpSyntax.d.ts +124 -0
  61. package/dist/parsers/phpSyntax.js +429 -0
  62. package/dist/parsers/phpSyntax.js.map +1 -0
  63. package/dist/parsers/prisma.d.ts +12 -0
  64. package/dist/parsers/prisma.js +964 -0
  65. package/dist/parsers/prisma.js.map +1 -0
  66. package/dist/parsers/pythonSyntax.d.ts +38 -0
  67. package/dist/parsers/pythonSyntax.js +120 -0
  68. package/dist/parsers/pythonSyntax.js.map +1 -0
  69. package/dist/parsers/typeorm.d.ts +12 -0
  70. package/dist/parsers/typeorm.js +1614 -0
  71. package/dist/parsers/typeorm.js.map +1 -0
  72. package/dist/parsers/typescriptSyntax.d.ts +57 -0
  73. package/dist/parsers/typescriptSyntax.js +200 -0
  74. package/dist/parsers/typescriptSyntax.js.map +1 -0
  75. package/dist/prismaOnlyConstructs.d.ts +7 -0
  76. package/dist/prismaOnlyConstructs.js +76 -0
  77. package/dist/prismaOnlyConstructs.js.map +1 -0
  78. package/dist/result.d.ts +20 -0
  79. package/dist/result.js +18 -0
  80. package/dist/result.js.map +1 -0
  81. package/dist/transforms.d.ts +13 -0
  82. package/dist/transforms.js +142 -0
  83. package/dist/transforms.js.map +1 -0
  84. package/package.json +83 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeorm.js","sourceRoot":"","sources":["../../src/parsers/typeorm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import Parser from 'web-tree-sitter';
2
+ import { type Result } from '../result.js';
3
+ export type SyntaxNode = Parser.SyntaxNode;
4
+ /** Statically evaluated subset of TypeScript expressions found in entity definitions. */
5
+ export type TsValue = {
6
+ kind: 'string';
7
+ value: string;
8
+ } | {
9
+ kind: 'number';
10
+ value: number;
11
+ } | {
12
+ kind: 'bool';
13
+ value: boolean;
14
+ } | {
15
+ kind: 'null';
16
+ } | {
17
+ kind: 'name';
18
+ value: string;
19
+ } | {
20
+ kind: 'array';
21
+ items: TsValue[];
22
+ } | TsObject | TsArrow | TsCall | {
23
+ kind: 'other';
24
+ text: string;
25
+ };
26
+ export interface TsObject {
27
+ kind: 'object';
28
+ properties: Record<string, TsValue>;
29
+ }
30
+ /** An arrow function or function expression, reduced to the value it returns. */
31
+ export interface TsArrow {
32
+ kind: 'arrow';
33
+ /** Parameter names, in order (for example the "u" in `(u) => u.posts`). */
34
+ params: string[];
35
+ /** The returned expression; "other" when the body is a block. */
36
+ body: TsValue;
37
+ }
38
+ export interface TsCall {
39
+ kind: 'call';
40
+ callee: string;
41
+ args: TsValue[];
42
+ }
43
+ /** One decorator, for example `@Column('varchar', { length: 20 })`. */
44
+ export interface TsDecorator {
45
+ /** Callee name without any namespace prefix, for example "Column". */
46
+ name: string;
47
+ /** Callee name exactly as written, for example "typeorm.Column". */
48
+ rawName: string;
49
+ args: TsValue[];
50
+ }
51
+ /** Lazily loads the tree-sitter TypeScript grammar (WebAssembly, no native build step). */
52
+ export declare function getTypeScriptParser(): Promise<Result<Parser>>;
53
+ export declare function lastSegment(dottedName: string): string;
54
+ /** Evaluates a tree-sitter expression node into the supported TsValue subset. */
55
+ export declare function evaluateNode(node: SyntaxNode): TsValue;
56
+ /** Reads the decorators that apply to a class or class member. */
57
+ export declare function decoratorsOf(node: SyntaxNode): TsDecorator[];
@@ -0,0 +1,200 @@
1
+ import { createRequire } from 'node:module';
2
+ import Parser from 'web-tree-sitter';
3
+ import { describeThrown, err, ok } from '../result.js';
4
+ let cachedParser;
5
+ /** Lazily loads the tree-sitter TypeScript grammar (WebAssembly, no native build step). */
6
+ export async function getTypeScriptParser() {
7
+ if (cachedParser !== undefined) {
8
+ return ok(cachedParser);
9
+ }
10
+ try {
11
+ const requireFromHere = createRequire(import.meta.url);
12
+ const wasmPath = requireFromHere.resolve('tree-sitter-wasms/out/tree-sitter-typescript.wasm');
13
+ await Parser.init();
14
+ const typescriptLanguage = await Parser.Language.load(wasmPath);
15
+ const parser = new Parser();
16
+ parser.setLanguage(typescriptLanguage);
17
+ cachedParser = parser;
18
+ return ok(parser);
19
+ }
20
+ catch (thrown) {
21
+ return err('PARSER_INIT_FAILED', `Failed to initialize the tree-sitter TypeScript grammar. Check that the "web-tree-sitter" (0.22.x) and ` +
22
+ `"tree-sitter-wasms" packages are installed. Underlying error: ${describeThrown(thrown)}`);
23
+ }
24
+ }
25
+ export function lastSegment(dottedName) {
26
+ const segments = dottedName.split('.');
27
+ return segments[segments.length - 1] ?? dottedName;
28
+ }
29
+ function unquote(literalText) {
30
+ const quote = literalText.charAt(0);
31
+ const body = literalText.slice(1, -1);
32
+ if (quote !== '"' && quote !== "'" && quote !== '`') {
33
+ return literalText;
34
+ }
35
+ return body.replace(/\\(n|t|r|\\|"|'|`)/g, (_whole, escaped) => {
36
+ switch (escaped) {
37
+ case 'n':
38
+ return '\n';
39
+ case 't':
40
+ return '\t';
41
+ case 'r':
42
+ return '\r';
43
+ default:
44
+ return escaped;
45
+ }
46
+ });
47
+ }
48
+ /** Evaluates a tree-sitter expression node into the supported TsValue subset. */
49
+ export function evaluateNode(node) {
50
+ switch (node.type) {
51
+ case 'string':
52
+ return { kind: 'string', value: unquote(node.text) };
53
+ case 'template_string':
54
+ // Only substitution-free templates can be evaluated statically.
55
+ return node.namedChildren.some((child) => child.type === 'template_substitution')
56
+ ? { kind: 'other', text: node.text }
57
+ : { kind: 'string', value: unquote(node.text) };
58
+ case 'number': {
59
+ const parsedNumber = Number(node.text.replace(/_/g, ''));
60
+ return Number.isNaN(parsedNumber)
61
+ ? { kind: 'other', text: node.text }
62
+ : { kind: 'number', value: parsedNumber };
63
+ }
64
+ case 'true':
65
+ return { kind: 'bool', value: true };
66
+ case 'false':
67
+ return { kind: 'bool', value: false };
68
+ case 'null':
69
+ case 'undefined':
70
+ return { kind: 'null' };
71
+ case 'identifier':
72
+ case 'member_expression':
73
+ case 'nested_identifier':
74
+ case 'type_identifier':
75
+ return { kind: 'name', value: node.text.replace(/\s+/g, '') };
76
+ case 'array':
77
+ return { kind: 'array', items: node.namedChildren.map(evaluateNode) };
78
+ case 'object':
79
+ return evaluateObject(node);
80
+ case 'parenthesized_expression':
81
+ case 'as_expression':
82
+ case 'satisfies_expression':
83
+ case 'non_null_expression': {
84
+ const inner = node.namedChildren[0];
85
+ return inner === undefined
86
+ ? { kind: 'other', text: node.text }
87
+ : evaluateNode(inner);
88
+ }
89
+ case 'unary_expression': {
90
+ const operand = node.namedChildren[0];
91
+ if (operand !== undefined && node.text.startsWith('-')) {
92
+ const operandValue = evaluateNode(operand);
93
+ if (operandValue.kind === 'number') {
94
+ return { kind: 'number', value: -operandValue.value };
95
+ }
96
+ }
97
+ return { kind: 'other', text: node.text };
98
+ }
99
+ case 'arrow_function':
100
+ case 'function_expression':
101
+ return evaluateFunction(node);
102
+ case 'call_expression':
103
+ return evaluateCall(node);
104
+ default:
105
+ return { kind: 'other', text: node.text };
106
+ }
107
+ }
108
+ function evaluateObject(node) {
109
+ const properties = {};
110
+ for (const child of node.namedChildren) {
111
+ if (child.type === 'pair') {
112
+ const keyNode = child.childForFieldName('key');
113
+ const valueNode = child.childForFieldName('value');
114
+ if (keyNode !== null && valueNode !== null) {
115
+ const key = keyNode.type === 'string' ? unquote(keyNode.text) : keyNode.text;
116
+ properties[key] = evaluateNode(valueNode);
117
+ }
118
+ }
119
+ else if (child.type === 'shorthand_property_identifier') {
120
+ properties[child.text] = { kind: 'name', value: child.text };
121
+ }
122
+ else if (child.type === 'spread_element') {
123
+ properties[`...${child.text}`] = { kind: 'other', text: child.text };
124
+ }
125
+ }
126
+ return { kind: 'object', properties };
127
+ }
128
+ function evaluateFunction(node) {
129
+ const parametersNode = node.childForFieldName('parameters') ?? node.childForFieldName('parameter');
130
+ const params = [];
131
+ if (parametersNode !== null) {
132
+ if (parametersNode.type === 'identifier') {
133
+ params.push(parametersNode.text);
134
+ }
135
+ else {
136
+ for (const parameter of parametersNode.namedChildren) {
137
+ const patternNode = parameter.childForFieldName('pattern');
138
+ params.push((patternNode ?? parameter).text);
139
+ }
140
+ }
141
+ }
142
+ const bodyNode = node.childForFieldName('body');
143
+ let body = { kind: 'other', text: node.text };
144
+ if (bodyNode !== null) {
145
+ if (bodyNode.type === 'statement_block') {
146
+ const returned = bodyNode.namedChildren.find((statement) => statement.type === 'return_statement');
147
+ const returnedValue = returned?.namedChildren[0];
148
+ if (returnedValue !== undefined && bodyNode.namedChildCount === 1) {
149
+ body = evaluateNode(returnedValue);
150
+ }
151
+ }
152
+ else {
153
+ body = evaluateNode(bodyNode);
154
+ }
155
+ }
156
+ return { kind: 'arrow', params, body };
157
+ }
158
+ function evaluateCall(node) {
159
+ const functionNode = node.childForFieldName('function');
160
+ const argumentsNode = node.childForFieldName('arguments');
161
+ const callee = functionNode === null ? '' : functionNode.text.replace(/\s+/g, '');
162
+ const args = [];
163
+ if (argumentsNode !== null) {
164
+ for (const argumentNode of argumentsNode.namedChildren) {
165
+ if (argumentNode.type !== 'comment') {
166
+ args.push(evaluateNode(argumentNode));
167
+ }
168
+ }
169
+ }
170
+ return { kind: 'call', callee, args };
171
+ }
172
+ /** Reads the decorators that apply to a class or class member. */
173
+ export function decoratorsOf(node) {
174
+ const decorators = [];
175
+ for (const child of node.namedChildren) {
176
+ if (child.type !== 'decorator') {
177
+ continue;
178
+ }
179
+ const expression = child.namedChildren[0];
180
+ if (expression === undefined) {
181
+ continue;
182
+ }
183
+ if (expression.type === 'call_expression') {
184
+ const evaluated = evaluateNode(expression);
185
+ if (evaluated.kind === 'call') {
186
+ decorators.push({
187
+ name: lastSegment(evaluated.callee),
188
+ rawName: evaluated.callee,
189
+ args: evaluated.args,
190
+ });
191
+ }
192
+ }
193
+ else {
194
+ const rawName = expression.text.replace(/\s+/g, '');
195
+ decorators.push({ name: lastSegment(rawName), rawName, args: [] });
196
+ }
197
+ }
198
+ return decorators;
199
+ }
200
+ //# sourceMappingURL=typescriptSyntax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescriptSyntax.js","sourceRoot":"","sources":["../../src/parsers/typescriptSyntax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,cAAc,CAAC;AA8CpE,IAAI,YAAgC,CAAC;AAErC,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC;QACH,MAAM,eAAe,GAAgB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAW,eAAe,CAAC,OAAO,CAC9C,mDAAmD,CACpD,CAAC;QACF,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,kBAAkB,GACtB,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,MAAM,GAAW,IAAI,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACvC,YAAY,GAAG,MAAM,CAAC;QACtB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,GAAG,CACR,oBAAoB,EACpB,yGAAyG;YACvG,iEAAiE,cAAc,CAAC,MAAM,CAAC,EAAE,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,MAAM,QAAQ,GAAa,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC;AACrD,CAAC;AAED,SAAS,OAAO,CAAC,WAAmB;IAClC,MAAM,KAAK,GAAW,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAW,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QACpD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CACjB,qBAAqB,EACrB,CAAC,MAAc,EAAE,OAAe,EAAU,EAAE;QAC1C,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC;YACd,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC;YACd,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,OAAO,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,KAAK,iBAAiB;YACpB,gEAAgE;YAChE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,CAAC,KAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,uBAAuB,CAC9D;gBACC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACpC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,YAAY,GAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACpC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAC9C,CAAC;QACD,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACvC,KAAK,OAAO;YACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB,CAAC;QACzB,KAAK,iBAAiB;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAChE,KAAK,OAAO;YACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACxE,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,0BAA0B,CAAC;QAChC,KAAK,eAAe,CAAC;QACrB,KAAK,sBAAsB,CAAC;QAC5B,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,KAAK,GAA2B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5D,OAAO,KAAK,KAAK,SAAS;gBACxB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACpC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAA2B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,YAAY,GAAY,YAAY,CAAC,OAAO,CAAC,CAAC;gBACpD,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBACxD,CAAC;YACH,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;QACD,KAAK,gBAAgB,CAAC;QACtB,KAAK,qBAAqB;YACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,KAAK,iBAAiB;YACpB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B;YACE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB;IACtC,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAsB,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,SAAS,GAAsB,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,OAAO,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC3C,MAAM,GAAG,GACP,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;gBACnE,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,+BAA+B,EAAE,CAAC;YAC1D,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/D,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC3C,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACvE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAgB;IACxC,MAAM,cAAc,GAClB,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,IAAI,cAAc,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,SAAS,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;gBACrD,MAAM,WAAW,GACf,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAsB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,IAAI,GAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACxC,MAAM,QAAQ,GAA2B,QAAQ,CAAC,aAAa,CAAC,IAAI,CAClE,CAAC,SAAqB,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,kBAAkB,CACjE,CAAC;YACF,MAAM,aAAa,GAA2B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,aAAa,KAAK,SAAS,IAAI,QAAQ,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;gBAClE,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,IAAgB;IACpC,MAAM,YAAY,GAAsB,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAsB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7E,MAAM,MAAM,GACV,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrE,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,MAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAA2B,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAY,YAAY,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC9B,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;oBACnC,OAAO,EAAE,SAAS,CAAC,MAAM;oBACzB,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAW,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5D,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { IrSchema } from './ir.js';
2
+ /**
3
+ * Describes the IR constructs that only the Prisma emitter can write (views, composite foreign keys,
4
+ * `Unsupported(...)` columns, full-text indexes, database schemas, ...). Every other emitter starts
5
+ * its warning list with this, so a conversion never drops one of them silently.
6
+ */
7
+ export declare function prismaOnlyWarnings(schema: IrSchema): string[];
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Describes the IR constructs that only the Prisma emitter can write (views, composite foreign keys,
3
+ * `Unsupported(...)` columns, full-text indexes, database schemas, ...). Every other emitter starts
4
+ * its warning list with this, so a conversion never drops one of them silently.
5
+ */
6
+ export function prismaOnlyWarnings(schema) {
7
+ const warnings = [];
8
+ for (const enumDefinition of schema.enums) {
9
+ if (enumDefinition.schema !== undefined) {
10
+ warnings.push(`enum ${enumDefinition.name}: the database schema "${enumDefinition.schema}" (@@schema) was ignored.`);
11
+ }
12
+ }
13
+ for (const model of schema.models) {
14
+ describeModel(model, warnings);
15
+ }
16
+ return warnings;
17
+ }
18
+ function describeModel(model, warnings) {
19
+ if (model.isView === true) {
20
+ warnings.push(`${model.name}: this is a database view; it was written like a regular table model, so migrations would try to create a table.`);
21
+ }
22
+ if (model.isIgnored === true) {
23
+ warnings.push(`${model.name}: @@ignore has no equivalent here; the model was written as a normal model.`);
24
+ }
25
+ if (model.schema !== undefined) {
26
+ warnings.push(`${model.name}: the database schema "${model.schema}" (@@schema) was ignored.`);
27
+ }
28
+ for (const key of model.compositeForeignKeys ?? []) {
29
+ warnings.push(describeCompositeKey(model, key));
30
+ }
31
+ for (const field of model.fields) {
32
+ describeField(model, field, warnings);
33
+ }
34
+ for (const index of model.indexes) {
35
+ describeIndex(model, index, warnings);
36
+ }
37
+ for (const relation of model.relations) {
38
+ if (relation.onUpdate !== undefined) {
39
+ warnings.push(`${model.name}.${relation.name}: the onUpdate action "${relation.onUpdate}" is not supported by this format and was ignored.`);
40
+ }
41
+ }
42
+ }
43
+ function describeCompositeKey(model, key) {
44
+ return (`${model.name}.${key.name}: the composite foreign key (${key.fields.join(', ')}) to ` +
45
+ `${key.targetModel}(${key.references.join(', ')}) has no equivalent here; the relation was dropped and the columns kept as plain fields.`);
46
+ }
47
+ function describeField(model, field, warnings) {
48
+ const label = `${model.name}.${field.name}`;
49
+ if (field.type === 'unsupported') {
50
+ warnings.push(`${label}: the database type "${field.unsupportedType ?? 'unknown'}" (Prisma Unsupported) has no equivalent here; the column was written as a plain string.`);
51
+ }
52
+ if (field.isIgnored === true) {
53
+ warnings.push(`${label}: @ignore has no equivalent here; the field was written as a normal field.`);
54
+ }
55
+ const defaultValue = field.default;
56
+ if (defaultValue?.kind === 'clientGenerated') {
57
+ warnings.push(`${label}: the ${defaultValue.generator}() default is generated by Prisma Client and was dropped.`);
58
+ }
59
+ if (defaultValue?.kind === 'dbExpression') {
60
+ warnings.push(`${label}: the database default expression ${defaultValue.expression} was dropped.`);
61
+ }
62
+ }
63
+ function describeIndex(model, index, warnings) {
64
+ const label = `${model.name} index (${index.fields.join(', ')})`;
65
+ if (index.kind === 'fulltext') {
66
+ warnings.push(`${label}: full-text indexes are not supported here; it was written as an ordinary index.`);
67
+ }
68
+ const hasFieldOptions = index.fieldOptions !== undefined &&
69
+ Object.keys(index.fieldOptions).length > 0;
70
+ if (index.method !== undefined ||
71
+ index.clustered !== undefined ||
72
+ hasFieldOptions) {
73
+ warnings.push(`${label}: the index type, clustering, sort order, prefix length and operator class options were dropped.`);
74
+ }
75
+ }
76
+ //# sourceMappingURL=prismaOnlyConstructs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prismaOnlyConstructs.js","sourceRoot":"","sources":["../src/prismaOnlyConstructs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Result type used across the package. Every fallible function returns a
3
+ * Result so that callers are forced to check for failure explicitly.
4
+ */
5
+ export type ErrorCode = 'INPUT_NOT_FOUND' | 'INPUT_READ_FAILED' | 'NO_INPUT_FILES' | 'PARSER_INIT_FAILED' | 'PARSE_FAILED' | 'NO_MODELS_FOUND' | 'UNSUPPORTED_CONVERSION' | 'INVALID_OPTION' | 'INVALID_CONFIG' | 'EMIT_FAILED' | 'OUTPUT_WRITE_FAILED';
6
+ export interface ConversionError {
7
+ code: ErrorCode;
8
+ message: string;
9
+ }
10
+ export type Result<T> = {
11
+ ok: true;
12
+ value: T;
13
+ } | {
14
+ ok: false;
15
+ error: ConversionError;
16
+ };
17
+ export declare function ok<T>(value: T): Result<T>;
18
+ export declare function err(code: ErrorCode, message: string): Result<never>;
19
+ /** Converts an unknown thrown value into a readable message. */
20
+ export declare function describeThrown(thrown: unknown): string;
package/dist/result.js ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Result type used across the package. Every fallible function returns a
3
+ * Result so that callers are forced to check for failure explicitly.
4
+ */
5
+ export function ok(value) {
6
+ return { ok: true, value };
7
+ }
8
+ export function err(code, message) {
9
+ return { ok: false, error: { code, message } };
10
+ }
11
+ /** Converts an unknown thrown value into a readable message. */
12
+ export function describeThrown(thrown) {
13
+ if (thrown instanceof Error) {
14
+ return thrown.message;
15
+ }
16
+ return String(thrown);
17
+ }
18
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAe,EAAE,OAAe;IAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;AACjD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { IrSchema } from './ir.js';
2
+ export type NamingMode = 'preserve' | 'normalize';
3
+ /**
4
+ * Replaces every many-to-many relation with an explicit join model that mirrors the
5
+ * table Django creates (app_post_tags with id, post_id, tag_id and a unique pair).
6
+ * Keeps converted schemas compatible with existing Django databases.
7
+ */
8
+ export declare function expandManyToMany(schema: IrSchema): IrSchema;
9
+ /**
10
+ * Applies a fresh-schema style: singular snake_case table names, UUID primary keys in place of
11
+ * auto-increment ids, snake_case columns, and created_at / updated_at timestamps where missing.
12
+ */
13
+ export declare function normalizeSchema(schema: IrSchema): IrSchema;