@voltro/database 0.77.1 → 0.79.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.
@@ -200,7 +200,7 @@ function f(e) {
200
200
  idSchemeInput: e
201
201
  });
202
202
  }
203
- var p = () => d("text"), m = () => d("integer"), h = () => d("real"), g = (e, t = 0) => {
203
+ var p = () => d("text"), m = () => d("integer"), ee = () => d("real"), h = (e, t = 0) => {
204
204
  if (!Number.isInteger(e) || e <= 0) throw Error(`decimal(${String(e)}, ${String(t)}): precision must be a positive integer (the total number of significant digits, e.g. decimal(12, 2)).`);
205
205
  if (!Number.isInteger(t) || t < 0 || t > e) throw Error(`decimal(${String(e)}, ${String(t)}): scale must be an integer between 0 and precision (${e}).`);
206
206
  return new u({
@@ -211,7 +211,7 @@ var p = () => d("text"), m = () => d("integer"), h = () => d("real"), g = (e, t
211
211
  precision: e,
212
212
  scale: t
213
213
  });
214
- }, ee = g, te = () => d("bigint"), ne = (e, t) => {
214
+ }, te = h, ne = () => d("bigint"), re = (e, t) => {
215
215
  if (t.length === 0) throw Error(`dbEnum('${e}', []): enum must have at least one value`);
216
216
  return {
217
217
  name: e,
@@ -225,25 +225,25 @@ var p = () => d("text"), m = () => d("integer"), h = () => d("real"), g = (e, t
225
225
  enumValues: t
226
226
  })
227
227
  };
228
- }, _ = () => d("boolean"), v = () => d("timestamp"), re = () => d("date"), y = () => d("json"), b = () => d("bytes"), x = () => new u({
228
+ }, g = () => d("boolean"), _ = () => d("timestamp"), ie = () => d("date"), v = () => d("json"), y = () => d("bytes"), b = () => new u({
229
229
  type: "bytes",
230
230
  nullable: !0,
231
231
  unique: !1,
232
232
  hasDefault: !1,
233
233
  crdtManaged: !0
234
- }), ie = () => new u({
234
+ }), ae = () => new u({
235
235
  type: "bytes",
236
236
  nullable: !0,
237
237
  unique: !1,
238
238
  hasDefault: !1,
239
239
  crdtManaged: !0
240
- }), S = () => {
240
+ }), x = () => {
241
241
  throw Error("selfReference(): the target is resolved by table() — a column built with selfReference() must be declared inside a table({ … }) literal, not read before the table exists");
242
242
  };
243
- function ae(e) {
244
- return oe(S, e);
243
+ function oe(e) {
244
+ return se(x, e);
245
245
  }
246
- function oe(e, t) {
246
+ function se(e, t) {
247
247
  return new u({
248
248
  type: "reference",
249
249
  nullable: !1,
@@ -259,13 +259,13 @@ function oe(e, t) {
259
259
  ...t?.orphanPolicy ? { orphanPolicy: t.orphanPolicy } : {}
260
260
  });
261
261
  }
262
- var se = () => new u({
262
+ var ce = () => new u({
263
263
  type: "text",
264
264
  nullable: !0,
265
265
  unique: !1,
266
266
  hasDefault: !1,
267
267
  dropped: !0
268
- }), ce = (e, t) => {
268
+ }), le = (e, t) => {
269
269
  if (!Number.isInteger(e) || e <= 0) throw Error(`vector(${String(e)}): dimension must be a positive integer (the embedding length, e.g. vector(1536)).`);
270
270
  return new u({
271
271
  type: "vector",
@@ -275,13 +275,13 @@ var se = () => new u({
275
275
  vectorDim: e,
276
276
  vectorPrecision: t?.precision ?? "float32"
277
277
  });
278
- }, le = (e) => new u({
278
+ }, ue = (e) => new u({
279
279
  type: "array",
280
280
  nullable: !1,
281
281
  unique: !1,
282
282
  hasDefault: !1,
283
283
  arrayElement: e.__definition().type
284
- }), ue = () => d("interval"), de = (e, t = 4326) => new u({
284
+ }), de = () => d("interval"), fe = (e, t = 4326) => new u({
285
285
  type: "text",
286
286
  nullable: !1,
287
287
  unique: !1,
@@ -291,7 +291,7 @@ var se = () => new u({
291
291
  geomKind: e,
292
292
  srid: t
293
293
  }
294
- }), fe = (e, t = 4326) => new u({
294
+ }), pe = (e, t = 4326) => new u({
295
295
  type: "text",
296
296
  nullable: !1,
297
297
  unique: !1,
@@ -301,182 +301,182 @@ var se = () => new u({
301
301
  geomKind: e,
302
302
  srid: t
303
303
  }
304
- }), pe = (e) => new u({
304
+ }), me = (e) => new u({
305
305
  type: "raw",
306
306
  nullable: !1,
307
307
  unique: !1,
308
308
  hasDefault: !1,
309
309
  rawDdl: e
310
- }), C = (e) => {
310
+ }), S = (e) => {
311
311
  let t = {};
312
312
  for (let [n, r] of Object.entries(e)) t[n] = r.__definition();
313
313
  return t;
314
- }, me = /* @__PURE__ */ new WeakMap(), he = (e) => typeof e == "object" && e ? me.get(e) : void 0, ge = (e, t = {}) => {
314
+ }, he = /* @__PURE__ */ new WeakMap(), ge = (e) => typeof e == "object" && e ? he.get(e) : void 0, _e = (e, t = {}) => {
315
315
  let n = p();
316
- return me.set(n, {
316
+ return he.set(n, {
317
317
  target: e,
318
318
  orphanPolicy: t.orphanPolicy ?? "keep",
319
319
  onSoftDelete: t.onSoftDelete ?? !1
320
320
  }), n;
321
- }, w = /* @__PURE__ */ new Map(), _e = (e, t) => {
321
+ }, C = /* @__PURE__ */ new Map(), ve = (e, t) => {
322
322
  if (t.from === t.to) throw Error(`declareEnumRename('${e}'): \`from\` and \`to\` are both '${t.from}' — a rename must change the value.`);
323
- let n = w.get(e) ?? [];
323
+ let n = C.get(e) ?? [];
324
324
  for (let r of n) {
325
325
  if (r.from === t.from && r.to === t.to) return;
326
326
  if (r.from === t.from && r.to !== t.to) throw Error(`declareEnumRename('${e}'): value '${t.from}' is already declared as renamed to '${r.to}', cannot also rename it to '${t.to}'.`);
327
327
  }
328
- n.push(t), w.set(e, n);
329
- }, ve = (e) => w.get(e) ?? [], ye = () => w, be = () => {
330
- w.clear();
331
- }, xe = (t) => {
328
+ n.push(t), C.set(e, n);
329
+ }, ye = (e) => C.get(e) ?? [], be = () => C, xe = () => {
330
+ C.clear();
331
+ }, Se = (t) => {
332
332
  let r = t;
333
333
  for (let t = 0; t < 4 && n.isFiberFailure(r); t++) r = e.squash(r[n.FiberFailureCauseId]);
334
334
  return r;
335
- }, T = (t, r = 0) => {
335
+ }, w = (t, r = 0) => {
336
336
  if (r >= 4 || !n.isFiberFailure(t)) return [t];
337
337
  let i = t[n.FiberFailureCauseId], a = [...e.failures(i), ...e.defects(i)];
338
338
  if (a.length === 0) return [e.squash(i)];
339
339
  let o = [];
340
- for (let e of a.slice(0, 8)) o.push(...T(e, r + 1));
340
+ for (let e of a.slice(0, 8)) o.push(...w(e, r + 1));
341
341
  return o;
342
- }, Se = (e) => e.dbCode !== void 0 || e.dbErrno !== void 0 || e.dbNumber !== void 0 || e.dbSqlState !== void 0 || e.dbConstraint !== void 0, Ce = (e) => {
343
- let t = {}, n = [], r = xe(e);
342
+ }, Ce = (e) => e.dbCode !== void 0 || e.dbErrno !== void 0 || e.dbNumber !== void 0 || e.dbSqlState !== void 0 || e.dbConstraint !== void 0, we = (e) => {
343
+ let t = {}, n = [], r = Se(e);
344
344
  for (let e = 0; e < 8 && typeof r == "object" && r; e++) {
345
345
  let e = r;
346
346
  t.dbCode === void 0 && (typeof e.code == "string" || typeof e.code == "number") && (t.dbCode = e.code), t.dbErrno === void 0 && typeof e.errno == "number" && (t.dbErrno = e.errno), t.dbNumber === void 0 && typeof e.number == "number" && (t.dbNumber = e.number), t.dbSqlState === void 0 && typeof e.sqlState == "string" && (t.dbSqlState = e.sqlState), t.dbBindings === void 0 && typeof e.voltroBindings == "string" && (t.dbBindings = e.voltroBindings), t.dbStatement === void 0 && typeof e.sql == "string" && e.sql.includes("?") && (t.dbStatement = e.sql, t.dbPlaceholders = (e.sql.match(/\?/g) ?? []).length), t.dbFatal === void 0 && typeof e.fatal == "boolean" && (t.dbFatal = e.fatal), t.dbConstraint === void 0 && typeof e.constraint == "string" && (t.dbConstraint = e.constraint), t.dbTable === void 0 && typeof e.table == "string" && (t.dbTable = e.table), t.dbColumn === void 0 && typeof e.column == "string" && (t.dbColumn = e.column), t.dbSchema === void 0 && typeof e.schema == "string" && (t.dbSchema = e.schema);
347
347
  let i = e.sqlMessage ?? e.detail;
348
348
  t.dbMessage === void 0 && typeof i == "string" && (t.dbMessage = i);
349
349
  let a = typeof e.constructor == "function" ? e.constructor.name : void 0, o = typeof e._tag == "string" && e._tag || typeof e.name == "string" && e.name || (typeof a == "string" && a !== "Object" ? a : void 0), s = typeof e.message == "string" ? e.message : void 0;
350
- (o || s) && n.push(`${o || "Error"}${s ? `: ${s.slice(0, 200)}` : ""}`), r = xe(e.cause);
350
+ (o || s) && n.push(`${o || "Error"}${s ? `: ${s.slice(0, 200)}` : ""}`), r = Se(e.cause);
351
351
  }
352
352
  return n.length > 0 && (t.dbCauseChain = n.join(" ← "), t.dbMessage === void 0 && (t.dbMessage = n[n.length - 1])), t;
353
- }, we = (e) => {
354
- let t = T(e).map(Ce);
353
+ }, Te = (e) => {
354
+ let t = w(e).map(we);
355
355
  if (t.length <= 1) return t[0] ?? {};
356
- let n = t.find(Se) ?? t[0], r = t.filter((e) => e !== n).map((e) => e.dbCauseChain).filter((e) => typeof e == "string");
356
+ let n = t.find(Ce) ?? t[0], r = t.filter((e) => e !== n).map((e) => e.dbCauseChain).filter((e) => typeof e == "string");
357
357
  if (r.length === 0) return n;
358
358
  let i = typeof n.dbCauseChain == "string" ? n.dbCauseChain : void 0;
359
359
  return {
360
360
  ...n,
361
361
  dbCauseChain: [i, ...r].filter(Boolean).join(" ‖ ")
362
362
  };
363
- }, Te = (e, t) => {
364
- let n = De(e);
363
+ }, Ee = (e, t) => {
364
+ let n = Oe(e);
365
365
  if (n !== void 0) return n;
366
- let r = we(e), i = Ne(r, t);
366
+ let r = Te(e), i = Pe(r, t);
367
367
  if (i !== void 0) {
368
368
  let e = i.constraint ?? i.column;
369
369
  return e === void 0 ? i.kind : `${i.kind}: ${e}`;
370
370
  }
371
- let a = r.dbCode ?? r.dbSqlState ?? r.dbErrno ?? r.dbNumber, o = Ae(e);
372
- return a !== void 0 && Oe.test(String(a)) ? `${o} (${String(a)})` : o;
373
- }, Ee = Symbol.for("@voltro/database/authoredMessage"), E = (e, t) => {
371
+ let a = r.dbCode ?? r.dbSqlState ?? r.dbErrno ?? r.dbNumber, o = je(e);
372
+ return a !== void 0 && ke.test(String(a)) ? `${o} (${String(a)})` : o;
373
+ }, De = Symbol.for("@voltro/database/authoredMessage"), T = (e, t) => {
374
374
  let n = t === void 0 ? Error(e) : Error(e, t);
375
- return Object.defineProperty(n, Ee, {
375
+ return Object.defineProperty(n, De, {
376
376
  value: !0,
377
377
  enumerable: !1
378
378
  }), n;
379
- }, De = (e) => {
380
- for (let t of T(e)) {
379
+ }, Oe = (e) => {
380
+ for (let t of w(e)) {
381
381
  let e = t;
382
382
  for (let t = 0; typeof e == "object" && e && t < 8; t += 1) {
383
- if (e[Ee] === !0) {
383
+ if (e[De] === !0) {
384
384
  let t = e.message;
385
385
  if (typeof t == "string" && t.length > 0) return t;
386
386
  }
387
387
  e = e.cause;
388
388
  }
389
389
  }
390
- }, Oe = /^[A-Za-z0-9_]{1,32}$/, ke = /^[A-Za-z_][A-Za-z0-9_]{0,63}$/, Ae = (e) => {
390
+ }, ke = /^[A-Za-z0-9_]{1,32}$/, Ae = /^[A-Za-z_][A-Za-z0-9_]{0,63}$/, je = (e) => {
391
391
  let t = e?._tag, n = e?.name, r = (typeof t == "string" ? t : typeof n == "string" ? n : "").split(/[^A-Za-z0-9_]+/).filter(Boolean).pop();
392
- return r !== void 0 && ke.test(r) ? r : "unknown";
393
- }, je = /^[A-Za-z_][A-Za-z0-9_$]*$/, D = (e) => e !== void 0 && e.length <= 128 && je.test(e) ? e : void 0, Me = (e) => e === void 0 ? void 0 : e.split(".").pop() ?? e, O = (e, ...t) => {
392
+ return r !== void 0 && Ae.test(r) ? r : "unknown";
393
+ }, Me = /^[A-Za-z_][A-Za-z0-9_$]*$/, E = (e) => e !== void 0 && e.length <= 128 && Me.test(e) ? e : void 0, Ne = (e) => e === void 0 ? void 0 : e.split(".").pop() ?? e, D = (e, ...t) => {
394
394
  for (let n of t) {
395
395
  let t = n.exec(e);
396
396
  if (t?.[1] !== void 0) return t[1];
397
397
  }
398
- }, Ne = (e, t) => {
398
+ }, Pe = (e, t) => {
399
399
  let n = e.dbCode, r = e.dbErrno, i = e.dbNumber, a = typeof e.dbMessage == "string" ? e.dbMessage : "", o = `${typeof e.dbCauseChain == "string" ? e.dbCauseChain : ""} ${a}`;
400
400
  if (n === "23503") {
401
- let t = D(e.dbConstraint);
401
+ let t = E(e.dbConstraint);
402
402
  return {
403
403
  kind: /is still referenced from table/i.test(o) ? "foreignKeyInUse" : "foreignKey",
404
404
  ...t === void 0 ? {} : { constraint: t }
405
405
  };
406
406
  }
407
407
  if (n === "23505") {
408
- let t = D(e.dbConstraint);
408
+ let t = E(e.dbConstraint);
409
409
  return {
410
410
  kind: "unique",
411
411
  ...t === void 0 ? {} : { constraint: t }
412
412
  };
413
413
  }
414
414
  if (n === "23502") {
415
- let t = D(e.dbColumn);
415
+ let t = E(e.dbColumn);
416
416
  return {
417
417
  kind: "notNull",
418
418
  ...t === void 0 ? {} : { column: t }
419
419
  };
420
420
  }
421
421
  if (n === "23514") {
422
- let t = D(e.dbConstraint);
422
+ let t = E(e.dbConstraint);
423
423
  return {
424
424
  kind: "check",
425
425
  ...t === void 0 ? {} : { constraint: t }
426
426
  };
427
427
  }
428
428
  if (r === 1452 || r === 1451) {
429
- let e = D(O(o, /CONSTRAINT `([^`]+)`/));
429
+ let e = E(D(o, /CONSTRAINT `([^`]+)`/));
430
430
  return {
431
431
  kind: r === 1451 ? "foreignKeyInUse" : "foreignKey",
432
432
  ...e === void 0 ? {} : { constraint: e }
433
433
  };
434
434
  }
435
435
  if (r === 1062) {
436
- let e = D(Me(O(o, /for key '([^']+)'/)));
436
+ let e = E(Ne(D(o, /for key '([^']+)'/)));
437
437
  return {
438
438
  kind: "unique",
439
439
  ...e === void 0 ? {} : { constraint: e }
440
440
  };
441
441
  }
442
442
  if (r === 1048 || r === 1364) {
443
- let e = D(O(o, /Column '([^']+)' cannot be null/, /Field '([^']+)' doesn't have a default value/));
443
+ let e = E(D(o, /Column '([^']+)' cannot be null/, /Field '([^']+)' doesn't have a default value/));
444
444
  return {
445
445
  kind: "notNull",
446
446
  ...e === void 0 ? {} : { column: e }
447
447
  };
448
448
  }
449
449
  if (r === 3819 || r === 4025) {
450
- let e = D(O(o, /Check constraint '([^']+)'/, /CONSTRAINT `([^`]+)` failed/));
450
+ let e = E(D(o, /Check constraint '([^']+)'/, /CONSTRAINT `([^`]+)` failed/));
451
451
  return {
452
452
  kind: "check",
453
453
  ...e === void 0 ? {} : { constraint: e }
454
454
  };
455
455
  }
456
456
  if (i === 547) {
457
- let e = O(o, /(?:FOREIGN KEY|REFERENCE) constraint "([^"]+)"/), t = O(o, /CHECK constraint "([^"]+)"/);
457
+ let e = D(o, /(?:FOREIGN KEY|REFERENCE) constraint "([^"]+)"/), t = D(o, /CHECK constraint "([^"]+)"/);
458
458
  if (t !== void 0 && e === void 0) {
459
- let e = D(t);
459
+ let e = E(t);
460
460
  return {
461
461
  kind: "check",
462
462
  ...e === void 0 ? {} : { constraint: e }
463
463
  };
464
464
  }
465
- let n = /REFERENCE constraint/.test(o), r = D(e);
465
+ let n = /REFERENCE constraint/.test(o), r = E(e);
466
466
  return {
467
467
  kind: n ? "foreignKeyInUse" : "foreignKey",
468
468
  ...r === void 0 ? {} : { constraint: r }
469
469
  };
470
470
  }
471
471
  if (i === 2627 || i === 2601) {
472
- let e = D(O(o, /(?:UNIQUE KEY|PRIMARY KEY) constraint '([^']+)'/, /index '([^']+)'/));
472
+ let e = E(D(o, /(?:UNIQUE KEY|PRIMARY KEY) constraint '([^']+)'/, /index '([^']+)'/));
473
473
  return {
474
474
  kind: "unique",
475
475
  ...e === void 0 ? {} : { constraint: e }
476
476
  };
477
477
  }
478
478
  if (i === 515) {
479
- let e = D(O(o, /Cannot insert the value NULL into column '([^']+)'/));
479
+ let e = E(D(o, /Cannot insert the value NULL into column '([^']+)'/));
480
480
  return {
481
481
  kind: "notNull",
482
482
  ...e === void 0 ? {} : { column: e }
@@ -484,34 +484,40 @@ var se = () => new u({
484
484
  }
485
485
  if (n === "SQLITE_CONSTRAINT_FOREIGNKEY") return { kind: t === "delete" || t === "deleteMany" || t === "hardDelete" ? "foreignKeyInUse" : "foreignKey" };
486
486
  if (n === "SQLITE_CONSTRAINT_UNIQUE" || n === "SQLITE_CONSTRAINT_PRIMARYKEY") {
487
- let e = D(Me(O(o, /UNIQUE constraint failed: ([^,\s]+)/)));
487
+ let e = E(Ne(D(o, /UNIQUE constraint failed: ([^,\s]+)/)));
488
488
  return {
489
489
  kind: "unique",
490
490
  ...e === void 0 ? {} : { column: e }
491
491
  };
492
492
  }
493
493
  if (n === "SQLITE_CONSTRAINT_NOTNULL") {
494
- let e = D(Me(O(o, /NOT NULL constraint failed: ([^,\s]+)/)));
494
+ let e = E(Ne(D(o, /NOT NULL constraint failed: ([^,\s]+)/)));
495
495
  return {
496
496
  kind: "notNull",
497
497
  ...e === void 0 ? {} : { column: e }
498
498
  };
499
499
  }
500
500
  if (n === "SQLITE_CONSTRAINT_CHECK") {
501
- let e = D(O(a, /CHECK constraint failed: (.+)$/));
501
+ let e = E(D(a, /CHECK constraint failed: (.+)$/));
502
502
  return {
503
503
  kind: "check",
504
504
  ...e === void 0 ? {} : { constraint: e }
505
505
  };
506
506
  }
507
- }, Pe = (e) => {
508
- let t = Ne(e)?.kind;
509
- return t === "foreignKey" || t === "foreignKeyInUse";
510
507
  }, Fe = (e) => {
508
+ let t = Pe(e)?.kind;
509
+ return t === "foreignKey" || t === "foreignKeyInUse";
510
+ }, Ie = (e) => {
511
511
  let t = e.dbCode, n = e.dbErrno;
512
512
  return t === "57014" || n === 3024 || n === 1969 || t === "ETIMEOUT" || t === "SQLITE_INTERRUPT";
513
- }, Ie = (e) => {
514
- let t = we(e), n = [
513
+ }, Le = (e) => {
514
+ if (e.dbErrno !== 1366) return;
515
+ let t = `${typeof e.dbCauseChain == "string" ? e.dbCauseChain : ""} ${typeof e.dbMessage == "string" ? e.dbMessage : ""}`;
516
+ if (/Incorrect string value: '\\x(F[0-4])/i.exec(t) === null) return;
517
+ let n = D(t, /for column [`']?(?:[^`'.]+[`']?\.[`']?)*([^`'.]+)[`']? at row/);
518
+ return `${n === void 0 ? "the column" : `column '${n}'`} is stored in a character set that cannot hold a 4-byte character (utf8mb3). Declare the store's character set in app.config.ts — store: { dialect: 'mariadb' | 'mysql', charset: 'utf8mb4' } — and run \`voltro db plan\`: every declared table is created with it and converted to it.`;
519
+ }, Re = (e) => {
520
+ let t = Te(e), n = [
515
521
  t.dbCode === void 0 ? void 0 : `code=${String(t.dbCode)}`,
516
522
  t.dbErrno === void 0 ? void 0 : `errno=${String(t.dbErrno)}`,
517
523
  t.dbNumber === void 0 ? void 0 : `number=${String(t.dbNumber)}`,
@@ -519,8 +525,10 @@ var se = () => new u({
519
525
  t.dbConstraint === void 0 ? void 0 : `constraint=${String(t.dbConstraint)}`,
520
526
  t.dbPlaceholders === void 0 ? void 0 : `placeholders=${String(t.dbPlaceholders)}`
521
527
  ].filter((e) => e !== void 0), r = typeof e?.message == "string" ? e.message : void 0, i = typeof t.dbMessage == "string" ? t.dbMessage : void 0, a = i === void 0 ? void 0 : n.length > 0 || i !== r && i !== `Error: ${String(r)}` ? i : void 0, o = typeof t.dbBindings == "string" ? `\n bindings: ${t.dbBindings}` : "", s = typeof t.dbStatement == "string" ? `\n statement: ${t.dbStatement.length <= 400 ? t.dbStatement : `${t.dbStatement.slice(0, 400)}…`}` : "";
522
- if (a !== void 0 || n.length !== 0) return [a, n.length > 0 ? `[${n.join(" ")}]` : void 0].filter((e) => e !== void 0 && e !== "").join(" ") + s + o;
523
- }, Le = (e) => Object.entries(e).map(([e, t]) => `${e}:${Re(t)}`).join(" "), Re = (e) => {
528
+ if (a === void 0 && n.length === 0) return;
529
+ let c = Le(t), l = c === void 0 ? "" : `\n hint: ${c}`;
530
+ return [a, n.length > 0 ? `[${n.join(" ")}]` : void 0].filter((e) => e !== void 0 && e !== "").join(" ") + l + s + o;
531
+ }, ze = (e) => Object.entries(e).map(([e, t]) => `${e}:${Be(t)}`).join(" "), Be = (e) => {
524
532
  if (e === null) return "null";
525
533
  if (e === void 0) return "undefined";
526
534
  if (typeof e == "bigint") return "bigint";
@@ -530,24 +538,24 @@ var se = () => new u({
530
538
  if (globalThis.Buffer !== void 0 && globalThis.Buffer.isBuffer(e)) return "Buffer";
531
539
  let t = e.constructor?.name;
532
540
  return typeof t == "string" && t !== "" ? t : "Object";
533
- }, ze = 63, Be = 60, k = [], A = (e) => {
534
- k.includes(e) || k.push(e);
535
- }, Ve = () => {
536
- let e = k.slice();
537
- return k.length = 0, e;
538
- }, He = /^[a-zA-Z_][a-zA-Z0-9_]*$/, Ue = (e, t) => {
541
+ }, Ve = 63, He = 60, O = [], k = (e) => {
542
+ O.includes(e) || O.push(e);
543
+ }, Ue = () => {
544
+ let e = O.slice();
545
+ return O.length = 0, e;
546
+ }, We = /^[a-zA-Z_][a-zA-Z0-9_]*$/, Ge = (e, t) => {
539
547
  if (t.length === 0) throw Error(`${e} cannot be empty.`);
540
- if (!He.test(t)) throw Error(`${e} '${t}' contains characters outside [A-Za-z0-9_] or starts with a digit. Dialect-portable identifiers must match /^[a-zA-Z_][a-zA-Z0-9_]*$/.`);
541
- }, j = (e) => {
542
- if (Ue("table name", e), e.length > 63) throw Error(`table name '${e}' is ${e.length} chars — exceeds the 63-byte cross-dialect limit (Postgres floor). Shorten the name; long table names also cascade into auto-named indexes and FK constraints that would themselves exceed the limit.`);
543
- e.length > 60 && A(`table name '${e}' is ${e.length} chars — ${63 - e.length} from the Postgres 63-byte limit. Auto-named indexes on this table will run out of room fast.`);
544
- }, M = (e, t) => {
545
- if (Ue("column name", t), t.length > 63) throw Error(`column '${t}' on table '${e}' is ${t.length} chars — exceeds the 63-byte cross-dialect limit (Postgres floor). Rename it.`);
546
- t.length > 60 && A(`column '${t}' on table '${e}' is ${t.length} chars — close to the 63-byte limit.`);
547
- }, N = (e, t, n, r) => {
548
- if (Ue("index name", t), t.length > 63) throw Error(n ? `auto-named index '${t}' on table '${e}' is ${t.length} chars — exceeds the 63-byte cross-dialect limit (Postgres floor). Supply an explicit short name: .index('<shortName>', ${JSON.stringify([...r])}).` : `index name '${t}' on table '${e}' is ${t.length} chars — exceeds the 63-byte cross-dialect limit (Postgres floor). Shorten it.`);
549
- t.length > 60 && A(`index '${t}' on table '${e}' is ${t.length} chars — ${63 - t.length} from the 63-byte limit. ${n ? `Consider .index('<shortName>', ${JSON.stringify([...r])}) before it grows.` : ""}`);
550
- }, P = (e, t) => {
548
+ if (!We.test(t)) throw Error(`${e} '${t}' contains characters outside [A-Za-z0-9_] or starts with a digit. Dialect-portable identifiers must match /^[a-zA-Z_][a-zA-Z0-9_]*$/.`);
549
+ }, A = (e) => {
550
+ if (Ge("table name", e), e.length > 63) throw Error(`table name '${e}' is ${e.length} chars — exceeds the 63-byte cross-dialect limit (Postgres floor). Shorten the name; long table names also cascade into auto-named indexes and FK constraints that would themselves exceed the limit.`);
551
+ e.length > 60 && k(`table name '${e}' is ${e.length} chars — ${63 - e.length} from the Postgres 63-byte limit. Auto-named indexes on this table will run out of room fast.`);
552
+ }, j = (e, t) => {
553
+ if (Ge("column name", t), t.length > 63) throw Error(`column '${t}' on table '${e}' is ${t.length} chars — exceeds the 63-byte cross-dialect limit (Postgres floor). Rename it.`);
554
+ t.length > 60 && k(`column '${t}' on table '${e}' is ${t.length} chars — close to the 63-byte limit.`);
555
+ }, M = (e, t, n, r) => {
556
+ if (Ge("index name", t), t.length > 63) throw Error(n ? `auto-named index '${t}' on table '${e}' is ${t.length} chars — exceeds the 63-byte cross-dialect limit (Postgres floor). Supply an explicit short name: .index('<shortName>', ${JSON.stringify([...r])}).` : `index name '${t}' on table '${e}' is ${t.length} chars — exceeds the 63-byte cross-dialect limit (Postgres floor). Shorten it.`);
557
+ t.length > 60 && k(`index '${t}' on table '${e}' is ${t.length} chars — ${63 - t.length} from the 63-byte limit. ${n ? `Consider .index('<shortName>', ${JSON.stringify([...r])}) before it grows.` : ""}`);
558
+ }, N = (e, t) => {
551
559
  if (e.length === 0) throw Error(`typeid prefix on table '${t.tableName}' cannot be empty.`);
552
560
  if (!/^[a-z][a-z0-9_]*$/.test(e)) {
553
561
  let n = t.kind === "derived" ? "the derived prefix doesn't match typeid's required shape — supply an explicit one via id({ prefix: '...' })." : "the prefix must match typeid's required shape /^[a-z][a-z0-9_]*$/.";
@@ -557,44 +565,44 @@ var se = () => new u({
557
565
  let n = t.kind === "derived" ? "shorten the table name, or supply an explicit short prefix via id({ prefix: '...' })." : "pick a shorter prefix.";
558
566
  throw Error(`typeid prefix '${e}' on table '${t.tableName}' is ${e.length} chars — exceeds the 63-byte limit; ${n}`);
559
567
  }
560
- e.length > 60 && A(`typeid prefix '${e}' on table '${t.tableName}' is ${e.length} chars — close to the 63-byte limit. Generated ids will be even longer (prefix + '_' + 26).`);
561
- }, We = 1704067200000n, Ge = 10n, Ke = 12n, qe = (1n << Ge) - 1n, Je = (1n << Ke) - 1n, Ye = Ke, Xe = 22n, Ze = () => {
568
+ e.length > 60 && k(`typeid prefix '${e}' on table '${t.tableName}' is ${e.length} chars — close to the 63-byte limit. Generated ids will be even longer (prefix + '_' + 26).`);
569
+ }, Ke = 1704067200000n, qe = 10n, Je = 12n, Ye = (1n << qe) - 1n, Xe = (1n << Je) - 1n, Ze = Je, Qe = 22n, $e = () => {
562
570
  let e = process.env.SNOWFLAKE_MACHINE_ID;
563
571
  if (e === void 0 || e === "") return 0n;
564
572
  let t = BigInt(e);
565
- if (t < 0n || t > qe) throw Error(`SNOWFLAKE_MACHINE_ID out of range: ${e}. Must be 0..${qe}.`);
573
+ if (t < 0n || t > Ye) throw Error(`SNOWFLAKE_MACHINE_ID out of range: ${e}. Must be 0..${Ye}.`);
566
574
  return t;
567
- }, Qe = () => ({
575
+ }, et = () => ({
568
576
  lastMs: 0n,
569
577
  sequence: 0n,
570
- machineId: Ze()
571
- }), F, $e = () => (F === void 0 && (F = Qe()), F), et = () => {
572
- F = Qe();
573
- }, tt = () => BigInt(Date.now()), nt = (e) => {
574
- let t = tt();
575
- for (; t <= e;) t = tt();
578
+ machineId: $e()
579
+ }), P, tt = () => (P === void 0 && (P = et()), P), nt = () => {
580
+ P = et();
581
+ }, rt = () => BigInt(Date.now()), it = (e) => {
582
+ let t = rt();
583
+ for (; t <= e;) t = rt();
576
584
  return t;
577
- }, rt = () => {
578
- let e = $e(), t = tt();
579
- t === e.lastMs ? (e.sequence = e.sequence + 1n & Je, e.sequence === 0n && (t = nt(e.lastMs), e.lastMs = t)) : (e.sequence = 0n, e.lastMs = t);
580
- let n = t - We;
585
+ }, at = () => {
586
+ let e = tt(), t = rt();
587
+ t === e.lastMs ? (e.sequence = e.sequence + 1n & Xe, e.sequence === 0n && (t = it(e.lastMs), e.lastMs = t)) : (e.sequence = 0n, e.lastMs = t);
588
+ let n = t - Ke;
581
589
  if (n < 0n) throw Error("Snowflake timestamp before configured epoch (2024-01-01). System clock is wrong.");
582
- return (n << Xe | e.machineId << Ye | e.sequence).toString();
583
- }, it = (e) => {
590
+ return (n << Qe | e.machineId << Ze | e.sequence).toString();
591
+ }, ot = (e) => {
584
592
  let t = e.toLowerCase();
585
593
  if (t.startsWith("_")) throw Error(`cannot derive a typeid prefix for table '${e}' (table names starting with '_' are not valid typeid prefixes). Pick an explicit prefix via id({ prefix: '...' }) or use a different scheme like id({ scheme: 'numeric' }) for internal tables.`);
586
594
  if (!/^[a-z][a-z0-9_]*$/.test(t)) throw Error(`cannot derive a typeid prefix from table name '${e}' (must match [a-z][a-z0-9_]*). Pick an explicit prefix via id({ prefix: '...' }).`);
587
595
  let n = t.endsWith("ies") && t.length > 3 ? t.slice(0, -3) + "y" : t.endsWith("ses") || t.endsWith("xes") || t.endsWith("zes") || t.endsWith("shes") || t.endsWith("ches") ? t.slice(0, -2) : t.endsWith("s") && t.length > 1 ? t.slice(0, -1) : t;
588
- return P(n, {
596
+ return N(n, {
589
597
  kind: "derived",
590
598
  tableName: e
591
599
  }), n;
592
- }, at = (e, t) => {
600
+ }, st = (e, t) => {
593
601
  if (e === void 0) return {
594
602
  kind: "typeid",
595
- prefix: it(t)
603
+ prefix: ot(t)
596
604
  };
597
- if ("prefix" in e && !("scheme" in e)) return P(e.prefix, {
605
+ if ("prefix" in e && !("scheme" in e)) return N(e.prefix, {
598
606
  kind: "explicit",
599
607
  tableName: t
600
608
  }), {
@@ -604,8 +612,8 @@ var se = () => new u({
604
612
  if (!("scheme" in e)) throw Error("invalid id() options: no scheme or prefix");
605
613
  switch (e.scheme) {
606
614
  case "typeid": {
607
- let n = e.prefix ?? it(t);
608
- return e.prefix !== void 0 && P(e.prefix, {
615
+ let n = e.prefix ?? ot(t);
616
+ return e.prefix !== void 0 && N(e.prefix, {
609
617
  kind: "explicit",
610
618
  tableName: t
611
619
  }), {
@@ -621,22 +629,22 @@ var se = () => new u({
621
629
  generate: e.generate
622
630
  };
623
631
  }
624
- }, ot = (e, t) => {
632
+ }, ct = (e, t) => {
625
633
  switch (e.kind) {
626
634
  case "typeid": return i(e.prefix).toString();
627
635
  case "ulid": return a();
628
636
  case "numeric": return null;
629
- case "snowflake": return rt();
637
+ case "snowflake": return at();
630
638
  case "custom": return e.generate(t);
631
639
  }
632
- }, st = (e) => ({
633
- fields: C(e.fields),
640
+ }, lt = (e) => ({
641
+ fields: S(e.fields),
634
642
  ...e.id === void 0 ? {} : { id: e.id },
635
643
  ...e.requires === void 0 ? {} : { requires: e.requires },
636
644
  ...e.indexes === void 0 ? {} : { indexes: e.indexes },
637
645
  ...e.behaviors === void 0 ? {} : { behaviors: e.behaviors },
638
646
  ...e.policies === void 0 ? {} : { policies: e.policies }
639
- }), ct = st, lt = (e) => {
647
+ }), ut = lt, dt = (e) => {
640
648
  let t = /* @__PURE__ */ new Set(), n = [], r = (e) => {
641
649
  let i = e.id ?? e;
642
650
  if (!t.has(i)) {
@@ -646,7 +654,7 @@ var se = () => new u({
646
654
  };
647
655
  for (let t of e) r(t);
648
656
  return n;
649
- }, ut = (e, ...t) => {
657
+ }, ft = (e, ...t) => {
650
658
  if (t.length === 0) throw Error(`jsonIndex("${e}"): at least one path segment is required`);
651
659
  let n = (r) => ({
652
660
  jsonPath: {
@@ -657,14 +665,14 @@ var se = () => new u({
657
665
  numeric: () => n(!0)
658
666
  });
659
667
  return n(!1);
660
- }, dt = (e = "cosine", t = "float32") => {
668
+ }, pt = (e = "cosine", t = "float32") => {
661
669
  let n = t === "half" ? "halfvec" : "vector";
662
670
  switch (e) {
663
671
  case "cosine": return `${n}_cosine_ops`;
664
672
  case "l2": return `${n}_l2_ops`;
665
673
  case "inner": return `${n}_ip_ops`;
666
674
  }
667
- }, ft = [
675
+ }, mt = [
668
676
  "id",
669
677
  "tenantId",
670
678
  "createdAt",
@@ -673,7 +681,7 @@ var se = () => new u({
673
681
  "updatedBy",
674
682
  "deletedAt",
675
683
  "deletedBy"
676
- ], pt = (e) => e.id ?? `<anonymous mixin: ${Object.keys(e.fields).join(", ")}>`, mt = (e, t) => `${e}_${t.join("_")}_idx`, ht = (e, t) => `${e}_${t.join("_")}_uq`, gt = (e, t, n, r, i) => {
684
+ ], ht = (e) => e.id ?? `<anonymous mixin: ${Object.keys(e.fields).join(", ")}>`, gt = (e, t) => `${e}_${t.join("_")}_idx`, _t = (e, t) => `${e}_${t.join("_")}_uq`, vt = (e, t, n, r, i) => {
677
685
  if (n !== "hnsw") return;
678
686
  if (r.length !== 1) throw Error(`hnsw index '${t}' on table '${e}' must cover exactly one vector column — got ${r.length} fields. pgvector's HNSW access method indexes a single vector column.`);
679
687
  let a = r[0];
@@ -681,14 +689,14 @@ var se = () => new u({
681
689
  let o = i[a];
682
690
  if (o === void 0) throw Error(`hnsw index '${t}' on table '${e}' references unknown column '${a}'.`);
683
691
  if (o.type !== "vector") throw Error(`hnsw index '${t}' on table '${e}' requires a vector() column — column '${a}' is '${o.type}'. HNSW is the pgvector approximate-nearest-neighbour method and only applies to vectors.`);
684
- }, _t = (e, t) => {
692
+ }, yt = (e, t) => {
685
693
  let n;
686
694
  for (let [r, i] of Object.entries(e)) i.type === "id" && i.idScheme === void 0 && (n === void 0 && (n = { ...e }), n[r] = {
687
695
  ...i,
688
- idScheme: at(i.idSchemeInput, t)
696
+ idScheme: st(i.idSchemeInput, t)
689
697
  });
690
698
  return n ?? e;
691
- }, I = (e) => {
699
+ }, F = (e) => {
692
700
  let t = e.appliedPrimaryKey ?? [];
693
701
  return {
694
702
  tableName: e.tableName,
@@ -707,8 +715,8 @@ var se = () => new u({
707
715
  ...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema },
708
716
  fullTextIndex: ((t, n, r) => {
709
717
  if (n.length === 0) throw Error(`fullTextIndex '${t}' on '${e.tableName}' has no columns.`);
710
- if (N(e.tableName, t, !1, n), e.appliedFullText.some((e) => e.name === t)) throw Error(`duplicate full-text index '${t}' on table '${e.tableName}'.`);
711
- return I({
718
+ if (M(e.tableName, t, !1, n), e.appliedFullText.some((e) => e.name === t)) throw Error(`duplicate full-text index '${t}' on table '${e.tableName}'.`);
719
+ return F({
712
720
  ...e,
713
721
  tableName: e.tableName,
714
722
  fields: e.fields,
@@ -729,27 +737,27 @@ var se = () => new u({
729
737
  });
730
738
  }),
731
739
  with: ((...t) => {
732
- let n = lt(t), r = { ...e.fields }, i = /* @__PURE__ */ new Map();
740
+ let n = dt(t), r = { ...e.fields }, i = /* @__PURE__ */ new Map();
733
741
  for (let e of Object.keys(r)) i.set(e, {
734
742
  id: "<table>",
735
743
  fields: {}
736
744
  });
737
745
  for (let t of n) for (let [n, a] of Object.entries(t.fields)) {
738
746
  let o = i.get(n);
739
- if (o !== void 0) throw Error(`mixin collision on column '${n}' in table '${e.tableName}': '${pt(o)}' and '${pt(t)}' both define it. If they're the same mixin reached via different paths, set a shared 'id' on both. If they're genuinely different concerns, rename one of the columns.`);
740
- M(e.tableName, n), r[n] = a, i.set(n, t);
747
+ if (o !== void 0) throw Error(`mixin collision on column '${n}' in table '${e.tableName}': '${ht(o)}' and '${ht(t)}' both define it. If they're the same mixin reached via different paths, set a shared 'id' on both. If they're genuinely different concerns, rename one of the columns.`);
748
+ j(e.tableName, n), r[n] = a, i.set(n, t);
741
749
  }
742
750
  let a = [...e.appliedIndexes];
743
751
  for (let t of n) for (let n of t.indexes ?? []) {
744
- let t = n.name ?? mt(e.tableName, n.fields);
745
- a.some((e) => e.name === t) || (N(e.tableName, t, n.name === void 0, n.fields), gt(e.tableName, t, n.kind, n.fields, r), a.push({
752
+ let t = n.name ?? gt(e.tableName, n.fields);
753
+ a.some((e) => e.name === t) || (M(e.tableName, t, n.name === void 0, n.fields), vt(e.tableName, t, n.kind, n.fields, r), a.push({
746
754
  name: t,
747
755
  fields: n.fields,
748
756
  ...n.kind === void 0 ? {} : { kind: n.kind },
749
757
  ...n.kindOptions === void 0 ? {} : { kindOptions: n.kindOptions }
750
758
  }));
751
759
  }
752
- return I({
760
+ return F({
753
761
  ...e,
754
762
  tableName: e.tableName,
755
763
  fields: r,
@@ -766,10 +774,10 @@ var se = () => new u({
766
774
  }),
767
775
  index: ((...t) => {
768
776
  let n, r, i, a = Array.isArray(t[0]);
769
- if (a ? (r = t[0], i = t[1], n = mt(e.tableName, r)) : (n = t[0], r = t[1], i = t[2]), r.length === 0) throw Error(`index '${n}' on table '${e.tableName}' has no fields — an index must cover at least one column.`);
777
+ if (a ? (r = t[0], i = t[1], n = gt(e.tableName, r)) : (n = t[0], r = t[1], i = t[2]), r.length === 0) throw Error(`index '${n}' on table '${e.tableName}' has no fields — an index must cover at least one column.`);
770
778
  let o = r.filter((e) => typeof e == "string");
771
- if (N(e.tableName, n, a, o), gt(e.tableName, n, i?.kind, r, e.fields), e.appliedIndexes.some((e) => e.name === n)) throw t.length === 1 ? Error(`duplicate auto-named index '${n}' on table '${e.tableName}' — you've called .index(${JSON.stringify(r)}) twice. Pass an explicit name to the second one if both are intended (rare).`) : Error(`duplicate index '${n}' on table '${e.tableName}': each index name must be unique within a table.`);
772
- return I({
779
+ if (M(e.tableName, n, a, o), vt(e.tableName, n, i?.kind, r, e.fields), e.appliedIndexes.some((e) => e.name === n)) throw t.length === 1 ? Error(`duplicate auto-named index '${n}' on table '${e.tableName}' — you've called .index(${JSON.stringify(r)}) twice. Pass an explicit name to the second one if both are intended (rare).`) : Error(`duplicate index '${n}' on table '${e.tableName}': each index name must be unique within a table.`);
780
+ return F({
773
781
  ...e,
774
782
  tableName: e.tableName,
775
783
  fields: e.fields,
@@ -793,8 +801,8 @@ var se = () => new u({
793
801
  expressionIndex: ((t, n, r) => {
794
802
  if (n.length === 0) throw Error(`expressionIndex '${t}' on table '${e.tableName}' has no fields — an index must cover at least one column or expression.`);
795
803
  let i = n.filter((e) => typeof e == "string");
796
- if (N(e.tableName, t, !1, i), gt(e.tableName, t, r?.kind, n, e.fields), e.appliedIndexes.some((e) => e.name === t)) throw Error(`duplicate index '${t}' on table '${e.tableName}': each index name must be unique within a table.`);
797
- return I({
804
+ if (M(e.tableName, t, !1, i), vt(e.tableName, t, r?.kind, n, e.fields), e.appliedIndexes.some((e) => e.name === t)) throw Error(`duplicate index '${t}' on table '${e.tableName}': each index name must be unique within a table.`);
805
+ return F({
798
806
  ...e,
799
807
  tableName: e.tableName,
800
808
  fields: e.fields,
@@ -817,9 +825,9 @@ var se = () => new u({
817
825
  }),
818
826
  unique: ((...t) => {
819
827
  let n, r, i, a = Array.isArray(t[0]);
820
- if (a ? (r = t[0], i = t[1], n = ht(e.tableName, r)) : (n = t[0], r = t[1], i = t[2]), r.length === 0) throw Error(`unique '${n}' on table '${e.tableName}' has no fields — a UNIQUE constraint must cover at least one column.`);
821
- if (N(e.tableName, n, a, r), e.appliedUniques.some((e) => e.name === n)) throw Error(a ? `duplicate auto-named UNIQUE '${n}' on table '${e.tableName}' — you've called .unique(${JSON.stringify(r)}) twice. Pass an explicit name to the second one if both are intended (very rare).` : `duplicate UNIQUE '${n}' on table '${e.tableName}': each constraint name must be unique within a table.`);
822
- return I({
828
+ if (a ? (r = t[0], i = t[1], n = _t(e.tableName, r)) : (n = t[0], r = t[1], i = t[2]), r.length === 0) throw Error(`unique '${n}' on table '${e.tableName}' has no fields — a UNIQUE constraint must cover at least one column.`);
829
+ if (M(e.tableName, n, a, r), e.appliedUniques.some((e) => e.name === n)) throw Error(a ? `duplicate auto-named UNIQUE '${n}' on table '${e.tableName}' — you've called .unique(${JSON.stringify(r)}) twice. Pass an explicit name to the second one if both are intended (very rare).` : `duplicate UNIQUE '${n}' on table '${e.tableName}': each constraint name must be unique within a table.`);
830
+ return F({
823
831
  ...e,
824
832
  tableName: e.tableName,
825
833
  fields: e.fields,
@@ -840,10 +848,10 @@ var se = () => new u({
840
848
  }),
841
849
  uniqueActive: ((...t) => {
842
850
  let n, r, i, a = Array.isArray(t[0]);
843
- if (a ? (r = t[0], i = t[1], n = mt(e.tableName, r)) : (n = t[0], r = t[1], i = t[2]), r.length === 0) throw Error(`uniqueActive '${n}' on table '${e.tableName}' has no fields — a partial UNIQUE must cover at least one column.`);
844
- if (N(e.tableName, n, a, r), e.appliedIndexes.some((e) => e.name === n)) throw Error(`duplicate index '${n}' on table '${e.tableName}': each index name must be unique within a table (uniqueActive shares the index namespace).`);
851
+ if (a ? (r = t[0], i = t[1], n = gt(e.tableName, r)) : (n = t[0], r = t[1], i = t[2]), r.length === 0) throw Error(`uniqueActive '${n}' on table '${e.tableName}' has no fields — a partial UNIQUE must cover at least one column.`);
852
+ if (M(e.tableName, n, a, r), e.appliedIndexes.some((e) => e.name === n)) throw Error(`duplicate index '${n}' on table '${e.tableName}': each index name must be unique within a table (uniqueActive shares the index namespace).`);
845
853
  let o = i?.where ?? "\"deletedAt\" IS NULL";
846
- return I({
854
+ return F({
847
855
  ...e,
848
856
  tableName: e.tableName,
849
857
  fields: e.fields,
@@ -865,8 +873,8 @@ var se = () => new u({
865
873
  }),
866
874
  check: ((t, n) => {
867
875
  if (n.trim().length === 0) throw Error(`CHECK '${t}' on table '${e.tableName}' has an empty expression.`);
868
- if (N(e.tableName, t, !1, []), e.appliedChecks.some((e) => e.name === t)) throw Error(`duplicate CHECK '${t}' on table '${e.tableName}': each constraint name must be unique within a table.`);
869
- return I({
876
+ if (M(e.tableName, t, !1, []), e.appliedChecks.some((e) => e.name === t)) throw Error(`duplicate CHECK '${t}' on table '${e.tableName}': each constraint name must be unique within a table.`);
877
+ return F({
870
878
  ...e,
871
879
  tableName: e.tableName,
872
880
  fields: e.fields,
@@ -888,7 +896,7 @@ var se = () => new u({
888
896
  if (t.trim().length === 0) throw Error(`rule on table '${e.tableName}' has an empty name.`);
889
897
  let i = e.appliedRules ?? [];
890
898
  if (i.some((e) => e.name === t)) throw Error(`duplicate rule '${t}' on table '${e.tableName}': each rule name must be unique within a table.`);
891
- return I({
899
+ return F({
892
900
  ...e,
893
901
  appliedRules: [...i, {
894
902
  name: t,
@@ -899,7 +907,7 @@ var se = () => new u({
899
907
  }),
900
908
  renamedFrom: ((t) => {
901
909
  if (t === e.tableName) throw Error(`renamedFrom('${t}') on table '${e.tableName}' names the table itself — drop the marker, there is nothing to rename.`);
902
- return j(t), I({
910
+ return A(t), F({
903
911
  ...e,
904
912
  previousTableName: t
905
913
  });
@@ -914,7 +922,7 @@ var se = () => new u({
914
922
  }
915
923
  if (t.length > 0) throw Error(`primaryKey([...]) declared twice on table '${e.tableName}'.`);
916
924
  for (let [t, r] of Object.entries(e.fields)) if (r.type === "id" && !n.includes(t)) throw Error(`primaryKey([...]) on table '${e.tableName}' conflicts with the id() column '${t}'. The explicit primary key IS the key — drop the id() column, or include '${t}' in the composite key.`);
917
- return I({
925
+ return F({
918
926
  ...e,
919
927
  tableName: e.tableName,
920
928
  fields: e.fields,
@@ -929,7 +937,7 @@ var se = () => new u({
929
937
  ...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
930
938
  });
931
939
  }),
932
- nonReactive: (() => I({
940
+ nonReactive: (() => F({
933
941
  ...e,
934
942
  tableName: e.tableName,
935
943
  fields: e.fields,
@@ -943,7 +951,7 @@ var se = () => new u({
943
951
  ...e.insertSchema === void 0 ? {} : { insertSchema: e.insertSchema },
944
952
  ...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
945
953
  })),
946
- validate: ((t) => I({
954
+ validate: ((t) => F({
947
955
  ...e,
948
956
  tableName: e.tableName,
949
957
  fields: e.fields,
@@ -957,7 +965,7 @@ var se = () => new u({
957
965
  insertSchema: t,
958
966
  ...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
959
967
  })),
960
- validatePatch: ((t) => I({
968
+ validatePatch: ((t) => F({
961
969
  ...e,
962
970
  tableName: e.tableName,
963
971
  fields: e.fields,
@@ -972,22 +980,22 @@ var se = () => new u({
972
980
  validatePatchSchema: r.partial(t)
973
981
  }))
974
982
  };
975
- }, L = (e, t) => {
976
- j(e);
983
+ }, I = (e, t) => {
984
+ A(e);
977
985
  let n = Object.entries(t).flatMap(([e, t]) => {
978
- let n = he(t);
986
+ let n = ge(t);
979
987
  return n === void 0 ? [] : [{
980
988
  column: e,
981
989
  ...n
982
990
  }];
983
- }), r = _t(C(t), e);
984
- for (let t of Object.keys(r)) M(e, t);
991
+ }), r = yt(S(t), e);
992
+ for (let t of Object.keys(r)) j(e, t);
985
993
  let i;
986
- for (let [t, n] of Object.entries(r)) n.references === S && (n.references = () => {
994
+ for (let [t, n] of Object.entries(r)) n.references === x && (n.references = () => {
987
995
  if (i === void 0) throw Error(`selfReference() on '${e}.${t}' read before table() returned`);
988
996
  return i;
989
997
  });
990
- return i = I({
998
+ return i = F({
991
999
  appliedPluginRefs: n,
992
1000
  tableName: e,
993
1001
  fields: r,
@@ -999,7 +1007,7 @@ var se = () => new u({
999
1007
  appliedChecks: [],
1000
1008
  appliedRules: []
1001
1009
  }), i;
1002
- }, vt = (e) => e === "sqlite" || e === "turso", yt = (e) => e === "mysql" || e === "mariadb", R = (e, t) => {
1010
+ }, bt = (e) => e === "sqlite" || e === "turso", xt = (e) => e === "mysql" || e === "mariadb", L = (e, t) => {
1003
1011
  switch (t) {
1004
1012
  case "mysql":
1005
1013
  case "mariadb": return `\`${e.replace(/`/g, "``")}\``;
@@ -1008,51 +1016,51 @@ var se = () => new u({
1008
1016
  case "sqlite":
1009
1017
  case "turso": return `"${e.replace(/"/g, "\"\"")}"`;
1010
1018
  }
1011
- }, bt = 1e4, xt = Symbol.for("@voltro/database/tableRegistry"), St = globalThis, z = St[xt] ?? (St[xt] = /* @__PURE__ */ new Map()), Ct = (e) => {
1012
- let t = z.get(e.tableName);
1019
+ }, St = 1e4, Ct = Symbol.for("@voltro/database/tableRegistry"), wt = globalThis, R = wt[Ct] ?? (wt[Ct] = /* @__PURE__ */ new Map()), Tt = (e) => {
1020
+ let t = R.get(e.tableName);
1013
1021
  if (t === void 0) {
1014
- z.set(e.tableName, e);
1022
+ R.set(e.tableName, e);
1015
1023
  return;
1016
1024
  }
1017
1025
  if (t !== e) throw Error(`duplicate table '${e.tableName}' registration: two different table descriptors claim the same name. Rename one or import the shared module that defines it.`);
1018
- }, wt = (e) => {
1019
- z.get(e.tableName) === void 0 && z.set(e.tableName, e);
1020
- }, B = (e) => z.get(e), Tt = (e) => {
1021
- let t = z.get(e);
1026
+ }, Et = (e) => {
1027
+ R.get(e.tableName) === void 0 && R.set(e.tableName, e);
1028
+ }, z = (e) => R.get(e), Dt = (e) => {
1029
+ let t = R.get(e);
1022
1030
  if (t === void 0) throw Error(`table '${e}' is not registered. Register it by wrapping it in \`databaseHandle({ ... })\` (the usual path) or call \`registerTable(t)\` explicitly before this runs. Note a \`queryFor(t)\` query carries its own source table, so eager-loads don't hit this — this error means a reconstructed descriptor or by-name tooling reached an unregistered table.`);
1023
1031
  return t;
1024
- }, Et = () => [...z.values()], Dt = (e) => z.delete(e), Ot = () => {
1025
- z.clear();
1026
- }, kt = (e) => z.get(e)?.isReactive !== !1, V = (e) => e.order ?? [], At = (e) => ({
1032
+ }, Ot = () => [...R.values()], kt = (e) => R.delete(e), At = () => {
1033
+ R.clear();
1034
+ }, jt = (e) => R.get(e)?.isReactive !== !1, B = (e) => e.order ?? [], Mt = (e) => ({
1027
1035
  op: "count",
1028
1036
  alias: e ?? "count"
1029
- }), jt = (e, t) => ({
1037
+ }), Nt = (e, t) => ({
1030
1038
  op: "count-distinct",
1031
1039
  column: e,
1032
1040
  alias: t ?? `count_distinct_${e}`
1033
- }), Mt = (e, t) => ({
1041
+ }), Pt = (e, t) => ({
1034
1042
  op: "sum",
1035
1043
  column: e,
1036
1044
  alias: t ?? `sum_${e}`
1037
- }), Nt = (e, t) => ({
1045
+ }), Ft = (e, t) => ({
1038
1046
  op: "avg",
1039
1047
  column: e,
1040
1048
  alias: t ?? `avg_${e}`
1041
- }), Pt = (e, t) => ({
1049
+ }), It = (e, t) => ({
1042
1050
  op: "min",
1043
1051
  column: e,
1044
1052
  alias: t ?? `min_${e}`
1045
- }), Ft = (e, t) => ({
1053
+ }), Lt = (e, t) => ({
1046
1054
  op: "max",
1047
1055
  column: e,
1048
1056
  alias: t ?? `max_${e}`
1049
- }), It = (e, t) => ({
1057
+ }), Rt = (e, t) => ({
1050
1058
  op: "column",
1051
1059
  column: e,
1052
1060
  alias: t ?? e
1053
- }), H = (e) => (...t) => {
1061
+ }), V = (e) => (...t) => {
1054
1062
  if (t.length < 2) throw Error(`${e}: requires at least two queries`);
1055
- return W({
1063
+ return U({
1056
1064
  table: t[0].descriptor.table,
1057
1065
  predicate: void 0,
1058
1066
  order: [],
@@ -1064,55 +1072,55 @@ var se = () => new u({
1064
1072
  queries: t.map((e) => e.descriptor)
1065
1073
  }
1066
1074
  });
1067
- }, Lt = H("union"), Rt = H("union-all"), zt = H("intersect"), Bt = H("except"), U = (e) => ({ over: (t) => ({
1075
+ }, zt = V("union"), Bt = V("union-all"), Vt = V("intersect"), Ht = V("except"), H = (e) => ({ over: (t) => ({
1068
1076
  ...e,
1069
1077
  window: t
1070
- }) }), Vt = (e = "rowNumber") => U({
1078
+ }) }), Ut = (e = "rowNumber") => H({
1071
1079
  op: "window-row-number",
1072
1080
  alias: e
1073
- }), Ht = (e = "rank") => U({
1081
+ }), Wt = (e = "rank") => H({
1074
1082
  op: "window-rank",
1075
1083
  alias: e
1076
- }), Ut = (e = "denseRank") => U({
1084
+ }), Gt = (e = "denseRank") => H({
1077
1085
  op: "window-dense-rank",
1078
1086
  alias: e
1079
- }), Wt = (e, t = 1, n) => U({
1087
+ }), Kt = (e, t = 1, n) => H({
1080
1088
  op: "window-lag",
1081
1089
  column: e,
1082
1090
  alias: n ?? `lag_${e}`,
1083
1091
  offset: t
1084
- }), Gt = (e, t = 1, n) => U({
1092
+ }), qt = (e, t = 1, n) => H({
1085
1093
  op: "window-lead",
1086
1094
  column: e,
1087
1095
  alias: n ?? `lead_${e}`,
1088
1096
  offset: t
1089
- }), Kt = (e, t) => U({
1097
+ }), Jt = (e, t) => H({
1090
1098
  op: "window-sum-over",
1091
1099
  column: e,
1092
1100
  alias: t ?? `sum_${e}_over`
1093
- }), qt = (e, t) => U({
1101
+ }), Yt = (e, t) => H({
1094
1102
  op: "window-avg-over",
1095
1103
  column: e,
1096
1104
  alias: t ?? `avg_${e}_over`
1097
- }), Jt = (e, t, n) => {
1098
- let r = n?.find((e) => e.name === t) ?? B(e)?.appliedFullText?.find((e) => e.name === t);
1105
+ }), Xt = (e, t, n) => {
1106
+ let r = n?.find((e) => e.name === t) ?? z(e)?.appliedFullText?.find((e) => e.name === t);
1099
1107
  if (r === void 0) throw Error(`.matching('${t}', ...): no full-text index named '${t}' is declared on table '${e}'. Declare it with \`table(...).fullTextIndex('${t}', [columns])\` first.`);
1100
1108
  return {
1101
1109
  columns: r.columns,
1102
1110
  ...r.config === void 0 ? {} : { config: r.config },
1103
1111
  ...r.weights === void 0 ? {} : { weights: r.weights }
1104
1112
  };
1105
- }, W = (e) => ({
1113
+ }, U = (e) => ({
1106
1114
  descriptor: e,
1107
1115
  where(t) {
1108
1116
  let n = e.predicate ? { and: [e.predicate, t] } : t;
1109
- return W({
1117
+ return U({
1110
1118
  ...e,
1111
1119
  predicate: n
1112
1120
  });
1113
1121
  },
1114
1122
  orderBy(t, n = "asc") {
1115
- return W({
1123
+ return U({
1116
1124
  ...e,
1117
1125
  order: [...e.order, {
1118
1126
  column: t,
@@ -1121,43 +1129,43 @@ var se = () => new u({
1121
1129
  });
1122
1130
  },
1123
1131
  limit(t) {
1124
- return W({
1132
+ return U({
1125
1133
  ...e,
1126
1134
  take: t
1127
1135
  });
1128
1136
  },
1129
1137
  offset(t) {
1130
- return W({
1138
+ return U({
1131
1139
  ...e,
1132
1140
  skip: t
1133
1141
  });
1134
1142
  },
1135
1143
  select(...t) {
1136
- return W({
1144
+ return U({
1137
1145
  ...e,
1138
1146
  projection: t
1139
1147
  });
1140
1148
  },
1141
1149
  using(t) {
1142
- return W({
1150
+ return U({
1143
1151
  ...e,
1144
1152
  usingIndex: t
1145
1153
  });
1146
1154
  },
1147
1155
  withDeleted() {
1148
- return W({
1156
+ return U({
1149
1157
  ...e,
1150
1158
  includeDeleted: !0
1151
1159
  });
1152
1160
  },
1153
1161
  forUpdate() {
1154
- return W({
1162
+ return U({
1155
1163
  ...e,
1156
1164
  lock: "update"
1157
1165
  });
1158
1166
  },
1159
1167
  unscoped() {
1160
- return W({
1168
+ return U({
1161
1169
  ...e,
1162
1170
  crossTenant: !0
1163
1171
  });
@@ -1167,13 +1175,13 @@ var se = () => new u({
1167
1175
  ...e.eager ?? {},
1168
1176
  ...t
1169
1177
  };
1170
- return W({
1178
+ return U({
1171
1179
  ...e,
1172
1180
  eager: n
1173
1181
  });
1174
1182
  },
1175
1183
  count() {
1176
- return W({
1184
+ return U({
1177
1185
  ...e,
1178
1186
  projection: void 0,
1179
1187
  aggregations: [{
@@ -1187,15 +1195,15 @@ var se = () => new u({
1187
1195
  ...t,
1188
1196
  alias: e
1189
1197
  }));
1190
- return W({
1198
+ return U({
1191
1199
  ...e,
1192
1200
  projection: void 0,
1193
1201
  aggregations: n
1194
1202
  });
1195
1203
  },
1196
1204
  matching(t, n) {
1197
- let r = Jt(e.table, t, e.fullTextIndexes);
1198
- return W({
1205
+ let r = Xt(e.table, t, e.fullTextIndexes);
1206
+ return U({
1199
1207
  ...e,
1200
1208
  fullTextSearch: {
1201
1209
  indexName: t,
@@ -1209,7 +1217,7 @@ var se = () => new u({
1209
1217
  rankBy(t) {
1210
1218
  let n = e.fullTextSearch;
1211
1219
  if (n === void 0) throw Error(".rankBy() requires a preceding .matching(...) clause — there is no full-text search to rank on this query.");
1212
- return W({
1220
+ return U({
1213
1221
  ...e,
1214
1222
  fullTextSearch: {
1215
1223
  ...n,
@@ -1228,7 +1236,7 @@ var se = () => new u({
1228
1236
  distance: r?.distance ?? "cosine",
1229
1237
  ...e.annClause?.ef === void 0 ? {} : { ef: e.annClause.ef }
1230
1238
  };
1231
- return W({
1239
+ return U({
1232
1240
  ...e,
1233
1241
  annClause: i
1234
1242
  });
@@ -1240,7 +1248,7 @@ var se = () => new u({
1240
1248
  distance: "cosine",
1241
1249
  ...e.annClause?.ef === void 0 ? {} : { ef: e.annClause.ef }
1242
1250
  };
1243
- return W({
1251
+ return U({
1244
1252
  ...e,
1245
1253
  annClause: r,
1246
1254
  take: n
@@ -1253,7 +1261,7 @@ var se = () => new u({
1253
1261
  column: "",
1254
1262
  distance: "cosine"
1255
1263
  };
1256
- return W({
1264
+ return U({
1257
1265
  ...e,
1258
1266
  annClause: {
1259
1267
  ...n,
@@ -1262,22 +1270,22 @@ var se = () => new u({
1262
1270
  });
1263
1271
  },
1264
1272
  use(t) {
1265
- return W({ ...t(e) });
1273
+ return U({ ...t(e) });
1266
1274
  },
1267
1275
  distinct() {
1268
- return W({
1276
+ return U({
1269
1277
  ...e,
1270
1278
  distinct: !0
1271
1279
  });
1272
1280
  },
1273
1281
  distinctOn(t) {
1274
- return W({
1282
+ return U({
1275
1283
  ...e,
1276
1284
  distinctOn: [...t]
1277
1285
  });
1278
1286
  },
1279
1287
  as(t) {
1280
- return W({
1288
+ return U({
1281
1289
  ...e,
1282
1290
  alias: t
1283
1291
  });
@@ -1289,7 +1297,7 @@ var se = () => new u({
1289
1297
  alias: n,
1290
1298
  on: r
1291
1299
  }];
1292
- return W({
1300
+ return U({
1293
1301
  ...e,
1294
1302
  joins: a
1295
1303
  });
@@ -1301,7 +1309,7 @@ var se = () => new u({
1301
1309
  alias: n,
1302
1310
  on: r
1303
1311
  }];
1304
- return W({
1312
+ return U({
1305
1313
  ...e,
1306
1314
  joins: a
1307
1315
  });
@@ -1311,7 +1319,7 @@ var se = () => new u({
1311
1319
  outputKey: e,
1312
1320
  source: t
1313
1321
  }));
1314
- return W({
1322
+ return U({
1315
1323
  ...e,
1316
1324
  projection: void 0,
1317
1325
  joinedProjection: n
@@ -1320,7 +1328,7 @@ var se = () => new u({
1320
1328
  withCte(t, n) {
1321
1329
  let r = e.ctes ?? [];
1322
1330
  if (r.some((e) => e.name === t)) throw Error(`Query.withCte: duplicate CTE name '${t}'`);
1323
- return W({
1331
+ return U({
1324
1332
  ...e,
1325
1333
  ctes: [...r, {
1326
1334
  name: t,
@@ -1331,7 +1339,7 @@ var se = () => new u({
1331
1339
  recursiveCte(t, n) {
1332
1340
  let r = e.ctes ?? [];
1333
1341
  if (r.some((e) => e.name === t)) throw Error(`Query.recursiveCte: duplicate CTE name '${t}'`);
1334
- return W({
1342
+ return U({
1335
1343
  ...e,
1336
1344
  ctes: [...r, {
1337
1345
  name: t,
@@ -1342,20 +1350,20 @@ var se = () => new u({
1342
1350
  },
1343
1351
  groupBy(t) {
1344
1352
  let n = e.groupBy ? [...e.groupBy, ...t] : [...t];
1345
- return W({
1353
+ return U({
1346
1354
  ...e,
1347
1355
  groupBy: n
1348
1356
  });
1349
1357
  },
1350
1358
  having(t) {
1351
1359
  let n = e.having ? { and: [e.having, t] } : t;
1352
- return W({
1360
+ return U({
1353
1361
  ...e,
1354
1362
  having: n
1355
1363
  });
1356
1364
  },
1357
1365
  exists() {
1358
- return W({
1366
+ return U({
1359
1367
  ...e,
1360
1368
  projection: void 0,
1361
1369
  aggregations: [{
@@ -1366,8 +1374,8 @@ var se = () => new u({
1366
1374
  });
1367
1375
  }
1368
1376
  });
1369
- function Yt(e) {
1370
- return W({
1377
+ function Zt(e) {
1378
+ return U({
1371
1379
  table: e.tableName,
1372
1380
  predicate: void 0,
1373
1381
  order: [],
@@ -1378,7 +1386,7 @@ function Yt(e) {
1378
1386
  sourceTable: e
1379
1387
  });
1380
1388
  }
1381
- var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1389
+ var Qt = (e, t, n) => $t(e, "id", t, n), $t = (e, t, n, r, i = "asc") => {
1382
1390
  let a = [...e.order.filter((e) => e.column !== t), {
1383
1391
  column: t,
1384
1392
  direction: i
@@ -1393,21 +1401,21 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1393
1401
  order: a,
1394
1402
  take: r
1395
1403
  };
1396
- }, Qt = (e) => {
1404
+ }, en = (e) => {
1397
1405
  let t = {};
1398
- for (let [n, r] of Object.entries(e)) Ct(r), t[n] = Yt(r);
1406
+ for (let [n, r] of Object.entries(e)) Tt(r), t[n] = Zt(r);
1399
1407
  return t;
1400
- }, $t = (e) => e.isView === !0, en = (e, t, n) => {
1401
- if (j(e), n.trim().length === 0) throw Error(`view('${e}', …): the SELECT body is empty — a view must define a query.`);
1402
- let r = C(t);
1403
- for (let t of Object.keys(r)) M(e, t);
1408
+ }, tn = (e) => e.isView === !0, nn = (e, t, n) => {
1409
+ if (A(e), n.trim().length === 0) throw Error(`view('${e}', …): the SELECT body is empty — a view must define a query.`);
1410
+ let r = S(t);
1411
+ for (let t of Object.keys(r)) j(e, t);
1404
1412
  return {
1405
1413
  tableName: e,
1406
1414
  fields: r,
1407
1415
  isView: !0,
1408
1416
  viewSelect: n
1409
1417
  };
1410
- }, tn = (e) => Yt({
1418
+ }, rn = (e) => Zt({
1411
1419
  ...e,
1412
1420
  isReactive: !1,
1413
1421
  appliedMixins: [],
@@ -1415,8 +1423,8 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1415
1423
  appliedUniques: [],
1416
1424
  appliedFullText: [],
1417
1425
  appliedChecks: []
1418
- }), nn = (e, t, n = null) => {
1419
- let r = n === null ? R(e.tableName, t) : `${R(n, t)}.${R(e.tableName, t)}`, i = e.viewSelect.trim();
1426
+ }), an = (e, t, n = null) => {
1427
+ let r = n === null ? L(e.tableName, t) : `${L(n, t)}.${L(e.tableName, t)}`, i = e.viewSelect.trim();
1420
1428
  switch (t) {
1421
1429
  case "postgres":
1422
1430
  case "mysql":
@@ -1425,7 +1433,7 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1425
1433
  case "sqlite":
1426
1434
  case "turso": return `DROP VIEW IF EXISTS ${r};\nCREATE VIEW ${r} AS ${i};`;
1427
1435
  }
1428
- }, rn = (e) => e == null || typeof e == "boolean" ? e : typeof e == "number" ? e !== 0 : typeof e == "bigint" ? e !== 0n : typeof e == "string" ? e === "1" || e.toLowerCase() === "true" : e, an = (e) => {
1436
+ }, on = (e) => e == null || typeof e == "boolean" ? e : typeof e == "number" ? e !== 0 : typeof e == "bigint" ? e !== 0n : typeof e == "string" ? e === "1" || e.toLowerCase() === "true" : e, sn = (e) => {
1429
1437
  if (e == null || typeof e != "string") return e;
1430
1438
  let t = e.trim();
1431
1439
  if (t.length === 0) return e;
@@ -1436,7 +1444,7 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1436
1444
  } catch {
1437
1445
  return e;
1438
1446
  }
1439
- }, on = (e) => e == null || typeof e == "string" ? e : typeof e == "number" || typeof e == "bigint" ? String(e) : e, sn = (e) => {
1447
+ }, cn = (e) => e == null || typeof e == "string" ? e : typeof e == "number" || typeof e == "bigint" ? String(e) : e, ln = (e) => {
1440
1448
  if (e == null || e instanceof Date) return e;
1441
1449
  if (typeof e == "string") {
1442
1450
  let t = new Date(e);
@@ -1447,24 +1455,24 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1447
1455
  return isNaN(t.getTime()) ? e : t;
1448
1456
  }
1449
1457
  return e;
1450
- }, cn = (e, t, n) => {
1458
+ }, un = (e, t, n) => {
1451
1459
  if (e == null) return e;
1452
1460
  switch (t) {
1453
- case "boolean": return n === "postgres" ? e : rn(e);
1454
- case "vector": return n === "postgres" ? an(e) : e;
1455
- case "json": return n === "postgres" || n === "mysql" || n === "mariadb" ? e : an(e);
1456
- case "array": return n === "postgres" ? e : an(e);
1461
+ case "boolean": return n === "postgres" ? e : on(e);
1462
+ case "vector": return n === "postgres" ? sn(e) : e;
1463
+ case "json": return n === "postgres" || n === "mysql" || n === "mariadb" ? e : sn(e);
1464
+ case "array": return n === "postgres" ? e : sn(e);
1457
1465
  case "timestamp":
1458
- case "date": return n === "sqlite" || n === "turso" ? sn(e) : e;
1466
+ case "date": return n === "sqlite" || n === "turso" ? ln(e) : e;
1459
1467
  case "decimal":
1460
- case "bigint": return on(e);
1468
+ case "bigint": return cn(e);
1461
1469
  default: return e;
1462
1470
  }
1463
- }, ln = (e, t, n) => {
1471
+ }, dn = (e, t, n) => {
1464
1472
  if (e.length === 0) return e;
1465
- let r = B(t);
1466
- return r === void 0 ? e : un(e, r, n);
1467
- }, un = (e, t, n) => {
1473
+ let r = z(t);
1474
+ return r === void 0 ? e : fn(e, r, n);
1475
+ }, fn = (e, t, n) => {
1468
1476
  if (e.length === 0) return e;
1469
1477
  let r = t.fields, i = [];
1470
1478
  for (let [e, t] of Object.entries(r)) i.push({
@@ -1473,10 +1481,10 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1473
1481
  });
1474
1482
  return e.map((e) => {
1475
1483
  let t = { ...e };
1476
- for (let { key: e, type: r } of i) e in t && (t[e] = cn(t[e], r, n));
1484
+ for (let { key: e, type: r } of i) e in t && (t[e] = un(t[e], r, n));
1477
1485
  return t;
1478
1486
  });
1479
- }, dn = (e, t) => {
1487
+ }, pn = (e, t) => {
1480
1488
  if (e == null) return e;
1481
1489
  switch (t) {
1482
1490
  case "json": return JSON.stringify(e);
@@ -1484,25 +1492,25 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1484
1492
  case "vector": return typeof e == "string" ? e : JSON.stringify(e);
1485
1493
  default: return e;
1486
1494
  }
1487
- }, fn = (e, t, n = ["json", "array"]) => {
1488
- let r = B(t);
1495
+ }, mn = (e, t, n = ["json", "array"]) => {
1496
+ let r = z(t);
1489
1497
  if (r === void 0) return e;
1490
1498
  let i = r.fields, a = null;
1491
1499
  for (let [t, r] of Object.entries(i)) if (n.includes(r.type) && t in e) {
1492
- let n = dn(e[t], r.type);
1500
+ let n = pn(e[t], r.type);
1493
1501
  n !== e[t] && (a === null && (a = { ...e }), a[t] = n);
1494
1502
  }
1495
1503
  return a ?? e;
1496
- }, pn = /^[A-Za-z_][A-Za-z0-9_]*$/, mn = (e) => "$" + e.map((e) => typeof e == "number" ? `[${e}]` : pn.test(e) ? `.${e}` : `."${e.replace(/"/g, "\\\"")}"`).join(""), hn = (e) => "{" + e.map((e) => {
1504
+ }, hn = /^[A-Za-z_][A-Za-z0-9_]*$/, gn = (e) => "$" + e.map((e) => typeof e == "number" ? `[${e}]` : hn.test(e) ? `.${e}` : `."${e.replace(/"/g, "\\\"")}"`).join(""), _n = (e) => "{" + e.map((e) => {
1497
1505
  let t = String(e);
1498
1506
  return /^[A-Za-z0-9_]+$/.test(t) ? t : `"${t.replace(/(["\\])/g, "\\$1")}"`;
1499
- }).join(",") + "}", G = (e, t, n, r = {}) => {
1500
- let i = R(e, n), a = r.numeric ?? !1;
1507
+ }).join(",") + "}", W = (e, t, n, r = {}) => {
1508
+ let i = L(e, n), a = r.numeric ?? !1;
1501
1509
  if (n === "postgres") {
1502
- let e = `(${i} #>> '${hn(t)}'::text[])`;
1510
+ let e = `(${i} #>> '${_n(t)}'::text[])`;
1503
1511
  return a ? `${e}::numeric` : e;
1504
1512
  }
1505
- let o = mn(t);
1513
+ let o = gn(t);
1506
1514
  switch (n) {
1507
1515
  case "mysql":
1508
1516
  case "mariadb": {
@@ -1519,61 +1527,61 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1519
1527
  return a ? `CAST(${e} AS REAL)` : e;
1520
1528
  }
1521
1529
  }
1522
- }, gn = class extends Error {
1530
+ }, vn = class extends Error {
1523
1531
  _tag = "TenantNamespaceUnresolved";
1524
1532
  constructor(e) {
1525
1533
  super(e), this.name = "TenantNamespaceUnresolved";
1526
1534
  }
1527
- }, _n = class extends Error {
1535
+ }, yn = class extends Error {
1528
1536
  _tag = "TenantNamespaceInvalid";
1529
1537
  constructor(e) {
1530
1538
  super(e), this.name = "TenantNamespaceInvalid";
1531
1539
  }
1532
- }, vn = 63, yn = "tenant_", bn = (e) => e.toLowerCase().replace(/[^a-z0-9_]/g, "_"), xn = (e) => {
1533
- if (e == null || e === "") throw new gn("namespace isolation is on but the request has no resolvable tenant (subject.tenantId is null/empty). Refusing to run against a shared/default namespace — this would be a cross-tenant read. Authenticate with a tenant-scoped subject, or disable namespace isolation for this surface.");
1534
- let t = bn(e);
1535
- if (t.replace(/_/g, "") === "") throw new _n(`tenant id '${e}' has no usable identifier characters after sanitisation — cannot derive a distinct namespace.`);
1536
- let n = `${yn}${t}`;
1537
- if (n.length > vn) throw new _n(`namespace '${n}' for tenant '${e}' exceeds the ${vn}-byte identifier limit. Use a shorter tenant id.`);
1540
+ }, bn = 63, xn = "tenant_", Sn = (e) => e.toLowerCase().replace(/[^a-z0-9_]/g, "_"), Cn = (e) => {
1541
+ if (e == null || e === "") throw new vn("namespace isolation is on but the request has no resolvable tenant (subject.tenantId is null/empty). Refusing to run against a shared/default namespace — this would be a cross-tenant read. Authenticate with a tenant-scoped subject, or disable namespace isolation for this surface.");
1542
+ let t = Sn(e);
1543
+ if (t.replace(/_/g, "") === "") throw new yn(`tenant id '${e}' has no usable identifier characters after sanitisation — cannot derive a distinct namespace.`);
1544
+ let n = `${xn}${t}`;
1545
+ if (n.length > bn) throw new yn(`namespace '${n}' for tenant '${e}' exceeds the ${bn}-byte identifier limit. Use a shorter tenant id.`);
1538
1546
  return n;
1539
- }, K = (e, t) => e === null ? t : `${e}.${t}`, Sn = /* @__PURE__ */ new Set(["timestamp", "date"]), Cn = /^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2})?/, wn = (e, t) => {
1540
- if (e === void 0 || t == null || !Sn.has(e) || t instanceof Date) return t;
1547
+ }, G = (e, t) => e === null ? t : `${e}.${t}`, wn = /* @__PURE__ */ new Set(["timestamp", "date"]), Tn = /^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2})?/, En = (e, t) => {
1548
+ if (e === void 0 || t == null || !wn.has(e) || t instanceof Date) return t;
1541
1549
  if (typeof t == "number" && Number.isFinite(t)) return new Date(t);
1542
- if (typeof t == "string" && Cn.test(t)) {
1550
+ if (typeof t == "string" && Tn.test(t)) {
1543
1551
  let e = new Date(t);
1544
1552
  return Number.isNaN(e.getTime()) ? t : e;
1545
1553
  }
1546
1554
  return t;
1547
- }, Tn = (e, t) => e === void 0 || !Sn.has(e) ? t : t.map((t) => wn(e, t)), En = (e, t) => {
1555
+ }, Dn = (e, t) => e === void 0 || !wn.has(e) ? t : t.map((t) => En(e, t)), On = (e, t) => {
1548
1556
  let { strings: n, values: r } = e, i = t.unsafe(n[0] ?? "");
1549
1557
  for (let e = 0; e < r.length; e++) i = t`${i}${r[e]}${t.unsafe(n[e + 1] ?? "")}`;
1550
1558
  return t`${i}`;
1551
- }, q = (e) => e.replace(/[\\%_]/g, (e) => `\\${e}`), J = (e, t, n = null, r) => {
1552
- if ("not" in e) return t`NOT (${J(e.not, t, n, r)})`;
1553
- if ("and" in e) return e.and.length === 0 ? t`TRUE` : t.and(e.and.map((e) => J(e, t, n, r)));
1554
- if ("or" in e) return e.or.length === 0 ? t`FALSE` : t.or(e.or.map((e) => J(e, t, n, r)));
1559
+ }, K = (e) => e.replace(/[\\%_]/g, (e) => `\\${e}`), q = (e, t, n = null, r) => {
1560
+ if ("not" in e) return t`NOT (${q(e.not, t, n, r)})`;
1561
+ if ("and" in e) return e.and.length === 0 ? t`TRUE` : t.and(e.and.map((e) => q(e, t, n, r)));
1562
+ if ("or" in e) return e.or.length === 0 ? t`FALSE` : t.or(e.or.map((e) => q(e, t, n, r)));
1555
1563
  if (e.op === "subquery-in" || e.op === "subquery-not-in") {
1556
- let r = e, i = Y(r.subquery, t, n);
1564
+ let r = e, i = J(r.subquery, t, n);
1557
1565
  return r.op === "subquery-in" ? t`${t(r.column)} IN (${i})` : t`${t(r.column)} NOT IN (${i})`;
1558
1566
  }
1559
1567
  if (e.op === "exists" || e.op === "not-exists") {
1560
- let r = e, i = Y(r.subquery, t, n);
1568
+ let r = e, i = J(r.subquery, t, n);
1561
1569
  return r.op === "exists" ? t`EXISTS (${i})` : t`NOT EXISTS (${i})`;
1562
1570
  }
1563
1571
  let i = e, a = t(i.column), o = i.path, s = o !== void 0 && o.length > 0, c = () => t.onDialectOrElse({
1564
- mysql: () => t.unsafe(G(i.column, o, "mysql")),
1565
- mssql: () => t.unsafe(G(i.column, o, "mssql")),
1566
- sqlite: () => t.unsafe(G(i.column, o, "sqlite")),
1567
- orElse: () => t.unsafe(G(i.column, o, "postgres"))
1572
+ mysql: () => t.unsafe(W(i.column, o, "mysql")),
1573
+ mssql: () => t.unsafe(W(i.column, o, "mssql")),
1574
+ sqlite: () => t.unsafe(W(i.column, o, "sqlite")),
1575
+ orElse: () => t.unsafe(W(i.column, o, "postgres"))
1568
1576
  }), l = () => t.onDialectOrElse({
1569
- mysql: () => t.unsafe(G(i.column, o, "mysql", { numeric: !0 })),
1570
- mssql: () => t.unsafe(G(i.column, o, "mssql", { numeric: !0 })),
1571
- sqlite: () => t.unsafe(G(i.column, o, "sqlite", { numeric: !0 })),
1572
- orElse: () => t.unsafe(G(i.column, o, "postgres", { numeric: !0 }))
1573
- }), u = s ? c() : a, d = s ? l() : a, f = (e) => s && e != null ? String(e) : e, p = (e) => s ? Number(e) : e, m = s || r === void 0 ? void 0 : B(r)?.fields?.[i.column]?.type, h = (e) => wn(m, e);
1577
+ mysql: () => t.unsafe(W(i.column, o, "mysql", { numeric: !0 })),
1578
+ mssql: () => t.unsafe(W(i.column, o, "mssql", { numeric: !0 })),
1579
+ sqlite: () => t.unsafe(W(i.column, o, "sqlite", { numeric: !0 })),
1580
+ orElse: () => t.unsafe(W(i.column, o, "postgres", { numeric: !0 }))
1581
+ }), u = s ? c() : a, d = s ? l() : a, f = (e) => s && e != null ? String(e) : e, p = (e) => s ? Number(e) : e, m = s || r === void 0 ? void 0 : z(r)?.fields?.[i.column]?.type, ee = (e) => En(m, e);
1574
1582
  switch (i.op) {
1575
- case "eq": return t`${u} = ${f(h(i.value))}`;
1576
- case "neq": return t`${u} <> ${f(h(i.value))}`;
1583
+ case "eq": return t`${u} = ${f(ee(i.value))}`;
1584
+ case "neq": return t`${u} <> ${f(ee(i.value))}`;
1577
1585
  case "gt": return t`${d} > ${p(i.value)}`;
1578
1586
  case "gte": return t`${d} >= ${p(i.value)}`;
1579
1587
  case "lt": return t`${d} < ${p(i.value)}`;
@@ -1587,7 +1595,7 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1587
1595
  return e.length === 0 ? t`TRUE` : t`${u} NOT IN ${t.in(s ? e.map((e) => f(e)) : e)}`;
1588
1596
  }
1589
1597
  case "contains": {
1590
- let e = `%${q(typeof i.value == "string" ? i.value : String(i.value ?? ""))}%`;
1598
+ let e = `%${K(typeof i.value == "string" ? i.value : String(i.value ?? ""))}%`;
1591
1599
  return t.onDialectOrElse({
1592
1600
  mysql: () => t`LOWER(${u}) LIKE LOWER(${e})`,
1593
1601
  mssql: () => t`LOWER(${u}) LIKE LOWER(${e})`,
@@ -1596,7 +1604,7 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1596
1604
  });
1597
1605
  }
1598
1606
  case "startsWith": {
1599
- let e = `${q(typeof i.value == "string" ? i.value : String(i.value ?? ""))}%`;
1607
+ let e = `${K(typeof i.value == "string" ? i.value : String(i.value ?? ""))}%`;
1600
1608
  return t.onDialectOrElse({
1601
1609
  mysql: () => t`${u} LIKE ${e}`,
1602
1610
  orElse: () => t`${u} LIKE ${e} ESCAPE '\\'`
@@ -1632,25 +1640,25 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1632
1640
  let e = i.value, n = t.unsafe("::geometry"), r = e.bufferMeters === void 0 ? t`${e.geom}${n}` : t`ST_Buffer(${e.geom}::geography, ${e.bufferMeters})::geometry`;
1633
1641
  return t.onDialectOrElse({
1634
1642
  mysql: () => {
1635
- throw E("@voltro/plugin-postgis: spatial predicates are postgres-only");
1643
+ throw T("@voltro/plugin-postgis: spatial predicates are postgres-only");
1636
1644
  },
1637
1645
  mssql: () => {
1638
- throw E("@voltro/plugin-postgis: spatial predicates are postgres-only");
1646
+ throw T("@voltro/plugin-postgis: spatial predicates are postgres-only");
1639
1647
  },
1640
1648
  sqlite: () => {
1641
- throw E("@voltro/plugin-postgis: spatial predicates are postgres-only");
1649
+ throw T("@voltro/plugin-postgis: spatial predicates are postgres-only");
1642
1650
  },
1643
1651
  orElse: () => e.fn === "ST_DWithin" ? t`ST_DWithin(${a}::geography, ${e.geom}::geography, ${e.distanceMeters})` : e.fn === "&&" ? t`${a}${n} && ${r}` : t`${t.unsafe(e.fn)}(${a}${n}, ${r})`
1644
1652
  });
1645
1653
  }
1646
1654
  }
1647
- }, Dn = (e, t) => {
1655
+ }, kn = (e, t) => {
1648
1656
  let n = [];
1649
1657
  return e.partitionBy && e.partitionBy.length > 0 && n.push(t`PARTITION BY ${t.csv(e.partitionBy.map((e) => t`${t(e)}`))}`), e.orderBy && e.orderBy.length > 0 && n.push(t`ORDER BY ${t.csv(e.orderBy.map((e) => e.direction === "desc" ? t`${t(e.column)} DESC` : t`${t(e.column)} ASC`))}`), n.length === 0 ? t`` : n.length === 1 ? n[0] : n.reduce((e, n, r) => r === 0 ? n : t`${e} ${n}`);
1650
- }, On = (e, t) => t.csv(e.map((e) => {
1658
+ }, An = (e, t) => t.csv(e.map((e) => {
1651
1659
  let n = e.column === void 0 ? t.unsafe("*") : t`${t(e.column)}`;
1652
1660
  if (e.op.startsWith("window-")) {
1653
- let r = Dn(e.window ?? {}, t);
1661
+ let r = kn(e.window ?? {}, t);
1654
1662
  switch (e.op) {
1655
1663
  case "window-row-number": return t`ROW_NUMBER() OVER (${r}) AS ${t(e.alias)}`;
1656
1664
  case "window-rank": return t`RANK() OVER (${r}) AS ${t(e.alias)}`;
@@ -1659,7 +1667,7 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1659
1667
  case "window-lead": return t`LEAD(${n}, ${t.unsafe(String(e.offset ?? 1))}) OVER (${r}) AS ${t(e.alias)}`;
1660
1668
  case "window-sum-over": return t`SUM(${n}) OVER (${r}) AS ${t(e.alias)}`;
1661
1669
  case "window-avg-over": return t`AVG(${n}) OVER (${r}) AS ${t(e.alias)}`;
1662
- default: throw E(`compileAggregateProjection: unknown window op '${e.op}'`);
1670
+ default: throw T(`compileAggregateProjection: unknown window op '${e.op}'`);
1663
1671
  }
1664
1672
  }
1665
1673
  switch (e.op) {
@@ -1670,71 +1678,71 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1670
1678
  case "min": return t`MIN(${n}) AS ${t(e.alias)}`;
1671
1679
  case "max": return t`MAX(${n}) AS ${t(e.alias)}`;
1672
1680
  case "column":
1673
- if (e.column === void 0) throw E(`compileAggregateProjection: 'column' projection requires a column name (alias '${e.alias}')`);
1681
+ if (e.column === void 0) throw T(`compileAggregateProjection: 'column' projection requires a column name (alias '${e.alias}')`);
1674
1682
  return t`${t(e.column)} AS ${t(e.alias)}`;
1675
- default: throw E(`compileAggregateProjection: unknown op '${e.op}'`);
1683
+ default: throw T(`compileAggregateProjection: unknown op '${e.op}'`);
1676
1684
  }
1677
- })), kn = (e) => `[${e.join(",")}]`, An = (e, t) => {
1685
+ })), jn = (e) => `[${e.join(",")}]`, Mn = (e, t) => {
1678
1686
  if (e.queryVector === void 0) return null;
1679
- let n = t(e.column), r = kn(e.queryVector), i = e.distance === "cosine" ? "<=>" : e.distance === "l2" ? "<->" : "<#>", a = e.distance === "cosine" ? "VEC_DISTANCE_COSINE" : "VEC_DISTANCE_EUCLIDEAN";
1687
+ let n = t(e.column), r = jn(e.queryVector), i = e.distance === "cosine" ? "<=>" : e.distance === "l2" ? "<->" : "<#>", a = e.distance === "cosine" ? "VEC_DISTANCE_COSINE" : "VEC_DISTANCE_EUCLIDEAN";
1680
1688
  return t.onDialectOrElse({
1681
1689
  mysql: () => t`${t.unsafe(a)}(${n}, ${r})`,
1682
1690
  mssql: () => t`NULL`,
1683
1691
  sqlite: () => t`NULL`,
1684
1692
  orElse: () => t`${n} ${t.unsafe(i)} ${r}::vector`
1685
1693
  });
1686
- }, jn = (e, t) => {
1694
+ }, Nn = (e, t) => {
1687
1695
  let n = t.unsafe(e.useGeography ? "::geography" : "::geometry");
1688
1696
  return t`ST_Distance(${t(e.column)}${n}, ${e.geom}${n})`;
1689
- }, Mn = (e, t) => t`${t(e.column)} <-> ${e.geom}::geometry`, Nn = (e, t) => t`${t(`${e.indexName}_tsv`)}`, Pn = (e, t) => `${t}_${e.indexName}_fts`, Fn = (e, t, n) => {
1690
- let r = n.csv(e.columns.map((e) => n`${n(e)}`)), i = `%${q(e.query)}%`;
1697
+ }, Pn = (e, t) => t`${t(e.column)} <-> ${e.geom}::geometry`, Fn = (e, t) => t`${t(`${e.indexName}_tsv`)}`, In = (e, t) => `${t}_${e.indexName}_fts`, Ln = (e, t, n) => {
1698
+ let r = n.csv(e.columns.map((e) => n`${n(e)}`)), i = `%${K(e.query)}%`;
1691
1699
  return n.onDialectOrElse({
1692
1700
  mysql: () => n`MATCH(${r}) AGAINST(${e.query} IN NATURAL LANGUAGE MODE)`,
1693
1701
  sqlite: () => {
1694
- let r = n(Pn(e, t));
1702
+ let r = n(In(e, t));
1695
1703
  return n`${n("id")} IN (SELECT ${n("row_id")} FROM ${r} WHERE ${r} MATCH ${e.query})`;
1696
1704
  },
1697
1705
  mssql: () => n.or(e.columns.map((e) => n`LOWER(${n(e)}) LIKE LOWER(${i}) ESCAPE '\\'`)),
1698
- orElse: () => n`${Nn(e, n)} @@ plainto_tsquery(${e.config ?? "english"}, ${e.query})`
1706
+ orElse: () => n`${Fn(e, n)} @@ plainto_tsquery(${e.config ?? "english"}, ${e.query})`
1699
1707
  });
1700
- }, In = (e, t, n) => {
1701
- let r = `%${q(e.query)}%`;
1708
+ }, Rn = (e, t, n) => {
1709
+ let r = `%${K(e.query)}%`;
1702
1710
  return n.onDialectOrElse({
1703
1711
  mysql: () => n`MATCH(${n.csv(e.columns.map((e) => n`${n(e)}`))}) AGAINST(${e.query} IN NATURAL LANGUAGE MODE)`,
1704
1712
  sqlite: () => {
1705
- let r = n(Pn(e, t));
1713
+ let r = n(In(e, t));
1706
1714
  return n`COALESCE((SELECT -bm25(${r}) FROM ${r} WHERE ${r} MATCH ${e.query} AND ${r}.${n("row_id")} = ${n("id")}), 0)`;
1707
1715
  },
1708
1716
  mssql: () => e.columns.map((e) => n`(CASE WHEN LOWER(${n(e)}) LIKE LOWER(${r}) ESCAPE '\\' THEN 1 ELSE 0 END)`).reduce((e, t, r) => r === 0 ? t : n`${e} + ${t}`),
1709
- orElse: () => n`ts_rank(${Nn(e, n)}, plainto_tsquery(${e.config ?? "english"}, ${e.query}))`
1717
+ orElse: () => n`ts_rank(${Fn(e, n)}, plainto_tsquery(${e.config ?? "english"}, ${e.query}))`
1710
1718
  });
1711
- }, Y = (e, t, n = null) => {
1719
+ }, J = (e, t, n = null) => {
1712
1720
  if (e.setOp && e.setOp.queries.length >= 2) {
1713
- let r = e.setOp.kind === "union" ? "UNION" : e.setOp.kind === "union-all" ? "UNION ALL" : e.setOp.kind === "intersect" ? "INTERSECT" : "EXCEPT", i = e.setOp.queries.map((e) => t`(${Y(e, t, n)})`).reduce((e, n, i) => i === 0 ? n : t`${e} ${t.unsafe(r)} ${n}`), a = [];
1714
- if (V(e).length > 0 && a.push(t` ORDER BY ${t.csv(V(e).map((e) => e.direction === "desc" ? t`${t(e.column)} DESC` : t`${t(e.column)} ASC`))}`), e.take !== void 0) {
1715
- if (!Number.isInteger(e.take) || e.take < 0) throw E(`compileSelect: invalid take ${e.take}`);
1721
+ let r = e.setOp.kind === "union" ? "UNION" : e.setOp.kind === "union-all" ? "UNION ALL" : e.setOp.kind === "intersect" ? "INTERSECT" : "EXCEPT", i = e.setOp.queries.map((e) => t`(${J(e, t, n)})`).reduce((e, n, i) => i === 0 ? n : t`${e} ${t.unsafe(r)} ${n}`), a = [];
1722
+ if (B(e).length > 0 && a.push(t` ORDER BY ${t.csv(B(e).map((e) => e.direction === "desc" ? t`${t(e.column)} DESC` : t`${t(e.column)} ASC`))}`), e.take !== void 0) {
1723
+ if (!Number.isInteger(e.take) || e.take < 0) throw T(`compileSelect: invalid take ${e.take}`);
1716
1724
  a.push(t` LIMIT ${t.unsafe(String(e.take))}`);
1717
1725
  }
1718
1726
  if (e.skip !== void 0) {
1719
- if (!Number.isInteger(e.skip) || e.skip < 0) throw E(`compileSelect: invalid skip ${e.skip}`);
1727
+ if (!Number.isInteger(e.skip) || e.skip < 0) throw T(`compileSelect: invalid skip ${e.skip}`);
1720
1728
  a.push(t` OFFSET ${t.unsafe(String(e.skip))}`);
1721
1729
  }
1722
1730
  return t`${i}${a.reduce((e, n) => t`${e}${n}`, t``)}`;
1723
1731
  }
1724
- let r = e.annClause === void 0 ? null : An(e.annClause, t);
1732
+ let r = e.annClause === void 0 ? null : Mn(e.annClause, t);
1725
1733
  e.spatialClause !== void 0 && t.onDialectOrElse({
1726
1734
  mysql: () => {
1727
- throw E("@voltro/plugin-postgis: spatial distance / KNN ordering is postgres-only");
1735
+ throw T("@voltro/plugin-postgis: spatial distance / KNN ordering is postgres-only");
1728
1736
  },
1729
1737
  mssql: () => {
1730
- throw E("@voltro/plugin-postgis: spatial distance / KNN ordering is postgres-only");
1738
+ throw T("@voltro/plugin-postgis: spatial distance / KNN ordering is postgres-only");
1731
1739
  },
1732
1740
  sqlite: () => {
1733
- throw E("@voltro/plugin-postgis: spatial distance / KNN ordering is postgres-only");
1741
+ throw T("@voltro/plugin-postgis: spatial distance / KNN ordering is postgres-only");
1734
1742
  },
1735
1743
  orElse: () => t``
1736
1744
  });
1737
- let i = e.spatialClause?.projectAs === void 0 ? null : jn(e.spatialClause, t), a = e.aggregations && e.aggregations.length > 0 ? On(e.aggregations, t) : e.joinedProjection && e.joinedProjection.length > 0 ? t.csv(e.joinedProjection.map((e) => t`${t(e.source)} AS ${t(e.outputKey)}`)) : e.projection && e.projection.length > 0 ? t.csv(e.projection.map((e) => t`${t(e)}`)) : t`*`, o = (e.aggregations && e.aggregations.length > 0) === !0, s = r !== null && !o ? t`${a}, ${r} AS ${t("distance")}` : a, c = e.fullTextSearch, l = c?.rank !== void 0 && !o ? In(c, e.table, t) : null, u = l !== null && c?.rank !== void 0 ? t`${s}, ${l} AS ${t(c.rank.alias)}` : s, d = i !== null && !o && e.spatialClause?.projectAs !== void 0 ? t`${u}, ${i} AS ${t(e.spatialClause.projectAs)}` : u, f = e.distinctOn && e.distinctOn.length > 0 ? t.onDialectOrElse({
1745
+ let i = e.spatialClause?.projectAs === void 0 ? null : Nn(e.spatialClause, t), a = e.aggregations && e.aggregations.length > 0 ? An(e.aggregations, t) : e.joinedProjection && e.joinedProjection.length > 0 ? t.csv(e.joinedProjection.map((e) => t`${t(e.source)} AS ${t(e.outputKey)}`)) : e.projection && e.projection.length > 0 ? t.csv(e.projection.map((e) => t`${t(e)}`)) : t`*`, o = (e.aggregations && e.aggregations.length > 0) === !0, s = r !== null && !o ? t`${a}, ${r} AS ${t("distance")}` : a, c = e.fullTextSearch, l = c?.rank !== void 0 && !o ? Rn(c, e.table, t) : null, u = l !== null && c?.rank !== void 0 ? t`${s}, ${l} AS ${t(c.rank.alias)}` : s, d = i !== null && !o && e.spatialClause?.projectAs !== void 0 ? t`${u}, ${i} AS ${t(e.spatialClause.projectAs)}` : u, f = e.distinctOn && e.distinctOn.length > 0 ? t.onDialectOrElse({
1738
1746
  orElse: () => t`DISTINCT ON (${t.csv(e.distinctOn.map((e) => t`${t(e)}`))}) `,
1739
1747
  mysql: () => t`DISTINCT `,
1740
1748
  mssql: () => t`DISTINCT `,
@@ -1742,34 +1750,34 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1742
1750
  }) : e.distinct ? t`DISTINCT ` : t``, p = e.lock === "update", m = p ? t.onDialectOrElse({
1743
1751
  mssql: () => t` WITH (UPDLOCK, ROWLOCK)`,
1744
1752
  orElse: () => t``
1745
- }) : t``, h = p ? t.onDialectOrElse({
1753
+ }) : t``, ee = p ? t.onDialectOrElse({
1746
1754
  mssql: () => t``,
1747
1755
  sqlite: () => t``,
1748
1756
  orElse: () => t` FOR UPDATE`
1749
- }) : t``, g = e.alias === void 0 ? t`${t(K(n, e.table))}${m}` : t`${t(K(n, e.table))} AS ${t(e.alias)}${m}`, ee = (e.joins ?? []).map((e) => {
1757
+ }) : t``, h = e.alias === void 0 ? t`${t(G(n, e.table))}${m}` : t`${t(G(n, e.table))} AS ${t(e.alias)}${m}`, te = (e.joins ?? []).map((e) => {
1750
1758
  let r = e.kind === "inner" ? "INNER" : "LEFT";
1751
- return t` ${t.unsafe(r)} JOIN ${t(K(n, e.table))} AS ${t(e.alias)} ON ${J(e.on, t, n)}`;
1752
- }), te = ee.length > 0 ? ee.reduce((e, n) => t`${e}${n}`, g) : g, ne = c === void 0 ? null : Fn(c, e.table, t), _ = [e.predicate ? J(e.predicate, t, n, e.table) : null, ne].filter((e) => e !== null), v = _.length > 0 ? t` WHERE ${t.and(_)}` : t``, re = e.groupBy && e.groupBy.length > 0 ? t` GROUP BY ${t.csv(e.groupBy.map((e) => t`${t(e)}`))}` : t``, y = e.having ? t` HAVING ${J(e.having, t, n, e.table)}` : t``, b = e.skip !== void 0, x = [];
1753
- r !== null && x.push(t`${r} ASC`), e.spatialClause?.order !== void 0 && x.push(e.spatialClause.order === "desc" ? t`${Mn(e.spatialClause, t)} DESC` : t`${Mn(e.spatialClause, t)} ASC`), l !== null && c?.rank?.order === !0 && x.push(t`${l} DESC`);
1754
- for (let n of V(e)) x.push(n.direction === "desc" ? t`${t(n.column)} DESC` : t`${t(n.column)} ASC`);
1755
- let ie = x.length > 0 ? t` ORDER BY ${t.csv(x)}` : b ? t.onDialectOrElse({
1759
+ return t` ${t.unsafe(r)} JOIN ${t(G(n, e.table))} AS ${t(e.alias)} ON ${q(e.on, t, n)}`;
1760
+ }), ne = te.length > 0 ? te.reduce((e, n) => t`${e}${n}`, h) : h, re = c === void 0 ? null : Ln(c, e.table, t), g = [e.predicate ? q(e.predicate, t, n, e.table) : null, re].filter((e) => e !== null), _ = g.length > 0 ? t` WHERE ${t.and(g)}` : t``, ie = e.groupBy && e.groupBy.length > 0 ? t` GROUP BY ${t.csv(e.groupBy.map((e) => t`${t(e)}`))}` : t``, v = e.having ? t` HAVING ${q(e.having, t, n, e.table)}` : t``, y = e.skip !== void 0, b = [];
1761
+ r !== null && b.push(t`${r} ASC`), e.spatialClause?.order !== void 0 && b.push(e.spatialClause.order === "desc" ? t`${Pn(e.spatialClause, t)} DESC` : t`${Pn(e.spatialClause, t)} ASC`), l !== null && c?.rank?.order === !0 && b.push(t`${l} DESC`);
1762
+ for (let n of B(e)) b.push(n.direction === "desc" ? t`${t(n.column)} DESC` : t`${t(n.column)} ASC`);
1763
+ let ae = b.length > 0 ? t` ORDER BY ${t.csv(b)}` : y ? t.onDialectOrElse({
1756
1764
  mssql: () => t` ORDER BY (SELECT NULL)`,
1757
1765
  orElse: () => t``
1758
- }) : t``, S = (e) => {
1759
- if (!Number.isFinite(e) || !Number.isInteger(e) || e < 0) throw E(`compileSelect: expected non-negative integer take/skip, got ${e}`);
1766
+ }) : t``, x = (e) => {
1767
+ if (!Number.isFinite(e) || !Number.isInteger(e) || e < 0) throw T(`compileSelect: expected non-negative integer take/skip, got ${e}`);
1760
1768
  return t.unsafe(String(e));
1761
- }, ae = (e.ctes ?? []).map((e) => t`${t(e.name)} AS (${Y(e.descriptor, t, n)})`), oe = (e.ctes ?? []).some((e) => e.recursive === !0), se = ae.length > 0 ? t`WITH ${t.unsafe(oe ? "RECURSIVE " : "")}${t.csv(ae)} ` : t``;
1769
+ }, oe = (e.ctes ?? []).map((e) => t`${t(e.name)} AS (${J(e.descriptor, t, n)})`), se = (e.ctes ?? []).some((e) => e.recursive === !0), ce = oe.length > 0 ? t`WITH ${t.unsafe(se ? "RECURSIVE " : "")}${t.csv(oe)} ` : t``;
1762
1770
  return t.onDialectOrElse({
1763
1771
  mssql: () => {
1764
- let n = e.take !== void 0 && !b ? t`TOP ${S(e.take)} ` : t``, r = b ? t` OFFSET ${S(e.skip)} ROWS FETCH NEXT ${S(e.take ?? 2 ** 53 - 1)} ROWS ONLY` : t``;
1765
- return t`${se}SELECT ${n}${f}${d} FROM ${te}${v}${re}${y}${ie}${r}`;
1772
+ let n = e.take !== void 0 && !y ? t`TOP ${x(e.take)} ` : t``, r = y ? t` OFFSET ${x(e.skip)} ROWS FETCH NEXT ${x(e.take ?? 2 ** 53 - 1)} ROWS ONLY` : t``;
1773
+ return t`${ce}SELECT ${n}${f}${d} FROM ${ne}${_}${ie}${v}${ae}${r}`;
1766
1774
  },
1767
1775
  orElse: () => {
1768
- let n = e.take === void 0 ? t`` : t` LIMIT ${S(e.take)}`, r = b ? t` OFFSET ${S(e.skip)}` : t``;
1769
- return t`${se}SELECT ${f}${d} FROM ${te}${v}${re}${y}${ie}${n}${r}${h}`;
1776
+ let n = e.take === void 0 ? t`` : t` LIMIT ${x(e.take)}`, r = y ? t` OFFSET ${x(e.skip)}` : t``;
1777
+ return t`${ce}SELECT ${f}${d} FROM ${ne}${_}${ie}${v}${ae}${n}${r}${ee}`;
1770
1778
  }
1771
1779
  });
1772
- }, X = (e, t) => {
1780
+ }, Y = (e, t) => {
1773
1781
  let n = (e) => {
1774
1782
  if (typeof e != "string" || !/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/.test(e)) return null;
1775
1783
  let [t = "", n = ""] = e.replace(/^[+-]/, "").split("."), r = t.replace(/^0+/, "") || "0";
@@ -1787,74 +1795,74 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1787
1795
  a = t === n ? 0 : t > n ? 1 : -1;
1788
1796
  }
1789
1797
  return a === 0 ? 0 : (a > 0 ? 1 : -1) * (r.negative ? -1 : 1);
1790
- }, Ln = (e, t) => ({
1798
+ }, zn = (e, t) => ({
1791
1799
  column: e,
1792
1800
  op: "eq",
1793
1801
  value: t
1794
- }), Rn = (e, t) => ({
1802
+ }), Bn = (e, t) => ({
1795
1803
  column: e,
1796
1804
  op: "neq",
1797
1805
  value: t
1798
- }), zn = (e, t) => ({
1806
+ }), Vn = (e, t) => ({
1799
1807
  column: e,
1800
1808
  op: "gt",
1801
1809
  value: t
1802
- }), Bn = (e, t) => ({
1810
+ }), Hn = (e, t) => ({
1803
1811
  column: e,
1804
1812
  op: "gte",
1805
1813
  value: t
1806
- }), Vn = (e, t) => ({
1814
+ }), Un = (e, t) => ({
1807
1815
  column: e,
1808
1816
  op: "lt",
1809
1817
  value: t
1810
- }), Hn = (e, t) => ({
1818
+ }), Wn = (e, t) => ({
1811
1819
  column: e,
1812
1820
  op: "lte",
1813
1821
  value: t
1814
- }), Un = (e, t) => ({
1822
+ }), Gn = (e, t) => ({
1815
1823
  column: e,
1816
1824
  op: "in",
1817
1825
  value: t
1818
- }), Wn = (e, t) => ({
1826
+ }), Kn = (e, t) => ({
1819
1827
  column: e,
1820
1828
  op: "notIn",
1821
1829
  value: t
1822
- }), Gn = (e, t) => ({
1830
+ }), qn = (e, t) => ({
1823
1831
  column: e,
1824
1832
  op: "contains",
1825
1833
  value: t
1826
- }), Kn = (e, t) => ({
1834
+ }), Jn = (e, t) => ({
1827
1835
  column: e,
1828
1836
  op: "startsWith",
1829
1837
  value: t
1830
- }), qn = (e, t) => ({
1838
+ }), Yn = (e, t) => ({
1831
1839
  column: e,
1832
1840
  op: "arrayContains",
1833
1841
  value: t
1834
- }), Jn = (e, t) => ({
1842
+ }), Xn = (e, t) => ({
1835
1843
  column: e,
1836
1844
  op: "arrayOverlaps",
1837
1845
  value: t
1838
- }), Yn = (e, t) => ({
1846
+ }), Zn = (e, t) => ({
1839
1847
  column: e,
1840
1848
  op: "arrayHas",
1841
1849
  value: t
1842
- }), Xn = {
1850
+ }), Qn = {
1843
1851
  column: "id",
1844
1852
  op: "in",
1845
1853
  value: []
1846
- }, Zn = (e) => ({
1854
+ }, $n = (e) => ({
1847
1855
  column: e,
1848
1856
  op: "isNull"
1849
- }), Qn = (e) => ({
1857
+ }), er = (e) => ({
1850
1858
  column: e,
1851
1859
  op: "isNotNull"
1852
- }), $n = (e, t) => ({
1860
+ }), tr = (e, t) => ({
1853
1861
  column: e,
1854
1862
  op: "spatial",
1855
1863
  value: t
1856
- }), er = (...e) => ({ and: e }), tr = (...e) => ({ or: e }), nr = (e) => ({ not: e }), rr = (e, ...t) => {
1857
- if (t.length === 0) throw E(`jsonField("${e}"): at least one path segment is required`);
1864
+ }), nr = (...e) => ({ and: e }), rr = (...e) => ({ or: e }), ir = (e) => ({ not: e }), ar = (e, ...t) => {
1865
+ if (t.length === 0) throw T(`jsonField("${e}"): at least one path segment is required`);
1858
1866
  let n = (n, r) => ({
1859
1867
  column: e,
1860
1868
  path: t,
@@ -1875,56 +1883,56 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1875
1883
  isNull: () => n("isNull"),
1876
1884
  isNotNull: () => n("isNotNull")
1877
1885
  };
1878
- }, Z = (e) => "descriptor" in e ? e.descriptor : e, ir = (e, t) => ({
1886
+ }, X = (e) => "descriptor" in e ? e.descriptor : e, or = (e, t) => ({
1879
1887
  column: e,
1880
1888
  op: "subquery-in",
1881
- subquery: Z(t)
1882
- }), ar = (e, t) => ({
1889
+ subquery: X(t)
1890
+ }), sr = (e, t) => ({
1883
1891
  column: e,
1884
1892
  op: "subquery-not-in",
1885
- subquery: Z(t)
1886
- }), or = (e) => ({
1893
+ subquery: X(t)
1894
+ }), cr = (e) => ({
1887
1895
  op: "exists",
1888
- subquery: Z(e)
1889
- }), sr = (e) => ({
1896
+ subquery: X(e)
1897
+ }), lr = (e) => ({
1890
1898
  op: "not-exists",
1891
- subquery: Z(e)
1892
- }), cr = /^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?)?$/, lr = (e) => {
1899
+ subquery: X(e)
1900
+ }), ur = /^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?)?$/, dr = (e) => {
1893
1901
  if (e instanceof Date) return e.getTime();
1894
- if (typeof e == "string" && cr.test(e)) {
1902
+ if (typeof e == "string" && ur.test(e)) {
1895
1903
  let t = Date.parse(e);
1896
1904
  return Number.isNaN(t) ? void 0 : t;
1897
1905
  }
1898
- }, ur = (e, t) => {
1906
+ }, fr = (e, t) => {
1899
1907
  if (!(e instanceof Date) && !(t instanceof Date)) return;
1900
- let n = lr(e), r = lr(t);
1908
+ let n = dr(e), r = dr(t);
1901
1909
  return n === void 0 || r === void 0 ? void 0 : [n, r];
1902
- }, dr = (e, t) => {
1910
+ }, pr = (e, t) => {
1903
1911
  if (e === t) return !0;
1904
- let n = ur(e, t);
1912
+ let n = fr(e, t);
1905
1913
  return n !== void 0 && n[0] === n[1];
1906
- }, fr = (e, t) => {
1914
+ }, mr = (e, t) => {
1907
1915
  if (e == null || t == null) return null;
1908
- let n = ur(e, t);
1916
+ let n = fr(e, t);
1909
1917
  if (n !== void 0) return n[0] === n[1] ? 0 : n[0] > n[1] ? 1 : -1;
1910
1918
  let r = e instanceof Date ? e.getTime() : e, i = t instanceof Date ? t.getTime() : t;
1911
1919
  return typeof r == typeof i ? r === i ? 0 : r > i ? 1 : -1 : null;
1912
- }, Q = (e, t, n = null, r = {}) => {
1920
+ }, Z = (e, t, n = null, r = {}) => {
1913
1921
  if (!t) return !1;
1914
- if ("not" in e) return !Q(e.not, t, n, r);
1922
+ if ("not" in e) return !Z(e.not, t, n, r);
1915
1923
  if ("and" in e) {
1916
- for (let i of e.and) if (!Q(i, t, n, r)) return !1;
1924
+ for (let i of e.and) if (!Z(i, t, n, r)) return !1;
1917
1925
  return !0;
1918
1926
  }
1919
1927
  if ("or" in e) {
1920
- for (let i of e.or) if (Q(i, t, n, r)) return !0;
1928
+ for (let i of e.or) if (Z(i, t, n, r)) return !0;
1921
1929
  return !1;
1922
1930
  }
1923
1931
  if (e.op === "subquery-in" || e.op === "subquery-not-in") {
1924
1932
  if (!n) return !1;
1925
1933
  let i = n.get(e.subquery);
1926
1934
  if (!(i instanceof Set)) return !1;
1927
- let a = t[e.column], o = r[e.column]?.type === "decimal" ? [...i].some((e) => X(a, e) === 0) : i.has(a);
1935
+ let a = t[e.column], o = r[e.column]?.type === "decimal" ? [...i].some((e) => Y(a, e) === 0) : i.has(a);
1928
1936
  return e.op === "subquery-in" ? o : !o;
1929
1937
  }
1930
1938
  if (e.op === "exists" || e.op === "not-exists") {
@@ -1932,7 +1940,7 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1932
1940
  let t = n.get(e.subquery), r = typeof t == "number" ? t > 0 : t instanceof Set && t.size > 0;
1933
1941
  return e.op === "exists" ? r : !r;
1934
1942
  }
1935
- let i = e, a = t[i.column], o = r[i.column]?.type === "decimal", s = (e, t) => o && e != null && t != null ? X(e, t) === 0 : dr(e, t), c = o ? X : fr;
1943
+ let i = e, a = t[i.column], o = r[i.column]?.type === "decimal", s = (e, t) => o && e != null && t != null ? Y(e, t) === 0 : pr(e, t), c = o ? Y : mr;
1936
1944
  switch (i.op) {
1937
1945
  case "eq": return s(a, i.value);
1938
1946
  case "neq": return !s(a, i.value);
@@ -1955,19 +1963,19 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1955
1963
  case "arrayHas": return Array.isArray(a) && a.includes(i.value);
1956
1964
  case "isNull": return a == null;
1957
1965
  case "isNotNull": return a != null;
1958
- case "spatial": throw E("@voltro/plugin-postgis: spatial predicates (ST_DWithin / ST_Contains / ST_Within / ST_Intersects / bbox &&) are not evaluable in-memory — use them in one-shot ctx.store.query reads, not reactive subscriptions.");
1966
+ case "spatial": throw T("@voltro/plugin-postgis: spatial predicates (ST_DWithin / ST_Contains / ST_Within / ST_Intersects / bbox &&) are not evaluable in-memory — use them in one-shot ctx.store.query reads, not reactive subscriptions.");
1959
1967
  }
1960
- }, $ = function* (e) {
1968
+ }, Q = function* (e) {
1961
1969
  if ("not" in e) {
1962
- yield* $(e.not);
1970
+ yield* Q(e.not);
1963
1971
  return;
1964
1972
  }
1965
1973
  if ("and" in e) {
1966
- for (let t of e.and) yield* $(t);
1974
+ for (let t of e.and) yield* Q(t);
1967
1975
  return;
1968
1976
  }
1969
1977
  if ("or" in e) {
1970
- for (let t of e.or) yield* $(t);
1978
+ for (let t of e.or) yield* Q(t);
1971
1979
  return;
1972
1980
  }
1973
1981
  e.op === "subquery-in" || e.op === "subquery-not-in" ? yield {
@@ -1977,30 +1985,30 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
1977
1985
  kind: "exists",
1978
1986
  descriptor: e.subquery
1979
1987
  });
1980
- }, pr = function* (e, t = !0) {
1988
+ }, $ = function* (e, t = !0) {
1981
1989
  if ("not" in e) {
1982
- yield* pr(e.not, !1);
1990
+ yield* $(e.not, !1);
1983
1991
  return;
1984
1992
  }
1985
1993
  if ("and" in e) {
1986
- for (let n of e.and) yield* pr(n, t);
1994
+ for (let n of e.and) yield* $(n, t);
1987
1995
  return;
1988
1996
  }
1989
1997
  if ("or" in e) {
1990
- for (let t of e.or) yield* pr(t, !1);
1998
+ for (let t of e.or) yield* $(t, !1);
1991
1999
  return;
1992
2000
  }
1993
2001
  e.op !== "subquery-in" && e.op !== "subquery-not-in" && e.op !== "exists" && e.op !== "not-exists" && (yield {
1994
2002
  ...e,
1995
2003
  conjunctive: t
1996
2004
  });
1997
- }, mr = (e, t) => ({
2005
+ }, hr = (e, t) => ({
1998
2006
  name: e,
1999
2007
  body: t
2000
- }), hr = (e) => {
2008
+ }), gr = (e) => {
2001
2009
  if (e.lifecycle === "cron" && !e.cron) throw Error(`seed "${e.id}": lifecycle 'cron' requires a 'cron' field`);
2002
2010
  if (e.lifecycle === "onSchemaChange" && (!e.watchedTables || e.watchedTables.length === 0)) throw Error(`seed "${e.id}": lifecycle 'onSchemaChange' requires at least one entry in 'watchedTables'`);
2003
- let t = e.steps({ step: mr });
2011
+ let t = e.steps({ step: hr });
2004
2012
  if (t.length === 0) throw Error(`seed "${e.id}": at least one step is required`);
2005
2013
  return {
2006
2014
  __seed: !0,
@@ -2013,75 +2021,76 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
2013
2021
  ...e.fingerprint === void 0 ? {} : { fingerprint: e.fingerprint },
2014
2022
  steps: t
2015
2023
  };
2016
- }, gr = (e) => typeof e == "object" && !!e && "__seed" in e && e.__seed === !0, _r = null, vr = null, yr = (e) => {
2017
- _r = e;
2018
- }, br = (e) => {
2024
+ }, _r = (e) => typeof e == "object" && !!e && "__seed" in e && e.__seed === !0, vr = null, yr = null, br = (e) => {
2019
2025
  vr = e;
2020
- }, xr = async (e) => {
2021
- let t = _r;
2022
- t !== null && await t(e);
2026
+ }, xr = (e) => {
2027
+ yr = e;
2023
2028
  }, Sr = async (e) => {
2024
2029
  let t = vr;
2030
+ t !== null && await t(e);
2031
+ }, Cr = async (e) => {
2032
+ let t = yr;
2025
2033
  t !== null && e.changedTables.length !== 0 && await t(e);
2026
- }, Cr = (e) => {
2034
+ }, wr = ["before-schema", "after-schema"], Tr = (e) => {
2027
2035
  if (!e.id || e.id.length === 0) throw Error("migration: `id` is required + must be non-empty");
2028
2036
  if (!e.up || !e.down) throw Error(`migration ${e.id}: both \`up\` and \`down\` must be functions`);
2037
+ if (!wr.includes(e.phase)) throw Error(`migration ${e.id}: \`phase\` is required and must be one of ${wr.map((e) => `'${e}'`).join(" | ")} — 'before-schema' runs before the declarative apply (a shape change the planner must not compute against), 'after-schema' runs after it (a body that needs the new shape, such as a back-fill into a table this deploy creates)`);
2029
2038
  return e;
2030
- }, wr = Symbol.for("voltro.migration.irreversible"), Tr = class extends Error {
2039
+ }, Er = Symbol.for("voltro.migration.irreversible"), Dr = class extends Error {
2031
2040
  migrationId;
2032
2041
  reason;
2033
2042
  _tag = "IrreversibleMigrationError";
2034
2043
  constructor(e, t) {
2035
2044
  super(`migration ${e} cannot be rolled back: ${t}`), this.migrationId = e, this.reason = t, this.name = "IrreversibleMigrationError";
2036
2045
  }
2037
- }, Er = (e) => {
2046
+ }, Or = (e) => {
2038
2047
  if (!e || e.trim().length === 0) throw Error("irreversible(): a reason is required");
2039
- return Object.assign(() => t.fail(new Tr("<unknown>", e)), { [wr]: e });
2040
- }, Dr = (e) => {
2041
- let t = e[wr];
2048
+ return Object.assign(() => t.fail(new Dr("<unknown>", e)), { [Er]: e });
2049
+ }, kr = (e) => {
2050
+ let t = e[Er];
2042
2051
  return typeof t == "string" ? t : void 0;
2043
- }, Or = class {
2052
+ }, Ar = class {
2044
2053
  reason;
2045
2054
  _tag = "MigrationSkipped";
2046
2055
  constructor(e) {
2047
2056
  this.reason = e;
2048
2057
  }
2049
- }, kr = class extends Error {
2058
+ }, jr = class extends Error {
2050
2059
  migrationId;
2051
2060
  failed;
2052
2061
  _tag = "MigrationExpectationFailed";
2053
2062
  constructor(e, t) {
2054
2063
  super(`migration ${e}: ${t.length} post-condition(s) did not hold after up():\n` + t.map((e) => ` - ${e}`).join("\n") + "\n The migration is NOT recorded; the next run applies it again."), this.migrationId = e, this.failed = t, this.name = "MigrationExpectationFailed";
2055
2064
  }
2056
- }, Ar = class extends Error {
2065
+ }, Mr = class extends Error {
2057
2066
  migrationId;
2058
2067
  dialect;
2059
2068
  _tag = "TransactionBrokenByBodyError";
2060
2069
  constructor(e, t) {
2061
2070
  super(`migration ${e} is transactional, and its body COMMITTED the transaction from inside — on ${t} a DDL statement commits everything before it. The work is in the database and the migration is recorded; it will not run again. What did not hold is the all-or-nothing guarantee. Either mark it \`transactional: false\` (per-statement, resumable through your own idempotency) or move the schema change into \`ctx.schema\` in a migration of its own and keep this one to data.`), this.migrationId = e, this.dialect = t, this.name = "TransactionBrokenByBodyError";
2062
2071
  }
2063
- }, jr = class extends Error {
2072
+ }, Nr = class extends Error {
2064
2073
  migrationId;
2065
2074
  operation;
2066
2075
  _tag = "MigrationNeedsSqlClient";
2067
2076
  constructor(e, t, n) {
2068
2077
  super(`migration ${e}: ${t} — ${n}`), this.migrationId = e, this.operation = t, this.name = "MigrationNeedsSqlClient";
2069
2078
  }
2070
- }, Mr = class extends Error {
2079
+ }, Pr = class extends Error {
2071
2080
  table;
2072
2081
  report;
2073
2082
  _tag = "RewriteUnstableError";
2074
2083
  constructor(e, t) {
2075
2084
  super(`rewrite of ${e} did not stabilise after ${t.passes} pass(es): ${t.rewritten} rewritten, ${t.contended} contended on the last pass. Check for concurrent writes and guard values that cannot round-trip exactly before raising maxPasses.`), this.table = e, this.report = t, this.name = "RewriteUnstableError";
2076
2085
  }
2077
- }, Nr = /^\d{8}_\d{6}_[a-z0-9_]+\.ts$/, Pr = (e) => typeof e == "object" && !!e && "id" in e && "up" in e && "down" in e && typeof e.id == "string" && typeof e.up == "function" && typeof e.down == "function", Fr = /* @__PURE__ */ new Set(["voltro_isr_cache"]), Ir = (e) => Fr.has(e) || e.startsWith("_voltro_") || e.startsWith("_cloud_") || e.startsWith("cluster_") || e.startsWith("__turso_internal_"), Lr = "_voltro_staging_", Rr = (e) => e.startsWith(Lr), zr = /__dropped_\d{14}$/, Br = (e) => zr.test(e), Vr = 7, Hr = (e) => {
2086
+ }, Fr = /^\d{8}_\d{6}_[a-z0-9_]+\.ts$/, Ir = (e) => typeof e == "object" && !!e && "id" in e && "up" in e && "down" in e && typeof e.id == "string" && typeof e.up == "function" && typeof e.down == "function", Lr = /* @__PURE__ */ new Set(["voltro_isr_cache"]), Rr = (e) => Lr.has(e) || e.startsWith("_voltro_") || e.startsWith("_cloud_") || e.startsWith("cluster_") || e.startsWith("__turso_internal_"), zr = "_voltro_staging_", Br = (e) => e.startsWith(zr), Vr = /__dropped_\d{14}$/, Hr = (e) => Vr.test(e), Ur = 7, Wr = (e) => {
2078
2087
  let t = /__dropped_(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/.exec(e);
2079
2088
  if (t === null) return;
2080
2089
  let [, n, r, i, a, o, s] = t;
2081
2090
  return new Date(Date.UTC(Number(n), Number(r) - 1, Number(i), Number(a), Number(o), Number(s)));
2082
- }, Ur = (e, t = {}) => {
2091
+ }, Gr = (e, t = {}) => {
2083
2092
  let n = t.now ?? /* @__PURE__ */ new Date(), r = t.retentionDays ?? 7, i = [], a = (e, t) => {
2084
- let a = Hr(e);
2093
+ let a = Wr(e);
2085
2094
  if (a === void 0) return;
2086
2095
  let o = Math.floor((n.getTime() - a.getTime()) / 864e5);
2087
2096
  o >= r && i.push({
@@ -2090,137 +2099,137 @@ var Xt = (e, t, n) => Zt(e, "id", t, n), Zt = (e, t, n, r, i = "asc") => {
2090
2099
  ageDays: o
2091
2100
  });
2092
2101
  };
2093
- for (let t of e.tables) if (a(t.name, t.name), !Br(t.name)) for (let e of t.columns ?? []) a(e.name, `${t.name}.${e.name}`);
2102
+ for (let t of e.tables) if (a(t.name, t.name), !Hr(t.name)) for (let e of t.columns ?? []) a(e.name, `${t.name}.${e.name}`);
2094
2103
  return i;
2095
- }, Wr = (e, t) => {
2104
+ }, Kr = (e, t) => {
2096
2105
  let n = e.reduce((e, t) => e.ageDays >= t.ageDays ? e : t), r = (/* @__PURE__ */ new Date(Date.now() - t * 864e5)).toISOString().slice(0, 10);
2097
2106
  return `${e.length} soft-drop snapshot(s) older than ${t} day(s) still hold the dropped data (oldest: ${n.name}, ${n.ageDays}d) — ${e.map((e) => e.name).join(", ")}. Restore with \`voltro db restore-snapshot\` or reclaim with \`voltro db gc-snapshots --before ${r}\`; the window is \`database.softDropRetentionDays\` in app.config.`;
2098
- }, Gr = (e, t) => e.filter((e) => !Ir(e.name) || t.has(e.name)), Kr = L("_voltro_migrations", {
2107
+ }, qr = (e, t) => e.filter((e) => !Rr(e.name) || t.has(e.name)), Jr = I("_voltro_migrations", {
2099
2108
  id: f({ prefix: "mig" }),
2100
2109
  name: p(),
2101
2110
  hash: p(),
2102
2111
  status: p(),
2103
- appliedAt: v().nullable(),
2112
+ appliedAt: _().nullable(),
2104
2113
  durationMs: m().nullable(),
2105
2114
  errorMessage: p().nullable(),
2106
2115
  errorStack: p().nullable(),
2107
2116
  workflowRunId: p().nullable(),
2108
- createdAt: v().default("now"),
2109
- updatedAt: v().default("now").onUpdate("now")
2110
- }).index(["status"]), qr = L("_voltro_seeds", {
2117
+ createdAt: _().default("now"),
2118
+ updatedAt: _().default("now").onUpdate("now")
2119
+ }).index(["status"]), Yr = I("_voltro_seeds", {
2111
2120
  id: f({ prefix: "seed" }),
2112
2121
  name: p(),
2113
2122
  lifecycle: p(),
2114
2123
  fingerprint: p(),
2115
2124
  cronSchedule: p().nullable(),
2116
- watchedTables: y().nullable(),
2117
- nextRunAt: v().nullable(),
2125
+ watchedTables: v().nullable(),
2126
+ nextRunAt: _().nullable(),
2118
2127
  lastRunStatus: p().nullable(),
2119
- lastRunAt: v().nullable(),
2128
+ lastRunAt: _().nullable(),
2120
2129
  lastRunDurationMs: m().nullable(),
2121
2130
  lastRunRowsTouched: m().nullable(),
2122
2131
  lastError: p().nullable(),
2123
2132
  workflowRunId: p().nullable(),
2124
- createdAt: v().default("now"),
2125
- updatedAt: v().default("now").onUpdate("now")
2126
- }).index(["lifecycle"]).index(["nextRunAt"]), Jr = L("_voltro_migration_plans", {
2133
+ createdAt: _().default("now"),
2134
+ updatedAt: _().default("now").onUpdate("now")
2135
+ }).index(["lifecycle"]).index(["nextRunAt"]), Xr = I("_voltro_migration_plans", {
2127
2136
  id: f({ prefix: "plan" }),
2128
2137
  fingerprint: p(),
2129
2138
  liveFingerprint: p().nullable(),
2130
- operations: y(),
2131
- rollbackPlan: y().nullable(),
2139
+ operations: v(),
2140
+ rollbackPlan: v().nullable(),
2132
2141
  appliedBy: p(),
2133
2142
  environment: p(),
2134
2143
  source: p(),
2135
2144
  onlineStrategy: p().nullable(),
2136
2145
  durationMs: m(),
2137
2146
  notes: p().nullable(),
2138
- squashedAt: v().nullable(),
2139
- appliedAt: v().default("now"),
2140
- createdAt: v().default("now"),
2141
- updatedAt: v().default("now").onUpdate("now")
2142
- }).index(["fingerprint"]).index(["environment"]), Yr = L("_voltro_idempotency", {
2147
+ squashedAt: _().nullable(),
2148
+ appliedAt: _().default("now"),
2149
+ createdAt: _().default("now"),
2150
+ updatedAt: _().default("now").onUpdate("now")
2151
+ }).index(["fingerprint"]).index(["environment"]), Zr = I("_voltro_idempotency", {
2143
2152
  id: f({ prefix: "idem" }),
2144
2153
  scope: p(),
2145
2154
  key: p(),
2146
2155
  status: p(),
2147
- response: y().nullable(),
2148
- createdAt: v().default("now")
2149
- }).unique(["scope", "key"]).index(["createdAt"]), Xr = L("_voltro_devices", {
2156
+ response: v().nullable(),
2157
+ createdAt: _().default("now")
2158
+ }).unique(["scope", "key"]).index(["createdAt"]), Qr = I("_voltro_devices", {
2150
2159
  id: f({ prefix: "device" }),
2151
2160
  tenantId: p(),
2152
2161
  name: p(),
2153
- scopes: y().nullable(),
2162
+ scopes: v().nullable(),
2154
2163
  pairingHash: p().maxLength(64).nullable(),
2155
- pairingExpiresAt: v().nullable(),
2164
+ pairingExpiresAt: _().nullable(),
2156
2165
  accessHash: p().maxLength(64).nullable(),
2157
- accessExpiresAt: v().nullable(),
2166
+ accessExpiresAt: _().nullable(),
2158
2167
  refreshHash: p().maxLength(64).nullable(),
2159
- refreshExpiresAt: v().nullable(),
2168
+ refreshExpiresAt: _().nullable(),
2160
2169
  previousRefreshHash: p().maxLength(64).nullable(),
2161
2170
  generation: m().default(0),
2162
- pairedAt: v().nullable(),
2163
- lastSeenAt: v().nullable(),
2164
- revokedAt: v().nullable(),
2171
+ pairedAt: _().nullable(),
2172
+ lastSeenAt: _().nullable(),
2173
+ revokedAt: _().nullable(),
2165
2174
  revokedReason: p().nullable(),
2166
2175
  createdBy: p().nullable(),
2167
- metadata: y().nullable(),
2168
- createdAt: v()
2169
- }).index(["tenantId"]).index(["pairingHash"]).index(["accessHash"]).index(["refreshHash"]).index(["previousRefreshHash"]), Zr = L("_voltro_tenant_selections", {
2176
+ metadata: v().nullable(),
2177
+ createdAt: _()
2178
+ }).index(["tenantId"]).index(["pairingHash"]).index(["accessHash"]).index(["refreshHash"]).index(["previousRefreshHash"]), $r = I("_voltro_tenant_selections", {
2170
2179
  id: f({ prefix: "tsel" }),
2171
2180
  subjectType: p().maxLength(32),
2172
2181
  subjectId: p(),
2173
2182
  tenantId: p(),
2174
- selectedAt: v()
2175
- }).primaryKey(["id"]).nonReactive(), Qr = L("_voltro_kv", {
2183
+ selectedAt: _()
2184
+ }).primaryKey(["id"]).nonReactive(), ei = I("_voltro_kv", {
2176
2185
  id: f({ prefix: "kv" }),
2177
2186
  key: p().unique(),
2178
2187
  value: p().nullable(),
2179
- expiresAt: v().nullable(),
2180
- createdAt: v().default("now"),
2181
- updatedAt: v().default("now").onUpdate("now")
2182
- }).index(["expiresAt"]), $r = L("_voltro_api_keys", {
2188
+ expiresAt: _().nullable(),
2189
+ createdAt: _().default("now"),
2190
+ updatedAt: _().default("now").onUpdate("now")
2191
+ }).index(["expiresAt"]), ti = I("_voltro_api_keys", {
2183
2192
  id: f({ prefix: "apikey" }),
2184
2193
  tenantId: p().nullable(),
2185
2194
  name: p(),
2186
2195
  hashedKey: p().maxLength(64).unique(),
2187
2196
  keyPrefix: p(),
2188
- scopes: y().nullable(),
2189
- lastUsedAt: v().nullable(),
2197
+ scopes: v().nullable(),
2198
+ lastUsedAt: _().nullable(),
2190
2199
  requestCount: m().default(0),
2191
- expiresAt: v().nullable(),
2192
- revokedAt: v().nullable(),
2200
+ expiresAt: _().nullable(),
2201
+ revokedAt: _().nullable(),
2193
2202
  createdBy: p().nullable(),
2194
2203
  onBehalfOf: p().nullable(),
2195
- metadata: y().nullable(),
2196
- createdAt: v().default("now")
2197
- }).index("byApiKeyTenant", ["tenantId"]), ei = L("_voltro_replica_observations", {
2204
+ metadata: v().nullable(),
2205
+ createdAt: _().default("now")
2206
+ }).index("byApiKeyTenant", ["tenantId"]), ni = I("_voltro_replica_observations", {
2198
2207
  id: f({ prefix: "robs" }),
2199
2208
  replicaId: p().maxLength(191),
2200
- startedAt: v(),
2209
+ startedAt: _(),
2201
2210
  version: p().maxLength(64).nullable(),
2202
2211
  kind: p().maxLength(64),
2203
2212
  payload: p().nullable(),
2204
2213
  reachableAt: p().maxLength(255).nullable(),
2205
- writtenAt: v().default("now").onUpdate("now")
2206
- }).unique(["replicaId", "kind"]).index(["kind"]), ti = [
2207
- Kr,
2208
- qr,
2209
- Jr
2210
- ], ni = "_voltro_replace_in_progress", ri = L(ni, {
2214
+ writtenAt: _().default("now").onUpdate("now")
2215
+ }).unique(["replicaId", "kind"]).index(["kind"]), ri = [
2216
+ Jr,
2217
+ Yr,
2218
+ Xr
2219
+ ], ii = "_voltro_replace_in_progress", ai = I(ii, {
2211
2220
  id: f({ prefix: "repl" }),
2212
- startedAt: v().default("now"),
2221
+ startedAt: _().default("now"),
2213
2222
  kind: p().default("replace"),
2214
2223
  tables: p().nullable(),
2215
2224
  capture: p().nullable(),
2216
2225
  via: p(),
2217
2226
  staging: p().nullable(),
2218
- heartbeatAt: v().nullable(),
2219
- resumable: _().nullable()
2220
- }), ii = 30, ai = (e, t) => {
2227
+ heartbeatAt: _().nullable(),
2228
+ resumable: g().nullable()
2229
+ }), oi = 30, si = (e, t) => {
2221
2230
  let n = typeof t == "number" && Number.isFinite(t) && t > 0 ? t : 30, r = Number(e.VOLTRO_STAGING_STALE_MINUTES);
2222
2231
  return (Number.isFinite(r) && r > 0 ? r : n) * 6e4;
2223
- }, oi = (e) => e == null || String(e).length === 0 ? [] : String(e).split(",").map((e) => e.trim()).filter((e) => e.length > 0), si = (e) => {
2232
+ }, ci = (e) => e == null || String(e).length === 0 ? [] : String(e).split(",").map((e) => e.trim()).filter((e) => e.length > 0), li = (e) => {
2224
2233
  let t = e.filter((e) => e.kind !== "staging");
2225
2234
  if (t.length !== 0) return `refusing to start: a destructive data operation did not finish.
2226
2235
  ${t.map((e) => {
@@ -2235,7 +2244,7 @@ ${t.map((e) => {
2235
2244
 
2236
2245
  When the data is back, or you have decided the current state is correct, clear the marker:
2237
2246
  voltro data clear-replace-marker --yes`;
2238
- }, ci = (e, t, n) => {
2247
+ }, ui = (e, t, n) => {
2239
2248
  let r = e.filter((e) => e.kind === "staging");
2240
2249
  return {
2241
2250
  all: r,
@@ -2245,7 +2254,7 @@ ${t.map((e) => {
2245
2254
  return Number.isFinite(r) ? t - r >= n : !1;
2246
2255
  })
2247
2256
  };
2248
- }, li = (e, t) => {
2257
+ }, di = (e, t) => {
2249
2258
  if (e.all.length === 0) return;
2250
2259
  let n = new Set(e.droppable.map((e) => e.id));
2251
2260
  return `staged data-import leftovers:
@@ -2256,4 +2265,4 @@ ${e.all.map((e) => {
2256
2265
  a reason to refuse the boot — it is a reason to know the disk is holding a copy of a bundle.`;
2257
2266
  };
2258
2267
  //#endregion
2259
- export { Ln as $, be as $n, Pt as $t, Tr as A, it as An, ae as Ar, xn as At, hr as B, j as Bn, nn as Bt, Wr as C, ft as Cn, y as Cr, Y as Ct, Gr as D, ct as Dn, c as Dr, _n as Dt, Rr as E, dt as En, pe as Er, Tn as Et, Ar as F, ze as Fn, ln as Ft, yr as G, Ne as Gn, jt as Gt, xr as H, E as Hn, qt as Ht, Er as I, Be as In, fn as It, qn as J, we as Jn, Bt as Jt, Xn as K, Ie as Kn, Qt as Kt, Dr as L, Ve as Ln, $t as Lt, jr as M, at as Mn, p as Mr, G as Mt, Or as N, rt as Nn, v as Nr, cn as Nt, Hr as O, st as On, h as Or, gn as Ot, Mr as P, et as Pn, ce as Pr, un as Pt, Gn as Q, ye as Qn, Ft as Qt, Pr as R, M as Rn, tn as Rt, Ur as S, R as Sn, ue as Sr, En as St, Br as T, L as Tn, ee as Tr, wn as Tt, gr as U, De as Un, It as Ut, Sr as V, P as Vn, Nt as Vt, br as W, T as Wn, At as Wt, Jn as X, Fe as Xn, Wt as Xt, Yn as Y, Pe as Yn, zt as Yt, $ as Z, Te as Zn, Gt as Zt, Zr as _, Tt as _n, se as _r, $n as _t, li as a, Jt as an, S as ar, ir as at, Fr as b, yt as bn, f as br, X as bt, ai as c, Kt as cn, _ as cr, rr as ct, Yr as d, Et as dn, l as dr, Rn as dt, V as en, _e as er, Q as et, Qr as f, Ot as fn, s as fr, nr as ft, qr as g, Ct as gn, g as gr, tr as gt, ei as h, kt as hn, ne as hr, ar as ht, si as i, Ht as in, u as ir, Un as it, kr as j, ot as jn, o as jr, bn as jt, Nr as k, lt as kn, oe as kr, K as kt, $r as l, Lt as ln, b as lr, Vn as lt, Kr as m, B as mn, re as mr, Wn as mt, ii as n, Xt as nn, ge as nr, zn as nt, ci as o, Vt as on, le as or, Qn as ot, Jr as p, wt as pn, x as pr, sr as pt, er as q, Le as qn, Ut as qt, ri as r, Yt as rn, he as rr, Bn as rt, oi as s, Mt as sn, te as sr, Zn as st, ni as t, Zt as tn, ve as tr, or as tt, Xr as u, Rt as un, ie as ur, Hn as ut, ti as v, Dt as vn, de as vr, Kn as vt, Ir as w, ut as wn, C as wr, q as wt, Lr as x, vt as xn, m as xr, J as xt, Vr as y, bt as yn, fe as yr, pr as yt, Cr as z, N as zn, en as zt };
2268
+ export { qn as $, Ee as $n, Lt as $t, Dr as A, dt as An, ee as Ar, G as At, Tr as B, M as Bn, nn as Bt, Kr as C, L as Cn, m as Cr, On as Ct, qr as D, pt as Dn, te as Dr, Dn as Dt, Br as E, I as En, S as Er, En as Et, Pr as F, nt as Fn, _ as Fr, fn as Ft, xr as G, w as Gn, Mt as Gt, Cr as H, N as Hn, Ft as Ht, Mr as I, Ve as In, le as Ir, dn as It, nr as J, Re as Jn, Gt as Jt, br as K, Pe as Kn, Nt as Kt, Or as L, He as Ln, mn as Lt, jr as M, ct as Mn, oe as Mr, Sn as Mt, Nr as N, st as Nn, o as Nr, W as Nt, Wr as O, ut as On, me as Or, yn as Ot, Ar as P, at as Pn, p as Pr, un as Pt, Q, Ie as Qn, qt as Qt, kr as R, Ue as Rn, tn as Rt, Gr as S, bt as Sn, f as Sr, q as St, Hr as T, ft as Tn, v as Tr, K as Tt, Sr as U, T as Un, Yt as Ut, gr as V, A as Vn, an as Vt, _r as W, Oe as Wn, Rt as Wt, Zn as X, Te as Xn, Vt as Xt, Yn as Y, ze as Yn, Ht as Yt, Xn as Z, Fe as Zn, Kt as Zt, $r as _, Tt as _n, re as _r, rr as _t, di as a, Wt as an, ge as ar, Gn as at, Lr as b, St as bn, fe as br, $ as bt, si as c, Pt as cn, ue as cr, $n as ct, Zr as d, Bt as dn, y as dr, Wn as dt, It as en, be as er, zn as et, ei as f, Ot as fn, ae as fr, Bn as ft, Yr as g, jt as gn, ie as gr, sr as gt, ni as h, z as hn, b as hr, Kn as ht, li as i, Zt as in, _e as ir, Hn as it, wr as j, ot as jn, se as jr, Cn as jt, Fr as k, lt as kn, c as kr, vn as kt, ti as l, Jt as ln, ne as lr, ar as lt, Jr as m, Et as mn, s as mr, lr as mt, oi as n, $t as nn, ve as nr, cr as nt, ui as o, Xt as on, u as or, or as ot, Xr as p, At as pn, l as pr, ir as pt, Qn as q, Le as qn, en as qt, ai as r, Qt as rn, ye as rr, Vn as rt, ci as s, Ut as sn, x as sr, er as st, ii as t, B as tn, xe as tr, Z as tt, Qr as u, zt as un, g as ur, Un as ut, ri as v, Dt as vn, h as vr, tr as vt, Rr as w, mt as wn, de as wr, J as wt, zr as x, xt as xn, pe as xr, Y as xt, Ur as y, kt as yn, ce as yr, Jn as yt, Ir as z, j as zn, rn as zt };