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
package/dist/io.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"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"}
package/dist/ir.d.ts ADDED
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Intermediate representation (IR) shared by every parser and emitter.
3
+ *
4
+ * Each supported format (Django, Prisma, and later TypeORM / Graphene) only
5
+ * needs to know how to read into and write out of this model.
6
+ */
7
+ export type IrScalarType = 'string' | 'text' | 'int' | 'bigInt' | 'float' | 'decimal' | 'boolean' | 'dateTime' | 'date' | 'time' | 'uuid' | 'json' | 'bytes' | 'duration' | 'ipAddress' | 'hstore' | 'range' | 'unsupported';
8
+ /** Element type of a `range` field (Django's django.contrib.postgres range fields). */
9
+ export type IrRangeSubtype = 'int' | 'bigInt' | 'decimal' | 'date' | 'dateTime';
10
+ /** A provider-specific column type attribute, e.g. Prisma `@db.VarChar(255)` as `{ name: "VarChar", args: ["255"] }`. */
11
+ export interface IrNativeType {
12
+ name: string;
13
+ args: string[];
14
+ }
15
+ /** A database-computed column (Django GeneratedField). */
16
+ export interface IrGenerated {
17
+ /** Expression source as written in the input, e.g. `F("a") + F("b")`. */
18
+ expression: string;
19
+ /** True when the value is stored (db_persist=True), false when computed on read. */
20
+ isStored: boolean;
21
+ }
22
+ export type IrDefault = {
23
+ kind: 'literal';
24
+ value: string | number | boolean;
25
+ } | {
26
+ kind: 'autoIncrement';
27
+ } | {
28
+ kind: 'now';
29
+ } | {
30
+ kind: 'uuid';
31
+ version?: number;
32
+ } | {
33
+ kind: 'enumValue';
34
+ value: string;
35
+ }
36
+ /** Generated by the ORM client rather than the database (Prisma cuid(), ulid(), nanoid()). */
37
+ | {
38
+ kind: 'clientGenerated';
39
+ generator: string;
40
+ args?: string;
41
+ }
42
+ /**
43
+ * A raw database expression, stored without the quotes (Prisma `dbgenerated("gen_random_uuid()")`).
44
+ * With `isFunction`, the expression is a Prisma default function written as-is, e.g. `auto()` or `sequence()`.
45
+ */
46
+ | {
47
+ kind: 'dbExpression';
48
+ expression: string;
49
+ isFunction?: boolean;
50
+ };
51
+ export interface IrField {
52
+ /** Field name as written in the source format. */
53
+ name: string;
54
+ /** Database column name. */
55
+ columnName: string;
56
+ type: IrScalarType;
57
+ isPrimaryKey: boolean;
58
+ isUnique: boolean;
59
+ isNullable: boolean;
60
+ default?: IrDefault;
61
+ maxLength?: number;
62
+ maxDigits?: number;
63
+ decimalPlaces?: number;
64
+ /** True when the value is refreshed on every save (Django auto_now, Prisma @updatedAt). */
65
+ isAutoUpdated: boolean;
66
+ /** Name of an IrEnum when the field is enum-backed. */
67
+ enumName?: string;
68
+ /**
69
+ * Number of array dimensions (Django ArrayField, nested ArrayFields add one each).
70
+ * When set, `type` (and maxLength, enumName, ...) describe the innermost element.
71
+ */
72
+ arrayDepth?: number;
73
+ /** Element type of the field when `type` is "range". */
74
+ rangeOf?: IrRangeSubtype;
75
+ /** Set when the column is computed by the database from an expression. */
76
+ generated?: IrGenerated;
77
+ /** True when `default` is a database-level default (Django db_default). */
78
+ isDbDefault?: boolean;
79
+ /** Native column type as written in the source (Prisma `@db.*`); only valid for that provider family. */
80
+ nativeType?: IrNativeType;
81
+ /** Raw database type text of an `unsupported` field, e.g. `circle` for Prisma `Unsupported("circle")`. */
82
+ unsupportedType?: string;
83
+ /** True when the field is excluded from the generated client (Prisma @ignore). */
84
+ isIgnored?: boolean;
85
+ /** Database name of the unique constraint (Prisma `@unique(map: "...")`). */
86
+ uniqueName?: string;
87
+ }
88
+ export type IrOnDelete = 'cascade' | 'setNull' | 'restrict' | 'noAction' | 'setDefault';
89
+ export type IrRelationKind = 'foreignKey' | 'oneToOne' | 'manyToMany';
90
+ export interface IrRelation {
91
+ /** Relation field name, e.g. "author". */
92
+ name: string;
93
+ kind: IrRelationKind;
94
+ /** Target model name. */
95
+ targetModel: string;
96
+ /** Foreign-key column on this model (unused for manyToMany). */
97
+ columnName: string;
98
+ isNullable: boolean;
99
+ onDelete: IrOnDelete;
100
+ /** Name of the reverse accessor on the target model. */
101
+ relatedName?: string;
102
+ /** Target column when it is not the primary key. */
103
+ toField?: string;
104
+ /** True when this relation is the primary key (multi-table inheritance). */
105
+ isPrimaryKey?: boolean;
106
+ /** Referential action on update (Prisma onUpdate). */
107
+ onUpdate?: IrOnDelete;
108
+ /** Database name of the foreign-key constraint (Prisma `@relation(map: "...")`). */
109
+ constraintName?: string;
110
+ }
111
+ /**
112
+ * A foreign key made of several columns (Prisma `@relation(fields: [a, b], references: [x, y])`).
113
+ * The local columns stay ordinary fields of the model; only Prisma reads and writes this.
114
+ */
115
+ export interface IrCompositeForeignKey {
116
+ /** Relation field name, e.g. "order". */
117
+ name: string;
118
+ targetModel: string;
119
+ /** Local field names, in key order. */
120
+ fields: string[];
121
+ /** Referenced field names on the target model, in the same order. */
122
+ references: string[];
123
+ kind: 'foreignKey' | 'oneToOne';
124
+ isNullable: boolean;
125
+ onDelete: IrOnDelete;
126
+ onUpdate?: IrOnDelete;
127
+ relatedName?: string;
128
+ /** Database name of the constraint. */
129
+ constraintName?: string;
130
+ }
131
+ /** Per-field options of an index entry (Prisma `a(sort: Desc, length: 10, ops: ...)`). */
132
+ export interface IrIndexFieldOptions {
133
+ sort?: 'asc' | 'desc';
134
+ length?: number;
135
+ /** Operator class as written, e.g. `JsonbPathOps` or `raw("gin_trgm_ops")`. */
136
+ ops?: string;
137
+ }
138
+ export interface IrIndex {
139
+ /** Field or relation names (IR names, not column names). */
140
+ fields: string[];
141
+ isUnique: boolean;
142
+ /** Explicit database name, when the source specified one. */
143
+ name?: string;
144
+ /** "fulltext" for Prisma @@fulltext; absent for ordinary indexes. */
145
+ kind?: 'fulltext';
146
+ /** Access method as written (Prisma `type: Hash | Gin | Gist | SpGist | Brin | BTree`). */
147
+ method?: string;
148
+ /** SQL Server clustered / non-clustered; absent when unspecified. */
149
+ clustered?: boolean;
150
+ /** Options for individual entries of `fields`, keyed by field name. */
151
+ fieldOptions?: Record<string, IrIndexFieldOptions>;
152
+ }
153
+ export interface IrModel {
154
+ name: string;
155
+ tableName: string;
156
+ /** Django app label, used to build default table names. */
157
+ appLabel: string;
158
+ fields: IrField[];
159
+ relations: IrRelation[];
160
+ indexes: IrIndex[];
161
+ /** Composite primary key made of IR field/relation names (Prisma @@id). */
162
+ compositePrimaryKey?: string[];
163
+ /** True for join models synthesized from a many-to-many field. */
164
+ isJoinTable?: boolean;
165
+ /** True for database views (Prisma `view` blocks). */
166
+ isView?: boolean;
167
+ /** True when the model is excluded from the generated client (Prisma @@ignore). */
168
+ isIgnored?: boolean;
169
+ /** Database schema the table lives in (Prisma @@schema, multiSchema). */
170
+ schema?: string;
171
+ /** Database name of the primary-key constraint (Prisma `@id(map:)` / `@@id(map:)`). */
172
+ primaryKeyName?: string;
173
+ /** Multi-column foreign keys (Prisma). Single-column keys are in `relations`. */
174
+ compositeForeignKeys?: IrCompositeForeignKey[];
175
+ }
176
+ export interface IrEnumValue {
177
+ /** Member name, e.g. "ADMIN". */
178
+ name: string;
179
+ /** Stored database value, e.g. "admin". */
180
+ dbValue: string;
181
+ /** Human-readable label (Django TextChoices). */
182
+ label?: string;
183
+ }
184
+ export interface IrEnum {
185
+ name: string;
186
+ values: IrEnumValue[];
187
+ /** Database type name when it differs from `name` (Prisma @@map on an enum). */
188
+ dbName?: string;
189
+ /** Database schema the enum lives in (Prisma @@schema). */
190
+ schema?: string;
191
+ }
192
+ export interface IrSchema {
193
+ models: IrModel[];
194
+ enums: IrEnum[];
195
+ warnings: string[];
196
+ }
197
+ export declare function findModel(schema: IrSchema, modelName: string): IrModel | undefined;
package/dist/ir.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Intermediate representation (IR) shared by every parser and emitter.
3
+ *
4
+ * Each supported format (Django, Prisma, and later TypeORM / Graphene) only
5
+ * needs to know how to read into and write out of this model.
6
+ */
7
+ export function findModel(schema, modelName) {
8
+ return schema.models.find((model) => model.name === modelName);
9
+ }
10
+ //# sourceMappingURL=ir.js.map
package/dist/ir.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.js","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmNH,MAAM,UAAU,SAAS,CACvB,MAAgB,EAChB,SAAiB;IAEjB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** String casing and pluralization helpers. */
2
+ export declare function splitWords(input: string): string[];
3
+ export declare function toSnakeCase(input: string): string;
4
+ export declare function toPascalCase(input: string): string;
5
+ export declare function toCamelCase(input: string): string;
6
+ /** Singularizes the last word of a snake_case identifier using simple rules. */
7
+ export declare function singularize(snakeName: string): string;
8
+ /** Deterministic short hash used to keep generated database names within length limits. */
9
+ export declare function shortHash(input: string): string;
10
+ /** Truncates a database identifier to maxLength, appending a hash when shortened. */
11
+ export declare function limitIdentifier(identifier: string, maxLength: number): string;
package/dist/naming.js ADDED
@@ -0,0 +1,88 @@
1
+ /** String casing and pluralization helpers. */
2
+ const UNCOUNTABLE_WORDS = new Set([
3
+ 'series',
4
+ 'news',
5
+ 'species',
6
+ 'data',
7
+ 'media',
8
+ 'metadata',
9
+ 'status',
10
+ 'address',
11
+ 'access',
12
+ 'analysis',
13
+ ]);
14
+ const IRREGULAR_PLURALS = {
15
+ people: 'person',
16
+ children: 'child',
17
+ men: 'man',
18
+ women: 'woman',
19
+ };
20
+ export function splitWords(input) {
21
+ const spaced = input
22
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
23
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2');
24
+ return spaced
25
+ .split(/[^A-Za-z0-9]+/)
26
+ .filter((word) => word.length > 0);
27
+ }
28
+ export function toSnakeCase(input) {
29
+ return splitWords(input)
30
+ .map((word) => word.toLowerCase())
31
+ .join('_');
32
+ }
33
+ export function toPascalCase(input) {
34
+ return splitWords(input)
35
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
36
+ .join('');
37
+ }
38
+ export function toCamelCase(input) {
39
+ const pascal = toPascalCase(input);
40
+ return pascal.charAt(0).toLowerCase() + pascal.slice(1);
41
+ }
42
+ /** Singularizes the last word of a snake_case identifier using simple rules. */
43
+ export function singularize(snakeName) {
44
+ const parts = snakeName.split('_');
45
+ const lastWord = parts[parts.length - 1] ?? '';
46
+ parts[parts.length - 1] = singularizeWord(lastWord);
47
+ return parts.join('_');
48
+ }
49
+ function singularizeWord(word) {
50
+ const lower = word.toLowerCase();
51
+ if (UNCOUNTABLE_WORDS.has(lower)) {
52
+ return word;
53
+ }
54
+ const irregular = IRREGULAR_PLURALS[lower];
55
+ if (irregular !== undefined) {
56
+ return irregular;
57
+ }
58
+ if (/ies$/.test(lower) && lower.length > 3) {
59
+ return word.slice(0, -3) + 'y';
60
+ }
61
+ if (/(ss|us|is)$/.test(lower)) {
62
+ return word;
63
+ }
64
+ if (/(x|ch|sh|ss)es$/.test(lower)) {
65
+ return word.slice(0, -2);
66
+ }
67
+ if (/s$/.test(lower) && lower.length > 1) {
68
+ return word.slice(0, -1);
69
+ }
70
+ return word;
71
+ }
72
+ /** Deterministic short hash used to keep generated database names within length limits. */
73
+ export function shortHash(input) {
74
+ let hash = 5381;
75
+ for (let index = 0; index < input.length; index += 1) {
76
+ hash = ((hash << 5) + hash + input.charCodeAt(index)) >>> 0;
77
+ }
78
+ return hash.toString(16).padStart(8, '0').slice(0, 6);
79
+ }
80
+ /** Truncates a database identifier to maxLength, appending a hash when shortened. */
81
+ export function limitIdentifier(identifier, maxLength) {
82
+ if (identifier.length <= maxLength) {
83
+ return identifier;
84
+ }
85
+ const hash = shortHash(identifier);
86
+ return `${identifier.slice(0, maxLength - hash.length - 1)}_${hash}`;
87
+ }
88
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { IrSchema } from '../ir.js';
2
+ import { type Result } from '../result.js';
3
+ export interface DjangoSourceFile {
4
+ path: string;
5
+ text: string;
6
+ /** Django app label, used for default table names (app_model). */
7
+ appLabel: string;
8
+ }
9
+ export interface DjangoParseOptions {
10
+ /** Primary key type for models without an explicit primary key. */
11
+ autoField: 'int' | 'bigInt';
12
+ }
13
+ /** Parses Django model files into the shared IR using tree-sitter (no Python required). */
14
+ export declare function parseDjango(sources: DjangoSourceFile[], options: DjangoParseOptions): Promise<Result<IrSchema>>;