neoorm 0.3.0 → 0.4.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 (189) hide show
  1. package/README.md +12 -6
  2. package/dist/bin/neoorm.js +45 -15
  3. package/dist/bin/neoorm.js.map +1 -1
  4. package/dist/codegen/diff-manifest.d.ts +7 -7
  5. package/dist/codegen/diff-manifest.d.ts.map +1 -1
  6. package/dist/codegen/diff-manifest.js +67 -54
  7. package/dist/codegen/diff-manifest.js.map +1 -1
  8. package/dist/codegen/generate-summary.js.map +1 -1
  9. package/dist/codegen/generate.d.ts.map +1 -1
  10. package/dist/codegen/generate.js +11 -1
  11. package/dist/codegen/generate.js.map +1 -1
  12. package/dist/codegen/manifest-relations.d.ts.map +1 -1
  13. package/dist/codegen/manifest-relations.js +21 -0
  14. package/dist/codegen/manifest-relations.js.map +1 -1
  15. package/dist/codegen/schema-to-manifest.js.map +1 -1
  16. package/dist/config.d.ts +1 -1
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +1 -1
  19. package/dist/config.js.map +1 -1
  20. package/dist/dialect/postgres.d.ts +3 -4
  21. package/dist/dialect/postgres.d.ts.map +1 -1
  22. package/dist/dialect/postgres.js +19 -11
  23. package/dist/dialect/postgres.js.map +1 -1
  24. package/dist/dialect/shared.d.ts +6 -0
  25. package/dist/dialect/shared.d.ts.map +1 -0
  26. package/dist/dialect/shared.js +16 -0
  27. package/dist/dialect/shared.js.map +1 -0
  28. package/dist/dialect/sqlite.d.ts +4 -0
  29. package/dist/dialect/sqlite.d.ts.map +1 -0
  30. package/dist/dialect/sqlite.js +276 -0
  31. package/dist/dialect/sqlite.js.map +1 -0
  32. package/dist/dialect/types.d.ts +7 -0
  33. package/dist/dialect/types.d.ts.map +1 -1
  34. package/dist/init/scaffold.js.map +1 -1
  35. package/dist/introspect/pull.d.ts +3 -2
  36. package/dist/introspect/pull.d.ts.map +1 -1
  37. package/dist/introspect/pull.js +124 -13
  38. package/dist/introspect/pull.js.map +1 -1
  39. package/dist/introspect/queries.d.ts +9 -9
  40. package/dist/introspect/queries.d.ts.map +1 -1
  41. package/dist/introspect/queries.js +16 -16
  42. package/dist/introspect/queries.js.map +1 -1
  43. package/dist/introspect/sqlite/to-manifest.d.ts +4 -0
  44. package/dist/introspect/sqlite/to-manifest.d.ts.map +1 -0
  45. package/dist/introspect/sqlite/to-manifest.js +166 -0
  46. package/dist/introspect/sqlite/to-manifest.js.map +1 -0
  47. package/dist/introspect/to-manifest.d.ts +2 -2
  48. package/dist/introspect/to-manifest.d.ts.map +1 -1
  49. package/dist/introspect/to-manifest.js +20 -12
  50. package/dist/introspect/to-manifest.js.map +1 -1
  51. package/dist/migrate/runner.d.ts +14 -14
  52. package/dist/migrate/runner.d.ts.map +1 -1
  53. package/dist/migrate/runner.js +83 -88
  54. package/dist/migrate/runner.js.map +1 -1
  55. package/dist/plugins/builtin.d.ts +1 -0
  56. package/dist/plugins/builtin.d.ts.map +1 -1
  57. package/dist/plugins/builtin.js +96 -6
  58. package/dist/plugins/builtin.js.map +1 -1
  59. package/dist/plugins/json/operators.d.ts.map +1 -1
  60. package/dist/plugins/json/operators.js +14 -5
  61. package/dist/plugins/json/operators.js.map +1 -1
  62. package/dist/plugins/types.d.ts +4 -4
  63. package/dist/plugins/types.d.ts.map +1 -1
  64. package/dist/runtime/client.d.ts +32 -7
  65. package/dist/runtime/client.d.ts.map +1 -1
  66. package/dist/runtime/client.js +68 -9
  67. package/dist/runtime/client.js.map +1 -1
  68. package/dist/runtime/driver.d.ts +28 -0
  69. package/dist/runtime/driver.d.ts.map +1 -0
  70. package/dist/runtime/driver.js +265 -0
  71. package/dist/runtime/driver.js.map +1 -0
  72. package/dist/runtime/errors.d.ts +1 -1
  73. package/dist/runtime/errors.d.ts.map +1 -1
  74. package/dist/runtime/errors.js +1 -0
  75. package/dist/runtime/errors.js.map +1 -1
  76. package/dist/runtime/executor.d.ts +11 -3
  77. package/dist/runtime/executor.d.ts.map +1 -1
  78. package/dist/runtime/executor.js +69 -37
  79. package/dist/runtime/executor.js.map +1 -1
  80. package/dist/runtime/pg-error.d.ts +1 -1
  81. package/dist/runtime/pg-error.d.ts.map +1 -1
  82. package/dist/runtime/pg-error.js +6 -1
  83. package/dist/runtime/pg-error.js.map +1 -1
  84. package/dist/runtime/query/aggregate.d.ts.map +1 -1
  85. package/dist/runtime/query/aggregate.js +5 -4
  86. package/dist/runtime/query/aggregate.js.map +1 -1
  87. package/dist/runtime/query/compile.d.ts +42 -16
  88. package/dist/runtime/query/compile.d.ts.map +1 -1
  89. package/dist/runtime/query/compile.js +479 -91
  90. package/dist/runtime/query/compile.js.map +1 -1
  91. package/dist/runtime/query/count.d.ts.map +1 -1
  92. package/dist/runtime/query/count.js +7 -3
  93. package/dist/runtime/query/count.js.map +1 -1
  94. package/dist/runtime/query/create.d.ts +5 -0
  95. package/dist/runtime/query/create.d.ts.map +1 -1
  96. package/dist/runtime/query/create.js +89 -23
  97. package/dist/runtime/query/create.js.map +1 -1
  98. package/dist/runtime/query/cursor.d.ts +4 -3
  99. package/dist/runtime/query/cursor.d.ts.map +1 -1
  100. package/dist/runtime/query/cursor.js +13 -9
  101. package/dist/runtime/query/cursor.js.map +1 -1
  102. package/dist/runtime/query/delete.d.ts +2 -1
  103. package/dist/runtime/query/delete.d.ts.map +1 -1
  104. package/dist/runtime/query/delete.js +27 -14
  105. package/dist/runtime/query/delete.js.map +1 -1
  106. package/dist/runtime/query/execute.d.ts +11 -4
  107. package/dist/runtime/query/execute.d.ts.map +1 -1
  108. package/dist/runtime/query/execute.js +20 -5
  109. package/dist/runtime/query/execute.js.map +1 -1
  110. package/dist/runtime/query/find-or-create.d.ts +17 -0
  111. package/dist/runtime/query/find-or-create.d.ts.map +1 -0
  112. package/dist/runtime/query/find-or-create.js +90 -0
  113. package/dist/runtime/query/find-or-create.js.map +1 -0
  114. package/dist/runtime/query/find.d.ts +13 -4
  115. package/dist/runtime/query/find.d.ts.map +1 -1
  116. package/dist/runtime/query/find.js +201 -47
  117. package/dist/runtime/query/find.js.map +1 -1
  118. package/dist/runtime/query/manifest-lookup.d.ts +3 -2
  119. package/dist/runtime/query/manifest-lookup.d.ts.map +1 -1
  120. package/dist/runtime/query/manifest-lookup.js +5 -4
  121. package/dist/runtime/query/manifest-lookup.js.map +1 -1
  122. package/dist/runtime/query/paginate.d.ts.map +1 -1
  123. package/dist/runtime/query/paginate.js +16 -11
  124. package/dist/runtime/query/paginate.js.map +1 -1
  125. package/dist/runtime/query/primary-key.d.ts +9 -6
  126. package/dist/runtime/query/primary-key.d.ts.map +1 -1
  127. package/dist/runtime/query/primary-key.js +65 -35
  128. package/dist/runtime/query/primary-key.js.map +1 -1
  129. package/dist/runtime/query/relation-planner.d.ts +74 -0
  130. package/dist/runtime/query/relation-planner.d.ts.map +1 -0
  131. package/dist/runtime/query/relation-planner.js +648 -0
  132. package/dist/runtime/query/relation-planner.js.map +1 -0
  133. package/dist/runtime/query/relation-writes.d.ts +2 -1
  134. package/dist/runtime/query/relation-writes.d.ts.map +1 -1
  135. package/dist/runtime/query/relation-writes.js +46 -53
  136. package/dist/runtime/query/relation-writes.js.map +1 -1
  137. package/dist/runtime/query/table-index.d.ts +61 -0
  138. package/dist/runtime/query/table-index.d.ts.map +1 -0
  139. package/dist/runtime/query/table-index.js +152 -0
  140. package/dist/runtime/query/table-index.js.map +1 -0
  141. package/dist/runtime/query/unique.d.ts +3 -2
  142. package/dist/runtime/query/unique.d.ts.map +1 -1
  143. package/dist/runtime/query/unique.js +7 -6
  144. package/dist/runtime/query/unique.js.map +1 -1
  145. package/dist/runtime/query/update.d.ts +3 -1
  146. package/dist/runtime/query/update.d.ts.map +1 -1
  147. package/dist/runtime/query/update.js +117 -36
  148. package/dist/runtime/query/update.js.map +1 -1
  149. package/dist/runtime/query/updated-at.d.ts +6 -4
  150. package/dist/runtime/query/updated-at.d.ts.map +1 -1
  151. package/dist/runtime/query/updated-at.js +23 -9
  152. package/dist/runtime/query/updated-at.js.map +1 -1
  153. package/dist/runtime/query/upsert.d.ts.map +1 -1
  154. package/dist/runtime/query/upsert.js +11 -9
  155. package/dist/runtime/query/upsert.js.map +1 -1
  156. package/dist/runtime/sqlite-open.d.ts +3 -0
  157. package/dist/runtime/sqlite-open.d.ts.map +1 -0
  158. package/dist/runtime/sqlite-open.js +22 -0
  159. package/dist/runtime/sqlite-open.js.map +1 -0
  160. package/dist/runtime/transaction.d.ts +5 -0
  161. package/dist/runtime/transaction.d.ts.map +1 -0
  162. package/dist/runtime/transaction.js +26 -0
  163. package/dist/runtime/transaction.js.map +1 -0
  164. package/dist/runtime/types.d.ts +9 -4
  165. package/dist/runtime/types.d.ts.map +1 -1
  166. package/dist/schema/column.d.ts +1 -1
  167. package/dist/schema/column.d.ts.map +1 -1
  168. package/dist/schema/column.js +1 -1
  169. package/dist/schema/column.js.map +1 -1
  170. package/dist/schema/define-schema.js.map +1 -1
  171. package/dist/schema/index.d.ts +2 -2
  172. package/dist/schema/index.d.ts.map +1 -1
  173. package/dist/schema/index.js +1 -1
  174. package/dist/schema/index.js.map +1 -1
  175. package/dist/schema/relation-types.d.ts +1 -0
  176. package/dist/schema/relation-types.d.ts.map +1 -1
  177. package/dist/schema/types.d.ts +12 -0
  178. package/dist/schema/types.d.ts.map +1 -1
  179. package/dist/sql/builder.d.ts.map +1 -1
  180. package/dist/sql/template.d.ts +7 -0
  181. package/dist/sql/template.d.ts.map +1 -1
  182. package/dist/sql/template.js +89 -3
  183. package/dist/sql/template.js.map +1 -1
  184. package/dist/utils/case.d.ts +4 -0
  185. package/dist/utils/case.d.ts.map +1 -1
  186. package/dist/utils/case.js +11 -0
  187. package/dist/utils/case.js.map +1 -1
  188. package/dist/utils/uuid.js.map +1 -1
  189. package/package.json +21 -4
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  <strong>NeoOrm</strong> is a TypeScript-first SQL ORM built for people who want <strong>type safety without the complexity</strong>.
4
4
  Schema → codegen → typed client — you own the SQL, we handle the boilerplate.
5
5
 
6
- PostgreSQL dialect ships today &mdash; MySQL, SQLite, and others are on the roadmap.
6
+ PostgreSQL and SQLite dialects ship today &mdash; MySQL and others are on the roadmap.
7
7
  </p>
8
8
 
9
9
  <p>
@@ -14,10 +14,11 @@
14
14
  </p>
15
15
 
16
16
  ```
17
- npm install neoorm pg
17
+ npm install neoorm pg # PostgreSQL
18
+ npm install neoorm # SQLite (no extra driver needed)
18
19
  ```
19
20
 
20
- Requires **Node.js 20+** (PostgreSQL driver ships now; more databases coming).
21
+ Requires **Node.js 20+** (Node.js 22.5+ for SQLite on Node — or Bun, or pass your own `db` instance; see [SQLite](docs/sqlite.md)).
21
22
 
22
23
  ---
23
24
 
@@ -30,7 +31,7 @@ Most ORMs force you to learn their query language, fight their type system, or s
30
31
  - **Schema as code** — one source of truth for types and the database
31
32
  - **Generated client** — zero-cost abstractions, full autocomplete
32
33
  - **Relations done right** — nested reads, writes, and filters without N+1 footguns
33
- - **PostgreSQL powered** — arrays, JSONB, PostGIS, enums, full-text, extensions — no abstraction layer that gets in the way. MySQL, SQLite, and more are coming.
34
+ - **PostgreSQL powered** — arrays, JSONB, PostGIS, enums, full-text, extensions — no abstraction layer that gets in the way. SQLite ships too for local dev and single-file deployments; MySQL and more are coming.
34
35
  - **Migrations built-in** — diff your schema, get SQL, deploy. Rollback supported.
35
36
 
36
37
  ---
@@ -84,9 +85,13 @@ const posts = await db.posts.findMany({
84
85
  <td><strong>🔌 Plugin system</strong><br/>Column type plugins for PostGIS (geometry, geography, spatial operators), citext, and custom extensions.</td>
85
86
  </tr>
86
87
  <tr>
87
- <td><strong>🐘 PostgreSQL powered</strong><br/>JSONB, arrays (`TEXT[]`, `INTEGER[]`), `NUMERIC`, `BYTEA`, native enums, UUID v4/v7, serial identity, `CITEXT`, extensions. More databases on the roadmap.</td>
88
+ <td><strong>🐘 PostgreSQL powered</strong><br/>JSONB, arrays (`TEXT[]`, `INTEGER[]`), `NUMERIC`, `BYTEA`, native enums, UUID v4/v7, serial identity, `CITEXT`, extensions.</td>
88
89
  <td><strong>🎯 TypeScript end-to-end</strong><br/>Strict types from schema to query results. Discriminated payload types for `with` includes. Compile-time union checking on enums.</td>
89
90
  </tr>
91
+ <tr>
92
+ <td><strong>🪶 SQLite dialect</strong><br/>Zero-config local dev and testing — no database server, no driver install. Works on Node 22.5+ and Bun, or with your own `db` handle. See [SQLite](docs/sqlite.md).</td>
93
+ <td></td>
94
+ </tr>
90
95
  </table>
91
96
 
92
97
  ---
@@ -103,6 +108,7 @@ const posts = await db.posts.findMany({
103
108
  | [Migrations](docs/migrations.md) | Deploy, dev, status, rollback, reset |
104
109
  | [CLI reference](docs/cli.md) | All commands and flags |
105
110
  | [Configuration](docs/configuration.md) | Config file options reference |
111
+ | [SQLite](docs/sqlite.md) | SQLite dialect, drivers, type mapping, limitations |
106
112
  | [Plugins](docs/plugins.md) | PostGIS, citext, custom plugins |
107
113
 
108
114
  See the [blog example](examples/blog/schema.ts) for a complete schema, and [queries.example.ts](examples/blog/queries.example.ts) for typed queries and mutations.
@@ -128,7 +134,7 @@ NeoOrm was built because existing TypeScript ORMs either sacrificed type safety
128
134
  - **Schema is the source of truth** — not decorators, not reflection, not a proprietary DSL. Your schema file is plain TypeScript.
129
135
  - **Generated code is a compile-time artifact** — no runtime dependency on the schema. Swap the schema, regenerate, everything still compiles.
130
136
  - **SQL is not hidden** — the client compiles to parameterized SQL that you can inspect. No magic, no surprises.
131
- - **PostgreSQL first** — we ship with a Postgres dialect and lean into its features. MySQL, SQLite, and other dialects are on the roadmap and will slot into the same architecture.
137
+ - **PostgreSQL and SQLite first** — we ship Postgres and SQLite dialects and lean into each one's strengths. MySQL and other dialects are on the roadmap and will slot into the same architecture.
132
138
 
133
139
  ---
134
140
 
@@ -6,9 +6,31 @@ import { Pool } from "pg";
6
6
  import packageJson from "../../package.json" with { type: "json" };
7
7
  import { formatGenerateSummary, generateFromSchema, } from "../codegen/generate.js";
8
8
  import { loadConfig } from "../config.js";
9
+ import { postgresDialect } from "../dialect/postgres.js";
10
+ import { sqliteDialect } from "../dialect/sqlite.js";
9
11
  import { formatInitNextSteps, runInit } from "../init/scaffold.js";
10
- import { introspectPostgres } from "../introspect/pull.js";
12
+ import { introspectPostgres, introspectSqlite } from "../introspect/pull.js";
11
13
  import { dbPush, dbPushWarnings, formatMigrateStatus, migrateDeploy, migrateDown, migrateReset, migrateStatus, } from "../migrate/runner.js";
14
+ import { pgClient, sqliteClient } from "../runtime/driver.js";
15
+ import { openSqliteDatabase } from "../runtime/sqlite-open.js";
16
+ function connectDb(config) {
17
+ if (config.datasource.provider === "sqlite") {
18
+ const db = openSqliteDatabase(config.datasource.url);
19
+ const client = sqliteClient(db);
20
+ return {
21
+ client,
22
+ dialect: sqliteDialect,
23
+ close: () => client.close(),
24
+ };
25
+ }
26
+ const pool = new Pool({ connectionString: config.datasource.url });
27
+ const client = pgClient(pool);
28
+ return {
29
+ client,
30
+ dialect: postgresDialect,
31
+ close: () => pool.end(),
32
+ };
33
+ }
12
34
  const program = new Command();
13
35
  program.name("neoorm").description("NeoOrm CLI").version(packageJson.version);
14
36
  program
@@ -90,23 +112,27 @@ program
90
112
  const config = await loadConfig(cwd);
91
113
  const outDir = resolve(cwd, config.out);
92
114
  const migrationsDir = join(outDir, "migrations");
93
- const dbSchema = config.datasource.schema;
94
- const pool = new Pool({ connectionString: config.datasource.url });
115
+ const dbSchema = config.datasource.provider === "postgresql"
116
+ ? config.datasource.schema
117
+ : undefined;
118
+ const { client, dialect, close } = connectDb(config);
95
119
  try {
96
120
  if (subcommand === "status") {
97
- const status = await migrateStatus(pool, migrationsDir, dbSchema);
121
+ const status = await migrateStatus(client, dialect, migrationsDir, dbSchema);
98
122
  for (const line of formatMigrateStatus(status, migrationsDir)) {
99
123
  console.log(line);
100
124
  }
101
125
  return;
102
126
  }
103
127
  if (subcommand === "reset") {
104
- const { reapplied } = await migrateReset(pool, migrationsDir, {
128
+ const { reapplied } = await migrateReset(client, dialect, migrationsDir, {
105
129
  force: options.force ?? false,
106
130
  ...(options.skipApply ? { skipApply: true } : {}),
107
131
  ...(dbSchema ? { schema: dbSchema } : {}),
108
132
  });
109
- console.log(`✓ Database schema reset (${dbSchema ?? "public"} schema dropped and recreated)`);
133
+ console.log(config.datasource.provider === "sqlite"
134
+ ? "✓ Database reset (all tables dropped and recreated)"
135
+ : `✓ Database schema reset (${dbSchema ?? "public"} schema dropped and recreated)`);
110
136
  if (options.skipApply) {
111
137
  console.log(" Skipped re-applying migrations (--skip-apply)");
112
138
  }
@@ -127,7 +153,7 @@ program
127
153
  console.error("--steps must be a positive integer");
128
154
  process.exit(1);
129
155
  }
130
- const reverted = await migrateDown(pool, migrationsDir, {
156
+ const reverted = await migrateDown(client, dialect, migrationsDir, {
131
157
  steps,
132
158
  outDir,
133
159
  ...(dbSchema ? { schema: dbSchema } : {}),
@@ -144,7 +170,7 @@ program
144
170
  return;
145
171
  }
146
172
  if (subcommand === "deploy" || subcommand === "dev") {
147
- const applied = await migrateDeploy(pool, migrationsDir, dbSchema);
173
+ const applied = await migrateDeploy(client, dialect, migrationsDir, dbSchema);
148
174
  if (applied.length === 0) {
149
175
  console.log("No pending migrations");
150
176
  }
@@ -172,7 +198,7 @@ program
172
198
  console.warn(`Warning: ${warning}`);
173
199
  }
174
200
  if (migrationName) {
175
- const newlyApplied = await migrateDeploy(pool, join(outDir, "migrations"), dbSchema);
201
+ const newlyApplied = await migrateDeploy(client, dialect, join(outDir, "migrations"), dbSchema);
176
202
  if (newlyApplied.length > 0) {
177
203
  console.log(`Applied new migration: ${newlyApplied.join(", ")}`);
178
204
  }
@@ -184,7 +210,7 @@ program
184
210
  process.exit(1);
185
211
  }
186
212
  finally {
187
- await pool.end();
213
+ await close();
188
214
  }
189
215
  });
190
216
  program
@@ -196,8 +222,10 @@ program
196
222
  .action(async (subcommand, options) => {
197
223
  const cwd = process.cwd();
198
224
  const config = await loadConfig(cwd);
199
- const pool = new Pool({ connectionString: config.datasource.url });
200
- const dbSchema = config.datasource.schema;
225
+ const dbSchema = config.datasource.provider === "postgresql"
226
+ ? config.datasource.schema
227
+ : undefined;
228
+ const { client, dialect, close } = connectDb(config);
201
229
  try {
202
230
  if (subcommand === "push") {
203
231
  const outDir = resolve(cwd, config.out);
@@ -207,7 +235,7 @@ program
207
235
  console.error("Run neoorm generate first");
208
236
  process.exit(1);
209
237
  }
210
- const { appliedStatements, destructiveBlocked } = await dbPush(pool, manifest, {
238
+ const { appliedStatements, destructiveBlocked } = await dbPush(client, dialect, manifest, {
211
239
  ...(options.acceptDataLoss
212
240
  ? { acceptDataLoss: true }
213
241
  : {}),
@@ -225,7 +253,9 @@ program
225
253
  }
226
254
  }
227
255
  else if (subcommand === "pull") {
228
- const content = await introspectPostgres(pool, dbSchema ? { schema: dbSchema } : {});
256
+ const content = config.datasource.provider === "sqlite"
257
+ ? await introspectSqlite(client)
258
+ : await introspectPostgres(client, dbSchema ? { schema: dbSchema } : {});
229
259
  const outputPath = resolve(cwd, options.output ?? "schema.pulled.ts");
230
260
  await writeFile(outputPath, content, "utf-8");
231
261
  console.log(`Schema written to ${outputPath}`);
@@ -236,7 +266,7 @@ program
236
266
  }
237
267
  }
238
268
  finally {
239
- await pool.end();
269
+ await close();
240
270
  }
241
271
  });
242
272
  program.parse();
@@ -1 +1 @@
1
- {"version":3,"file":"neoorm.js","sourceRoot":"","sources":["../../src/bin/neoorm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neoorm.js","sourceRoot":"","sources":["../../src/bin/neoorm.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EACN,qBAAqB,EACrB,kBAAkB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EACN,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,GACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAQ/D,SAAS,SAAS,CACjB,MAA8C;IAE9C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO;YACN,MAAM;YACN,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;SAC3B,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO;QACN,MAAM;QACN,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;KACvB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAE9E,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CACX,8EAA8E,CAC9E;KACA,MAAM,CAAC,SAAS,EAAE,mCAAmC,CAAC;KACtD,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,CAAC;KAC5D,MAAM,CAAC,aAAa,EAAE,4BAA4B,EAAE,UAAU,CAAC;KAC/D,MAAM,CACN,KAAK,EAAE,OAAyD,EAAE,EAAE;IACnE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC5B,GAAG;YACH,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,MAAM,EAAE,OAAO,CAAC,GAAG;YACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,qBAAqB,CACvC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,MAAM,CACb,EAAE,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,mBAAmB,CACrC,GAAG,EACH,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,GAAG,CACX,EAAE,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CACD,CAAC;AAEH,OAAO;KACL,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CACN,oBAAoB,EACpB,4DAA4D,CAC5D;KACA,MAAM,CAAC,KAAK,EAAE,OAAqC,EAAE,EAAE;IACvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;IAE1C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CACrD,UAAU,EACV,MAAM,EACN;QACC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;YACzB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;YACtC,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CACD,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;AACF,CAAC,CAAC,CAAC;AAEJ,OAAO;KACL,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,gBAAgB,CAAC;KAC7B,QAAQ,CAAC,cAAc,EAAE,sCAAsC,CAAC;KAChE,MAAM,CACN,oBAAoB,EACpB,4DAA4D,CAC5D;KACA,MAAM,CACN,SAAS,EACT,+DAA+D,CAC/D;KACA,MAAM,CACN,cAAc,EACd,6DAA6D,CAC7D;KACA,MAAM,CAAC,aAAa,EAAE,0CAA0C,EAAE,GAAG,CAAC;KACtE,MAAM,CACN,KAAK,EACJ,UAAU,EACV,OAKC,EACA,EAAE;IACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,QAAQ,GACb,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,YAAY;QAC1C,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;QAC1B,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAErD,IAAI,CAAC;QACJ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,aAAa,CACjC,MAAM,EACN,OAAO,EACP,aAAa,EACb,QAAQ,CACR,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,mBAAmB,CACrC,MAAM,EACN,aAAa,CACb,EAAE,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,OAAO;QACR,CAAC;QAED,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,YAAY,CACvC,MAAM,EACN,OAAO,EACP,aAAa,EACb;gBACC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;gBAC7B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzC,CACD,CAAC;YACF,OAAO,CAAC,GAAG,CACV,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ;gBACtC,CAAC,CAAC,qDAAqD;gBACvD,CAAC,CAAC,4BAA4B,QAAQ,IAAI,QAAQ,gCAAgC,CACnF,CAAC;YACF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CACV,iDAAiD,CACjD,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CACV,gBAAgB,SAAS,CAAC,MAAM,gBAAgB,CAChD,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACF,CAAC;YACD,OAAO;QACR,CAAC;QAED,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE;gBAClE,KAAK;gBACL,MAAM;gBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CACV,eAAe,QAAQ,CAAC,MAAM,gBAAgB,CAC9C,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;YACD,OAAO;QACR,CAAC;QAED,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,MAAM,aAAa,CAClC,MAAM,EACN,OAAO,EACP,aAAa,EACb,QAAQ,CACR,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,gBAAgB,CAAC,CAAC;gBACvD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;YAED,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,GACzC,MAAM,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE;oBAC5C,GAAG,CAAC,OAAO,CAAC,cAAc;wBACzB,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;wBAC1B,CAAC,CAAC,EAAE,CAAC;oBACN,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;wBACzB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;wBACtC,CAAC,CAAC,EAAE,CAAC;oBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzC,CAAC,CAAC;gBACJ,KAAK,MAAM,IAAI,IAAI,qBAAqB,CACvC,OAAO,EACP,MAAM,CACN,EAAE,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAChC,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,aAAa,EAAE,CAAC;oBACnB,MAAM,YAAY,GAAG,MAAM,aAAa,CACvC,MAAM,EACN,OAAO,EACP,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAC1B,QAAQ,CACR,CAAC;oBACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,OAAO,CAAC,GAAG,CACV,0BAA0B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnD,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;YACD,OAAO;QACR,CAAC;QAED,OAAO,CAAC,KAAK,CACZ,4DAA4D,CAC5D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;YAAS,CAAC;QACV,MAAM,KAAK,EAAE,CAAC;IACf,CAAC;AACF,CAAC,CACD,CAAC;AAEH,OAAO;KACL,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,oBAAoB,CAAC;KACjC,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC;KACvC,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,CAAC;KACzE,MAAM,CACN,oBAAoB,EACpB,+DAA+D,CAC/D;KACA,MAAM,CACN,KAAK,EACJ,UAAU,EACV,OAAsD,EACrD,EAAE;IACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,QAAQ,GACb,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,YAAY;QAC1C,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;QAC1B,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAErD,IAAI,CAAC;QACJ,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CACpC,wBAAwB,CACxB,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAC9C,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;gBACvC,GAAG,CAAC,OAAO,CAAC,cAAc;oBACzB,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE;oBAC1B,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzC,CAAC,CAAC;YACJ,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,IACC,iBAAiB,KAAK,CAAC;gBACvB,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAC9B,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CACV,2BAA2B,iBAAiB,wBAAwB,CACpE,CAAC;YACH,CAAC;QACF,CAAC;aAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAClC,MAAM,OAAO,GACZ,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ;gBACtC,CAAC,CAAC,MAAM,gBAAgB,CAAC,MAAM,CAAC;gBAChC,CAAC,CAAC,MAAM,kBAAkB,CACxB,MAAM,EACN,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CACpC,CAAC;YACL,MAAM,UAAU,GAAG,OAAO,CACzB,GAAG,EACH,OAAO,CAAC,MAAM,IAAI,kBAAkB,CACpC,CAAC;YACF,MAAM,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;YAAS,CAAC;QACV,MAAM,KAAK,EAAE,CAAC;IACf,CAAC;AACF,CAAC,CACD,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,14 +1,14 @@
1
- import type { DestructiveChange, Manifest, ManifestColumn, ManifestDiff, TableDiff } from "../dialect/types.js";
2
- export declare function columnSqlType(col: ManifestColumn, manifest?: Manifest): string;
3
- export declare function columnsEqual(a: ManifestColumn, b: ManifestColumn, manifest?: Manifest): boolean;
1
+ import type { DestructiveChange, Dialect, Manifest, ManifestColumn, ManifestDiff, TableDiff } from "../dialect/types.js";
2
+ export declare function columnSqlType(col: ManifestColumn, manifest?: Manifest, dialect?: Dialect): string;
3
+ export declare function columnsEqual(a: ManifestColumn, b: ManifestColumn, manifest?: Manifest, dialect?: Dialect): boolean;
4
4
  export declare function buildMigrationSql(tableDiffs: TableDiff[], extensions?: string[], manifest?: Manifest, newEnumTypes?: Record<string, {
5
5
  values: readonly string[];
6
- }>): string[];
7
- export declare function diffManifest(prev: Manifest | null, next: Manifest): ManifestDiff;
6
+ }>, dialect?: Dialect): string[];
7
+ export declare function diffManifest(prev: Manifest | null, next: Manifest, dialect?: Dialect): ManifestDiff;
8
8
  export declare function emptyManifest(): Manifest;
9
9
  /** SQL to roll back a forward migration (next → prev). */
10
- export declare function buildDownSql(prev: Manifest | null, next: Manifest): string[];
11
- export declare function resolveMigrationSql(diff: ManifestDiff, prev: Manifest | null, next: Manifest, acceptDataLoss: boolean): {
10
+ export declare function buildDownSql(prev: Manifest | null, next: Manifest, dialect?: Dialect): string[];
11
+ export declare function resolveMigrationSql(diff: ManifestDiff, prev: Manifest | null, next: Manifest, acceptDataLoss: boolean, dialect?: Dialect): {
12
12
  sql: string[];
13
13
  blocked: DestructiveChange[];
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"diff-manifest.d.ts","sourceRoot":"","sources":["../../src/codegen/diff-manifest.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEX,iBAAiB,EAEjB,QAAQ,EACR,cAAc,EACd,YAAY,EAGZ,SAAS,EACT,MAAM,qBAAqB,CAAC;AAQ7B,wBAAgB,aAAa,CAC5B,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,QAAQ,GACjB,MAAM,CAER;AAuCD,wBAAgB,YAAY,CAC3B,CAAC,EAAE,cAAc,EACjB,CAAC,EAAE,cAAc,EACjB,QAAQ,CAAC,EAAE,QAAQ,GACjB,OAAO,CAcT;AA4cD,wBAAgB,iBAAiB,CAChC,UAAU,EAAE,SAAS,EAAE,EACvB,UAAU,GAAE,MAAM,EAAO,EACzB,QAAQ,CAAC,EAAE,QAAQ,EACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,GAC1D,MAAM,EAAE,CAqDV;AAoCD,wBAAgB,YAAY,CAC3B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,QAAQ,GACZ,YAAY,CAuEd;AAED,wBAAgB,aAAa,IAAI,QAAQ,CAMxC;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAK5E;AAED,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,OAAO,GACrB;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAkDjD;AAcD,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,YAAY,GAChB,MAAM,EAAE,CA8DV;AAED,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,iBAAiB,EAAE,GAC9B,MAAM,EAAE,CAyBV"}
1
+ {"version":3,"file":"diff-manifest.d.ts","sourceRoot":"","sources":["../../src/codegen/diff-manifest.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEX,iBAAiB,EACjB,OAAO,EAEP,QAAQ,EACR,cAAc,EACd,YAAY,EAGZ,SAAS,EACT,MAAM,qBAAqB,CAAC;AAQ7B,wBAAgB,aAAa,CAC5B,GAAG,EAAE,cAAc,EACnB,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,GAAE,OAAyB,GAChC,MAAM,CAER;AA+CD,wBAAgB,YAAY,CAC3B,CAAC,EAAE,cAAc,EACjB,CAAC,EAAE,cAAc,EACjB,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,GAAE,OAAyB,GAChC,OAAO,CAeT;AAsdD,wBAAgB,iBAAiB,CAChC,UAAU,EAAE,SAAS,EAAE,EACvB,UAAU,GAAE,MAAM,EAAO,EACzB,QAAQ,CAAC,EAAE,QAAQ,EACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,EAC5D,OAAO,GAAE,OAAyB,GAChC,MAAM,EAAE,CA2DV;AAoCD,wBAAgB,YAAY,CAC3B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,QAAQ,EACd,OAAO,GAAE,OAAyB,GAChC,YAAY,CA2Ed;AAED,wBAAgB,aAAa,IAAI,QAAQ,CAMxC;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAC3B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,QAAQ,EACd,OAAO,GAAE,OAAyB,GAChC,MAAM,EAAE,CAKV;AAED,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,OAAO,EACvB,OAAO,GAAE,OAAyB,GAChC;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAkDjD;AAcD,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,YAAY,GAChB,MAAM,EAAE,CA8DV;AAED,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,iBAAiB,EAAE,GAC9B,MAAM,EAAE,CAyBV"}
@@ -1,19 +1,22 @@
1
- import { canAutoCastType, DEFAULT_PG_SCHEMA, emitCreateEnumTypes, postgresDialect, resolveColumnSqlType, resolveFkConstraintName, resolveIndexSqlName, resolveUniqueConstraintName, } from "../dialect/postgres.js";
1
+ import { canAutoCastType, DEFAULT_PG_SCHEMA, postgresDialect, resolveFkConstraintName, resolveIndexSqlName, resolveUniqueConstraintName, } from "../dialect/postgres.js";
2
2
  function tablesBySqlName(manifest) {
3
3
  return new Map(Object.values(manifest.tables).map((table) => [table.sqlName, table]));
4
4
  }
5
- export function columnSqlType(col, manifest) {
6
- return resolveColumnSqlType(col, manifest);
5
+ export function columnSqlType(col, manifest, dialect = postgresDialect) {
6
+ return dialect.columnType(col, manifest);
7
7
  }
8
- function isUnsafeTypeChange(alter, manifest) {
8
+ function isUnsafeTypeChange(alter, manifest, dialect = postgresDialect) {
9
9
  if (!alter.setType || alter.fromSqlType === undefined) {
10
10
  return false;
11
11
  }
12
- return !canAutoCastType(alter.fromSqlType, columnSqlType(alter.setType, manifest));
12
+ return !canAutoCastType(alter.fromSqlType, columnSqlType(alter.setType, manifest, dialect));
13
13
  }
14
14
  function effectiveNullable(col) {
15
15
  return col.primary ? false : col.nullable;
16
16
  }
17
+ function onDeleteEqual(a, b) {
18
+ return (a ?? "no action") === (b ?? "no action");
19
+ }
17
20
  function isColumnUniqueIndex(table, index) {
18
21
  if (!index.unique || index.columns.length !== 1) {
19
22
  return false;
@@ -29,7 +32,7 @@ function defaultsEqual(a, b) {
29
32
  function typeOptionsEqual(a, b) {
30
33
  return JSON.stringify(a ?? {}) === JSON.stringify(b ?? {});
31
34
  }
32
- export function columnsEqual(a, b, manifest) {
35
+ export function columnsEqual(a, b, manifest, dialect = postgresDialect) {
33
36
  return (a.kind === b.kind &&
34
37
  effectiveNullable(a) === effectiveNullable(b) &&
35
38
  a.unique === b.unique &&
@@ -38,9 +41,10 @@ export function columnsEqual(a, b, manifest) {
38
41
  defaultsEqual(a, b) &&
39
42
  typeOptionsEqual(a.typeOptions, b.typeOptions) &&
40
43
  a.checkExpression === b.checkExpression &&
41
- columnSqlType(a, manifest) === columnSqlType(b, manifest) &&
44
+ columnSqlType(a, manifest, dialect) ===
45
+ columnSqlType(b, manifest, dialect) &&
42
46
  (a.kind !== "fk" ||
43
- (a.fkTarget === b.fkTarget && a.onDelete === b.onDelete)));
47
+ (a.fkTarget === b.fkTarget && onDeleteEqual(a.onDelete, b.onDelete))));
44
48
  }
45
49
  function isFkColumn(c) {
46
50
  return c.kind === "fk" && c.fkTarget !== undefined;
@@ -117,7 +121,7 @@ function diffForeignKeys(prevTable, nextTable) {
117
121
  continue;
118
122
  }
119
123
  if (prevCol.fkTarget !== nextCol.fkTarget ||
120
- prevCol.onDelete !== nextCol.onDelete) {
124
+ !onDeleteEqual(prevCol.onDelete, nextCol.onDelete)) {
121
125
  const add = {
122
126
  target: nextCol.fkTarget,
123
127
  };
@@ -146,13 +150,13 @@ function diffForeignKeys(prevTable, nextTable) {
146
150
  }
147
151
  return changes;
148
152
  }
149
- function buildColumnAlter(prevCol, nextCol, prevTable, alterSqlName, prevManifest, nextManifest) {
153
+ function buildColumnAlter(prevCol, nextCol, prevTable, alterSqlName, prevManifest, nextManifest, dialect = postgresDialect) {
150
154
  const alter = { sqlName: alterSqlName };
151
155
  let hasAlter = false;
152
- if (columnSqlType(prevCol, prevManifest) !==
153
- columnSqlType(nextCol, nextManifest)) {
156
+ if (columnSqlType(prevCol, prevManifest, dialect) !==
157
+ columnSqlType(nextCol, nextManifest, dialect)) {
154
158
  alter.setType = { ...nextCol, sqlName: alterSqlName };
155
- alter.fromSqlType = columnSqlType(prevCol, prevManifest);
159
+ alter.fromSqlType = columnSqlType(prevCol, prevManifest, dialect);
156
160
  hasAlter = true;
157
161
  }
158
162
  if (effectiveNullable(prevCol) !== effectiveNullable(nextCol)) {
@@ -186,7 +190,7 @@ function buildColumnAlter(prevCol, nextCol, prevTable, alterSqlName, prevManifes
186
190
  }
187
191
  return hasAlter ? alter : null;
188
192
  }
189
- function diffColumns(prevTable, nextTable, prevManifest, nextManifest) {
193
+ function diffColumns(prevTable, nextTable, prevManifest, nextManifest, dialect = postgresDialect) {
190
194
  const prevByTs = new Map(prevTable.columns.map((c) => [c.tsName, c]));
191
195
  const nextByTs = new Map(nextTable.columns.map((c) => [c.tsName, c]));
192
196
  const prevBySql = new Map(prevTable.columns.map((c) => [c.sqlName, c]));
@@ -230,14 +234,14 @@ function diffColumns(prevTable, nextTable, prevManifest, nextManifest) {
230
234
  const alterSqlName = prevCol.sqlName !== nextCol.sqlName
231
235
  ? nextCol.sqlName
232
236
  : prevCol.sqlName;
233
- const alter = buildColumnAlter(prevCol, nextCol, prevTable, alterSqlName, prevManifest, nextManifest);
237
+ const alter = buildColumnAlter(prevCol, nextCol, prevTable, alterSqlName, prevManifest, nextManifest, dialect);
234
238
  if (alter) {
235
239
  alterColumns.push(alter);
236
240
  }
237
241
  }
238
242
  return { addColumns, dropColumns, renameColumns, alterColumns };
239
243
  }
240
- function diffTable(prevTable, nextTable, prevManifest, nextManifest) {
244
+ function diffTable(prevTable, nextTable, prevManifest, nextManifest, dialect = postgresDialect) {
241
245
  if (!prevTable && nextTable) {
242
246
  return {
243
247
  table: nextTable,
@@ -255,7 +259,7 @@ function diffTable(prevTable, nextTable, prevManifest, nextManifest) {
255
259
  if (!prevTable || !nextTable) {
256
260
  return null;
257
261
  }
258
- const columnDiff = diffColumns(prevTable, nextTable, prevManifest, nextManifest);
262
+ const columnDiff = diffColumns(prevTable, nextTable, prevManifest, nextManifest, dialect);
259
263
  const { addColumns, dropColumns, renameColumns, alterColumns } = columnDiff;
260
264
  const { addIndexes, dropIndexes } = diffIndexes(prevTable, nextTable);
261
265
  const fkChanges = diffForeignKeys(prevTable, nextTable);
@@ -281,7 +285,7 @@ function diffTable(prevTable, nextTable, prevManifest, nextManifest) {
281
285
  ...(fkChanges.length > 0 ? { fkChanges } : {}),
282
286
  };
283
287
  }
284
- function classifyDestructive(diff, prevTable) {
288
+ function classifyDestructive(diff, prevTable, dialect = postgresDialect) {
285
289
  const changes = [];
286
290
  const tableName = diff.table.sqlName;
287
291
  const manifest = diff.manifest;
@@ -290,7 +294,7 @@ function classifyDestructive(diff, prevTable) {
290
294
  kind: "drop_table",
291
295
  table: tableName,
292
296
  detail: `Drop table "${tableName}"`,
293
- sql: postgresDialect.emitDropTable(diff.table),
297
+ sql: dialect.emitDropTable(diff.table),
294
298
  });
295
299
  return changes;
296
300
  }
@@ -299,13 +303,13 @@ function classifyDestructive(diff, prevTable) {
299
303
  kind: "drop_column",
300
304
  table: tableName,
301
305
  detail: `Drop column "${tableName}"."${col}"`,
302
- sql: `ALTER TABLE ${postgresDialect.quoteIdentifier(tableName)} DROP COLUMN ${postgresDialect.quoteIdentifier(col)};`,
306
+ sql: `ALTER TABLE ${dialect.quoteIdentifier(tableName)} DROP COLUMN ${dialect.quoteIdentifier(col)};`,
303
307
  });
304
308
  }
305
309
  for (const alter of diff.alterColumns ?? []) {
306
- if (alter.setType && isUnsafeTypeChange(alter, manifest)) {
307
- for (const sql of postgresDialect.emitAlterColumn(diff.table, alter, manifest)) {
308
- if (sql.includes(" TYPE ")) {
310
+ if (alter.setType && isUnsafeTypeChange(alter, manifest, dialect)) {
311
+ for (const sql of dialect.emitAlterColumn(diff.table, alter, manifest)) {
312
+ if (sql.includes(" TYPE ") || sql.includes("CREATE TABLE ")) {
309
313
  changes.push({
310
314
  kind: "alter_column_type_manual",
311
315
  table: tableName,
@@ -335,7 +339,7 @@ function classifyDestructive(diff, prevTable) {
335
339
  kind: "drop_index",
336
340
  table: tableName,
337
341
  detail: `Drop index "${indexName}" on "${tableName}"`,
338
- sql: postgresDialect.emitDropIndex(indexName),
342
+ sql: dialect.emitDropIndex(indexName),
339
343
  });
340
344
  }
341
345
  for (const change of diff.fkChanges ?? []) {
@@ -344,18 +348,18 @@ function classifyDestructive(diff, prevTable) {
344
348
  kind: "drop_fk",
345
349
  table: tableName,
346
350
  detail: `Drop foreign key on "${tableName}"."${change.column}"`,
347
- sql: postgresDialect.emitDropConstraint(tableName, change.drop),
351
+ sql: dialect.emitDropConstraint(tableName, change.drop),
348
352
  });
349
353
  }
350
354
  }
351
355
  return changes;
352
356
  }
353
- function stripDestructiveFromDiff(diff) {
357
+ function stripDestructiveFromDiff(diff, dialect = postgresDialect) {
354
358
  if (diff.drop) {
355
359
  return null;
356
360
  }
357
361
  const fkChanges = diff.fkChanges?.filter((change) => !change.drop);
358
- const alterColumns = diff.alterColumns?.filter((alter) => !alter.setType || !isUnsafeTypeChange(alter, diff.manifest));
362
+ const alterColumns = diff.alterColumns?.filter((alter) => !alter.setType || !isUnsafeTypeChange(alter, diff.manifest, dialect));
359
363
  const stripped = {
360
364
  table: diff.table,
361
365
  ...(diff.create ? { create: diff.create } : {}),
@@ -379,41 +383,47 @@ function stripDestructiveFromDiff(diff) {
379
383
  (stripped.fkChanges?.length ?? 0) > 0;
380
384
  return hasChanges ? stripped : null;
381
385
  }
382
- export function buildMigrationSql(tableDiffs, extensions = [], manifest, newEnumTypes) {
386
+ export function buildMigrationSql(tableDiffs, extensions = [], manifest, newEnumTypes, dialect = postgresDialect) {
383
387
  const sql = [];
388
+ const isSqlite = dialect.name === "sqlite";
384
389
  const schemaNames = new Set(Object.values(manifest?.tables ?? {})
385
390
  .map((table) => table.schemaName)
386
391
  .filter((schema) => schema !== undefined && schema !== DEFAULT_PG_SCHEMA));
387
392
  for (const schema of schemaNames) {
388
- sql.push(postgresDialect.emitCreateSchema(schema));
393
+ const schemaSql = dialect.emitCreateSchema(schema);
394
+ if (schemaSql) {
395
+ sql.push(schemaSql);
396
+ }
389
397
  }
390
398
  if (extensions.length > 0) {
391
- sql.push(...postgresDialect.emitCreateExtensions(extensions));
399
+ sql.push(...dialect.emitCreateExtensions(extensions));
392
400
  }
393
401
  if (newEnumTypes && Object.keys(newEnumTypes).length > 0) {
394
- sql.push(...emitCreateEnumTypes(newEnumTypes));
402
+ sql.push(...dialect.emitCreateEnumTypes(newEnumTypes));
395
403
  }
396
404
  const alterDiffs = tableDiffs.filter((d) => !d.create && !d.drop);
397
405
  const dropDiffs = tableDiffs.filter((d) => d.drop);
398
406
  const createDiffs = tableDiffs.filter((d) => d.create);
399
407
  for (const diff of alterDiffs) {
400
- sql.push(...postgresDialect.emitAlterTable(diff.table, diff));
408
+ sql.push(...dialect.emitAlterTable(diff.table, diff));
401
409
  }
402
410
  for (const diff of dropDiffs) {
403
- sql.push(postgresDialect.emitDropTable(diff.table));
411
+ sql.push(dialect.emitDropTable(diff.table));
404
412
  }
405
413
  for (const diff of createDiffs) {
406
- sql.push(postgresDialect.emitCreateTable(diff.table, {
407
- inlineForeignKeys: false,
414
+ sql.push(dialect.emitCreateTable(diff.table, {
415
+ inlineForeignKeys: isSqlite,
408
416
  ...(manifest ? { manifest } : {}),
409
417
  }));
410
418
  for (const index of diff.table.indexes) {
411
419
  if (!index.unique) {
412
- sql.push(postgresDialect.emitCreateIndex(diff.table, index));
420
+ sql.push(dialect.emitCreateIndex(diff.table, index));
413
421
  }
414
422
  }
415
- for (const col of fkColumns(diff.table)) {
416
- sql.push(postgresDialect.emitAddForeignKey(diff.table, col));
423
+ if (!isSqlite) {
424
+ for (const col of fkColumns(diff.table)) {
425
+ sql.push(dialect.emitAddForeignKey(diff.table, col));
426
+ }
417
427
  }
418
428
  }
419
429
  return sql;
@@ -441,26 +451,29 @@ function diffEnumTypes(prev, next) {
441
451
  }
442
452
  return { newEnumTypes, destructive };
443
453
  }
444
- export function diffManifest(prev, next) {
454
+ export function diffManifest(prev, next, dialect = postgresDialect) {
445
455
  if (!prev) {
446
456
  const sql = [];
447
457
  const schemaNames = new Set(Object.values(next.tables)
448
458
  .map((table) => table.schemaName)
449
459
  .filter((schema) => schema !== undefined && schema !== DEFAULT_PG_SCHEMA));
450
460
  for (const schema of schemaNames) {
451
- sql.push(postgresDialect.emitCreateSchema(schema));
461
+ const schemaSql = dialect.emitCreateSchema(schema);
462
+ if (schemaSql) {
463
+ sql.push(schemaSql);
464
+ }
452
465
  }
453
466
  const extensions = next.extensions ?? [];
454
- sql.push(...postgresDialect.emitCreateExtensions(extensions));
467
+ sql.push(...dialect.emitCreateExtensions(extensions));
455
468
  if (next.enumTypes) {
456
- sql.push(...emitCreateEnumTypes(next.enumTypes));
469
+ sql.push(...dialect.emitCreateEnumTypes(next.enumTypes));
457
470
  }
458
471
  const tables = Object.values(next.tables);
459
472
  for (const table of tables) {
460
- sql.push(postgresDialect.emitCreateTable(table, { manifest: next }));
473
+ sql.push(dialect.emitCreateTable(table, { manifest: next }));
461
474
  for (const index of table.indexes) {
462
475
  if (!index.unique) {
463
- sql.push(postgresDialect.emitCreateIndex(table, index));
476
+ sql.push(dialect.emitCreateIndex(table, index));
464
477
  }
465
478
  }
466
479
  }
@@ -477,14 +490,14 @@ export function diffManifest(prev, next) {
477
490
  for (const sqlName of allSqlNames) {
478
491
  const prevTable = prevBySql.get(sqlName);
479
492
  const nextTable = nextBySql.get(sqlName);
480
- const diff = diffTable(prevTable, nextTable, prev, next);
493
+ const diff = diffTable(prevTable, nextTable, prev, next, dialect);
481
494
  if (!diff)
482
495
  continue;
483
496
  tableDiffs.push(diff);
484
- destructive.push(...classifyDestructive(diff, prevTable));
497
+ destructive.push(...classifyDestructive(diff, prevTable, dialect));
485
498
  }
486
499
  destructive.push(...enumDestructive);
487
- const sql = buildMigrationSql(tableDiffs, newExtensions, next, newEnumTypes);
500
+ const sql = buildMigrationSql(tableDiffs, newExtensions, next, newEnumTypes, dialect);
488
501
  return { isInitial: false, sql, destructive };
489
502
  }
490
503
  export function emptyManifest() {
@@ -495,13 +508,13 @@ export function emptyManifest() {
495
508
  };
496
509
  }
497
510
  /** SQL to roll back a forward migration (next → prev). */
498
- export function buildDownSql(prev, next) {
511
+ export function buildDownSql(prev, next, dialect = postgresDialect) {
499
512
  const target = prev ?? emptyManifest();
500
- const diff = diffManifest(next, target);
501
- const { sql } = resolveMigrationSql(diff, next, target, true);
513
+ const diff = diffManifest(next, target, dialect);
514
+ const { sql } = resolveMigrationSql(diff, next, target, true, dialect);
502
515
  return sql;
503
516
  }
504
- export function resolveMigrationSql(diff, prev, next, acceptDataLoss) {
517
+ export function resolveMigrationSql(diff, prev, next, acceptDataLoss, dialect = postgresDialect) {
505
518
  if (acceptDataLoss) {
506
519
  const blocked = diff.destructive.filter((change) => change.kind === "alter_column_type_manual" ||
507
520
  change.kind === "alter_enum_manual");
@@ -527,10 +540,10 @@ export function resolveMigrationSql(diff, prev, next, acceptDataLoss) {
527
540
  for (const sqlName of allSqlNames) {
528
541
  const prevTable = prevBySql.get(sqlName);
529
542
  const nextTable = nextBySql.get(sqlName);
530
- const tableDiff = diffTable(prevTable, nextTable, prev, next);
543
+ const tableDiff = diffTable(prevTable, nextTable, prev, next, dialect);
531
544
  if (!tableDiff)
532
545
  continue;
533
- const stripped = stripDestructiveFromDiff(tableDiff);
546
+ const stripped = stripDestructiveFromDiff(tableDiff, dialect);
534
547
  if (stripped) {
535
548
  safeDiffs.push(stripped);
536
549
  }
@@ -538,7 +551,7 @@ export function resolveMigrationSql(diff, prev, next, acceptDataLoss) {
538
551
  const prevExtensions = new Set(prev.extensions ?? []);
539
552
  const newExtensions = (next.extensions ?? []).filter((ext) => !prevExtensions.has(ext));
540
553
  return {
541
- sql: buildMigrationSql(safeDiffs, newExtensions, next),
554
+ sql: buildMigrationSql(safeDiffs, newExtensions, next, undefined, dialect),
542
555
  blocked: diff.destructive,
543
556
  };
544
557
  }