@voltro/database 0.4.0 → 0.6.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.
@@ -142,7 +142,7 @@ var r = class e {
142
142
  unique: !0,
143
143
  hasDefault: !1,
144
144
  idSchemeInput: e
145
- }), o = () => i("text"), ee = () => i("integer"), te = () => i("real"), s = (e, t = 0) => {
145
+ }), o = () => i("text"), s = () => i("integer"), ee = () => i("real"), c = (e, t = 0) => {
146
146
  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)).`);
147
147
  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}).`);
148
148
  return new r({
@@ -153,7 +153,7 @@ var r = class e {
153
153
  precision: e,
154
154
  scale: t
155
155
  });
156
- }, ne = s, re = () => i("bigint"), ie = (e, t) => {
156
+ }, te = c, ne = () => i("bigint"), re = (e, t) => {
157
157
  if (t.length === 0) throw Error(`dbEnum('${e}', []): enum must have at least one value`);
158
158
  return {
159
159
  name: e,
@@ -167,7 +167,7 @@ var r = class e {
167
167
  enumValues: t
168
168
  })
169
169
  };
170
- }, ae = () => i("boolean"), oe = () => i("timestamp"), se = () => i("date"), ce = () => i("json"), c = () => i("bytes"), l = (e, t) => new r({
170
+ }, ie = () => i("boolean"), ae = () => i("timestamp"), oe = () => i("date"), se = () => i("json"), ce = () => i("bytes"), le = (e, t) => new r({
171
171
  type: "reference",
172
172
  nullable: !1,
173
173
  unique: !1,
@@ -177,13 +177,13 @@ var r = class e {
177
177
  refOnUpdate: t?.onUpdate ?? "noAction",
178
178
  fkAutoIndex: t?.index ?? !0,
179
179
  ...t?.orphanPolicy ? { orphanPolicy: t.orphanPolicy } : {}
180
- }), u = () => new r({
180
+ }), l = () => new r({
181
181
  type: "text",
182
182
  nullable: !0,
183
183
  unique: !1,
184
184
  hasDefault: !1,
185
185
  dropped: !0
186
- }), d = (e, t) => {
186
+ }), u = (e, t) => {
187
187
  if (!Number.isInteger(e) || e <= 0) throw Error(`vector(${String(e)}): dimension must be a positive integer (the embedding length, e.g. vector(1536)).`);
188
188
  return new r({
189
189
  type: "vector",
@@ -193,7 +193,7 @@ var r = class e {
193
193
  vectorDim: e,
194
194
  vectorPrecision: t?.precision ?? "float32"
195
195
  });
196
- }, le = (e) => new r({
196
+ }, d = (e) => new r({
197
197
  type: "array",
198
198
  nullable: !1,
199
199
  unique: !1,
@@ -267,29 +267,29 @@ var r = class e {
267
267
  throw Error(`typeid prefix '${e}' on table '${t.tableName}' is ${e.length} chars — exceeds the 63-byte limit; ${n}`);
268
268
  }
269
269
  e.length > 60 && h(`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).`);
270
- }, Se = 1704067200000n, x = 10n, S = 12n, C = (1n << x) - 1n, w = (1n << S) - 1n, T = S, E = 22n, D = () => {
270
+ }, Se = 1704067200000n, Ce = 10n, x = 12n, S = (1n << Ce) - 1n, C = (1n << x) - 1n, w = x, T = 22n, E = () => {
271
271
  let e = process.env.SNOWFLAKE_MACHINE_ID;
272
272
  if (e === void 0 || e === "") return 0n;
273
273
  let t = BigInt(e);
274
- if (t < 0n || t > C) throw Error(`SNOWFLAKE_MACHINE_ID out of range: ${e}. Must be 0..${C}.`);
274
+ if (t < 0n || t > S) throw Error(`SNOWFLAKE_MACHINE_ID out of range: ${e}. Must be 0..${S}.`);
275
275
  return t;
276
- }, O = () => ({
276
+ }, D = () => ({
277
277
  lastMs: 0n,
278
278
  sequence: 0n,
279
- machineId: D()
280
- }), k, A = () => (k === void 0 && (k = O()), k), j = () => {
281
- k = O();
282
- }, M = () => BigInt(Date.now()), Ce = (e) => {
283
- let t = M();
284
- for (; t <= e;) t = M();
279
+ machineId: E()
280
+ }), O, k = () => (O === void 0 && (O = D()), O), A = () => {
281
+ O = D();
282
+ }, j = () => BigInt(Date.now()), we = (e) => {
283
+ let t = j();
284
+ for (; t <= e;) t = j();
285
285
  return t;
286
- }, N = () => {
287
- let e = A(), t = M();
288
- t === e.lastMs ? (e.sequence = e.sequence + 1n & w, e.sequence === 0n && (t = Ce(e.lastMs), e.lastMs = t)) : (e.sequence = 0n, e.lastMs = t);
286
+ }, M = () => {
287
+ let e = k(), t = j();
288
+ t === e.lastMs ? (e.sequence = e.sequence + 1n & C, e.sequence === 0n && (t = we(e.lastMs), e.lastMs = t)) : (e.sequence = 0n, e.lastMs = t);
289
289
  let n = t - Se;
290
290
  if (n < 0n) throw Error("Snowflake timestamp before configured epoch (2024-01-01). System clock is wrong.");
291
- return (n << E | e.machineId << T | e.sequence).toString();
292
- }, P = (e) => {
291
+ return (n << T | e.machineId << w | e.sequence).toString();
292
+ }, N = (e) => {
293
293
  let t = e.toLowerCase();
294
294
  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.`);
295
295
  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: '...' }).`);
@@ -298,10 +298,10 @@ var r = class e {
298
298
  kind: "derived",
299
299
  tableName: e
300
300
  }), n;
301
- }, F = (e, t) => {
301
+ }, P = (e, t) => {
302
302
  if (e === void 0) return {
303
303
  kind: "typeid",
304
- prefix: P(t)
304
+ prefix: N(t)
305
305
  };
306
306
  if ("prefix" in e && !("scheme" in e)) return b(e.prefix, {
307
307
  kind: "explicit",
@@ -313,7 +313,7 @@ var r = class e {
313
313
  if (!("scheme" in e)) throw Error("invalid id() options: no scheme or prefix");
314
314
  switch (e.scheme) {
315
315
  case "typeid": {
316
- let n = e.prefix ?? P(t);
316
+ let n = e.prefix ?? N(t);
317
317
  return e.prefix !== void 0 && b(e.prefix, {
318
318
  kind: "explicit",
319
319
  tableName: t
@@ -330,22 +330,22 @@ var r = class e {
330
330
  generate: e.generate
331
331
  };
332
332
  }
333
- }, we = (n, r) => {
333
+ }, Te = (n, r) => {
334
334
  switch (n.kind) {
335
335
  case "typeid": return e(n.prefix).toString();
336
336
  case "ulid": return t();
337
337
  case "numeric": return null;
338
- case "snowflake": return N();
338
+ case "snowflake": return M();
339
339
  case "custom": return n.generate(r);
340
340
  }
341
- }, I = (e) => ({
341
+ }, F = (e) => ({
342
342
  fields: f(e.fields),
343
343
  ...e.id === void 0 ? {} : { id: e.id },
344
344
  ...e.requires === void 0 ? {} : { requires: e.requires },
345
345
  ...e.indexes === void 0 ? {} : { indexes: e.indexes },
346
346
  ...e.behaviors === void 0 ? {} : { behaviors: e.behaviors },
347
347
  ...e.policies === void 0 ? {} : { policies: e.policies }
348
- }), Te = I, L = (e) => {
348
+ }), Ee = F, I = (e) => {
349
349
  let t = /* @__PURE__ */ new Set(), n = [], r = (e) => {
350
350
  let i = e.id ?? e;
351
351
  if (!t.has(i)) {
@@ -355,7 +355,7 @@ var r = class e {
355
355
  };
356
356
  for (let t of e) r(t);
357
357
  return n;
358
- }, Ee = (e, ...t) => {
358
+ }, De = (e, ...t) => {
359
359
  if (t.length === 0) throw Error(`jsonIndex("${e}"): at least one path segment is required`);
360
360
  let n = (r) => ({
361
361
  jsonPath: {
@@ -366,14 +366,14 @@ var r = class e {
366
366
  numeric: () => n(!0)
367
367
  });
368
368
  return n(!1);
369
- }, De = (e = "cosine", t = "float32") => {
369
+ }, Oe = (e = "cosine", t = "float32") => {
370
370
  let n = t === "half" ? "halfvec" : "vector";
371
371
  switch (e) {
372
372
  case "cosine": return `${n}_cosine_ops`;
373
373
  case "l2": return `${n}_l2_ops`;
374
374
  case "inner": return `${n}_ip_ops`;
375
375
  }
376
- }, R = (e) => e.id ?? `<anonymous mixin: ${Object.keys(e.fields).join(", ")}>`, z = (e, t) => `${e}_${t.join("_")}_idx`, Oe = (e, t) => `${e}_${t.join("_")}_uq`, B = (e, t, n, r, i) => {
376
+ }, L = (e) => e.id ?? `<anonymous mixin: ${Object.keys(e.fields).join(", ")}>`, R = (e, t) => `${e}_${t.join("_")}_idx`, ke = (e, t) => `${e}_${t.join("_")}_uq`, z = (e, t, n, r, i) => {
377
377
  if (n !== "hnsw") return;
378
378
  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.`);
379
379
  let a = r[0];
@@ -381,14 +381,14 @@ var r = class e {
381
381
  let o = i[a];
382
382
  if (o === void 0) throw Error(`hnsw index '${t}' on table '${e}' references unknown column '${a}'.`);
383
383
  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.`);
384
- }, ke = (e, t) => {
384
+ }, Ae = (e, t) => {
385
385
  let n;
386
386
  for (let [r, i] of Object.entries(e)) i.type === "id" && i.idScheme === void 0 && (n === void 0 && (n = { ...e }), n[r] = {
387
387
  ...i,
388
- idScheme: F(i.idSchemeInput, t)
388
+ idScheme: P(i.idSchemeInput, t)
389
389
  });
390
390
  return n ?? e;
391
- }, V = (e) => {
391
+ }, B = (e) => {
392
392
  let t = e.appliedPrimaryKey ?? [];
393
393
  return {
394
394
  tableName: e.tableName,
@@ -405,7 +405,7 @@ var r = class e {
405
405
  fullTextIndex: ((t, n, r) => {
406
406
  if (n.length === 0) throw Error(`fullTextIndex '${t}' on '${e.tableName}' has no columns.`);
407
407
  if (y(e.tableName, t, !1, n), e.appliedFullText.some((e) => e.name === t)) throw Error(`duplicate full-text index '${t}' on table '${e.tableName}'.`);
408
- return V({
408
+ return B({
409
409
  tableName: e.tableName,
410
410
  fields: e.fields,
411
411
  isReactive: e.isReactive,
@@ -425,27 +425,27 @@ var r = class e {
425
425
  });
426
426
  }),
427
427
  with: ((...t) => {
428
- let n = L(t), r = { ...e.fields }, i = /* @__PURE__ */ new Map();
428
+ let n = I(t), r = { ...e.fields }, i = /* @__PURE__ */ new Map();
429
429
  for (let e of Object.keys(r)) i.set(e, {
430
430
  id: "<table>",
431
431
  fields: {}
432
432
  });
433
433
  for (let t of n) for (let [n, a] of Object.entries(t.fields)) {
434
434
  let o = i.get(n);
435
- if (o !== void 0) throw Error(`mixin collision on column '${n}' in table '${e.tableName}': '${R(o)}' and '${R(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.`);
435
+ if (o !== void 0) throw Error(`mixin collision on column '${n}' in table '${e.tableName}': '${L(o)}' and '${L(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.`);
436
436
  v(e.tableName, n), r[n] = a, i.set(n, t);
437
437
  }
438
438
  let a = [...e.appliedIndexes];
439
439
  for (let t of n) for (let n of t.indexes ?? []) {
440
- let t = n.name ?? z(e.tableName, n.fields);
441
- a.some((e) => e.name === t) || (y(e.tableName, t, n.name === void 0, n.fields), B(e.tableName, t, n.kind, n.fields, r), a.push({
440
+ let t = n.name ?? R(e.tableName, n.fields);
441
+ a.some((e) => e.name === t) || (y(e.tableName, t, n.name === void 0, n.fields), z(e.tableName, t, n.kind, n.fields, r), a.push({
442
442
  name: t,
443
443
  fields: n.fields,
444
444
  ...n.kind === void 0 ? {} : { kind: n.kind },
445
445
  ...n.kindOptions === void 0 ? {} : { kindOptions: n.kindOptions }
446
446
  }));
447
447
  }
448
- return V({
448
+ return B({
449
449
  tableName: e.tableName,
450
450
  fields: r,
451
451
  isReactive: e.isReactive,
@@ -461,10 +461,10 @@ var r = class e {
461
461
  }),
462
462
  index: ((...t) => {
463
463
  let n, r, i, a = Array.isArray(t[0]);
464
- if (a ? (r = t[0], i = t[1], n = z(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.`);
464
+ if (a ? (r = t[0], i = t[1], n = R(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.`);
465
465
  let o = r.filter((e) => typeof e == "string");
466
- if (y(e.tableName, n, a, o), B(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.`);
467
- return V({
466
+ if (y(e.tableName, n, a, o), z(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.`);
467
+ return B({
468
468
  tableName: e.tableName,
469
469
  fields: e.fields,
470
470
  isReactive: e.isReactive,
@@ -487,8 +487,8 @@ var r = class e {
487
487
  expressionIndex: ((t, n, r) => {
488
488
  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.`);
489
489
  let i = n.filter((e) => typeof e == "string");
490
- if (y(e.tableName, t, !1, i), B(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.`);
491
- return V({
490
+ if (y(e.tableName, t, !1, i), z(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.`);
491
+ return B({
492
492
  tableName: e.tableName,
493
493
  fields: e.fields,
494
494
  isReactive: e.isReactive,
@@ -510,9 +510,9 @@ var r = class e {
510
510
  }),
511
511
  unique: ((...t) => {
512
512
  let n, r, i, a = Array.isArray(t[0]);
513
- if (a ? (r = t[0], i = t[1], n = Oe(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.`);
513
+ if (a ? (r = t[0], i = t[1], n = ke(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.`);
514
514
  if (y(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.`);
515
- return V({
515
+ return B({
516
516
  tableName: e.tableName,
517
517
  fields: e.fields,
518
518
  isReactive: e.isReactive,
@@ -532,10 +532,10 @@ var r = class e {
532
532
  }),
533
533
  uniqueActive: ((...t) => {
534
534
  let n, r, i, a = Array.isArray(t[0]);
535
- if (a ? (r = t[0], i = t[1], n = z(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.`);
535
+ if (a ? (r = t[0], i = t[1], n = R(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.`);
536
536
  if (y(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).`);
537
537
  let o = i?.where ?? "\"deletedAt\" IS NULL";
538
- return V({
538
+ return B({
539
539
  tableName: e.tableName,
540
540
  fields: e.fields,
541
541
  isReactive: e.isReactive,
@@ -557,7 +557,7 @@ var r = class e {
557
557
  check: ((t, n) => {
558
558
  if (n.trim().length === 0) throw Error(`CHECK '${t}' on table '${e.tableName}' has an empty expression.`);
559
559
  if (y(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.`);
560
- return V({
560
+ return B({
561
561
  tableName: e.tableName,
562
562
  fields: e.fields,
563
563
  isReactive: e.isReactive,
@@ -584,7 +584,7 @@ var r = class e {
584
584
  }
585
585
  if (t.length > 0) throw Error(`primaryKey([...]) declared twice on table '${e.tableName}'.`);
586
586
  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}'. A composite primary key IS the key — drop the id() column, or include '${t}' in the composite key.`);
587
- return V({
587
+ return B({
588
588
  tableName: e.tableName,
589
589
  fields: e.fields,
590
590
  isReactive: e.isReactive,
@@ -598,7 +598,7 @@ var r = class e {
598
598
  ...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
599
599
  });
600
600
  }),
601
- reactive: (() => V({
601
+ reactive: (() => B({
602
602
  tableName: e.tableName,
603
603
  fields: e.fields,
604
604
  isReactive: !0,
@@ -611,7 +611,7 @@ var r = class e {
611
611
  ...e.insertSchema === void 0 ? {} : { insertSchema: e.insertSchema },
612
612
  ...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
613
613
  })),
614
- validate: ((t) => V({
614
+ validate: ((t) => B({
615
615
  tableName: e.tableName,
616
616
  fields: e.fields,
617
617
  isReactive: e.isReactive,
@@ -624,7 +624,7 @@ var r = class e {
624
624
  insertSchema: t,
625
625
  ...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
626
626
  })),
627
- validatePatch: ((t) => V({
627
+ validatePatch: ((t) => B({
628
628
  tableName: e.tableName,
629
629
  fields: e.fields,
630
630
  isReactive: e.isReactive,
@@ -638,11 +638,11 @@ var r = class e {
638
638
  validatePatchSchema: n.partial(t)
639
639
  }))
640
640
  };
641
- }, Ae = (e, t) => {
641
+ }, je = (e, t) => {
642
642
  _(e);
643
- let n = ke(f(t), e);
643
+ let n = Ae(f(t), e);
644
644
  for (let t of Object.keys(n)) v(e, t);
645
- return V({
645
+ return B({
646
646
  tableName: e,
647
647
  fields: n,
648
648
  isReactive: !1,
@@ -652,7 +652,7 @@ var r = class e {
652
652
  appliedFullText: [],
653
653
  appliedChecks: []
654
654
  });
655
- }, je = (e) => e === "sqlite" || e === "turso", H = (e, t) => {
655
+ }, Me = (e) => e === "sqlite" || e === "turso", V = (e, t) => {
656
656
  switch (t) {
657
657
  case "mysql":
658
658
  case "mariadb": return `\`${e}\``;
@@ -661,51 +661,51 @@ var r = class e {
661
661
  case "sqlite":
662
662
  case "turso": return `"${e}"`;
663
663
  }
664
- }, U = Symbol.for("@voltro/database/tableRegistry"), W = globalThis, G = W[U] ?? (W[U] = /* @__PURE__ */ new Map()), K = (e) => {
665
- let t = G.get(e.tableName);
664
+ }, H = Symbol.for("@voltro/database/tableRegistry"), U = globalThis, W = U[H] ?? (U[H] = /* @__PURE__ */ new Map()), G = (e) => {
665
+ let t = W.get(e.tableName);
666
666
  if (t === void 0) {
667
- G.set(e.tableName, e);
667
+ W.set(e.tableName, e);
668
668
  return;
669
669
  }
670
670
  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.`);
671
- }, Me = (e) => {
672
- G.get(e.tableName) === void 0 && G.set(e.tableName, e);
673
- }, q = (e) => G.get(e), Ne = (e) => {
674
- let t = G.get(e);
671
+ }, Ne = (e) => {
672
+ W.get(e.tableName) === void 0 && W.set(e.tableName, e);
673
+ }, K = (e) => W.get(e), Pe = (e) => {
674
+ let t = W.get(e);
675
675
  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.`);
676
676
  return t;
677
- }, Pe = () => [...G.values()], Fe = () => {
678
- G.clear();
679
- }, Ie = (e) => ({
677
+ }, Fe = () => [...W.values()], Ie = () => {
678
+ W.clear();
679
+ }, Le = (e) => ({
680
680
  op: "count",
681
681
  alias: e ?? "count"
682
- }), Le = (e, t) => ({
682
+ }), Re = (e, t) => ({
683
683
  op: "count-distinct",
684
684
  column: e,
685
685
  alias: t ?? `count_distinct_${e}`
686
- }), Re = (e, t) => ({
686
+ }), ze = (e, t) => ({
687
687
  op: "sum",
688
688
  column: e,
689
689
  alias: t ?? `sum_${e}`
690
- }), ze = (e, t) => ({
690
+ }), Be = (e, t) => ({
691
691
  op: "avg",
692
692
  column: e,
693
693
  alias: t ?? `avg_${e}`
694
- }), Be = (e, t) => ({
694
+ }), Ve = (e, t) => ({
695
695
  op: "min",
696
696
  column: e,
697
697
  alias: t ?? `min_${e}`
698
- }), Ve = (e, t) => ({
698
+ }), He = (e, t) => ({
699
699
  op: "max",
700
700
  column: e,
701
701
  alias: t ?? `max_${e}`
702
- }), He = (e, t) => ({
702
+ }), Ue = (e, t) => ({
703
703
  op: "column",
704
704
  column: e,
705
705
  alias: t ?? e
706
- }), J = (e) => (...t) => {
706
+ }), q = (e) => (...t) => {
707
707
  if (t.length < 2) throw Error(`${e}: requires at least two queries`);
708
- return Z({
708
+ return X({
709
709
  table: t[0].descriptor.table,
710
710
  predicate: void 0,
711
711
  order: [],
@@ -717,55 +717,55 @@ var r = class e {
717
717
  queries: t.map((e) => e.descriptor)
718
718
  }
719
719
  });
720
- }, Ue = J("union"), We = J("union-all"), Ge = J("intersect"), Ke = J("except"), Y = (e) => ({ over: (t) => ({
720
+ }, We = q("union"), Ge = q("union-all"), Ke = q("intersect"), qe = q("except"), J = (e) => ({ over: (t) => ({
721
721
  ...e,
722
722
  window: t
723
- }) }), qe = (e = "rowNumber") => Y({
723
+ }) }), Je = (e = "rowNumber") => J({
724
724
  op: "window-row-number",
725
725
  alias: e
726
- }), Je = (e = "rank") => Y({
726
+ }), Ye = (e = "rank") => J({
727
727
  op: "window-rank",
728
728
  alias: e
729
- }), Ye = (e = "denseRank") => Y({
729
+ }), Xe = (e = "denseRank") => J({
730
730
  op: "window-dense-rank",
731
731
  alias: e
732
- }), Xe = (e, t = 1, n) => Y({
732
+ }), Ze = (e, t = 1, n) => J({
733
733
  op: "window-lag",
734
734
  column: e,
735
735
  alias: n ?? `lag_${e}`,
736
736
  offset: t
737
- }), Ze = (e, t = 1, n) => Y({
737
+ }), Qe = (e, t = 1, n) => J({
738
738
  op: "window-lead",
739
739
  column: e,
740
740
  alias: n ?? `lead_${e}`,
741
741
  offset: t
742
- }), Qe = (e, t) => Y({
742
+ }), $e = (e, t) => J({
743
743
  op: "window-sum-over",
744
744
  column: e,
745
745
  alias: t ?? `sum_${e}_over`
746
- }), $e = (e, t) => Y({
746
+ }), et = (e, t) => J({
747
747
  op: "window-avg-over",
748
748
  column: e,
749
749
  alias: t ?? `avg_${e}_over`
750
- }), X = (e, t, n) => {
751
- let r = n?.find((e) => e.name === t) ?? q(e)?.appliedFullText?.find((e) => e.name === t);
750
+ }), Y = (e, t, n) => {
751
+ let r = n?.find((e) => e.name === t) ?? K(e)?.appliedFullText?.find((e) => e.name === t);
752
752
  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.`);
753
753
  return {
754
754
  columns: r.columns,
755
755
  ...r.config === void 0 ? {} : { config: r.config },
756
756
  ...r.weights === void 0 ? {} : { weights: r.weights }
757
757
  };
758
- }, Z = (e) => ({
758
+ }, X = (e) => ({
759
759
  descriptor: e,
760
760
  where(t) {
761
761
  let n = e.predicate ? { and: [e.predicate, t] } : t;
762
- return Z({
762
+ return X({
763
763
  ...e,
764
764
  predicate: n
765
765
  });
766
766
  },
767
767
  orderBy(t, n = "asc") {
768
- return Z({
768
+ return X({
769
769
  ...e,
770
770
  order: [...e.order, {
771
771
  column: t,
@@ -774,37 +774,37 @@ var r = class e {
774
774
  });
775
775
  },
776
776
  limit(t) {
777
- return Z({
777
+ return X({
778
778
  ...e,
779
779
  take: t
780
780
  });
781
781
  },
782
782
  offset(t) {
783
- return Z({
783
+ return X({
784
784
  ...e,
785
785
  skip: t
786
786
  });
787
787
  },
788
788
  select(...t) {
789
- return Z({
789
+ return X({
790
790
  ...e,
791
791
  projection: t
792
792
  });
793
793
  },
794
794
  using(t) {
795
- return Z({
795
+ return X({
796
796
  ...e,
797
797
  usingIndex: t
798
798
  });
799
799
  },
800
800
  withDeleted() {
801
- return Z({
801
+ return X({
802
802
  ...e,
803
803
  includeDeleted: !0
804
804
  });
805
805
  },
806
806
  unscoped() {
807
- return Z({
807
+ return X({
808
808
  ...e,
809
809
  crossTenant: !0
810
810
  });
@@ -814,13 +814,13 @@ var r = class e {
814
814
  ...e.eager ?? {},
815
815
  ...t
816
816
  };
817
- return Z({
817
+ return X({
818
818
  ...e,
819
819
  eager: n
820
820
  });
821
821
  },
822
822
  count() {
823
- return Z({
823
+ return X({
824
824
  ...e,
825
825
  projection: void 0,
826
826
  aggregations: [{
@@ -834,15 +834,15 @@ var r = class e {
834
834
  ...t,
835
835
  alias: e
836
836
  }));
837
- return Z({
837
+ return X({
838
838
  ...e,
839
839
  projection: void 0,
840
840
  aggregations: n
841
841
  });
842
842
  },
843
843
  matching(t, n) {
844
- let r = X(e.table, t, e.fullTextIndexes);
845
- return Z({
844
+ let r = Y(e.table, t, e.fullTextIndexes);
845
+ return X({
846
846
  ...e,
847
847
  fullTextSearch: {
848
848
  indexName: t,
@@ -856,7 +856,7 @@ var r = class e {
856
856
  rankBy(t) {
857
857
  let n = e.fullTextSearch;
858
858
  if (n === void 0) throw Error(".rankBy() requires a preceding .matching(...) clause — there is no full-text search to rank on this query.");
859
- return Z({
859
+ return X({
860
860
  ...e,
861
861
  fullTextSearch: {
862
862
  ...n,
@@ -875,7 +875,7 @@ var r = class e {
875
875
  distance: r?.distance ?? "cosine",
876
876
  ...e.annClause?.ef === void 0 ? {} : { ef: e.annClause.ef }
877
877
  };
878
- return Z({
878
+ return X({
879
879
  ...e,
880
880
  annClause: i
881
881
  });
@@ -887,7 +887,7 @@ var r = class e {
887
887
  distance: "cosine",
888
888
  ...e.annClause?.ef === void 0 ? {} : { ef: e.annClause.ef }
889
889
  };
890
- return Z({
890
+ return X({
891
891
  ...e,
892
892
  annClause: r,
893
893
  take: n
@@ -900,7 +900,7 @@ var r = class e {
900
900
  column: "",
901
901
  distance: "cosine"
902
902
  };
903
- return Z({
903
+ return X({
904
904
  ...e,
905
905
  annClause: {
906
906
  ...n,
@@ -909,22 +909,22 @@ var r = class e {
909
909
  });
910
910
  },
911
911
  use(t) {
912
- return Z({ ...t(e) });
912
+ return X({ ...t(e) });
913
913
  },
914
914
  distinct() {
915
- return Z({
915
+ return X({
916
916
  ...e,
917
917
  distinct: !0
918
918
  });
919
919
  },
920
920
  distinctOn(t) {
921
- return Z({
921
+ return X({
922
922
  ...e,
923
923
  distinctOn: [...t]
924
924
  });
925
925
  },
926
926
  as(t) {
927
- return Z({
927
+ return X({
928
928
  ...e,
929
929
  alias: t
930
930
  });
@@ -936,7 +936,7 @@ var r = class e {
936
936
  alias: n,
937
937
  on: r
938
938
  }];
939
- return Z({
939
+ return X({
940
940
  ...e,
941
941
  joins: a
942
942
  });
@@ -948,7 +948,7 @@ var r = class e {
948
948
  alias: n,
949
949
  on: r
950
950
  }];
951
- return Z({
951
+ return X({
952
952
  ...e,
953
953
  joins: a
954
954
  });
@@ -958,7 +958,7 @@ var r = class e {
958
958
  outputKey: e,
959
959
  source: t
960
960
  }));
961
- return Z({
961
+ return X({
962
962
  ...e,
963
963
  projection: void 0,
964
964
  joinedProjection: n
@@ -967,7 +967,7 @@ var r = class e {
967
967
  withCte(t, n) {
968
968
  let r = e.ctes ?? [];
969
969
  if (r.some((e) => e.name === t)) throw Error(`Query.withCte: duplicate CTE name '${t}'`);
970
- return Z({
970
+ return X({
971
971
  ...e,
972
972
  ctes: [...r, {
973
973
  name: t,
@@ -978,7 +978,7 @@ var r = class e {
978
978
  recursiveCte(t, n) {
979
979
  let r = e.ctes ?? [];
980
980
  if (r.some((e) => e.name === t)) throw Error(`Query.recursiveCte: duplicate CTE name '${t}'`);
981
- return Z({
981
+ return X({
982
982
  ...e,
983
983
  ctes: [...r, {
984
984
  name: t,
@@ -989,20 +989,20 @@ var r = class e {
989
989
  },
990
990
  groupBy(t) {
991
991
  let n = e.groupBy ? [...e.groupBy, ...t] : [...t];
992
- return Z({
992
+ return X({
993
993
  ...e,
994
994
  groupBy: n
995
995
  });
996
996
  },
997
997
  having(t) {
998
998
  let n = e.having ? { and: [e.having, t] } : t;
999
- return Z({
999
+ return X({
1000
1000
  ...e,
1001
1001
  having: n
1002
1002
  });
1003
1003
  },
1004
1004
  exists() {
1005
- return Z({
1005
+ return X({
1006
1006
  ...e,
1007
1007
  projection: void 0,
1008
1008
  aggregations: [{
@@ -1013,8 +1013,8 @@ var r = class e {
1013
1013
  });
1014
1014
  }
1015
1015
  });
1016
- function Q(e) {
1017
- return Z({
1016
+ function Z(e) {
1017
+ return X({
1018
1018
  table: e.tableName,
1019
1019
  predicate: void 0,
1020
1020
  order: [],
@@ -1025,26 +1025,26 @@ function Q(e) {
1025
1025
  sourceTable: e
1026
1026
  });
1027
1027
  }
1028
- var et = (e, t, n) => {
1029
- let r = [...e.order.filter((e) => e.column !== "id"), {
1030
- column: "id",
1031
- direction: "asc"
1032
- }], i = t === void 0 ? void 0 : {
1033
- column: "id",
1034
- op: "gt",
1035
- value: t
1036
- }, a = i === void 0 ? e.predicate : e.predicate === void 0 ? i : { and: [e.predicate, i] };
1028
+ var tt = (e, t, n) => Q(e, "id", t, n), Q = (e, t, n, r, i = "asc") => {
1029
+ let a = [...e.order.filter((e) => e.column !== t), {
1030
+ column: t,
1031
+ direction: i
1032
+ }], o = n === void 0 ? void 0 : {
1033
+ column: t,
1034
+ op: i === "desc" ? "lt" : "gt",
1035
+ value: n
1036
+ }, s = o === void 0 ? e.predicate : e.predicate === void 0 ? o : { and: [e.predicate, o] };
1037
1037
  return {
1038
1038
  ...e,
1039
- predicate: a,
1040
- order: r,
1041
- take: n
1039
+ predicate: s,
1040
+ order: a,
1041
+ take: r
1042
1042
  };
1043
- }, tt = (e) => {
1043
+ }, nt = (e) => {
1044
1044
  let t = {};
1045
- for (let [n, r] of Object.entries(e)) K(r), t[n] = Q(r);
1045
+ for (let [n, r] of Object.entries(e)) G(r), t[n] = Z(r);
1046
1046
  return t;
1047
- }, nt = (e) => e.isView === !0, rt = (e, t, n) => {
1047
+ }, rt = (e) => e.isView === !0, it = (e, t, n) => {
1048
1048
  if (_(e), n.trim().length === 0) throw Error(`view('${e}', …): the SELECT body is empty — a view must define a query.`);
1049
1049
  let r = f(t);
1050
1050
  for (let t of Object.keys(r)) v(e, t);
@@ -1054,7 +1054,7 @@ var et = (e, t, n) => {
1054
1054
  isView: !0,
1055
1055
  viewSelect: n
1056
1056
  };
1057
- }, it = (e) => Q({
1057
+ }, $ = (e) => Z({
1058
1058
  ...e,
1059
1059
  isReactive: !1,
1060
1060
  appliedMixins: [],
@@ -1062,8 +1062,8 @@ var et = (e, t, n) => {
1062
1062
  appliedUniques: [],
1063
1063
  appliedFullText: [],
1064
1064
  appliedChecks: []
1065
- }), $ = (e, t, n = null) => {
1066
- let r = n === null ? H(e.tableName, t) : `${H(n, t)}.${H(e.tableName, t)}`, i = e.viewSelect.trim();
1065
+ }), at = (e, t, n = null) => {
1066
+ let r = n === null ? V(e.tableName, t) : `${V(n, t)}.${V(e.tableName, t)}`, i = e.viewSelect.trim();
1067
1067
  switch (t) {
1068
1068
  case "postgres":
1069
1069
  case "mysql":
@@ -1072,16 +1072,16 @@ var et = (e, t, n) => {
1072
1072
  case "sqlite":
1073
1073
  case "turso": return `DROP VIEW IF EXISTS ${r};\nCREATE VIEW ${r} AS ${i};`;
1074
1074
  }
1075
- }, at = /^[A-Za-z_][A-Za-z0-9_]*$/, ot = (e) => "$" + e.map((e) => typeof e == "number" ? `[${e}]` : at.test(e) ? `.${e}` : `."${e.replace(/"/g, "\\\"")}"`).join(""), st = (e) => "{" + e.map((e) => {
1075
+ }, ot = /^[A-Za-z_][A-Za-z0-9_]*$/, st = (e) => "$" + e.map((e) => typeof e == "number" ? `[${e}]` : ot.test(e) ? `.${e}` : `."${e.replace(/"/g, "\\\"")}"`).join(""), ct = (e) => "{" + e.map((e) => {
1076
1076
  let t = String(e);
1077
1077
  return /^[A-Za-z0-9_]+$/.test(t) ? t : `"${t.replace(/(["\\])/g, "\\$1")}"`;
1078
- }).join(",") + "}", ct = (e, t, n, r = {}) => {
1079
- let i = H(e, n), a = r.numeric ?? !1;
1078
+ }).join(",") + "}", lt = (e, t, n, r = {}) => {
1079
+ let i = V(e, n), a = r.numeric ?? !1;
1080
1080
  if (n === "postgres") {
1081
- let e = `(${i} #>> '${st(t)}'::text[])`;
1081
+ let e = `(${i} #>> '${ct(t)}'::text[])`;
1082
1082
  return a ? `${e}::numeric` : e;
1083
1083
  }
1084
- let o = ot(t);
1084
+ let o = st(t);
1085
1085
  switch (n) {
1086
1086
  case "mysql":
1087
1087
  case "mariadb": {
@@ -1098,10 +1098,10 @@ var et = (e, t, n) => {
1098
1098
  return a ? `CAST(${e} AS REAL)` : e;
1099
1099
  }
1100
1100
  }
1101
- }, lt = (e) => {
1101
+ }, ut = (e) => {
1102
1102
  if (!e.id || e.id.length === 0) throw Error("migration: `id` is required + must be non-empty");
1103
1103
  if (!e.up || !e.down) throw Error(`migration ${e.id}: both \`up\` and \`down\` must be functions`);
1104
1104
  return e;
1105
- }, ut = /^\d{8}_\d{6}_[a-z0-9_]+\.ts$/, dt = (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";
1105
+ }, dt = /^\d{8}_\d{6}_[a-z0-9_]+\.ts$/, ft = (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";
1106
1106
  //#endregion
1107
- export { v as $, We as A, Ae as B, Q as C, ne as Ct, Re as D, o as Dt, qe as E, l as Et, K as F, P as G, Te as H, Ne as I, N as J, we as K, je as L, Fe as M, Me as N, Qe as O, oe as Ot, q as P, be as Q, H as R, et as S, f as St, X as T, te as Tt, I as U, De as V, L as W, ve as X, j as Y, ye as Z, Ge as _, fe as _t, nt as a, me as at, Ve as b, ue as bt, $ as c, le as ct, He as d, c as dt, y as et, Ie as f, se as ft, Ke as g, de as gt, Ye as h, u as ht, ct as i, _e as it, Pe as j, Ue as k, d as kt, ze as l, re as lt, tt as m, s as mt, dt as n, b as nt, it as o, he as ot, Le as p, ie as pt, F as q, lt as r, ge as rt, rt as s, r as st, ut as t, _ as tt, $e as u, ae as ut, Xe as v, a as vt, Je as w, pe as wt, Be as x, ce as xt, Ze as y, ee as yt, Ee as z };
1107
+ export { be as $, We as A, u as At, De as B, tt as C, f as Ct, Je as D, le as Dt, Y as E, ee as Et, K as F, I as G, Oe as H, G as I, P as J, N as K, Pe as L, Fe as M, Ie as N, ze as O, o as Ot, Ne as P, ye as Q, Me as R, Q as S, se as St, Ye as T, pe as Tt, Ee as U, je as V, F as W, A as X, M as Y, ve as Z, Ke as _, de as _t, rt as a, _e as at, He as b, s as bt, at as c, r as ct, Ue as d, ie as dt, v as et, Le as f, ce as ft, qe as g, l as gt, Xe as h, c as ht, lt as i, ge as it, Ge as j, $e as k, ae as kt, Be as l, d as lt, nt as m, re as mt, ft as n, _ as nt, $ as o, me as ot, Re as p, oe as pt, Te as q, ut as r, b as rt, it as s, he as st, dt as t, y as tt, et as u, ne as ut, Ze as v, fe as vt, Z as w, te as wt, Ve as x, ue as xt, Qe as y, a as yt, V as z };