neoorm 0.1.3 → 0.1.5

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 (125) hide show
  1. package/README.md +311 -12
  2. package/dist/bin/neoorm.js +68 -26
  3. package/dist/bin/neoorm.js.map +1 -1
  4. package/dist/codegen/diff-manifest.d.ts +14 -0
  5. package/dist/codegen/diff-manifest.d.ts.map +1 -0
  6. package/dist/codegen/diff-manifest.js +585 -0
  7. package/dist/codegen/diff-manifest.js.map +1 -0
  8. package/dist/codegen/generate-summary.d.ts +21 -0
  9. package/dist/codegen/generate-summary.d.ts.map +1 -0
  10. package/dist/codegen/generate-summary.js +101 -0
  11. package/dist/codegen/generate-summary.js.map +1 -0
  12. package/dist/codegen/generate.d.ts +11 -5
  13. package/dist/codegen/generate.d.ts.map +1 -1
  14. package/dist/codegen/generate.js +35 -55
  15. package/dist/codegen/generate.js.map +1 -1
  16. package/dist/codegen/manifest-relations.d.ts.map +1 -1
  17. package/dist/codegen/manifest-relations.js +9 -2
  18. package/dist/codegen/manifest-relations.js.map +1 -1
  19. package/dist/codegen/schema-to-manifest.d.ts +4 -1
  20. package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
  21. package/dist/codegen/schema-to-manifest.js +65 -16
  22. package/dist/codegen/schema-to-manifest.js.map +1 -1
  23. package/dist/config.d.ts +1 -0
  24. package/dist/config.d.ts.map +1 -1
  25. package/dist/config.js.map +1 -1
  26. package/dist/dialect/index.d.ts +1 -1
  27. package/dist/dialect/index.d.ts.map +1 -1
  28. package/dist/dialect/index.js.map +1 -1
  29. package/dist/dialect/postgres.d.ts +11 -1
  30. package/dist/dialect/postgres.d.ts.map +1 -1
  31. package/dist/dialect/postgres.js +290 -29
  32. package/dist/dialect/postgres.js.map +1 -1
  33. package/dist/dialect/types.d.ts +68 -4
  34. package/dist/dialect/types.d.ts.map +1 -1
  35. package/dist/index.d.ts +6 -2
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +4 -2
  38. package/dist/index.js.map +1 -1
  39. package/dist/introspect/pull.d.ts.map +1 -1
  40. package/dist/introspect/pull.js +15 -32
  41. package/dist/introspect/pull.js.map +1 -1
  42. package/dist/introspect/queries.d.ts +41 -0
  43. package/dist/introspect/queries.d.ts.map +1 -0
  44. package/dist/introspect/queries.js +119 -0
  45. package/dist/introspect/queries.js.map +1 -0
  46. package/dist/introspect/to-manifest.d.ts +4 -0
  47. package/dist/introspect/to-manifest.d.ts.map +1 -0
  48. package/dist/introspect/to-manifest.js +232 -0
  49. package/dist/introspect/to-manifest.js.map +1 -0
  50. package/dist/migrate/runner.d.ts +33 -1
  51. package/dist/migrate/runner.d.ts.map +1 -1
  52. package/dist/migrate/runner.js +142 -19
  53. package/dist/migrate/runner.js.map +1 -1
  54. package/dist/plugins/builtin.d.ts +35 -2
  55. package/dist/plugins/builtin.d.ts.map +1 -1
  56. package/dist/plugins/builtin.js +312 -1
  57. package/dist/plugins/builtin.js.map +1 -1
  58. package/dist/plugins/registry.d.ts.map +1 -1
  59. package/dist/plugins/registry.js +3 -1
  60. package/dist/plugins/registry.js.map +1 -1
  61. package/dist/runtime/client.d.ts +3 -0
  62. package/dist/runtime/client.d.ts.map +1 -1
  63. package/dist/runtime/client.js +11 -12
  64. package/dist/runtime/client.js.map +1 -1
  65. package/dist/runtime/executor.d.ts +1 -0
  66. package/dist/runtime/executor.d.ts.map +1 -1
  67. package/dist/runtime/executor.js +27 -4
  68. package/dist/runtime/executor.js.map +1 -1
  69. package/dist/runtime/query/compile.d.ts +8 -3
  70. package/dist/runtime/query/compile.d.ts.map +1 -1
  71. package/dist/runtime/query/compile.js +275 -47
  72. package/dist/runtime/query/compile.js.map +1 -1
  73. package/dist/runtime/query/count.d.ts.map +1 -1
  74. package/dist/runtime/query/count.js +1 -1
  75. package/dist/runtime/query/count.js.map +1 -1
  76. package/dist/runtime/query/create.d.ts +7 -0
  77. package/dist/runtime/query/create.d.ts.map +1 -1
  78. package/dist/runtime/query/create.js +50 -104
  79. package/dist/runtime/query/create.js.map +1 -1
  80. package/dist/runtime/query/delete.d.ts.map +1 -1
  81. package/dist/runtime/query/delete.js +11 -5
  82. package/dist/runtime/query/delete.js.map +1 -1
  83. package/dist/runtime/query/find.d.ts.map +1 -1
  84. package/dist/runtime/query/find.js +16 -12
  85. package/dist/runtime/query/find.js.map +1 -1
  86. package/dist/runtime/query/primary-key.d.ts +11 -1
  87. package/dist/runtime/query/primary-key.d.ts.map +1 -1
  88. package/dist/runtime/query/primary-key.js +55 -0
  89. package/dist/runtime/query/primary-key.js.map +1 -1
  90. package/dist/runtime/query/relation-writes.d.ts +24 -0
  91. package/dist/runtime/query/relation-writes.d.ts.map +1 -0
  92. package/dist/runtime/query/relation-writes.js +325 -0
  93. package/dist/runtime/query/relation-writes.js.map +1 -0
  94. package/dist/runtime/query/unique.d.ts.map +1 -1
  95. package/dist/runtime/query/unique.js +1 -5
  96. package/dist/runtime/query/unique.js.map +1 -1
  97. package/dist/runtime/query/update.d.ts.map +1 -1
  98. package/dist/runtime/query/update.js +46 -29
  99. package/dist/runtime/query/update.js.map +1 -1
  100. package/dist/runtime/types.d.ts +3 -2
  101. package/dist/runtime/types.d.ts.map +1 -1
  102. package/dist/schema/column-where.d.ts +39 -0
  103. package/dist/schema/column-where.d.ts.map +1 -0
  104. package/dist/schema/column-where.js +2 -0
  105. package/dist/schema/column-where.js.map +1 -0
  106. package/dist/schema/column.d.ts +2 -2
  107. package/dist/schema/column.d.ts.map +1 -1
  108. package/dist/schema/column.js +2 -2
  109. package/dist/schema/column.js.map +1 -1
  110. package/dist/schema/index.d.ts +4 -4
  111. package/dist/schema/index.d.ts.map +1 -1
  112. package/dist/schema/index.js +1 -1
  113. package/dist/schema/index.js.map +1 -1
  114. package/dist/schema/nested-relation-types.d.ts +60 -0
  115. package/dist/schema/nested-relation-types.d.ts.map +1 -0
  116. package/dist/schema/nested-relation-types.js +2 -0
  117. package/dist/schema/nested-relation-types.js.map +1 -0
  118. package/dist/schema/relation-types.d.ts +174 -25
  119. package/dist/schema/relation-types.d.ts.map +1 -1
  120. package/dist/schema/relation.d.ts +13 -13
  121. package/dist/schema/relation.d.ts.map +1 -1
  122. package/dist/schema/relation.js.map +1 -1
  123. package/dist/schema/types.d.ts +37 -74
  124. package/dist/schema/types.d.ts.map +1 -1
  125. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE;QACV,QAAQ,EAAE,YAAY,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAE/D;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBnE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE;QACV,QAAQ,EAAE,YAAY,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;KACrC,CAAC;CACH,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAE/D;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAEjD,QAAQ,EAAE,CAAC;IAEX,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC;IAEzC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,OAAO,MAAsB,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAEjD,QAAQ,EAAE,CAAC;IAEX,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC;IAEzC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,OAAO,MAAsB,CAAC;AAChC,CAAC"}
@@ -1,3 +1,3 @@
1
- export type { Dialect, Manifest, ManifestColumn, ManifestManyToMany, ManifestRelation, ManifestTable, CompiledQuery, WhereOperator } from "./types.js";
1
+ export type { Dialect, Manifest, ManifestColumn, ManifestManyToMany, ManifestRelation, ManifestTable, ManifestDiff, DestructiveChange, CompiledQuery, WhereOperator, } from "./types.js";
2
2
  export { postgresDialect, quoteIdentifier } from "./postgres.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialect/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACvJ,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialect/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dialect/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dialect/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -1,5 +1,15 @@
1
- import type { Dialect } from "./types.js";
1
+ import type { Dialect, Manifest, ManifestColumn, ManifestIndex } from "./types.js";
2
2
  declare function q(name: string): string;
3
+ export declare function resolveColumnSqlType(col: ManifestColumn, manifest?: Manifest): string;
4
+ export declare function pgStorageSqlType(dataType: string, udtName: string): string;
5
+ export declare function typeCastUsing(sqlName: string, fromType: string, toType: string): string | undefined;
6
+ export declare function canAutoCastType(fromType: string, toType: string): boolean;
7
+ export declare function resolveIndexSqlName(tableSqlName: string, index: ManifestIndex): string;
8
+ export declare function resolveFkConstraintName(tableSqlName: string, columnSqlName: string): string;
9
+ export declare function resolveUniqueConstraintName(tableSqlName: string, columnSqlName: string): string;
10
+ export declare function emitCreateEnumTypes(enumTypes: Record<string, {
11
+ values: readonly string[];
12
+ }>): string[];
3
13
  export declare const postgresDialect: Dialect;
4
14
  export { q as quoteIdentifier };
5
15
  //# sourceMappingURL=postgres.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/dialect/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAKR,MAAM,YAAY,CAAC;AAGpB,iBAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/B;AA8HD,eAAO,MAAM,eAAe,EAAE,OAQ7B,CAAC;AAEF,OAAO,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/dialect/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,OAAO,EACP,QAAQ,EACR,cAAc,EACd,aAAa,EAId,MAAM,YAAY,CAAC;AAGpB,iBAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/B;AAqBD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CAuBR;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwC1E;AA8CD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAkDpB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,GACnB,MAAM,CAMR;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,MAAM,CAER;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,MAAM,CAER;AAMD,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,GACvD,MAAM,EAAE,CAOV;AA+ND,eAAO,MAAM,eAAe,EAAE,OAiB7B,CAAC;AAEF,OAAO,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC"}
@@ -12,30 +12,73 @@ const whereOperators = {
12
12
  lt: (col, i) => `${col} < $${i}`,
13
13
  lte: (col, i) => `${col} <= $${i}`,
14
14
  in: (col, i) => `${col} = ANY($${i})`,
15
+ notIn: (col, i) => `NOT (${col} = ANY($${i}))`,
16
+ isNull: (col) => `${col} IS NULL`,
17
+ isNotNull: (col) => `${col} IS NOT NULL`,
15
18
  };
16
- function columnType(col) {
19
+ function columnType(col, manifest) {
20
+ return resolveColumnSqlType(col, manifest);
21
+ }
22
+ export function resolveColumnSqlType(col, manifest) {
23
+ if (col.storageSqlType) {
24
+ return col.storageSqlType;
25
+ }
26
+ if (col.kind === "fk" && col.fkTarget && manifest) {
27
+ const [tableSql, colSql] = col.fkTarget.split(".");
28
+ const targetTable = Object.values(manifest.tables).find((table) => table.sqlName === tableSql);
29
+ const targetCol = targetTable?.columns.find((column) => column.sqlName === colSql);
30
+ if (targetCol) {
31
+ return resolveColumnSqlType(targetCol, manifest);
32
+ }
33
+ }
17
34
  if (col.kind === "fk") {
18
35
  return "TEXT";
19
36
  }
20
37
  return getColumnTypeOrThrow(col.kind).columnType(col);
21
38
  }
22
- function formatDefaultValue(col) {
23
- if (col.defaultNow) {
24
- return defaultNowExpression();
39
+ export function pgStorageSqlType(dataType, udtName) {
40
+ if (udtName === "uuid") {
41
+ return "UUID";
25
42
  }
26
- if (col.defaultValue === undefined) {
27
- return null;
28
- }
29
- const plugin = getColumnTypeOrThrow(col.kind);
30
- if (plugin.formatDefault) {
31
- return plugin.formatDefault(col, col.defaultValue);
43
+ switch (dataType) {
44
+ case "boolean":
45
+ return "BOOLEAN";
46
+ case "integer":
47
+ case "bigint":
48
+ case "smallint":
49
+ return "INTEGER";
50
+ case "timestamp with time zone":
51
+ return "TIMESTAMPTZ";
52
+ case "timestamp without time zone":
53
+ return "TIMESTAMP";
54
+ case "text":
55
+ case "character varying":
56
+ return "TEXT";
57
+ case "json":
58
+ return "JSON";
59
+ case "jsonb":
60
+ return "JSONB";
61
+ case "numeric":
62
+ return "NUMERIC";
63
+ case "bytea":
64
+ return "BYTEA";
65
+ case "ARRAY":
66
+ if (udtName === "_text") {
67
+ return "TEXT[]";
68
+ }
69
+ if (udtName === "_int4") {
70
+ return "INTEGER[]";
71
+ }
72
+ return "TEXT[]";
73
+ default:
74
+ if (udtName === "citext") {
75
+ return "CITEXT";
76
+ }
77
+ return udtName.toUpperCase();
32
78
  }
33
- return typeof col.defaultValue === "string"
34
- ? `'${col.defaultValue.replace(/'/g, "''")}'`
35
- : String(col.defaultValue);
36
79
  }
37
- function columnDef(col) {
38
- const parts = [q(col.sqlName), columnType(col)];
80
+ function columnDef(col, manifest) {
81
+ const parts = [q(col.sqlName), columnType(col, manifest)];
39
82
  if (col.primary) {
40
83
  parts.push("PRIMARY KEY");
41
84
  }
@@ -49,19 +92,113 @@ function columnDef(col) {
49
92
  if (defaultSql !== null) {
50
93
  parts.push(`DEFAULT ${defaultSql}`);
51
94
  }
95
+ if (col.checkExpression) {
96
+ parts.push(`CHECK (${col.checkExpression})`);
97
+ }
52
98
  return parts.join(" ");
53
99
  }
100
+ function formatDefaultValue(col) {
101
+ if (col.defaultNow) {
102
+ return defaultNowExpression();
103
+ }
104
+ if (col.defaultValue === undefined) {
105
+ return null;
106
+ }
107
+ const plugin = getColumnTypeOrThrow(col.kind);
108
+ if (plugin.formatDefault) {
109
+ return plugin.formatDefault(col, col.defaultValue);
110
+ }
111
+ return typeof col.defaultValue === "string"
112
+ ? `'${col.defaultValue.replace(/'/g, "''")}'`
113
+ : String(col.defaultValue);
114
+ }
54
115
  function defaultNowExpression() {
55
116
  return "NOW()";
56
117
  }
57
- function emitCreateTable(table) {
118
+ export function typeCastUsing(sqlName, fromType, toType) {
119
+ const col = q(sqlName);
120
+ const from = fromType.toUpperCase();
121
+ const to = toType.toUpperCase();
122
+ if (from === to) {
123
+ return undefined;
124
+ }
125
+ if (from === "TEXT" && to === "UUID") {
126
+ return `${col}::uuid`;
127
+ }
128
+ if (from === "UUID" && to === "TEXT") {
129
+ return `${col}::text`;
130
+ }
131
+ if (from === "INTEGER" && to === "TEXT") {
132
+ return `${col}::text`;
133
+ }
134
+ if (from === "TEXT" && to === "INTEGER") {
135
+ return `${col}::integer`;
136
+ }
137
+ if (from === "BOOLEAN" && to === "TEXT") {
138
+ return `${col}::text`;
139
+ }
140
+ if (from === "TEXT" && to === "BOOLEAN") {
141
+ return `${col}::boolean`;
142
+ }
143
+ if ((from === "TIMESTAMP WITH TIME ZONE" || from === "TIMESTAMPTZ") &&
144
+ (to === "TIMESTAMP WITHOUT TIME ZONE" || to === "TIMESTAMP")) {
145
+ return `${col}::timestamp`;
146
+ }
147
+ if ((from === "TIMESTAMP WITHOUT TIME ZONE" || from === "TIMESTAMP") &&
148
+ (to === "TIMESTAMP WITH TIME ZONE" || to === "TIMESTAMPTZ")) {
149
+ return `${col}::timestamptz`;
150
+ }
151
+ if (from === "TEXT" && (to === "JSONB" || to === "JSON")) {
152
+ return `${col}::${to.toLowerCase()}`;
153
+ }
154
+ if ((from === "JSONB" || from === "JSON") && to === "TEXT") {
155
+ return `${col}::text`;
156
+ }
157
+ if (from === "TEXT" && to.startsWith("NUMERIC")) {
158
+ return `${col}::numeric`;
159
+ }
160
+ if (from.startsWith("NUMERIC") && to === "TEXT") {
161
+ return `${col}::text`;
162
+ }
163
+ return undefined;
164
+ }
165
+ export function canAutoCastType(fromType, toType) {
166
+ return typeCastUsing("x", fromType, toType) !== undefined;
167
+ }
168
+ export function resolveIndexSqlName(tableSqlName, index) {
169
+ if (index.sqlName) {
170
+ return index.sqlName;
171
+ }
172
+ const suffix = index.unique ? "_key" : "_idx";
173
+ return `${tableSqlName}_${index.name}${suffix}`;
174
+ }
175
+ export function resolveFkConstraintName(tableSqlName, columnSqlName) {
176
+ return `${tableSqlName}_${columnSqlName}_fkey`;
177
+ }
178
+ export function resolveUniqueConstraintName(tableSqlName, columnSqlName) {
179
+ return `${tableSqlName}_${columnSqlName}_key`;
180
+ }
181
+ function emitCreateExtensions(extensions) {
182
+ return extensions.map((ext) => `CREATE EXTENSION IF NOT EXISTS ${ext};`);
183
+ }
184
+ export function emitCreateEnumTypes(enumTypes) {
185
+ return Object.entries(enumTypes).map(([name, definition]) => {
186
+ const quotedValues = definition.values
187
+ .map((value) => `'${value.replace(/'/g, "''")}'`)
188
+ .join(", ");
189
+ return `CREATE TYPE ${q(name)} AS ENUM (${quotedValues});`;
190
+ });
191
+ }
192
+ function emitCreateTable(table, options = {}) {
193
+ const inlineForeignKeys = options.inlineForeignKeys ?? true;
194
+ const manifest = options.manifest;
58
195
  const lines = [];
59
196
  for (const col of table.columns) {
60
197
  if (col.primary && table.primaryKey.length <= 1) {
61
- lines.push(` ${columnDef(col)}`);
198
+ lines.push(` ${columnDef(col, manifest)}`);
62
199
  }
63
200
  else if (!col.primary) {
64
- lines.push(` ${columnDef(col)}`);
201
+ lines.push(` ${columnDef(col, manifest)}`);
65
202
  }
66
203
  }
67
204
  if (table.primaryKey.length > 1) {
@@ -74,31 +211,146 @@ function emitCreateTable(table) {
74
211
  lines.push(` UNIQUE (${cols})`);
75
212
  }
76
213
  }
77
- for (const col of table.columns) {
78
- if (col.kind === "fk" && col.fkTarget) {
79
- const [targetTable, targetCol] = col.fkTarget.split(".");
80
- const onDelete = col.onDelete ? ` ON DELETE ${col.onDelete.toUpperCase()}` : "";
81
- lines.push(` FOREIGN KEY (${q(col.sqlName)}) REFERENCES ${q(targetTable)}(${q(targetCol)})${onDelete}`);
214
+ if (inlineForeignKeys) {
215
+ for (const col of table.columns) {
216
+ if (col.kind === "fk" && col.fkTarget) {
217
+ const [targetTable, targetCol] = col.fkTarget.split(".");
218
+ const onDelete = col.onDelete
219
+ ? ` ON DELETE ${col.onDelete.toUpperCase()}`
220
+ : "";
221
+ lines.push(` FOREIGN KEY (${q(col.sqlName)}) REFERENCES ${q(targetTable)}(${q(targetCol)})${onDelete}`);
222
+ }
82
223
  }
83
224
  }
84
225
  const body = lines.join(",\n");
85
226
  return `CREATE TABLE ${q(table.sqlName)} (\n${body}\n);`;
86
227
  }
87
- function emitAlterTable(_table, diff) {
228
+ function emitDropTable(table) {
229
+ return `DROP TABLE ${q(table.sqlName)};`;
230
+ }
231
+ function emitCreateIndex(table, index) {
232
+ const indexName = resolveIndexSqlName(table.sqlName, index);
233
+ const cols = index.columns.map((c) => q(c)).join(", ");
234
+ const unique = index.unique ? "UNIQUE " : "";
235
+ return `CREATE ${unique}INDEX ${q(indexName)} ON ${q(table.sqlName)} (${cols});`;
236
+ }
237
+ function emitDropIndex(indexName) {
238
+ return `DROP INDEX IF EXISTS ${q(indexName)};`;
239
+ }
240
+ function emitDropConstraint(tableSqlName, constraintName) {
241
+ return `ALTER TABLE ${q(tableSqlName)} DROP CONSTRAINT ${q(constraintName)};`;
242
+ }
243
+ function emitAddForeignKey(table, col) {
244
+ if (!col.fkTarget) {
245
+ throw new Error(`FK column "${col.sqlName}" is missing fkTarget`);
246
+ }
247
+ const [targetTable, targetCol] = col.fkTarget.split(".");
248
+ const constraintName = col.fkConstraintName ?? resolveFkConstraintName(table.sqlName, col.sqlName);
249
+ const onDelete = col.onDelete ? ` ON DELETE ${col.onDelete.toUpperCase()}` : "";
250
+ return `ALTER TABLE ${q(table.sqlName)} ADD CONSTRAINT ${q(constraintName)} FOREIGN KEY (${q(col.sqlName)}) REFERENCES ${q(targetTable)}(${q(targetCol)})${onDelete};`;
251
+ }
252
+ function emitAlterColumn(table, alter, manifest) {
88
253
  const stmts = [];
254
+ const tableName = q(table.sqlName);
255
+ const colName = q(alter.sqlName);
256
+ if (alter.setType) {
257
+ const typeSql = columnType(alter.setType, manifest);
258
+ const using = alter.fromSqlType !== undefined
259
+ ? typeCastUsing(alter.sqlName, alter.fromSqlType, typeSql)
260
+ : undefined;
261
+ const usingClause = using ? ` USING ${using}` : "";
262
+ stmts.push(`ALTER TABLE ${tableName} ALTER COLUMN ${colName} TYPE ${typeSql}${usingClause};`);
263
+ }
264
+ if (alter.setNullable !== undefined) {
265
+ stmts.push(alter.setNullable
266
+ ? `ALTER TABLE ${tableName} ALTER COLUMN ${colName} DROP NOT NULL;`
267
+ : `ALTER TABLE ${tableName} ALTER COLUMN ${colName} SET NOT NULL;`);
268
+ }
269
+ if (alter.setDefault !== undefined) {
270
+ if (alter.setDefault === null) {
271
+ stmts.push(`ALTER TABLE ${tableName} ALTER COLUMN ${colName} DROP DEFAULT;`);
272
+ }
273
+ else {
274
+ const defaultSql = formatDefaultValue(alter.setDefault);
275
+ if (defaultSql !== null) {
276
+ stmts.push(`ALTER TABLE ${tableName} ALTER COLUMN ${colName} SET DEFAULT ${defaultSql};`);
277
+ }
278
+ }
279
+ }
280
+ if (alter.dropUniqueConstraint) {
281
+ stmts.push(emitDropConstraint(table.sqlName, alter.dropUniqueConstraint));
282
+ }
283
+ if (alter.setUnique === true) {
284
+ const constraintName = resolveUniqueConstraintName(table.sqlName, alter.sqlName);
285
+ stmts.push(`ALTER TABLE ${tableName} ADD CONSTRAINT ${q(constraintName)} UNIQUE (${colName});`);
286
+ }
287
+ if (alter.setCheckExpression !== undefined) {
288
+ const constraintName = `${table.sqlName}_${alter.sqlName}_check`;
289
+ stmts.push(emitDropConstraint(table.sqlName, constraintName));
290
+ if (alter.setCheckExpression !== null) {
291
+ stmts.push(`ALTER TABLE ${tableName} ADD CONSTRAINT ${q(constraintName)} CHECK (${alter.setCheckExpression});`);
292
+ }
293
+ }
294
+ return stmts;
295
+ }
296
+ function emitAlterTable(table, diff) {
297
+ const stmts = [];
298
+ const manifest = diff.manifest;
299
+ if (diff.fkChanges) {
300
+ for (const change of diff.fkChanges) {
301
+ if (change.drop) {
302
+ stmts.push(emitDropConstraint(table.sqlName, change.drop));
303
+ }
304
+ }
305
+ }
306
+ if (diff.dropIndexes) {
307
+ for (const indexName of diff.dropIndexes) {
308
+ stmts.push(emitDropIndex(indexName));
309
+ }
310
+ }
311
+ if (diff.dropColumns) {
312
+ for (const col of diff.dropColumns) {
313
+ stmts.push(`ALTER TABLE ${q(table.sqlName)} DROP COLUMN ${q(col)};`);
314
+ }
315
+ }
89
316
  if (diff.renameColumns) {
90
317
  for (const { from, to } of diff.renameColumns) {
91
- stmts.push(`ALTER TABLE ${q(_table.sqlName)} RENAME COLUMN ${q(from)} TO ${q(to)};`);
318
+ stmts.push(`ALTER TABLE ${q(table.sqlName)} RENAME COLUMN ${q(from)} TO ${q(to)};`);
92
319
  }
93
320
  }
94
321
  if (diff.addColumns) {
95
322
  for (const col of diff.addColumns) {
96
- stmts.push(`ALTER TABLE ${q(_table.sqlName)} ADD COLUMN ${columnDef(col)};`);
323
+ stmts.push(`ALTER TABLE ${q(table.sqlName)} ADD COLUMN ${columnDef(col, manifest)};`);
97
324
  }
98
325
  }
99
- if (diff.dropColumns) {
100
- for (const col of diff.dropColumns) {
101
- stmts.push(`ALTER TABLE ${q(_table.sqlName)} DROP COLUMN ${q(col)};`);
326
+ if (diff.alterColumns) {
327
+ for (const alter of diff.alterColumns) {
328
+ stmts.push(...emitAlterColumn(table, alter, manifest));
329
+ }
330
+ }
331
+ if (diff.addIndexes) {
332
+ for (const index of diff.addIndexes) {
333
+ stmts.push(emitCreateIndex(table, index));
334
+ }
335
+ }
336
+ if (diff.fkChanges) {
337
+ for (const change of diff.fkChanges) {
338
+ if (change.add) {
339
+ const col = table.columns.find((c) => c.sqlName === change.column);
340
+ if (col?.fkTarget) {
341
+ const fkCol = {
342
+ ...col,
343
+ fkTarget: change.add.target,
344
+ };
345
+ if (change.add.onDelete !== undefined) {
346
+ fkCol.onDelete = change.add.onDelete;
347
+ }
348
+ if (change.add.constraintName !== undefined) {
349
+ fkCol.fkConstraintName = change.add.constraintName;
350
+ }
351
+ stmts.push(emitAddForeignKey(table, fkCol));
352
+ }
353
+ }
102
354
  }
103
355
  }
104
356
  return stmts;
@@ -107,8 +359,17 @@ export const postgresDialect = {
107
359
  name: "postgresql",
108
360
  quoteIdentifier: q,
109
361
  columnType,
362
+ resolveIndexSqlName,
363
+ emitCreateExtensions,
364
+ emitCreateEnumTypes,
110
365
  emitCreateTable,
366
+ emitDropTable,
367
+ emitCreateIndex,
368
+ emitDropIndex,
369
+ emitDropConstraint,
111
370
  emitAlterTable,
371
+ emitAlterColumn,
372
+ emitAddForeignKey,
112
373
  whereOperators,
113
374
  defaultNowExpression,
114
375
  };
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/dialect/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/dialect/postgres.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,SAAS,CAAC,CAAC,IAAY;IACrB,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,MAAM,cAAc,GAAgB;IAClC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE;IACpC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,EAAE;IAC1C,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,EAAE;IAC5C,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,EAAE;IAC1C,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE;IAChC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,EAAE;IAClC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE;IAChC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,EAAE;IAClC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG;IACrC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI;IAC9C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,UAAU;IACjC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,cAAc;CACzC,CAAC;AAEF,SAAS,UAAU,CAAC,GAAmB,EAAE,QAAmB;IAC1D,OAAO,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,GAAmB,EACnB,QAAmB;IAEnB,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAClD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CACrD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CACtC,CAAC;QACF,MAAM,SAAS,GAAG,WAAW,EAAE,OAAO,CAAC,IAAI,CACzC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CACtC,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAe;IAChE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO,SAAS,CAAC;QACnB,KAAK,0BAA0B;YAC7B,OAAO,aAAa,CAAC;QACvB,KAAK,6BAA6B;YAChC,OAAO,WAAW,CAAC;QACrB,KAAK,MAAM,CAAC;QACZ,KAAK,mBAAmB;YACtB,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,OAAO;YACV,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB;YACE,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAmB,EAAE,QAAmB;IACzD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1D,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,GAAG,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAmB;IAC7C,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;QACzC,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;QAC7C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,QAAgB,EAChB,MAAc;IAEd,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QACrC,OAAO,GAAG,GAAG,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QACrC,OAAO,GAAG,GAAG,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,GAAG,GAAG,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,GAAG,GAAG,WAAW,CAAC;IAC3B,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,GAAG,GAAG,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,GAAG,GAAG,WAAW,CAAC;IAC3B,CAAC;IACD,IACE,CAAC,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,aAAa,CAAC;QAC/D,CAAC,EAAE,KAAK,6BAA6B,IAAI,EAAE,KAAK,WAAW,CAAC,EAC5D,CAAC;QACD,OAAO,GAAG,GAAG,aAAa,CAAC;IAC7B,CAAC;IACD,IACE,CAAC,IAAI,KAAK,6BAA6B,IAAI,IAAI,KAAK,WAAW,CAAC;QAChE,CAAC,EAAE,KAAK,0BAA0B,IAAI,EAAE,KAAK,aAAa,CAAC,EAC3D,CAAC;QACD,OAAO,GAAG,GAAG,eAAe,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;QACzD,OAAO,GAAG,GAAG,KAAK,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAC3D,OAAO,GAAG,GAAG,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,OAAO,GAAG,GAAG,WAAW,CAAC;IAC3B,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,GAAG,GAAG,QAAQ,CAAC;IACxB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,MAAc;IAC9D,OAAO,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,YAAoB,EACpB,KAAoB;IAEpB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,GAAG,YAAY,IAAI,KAAK,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,YAAoB,EACpB,aAAqB;IAErB,OAAO,GAAG,YAAY,IAAI,aAAa,OAAO,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,YAAoB,EACpB,aAAqB;IAErB,OAAO,GAAG,YAAY,IAAI,aAAa,MAAM,CAAC;AAChD,CAAC;AAED,SAAS,oBAAoB,CAAC,UAA6B;IACzD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kCAAkC,GAAG,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,SAAwD;IAExD,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;QAC1D,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM;aACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,eAAe,CAAC,CAAC,IAAI,CAAC,aAAa,YAAY,IAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,KAAoB,EACpB,UAA8B,EAAE;IAEhC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ;oBAC3B,CAAC,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE;oBAC5C,CAAC,CAAC,EAAE,CAAC;gBACP,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,WAAY,CAAC,IAAI,CAAC,CAAC,SAAU,CAAC,IAAI,QAAQ,EAAE,CAC/F,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,gBAAgB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;AAC3D,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB;IACzC,OAAO,cAAc,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC3C,CAAC;AAED,SAAS,eAAe,CAAC,KAAoB,EAAE,KAAoB;IACjE,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,UAAU,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;AACnF,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB;IACtC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACjD,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAoB,EAAE,cAAsB;IACtE,OAAO,eAAe,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;AAChF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB,EAAE,GAAmB;IAClE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,cAAc,GAClB,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,OAAO,eAAe,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,WAAY,CAAC,IAAI,CAAC,CAAC,SAAU,CAAC,IAAI,QAAQ,GAAG,CAAC;AAC3K,CAAC;AAED,SAAS,eAAe,CACtB,KAAoB,EACpB,KAAkB,EAClB,QAAmB;IAEnB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEjC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,MAAM,KAAK,GACT,KAAK,CAAC,WAAW,KAAK,SAAS;YAC7B,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC;YAC1D,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CACR,eAAe,SAAS,iBAAiB,OAAO,SAAS,OAAO,GAAG,WAAW,GAAG,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,WAAW;YACf,CAAC,CAAC,eAAe,SAAS,iBAAiB,OAAO,iBAAiB;YACnE,CAAC,CAAC,eAAe,SAAS,iBAAiB,OAAO,gBAAgB,CACrE,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,iBAAiB,OAAO,gBAAgB,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CACR,eAAe,SAAS,iBAAiB,OAAO,gBAAgB,UAAU,GAAG,CAC9E,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,cAAc,GAClB,2BAA2B,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CACR,eAAe,SAAS,mBAAmB,CAAC,CAAC,cAAc,CAAC,YAAY,OAAO,IAAI,CACpF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,QAAQ,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CACR,eAAe,SAAS,mBAAmB,CAAC,CAAC,cAAc,CAAC,WAAW,KAAK,CAAC,kBAAkB,IAAI,CACpG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB,EAAE,IAAe;IAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC;gBACnE,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC;oBAClB,MAAM,KAAK,GAAmB;wBAC5B,GAAG,GAAG;wBACN,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM;qBAC5B,CAAC;oBACF,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACtC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACvC,CAAC;oBACD,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;wBAC5C,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;oBACrD,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAY;IACtC,IAAI,EAAE,YAAY;IAClB,eAAe,EAAE,CAAC;IAClB,UAAU;IACV,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,eAAe;IACf,aAAa;IACb,eAAe;IACf,aAAa;IACb,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,oBAAoB;CACrB,CAAC;AAEF,OAAO,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC"}
@@ -14,6 +14,14 @@ export type ManifestColumn = {
14
14
  fkAs?: string;
15
15
  fkInverse?: string;
16
16
  onDelete?: string;
17
+ fkConstraintName?: string;
18
+ uniqueConstraintName?: string;
19
+ storageSqlType?: string;
20
+ checkExpression?: string;
21
+ generated?: boolean;
22
+ };
23
+ export type ManifestEnumType = {
24
+ values: readonly string[];
17
25
  };
18
26
  export type ManifestRelation = {
19
27
  name: string;
@@ -44,6 +52,7 @@ export type ManifestIndex = {
44
52
  name: string;
45
53
  columns: readonly string[];
46
54
  unique: boolean;
55
+ sqlName?: string;
47
56
  };
48
57
  export type ManifestTable = {
49
58
  accessor: string;
@@ -58,28 +67,83 @@ export type Manifest = {
58
67
  tables: Record<string, ManifestTable>;
59
68
  manyToMany: ManifestManyToMany[];
60
69
  extensions?: string[];
70
+ enumMode?: "check" | "union" | "native";
71
+ enumTypes?: Record<string, ManifestEnumType>;
61
72
  };
62
73
  export type CompiledQuery = {
63
74
  text: string;
64
75
  params: unknown[];
65
76
  };
66
- export type WhereOperator = "equals" | "contains" | "startsWith" | "endsWith" | "gt" | "gte" | "lt" | "lte" | "in";
77
+ export type WhereOperator = "equals" | "contains" | "startsWith" | "endsWith" | "gt" | "gte" | "lt" | "lte" | "in" | "notIn" | "isNull" | "isNotNull";
67
78
  export type OperatorMap = Record<WhereOperator, (sqlColumn: string, paramIndex: number) => string>;
79
+ export type ColumnAlter = {
80
+ sqlName: string;
81
+ setType?: ManifestColumn;
82
+ fromSqlType?: string;
83
+ setNullable?: boolean;
84
+ setDefault?: ManifestColumn | null;
85
+ setUnique?: boolean;
86
+ dropUniqueConstraint?: string;
87
+ setCheckExpression?: string | null;
88
+ };
89
+ export type FkChange = {
90
+ column: string;
91
+ add?: {
92
+ target: string;
93
+ onDelete?: string;
94
+ constraintName?: string;
95
+ };
96
+ drop?: string;
97
+ };
68
98
  export type TableDiff = {
69
- create?: ManifestTable;
99
+ table: ManifestTable;
100
+ create?: boolean;
101
+ drop?: boolean;
70
102
  addColumns?: ManifestColumn[];
71
103
  dropColumns?: string[];
72
104
  renameColumns?: Array<{
73
105
  from: string;
74
106
  to: string;
75
107
  }>;
108
+ alterColumns?: ColumnAlter[];
109
+ addIndexes?: ManifestIndex[];
110
+ dropIndexes?: string[];
111
+ fkChanges?: FkChange[];
112
+ manifest?: Manifest;
113
+ };
114
+ export type DestructiveChangeKind = "drop_table" | "drop_column" | "alter_column_type" | "alter_column_type_manual" | "alter_enum_manual" | "drop_index" | "drop_fk" | "alter_primary_key";
115
+ export type DestructiveChange = {
116
+ kind: DestructiveChangeKind;
117
+ table: string;
118
+ detail: string;
119
+ sql: string;
120
+ };
121
+ export type ManifestDiff = {
122
+ isInitial: boolean;
123
+ sql: string[];
124
+ destructive: DestructiveChange[];
125
+ };
126
+ export type CreateTableOptions = {
127
+ inlineForeignKeys?: boolean;
128
+ manifest?: Manifest;
76
129
  };
77
130
  export type Dialect = {
78
131
  readonly name: string;
79
132
  quoteIdentifier(name: string): string;
80
- columnType(col: ManifestColumn): string;
81
- emitCreateTable(table: ManifestTable): string;
133
+ columnType(col: ManifestColumn, manifest?: Manifest): string;
134
+ resolveIndexSqlName(tableSqlName: string, index: ManifestIndex): string;
135
+ emitCreateExtensions(extensions: readonly string[]): string[];
136
+ emitCreateEnumTypes(enumTypes: Record<string, {
137
+ values: readonly string[];
138
+ }>): string[];
139
+ emitCreateTable(table: ManifestTable, options?: CreateTableOptions): string;
140
+ emitDropTable(table: ManifestTable): string;
141
+ emitCreateIndex(table: ManifestTable, index: ManifestIndex): string;
142
+ emitDropIndex(indexName: string): string;
143
+ emitDropConstraint(tableSqlName: string, constraintName: string): string;
82
144
  emitAlterTable(table: ManifestTable, diff: TableDiff): string[];
145
+ emitAlterColumn(table: ManifestTable, alter: ColumnAlter, manifest?: Manifest): string[];
146
+ emitAddForeignKey(table: ManifestTable, col: ManifestColumn): string;
83
147
  whereOperators: OperatorMap;
84
148
  defaultNowExpression(): string;
85
149
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dialect/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,IAAI,CAAC;AACjF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,UAAU,GACV,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,CAAC;AAET,MAAM,MAAM,WAAW,GAAG,MAAM,CAC9B,aAAa,EACb,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAClD,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAAC;IACxC,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC;IAC9C,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAAC;IAChE,cAAc,EAAE,WAAW,CAAC;IAC5B,oBAAoB,IAAI,MAAM,CAAC;CAChC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dialect/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,IAAI,CAAC;AACjF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,UAAU,GACV,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,OAAO,GACP,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GAAG,MAAM,CAC9B,aAAa,EACb,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAClD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,YAAY,GACZ,aAAa,GACb,mBAAmB,GACnB,0BAA0B,GAC1B,mBAAmB,GACnB,YAAY,GACZ,SAAS,GACT,mBAAmB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7D,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC;IACxE,oBAAoB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9D,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC,GAAG,MAAM,EAAE,CAAC;IACxF,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC5E,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC;IAC5C,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC;IACpE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IACzE,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAAC;IAChE,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,CAAC;IACzF,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,CAAC;IACrE,cAAc,EAAE,WAAW,CAAC;IAC5B,oBAAoB,IAAI,MAAM,CAAC;CAChC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,11 @@ export { createNeoOrmClient, createNeoOrmClientFromPool } from "./runtime/client
4
4
  export type { NeoOrmClient, TableRepository, TypedNeoOrmClient, TypedTableRepository, DefaultWithMap, DefaultRowPayloadMap, TransactionClient, TransactionOptions, TransactionIsolationLevel, } from "./runtime/client.js";
5
5
  export type { Manifest, ManifestTable, ManifestColumn, ManifestRelation, ManifestManyToMany } from "./dialect/types.js";
6
6
  export { postgresDialect } from "./dialect/postgres.js";
7
- export { generateFromSchema } from "./codegen/generate.js";
7
+ export { generateFromSchema, summarizeGenerateOutcome, formatGenerateSummary } from "./codegen/generate.js";
8
+ export type { GenerateResult, GenerateSummary, GenerateStatus } from "./codegen/generate.js";
8
9
  export { schemaToManifest, validateManifest } from "./codegen/schema-to-manifest.js";
9
- export { migrateDeploy, dbPush } from "./migrate/runner.js";
10
+ export { migrateDeploy, dbPush, applySql, migrateStatus, migrateReset, resetDatabaseSchema, computeMigrationStatus, formatMigrateStatus, listMigrationsOnDisk, listAppliedMigrations } from "./migrate/runner.js";
11
+ export type { DbPushOptions, DbPushResult, MigrationRecord, MigrationStatus } from "./migrate/runner.js";
12
+ export { introspectToManifest } from "./introspect/to-manifest.js";
13
+ export { diffManifest, formatDestructiveWarnings, resolveMigrationSql, explainNoMigrationSql, } from "./codegen/diff-manifest.js";
10
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACrF,YAAY,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACrF,YAAY,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC5G,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAClN,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  export { defineConfig, loadConfig } from "./config.js";
2
2
  export { createNeoOrmClient, createNeoOrmClientFromPool } from "./runtime/client.js";
3
3
  export { postgresDialect } from "./dialect/postgres.js";
4
- export { generateFromSchema } from "./codegen/generate.js";
4
+ export { generateFromSchema, summarizeGenerateOutcome, formatGenerateSummary } from "./codegen/generate.js";
5
5
  export { schemaToManifest, validateManifest } from "./codegen/schema-to-manifest.js";
6
- export { migrateDeploy, dbPush } from "./migrate/runner.js";
6
+ export { migrateDeploy, dbPush, applySql, migrateStatus, migrateReset, resetDatabaseSchema, computeMigrationStatus, formatMigrateStatus, listMigrationsOnDisk, listAppliedMigrations } from "./migrate/runner.js";
7
+ export { introspectToManifest } from "./introspect/to-manifest.js";
8
+ export { diffManifest, formatDestructiveWarnings, resolveMigrationSql, explainNoMigrationSql, } from "./codegen/diff-manifest.js";
7
9
  //# sourceMappingURL=index.js.map