@voltro/database 0.54.0 → 0.55.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.
@@ -333,29 +333,29 @@ var r = (e) => {
333
333
  throw Error(`typeid prefix '${e}' on table '${t.tableName}' is ${e.length} chars — exceeds the 63-byte limit; ${n}`);
334
334
  }
335
335
  e.length > 60 && _(`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).`);
336
- }, ke = 1704067200000n, C = 10n, w = 12n, T = (1n << C) - 1n, Ae = (1n << w) - 1n, je = w, Me = 22n, Ne = () => {
336
+ }, ke = 1704067200000n, Ae = 10n, C = 12n, w = (1n << Ae) - 1n, je = (1n << C) - 1n, Me = C, Ne = 22n, Pe = () => {
337
337
  let e = process.env.SNOWFLAKE_MACHINE_ID;
338
338
  if (e === void 0 || e === "") return 0n;
339
339
  let t = BigInt(e);
340
- if (t < 0n || t > T) throw Error(`SNOWFLAKE_MACHINE_ID out of range: ${e}. Must be 0..${T}.`);
340
+ if (t < 0n || t > w) throw Error(`SNOWFLAKE_MACHINE_ID out of range: ${e}. Must be 0..${w}.`);
341
341
  return t;
342
- }, E = () => ({
342
+ }, T = () => ({
343
343
  lastMs: 0n,
344
344
  sequence: 0n,
345
- machineId: Ne()
346
- }), D, Pe = () => (D === void 0 && (D = E()), D), Fe = () => {
347
- D = E();
348
- }, O = () => BigInt(Date.now()), Ie = (e) => {
349
- let t = O();
350
- for (; t <= e;) t = O();
345
+ machineId: Pe()
346
+ }), E, Fe = () => (E === void 0 && (E = T()), E), Ie = () => {
347
+ E = T();
348
+ }, D = () => BigInt(Date.now()), Le = (e) => {
349
+ let t = D();
350
+ for (; t <= e;) t = D();
351
351
  return t;
352
- }, k = () => {
353
- let e = Pe(), t = O();
354
- t === e.lastMs ? (e.sequence = e.sequence + 1n & Ae, e.sequence === 0n && (t = Ie(e.lastMs), e.lastMs = t)) : (e.sequence = 0n, e.lastMs = t);
352
+ }, O = () => {
353
+ let e = Fe(), t = D();
354
+ t === e.lastMs ? (e.sequence = e.sequence + 1n & je, e.sequence === 0n && (t = Le(e.lastMs), e.lastMs = t)) : (e.sequence = 0n, e.lastMs = t);
355
355
  let n = t - ke;
356
356
  if (n < 0n) throw Error("Snowflake timestamp before configured epoch (2024-01-01). System clock is wrong.");
357
- return (n << Me | e.machineId << je | e.sequence).toString();
358
- }, A = (e) => {
357
+ return (n << Ne | e.machineId << Me | e.sequence).toString();
358
+ }, k = (e) => {
359
359
  let t = e.toLowerCase();
360
360
  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.`);
361
361
  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: '...' }).`);
@@ -364,10 +364,10 @@ var r = (e) => {
364
364
  kind: "derived",
365
365
  tableName: e
366
366
  }), n;
367
- }, j = (e, t) => {
367
+ }, A = (e, t) => {
368
368
  if (e === void 0) return {
369
369
  kind: "typeid",
370
- prefix: A(t)
370
+ prefix: k(t)
371
371
  };
372
372
  if ("prefix" in e && !("scheme" in e)) return S(e.prefix, {
373
373
  kind: "explicit",
@@ -379,7 +379,7 @@ var r = (e) => {
379
379
  if (!("scheme" in e)) throw Error("invalid id() options: no scheme or prefix");
380
380
  switch (e.scheme) {
381
381
  case "typeid": {
382
- let n = e.prefix ?? A(t);
382
+ let n = e.prefix ?? k(t);
383
383
  return e.prefix !== void 0 && S(e.prefix, {
384
384
  kind: "explicit",
385
385
  tableName: t
@@ -396,22 +396,22 @@ var r = (e) => {
396
396
  generate: e.generate
397
397
  };
398
398
  }
399
- }, Le = (e, r) => {
399
+ }, Re = (e, r) => {
400
400
  switch (e.kind) {
401
401
  case "typeid": return t(e.prefix).toString();
402
402
  case "ulid": return n();
403
403
  case "numeric": return null;
404
- case "snowflake": return k();
404
+ case "snowflake": return O();
405
405
  case "custom": return e.generate(r);
406
406
  }
407
- }, M = (e) => ({
407
+ }, j = (e) => ({
408
408
  fields: f(e.fields),
409
409
  ...e.id === void 0 ? {} : { id: e.id },
410
410
  ...e.requires === void 0 ? {} : { requires: e.requires },
411
411
  ...e.indexes === void 0 ? {} : { indexes: e.indexes },
412
412
  ...e.behaviors === void 0 ? {} : { behaviors: e.behaviors },
413
413
  ...e.policies === void 0 ? {} : { policies: e.policies }
414
- }), Re = M, N = (e) => {
414
+ }), ze = j, M = (e) => {
415
415
  let t = /* @__PURE__ */ new Set(), n = [], r = (e) => {
416
416
  let i = e.id ?? e;
417
417
  if (!t.has(i)) {
@@ -421,7 +421,7 @@ var r = (e) => {
421
421
  };
422
422
  for (let t of e) r(t);
423
423
  return n;
424
- }, ze = (e, ...t) => {
424
+ }, Be = (e, ...t) => {
425
425
  if (t.length === 0) throw Error(`jsonIndex("${e}"): at least one path segment is required`);
426
426
  let n = (r) => ({
427
427
  jsonPath: {
@@ -432,14 +432,14 @@ var r = (e) => {
432
432
  numeric: () => n(!0)
433
433
  });
434
434
  return n(!1);
435
- }, Be = (e = "cosine", t = "float32") => {
435
+ }, Ve = (e = "cosine", t = "float32") => {
436
436
  let n = t === "half" ? "halfvec" : "vector";
437
437
  switch (e) {
438
438
  case "cosine": return `${n}_cosine_ops`;
439
439
  case "l2": return `${n}_l2_ops`;
440
440
  case "inner": return `${n}_ip_ops`;
441
441
  }
442
- }, Ve = [
442
+ }, He = [
443
443
  "id",
444
444
  "tenantId",
445
445
  "createdAt",
@@ -448,7 +448,7 @@ var r = (e) => {
448
448
  "updatedBy",
449
449
  "deletedAt",
450
450
  "deletedBy"
451
- ], P = (e) => e.id ?? `<anonymous mixin: ${Object.keys(e.fields).join(", ")}>`, F = (e, t) => `${e}_${t.join("_")}_idx`, He = (e, t) => `${e}_${t.join("_")}_uq`, I = (e, t, n, r, i) => {
451
+ ], N = (e) => e.id ?? `<anonymous mixin: ${Object.keys(e.fields).join(", ")}>`, P = (e, t) => `${e}_${t.join("_")}_idx`, Ue = (e, t) => `${e}_${t.join("_")}_uq`, F = (e, t, n, r, i) => {
452
452
  if (n !== "hnsw") return;
453
453
  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.`);
454
454
  let a = r[0];
@@ -456,14 +456,14 @@ var r = (e) => {
456
456
  let o = i[a];
457
457
  if (o === void 0) throw Error(`hnsw index '${t}' on table '${e}' references unknown column '${a}'.`);
458
458
  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.`);
459
- }, Ue = (e, t) => {
459
+ }, We = (e, t) => {
460
460
  let n;
461
461
  for (let [r, i] of Object.entries(e)) i.type === "id" && i.idScheme === void 0 && (n === void 0 && (n = { ...e }), n[r] = {
462
462
  ...i,
463
- idScheme: j(i.idSchemeInput, t)
463
+ idScheme: A(i.idSchemeInput, t)
464
464
  });
465
465
  return n ?? e;
466
- }, L = (t) => {
466
+ }, I = (t) => {
467
467
  let n = t.appliedPrimaryKey ?? [];
468
468
  return {
469
469
  tableName: t.tableName,
@@ -483,7 +483,7 @@ var r = (e) => {
483
483
  fullTextIndex: ((e, n, r) => {
484
484
  if (n.length === 0) throw Error(`fullTextIndex '${e}' on '${t.tableName}' has no columns.`);
485
485
  if (x(t.tableName, e, !1, n), t.appliedFullText.some((t) => t.name === e)) throw Error(`duplicate full-text index '${e}' on table '${t.tableName}'.`);
486
- return L({
486
+ return I({
487
487
  ...t,
488
488
  tableName: t.tableName,
489
489
  fields: t.fields,
@@ -504,27 +504,27 @@ var r = (e) => {
504
504
  });
505
505
  }),
506
506
  with: ((...e) => {
507
- let n = N(e), r = { ...t.fields }, i = /* @__PURE__ */ new Map();
507
+ let n = M(e), r = { ...t.fields }, i = /* @__PURE__ */ new Map();
508
508
  for (let e of Object.keys(r)) i.set(e, {
509
509
  id: "<table>",
510
510
  fields: {}
511
511
  });
512
512
  for (let e of n) for (let [n, a] of Object.entries(e.fields)) {
513
513
  let o = i.get(n);
514
- if (o !== void 0) throw Error(`mixin collision on column '${n}' in table '${t.tableName}': '${P(o)}' and '${P(e)}' 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.`);
514
+ if (o !== void 0) throw Error(`mixin collision on column '${n}' in table '${t.tableName}': '${N(o)}' and '${N(e)}' 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.`);
515
515
  b(t.tableName, n), r[n] = a, i.set(n, e);
516
516
  }
517
517
  let a = [...t.appliedIndexes];
518
518
  for (let e of n) for (let n of e.indexes ?? []) {
519
- let e = n.name ?? F(t.tableName, n.fields);
520
- a.some((t) => t.name === e) || (x(t.tableName, e, n.name === void 0, n.fields), I(t.tableName, e, n.kind, n.fields, r), a.push({
519
+ let e = n.name ?? P(t.tableName, n.fields);
520
+ a.some((t) => t.name === e) || (x(t.tableName, e, n.name === void 0, n.fields), F(t.tableName, e, n.kind, n.fields, r), a.push({
521
521
  name: e,
522
522
  fields: n.fields,
523
523
  ...n.kind === void 0 ? {} : { kind: n.kind },
524
524
  ...n.kindOptions === void 0 ? {} : { kindOptions: n.kindOptions }
525
525
  }));
526
526
  }
527
- return L({
527
+ return I({
528
528
  ...t,
529
529
  tableName: t.tableName,
530
530
  fields: r,
@@ -541,10 +541,10 @@ var r = (e) => {
541
541
  }),
542
542
  index: ((...e) => {
543
543
  let n, r, i, a = Array.isArray(e[0]);
544
- if (a ? (r = e[0], i = e[1], n = F(t.tableName, r)) : (n = e[0], r = e[1], i = e[2]), r.length === 0) throw Error(`index '${n}' on table '${t.tableName}' has no fields — an index must cover at least one column.`);
544
+ if (a ? (r = e[0], i = e[1], n = P(t.tableName, r)) : (n = e[0], r = e[1], i = e[2]), r.length === 0) throw Error(`index '${n}' on table '${t.tableName}' has no fields — an index must cover at least one column.`);
545
545
  let o = r.filter((e) => typeof e == "string");
546
- if (x(t.tableName, n, a, o), I(t.tableName, n, i?.kind, r, t.fields), t.appliedIndexes.some((e) => e.name === n)) throw e.length === 1 ? Error(`duplicate auto-named index '${n}' on table '${t.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 '${t.tableName}': each index name must be unique within a table.`);
547
- return L({
546
+ if (x(t.tableName, n, a, o), F(t.tableName, n, i?.kind, r, t.fields), t.appliedIndexes.some((e) => e.name === n)) throw e.length === 1 ? Error(`duplicate auto-named index '${n}' on table '${t.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 '${t.tableName}': each index name must be unique within a table.`);
547
+ return I({
548
548
  ...t,
549
549
  tableName: t.tableName,
550
550
  fields: t.fields,
@@ -568,8 +568,8 @@ var r = (e) => {
568
568
  expressionIndex: ((e, n, r) => {
569
569
  if (n.length === 0) throw Error(`expressionIndex '${e}' on table '${t.tableName}' has no fields — an index must cover at least one column or expression.`);
570
570
  let i = n.filter((e) => typeof e == "string");
571
- if (x(t.tableName, e, !1, i), I(t.tableName, e, r?.kind, n, t.fields), t.appliedIndexes.some((t) => t.name === e)) throw Error(`duplicate index '${e}' on table '${t.tableName}': each index name must be unique within a table.`);
572
- return L({
571
+ if (x(t.tableName, e, !1, i), F(t.tableName, e, r?.kind, n, t.fields), t.appliedIndexes.some((t) => t.name === e)) throw Error(`duplicate index '${e}' on table '${t.tableName}': each index name must be unique within a table.`);
572
+ return I({
573
573
  ...t,
574
574
  tableName: t.tableName,
575
575
  fields: t.fields,
@@ -592,9 +592,9 @@ var r = (e) => {
592
592
  }),
593
593
  unique: ((...e) => {
594
594
  let n, r, i, a = Array.isArray(e[0]);
595
- if (a ? (r = e[0], i = e[1], n = He(t.tableName, r)) : (n = e[0], r = e[1], i = e[2]), r.length === 0) throw Error(`unique '${n}' on table '${t.tableName}' has no fields — a UNIQUE constraint must cover at least one column.`);
595
+ if (a ? (r = e[0], i = e[1], n = Ue(t.tableName, r)) : (n = e[0], r = e[1], i = e[2]), r.length === 0) throw Error(`unique '${n}' on table '${t.tableName}' has no fields — a UNIQUE constraint must cover at least one column.`);
596
596
  if (x(t.tableName, n, a, r), t.appliedUniques.some((e) => e.name === n)) throw Error(a ? `duplicate auto-named UNIQUE '${n}' on table '${t.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 '${t.tableName}': each constraint name must be unique within a table.`);
597
- return L({
597
+ return I({
598
598
  ...t,
599
599
  tableName: t.tableName,
600
600
  fields: t.fields,
@@ -615,10 +615,10 @@ var r = (e) => {
615
615
  }),
616
616
  uniqueActive: ((...e) => {
617
617
  let n, r, i, a = Array.isArray(e[0]);
618
- if (a ? (r = e[0], i = e[1], n = F(t.tableName, r)) : (n = e[0], r = e[1], i = e[2]), r.length === 0) throw Error(`uniqueActive '${n}' on table '${t.tableName}' has no fields — a partial UNIQUE must cover at least one column.`);
618
+ if (a ? (r = e[0], i = e[1], n = P(t.tableName, r)) : (n = e[0], r = e[1], i = e[2]), r.length === 0) throw Error(`uniqueActive '${n}' on table '${t.tableName}' has no fields — a partial UNIQUE must cover at least one column.`);
619
619
  if (x(t.tableName, n, a, r), t.appliedIndexes.some((e) => e.name === n)) throw Error(`duplicate index '${n}' on table '${t.tableName}': each index name must be unique within a table (uniqueActive shares the index namespace).`);
620
620
  let o = i?.where ?? "\"deletedAt\" IS NULL";
621
- return L({
621
+ return I({
622
622
  ...t,
623
623
  tableName: t.tableName,
624
624
  fields: t.fields,
@@ -641,7 +641,7 @@ var r = (e) => {
641
641
  check: ((e, n) => {
642
642
  if (n.trim().length === 0) throw Error(`CHECK '${e}' on table '${t.tableName}' has an empty expression.`);
643
643
  if (x(t.tableName, e, !1, []), t.appliedChecks.some((t) => t.name === e)) throw Error(`duplicate CHECK '${e}' on table '${t.tableName}': each constraint name must be unique within a table.`);
644
- return L({
644
+ return I({
645
645
  ...t,
646
646
  tableName: t.tableName,
647
647
  fields: t.fields,
@@ -663,7 +663,7 @@ var r = (e) => {
663
663
  if (e.trim().length === 0) throw Error(`rule on table '${t.tableName}' has an empty name.`);
664
664
  let i = t.appliedRules ?? [];
665
665
  if (i.some((t) => t.name === e)) throw Error(`duplicate rule '${e}' on table '${t.tableName}': each rule name must be unique within a table.`);
666
- return L({
666
+ return I({
667
667
  ...t,
668
668
  appliedRules: [...i, {
669
669
  name: e,
@@ -674,7 +674,7 @@ var r = (e) => {
674
674
  }),
675
675
  renamedFrom: ((e) => {
676
676
  if (e === t.tableName) throw Error(`renamedFrom('${e}') on table '${t.tableName}' names the table itself — drop the marker, there is nothing to rename.`);
677
- return y(e), L({
677
+ return y(e), I({
678
678
  ...t,
679
679
  previousTableName: e
680
680
  });
@@ -689,7 +689,7 @@ var r = (e) => {
689
689
  }
690
690
  if (n.length > 0) throw Error(`primaryKey([...]) declared twice on table '${t.tableName}'.`);
691
691
  for (let [n, r] of Object.entries(t.fields)) if (r.type === "id" && !e.includes(n)) throw Error(`primaryKey([...]) on table '${t.tableName}' conflicts with the id() column '${n}'. A composite primary key IS the key — drop the id() column, or include '${n}' in the composite key.`);
692
- return L({
692
+ return I({
693
693
  ...t,
694
694
  tableName: t.tableName,
695
695
  fields: t.fields,
@@ -704,7 +704,7 @@ var r = (e) => {
704
704
  ...t.validatePatchSchema === void 0 ? {} : { validatePatchSchema: t.validatePatchSchema }
705
705
  });
706
706
  }),
707
- nonReactive: (() => L({
707
+ nonReactive: (() => I({
708
708
  ...t,
709
709
  tableName: t.tableName,
710
710
  fields: t.fields,
@@ -718,7 +718,7 @@ var r = (e) => {
718
718
  ...t.insertSchema === void 0 ? {} : { insertSchema: t.insertSchema },
719
719
  ...t.validatePatchSchema === void 0 ? {} : { validatePatchSchema: t.validatePatchSchema }
720
720
  })),
721
- validate: ((e) => L({
721
+ validate: ((e) => I({
722
722
  ...t,
723
723
  tableName: t.tableName,
724
724
  fields: t.fields,
@@ -732,7 +732,7 @@ var r = (e) => {
732
732
  insertSchema: e,
733
733
  ...t.validatePatchSchema === void 0 ? {} : { validatePatchSchema: t.validatePatchSchema }
734
734
  })),
735
- validatePatch: ((n) => L({
735
+ validatePatch: ((n) => I({
736
736
  ...t,
737
737
  tableName: t.tableName,
738
738
  fields: t.fields,
@@ -747,7 +747,7 @@ var r = (e) => {
747
747
  validatePatchSchema: e.partial(n)
748
748
  }))
749
749
  };
750
- }, We = (e, t) => {
750
+ }, Ge = (e, t) => {
751
751
  y(e);
752
752
  let n = Object.entries(t).flatMap(([e, t]) => {
753
753
  let n = m(t);
@@ -755,9 +755,9 @@ var r = (e) => {
755
755
  column: e,
756
756
  ...n
757
757
  }];
758
- }), r = Ue(f(t), e);
758
+ }), r = We(f(t), e);
759
759
  for (let t of Object.keys(r)) b(e, t);
760
- return L({
760
+ return I({
761
761
  appliedPluginRefs: n,
762
762
  tableName: e,
763
763
  fields: r,
@@ -769,7 +769,7 @@ var r = (e) => {
769
769
  appliedChecks: [],
770
770
  appliedRules: []
771
771
  });
772
- }, Ge = (e) => e === "sqlite" || e === "turso", Ke = (e) => e === "mysql" || e === "mariadb", R = (e, t) => {
772
+ }, Ke = (e) => e === "sqlite" || e === "turso", qe = (e) => e === "mysql" || e === "mariadb", L = (e, t) => {
773
773
  switch (t) {
774
774
  case "mysql":
775
775
  case "mariadb": return `\`${e}\``;
@@ -778,51 +778,51 @@ var r = (e) => {
778
778
  case "sqlite":
779
779
  case "turso": return `"${e}"`;
780
780
  }
781
- }, qe = 1e4, z = Symbol.for("@voltro/database/tableRegistry"), B = globalThis, V = B[z] ?? (B[z] = /* @__PURE__ */ new Map()), H = (e) => {
782
- let t = V.get(e.tableName);
781
+ }, Je = 1e4, R = Symbol.for("@voltro/database/tableRegistry"), z = globalThis, B = z[R] ?? (z[R] = /* @__PURE__ */ new Map()), V = (e) => {
782
+ let t = B.get(e.tableName);
783
783
  if (t === void 0) {
784
- V.set(e.tableName, e);
784
+ B.set(e.tableName, e);
785
785
  return;
786
786
  }
787
787
  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.`);
788
- }, Je = (e) => {
789
- V.get(e.tableName) === void 0 && V.set(e.tableName, e);
790
- }, U = (e) => V.get(e), Ye = (e) => {
791
- let t = V.get(e);
788
+ }, Ye = (e) => {
789
+ B.get(e.tableName) === void 0 && B.set(e.tableName, e);
790
+ }, H = (e) => B.get(e), Xe = (e) => {
791
+ let t = B.get(e);
792
792
  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.`);
793
793
  return t;
794
- }, Xe = () => [...V.values()], Ze = (e) => V.delete(e), Qe = () => {
795
- V.clear();
796
- }, $e = (e) => V.get(e)?.isReactive !== !1, et = (e) => e.order ?? [], tt = (e) => ({
794
+ }, Ze = () => [...B.values()], Qe = (e) => B.delete(e), $e = () => {
795
+ B.clear();
796
+ }, et = (e) => B.get(e)?.isReactive !== !1, tt = (e) => e.order ?? [], nt = (e) => ({
797
797
  op: "count",
798
798
  alias: e ?? "count"
799
- }), nt = (e, t) => ({
799
+ }), rt = (e, t) => ({
800
800
  op: "count-distinct",
801
801
  column: e,
802
802
  alias: t ?? `count_distinct_${e}`
803
- }), rt = (e, t) => ({
803
+ }), it = (e, t) => ({
804
804
  op: "sum",
805
805
  column: e,
806
806
  alias: t ?? `sum_${e}`
807
- }), it = (e, t) => ({
807
+ }), at = (e, t) => ({
808
808
  op: "avg",
809
809
  column: e,
810
810
  alias: t ?? `avg_${e}`
811
- }), at = (e, t) => ({
811
+ }), ot = (e, t) => ({
812
812
  op: "min",
813
813
  column: e,
814
814
  alias: t ?? `min_${e}`
815
- }), ot = (e, t) => ({
815
+ }), st = (e, t) => ({
816
816
  op: "max",
817
817
  column: e,
818
818
  alias: t ?? `max_${e}`
819
- }), st = (e, t) => ({
819
+ }), ct = (e, t) => ({
820
820
  op: "column",
821
821
  column: e,
822
822
  alias: t ?? e
823
- }), W = (e) => (...t) => {
823
+ }), U = (e) => (...t) => {
824
824
  if (t.length < 2) throw Error(`${e}: requires at least two queries`);
825
- return q({
825
+ return K({
826
826
  table: t[0].descriptor.table,
827
827
  predicate: void 0,
828
828
  order: [],
@@ -834,55 +834,55 @@ var r = (e) => {
834
834
  queries: t.map((e) => e.descriptor)
835
835
  }
836
836
  });
837
- }, ct = W("union"), lt = W("union-all"), ut = W("intersect"), dt = W("except"), G = (e) => ({ over: (t) => ({
837
+ }, lt = U("union"), ut = U("union-all"), dt = U("intersect"), ft = U("except"), W = (e) => ({ over: (t) => ({
838
838
  ...e,
839
839
  window: t
840
- }) }), ft = (e = "rowNumber") => G({
840
+ }) }), pt = (e = "rowNumber") => W({
841
841
  op: "window-row-number",
842
842
  alias: e
843
- }), pt = (e = "rank") => G({
843
+ }), mt = (e = "rank") => W({
844
844
  op: "window-rank",
845
845
  alias: e
846
- }), mt = (e = "denseRank") => G({
846
+ }), ht = (e = "denseRank") => W({
847
847
  op: "window-dense-rank",
848
848
  alias: e
849
- }), ht = (e, t = 1, n) => G({
849
+ }), gt = (e, t = 1, n) => W({
850
850
  op: "window-lag",
851
851
  column: e,
852
852
  alias: n ?? `lag_${e}`,
853
853
  offset: t
854
- }), gt = (e, t = 1, n) => G({
854
+ }), _t = (e, t = 1, n) => W({
855
855
  op: "window-lead",
856
856
  column: e,
857
857
  alias: n ?? `lead_${e}`,
858
858
  offset: t
859
- }), _t = (e, t) => G({
859
+ }), vt = (e, t) => W({
860
860
  op: "window-sum-over",
861
861
  column: e,
862
862
  alias: t ?? `sum_${e}_over`
863
- }), vt = (e, t) => G({
863
+ }), yt = (e, t) => W({
864
864
  op: "window-avg-over",
865
865
  column: e,
866
866
  alias: t ?? `avg_${e}_over`
867
- }), K = (e, t, n) => {
868
- let r = n?.find((e) => e.name === t) ?? U(e)?.appliedFullText?.find((e) => e.name === t);
867
+ }), G = (e, t, n) => {
868
+ let r = n?.find((e) => e.name === t) ?? H(e)?.appliedFullText?.find((e) => e.name === t);
869
869
  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.`);
870
870
  return {
871
871
  columns: r.columns,
872
872
  ...r.config === void 0 ? {} : { config: r.config },
873
873
  ...r.weights === void 0 ? {} : { weights: r.weights }
874
874
  };
875
- }, q = (e) => ({
875
+ }, K = (e) => ({
876
876
  descriptor: e,
877
877
  where(t) {
878
878
  let n = e.predicate ? { and: [e.predicate, t] } : t;
879
- return q({
879
+ return K({
880
880
  ...e,
881
881
  predicate: n
882
882
  });
883
883
  },
884
884
  orderBy(t, n = "asc") {
885
- return q({
885
+ return K({
886
886
  ...e,
887
887
  order: [...e.order, {
888
888
  column: t,
@@ -891,37 +891,37 @@ var r = (e) => {
891
891
  });
892
892
  },
893
893
  limit(t) {
894
- return q({
894
+ return K({
895
895
  ...e,
896
896
  take: t
897
897
  });
898
898
  },
899
899
  offset(t) {
900
- return q({
900
+ return K({
901
901
  ...e,
902
902
  skip: t
903
903
  });
904
904
  },
905
905
  select(...t) {
906
- return q({
906
+ return K({
907
907
  ...e,
908
908
  projection: t
909
909
  });
910
910
  },
911
911
  using(t) {
912
- return q({
912
+ return K({
913
913
  ...e,
914
914
  usingIndex: t
915
915
  });
916
916
  },
917
917
  withDeleted() {
918
- return q({
918
+ return K({
919
919
  ...e,
920
920
  includeDeleted: !0
921
921
  });
922
922
  },
923
923
  unscoped() {
924
- return q({
924
+ return K({
925
925
  ...e,
926
926
  crossTenant: !0
927
927
  });
@@ -931,13 +931,13 @@ var r = (e) => {
931
931
  ...e.eager ?? {},
932
932
  ...t
933
933
  };
934
- return q({
934
+ return K({
935
935
  ...e,
936
936
  eager: n
937
937
  });
938
938
  },
939
939
  count() {
940
- return q({
940
+ return K({
941
941
  ...e,
942
942
  projection: void 0,
943
943
  aggregations: [{
@@ -951,15 +951,15 @@ var r = (e) => {
951
951
  ...t,
952
952
  alias: e
953
953
  }));
954
- return q({
954
+ return K({
955
955
  ...e,
956
956
  projection: void 0,
957
957
  aggregations: n
958
958
  });
959
959
  },
960
960
  matching(t, n) {
961
- let r = K(e.table, t, e.fullTextIndexes);
962
- return q({
961
+ let r = G(e.table, t, e.fullTextIndexes);
962
+ return K({
963
963
  ...e,
964
964
  fullTextSearch: {
965
965
  indexName: t,
@@ -973,7 +973,7 @@ var r = (e) => {
973
973
  rankBy(t) {
974
974
  let n = e.fullTextSearch;
975
975
  if (n === void 0) throw Error(".rankBy() requires a preceding .matching(...) clause — there is no full-text search to rank on this query.");
976
- return q({
976
+ return K({
977
977
  ...e,
978
978
  fullTextSearch: {
979
979
  ...n,
@@ -992,7 +992,7 @@ var r = (e) => {
992
992
  distance: r?.distance ?? "cosine",
993
993
  ...e.annClause?.ef === void 0 ? {} : { ef: e.annClause.ef }
994
994
  };
995
- return q({
995
+ return K({
996
996
  ...e,
997
997
  annClause: i
998
998
  });
@@ -1004,7 +1004,7 @@ var r = (e) => {
1004
1004
  distance: "cosine",
1005
1005
  ...e.annClause?.ef === void 0 ? {} : { ef: e.annClause.ef }
1006
1006
  };
1007
- return q({
1007
+ return K({
1008
1008
  ...e,
1009
1009
  annClause: r,
1010
1010
  take: n
@@ -1017,7 +1017,7 @@ var r = (e) => {
1017
1017
  column: "",
1018
1018
  distance: "cosine"
1019
1019
  };
1020
- return q({
1020
+ return K({
1021
1021
  ...e,
1022
1022
  annClause: {
1023
1023
  ...n,
@@ -1026,22 +1026,22 @@ var r = (e) => {
1026
1026
  });
1027
1027
  },
1028
1028
  use(t) {
1029
- return q({ ...t(e) });
1029
+ return K({ ...t(e) });
1030
1030
  },
1031
1031
  distinct() {
1032
- return q({
1032
+ return K({
1033
1033
  ...e,
1034
1034
  distinct: !0
1035
1035
  });
1036
1036
  },
1037
1037
  distinctOn(t) {
1038
- return q({
1038
+ return K({
1039
1039
  ...e,
1040
1040
  distinctOn: [...t]
1041
1041
  });
1042
1042
  },
1043
1043
  as(t) {
1044
- return q({
1044
+ return K({
1045
1045
  ...e,
1046
1046
  alias: t
1047
1047
  });
@@ -1053,7 +1053,7 @@ var r = (e) => {
1053
1053
  alias: n,
1054
1054
  on: r
1055
1055
  }];
1056
- return q({
1056
+ return K({
1057
1057
  ...e,
1058
1058
  joins: a
1059
1059
  });
@@ -1065,7 +1065,7 @@ var r = (e) => {
1065
1065
  alias: n,
1066
1066
  on: r
1067
1067
  }];
1068
- return q({
1068
+ return K({
1069
1069
  ...e,
1070
1070
  joins: a
1071
1071
  });
@@ -1075,7 +1075,7 @@ var r = (e) => {
1075
1075
  outputKey: e,
1076
1076
  source: t
1077
1077
  }));
1078
- return q({
1078
+ return K({
1079
1079
  ...e,
1080
1080
  projection: void 0,
1081
1081
  joinedProjection: n
@@ -1084,7 +1084,7 @@ var r = (e) => {
1084
1084
  withCte(t, n) {
1085
1085
  let r = e.ctes ?? [];
1086
1086
  if (r.some((e) => e.name === t)) throw Error(`Query.withCte: duplicate CTE name '${t}'`);
1087
- return q({
1087
+ return K({
1088
1088
  ...e,
1089
1089
  ctes: [...r, {
1090
1090
  name: t,
@@ -1095,7 +1095,7 @@ var r = (e) => {
1095
1095
  recursiveCte(t, n) {
1096
1096
  let r = e.ctes ?? [];
1097
1097
  if (r.some((e) => e.name === t)) throw Error(`Query.recursiveCte: duplicate CTE name '${t}'`);
1098
- return q({
1098
+ return K({
1099
1099
  ...e,
1100
1100
  ctes: [...r, {
1101
1101
  name: t,
@@ -1106,20 +1106,20 @@ var r = (e) => {
1106
1106
  },
1107
1107
  groupBy(t) {
1108
1108
  let n = e.groupBy ? [...e.groupBy, ...t] : [...t];
1109
- return q({
1109
+ return K({
1110
1110
  ...e,
1111
1111
  groupBy: n
1112
1112
  });
1113
1113
  },
1114
1114
  having(t) {
1115
1115
  let n = e.having ? { and: [e.having, t] } : t;
1116
- return q({
1116
+ return K({
1117
1117
  ...e,
1118
1118
  having: n
1119
1119
  });
1120
1120
  },
1121
1121
  exists() {
1122
- return q({
1122
+ return K({
1123
1123
  ...e,
1124
1124
  projection: void 0,
1125
1125
  aggregations: [{
@@ -1130,8 +1130,8 @@ var r = (e) => {
1130
1130
  });
1131
1131
  }
1132
1132
  });
1133
- function J(e) {
1134
- return q({
1133
+ function q(e) {
1134
+ return K({
1135
1135
  table: e.tableName,
1136
1136
  predicate: void 0,
1137
1137
  order: [],
@@ -1142,7 +1142,7 @@ function J(e) {
1142
1142
  sourceTable: e
1143
1143
  });
1144
1144
  }
1145
- var yt = (e, t, n) => Y(e, "id", t, n), Y = (e, t, n, r, i = "asc") => {
1145
+ var bt = (e, t, n) => J(e, "id", t, n), J = (e, t, n, r, i = "asc") => {
1146
1146
  let a = [...e.order.filter((e) => e.column !== t), {
1147
1147
  column: t,
1148
1148
  direction: i
@@ -1157,11 +1157,11 @@ var yt = (e, t, n) => Y(e, "id", t, n), Y = (e, t, n, r, i = "asc") => {
1157
1157
  order: a,
1158
1158
  take: r
1159
1159
  };
1160
- }, bt = (e) => {
1160
+ }, xt = (e) => {
1161
1161
  let t = {};
1162
- for (let [n, r] of Object.entries(e)) H(r), t[n] = J(r);
1162
+ for (let [n, r] of Object.entries(e)) V(r), t[n] = q(r);
1163
1163
  return t;
1164
- }, xt = (e) => e.isView === !0, St = (e, t, n) => {
1164
+ }, St = (e) => e.isView === !0, Ct = (e, t, n) => {
1165
1165
  if (y(e), n.trim().length === 0) throw Error(`view('${e}', …): the SELECT body is empty — a view must define a query.`);
1166
1166
  let r = f(t);
1167
1167
  for (let t of Object.keys(r)) b(e, t);
@@ -1171,7 +1171,7 @@ var yt = (e, t, n) => Y(e, "id", t, n), Y = (e, t, n, r, i = "asc") => {
1171
1171
  isView: !0,
1172
1172
  viewSelect: n
1173
1173
  };
1174
- }, Ct = (e) => J({
1174
+ }, wt = (e) => q({
1175
1175
  ...e,
1176
1176
  isReactive: !1,
1177
1177
  appliedMixins: [],
@@ -1179,8 +1179,8 @@ var yt = (e, t, n) => Y(e, "id", t, n), Y = (e, t, n, r, i = "asc") => {
1179
1179
  appliedUniques: [],
1180
1180
  appliedFullText: [],
1181
1181
  appliedChecks: []
1182
- }), wt = (e, t, n = null) => {
1183
- let r = n === null ? R(e.tableName, t) : `${R(n, t)}.${R(e.tableName, t)}`, i = e.viewSelect.trim();
1182
+ }), Tt = (e, t, n = null) => {
1183
+ let r = n === null ? L(e.tableName, t) : `${L(n, t)}.${L(e.tableName, t)}`, i = e.viewSelect.trim();
1184
1184
  switch (t) {
1185
1185
  case "postgres":
1186
1186
  case "mysql":
@@ -1189,16 +1189,16 @@ var yt = (e, t, n) => Y(e, "id", t, n), Y = (e, t, n, r, i = "asc") => {
1189
1189
  case "sqlite":
1190
1190
  case "turso": return `DROP VIEW IF EXISTS ${r};\nCREATE VIEW ${r} AS ${i};`;
1191
1191
  }
1192
- }, Tt = /^[A-Za-z_][A-Za-z0-9_]*$/, Et = (e) => "$" + e.map((e) => typeof e == "number" ? `[${e}]` : Tt.test(e) ? `.${e}` : `."${e.replace(/"/g, "\\\"")}"`).join(""), Dt = (e) => "{" + e.map((e) => {
1192
+ }, Et = /^[A-Za-z_][A-Za-z0-9_]*$/, Dt = (e) => "$" + e.map((e) => typeof e == "number" ? `[${e}]` : Et.test(e) ? `.${e}` : `."${e.replace(/"/g, "\\\"")}"`).join(""), Ot = (e) => "{" + e.map((e) => {
1193
1193
  let t = String(e);
1194
1194
  return /^[A-Za-z0-9_]+$/.test(t) ? t : `"${t.replace(/(["\\])/g, "\\$1")}"`;
1195
- }).join(",") + "}", Ot = (e, t, n, r = {}) => {
1196
- let i = R(e, n), a = r.numeric ?? !1;
1195
+ }).join(",") + "}", kt = (e, t, n, r = {}) => {
1196
+ let i = L(e, n), a = r.numeric ?? !1;
1197
1197
  if (n === "postgres") {
1198
- let e = `(${i} #>> '${Dt(t)}'::text[])`;
1198
+ let e = `(${i} #>> '${Ot(t)}'::text[])`;
1199
1199
  return a ? `${e}::numeric` : e;
1200
1200
  }
1201
- let o = Et(t);
1201
+ let o = Dt(t);
1202
1202
  switch (n) {
1203
1203
  case "mysql":
1204
1204
  case "mariadb": {
@@ -1215,13 +1215,13 @@ var yt = (e, t, n) => Y(e, "id", t, n), Y = (e, t, n, r, i = "asc") => {
1215
1215
  return a ? `CAST(${e} AS REAL)` : e;
1216
1216
  }
1217
1217
  }
1218
- }, kt = (e, t) => ({
1218
+ }, At = (e, t) => ({
1219
1219
  name: e,
1220
1220
  body: t
1221
- }), X = (e) => {
1221
+ }), Y = (e) => {
1222
1222
  if (e.lifecycle === "cron" && !e.cron) throw Error(`seed "${e.id}": lifecycle 'cron' requires a 'cron' field`);
1223
1223
  if (e.lifecycle === "onSchemaChange" && (!e.watchedTables || e.watchedTables.length === 0)) throw Error(`seed "${e.id}": lifecycle 'onSchemaChange' requires at least one entry in 'watchedTables'`);
1224
- let t = e.steps({ step: kt });
1224
+ let t = e.steps({ step: At });
1225
1225
  if (t.length === 0) throw Error(`seed "${e.id}": at least one step is required`);
1226
1226
  return {
1227
1227
  __seed: !0,
@@ -1234,20 +1234,20 @@ var yt = (e, t, n) => Y(e, "id", t, n), Y = (e, t, n, r, i = "asc") => {
1234
1234
  ...e.fingerprint === void 0 ? {} : { fingerprint: e.fingerprint },
1235
1235
  steps: t
1236
1236
  };
1237
- }, At = (e) => typeof e == "object" && !!e && "__seed" in e && e.__seed === !0, Z = null, Q = null, jt = (e) => {
1237
+ }, jt = (e) => typeof e == "object" && !!e && "__seed" in e && e.__seed === !0, X = null, Z = null, Mt = (e) => {
1238
+ X = e;
1239
+ }, Nt = (e) => {
1238
1240
  Z = e;
1239
- }, Mt = (e) => {
1240
- Q = e;
1241
- }, Nt = async (e) => {
1242
- let t = Z;
1243
- t !== null && await t(e);
1244
1241
  }, Pt = async (e) => {
1245
- let t = Q;
1242
+ let t = X;
1243
+ t !== null && await t(e);
1244
+ }, Ft = async (e) => {
1245
+ let t = Z;
1246
1246
  t !== null && e.changedTables.length !== 0 && await t(e);
1247
- }, Ft = (e) => {
1247
+ }, It = (e) => {
1248
1248
  if (!e.id || e.id.length === 0) throw Error("migration: `id` is required + must be non-empty");
1249
1249
  if (!e.up || !e.down) throw Error(`migration ${e.id}: both \`up\` and \`down\` must be functions`);
1250
1250
  return e;
1251
- }, It = /^\d{8}_\d{6}_[a-z0-9_]+\.ts$/, Lt = (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", $ = /* @__PURE__ */ new Set(["voltro_isr_cache"]), Rt = (e) => $.has(e) || e.startsWith("_voltro_") || e.startsWith("_cloud_") || e.startsWith("cluster_"), zt = /__dropped_\d{14}$/, Bt = (e) => zt.test(e);
1251
+ }, Lt = /^\d{8}_\d{6}_[a-z0-9_]+\.ts$/, Rt = (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", Q = /* @__PURE__ */ new Set(["voltro_isr_cache"]), zt = (e) => Q.has(e) || e.startsWith("_voltro_") || e.startsWith("_cloud_") || e.startsWith("cluster_"), $ = "_voltro_staging_", Bt = (e) => e.startsWith($), Vt = /__dropped_\d{14}$/, Ht = (e) => Vt.test(e);
1252
1252
  //#endregion
1253
- export { R as $, me as $t, at as A, de as At, ct as B, ee as Bt, bt as C, be as Ct, ht as D, ie as Dt, ut as E, he as Et, pt as F, ae as Ft, U as G, re as Gt, Xe as H, ge as Ht, K as I, u as It, Ye as J, ne as Jt, $e as K, ye as Kt, ft as L, pe as Lt, Y as M, i as Mt, yt as N, d as Nt, gt as O, oe as Ot, J as P, ce as Pt, Ge as Q, se as Qt, rt as R, _e as Rt, nt as S, Se as St, dt as T, s as Tt, Qe as U, le as Ut, lt as V, te as Vt, Je as W, f as Wt, qe as X, r as Xt, Ze as Y, fe as Yt, Ke as Z, l as Zt, wt as _, y as _t, Lt as a, M as at, st as b, we as bt, Pt as c, Le as ct, Mt as d, Fe as dt, Ve as et, jt as f, Te as ft, St as g, x as gt, Ct as h, b as ht, It as i, Re as it, et as j, o as jt, ot as k, ue as kt, Nt as l, j as lt, xt as m, De as mt, Rt as n, We as nt, Ft as o, N as ot, Ot as p, Ee as pt, H as q, a as qt, Bt as r, Be as rt, X as s, A as st, $ as t, ze as tt, At as u, k as ut, it as v, S as vt, mt as w, m as wt, tt as x, xe as xt, vt as y, Ce as yt, _t as z, ve as zt };
1253
+ export { qe as $, l as $t, _t as A, oe as At, it as B, _e as Bt, nt as C, xe as Ct, ft as D, s as Dt, ht as E, m as Et, bt as F, d as Ft, $e as G, le as Gt, lt as H, ee as Ht, q as I, ce as It, et as J, ye as Jt, Ye as K, f as Kt, mt as L, ae as Lt, ot as M, de as Mt, tt as N, o as Nt, dt as O, he as Ot, J as P, i as Pt, Je as Q, r as Qt, G as R, u as Rt, ct as S, we as St, xt as T, be as Tt, ut as U, te as Ut, vt as V, ve as Vt, Ze as W, ge as Wt, Xe as X, ne as Xt, V as Y, a as Yt, Qe as Z, fe as Zt, wt as _, b as _t, Bt as a, Ve as at, at as b, S as bt, It as c, M as ct, Pt as d, A as dt, se as en, Ke as et, jt as f, O as ft, St as g, De as gt, kt as h, Ee as ht, Ht as i, Ge as it, st as j, ue as jt, gt as k, ie as kt, Y as l, k as lt, Mt as m, Te as mt, $ as n, He as nt, Lt as o, ze as ot, Nt as p, Ie as pt, H as q, re as qt, zt as r, Be as rt, Rt as s, j as st, Q as t, me as tn, L as tt, Ft as u, Re as ut, Ct as v, x as vt, rt as w, Se as wt, yt as x, Ce as xt, Tt as y, y as yt, pt as z, pe as zt };