qubu 0.4.2 → 0.5.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 (61) hide show
  1. package/dist/{canonical-BXUguqfo.mjs → canonical-DMvR9yBe.mjs} +4 -4
  2. package/dist/codegen.d.mts +1 -1
  3. package/dist/codegen.mjs +7 -4
  4. package/dist/{column-hqKr7-1I.mjs → column-DmazTL67.mjs} +15 -2
  5. package/dist/{complete-WYyVozgK.mjs → complete-DP7pliuY.mjs} +6 -6
  6. package/dist/{complete-types-IjEn5VPN.d.mts → complete-types-CY0KbzNw.d.mts} +1 -1
  7. package/dist/core.d.mts +1 -1
  8. package/dist/core.mjs +3 -3
  9. package/dist/diff.d.mts +201 -1
  10. package/dist/diff.mjs +8 -8
  11. package/dist/{index-1DpA3mUh.d.mts → index-C-480HmV.d.mts} +12 -12
  12. package/dist/index.d.mts +2 -2
  13. package/dist/index.mjs +226 -44
  14. package/dist/introspection.d.mts +2 -2
  15. package/dist/introspection.mjs +24 -13
  16. package/dist/mysql.d.mts +2 -2
  17. package/dist/{on-conflict-hfPW0KmQ.mjs → on-conflict-jPsl9l0K.mjs} +6 -3
  18. package/dist/postgres.d.mts +2 -2
  19. package/dist/postgres.mjs +3 -3
  20. package/dist/{registry-BRMLYwDp.mjs → registry-BGqa05et.mjs} +2 -2
  21. package/dist/{relational-BZ3WDPzC.mjs → relational-x3BDVX9e.mjs} +2 -2
  22. package/dist/schema.d.mts +2 -2
  23. package/dist/schema.mjs +5 -5
  24. package/dist/{snapshot-C-W65HEd.mjs → snapshot-BSraiLtH.mjs} +2 -2
  25. package/dist/snapshot.d.mts +4 -4
  26. package/dist/snapshot.mjs +585 -5
  27. package/dist/{source-BcS2AsIg.mjs → source-C4Vmu5bb.mjs} +1 -1
  28. package/dist/{sqlite-Cg0nwYEH.mjs → sqlite-CsIUtZ2Q.mjs} +6 -6
  29. package/dist/sqlite.d.mts +30 -3
  30. package/dist/sqlite.mjs +28 -2
  31. package/dist/{table-Bp5irMSj.mjs → table-DLQ7YWth.mjs} +2 -2
  32. package/dist/{types-BK1COGZe.d.mts → types-C0VkiwpR.d.mts} +146 -41
  33. package/dist/{types-JSZHpUEj.d.mts → types-CTCqtFlS.d.mts} +1 -1
  34. package/dist/{types-JM3FcAnX.mjs → types-CTENnDh9.mjs} +2 -2
  35. package/dist/{value-Bi71Agyf.mjs → value-BEEj_Ayd.mjs} +1 -1
  36. package/dist/vite/ambient.d.ts +6 -0
  37. package/docs/config.json +1 -0
  38. package/docs/dialects-and-execution.md +47 -0
  39. package/docs/guides/drizzle.md +2 -1
  40. package/docs/index.md +6 -2
  41. package/docs/migrations/adapters.md +70 -0
  42. package/docs/migrations/artifacts-and-policy.md +123 -0
  43. package/docs/migrations/index.md +46 -0
  44. package/docs/migrations/lotta-adoption.md +50 -0
  45. package/docs/migrations/operations.md +133 -0
  46. package/docs/migrations/recovery.md +121 -0
  47. package/docs/reference/introspection-support.md +1 -1
  48. package/docs/reference/supported-surface.md +59 -44
  49. package/docs/schema/catalog-model.md +1 -1
  50. package/docs/schema/columns-and-writes.md +14 -0
  51. package/docs/schema/ddl-emission.md +15 -10
  52. package/docs/schema/introspection.md +4 -3
  53. package/docs/schema/migration-plans.md +6 -6
  54. package/docs/schema/snapshots.md +2 -2
  55. package/package.json +5 -14
  56. package/dist/ddl.d.mts +0 -118
  57. package/dist/ddl.mjs +0 -1119
  58. package/dist/index-CPvfEheG.d.mts +0 -202
  59. package/dist/migration.d.mts +0 -214
  60. package/dist/migration.mjs +0 -1160
  61. package/dist/mysql-B_cYzzX2.mjs +0 -585
package/dist/index.mjs CHANGED
@@ -1,32 +1,44 @@
1
1
  import { a as assertDialectCapability } from "./json-Db7XRD91.mjs";
2
- import { c as render, n as call, o as cast, r as schemaCall, t as createClause } from "./types-JM3FcAnX.mjs";
2
+ import { c as render, n as call, o as cast, r as schemaCall, t as createClause } from "./types-CTENnDh9.mjs";
3
3
  import { n as queryValidationError, t as QueryValidationError } from "./errors-Dxv73YJu.mjs";
4
- import { $ as dateResultDecoder, B as isSchemaExpression, D as identityColumn, E as generatedColumn, H as makeSchemaExpression, J as parenthesize, K as fragment, L as resolveSqlNames, Q as createResultShape, R as snakeCaseIdentifier, T as externalGeneratedColumn, U as markExpressionCategory, V as makeExpression, W as markSchemaExpression, X as ResultDecodingError, Z as booleanResultDecoder, _ as numeric, at as timestampResultDecoder, b as timestamp, c as boolean, d as date, et as decodeResultRow, f as integer, g as nullable, h as nativeStorage, i as identifier, it as resultValueOf, l as column, m as nativeColumn, nt as resultShapeValue, o as bigint, p as json, q as isFragment, rt as resultValue, s as binary, t as createColumnReference, tt as jsonTextResultDecoder, v as portableStorage, w as externalDefault, x as uuid, y as text, z as isExpression } from "./column-hqKr7-1I.mjs";
5
- import { i as value, t as asValue } from "./value-Bi71Agyf.mjs";
6
- import { a as isDistinctFrom, c as lt, d as notLike, f as expressionOperand, i as gte, l as lte, m as renderOperands, n as eq, o as isNotDistinctFrom, p as isNullOperand, r as gt, s as like, u as ne } from "./relational-BZ3WDPzC.mjs";
4
+ import { $ as createResultShape, B as isExpression, D as generatedColumn, E as externalGeneratedColumn, G as markSchemaExpression, H as makeExpression, J as isFragment, O as identityColumn, Q as booleanResultDecoder, R as resolveSqlNames, S as uuid, T as externalDefault, U as makeSchemaExpression, V as isSchemaExpression, W as markExpressionCategory, Y as parenthesize, Z as ResultDecodingError, _ as nullable, at as resultValueOf, b as text, c as boolean, d as date, et as dateResultDecoder, f as encodeColumnParameter, g as nativeStorage, h as nativeColumn, i as identifier, it as resultValue, l as column, m as json, nt as jsonTextResultDecoder, o as bigint, ot as timestampResultDecoder, p as integer, q as fragment, rt as resultShapeValue, s as binary, t as createColumnReference, tt as decodeResultRow, v as numeric, x as timestamp, y as portableStorage, z as snakeCaseIdentifier } from "./column-DmazTL67.mjs";
5
+ import { i as value, t as asValue } from "./value-BEEj_Ayd.mjs";
6
+ import { a as isDistinctFrom, c as lt, d as notLike, f as expressionOperand, i as gte, l as lte, m as renderOperands, n as eq, o as isNotDistinctFrom, p as isNullOperand, r as gt, s as like, u as ne } from "./relational-x3BDVX9e.mjs";
7
7
  import { t as omit } from "./omit-OxV58AwX.mjs";
8
- import { r as exposeColumns, t as createSource } from "./source-BcS2AsIg.mjs";
9
- import { n as alias, r as lateral, t as table } from "./table-Bp5irMSj.mjs";
10
- import { C as index, S as unsafeSchemaSql, c as check, d as references, f as unique, i as schema, l as foreignKey, o as catalogCheck, p as uniqueConstraint, s as catalogForeignKey, u as primaryKey } from "./registry-BRMLYwDp.mjs";
8
+ import { r as exposeColumns, t as createSource } from "./source-C4Vmu5bb.mjs";
9
+ import { n as alias, r as lateral, t as table } from "./table-DLQ7YWth.mjs";
10
+ import { C as index, S as unsafeSchemaSql, c as check, d as references, f as unique, i as schema, l as foreignKey, o as catalogCheck, p as uniqueConstraint, s as catalogForeignKey, u as primaryKey } from "./registry-BGqa05et.mjs";
11
11
  //#region src/execution.ts
12
- function qubu(adapter) {
13
- const client = createClient(adapter);
12
+ function qubu(adapter, options = {}) {
13
+ const observation = createObservation(options.hooks);
14
+ const client = createClient(adapter, observation);
14
15
  if (!isTransactionalQueryAdapter(adapter)) return client;
15
16
  return Object.freeze({
16
17
  ...client,
17
- transaction(callback, options) {
18
- return adapter.transaction(async (transactionAdapter) => callback(createClient(transactionAdapter)), options);
18
+ async transaction(callback, transactionOptions) {
19
+ const active = startTransactionOperation(observation, transactionOptions?.hookMetadata);
20
+ try {
21
+ const result = await adapter.transaction(async (transactionAdapter) => callback(createClient(transactionAdapter, observation, active?.operation.id)), adapterTransactionOptions(transactionOptions));
22
+ active?.finish({ status: "success" });
23
+ return result;
24
+ } catch (error) {
25
+ active?.finish({
26
+ status: "error",
27
+ error
28
+ });
29
+ throw error;
30
+ }
19
31
  }
20
32
  });
21
33
  }
22
- function createClient(adapter) {
34
+ function createClient(adapter, observation, parentId) {
23
35
  const client = {
24
36
  adapter,
25
37
  execute(query, options) {
26
- return execute(query, adapter, options);
38
+ return executeInternal(query, adapter, options ?? {}, observation, parentId);
27
39
  },
28
40
  rows(query, options) {
29
- return executeRows(query, adapter, options);
41
+ return executeRowsInternal(query, adapter, options ?? {}, observation, parentId);
30
42
  }
31
43
  };
32
44
  const streaming = isStreamingQueryAdapter(adapter);
@@ -35,10 +47,10 @@ function createClient(adapter) {
35
47
  return Object.freeze({
36
48
  ...client,
37
49
  ...streaming ? { stream(query, options) {
38
- return stream(query, adapter, options);
50
+ return streamInternal(query, adapter, options ?? {}, observation, parentId);
39
51
  } } : {},
40
52
  ...explainable ? { explain(query, options) {
41
- return explain(query, adapter, options);
53
+ return explainInternal(query, adapter, options ?? {}, observation, parentId);
42
54
  } } : {}
43
55
  });
44
56
  }
@@ -51,35 +63,163 @@ function isStreamingQueryAdapter(adapter) {
51
63
  function isExplainableQueryAdapter(adapter) {
52
64
  return typeof adapter.explain === "function";
53
65
  }
66
+ function createObservation(hooks) {
67
+ if (hooks === void 0) return;
68
+ return {
69
+ hooks: Object.freeze({ ...hooks }),
70
+ nextOperationId: 1
71
+ };
72
+ }
73
+ function startQueryOperation(observation, kind, request, dialect, metadata, parentId) {
74
+ return startOperation(observation, {
75
+ kind,
76
+ queryKind: request.queryKind,
77
+ dialect: dialect.name,
78
+ sql: request.statement.text,
79
+ parameterCount: request.statement.parameters.length,
80
+ metadata,
81
+ parentId
82
+ });
83
+ }
84
+ function startTransactionOperation(observation, metadata) {
85
+ return startOperation(observation, {
86
+ kind: "transaction",
87
+ metadata,
88
+ parentId: void 0
89
+ });
90
+ }
91
+ function startOperation(observation, input) {
92
+ if (observation === void 0) return;
93
+ const startedAt = monotonicTime();
94
+ const operation = Object.freeze({
95
+ id: observation.nextOperationId++,
96
+ ...input.parentId === void 0 ? {} : { parentId: input.parentId },
97
+ kind: input.kind,
98
+ startedAt,
99
+ ...input.metadata === void 0 ? {} : { metadata: freezeMetadata(input.metadata) },
100
+ ...input.kind === "transaction" ? {} : {
101
+ queryKind: input.queryKind,
102
+ dialect: input.dialect,
103
+ sql: input.sql,
104
+ parameterCount: input.parameterCount
105
+ }
106
+ });
107
+ let endHook;
108
+ try {
109
+ endHook = observation.hooks.onOperationStart?.(operation) ?? void 0;
110
+ } catch (error) {
111
+ reportHookError(observation.hooks, error);
112
+ }
113
+ let finished = false;
114
+ return {
115
+ operation,
116
+ finish(completion) {
117
+ if (finished) return;
118
+ finished = true;
119
+ if (endHook === void 0) return;
120
+ const outcome = Object.freeze({
121
+ ...completion,
122
+ durationMs: monotonicTime() - startedAt
123
+ });
124
+ try {
125
+ endHook(outcome);
126
+ } catch (error) {
127
+ reportHookError(observation.hooks, error);
128
+ }
129
+ }
130
+ };
131
+ }
132
+ function reportHookError(hooks, error) {
133
+ try {
134
+ hooks.onHookError?.(error);
135
+ } catch {}
136
+ }
137
+ function freezeMetadata(metadata) {
138
+ return Object.freeze({ ...metadata });
139
+ }
140
+ function monotonicTime() {
141
+ return performance.now();
142
+ }
143
+ function adapterTransactionOptions(options) {
144
+ if (options?.hookMetadata === void 0) return options;
145
+ const { hookMetadata: _hookMetadata, ...adapterOptions } = options;
146
+ return adapterOptions;
147
+ }
54
148
  function execute(first, second, options = {}) {
55
149
  return executeInternal(first, second, options);
56
150
  }
57
151
  async function executeRows(first, second, options = {}) {
58
- return (await executeInternal(first, second, options)).rows;
152
+ return executeRowsInternal(first, second, options);
59
153
  }
60
154
  async function explain(first, second, options = {}) {
61
- const query = isQuery(first) ? first : second;
62
- const adapter = isQuery(first) ? second : first;
63
- return adapter.explain(createExplainRequest(query, adapter, options));
155
+ return explainInternal(isQuery(first) ? first : second, isQuery(first) ? second : first, options);
64
156
  }
65
157
  function stream(first, second, options = {}) {
158
+ return streamInternal(isQuery(first) ? first : second, isQuery(first) ? second : first, options);
159
+ }
160
+ async function executeInternal(first, second, options, observation, parentId) {
66
161
  const query = isQuery(first) ? first : second;
67
162
  const adapter = isQuery(first) ? second : first;
68
- assertStreamableQuery(query);
69
163
  const request = createExecutionRequest(query, adapter, options);
70
164
  const dialect = options.dialect ?? adapter.dialect;
71
- return decodeResultStream(adapter.stream(request), request, adapter, dialect);
165
+ const active = startQueryOperation(observation, "execute", request, dialect, options.hookMetadata, parentId);
166
+ try {
167
+ const result = await adapter.execute(request);
168
+ const decoded = {
169
+ ...result,
170
+ rows: result.rows.map((row, rowIndex) => decodeResultRow(row, request.resultShape, adapter.decoders, dialect, rowIndex))
171
+ };
172
+ active?.finish({
173
+ status: "success",
174
+ rowCount: decoded.rows.length,
175
+ ...decoded.affectedRows === void 0 ? {} : { affectedRows: decoded.affectedRows },
176
+ ...decoded.changedRows === void 0 ? {} : { changedRows: decoded.changedRows },
177
+ ...decoded.insertId === void 0 ? {} : { hasInsertId: true }
178
+ });
179
+ return decoded;
180
+ } catch (error) {
181
+ active?.finish({
182
+ status: "error",
183
+ error
184
+ });
185
+ throw error;
186
+ }
72
187
  }
73
- async function executeInternal(first, second, options) {
74
- const query = isQuery(first) ? first : second;
75
- const adapter = isQuery(first) ? second : first;
188
+ async function executeRowsInternal(first, second, options, observation, parentId) {
189
+ return (await executeInternal(first, second, options, observation, parentId)).rows;
190
+ }
191
+ async function explainInternal(query, adapter, options, observation, parentId) {
192
+ const request = createExplainRequest(query, adapter, options);
193
+ const active = startQueryOperation(observation, "explain", request, options.dialect ?? adapter.dialect, options.hookMetadata, parentId);
194
+ try {
195
+ const result = await adapter.explain(request);
196
+ active?.finish({
197
+ status: "success",
198
+ rowCount: result.rows.length
199
+ });
200
+ return result;
201
+ } catch (error) {
202
+ active?.finish({
203
+ status: "error",
204
+ error
205
+ });
206
+ throw error;
207
+ }
208
+ }
209
+ function streamInternal(query, adapter, options, observation, parentId) {
210
+ assertStreamableQuery(query);
76
211
  const request = createExecutionRequest(query, adapter, options);
77
- const result = await adapter.execute(request);
78
212
  const dialect = options.dialect ?? adapter.dialect;
79
- return {
80
- ...result,
81
- rows: result.rows.map((row, rowIndex) => decodeResultRow(row, request.resultShape, adapter.decoders, dialect, rowIndex))
82
- };
213
+ const active = startQueryOperation(observation, "stream", request, dialect, options.hookMetadata, parentId);
214
+ try {
215
+ return decodeResultStream(adapter.stream(request), request, adapter, dialect, active);
216
+ } catch (error) {
217
+ active?.finish({
218
+ status: "error",
219
+ error
220
+ });
221
+ throw error;
222
+ }
83
223
  }
84
224
  function createExecutionRequest(query, adapter, options) {
85
225
  const statement = render(query, { dialect: options.dialect ?? adapter.dialect });
@@ -90,9 +230,32 @@ function createExecutionRequest(query, adapter, options) {
90
230
  ...options.signal === void 0 ? {} : { signal: options.signal }
91
231
  });
92
232
  }
93
- async function* decodeResultStream(rows, request, adapter, dialect) {
233
+ async function* decodeResultStream(rows, request, adapter, dialect, active) {
94
234
  let rowIndex = 0;
95
- for await (const row of rows) yield decodeResultRow(row, request.resultShape, adapter.decoders, dialect, rowIndex++);
235
+ let completed = false;
236
+ let failed = false;
237
+ try {
238
+ for await (const row of rows) yield decodeResultRow(row, request.resultShape, adapter.decoders, dialect, rowIndex++);
239
+ completed = true;
240
+ active?.finish({
241
+ status: "success",
242
+ rowCount: rowIndex,
243
+ streamEnd: "complete"
244
+ });
245
+ } catch (error) {
246
+ failed = true;
247
+ active?.finish({
248
+ status: "error",
249
+ error
250
+ });
251
+ throw error;
252
+ } finally {
253
+ if (!completed && !failed) active?.finish({
254
+ status: "success",
255
+ rowCount: rowIndex,
256
+ streamEnd: "consumer-return"
257
+ });
258
+ }
96
259
  }
97
260
  function createExplainRequest(query, adapter, options) {
98
261
  const request = createExecutionRequest(query, adapter, options);
@@ -112,7 +275,7 @@ function createExplainRequest(query, adapter, options) {
112
275
  hint: "Use PostgreSQL, SQLite, MySQL, or a custom dialect with an explain policy."
113
276
  });
114
277
  const statement = Object.freeze({
115
- text: dialect.explain.render(request.statement.text, query.queryKind, options),
278
+ text: dialect.explain.render(request.statement.text, query.queryKind, explainRenderOptions(options)),
116
279
  parameters: request.statement.parameters
117
280
  });
118
281
  return Object.freeze({
@@ -120,6 +283,11 @@ function createExplainRequest(query, adapter, options) {
120
283
  statement
121
284
  });
122
285
  }
286
+ function explainRenderOptions(options) {
287
+ if (options.hookMetadata === void 0) return options;
288
+ const { hookMetadata: _hookMetadata, ...renderOptions } = options;
289
+ return renderOptions;
290
+ }
123
291
  function assertStreamableQuery(query) {
124
292
  if (query.queryKind === "select" || query.queryKind === "set") return;
125
293
  throw queryValidationError({
@@ -1057,7 +1225,9 @@ function insertInto(table, source, ...clauses) {
1057
1225
  context.render(table.reference);
1058
1226
  if (source.insertKind === "values") {
1059
1227
  const rows = source.rows;
1060
- const columns = Object.keys(rows[0] ?? {});
1228
+ const explicitColumns = Object.keys(rows[0] ?? {});
1229
+ const runtimeDefaultColumns = Object.entries(table.definitions).filter(([columnName, definition]) => !explicitColumns.includes(columnName) && definition.defaultFn !== void 0).map(([columnName]) => columnName);
1230
+ const columns = [...explicitColumns, ...runtimeDefaultColumns];
1061
1231
  if (columns.length === 0) context.append(" DEFAULT VALUES");
1062
1232
  else {
1063
1233
  renderTargetColumns(context, table, columns);
@@ -1067,13 +1237,25 @@ function insertInto(table, source, ...clauses) {
1067
1237
  context.append("(");
1068
1238
  columns.forEach((columnName, columnIndex) => {
1069
1239
  if (columnIndex > 0) context.append(", ");
1070
- renderInsertValue(context, row[columnName]);
1240
+ const definition = table.definitions[columnName];
1241
+ renderInsertValue(context, Object.hasOwn(row, columnName) ? row[columnName] : definition.defaultFn?.(), definition);
1071
1242
  });
1072
1243
  context.append(")");
1073
1244
  });
1074
1245
  }
1075
- } else if (source.insertKind === "default-values") context.append(" DEFAULT VALUES");
1076
- else {
1246
+ } else if (source.insertKind === "default-values") {
1247
+ const runtimeDefaults = Object.entries(table.definitions).filter(([, definition]) => definition.defaultFn !== void 0);
1248
+ if (runtimeDefaults.length === 0) context.append(" DEFAULT VALUES");
1249
+ else {
1250
+ renderTargetColumns(context, table, runtimeDefaults.map(([columnName]) => columnName));
1251
+ context.append(" VALUES (");
1252
+ runtimeDefaults.forEach(([, definition], index) => {
1253
+ if (index > 0) context.append(", ");
1254
+ renderInsertValue(context, definition.defaultFn?.(), definition);
1255
+ });
1256
+ context.append(")");
1257
+ }
1258
+ } else {
1077
1259
  renderTargetColumns(context, table, source.columns);
1078
1260
  context.append(" ");
1079
1261
  context.renderRelation(source.query);
@@ -1092,9 +1274,9 @@ function renderTargetColumns(context, table, columns) {
1092
1274
  });
1093
1275
  context.append(")");
1094
1276
  }
1095
- function renderInsertValue(context, input) {
1277
+ function renderInsertValue(context, input, definition) {
1096
1278
  if (isExpression(input)) context.render(input);
1097
- else context.parameter(input);
1279
+ else context.parameter(encodeColumnParameter(definition, input));
1098
1280
  }
1099
1281
  function validateInsert(table, source) {
1100
1282
  const definitions = table.definitions;
@@ -1128,7 +1310,7 @@ function validateInsert(table, source) {
1128
1310
  });
1129
1311
  }
1130
1312
  for (const [columnName, definition] of Object.entries(definitions)) {
1131
- if (definition.generated || definition.hasDefault) continue;
1313
+ if (definition.generated || definition.hasDefault || definition.hasRuntimeDefault) continue;
1132
1314
  if (!firstSet.has(columnName)) throw queryValidationError({
1133
1315
  code: "invalid-insert",
1134
1316
  context: "insert.values.columns",
@@ -1138,7 +1320,7 @@ function validateInsert(table, source) {
1138
1320
  });
1139
1321
  }
1140
1322
  } else if (source.insertKind === "default-values") {
1141
- for (const [columnName, definition] of Object.entries(definitions)) if (!definition.generated && !definition.hasDefault) throw queryValidationError({
1323
+ for (const [columnName, definition] of Object.entries(definitions)) if (!definition.generated && !definition.hasDefault && !definition.hasRuntimeDefault) throw queryValidationError({
1142
1324
  code: "invalid-insert",
1143
1325
  context: "insert.default-values",
1144
1326
  path: ["defaultValues", columnName],
@@ -1222,7 +1404,7 @@ function update(table, assignments, ...clauses) {
1222
1404
  if (index > 0) context.append(", ");
1223
1405
  context.render(identifier(table.sqlNames[columnName] ?? columnName));
1224
1406
  context.append(" = ");
1225
- renderAssignmentValue(context, value);
1407
+ renderAssignmentValue(context, value, table.definitions[columnName]);
1226
1408
  });
1227
1409
  if (whereClause) {
1228
1410
  context.append(" ");
@@ -1234,9 +1416,9 @@ function update(table, assignments, ...clauses) {
1234
1416
  }
1235
1417
  });
1236
1418
  }
1237
- function renderAssignmentValue(context, value) {
1419
+ function renderAssignmentValue(context, value, definition) {
1238
1420
  if (isExpression(value)) context.render(value);
1239
- else context.parameter(value);
1421
+ else context.parameter(encodeColumnParameter(definition, value));
1240
1422
  }
1241
1423
  function validateUpdate(table, assignments) {
1242
1424
  const definitions = table.definitions;
@@ -1,5 +1,5 @@
1
- import { $ as CatalogTrigger, A as CatalogNamespace, At as CatalogQuery, B as CatalogPrimaryKeyConstraint, C as CatalogForeignKeyTarget, Ct as IntrospectionDiagnosticCode, D as CatalogIndexTerm, Dt as createIntrospectionDiagnostic, E as CatalogIndex, Et as IntrospectionError, F as CatalogOpaqueObject, G as CatalogRoutine, H as CatalogProvenanceKind, I as CatalogOwnership, J as CatalogSequence, K as CatalogRoutineParameter, L as CatalogPartition, M as CatalogObjectBase, N as CatalogObjectMetadata, O as CatalogIntrospector, Ot as hasIntrospectionErrors, P as CatalogObjectReference, Q as CatalogTable, R as CatalogPolicy, S as CatalogForeignKeyConstraint, St as IntrospectionDiagnostic, T as CatalogIdentity, Tt as IntrospectionDiagnosticSeverity, U as CatalogQueryRow, V as CatalogProvenance, W as CatalogReference, X as CatalogSqlExpression, Y as CatalogServerInfo, Z as CatalogStorageType, _ as CatalogEntityReference, _t as CatalogIdentityPolicy, a as CatalogCollation, at as CatalogView, b as CatalogExpressionFact, bt as CatalogResolvedIdentity, c as CatalogCompleteObject, ct as IntrospectionFailure, d as CatalogDeferredObject, dt as IntrospectionResult, et as CatalogUniqueConstraint, f as CatalogDeferredObjectKind, ft as IntrospectionSuccess, g as CatalogEntityKind, gt as CatalogIdentityHints, h as CatalogDomain, ht as CatalogIdentityHint, i as CatalogClassificationConfidence, it as CatalogVersion, j as CatalogObject, jt as CatalogQueryOptions, k as CatalogLiteralFact, kt as CatalogConnection, l as CatalogConstraint, lt as IntrospectionMode, m as CatalogDialectExtension, mt as CatalogIdentityFallback, n as CatalogCatalogReference, nt as CatalogUnknownObject, o as CatalogColumn, ot as CompleteIntrospectionCatalog, p as CatalogDialect, pt as CatalogIdentityEntityKind, q as CatalogScalar, r as CatalogCheckConstraint, rt as CatalogValueFact, s as CatalogComment, st as IntrospectionCatalog, t as CatalogCapabilities, tt as CatalogUnknownField, u as CatalogData, ut as IntrospectionOptions, v as CatalogEnum, vt as CatalogIdentitySource, w as CatalogGeneratedColumn, wt as IntrospectionDiagnosticInput, x as CatalogExtensionObject, xt as introspectedPhysicalIdentityPolicy, y as CatalogEnumValue, yt as CatalogPreviousSnapshotIdentitySource, z as CatalogPortableStorageType } from "./types-JSZHpUEj.mjs";
2
- import { t as CompleteSchemaSnapshot } from "./complete-types-IjEn5VPN.mjs";
1
+ import { $ as CatalogTrigger, A as CatalogNamespace, At as CatalogQuery, B as CatalogPrimaryKeyConstraint, C as CatalogForeignKeyTarget, Ct as IntrospectionDiagnosticCode, D as CatalogIndexTerm, Dt as createIntrospectionDiagnostic, E as CatalogIndex, Et as IntrospectionError, F as CatalogOpaqueObject, G as CatalogRoutine, H as CatalogProvenanceKind, I as CatalogOwnership, J as CatalogSequence, K as CatalogRoutineParameter, L as CatalogPartition, M as CatalogObjectBase, N as CatalogObjectMetadata, O as CatalogIntrospector, Ot as hasIntrospectionErrors, P as CatalogObjectReference, Q as CatalogTable, R as CatalogPolicy, S as CatalogForeignKeyConstraint, St as IntrospectionDiagnostic, T as CatalogIdentity, Tt as IntrospectionDiagnosticSeverity, U as CatalogQueryRow, V as CatalogProvenance, W as CatalogReference, X as CatalogSqlExpression, Y as CatalogServerInfo, Z as CatalogStorageType, _ as CatalogEntityReference, _t as CatalogIdentityPolicy, a as CatalogCollation, at as CatalogView, b as CatalogExpressionFact, bt as CatalogResolvedIdentity, c as CatalogCompleteObject, ct as IntrospectionFailure, d as CatalogDeferredObject, dt as IntrospectionResult, et as CatalogUniqueConstraint, f as CatalogDeferredObjectKind, ft as IntrospectionSuccess, g as CatalogEntityKind, gt as CatalogIdentityHints, h as CatalogDomain, ht as CatalogIdentityHint, i as CatalogClassificationConfidence, it as CatalogVersion, j as CatalogObject, jt as CatalogQueryOptions, k as CatalogLiteralFact, kt as CatalogConnection, l as CatalogConstraint, lt as IntrospectionMode, m as CatalogDialectExtension, mt as CatalogIdentityFallback, n as CatalogCatalogReference, nt as CatalogUnknownObject, o as CatalogColumn, ot as CompleteIntrospectionCatalog, p as CatalogDialect, pt as CatalogIdentityEntityKind, q as CatalogScalar, r as CatalogCheckConstraint, rt as CatalogValueFact, s as CatalogComment, st as IntrospectionCatalog, t as CatalogCapabilities, tt as CatalogUnknownField, u as CatalogData, ut as IntrospectionOptions, v as CatalogEnum, vt as CatalogIdentitySource, w as CatalogGeneratedColumn, wt as IntrospectionDiagnosticInput, x as CatalogExtensionObject, xt as introspectedPhysicalIdentityPolicy, y as CatalogEnumValue, yt as CatalogPreviousSnapshotIdentitySource, z as CatalogPortableStorageType } from "./types-CTCqtFlS.mjs";
2
+ import { t as CompleteSchemaSnapshot } from "./complete-types-CY0KbzNw.mjs";
3
3
  //#region src/introspection/catalog.d.ts
4
4
  /**
5
5
  * Materialize every optional object-family collection and deeply freeze the normalized catalog.
@@ -1,6 +1,6 @@
1
- import { a as toSnapshotJsonValue } from "./canonical-BXUguqfo.mjs";
2
- import { a as hasIntrospectionErrors, i as createIntrospectionDiagnostic, n as introspectedPhysicalIdentityPolicy, r as IntrospectionError, t as mapCatalogToSnapshot } from "./snapshot-C-W65HEd.mjs";
3
- import { n as assertCompleteSchemaSnapshot } from "./complete-WYyVozgK.mjs";
1
+ import { a as toSnapshotJsonValue } from "./canonical-DMvR9yBe.mjs";
2
+ import { a as hasIntrospectionErrors, i as createIntrospectionDiagnostic, n as introspectedPhysicalIdentityPolicy, r as IntrospectionError, t as mapCatalogToSnapshot } from "./snapshot-BSraiLtH.mjs";
3
+ import { n as assertCompleteSchemaSnapshot } from "./complete-DP7pliuY.mjs";
4
4
  import "./snapshot.mjs";
5
5
  //#region src/introspection/catalog.ts
6
6
  /**
@@ -3513,7 +3513,7 @@ async function readSqliteCatalog(connection, options) {
3513
3513
  for (const indexRow of indexRows) {
3514
3514
  const indexName = text(indexRow.name);
3515
3515
  if (!indexName || indexName.startsWith("sqlite_autoindex_") && text(indexRow.origin)?.toLowerCase() !== "u") continue;
3516
- const index = sqliteIndex(currentTable, indexRow, await query(connection, sqliteIndexInfoQuery, [indexName, options.namespace], options, diagnostics, `index-info:${indexName}`), tableSql.get(indexName), options.namespace, diagnostics, opaqueObjects);
3516
+ const index = sqliteIndex(currentTable, indexRow, await query(connection, sqliteIndexInfoQuery, [indexName, options.namespace], options, diagnostics, `index-info:${indexName}`), text(indexRow.origin)?.toLowerCase() === "u" ? sqlText : tableSql.get(indexName), options.namespace, diagnostics, opaqueObjects);
3517
3517
  if (!index) continue;
3518
3518
  if (index.kind === "index") mappedIndexes.push(index);
3519
3519
  else mappedConstraints.push(index);
@@ -4082,25 +4082,27 @@ function tableConstraints(table, rows, columns, sqlText, namespace) {
4082
4082
  const primaryColumns = columns.filter((column) => primaryNames.has(column.physicalName)).sort((left, right) => primaryNames.get(left.physicalName) - primaryNames.get(right.physicalName));
4083
4083
  const constraints = [];
4084
4084
  if (primaryColumns.length > 0) {
4085
+ const declaredName = declaredConstraintName(sqlText, "PRIMARY\\s+KEY", primaryColumns.map((column) => column.physicalName));
4086
+ const primaryName = declaredName ?? `primary_${table.physicalName}`;
4085
4087
  const primary = {
4086
4088
  kind: "primary-key",
4087
- id: stableId(`primary_${table.physicalName}`),
4088
- identitySource: "deterministic-fallback",
4089
- physicalName: `primary_${table.physicalName}`,
4089
+ id: stableId(primaryName),
4090
+ identitySource: declaredName ? "physical-name" : "deterministic-fallback",
4091
+ physicalName: primaryName,
4090
4092
  columns: primaryColumns.map((column) => column.physicalName),
4091
4093
  dialect: sqliteExtension({ source: "pragma_table_xinfo" }),
4092
- reference: reference("constraint", `primary_${table.physicalName}`, namespace, "sqlite_schema", "tbl_name")
4094
+ reference: reference("constraint", primaryName, namespace, "sqlite_schema", "tbl_name")
4093
4095
  };
4094
4096
  constraints.push(primary);
4095
4097
  }
4096
- [...sqlText?.matchAll(/CHECK\s*\(([^()]*(?:\([^()]*\)[^()]*)*)\)/gi) ?? []].forEach((match, index) => {
4097
- const name = `check_${index}_${table.physicalName}`;
4098
+ [...sqlText?.matchAll(/(?:CONSTRAINT\s+("(?:[^"]|"")*"|`[^`]*`|\[[^\]]*\]|[A-Za-z_][A-Za-z0-9_$]*)\s+)?CHECK\s*\(([^()]*(?:\([^()]*\)[^()]*)*)\)/gi) ?? []].forEach((match, index) => {
4099
+ const name = unquoteIdentifier(match[1]) ?? `check_${index}_${table.physicalName}`;
4098
4100
  const check = {
4099
4101
  kind: "check",
4100
4102
  id: stableId(name),
4101
4103
  identitySource: "deterministic-fallback",
4102
4104
  physicalName: name,
4103
- expression: sql(match[1] ?? "true", namespace, table, name),
4105
+ expression: sql(match[2] ?? "true", namespace, table, name),
4104
4106
  dialect: sqliteExtension({ source: "create-sql" })
4105
4107
  };
4106
4108
  constraints.push(check);
@@ -4170,11 +4172,12 @@ function sqliteIndex(table, row, infoRows, sqlText, namespace, diagnostics, opaq
4170
4172
  if (text(row.origin) === "u") {
4171
4173
  const internalName = physicalName.startsWith("sqlite_autoindex_");
4172
4174
  const termNames = terms.map((term) => term.kind === "column" ? term.column : `expression_${term.position}`);
4173
- const constraintName = internalName ? `unique_${table.physicalName}_${termNames.join("_") || "constraint"}` : physicalName;
4175
+ const declaredName = declaredConstraintName(sqlText, "UNIQUE", termNames);
4176
+ const constraintName = internalName ? declaredName ?? `unique_${table.physicalName}_${termNames.join("_") || "constraint"}` : physicalName;
4174
4177
  return {
4175
4178
  kind: "unique",
4176
4179
  id: stableId(constraintName),
4177
- identitySource: internalName ? "deterministic-fallback" : "physical-name",
4180
+ identitySource: internalName && !declaredName ? "deterministic-fallback" : "physical-name",
4178
4181
  physicalName: constraintName,
4179
4182
  columns: terms.flatMap((term) => term.kind === "column" ? [term.column] : []),
4180
4183
  nulls: "distinct",
@@ -4202,6 +4205,14 @@ function sqliteIndex(table, row, infoRows, sqlText, namespace, diagnostics, opaq
4202
4205
  reference: reference("index", physicalName, namespace, "sqlite_schema", "name")
4203
4206
  };
4204
4207
  }
4208
+ function declaredConstraintName(sqlText, keyword, columns) {
4209
+ if (!sqlText) return void 0;
4210
+ const pattern = new RegExp(`CONSTRAINT\\s+("(?:[^"]|"")*"|\`[^\`]*\`|\\[[^\\]]*\\]|[A-Za-z_][A-Za-z0-9_\$]*)\\s+${keyword}\\s*\\(([^)]*)\\)`, "gi");
4211
+ for (const match of sqlText.matchAll(pattern)) {
4212
+ const found = (match[2] ?? "").split(",").map((value) => unquoteIdentifier(value.trim())).filter((value) => value !== void 0);
4213
+ if (found.length === columns.length && found.every((value, index) => value === columns[index])) return unquoteIdentifier(match[1]);
4214
+ }
4215
+ }
4205
4216
  function foreignKeys(table, rows, namespace) {
4206
4217
  const grouped = /* @__PURE__ */ new Map();
4207
4218
  for (const row of rows) {
package/dist/mysql.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { V as Dialect } from "./types-BK1COGZe.mjs";
1
+ import { V as Dialect } from "./types-C0VkiwpR.mjs";
2
2
  //#region src/dialects/mysql.d.ts
3
- declare function mysqlDialect(): Dialect<"row-locking" | "json">;
3
+ declare function mysqlDialect(): Dialect<"json" | "row-locking">;
4
4
  //#endregion
5
5
  export { mysqlDialect };
@@ -1,8 +1,8 @@
1
1
  import { a as assertDialectCapability } from "./json-Db7XRD91.mjs";
2
2
  import { n as queryValidationError } from "./errors-Dxv73YJu.mjs";
3
- import { K as fragment, i as identifier, t as createColumnReference, u as columnResultValue, z as isExpression } from "./column-hqKr7-1I.mjs";
3
+ import { B as isExpression, f as encodeColumnParameter, i as identifier, q as fragment, t as createColumnReference, u as columnResultValue } from "./column-DmazTL67.mjs";
4
4
  import { t as omit } from "./omit-OxV58AwX.mjs";
5
- import { r as exposeColumns, t as createSource } from "./source-BcS2AsIg.mjs";
5
+ import { r as exposeColumns, t as createSource } from "./source-C4Vmu5bb.mjs";
6
6
  //#region src/query/mutation/on-conflict.ts
7
7
  /** Columns from the proposed INSERT row, available inside DO UPDATE. */
8
8
  function excluded(table) {
@@ -57,7 +57,10 @@ function onConflict(...args) {
57
57
  context.render(identifier(table?.sqlNames[columnName] ?? columnName));
58
58
  context.append(" = ");
59
59
  if (isExpression(value)) context.render(value);
60
- else context.parameter(value);
60
+ else {
61
+ const definition = table?.definitions[columnName];
62
+ context.parameter(definition === void 0 ? value : encodeColumnParameter(definition, value));
63
+ }
61
64
  });
62
65
  if (action.where !== void 0) {
63
66
  context.append(" ");
@@ -1,10 +1,10 @@
1
- import { Au as SqlBoolean, Do as SqlCapabilityValidation, Du as AnySqlType, Eo as OperandSqlType, Gu as SqlUnknown, Hu as SqlTextLike, To as OperandNullability, V as Dialect, Wl as ExpressionMeta, _n as doNothing, bn as onConflict, dn as ConflictAction, fn as ConflictTarget, fu as RequiresCapabilityMeta, gn as OnConflictClause, hn as ExcludedSource, mn as DoUpdateAction, pn as DoNothingAction, so as ComparisonValidation, tu as MetadataOf, vl as ExpressionWithOutput, vn as doUpdate, vu as ResultMeta, wo as Operand, yl as SchemaExpression, yn as excluded } from "./types-BK1COGZe.mjs";
1
+ import { Do as SqlCapabilityValidation, Eo as OperandSqlType, Fl as SchemaExpression, Ku as SqlBoolean, Ou as RequiresCapabilityMeta, Pl as ExpressionWithOutput, Pu as ResultMeta, To as OperandNullability, Uu as AnySqlType, V as Dialect, _n as doNothing, _u as MetadataOf, bn as onConflict, dn as ConflictAction, fn as ConflictTarget, gn as OnConflictClause, hn as ExcludedSource, id as SqlTextLike, mn as DoUpdateAction, ou as ExpressionMeta, pn as DoNothingAction, sd as SqlUnknown, so as ComparisonValidation, vn as doUpdate, wo as Operand, yn as excluded } from "./types-C0VkiwpR.mjs";
2
2
  //#region src/dialects/postgres.d.ts
3
3
  /**
4
4
  * PostgreSQL's only core rendering difference is positional parameters. PostgreSQL-specific
5
5
  * expressions and clauses should remain separate modules.
6
6
  */
7
- declare function postgresDialect(): Dialect<"row-locking" | "json" | "ilike" | "on-conflict">;
7
+ declare function postgresDialect(): Dialect<"on-conflict" | "json" | "ilike" | "row-locking">;
8
8
  /** PostgreSQL's case-insensitive pattern-match operator. */
9
9
  declare function ilike<TLeft extends ExpressionWithOutput<string>, R extends Operand<string>>(left: TLeft & ComparisonValidation<TLeft, R, "ILIKE">, pattern: R): SchemaExpression<ResultMeta<boolean, ((MetadataOf<TLeft & SqlCapabilityValidation<(MetadataOf<TLeft> extends (infer T) ? T extends MetadataOf<TLeft> ? T extends {
10
10
  readonly kind: "result";
package/dist/postgres.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import { n as postgresJson, o as createDialect } from "./json-Db7XRD91.mjs";
2
- import { G as withDialectCapability } from "./column-hqKr7-1I.mjs";
3
- import { t as comparison } from "./relational-BZ3WDPzC.mjs";
2
+ import { K as withDialectCapability } from "./column-DmazTL67.mjs";
3
+ import { t as comparison } from "./relational-x3BDVX9e.mjs";
4
4
  import { n as postgresExplain } from "./explain-CkIK13L_.mjs";
5
- import { i as onConflict, n as doUpdate, r as excluded, t as doNothing } from "./on-conflict-hfPW0KmQ.mjs";
5
+ import { i as onConflict, n as doUpdate, r as excluded, t as doNothing } from "./on-conflict-jPsl9l0K.mjs";
6
6
  //#region src/dialects/postgres.ts
7
7
  const postgresRowLockModeSql = {
8
8
  update: "UPDATE",
@@ -1,6 +1,6 @@
1
1
  import { t as standardDialect } from "./standard-DfcZEVOj.mjs";
2
- import { B as isSchemaExpression, H as makeSchemaExpression, M as freezeSchemaMetadata, R as snakeCaseIdentifier, W as markSchemaExpression, j as dialectMismatchDiagnostic, r as isColumnReference } from "./column-hqKr7-1I.mjs";
3
- import { n as isValueExpression } from "./value-Bi71Agyf.mjs";
2
+ import { G as markSchemaExpression, M as dialectMismatchDiagnostic, N as freezeSchemaMetadata, U as makeSchemaExpression, V as isSchemaExpression, r as isColumnReference, z as snakeCaseIdentifier } from "./column-DmazTL67.mjs";
3
+ import { n as isValueExpression } from "./value-BEEj_Ayd.mjs";
4
4
  //#region src/schema/indexes.ts
5
5
  /**
6
6
  * Validate portable and dialect-owned index facts for one target adapter. Unsupported features are
@@ -1,6 +1,6 @@
1
1
  import { n as queryValidationError } from "./errors-Dxv73YJu.mjs";
2
- import { H as makeSchemaExpression, rt as resultValue } from "./column-hqKr7-1I.mjs";
3
- import { n as isValueExpression, t as asValue } from "./value-Bi71Agyf.mjs";
2
+ import { U as makeSchemaExpression, it as resultValue } from "./column-DmazTL67.mjs";
3
+ import { n as isValueExpression, t as asValue } from "./value-BEEj_Ayd.mjs";
4
4
  //#region src/expressions/operators/shared.ts
5
5
  function isNullOperand(value) {
6
6
  return value === null || isValueExpression(value) && value.value === null;
package/dist/schema.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { $i as SourceIndexesRecord, $o as ColumnStorageOf, $r as generatedTableName, $s as canonicalLiteral, Ai as catalogCheck, Ar as SchemaExpressionErrorCode, As as timestamp, At as SourceSqlTypeMap, Bi as AliasedSource, Bo as ColumnIdentityOf, Br as renderSchemaSql, Bs as ExternalDefaultDescriptor, Bt as TableDefinitions, Ci as SourceConstraintsRecord, Cs as json, Ct as SourceColumns, Di as UniqueConstraint, Dr as createSchemaDialect, Ds as numeric, Dt as SourceKind, Ei as TableLike, Er as SchemaDialectHooks, Es as nullable, Et as SourceIdentity, Fi as references, Fo as ColumnDefinition, Fr as UnsafeSchemaSqlExpression, Fs as ColumnDefault, Ft as exposeColumns, Gi as alias, Go as ColumnOptions, Gr as SchemaNamingPolicy, Gs as IdentityDescriptor, Gt as TableRow, Hi as LateralSource, Ho as ColumnIsGenerated, Hr as unsafeSchemaSql, Hs as GeneratedColumnDescriptor, Ht as TableInsertInput, Ii as unique, Io as ColumnDefinitionConfig, Ir as defineSchemaExpression, Is as ColumnDefaultInput, It as sourceIdentity, Ji as IndexOptions, Jo as ColumnStorage, Jr as SchemaTableNames, Js as LiteralDefaultDescriptor, Jt as table, Ki as lateral, Ko as ColumnOutput, Kr as SchemaOptions, Ks as IdentityDialectExtension, Kt as TableSqlTypes, Li as uniqueConstraint, Lo as ColumnFromOptions, Lr as isUnsafeSchemaSql, Ls as DefaultDescriptor, Lt as AnyTable, Mi as check, Mr as SchemaExpressionMode, Ms as CanonicalLiteral, Mt as UnknownSourceSqlTypes, Ni as foreignKey, Nr as SchemaRenderContext, Ns as ColumnBehaviorError, Nt as createSource, Oi as UniqueConstraintOptions, Or as RenderedSchemaExpression, Os as portableStorage, Ot as SourceProvision, Pi as primaryKey, Po as ColumnDefaultOf, Pr as SchemaRenderOptions, Ps as ColumnBehaviorErrorCode, Pt as customSource, Qi as SourceIndex, Qo as ColumnStorageKindOf, Qr as defaultSchemaNamingPolicy, Qs as SqliteIdentityExtension, Ri as validateConstraintDialect, Ro as ColumnGeneratedOf, Rr as normalizeSchemaSql, Rs as ExpressionDefaultDescriptor, Rt as Table, Si as SourceConstraint, Ss as integer, St as Source, Ti as SqliteConstraintExtension, Tr as SchemaDialect, Ts as nativeStorage, Tt as SourceConstraints, Ui as QueryAliasIdentity, Uo as ColumnIsNullable, Ur as Schema, Us as GeneratedColumnMode, Ut as TableMetadataCallback, Vi as LateralIdentity, Vo as ColumnInsertInput, Vr as schemaExpression, Vs as ExternalGeneratedColumnDescriptor, Vt as TableIdentity, Wi as QuerySource, Wo as ColumnOnUpdateOf, Wr as SchemaDiagnostic, Ws as GeneratedDescriptor, Wt as TableOptions, Xi as MysqlIndexExtension, Xo as ColumnStorageDescriptor, Xr as SchemaTableRegistry, Xs as ResolvedColumnBehavior, Yi as IndexTerm, Yo as ColumnStorageDeclarationOf, Yr as SchemaTableRecord, Ys as MysqlIdentityExtension, Zi as PostgresIndexExtension, Zo as ColumnStorageDialectOf, Zr as SchemaValidationError, Zs as SchemaLiteralValue, _c as materializeSchemaObjectRecord, _i as KeyConstraint, _s as binary, _t as AnySource, ac as SchemaDialectExtension, ai as CheckConstraint, as as NativeStorage, bi as PostgresConstraintExtension, bs as columnResultValue, bt as ProvidedSourceIdentity, cc as SchemaMetadataValidationError, ci as ConstraintOptions, cs as PortableStorage, dc as assertSchemaDialectSupport, di as FieldLikeOptions, ds as StorageDeclarationOf, ea as SqliteIndexExtension, ec as externalDefault, ei as schema, es as ColumnStorageType, fc as dialectMismatchDiagnostic, fi as ForeignKeyConstraint, fs as StorageDescriptor, gc as materializeSchemaObjectIdentity, gi as ForeignKeyTargetInput, gs as bigint, hc as isValidSchemaObjectName, hi as ForeignKeyTarget, hs as StorageTypeOf, ia as DeclaredColumnNullability, ic as resolveColumnBehavior, ii as CatalogCheckSql, is as NativeColumnStorage, ji as catalogForeignKey, jr as SchemaExpressionInput, js as uuid, jt as SourceSqlTypes, ki as UniqueNullSemantics, kr as SchemaExpressionError, ks as text, kt as SourceRow, lc as SchemaObjectIdentity, li as ConstraintTiming, ls as PortableStorageDescriptor, mc as generatedSchemaObjectName, mi as ForeignKeyOptions, ms as StorageOf, na as index, nc as generatedColumn, ni as AnyKeyColumn, ns as ColumnUpdateInput, oc as SchemaDialectName, oi as CheckConstraintOptions, os as NativeStorageDescriptor, pc as freezeSchemaMetadata, pi as ForeignKeyMatch, ps as StorageDialectOf, qi as IndexDialectExtension, qo as ColumnSqlType, qr as SchemaTableEntry, qs as IdentityGeneration, qt as TableUpdateInput, ra as validateIndexDialect, rc as identityColumn, ri as CatalogCheckExpression, rs as DialectNativeStorage, sc as SchemaMetadataDiagnostic, si as ConstraintDialectExtension, ss as PortableColumnStorage, ta as TableIndex, tc as externalGeneratedColumn, ti as schemaNamingPolicyVersion, ts as ColumnStorageTypeOf, uc as SchemaObjectNameOptions, ui as FieldLike, us as PortableStorageType, vi as KeyConstraintOptions, vs as boolean, vt as CustomSource, wi as SourceLike, ws as nativeColumn, wt as SourceConfig, xi as ReferentialAction, xs as date, xt as ProvidedSourceRow, yi as MysqlConstraintExtension, ys as column, yt as CustomSourceOptions, zi as AliasIdentity, zo as ColumnHasDefault, zr as renderSchemaExpression, zs as ExpressionGeneratedColumnDescriptor, zt as TableColumns } from "./types-BK1COGZe.mjs";
2
- export { AliasIdentity, AliasedSource, AnyKeyColumn, AnySource, AnyTable, CanonicalLiteral, CatalogCheckExpression, CatalogCheckSql, CheckConstraint, CheckConstraintOptions, ColumnBehaviorError, ColumnBehaviorErrorCode, ColumnDefault, ColumnDefaultInput, ColumnDefaultOf, ColumnDefinition, ColumnDefinitionConfig, ColumnFromOptions, ColumnGeneratedOf, ColumnHasDefault, ColumnIdentityOf, ColumnInsertInput, ColumnIsGenerated, ColumnIsNullable, ColumnOnUpdateOf, ColumnOptions, ColumnOutput, ColumnSqlType, ColumnStorage, ColumnStorageDeclarationOf, ColumnStorageDescriptor, ColumnStorageDialectOf, ColumnStorageKindOf, ColumnStorageOf, ColumnStorageType, ColumnStorageTypeOf, ColumnUpdateInput, ConstraintDialectExtension, ConstraintOptions, ConstraintTiming, CustomSource, CustomSourceOptions, type DeclaredColumnNullability, DefaultDescriptor, DialectNativeStorage, ExpressionDefaultDescriptor, ExpressionGeneratedColumnDescriptor, ExternalDefaultDescriptor, ExternalGeneratedColumnDescriptor, FieldLike, FieldLikeOptions, ForeignKeyConstraint, ForeignKeyMatch, ForeignKeyOptions, ForeignKeyTarget, ForeignKeyTargetInput, GeneratedColumnDescriptor, GeneratedColumnMode, GeneratedDescriptor, IdentityDescriptor, IdentityDialectExtension, IdentityGeneration, IndexDialectExtension, IndexOptions, IndexTerm, KeyConstraint, KeyConstraintOptions, LateralIdentity, LateralSource, LiteralDefaultDescriptor, MysqlConstraintExtension, MysqlIdentityExtension, MysqlIndexExtension, NativeColumnStorage, NativeStorage, NativeStorageDescriptor, PortableColumnStorage, PortableStorage, PortableStorageDescriptor, PortableStorageType, PostgresConstraintExtension, PostgresIndexExtension, ProvidedSourceIdentity, ProvidedSourceRow, QueryAliasIdentity, QuerySource, ReferentialAction, RenderedSchemaExpression, ResolvedColumnBehavior, Schema, SchemaDiagnostic, SchemaDialect, SchemaDialectExtension, SchemaDialectHooks, SchemaDialectName, SchemaExpressionError, SchemaExpressionErrorCode, SchemaExpressionInput, SchemaExpressionMode, SchemaLiteralValue, SchemaMetadataDiagnostic, SchemaMetadataValidationError, SchemaNamingPolicy, SchemaObjectIdentity, SchemaObjectNameOptions, SchemaOptions, SchemaRenderContext, SchemaRenderOptions, SchemaTableEntry, SchemaTableNames, SchemaTableRecord, SchemaTableRegistry, SchemaValidationError, Source, SourceColumns, SourceConfig, SourceConstraint, SourceConstraints, SourceConstraintsRecord, SourceIdentity, SourceIndex, SourceIndexesRecord, SourceKind, SourceLike, SourceProvision, SourceRow, SourceSqlTypeMap, SourceSqlTypes, SqliteConstraintExtension, SqliteIdentityExtension, SqliteIndexExtension, StorageDeclarationOf, StorageDescriptor, StorageDialectOf, StorageOf, StorageTypeOf, Table, TableColumns, TableDefinitions, TableIdentity, TableIndex, TableInsertInput, TableLike, TableMetadataCallback, TableOptions, TableRow, TableSqlTypes, TableUpdateInput, UniqueConstraint, UniqueConstraintOptions, UniqueNullSemantics, UnknownSourceSqlTypes, UnsafeSchemaSqlExpression, alias, assertSchemaDialectSupport, bigint, binary, boolean, canonicalLiteral, catalogCheck, catalogForeignKey, check, column, columnResultValue, createSchemaDialect, createSource, customSource, date, defaultSchemaNamingPolicy, defineSchemaExpression, dialectMismatchDiagnostic, exposeColumns, externalDefault, externalGeneratedColumn, foreignKey, freezeSchemaMetadata, generatedColumn, generatedSchemaObjectName, generatedTableName, identityColumn, index, integer, isUnsafeSchemaSql, isValidSchemaObjectName, json, lateral, materializeSchemaObjectIdentity, materializeSchemaObjectRecord, nativeColumn, nativeStorage, normalizeSchemaSql, nullable, numeric, portableStorage, primaryKey, references, renderSchemaExpression, renderSchemaSql, resolveColumnBehavior, schema, schemaExpression, schemaNamingPolicyVersion, sourceIdentity, table, text, timestamp, unique, uniqueConstraint, unsafeSchemaSql, uuid, validateConstraintDialect, validateIndexDialect };
1
+ import { $i as SourceIndexesRecord, $o as ColumnStorageDialectOf, $r as generatedTableName, $s as ResolvedColumnBehavior, Ai as catalogCheck, Ar as SchemaExpressionErrorCode, As as numeric, At as SourceSqlTypeMap, Bi as AliasedSource, Bo as ColumnHasDefault, Br as renderSchemaSql, Bs as DefaultDescriptor, Bt as TableDefinitions, Ci as SourceConstraintsRecord, Cs as date, Ct as SourceColumns, Di as UniqueConstraint, Dr as createSchemaDialect, Ds as nativeColumn, Dt as SourceKind, Ei as TableLike, Er as SchemaDialectHooks, Es as json, Et as SourceIdentity, Fi as references, Fo as ColumnDefaultOf, Fr as UnsafeSchemaSqlExpression, Fs as CanonicalLiteral, Ft as exposeColumns, Gi as alias, Go as ColumnIsNullable, Gr as SchemaNamingPolicy, Gs as GeneratedColumnDescriptor, Gt as TableRow, Hi as LateralSource, Ho as ColumnIdentityOf, Hr as unsafeSchemaSql, Hs as ExpressionGeneratedColumnDescriptor, Ht as TableInsertInput, Ii as unique, Io as ColumnDefinition, Ir as defineSchemaExpression, Is as ColumnBehaviorError, It as sourceIdentity, Ji as IndexOptions, Jo as ColumnOutput, Jr as SchemaTableNames, Js as IdentityDescriptor, Jt as table, Ki as lateral, Ko as ColumnOnUpdateOf, Kr as SchemaOptions, Ks as GeneratedColumnMode, Kt as TableSqlTypes, Li as uniqueConstraint, Lo as ColumnDefinitionConfig, Lr as isUnsafeSchemaSql, Ls as ColumnBehaviorErrorCode, Lt as AnyTable, Mi as check, Mr as SchemaExpressionMode, Ms as text, Mt as UnknownSourceSqlTypes, Ni as foreignKey, Nr as SchemaRenderContext, Ns as timestamp, Nt as createSource, Oi as UniqueConstraintOptions, Or as RenderedSchemaExpression, Os as nativeStorage, Ot as SourceProvision, Pi as primaryKey, Po as ColumnCodec, Pr as SchemaRenderOptions, Ps as uuid, Pt as customSource, Qi as SourceIndex, Qo as ColumnStorageDescriptor, Qr as defaultSchemaNamingPolicy, Qs as MysqlIdentityExtension, Ri as validateConstraintDialect, Ro as ColumnFromOptions, Rr as normalizeSchemaSql, Rs as ColumnDefault, Rt as Table, Si as SourceConstraint, Ss as columnResultValue, St as Source, Ti as SqliteConstraintExtension, Tr as SchemaDialect, Ts as integer, Tt as SourceConstraints, Ui as QueryAliasIdentity, Uo as ColumnInsertInput, Ur as Schema, Us as ExternalDefaultDescriptor, Ut as TableMetadataCallback, Vi as LateralIdentity, Vo as ColumnHasRuntimeDefault, Vr as schemaExpression, Vs as ExpressionDefaultDescriptor, Vt as TableIdentity, Wi as QuerySource, Wo as ColumnIsGenerated, Wr as SchemaDiagnostic, Ws as ExternalGeneratedColumnDescriptor, Wt as TableOptions, Xi as MysqlIndexExtension, Xo as ColumnStorage, Xr as SchemaTableRegistry, Xs as IdentityGeneration, Yi as IndexTerm, Yo as ColumnSqlType, Yr as SchemaTableRecord, Ys as IdentityDialectExtension, Zi as PostgresIndexExtension, Zo as ColumnStorageDeclarationOf, Zr as SchemaValidationError, Zs as LiteralDefaultDescriptor, _c as generatedSchemaObjectName, _i as KeyConstraint, _s as StorageTypeOf, _t as AnySource, ac as generatedColumn, ai as CheckConstraint, as as DialectNativeStorage, bc as materializeSchemaObjectRecord, bi as PostgresConstraintExtension, bs as boolean, bt as ProvidedSourceIdentity, cc as SchemaDialectExtension, ci as ConstraintOptions, cs as NativeStorageDescriptor, dc as SchemaMetadataValidationError, di as FieldLikeOptions, ds as PortableStorageDescriptor, ea as SqliteIndexExtension, ec as SchemaLiteralValue, ei as schema, es as ColumnStorageKindOf, fc as SchemaObjectIdentity, fi as ForeignKeyConstraint, fs as PortableStorageType, gc as freezeSchemaMetadata, gi as ForeignKeyTargetInput, gs as StorageOf, hc as dialectMismatchDiagnostic, hi as ForeignKeyTarget, hs as StorageDialectOf, ia as DeclaredColumnNullability, ic as externalGeneratedColumn, ii as CatalogCheckSql, is as ColumnUpdateInput, ji as catalogForeignKey, jr as SchemaExpressionInput, js as portableStorage, jt as SourceSqlTypes, ki as UniqueNullSemantics, kr as SchemaExpressionError, ks as nullable, kt as SourceRow, lc as SchemaDialectName, li as ConstraintTiming, ls as PortableColumnStorage, mc as assertSchemaDialectSupport, mi as ForeignKeyOptions, ms as StorageDescriptor, na as index, nc as canonicalLiteral, ni as AnyKeyColumn, ns as ColumnStorageType, oc as identityColumn, oi as CheckConstraintOptions, os as NativeColumnStorage, pc as SchemaObjectNameOptions, pi as ForeignKeyMatch, ps as StorageDeclarationOf, qi as IndexDialectExtension, qo as ColumnOptions, qr as SchemaTableEntry, qs as GeneratedDescriptor, qt as TableUpdateInput, ra as validateIndexDialect, rc as externalDefault, ri as CatalogCheckExpression, rs as ColumnStorageTypeOf, sc as resolveColumnBehavior, si as ConstraintDialectExtension, ss as NativeStorage, ta as TableIndex, tc as SqliteIdentityExtension, ti as schemaNamingPolicyVersion, ts as ColumnStorageOf, uc as SchemaMetadataDiagnostic, ui as FieldLike, us as PortableStorage, vc as isValidSchemaObjectName, vi as KeyConstraintOptions, vs as bigint, vt as CustomSource, wi as SourceLike, ws as encodeColumnParameter, wt as SourceConfig, xi as ReferentialAction, xs as column, xt as ProvidedSourceRow, yc as materializeSchemaObjectIdentity, yi as MysqlConstraintExtension, ys as binary, yt as CustomSourceOptions, zi as AliasIdentity, zo as ColumnGeneratedOf, zr as renderSchemaExpression, zs as ColumnDefaultInput, zt as TableColumns } from "./types-C0VkiwpR.mjs";
2
+ export { AliasIdentity, AliasedSource, AnyKeyColumn, AnySource, AnyTable, CanonicalLiteral, CatalogCheckExpression, CatalogCheckSql, CheckConstraint, CheckConstraintOptions, ColumnBehaviorError, ColumnBehaviorErrorCode, ColumnCodec, ColumnDefault, ColumnDefaultInput, ColumnDefaultOf, ColumnDefinition, ColumnDefinitionConfig, ColumnFromOptions, ColumnGeneratedOf, ColumnHasDefault, ColumnHasRuntimeDefault, ColumnIdentityOf, ColumnInsertInput, ColumnIsGenerated, ColumnIsNullable, ColumnOnUpdateOf, ColumnOptions, ColumnOutput, ColumnSqlType, ColumnStorage, ColumnStorageDeclarationOf, ColumnStorageDescriptor, ColumnStorageDialectOf, ColumnStorageKindOf, ColumnStorageOf, ColumnStorageType, ColumnStorageTypeOf, ColumnUpdateInput, ConstraintDialectExtension, ConstraintOptions, ConstraintTiming, CustomSource, CustomSourceOptions, type DeclaredColumnNullability, DefaultDescriptor, DialectNativeStorage, ExpressionDefaultDescriptor, ExpressionGeneratedColumnDescriptor, ExternalDefaultDescriptor, ExternalGeneratedColumnDescriptor, FieldLike, FieldLikeOptions, ForeignKeyConstraint, ForeignKeyMatch, ForeignKeyOptions, ForeignKeyTarget, ForeignKeyTargetInput, GeneratedColumnDescriptor, GeneratedColumnMode, GeneratedDescriptor, IdentityDescriptor, IdentityDialectExtension, IdentityGeneration, IndexDialectExtension, IndexOptions, IndexTerm, KeyConstraint, KeyConstraintOptions, LateralIdentity, LateralSource, LiteralDefaultDescriptor, MysqlConstraintExtension, MysqlIdentityExtension, MysqlIndexExtension, NativeColumnStorage, NativeStorage, NativeStorageDescriptor, PortableColumnStorage, PortableStorage, PortableStorageDescriptor, PortableStorageType, PostgresConstraintExtension, PostgresIndexExtension, ProvidedSourceIdentity, ProvidedSourceRow, QueryAliasIdentity, QuerySource, ReferentialAction, RenderedSchemaExpression, ResolvedColumnBehavior, Schema, SchemaDiagnostic, SchemaDialect, SchemaDialectExtension, SchemaDialectHooks, SchemaDialectName, SchemaExpressionError, SchemaExpressionErrorCode, SchemaExpressionInput, SchemaExpressionMode, SchemaLiteralValue, SchemaMetadataDiagnostic, SchemaMetadataValidationError, SchemaNamingPolicy, SchemaObjectIdentity, SchemaObjectNameOptions, SchemaOptions, SchemaRenderContext, SchemaRenderOptions, SchemaTableEntry, SchemaTableNames, SchemaTableRecord, SchemaTableRegistry, SchemaValidationError, Source, SourceColumns, SourceConfig, SourceConstraint, SourceConstraints, SourceConstraintsRecord, SourceIdentity, SourceIndex, SourceIndexesRecord, SourceKind, SourceLike, SourceProvision, SourceRow, SourceSqlTypeMap, SourceSqlTypes, SqliteConstraintExtension, SqliteIdentityExtension, SqliteIndexExtension, StorageDeclarationOf, StorageDescriptor, StorageDialectOf, StorageOf, StorageTypeOf, Table, TableColumns, TableDefinitions, TableIdentity, TableIndex, TableInsertInput, TableLike, TableMetadataCallback, TableOptions, TableRow, TableSqlTypes, TableUpdateInput, UniqueConstraint, UniqueConstraintOptions, UniqueNullSemantics, UnknownSourceSqlTypes, UnsafeSchemaSqlExpression, alias, assertSchemaDialectSupport, bigint, binary, boolean, canonicalLiteral, catalogCheck, catalogForeignKey, check, column, columnResultValue, createSchemaDialect, createSource, customSource, date, defaultSchemaNamingPolicy, defineSchemaExpression, dialectMismatchDiagnostic, encodeColumnParameter, exposeColumns, externalDefault, externalGeneratedColumn, foreignKey, freezeSchemaMetadata, generatedColumn, generatedSchemaObjectName, generatedTableName, identityColumn, index, integer, isUnsafeSchemaSql, isValidSchemaObjectName, json, lateral, materializeSchemaObjectIdentity, materializeSchemaObjectRecord, nativeColumn, nativeStorage, normalizeSchemaSql, nullable, numeric, portableStorage, primaryKey, references, renderSchemaExpression, renderSchemaSql, resolveColumnBehavior, schema, schemaExpression, schemaNamingPolicyVersion, sourceIdentity, table, text, timestamp, unique, uniqueConstraint, unsafeSchemaSql, uuid, validateConstraintDialect, validateIndexDialect };