@voltro/database 0.28.0 → 0.30.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.
- package/CHANGELOG.md +655 -0
- package/dist/{frameworkLiveTables-CS_Hyhgz.js → frameworkLiveTables-CMyumigs.js} +169 -125
- package/dist/index.d.ts +276 -0
- package/dist/index.js +663 -652
- package/dist/sql.d.ts +649 -0
- package/dist/sql.js +1 -1
- package/package.json +2 -2
|
@@ -6,7 +6,21 @@ var r = (e) => {
|
|
|
6
6
|
let t = [];
|
|
7
7
|
for (let [n, r] of Object.entries(e.fields)) r.serverOnly === !0 && t.push(n);
|
|
8
8
|
return t;
|
|
9
|
-
}, i =
|
|
9
|
+
}, i = (e) => {
|
|
10
|
+
let t = [];
|
|
11
|
+
for (let [n, r] of Object.entries(e.fields)) {
|
|
12
|
+
let e = r.readableBy;
|
|
13
|
+
e !== void 0 && e.length > 0 && t.push({
|
|
14
|
+
column: n,
|
|
15
|
+
scopes: e
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return t;
|
|
19
|
+
}, a = (e) => {
|
|
20
|
+
let t = [];
|
|
21
|
+
for (let [n, r] of Object.entries(e.fields)) r.crdtManaged === !0 && t.push(n);
|
|
22
|
+
return t;
|
|
23
|
+
}, o = class e {
|
|
10
24
|
definition;
|
|
11
25
|
constructor(e) {
|
|
12
26
|
this.definition = e;
|
|
@@ -32,6 +46,15 @@ var r = (e) => {
|
|
|
32
46
|
serverOnly: !0
|
|
33
47
|
});
|
|
34
48
|
}
|
|
49
|
+
readableBy(...t) {
|
|
50
|
+
if (this.rejectIfRaw("readableBy"), t.length === 0) throw Error(".readableBy() needs at least one scope — a column readable by nobody is .serverOnly(). List the scopes that may read it, e.g. .readableBy('billing:read').");
|
|
51
|
+
if (t.find((e) => typeof e != "string" || e.trim() === "") !== void 0) throw Error(`.readableBy(...) rejects a blank scope — every scope must be a non-empty string (a blank scope can never be held, so it would hide the column from everyone). Got: ${JSON.stringify(t)}.`);
|
|
52
|
+
let n = [...new Set(t)];
|
|
53
|
+
return new e({
|
|
54
|
+
...this.definition,
|
|
55
|
+
readableBy: n
|
|
56
|
+
});
|
|
57
|
+
}
|
|
35
58
|
version() {
|
|
36
59
|
if (this.rejectIfRaw("version"), this.definition.type !== "integer") throw Error(`.version() requires an integer() column (got ${this.definition.type}). The store increments it, so it has to be a number — and a timestamp version reintroduces exactly the clock problem optimistic locking exists to avoid: two writes in the same millisecond are indistinguishable, and replica clocks disagree.`);
|
|
37
60
|
return new e({
|
|
@@ -150,21 +173,21 @@ var r = (e) => {
|
|
|
150
173
|
__definition() {
|
|
151
174
|
return this.definition;
|
|
152
175
|
}
|
|
153
|
-
},
|
|
176
|
+
}, s = (e) => new o({
|
|
154
177
|
type: e,
|
|
155
178
|
nullable: !1,
|
|
156
179
|
unique: !1,
|
|
157
180
|
hasDefault: !1
|
|
158
|
-
}),
|
|
181
|
+
}), ee = (e) => new o({
|
|
159
182
|
type: "id",
|
|
160
183
|
nullable: !1,
|
|
161
184
|
unique: !0,
|
|
162
185
|
hasDefault: !1,
|
|
163
186
|
idSchemeInput: e
|
|
164
|
-
}),
|
|
187
|
+
}), c = () => s("text"), te = () => s("integer"), ne = () => s("real"), l = (e, t = 0) => {
|
|
165
188
|
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)).`);
|
|
166
189
|
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}).`);
|
|
167
|
-
return new
|
|
190
|
+
return new o({
|
|
168
191
|
type: "decimal",
|
|
169
192
|
nullable: !1,
|
|
170
193
|
unique: !1,
|
|
@@ -172,12 +195,12 @@ var r = (e) => {
|
|
|
172
195
|
precision: e,
|
|
173
196
|
scale: t
|
|
174
197
|
});
|
|
175
|
-
},
|
|
198
|
+
}, re = l, ie = () => s("bigint"), ae = (e, t) => {
|
|
176
199
|
if (t.length === 0) throw Error(`dbEnum('${e}', []): enum must have at least one value`);
|
|
177
200
|
return {
|
|
178
201
|
name: e,
|
|
179
202
|
values: t,
|
|
180
|
-
column: () => new
|
|
203
|
+
column: () => new o({
|
|
181
204
|
type: "enum",
|
|
182
205
|
nullable: !1,
|
|
183
206
|
unique: !1,
|
|
@@ -186,7 +209,13 @@ var r = (e) => {
|
|
|
186
209
|
enumValues: t
|
|
187
210
|
})
|
|
188
211
|
};
|
|
189
|
-
},
|
|
212
|
+
}, oe = () => s("boolean"), se = () => s("timestamp"), ce = () => s("date"), le = () => s("json"), ue = () => s("bytes"), u = () => new o({
|
|
213
|
+
type: "bytes",
|
|
214
|
+
nullable: !0,
|
|
215
|
+
unique: !1,
|
|
216
|
+
hasDefault: !1,
|
|
217
|
+
crdtManaged: !0
|
|
218
|
+
}), d = (e, t) => new o({
|
|
190
219
|
type: "reference",
|
|
191
220
|
nullable: !1,
|
|
192
221
|
unique: !1,
|
|
@@ -196,15 +225,15 @@ var r = (e) => {
|
|
|
196
225
|
refOnUpdate: t?.onUpdate ?? "noAction",
|
|
197
226
|
fkAutoIndex: t?.index ?? !0,
|
|
198
227
|
...t?.orphanPolicy ? { orphanPolicy: t.orphanPolicy } : {}
|
|
199
|
-
}),
|
|
228
|
+
}), de = () => new o({
|
|
200
229
|
type: "text",
|
|
201
230
|
nullable: !0,
|
|
202
231
|
unique: !1,
|
|
203
232
|
hasDefault: !1,
|
|
204
233
|
dropped: !0
|
|
205
|
-
}),
|
|
234
|
+
}), fe = (e, t) => {
|
|
206
235
|
if (!Number.isInteger(e) || e <= 0) throw Error(`vector(${String(e)}): dimension must be a positive integer (the embedding length, e.g. vector(1536)).`);
|
|
207
|
-
return new
|
|
236
|
+
return new o({
|
|
208
237
|
type: "vector",
|
|
209
238
|
nullable: !1,
|
|
210
239
|
unique: !1,
|
|
@@ -212,13 +241,13 @@ var r = (e) => {
|
|
|
212
241
|
vectorDim: e,
|
|
213
242
|
vectorPrecision: t?.precision ?? "float32"
|
|
214
243
|
});
|
|
215
|
-
},
|
|
244
|
+
}, pe = (e) => new o({
|
|
216
245
|
type: "array",
|
|
217
246
|
nullable: !1,
|
|
218
247
|
unique: !1,
|
|
219
248
|
hasDefault: !1,
|
|
220
249
|
arrayElement: e.__definition().type
|
|
221
|
-
}),
|
|
250
|
+
}), me = () => s("interval"), he = (e, t = 4326) => new o({
|
|
222
251
|
type: "text",
|
|
223
252
|
nullable: !1,
|
|
224
253
|
unique: !1,
|
|
@@ -228,7 +257,7 @@ var r = (e) => {
|
|
|
228
257
|
geomKind: e,
|
|
229
258
|
srid: t
|
|
230
259
|
}
|
|
231
|
-
}),
|
|
260
|
+
}), ge = (e, t = 4326) => new o({
|
|
232
261
|
type: "text",
|
|
233
262
|
nullable: !1,
|
|
234
263
|
unique: !1,
|
|
@@ -238,51 +267,51 @@ var r = (e) => {
|
|
|
238
267
|
geomKind: e,
|
|
239
268
|
srid: t
|
|
240
269
|
}
|
|
241
|
-
}),
|
|
270
|
+
}), _e = (e) => new o({
|
|
242
271
|
type: "raw",
|
|
243
272
|
nullable: !1,
|
|
244
273
|
unique: !1,
|
|
245
274
|
hasDefault: !1,
|
|
246
275
|
rawDdl: e
|
|
247
|
-
}),
|
|
276
|
+
}), f = (e) => {
|
|
248
277
|
let t = {};
|
|
249
278
|
for (let [n, r] of Object.entries(e)) t[n] = r.__definition();
|
|
250
279
|
return t;
|
|
251
|
-
},
|
|
252
|
-
let n =
|
|
253
|
-
return
|
|
280
|
+
}, p = /* @__PURE__ */ new WeakMap(), m = (e) => typeof e == "object" && e ? p.get(e) : void 0, ve = (e, t = {}) => {
|
|
281
|
+
let n = c();
|
|
282
|
+
return p.set(n, {
|
|
254
283
|
target: e,
|
|
255
284
|
orphanPolicy: t.orphanPolicy ?? "keep",
|
|
256
285
|
onSoftDelete: t.onSoftDelete ?? !1
|
|
257
286
|
}), n;
|
|
258
|
-
},
|
|
287
|
+
}, h = /* @__PURE__ */ new Map(), ye = (e, t) => {
|
|
259
288
|
if (t.from === t.to) throw Error(`declareEnumRename('${e}'): \`from\` and \`to\` are both '${t.from}' — a rename must change the value.`);
|
|
260
|
-
let n =
|
|
289
|
+
let n = h.get(e) ?? [];
|
|
261
290
|
for (let r of n) {
|
|
262
291
|
if (r.from === t.from && r.to === t.to) return;
|
|
263
292
|
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}'.`);
|
|
264
293
|
}
|
|
265
|
-
n.push(t),
|
|
266
|
-
},
|
|
267
|
-
|
|
268
|
-
},
|
|
269
|
-
|
|
270
|
-
},
|
|
271
|
-
let e =
|
|
272
|
-
return
|
|
273
|
-
},
|
|
294
|
+
n.push(t), h.set(e, n);
|
|
295
|
+
}, be = (e) => h.get(e) ?? [], xe = () => h, Se = () => {
|
|
296
|
+
h.clear();
|
|
297
|
+
}, Ce = 63, we = 60, g = [], _ = (e) => {
|
|
298
|
+
g.includes(e) || g.push(e);
|
|
299
|
+
}, Te = () => {
|
|
300
|
+
let e = g.slice();
|
|
301
|
+
return g.length = 0, e;
|
|
302
|
+
}, Ee = /^[a-zA-Z_][a-zA-Z0-9_]*$/, v = (e, t) => {
|
|
274
303
|
if (t.length === 0) throw Error(`${e} cannot be empty.`);
|
|
275
|
-
if (!
|
|
276
|
-
},
|
|
277
|
-
if (
|
|
278
|
-
e.length > 60 &&
|
|
279
|
-
},
|
|
280
|
-
if (
|
|
281
|
-
t.length > 60 &&
|
|
282
|
-
},
|
|
283
|
-
if (
|
|
284
|
-
t.length > 60 &&
|
|
285
|
-
},
|
|
304
|
+
if (!Ee.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_]*$/.`);
|
|
305
|
+
}, y = (e) => {
|
|
306
|
+
if (v("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.`);
|
|
307
|
+
e.length > 60 && _(`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.`);
|
|
308
|
+
}, b = (e, t) => {
|
|
309
|
+
if (v("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.`);
|
|
310
|
+
t.length > 60 && _(`column '${t}' on table '${e}' is ${t.length} chars — close to the 63-byte limit.`);
|
|
311
|
+
}, x = (e, t, n, r) => {
|
|
312
|
+
if (v("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.`);
|
|
313
|
+
t.length > 60 && _(`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.` : ""}`);
|
|
314
|
+
}, S = (e, t) => {
|
|
286
315
|
if (e.length === 0) throw Error(`typeid prefix on table '${t.tableName}' cannot be empty.`);
|
|
287
316
|
if (!/^[a-z][a-z0-9_]*$/.test(e)) {
|
|
288
317
|
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_]*$/.";
|
|
@@ -292,35 +321,35 @@ var r = (e) => {
|
|
|
292
321
|
let n = t.kind === "derived" ? "shorten the table name, or supply an explicit short prefix via id({ prefix: '...' })." : "pick a shorter prefix.";
|
|
293
322
|
throw Error(`typeid prefix '${e}' on table '${t.tableName}' is ${e.length} chars — exceeds the 63-byte limit; ${n}`);
|
|
294
323
|
}
|
|
295
|
-
e.length > 60 &&
|
|
296
|
-
},
|
|
324
|
+
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).`);
|
|
325
|
+
}, C = 1704067200000n, w = 10n, T = 12n, E = (1n << w) - 1n, D = (1n << T) - 1n, De = T, Oe = 22n, ke = () => {
|
|
297
326
|
let e = process.env.SNOWFLAKE_MACHINE_ID;
|
|
298
327
|
if (e === void 0 || e === "") return 0n;
|
|
299
328
|
let t = BigInt(e);
|
|
300
|
-
if (t < 0n || t >
|
|
329
|
+
if (t < 0n || t > E) throw Error(`SNOWFLAKE_MACHINE_ID out of range: ${e}. Must be 0..${E}.`);
|
|
301
330
|
return t;
|
|
302
331
|
}, O = () => ({
|
|
303
332
|
lastMs: 0n,
|
|
304
333
|
sequence: 0n,
|
|
305
|
-
machineId:
|
|
306
|
-
}), k,
|
|
334
|
+
machineId: ke()
|
|
335
|
+
}), k, Ae = () => (k === void 0 && (k = O()), k), je = () => {
|
|
307
336
|
k = O();
|
|
308
|
-
}, A = () => BigInt(Date.now()),
|
|
337
|
+
}, A = () => BigInt(Date.now()), Me = (e) => {
|
|
309
338
|
let t = A();
|
|
310
339
|
for (; t <= e;) t = A();
|
|
311
340
|
return t;
|
|
312
341
|
}, j = () => {
|
|
313
|
-
let e =
|
|
314
|
-
t === e.lastMs ? (e.sequence = e.sequence + 1n &
|
|
315
|
-
let n = t -
|
|
342
|
+
let e = Ae(), t = A();
|
|
343
|
+
t === e.lastMs ? (e.sequence = e.sequence + 1n & D, e.sequence === 0n && (t = Me(e.lastMs), e.lastMs = t)) : (e.sequence = 0n, e.lastMs = t);
|
|
344
|
+
let n = t - C;
|
|
316
345
|
if (n < 0n) throw Error("Snowflake timestamp before configured epoch (2024-01-01). System clock is wrong.");
|
|
317
|
-
return (n <<
|
|
346
|
+
return (n << Oe | e.machineId << De | e.sequence).toString();
|
|
318
347
|
}, M = (e) => {
|
|
319
348
|
let t = e.toLowerCase();
|
|
320
349
|
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.`);
|
|
321
350
|
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: '...' }).`);
|
|
322
351
|
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;
|
|
323
|
-
return
|
|
352
|
+
return S(n, {
|
|
324
353
|
kind: "derived",
|
|
325
354
|
tableName: e
|
|
326
355
|
}), n;
|
|
@@ -329,7 +358,7 @@ var r = (e) => {
|
|
|
329
358
|
kind: "typeid",
|
|
330
359
|
prefix: M(t)
|
|
331
360
|
};
|
|
332
|
-
if ("prefix" in e && !("scheme" in e)) return
|
|
361
|
+
if ("prefix" in e && !("scheme" in e)) return S(e.prefix, {
|
|
333
362
|
kind: "explicit",
|
|
334
363
|
tableName: t
|
|
335
364
|
}), {
|
|
@@ -340,7 +369,7 @@ var r = (e) => {
|
|
|
340
369
|
switch (e.scheme) {
|
|
341
370
|
case "typeid": {
|
|
342
371
|
let n = e.prefix ?? M(t);
|
|
343
|
-
return e.prefix !== void 0 &&
|
|
372
|
+
return e.prefix !== void 0 && S(e.prefix, {
|
|
344
373
|
kind: "explicit",
|
|
345
374
|
tableName: t
|
|
346
375
|
}), {
|
|
@@ -356,7 +385,7 @@ var r = (e) => {
|
|
|
356
385
|
generate: e.generate
|
|
357
386
|
};
|
|
358
387
|
}
|
|
359
|
-
},
|
|
388
|
+
}, Ne = (n, r) => {
|
|
360
389
|
switch (n.kind) {
|
|
361
390
|
case "typeid": return e(n.prefix).toString();
|
|
362
391
|
case "ulid": return t();
|
|
@@ -365,13 +394,13 @@ var r = (e) => {
|
|
|
365
394
|
case "custom": return n.generate(r);
|
|
366
395
|
}
|
|
367
396
|
}, P = (e) => ({
|
|
368
|
-
fields:
|
|
397
|
+
fields: f(e.fields),
|
|
369
398
|
...e.id === void 0 ? {} : { id: e.id },
|
|
370
399
|
...e.requires === void 0 ? {} : { requires: e.requires },
|
|
371
400
|
...e.indexes === void 0 ? {} : { indexes: e.indexes },
|
|
372
401
|
...e.behaviors === void 0 ? {} : { behaviors: e.behaviors },
|
|
373
402
|
...e.policies === void 0 ? {} : { policies: e.policies }
|
|
374
|
-
}),
|
|
403
|
+
}), Pe = P, F = (e) => {
|
|
375
404
|
let t = /* @__PURE__ */ new Set(), n = [], r = (e) => {
|
|
376
405
|
let i = e.id ?? e;
|
|
377
406
|
if (!t.has(i)) {
|
|
@@ -381,7 +410,7 @@ var r = (e) => {
|
|
|
381
410
|
};
|
|
382
411
|
for (let t of e) r(t);
|
|
383
412
|
return n;
|
|
384
|
-
},
|
|
413
|
+
}, Fe = (e, ...t) => {
|
|
385
414
|
if (t.length === 0) throw Error(`jsonIndex("${e}"): at least one path segment is required`);
|
|
386
415
|
let n = (r) => ({
|
|
387
416
|
jsonPath: {
|
|
@@ -392,14 +421,14 @@ var r = (e) => {
|
|
|
392
421
|
numeric: () => n(!0)
|
|
393
422
|
});
|
|
394
423
|
return n(!1);
|
|
395
|
-
},
|
|
424
|
+
}, Ie = (e = "cosine", t = "float32") => {
|
|
396
425
|
let n = t === "half" ? "halfvec" : "vector";
|
|
397
426
|
switch (e) {
|
|
398
427
|
case "cosine": return `${n}_cosine_ops`;
|
|
399
428
|
case "l2": return `${n}_l2_ops`;
|
|
400
429
|
case "inner": return `${n}_ip_ops`;
|
|
401
430
|
}
|
|
402
|
-
},
|
|
431
|
+
}, Le = [
|
|
403
432
|
"id",
|
|
404
433
|
"tenantId",
|
|
405
434
|
"createdAt",
|
|
@@ -408,7 +437,7 @@ var r = (e) => {
|
|
|
408
437
|
"updatedBy",
|
|
409
438
|
"deletedAt",
|
|
410
439
|
"deletedBy"
|
|
411
|
-
], I = (e) => e.id ?? `<anonymous mixin: ${Object.keys(e.fields).join(", ")}>`, L = (e, t) => `${e}_${t.join("_")}_idx`,
|
|
440
|
+
], I = (e) => e.id ?? `<anonymous mixin: ${Object.keys(e.fields).join(", ")}>`, L = (e, t) => `${e}_${t.join("_")}_idx`, Re = (e, t) => `${e}_${t.join("_")}_uq`, R = (e, t, n, r, i) => {
|
|
412
441
|
if (n !== "hnsw") return;
|
|
413
442
|
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.`);
|
|
414
443
|
let a = r[0];
|
|
@@ -416,14 +445,14 @@ var r = (e) => {
|
|
|
416
445
|
let o = i[a];
|
|
417
446
|
if (o === void 0) throw Error(`hnsw index '${t}' on table '${e}' references unknown column '${a}'.`);
|
|
418
447
|
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.`);
|
|
419
|
-
},
|
|
448
|
+
}, z = (e, t) => {
|
|
420
449
|
let n;
|
|
421
450
|
for (let [r, i] of Object.entries(e)) i.type === "id" && i.idScheme === void 0 && (n === void 0 && (n = { ...e }), n[r] = {
|
|
422
451
|
...i,
|
|
423
452
|
idScheme: N(i.idSchemeInput, t)
|
|
424
453
|
});
|
|
425
454
|
return n ?? e;
|
|
426
|
-
},
|
|
455
|
+
}, B = (e) => {
|
|
427
456
|
let t = e.appliedPrimaryKey ?? [];
|
|
428
457
|
return {
|
|
429
458
|
tableName: e.tableName,
|
|
@@ -434,6 +463,7 @@ var r = (e) => {
|
|
|
434
463
|
appliedUniques: e.appliedUniques,
|
|
435
464
|
appliedFullText: e.appliedFullText,
|
|
436
465
|
appliedChecks: e.appliedChecks,
|
|
466
|
+
appliedRules: e.appliedRules ?? [],
|
|
437
467
|
appliedPluginRefs: e.appliedPluginRefs ?? [],
|
|
438
468
|
appliedPrimaryKey: t,
|
|
439
469
|
...e.previousTableName === void 0 ? {} : { previousTableName: e.previousTableName },
|
|
@@ -441,8 +471,8 @@ var r = (e) => {
|
|
|
441
471
|
...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema },
|
|
442
472
|
fullTextIndex: ((t, n, r) => {
|
|
443
473
|
if (n.length === 0) throw Error(`fullTextIndex '${t}' on '${e.tableName}' has no columns.`);
|
|
444
|
-
if (
|
|
445
|
-
return
|
|
474
|
+
if (x(e.tableName, t, !1, n), e.appliedFullText.some((e) => e.name === t)) throw Error(`duplicate full-text index '${t}' on table '${e.tableName}'.`);
|
|
475
|
+
return B({
|
|
446
476
|
...e,
|
|
447
477
|
tableName: e.tableName,
|
|
448
478
|
fields: e.fields,
|
|
@@ -471,19 +501,19 @@ var r = (e) => {
|
|
|
471
501
|
for (let t of n) for (let [n, a] of Object.entries(t.fields)) {
|
|
472
502
|
let o = i.get(n);
|
|
473
503
|
if (o !== void 0) throw Error(`mixin collision on column '${n}' in table '${e.tableName}': '${I(o)}' and '${I(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.`);
|
|
474
|
-
|
|
504
|
+
b(e.tableName, n), r[n] = a, i.set(n, t);
|
|
475
505
|
}
|
|
476
506
|
let a = [...e.appliedIndexes];
|
|
477
507
|
for (let t of n) for (let n of t.indexes ?? []) {
|
|
478
508
|
let t = n.name ?? L(e.tableName, n.fields);
|
|
479
|
-
a.some((e) => e.name === t) || (
|
|
509
|
+
a.some((e) => e.name === t) || (x(e.tableName, t, n.name === void 0, n.fields), R(e.tableName, t, n.kind, n.fields, r), a.push({
|
|
480
510
|
name: t,
|
|
481
511
|
fields: n.fields,
|
|
482
512
|
...n.kind === void 0 ? {} : { kind: n.kind },
|
|
483
513
|
...n.kindOptions === void 0 ? {} : { kindOptions: n.kindOptions }
|
|
484
514
|
}));
|
|
485
515
|
}
|
|
486
|
-
return
|
|
516
|
+
return B({
|
|
487
517
|
...e,
|
|
488
518
|
tableName: e.tableName,
|
|
489
519
|
fields: r,
|
|
@@ -502,8 +532,8 @@ var r = (e) => {
|
|
|
502
532
|
let n, r, i, a = Array.isArray(t[0]);
|
|
503
533
|
if (a ? (r = t[0], i = t[1], n = L(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.`);
|
|
504
534
|
let o = r.filter((e) => typeof e == "string");
|
|
505
|
-
if (
|
|
506
|
-
return
|
|
535
|
+
if (x(e.tableName, n, a, o), R(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.`);
|
|
536
|
+
return B({
|
|
507
537
|
...e,
|
|
508
538
|
tableName: e.tableName,
|
|
509
539
|
fields: e.fields,
|
|
@@ -527,8 +557,8 @@ var r = (e) => {
|
|
|
527
557
|
expressionIndex: ((t, n, r) => {
|
|
528
558
|
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.`);
|
|
529
559
|
let i = n.filter((e) => typeof e == "string");
|
|
530
|
-
if (
|
|
531
|
-
return
|
|
560
|
+
if (x(e.tableName, t, !1, i), R(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.`);
|
|
561
|
+
return B({
|
|
532
562
|
...e,
|
|
533
563
|
tableName: e.tableName,
|
|
534
564
|
fields: e.fields,
|
|
@@ -551,9 +581,9 @@ var r = (e) => {
|
|
|
551
581
|
}),
|
|
552
582
|
unique: ((...t) => {
|
|
553
583
|
let n, r, i, a = Array.isArray(t[0]);
|
|
554
|
-
if (a ? (r = t[0], i = t[1], n =
|
|
555
|
-
if (
|
|
556
|
-
return
|
|
584
|
+
if (a ? (r = t[0], i = t[1], n = Re(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.`);
|
|
585
|
+
if (x(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.`);
|
|
586
|
+
return B({
|
|
557
587
|
...e,
|
|
558
588
|
tableName: e.tableName,
|
|
559
589
|
fields: e.fields,
|
|
@@ -575,9 +605,9 @@ var r = (e) => {
|
|
|
575
605
|
uniqueActive: ((...t) => {
|
|
576
606
|
let n, r, i, a = Array.isArray(t[0]);
|
|
577
607
|
if (a ? (r = t[0], i = t[1], n = L(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.`);
|
|
578
|
-
if (
|
|
608
|
+
if (x(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).`);
|
|
579
609
|
let o = i?.where ?? "\"deletedAt\" IS NULL";
|
|
580
|
-
return
|
|
610
|
+
return B({
|
|
581
611
|
...e,
|
|
582
612
|
tableName: e.tableName,
|
|
583
613
|
fields: e.fields,
|
|
@@ -599,8 +629,8 @@ var r = (e) => {
|
|
|
599
629
|
}),
|
|
600
630
|
check: ((t, n) => {
|
|
601
631
|
if (n.trim().length === 0) throw Error(`CHECK '${t}' on table '${e.tableName}' has an empty expression.`);
|
|
602
|
-
if (
|
|
603
|
-
return
|
|
632
|
+
if (x(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.`);
|
|
633
|
+
return B({
|
|
604
634
|
...e,
|
|
605
635
|
tableName: e.tableName,
|
|
606
636
|
fields: e.fields,
|
|
@@ -618,9 +648,22 @@ var r = (e) => {
|
|
|
618
648
|
...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
|
|
619
649
|
});
|
|
620
650
|
}),
|
|
651
|
+
rule: ((t, n, r) => {
|
|
652
|
+
if (t.trim().length === 0) throw Error(`rule on table '${e.tableName}' has an empty name.`);
|
|
653
|
+
let i = e.appliedRules ?? [];
|
|
654
|
+
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.`);
|
|
655
|
+
return B({
|
|
656
|
+
...e,
|
|
657
|
+
appliedRules: [...i, {
|
|
658
|
+
name: t,
|
|
659
|
+
predicate: n,
|
|
660
|
+
severity: r?.severity ?? "error"
|
|
661
|
+
}]
|
|
662
|
+
});
|
|
663
|
+
}),
|
|
621
664
|
renamedFrom: ((t) => {
|
|
622
665
|
if (t === e.tableName) throw Error(`renamedFrom('${t}') on table '${e.tableName}' names the table itself — drop the marker, there is nothing to rename.`);
|
|
623
|
-
return
|
|
666
|
+
return y(t), B({
|
|
624
667
|
...e,
|
|
625
668
|
previousTableName: t
|
|
626
669
|
});
|
|
@@ -635,7 +678,7 @@ var r = (e) => {
|
|
|
635
678
|
}
|
|
636
679
|
if (t.length > 0) throw Error(`primaryKey([...]) declared twice on table '${e.tableName}'.`);
|
|
637
680
|
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.`);
|
|
638
|
-
return
|
|
681
|
+
return B({
|
|
639
682
|
...e,
|
|
640
683
|
tableName: e.tableName,
|
|
641
684
|
fields: e.fields,
|
|
@@ -650,7 +693,7 @@ var r = (e) => {
|
|
|
650
693
|
...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
|
|
651
694
|
});
|
|
652
695
|
}),
|
|
653
|
-
nonReactive: (() =>
|
|
696
|
+
nonReactive: (() => B({
|
|
654
697
|
...e,
|
|
655
698
|
tableName: e.tableName,
|
|
656
699
|
fields: e.fields,
|
|
@@ -664,7 +707,7 @@ var r = (e) => {
|
|
|
664
707
|
...e.insertSchema === void 0 ? {} : { insertSchema: e.insertSchema },
|
|
665
708
|
...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
|
|
666
709
|
})),
|
|
667
|
-
validate: ((t) =>
|
|
710
|
+
validate: ((t) => B({
|
|
668
711
|
...e,
|
|
669
712
|
tableName: e.tableName,
|
|
670
713
|
fields: e.fields,
|
|
@@ -678,7 +721,7 @@ var r = (e) => {
|
|
|
678
721
|
insertSchema: t,
|
|
679
722
|
...e.validatePatchSchema === void 0 ? {} : { validatePatchSchema: e.validatePatchSchema }
|
|
680
723
|
})),
|
|
681
|
-
validatePatch: ((t) =>
|
|
724
|
+
validatePatch: ((t) => B({
|
|
682
725
|
...e,
|
|
683
726
|
tableName: e.tableName,
|
|
684
727
|
fields: e.fields,
|
|
@@ -693,17 +736,17 @@ var r = (e) => {
|
|
|
693
736
|
validatePatchSchema: n.partial(t)
|
|
694
737
|
}))
|
|
695
738
|
};
|
|
696
|
-
},
|
|
697
|
-
|
|
739
|
+
}, ze = (e, t) => {
|
|
740
|
+
y(e);
|
|
698
741
|
let n = Object.entries(t).flatMap(([e, t]) => {
|
|
699
|
-
let n =
|
|
742
|
+
let n = m(t);
|
|
700
743
|
return n === void 0 ? [] : [{
|
|
701
744
|
column: e,
|
|
702
745
|
...n
|
|
703
746
|
}];
|
|
704
|
-
}), r =
|
|
705
|
-
for (let t of Object.keys(r))
|
|
706
|
-
return
|
|
747
|
+
}), r = z(f(t), e);
|
|
748
|
+
for (let t of Object.keys(r)) b(e, t);
|
|
749
|
+
return B({
|
|
707
750
|
appliedPluginRefs: n,
|
|
708
751
|
tableName: e,
|
|
709
752
|
fields: r,
|
|
@@ -712,9 +755,10 @@ var r = (e) => {
|
|
|
712
755
|
appliedIndexes: [],
|
|
713
756
|
appliedUniques: [],
|
|
714
757
|
appliedFullText: [],
|
|
715
|
-
appliedChecks: []
|
|
758
|
+
appliedChecks: [],
|
|
759
|
+
appliedRules: []
|
|
716
760
|
});
|
|
717
|
-
},
|
|
761
|
+
}, Be = (e) => e === "sqlite" || e === "turso", V = (e, t) => {
|
|
718
762
|
switch (t) {
|
|
719
763
|
case "mysql":
|
|
720
764
|
case "mariadb": return `\`${e}\``;
|
|
@@ -730,38 +774,38 @@ var r = (e) => {
|
|
|
730
774
|
return;
|
|
731
775
|
}
|
|
732
776
|
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.`);
|
|
733
|
-
},
|
|
777
|
+
}, Ve = (e) => {
|
|
734
778
|
W.get(e.tableName) === void 0 && W.set(e.tableName, e);
|
|
735
|
-
}, K = (e) => W.get(e),
|
|
779
|
+
}, K = (e) => W.get(e), He = (e) => {
|
|
736
780
|
let t = W.get(e);
|
|
737
781
|
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.`);
|
|
738
782
|
return t;
|
|
739
|
-
},
|
|
783
|
+
}, Ue = () => [...W.values()], We = () => {
|
|
740
784
|
W.clear();
|
|
741
|
-
},
|
|
785
|
+
}, Ge = (e) => W.get(e)?.isReactive !== !1, Ke = (e) => ({
|
|
742
786
|
op: "count",
|
|
743
787
|
alias: e ?? "count"
|
|
744
|
-
}),
|
|
788
|
+
}), qe = (e, t) => ({
|
|
745
789
|
op: "count-distinct",
|
|
746
790
|
column: e,
|
|
747
791
|
alias: t ?? `count_distinct_${e}`
|
|
748
|
-
}),
|
|
792
|
+
}), Je = (e, t) => ({
|
|
749
793
|
op: "sum",
|
|
750
794
|
column: e,
|
|
751
795
|
alias: t ?? `sum_${e}`
|
|
752
|
-
}),
|
|
796
|
+
}), Ye = (e, t) => ({
|
|
753
797
|
op: "avg",
|
|
754
798
|
column: e,
|
|
755
799
|
alias: t ?? `avg_${e}`
|
|
756
|
-
}),
|
|
800
|
+
}), Xe = (e, t) => ({
|
|
757
801
|
op: "min",
|
|
758
802
|
column: e,
|
|
759
803
|
alias: t ?? `min_${e}`
|
|
760
|
-
}),
|
|
804
|
+
}), Ze = (e, t) => ({
|
|
761
805
|
op: "max",
|
|
762
806
|
column: e,
|
|
763
807
|
alias: t ?? `max_${e}`
|
|
764
|
-
}),
|
|
808
|
+
}), Qe = (e, t) => ({
|
|
765
809
|
op: "column",
|
|
766
810
|
column: e,
|
|
767
811
|
alias: t ?? e
|
|
@@ -779,33 +823,33 @@ var r = (e) => {
|
|
|
779
823
|
queries: t.map((e) => e.descriptor)
|
|
780
824
|
}
|
|
781
825
|
});
|
|
782
|
-
},
|
|
826
|
+
}, $e = q("union"), et = q("union-all"), tt = q("intersect"), nt = q("except"), J = (e) => ({ over: (t) => ({
|
|
783
827
|
...e,
|
|
784
828
|
window: t
|
|
785
|
-
}) }),
|
|
829
|
+
}) }), rt = (e = "rowNumber") => J({
|
|
786
830
|
op: "window-row-number",
|
|
787
831
|
alias: e
|
|
788
|
-
}),
|
|
832
|
+
}), it = (e = "rank") => J({
|
|
789
833
|
op: "window-rank",
|
|
790
834
|
alias: e
|
|
791
|
-
}),
|
|
835
|
+
}), at = (e = "denseRank") => J({
|
|
792
836
|
op: "window-dense-rank",
|
|
793
837
|
alias: e
|
|
794
|
-
}),
|
|
838
|
+
}), ot = (e, t = 1, n) => J({
|
|
795
839
|
op: "window-lag",
|
|
796
840
|
column: e,
|
|
797
841
|
alias: n ?? `lag_${e}`,
|
|
798
842
|
offset: t
|
|
799
|
-
}),
|
|
843
|
+
}), st = (e, t = 1, n) => J({
|
|
800
844
|
op: "window-lead",
|
|
801
845
|
column: e,
|
|
802
846
|
alias: n ?? `lead_${e}`,
|
|
803
847
|
offset: t
|
|
804
|
-
}),
|
|
848
|
+
}), ct = (e, t) => J({
|
|
805
849
|
op: "window-sum-over",
|
|
806
850
|
column: e,
|
|
807
851
|
alias: t ?? `sum_${e}_over`
|
|
808
|
-
}),
|
|
852
|
+
}), lt = (e, t) => J({
|
|
809
853
|
op: "window-avg-over",
|
|
810
854
|
column: e,
|
|
811
855
|
alias: t ?? `avg_${e}_over`
|
|
@@ -1087,7 +1131,7 @@ function Z(e) {
|
|
|
1087
1131
|
sourceTable: e
|
|
1088
1132
|
});
|
|
1089
1133
|
}
|
|
1090
|
-
var
|
|
1134
|
+
var ut = (e, t, n) => Q(e, "id", t, n), Q = (e, t, n, r, i = "asc") => {
|
|
1091
1135
|
let a = [...e.order.filter((e) => e.column !== t), {
|
|
1092
1136
|
column: t,
|
|
1093
1137
|
direction: i
|
|
@@ -1102,21 +1146,21 @@ var st = (e, t, n) => Q(e, "id", t, n), Q = (e, t, n, r, i = "asc") => {
|
|
|
1102
1146
|
order: a,
|
|
1103
1147
|
take: r
|
|
1104
1148
|
};
|
|
1105
|
-
},
|
|
1149
|
+
}, dt = (e) => {
|
|
1106
1150
|
let t = {};
|
|
1107
1151
|
for (let [n, r] of Object.entries(e)) G(r), t[n] = Z(r);
|
|
1108
1152
|
return t;
|
|
1109
|
-
},
|
|
1110
|
-
if (
|
|
1111
|
-
let r =
|
|
1112
|
-
for (let t of Object.keys(r))
|
|
1153
|
+
}, ft = (e) => e.isView === !0, pt = (e, t, n) => {
|
|
1154
|
+
if (y(e), n.trim().length === 0) throw Error(`view('${e}', …): the SELECT body is empty — a view must define a query.`);
|
|
1155
|
+
let r = f(t);
|
|
1156
|
+
for (let t of Object.keys(r)) b(e, t);
|
|
1113
1157
|
return {
|
|
1114
1158
|
tableName: e,
|
|
1115
1159
|
fields: r,
|
|
1116
1160
|
isView: !0,
|
|
1117
1161
|
viewSelect: n
|
|
1118
1162
|
};
|
|
1119
|
-
},
|
|
1163
|
+
}, mt = (e) => Z({
|
|
1120
1164
|
...e,
|
|
1121
1165
|
isReactive: !1,
|
|
1122
1166
|
appliedMixins: [],
|
|
@@ -1124,7 +1168,7 @@ var st = (e, t, n) => Q(e, "id", t, n), Q = (e, t, n, r, i = "asc") => {
|
|
|
1124
1168
|
appliedUniques: [],
|
|
1125
1169
|
appliedFullText: [],
|
|
1126
1170
|
appliedChecks: []
|
|
1127
|
-
}),
|
|
1171
|
+
}), ht = (e, t, n = null) => {
|
|
1128
1172
|
let r = n === null ? V(e.tableName, t) : `${V(n, t)}.${V(e.tableName, t)}`, i = e.viewSelect.trim();
|
|
1129
1173
|
switch (t) {
|
|
1130
1174
|
case "postgres":
|
|
@@ -1134,16 +1178,16 @@ var st = (e, t, n) => Q(e, "id", t, n), Q = (e, t, n, r, i = "asc") => {
|
|
|
1134
1178
|
case "sqlite":
|
|
1135
1179
|
case "turso": return `DROP VIEW IF EXISTS ${r};\nCREATE VIEW ${r} AS ${i};`;
|
|
1136
1180
|
}
|
|
1137
|
-
},
|
|
1181
|
+
}, gt = /^[A-Za-z_][A-Za-z0-9_]*$/, _t = (e) => "$" + e.map((e) => typeof e == "number" ? `[${e}]` : gt.test(e) ? `.${e}` : `."${e.replace(/"/g, "\\\"")}"`).join(""), vt = (e) => "{" + e.map((e) => {
|
|
1138
1182
|
let t = String(e);
|
|
1139
1183
|
return /^[A-Za-z0-9_]+$/.test(t) ? t : `"${t.replace(/(["\\])/g, "\\$1")}"`;
|
|
1140
|
-
}).join(",") + "}",
|
|
1184
|
+
}).join(",") + "}", yt = (e, t, n, r = {}) => {
|
|
1141
1185
|
let i = V(e, n), a = r.numeric ?? !1;
|
|
1142
1186
|
if (n === "postgres") {
|
|
1143
|
-
let e = `(${i} #>> '${
|
|
1187
|
+
let e = `(${i} #>> '${vt(t)}'::text[])`;
|
|
1144
1188
|
return a ? `${e}::numeric` : e;
|
|
1145
1189
|
}
|
|
1146
|
-
let o =
|
|
1190
|
+
let o = _t(t);
|
|
1147
1191
|
switch (n) {
|
|
1148
1192
|
case "mysql":
|
|
1149
1193
|
case "mariadb": {
|
|
@@ -1160,10 +1204,10 @@ var st = (e, t, n) => Q(e, "id", t, n), Q = (e, t, n, r, i = "asc") => {
|
|
|
1160
1204
|
return a ? `CAST(${e} AS REAL)` : e;
|
|
1161
1205
|
}
|
|
1162
1206
|
}
|
|
1163
|
-
},
|
|
1207
|
+
}, bt = (e) => {
|
|
1164
1208
|
if (!e.id || e.id.length === 0) throw Error("migration: `id` is required + must be non-empty");
|
|
1165
1209
|
if (!e.up || !e.down) throw Error(`migration ${e.id}: both \`up\` and \`down\` must be functions`);
|
|
1166
1210
|
return e;
|
|
1167
|
-
},
|
|
1211
|
+
}, xt = /^\d{8}_\d{6}_[a-z0-9_]+\.ts$/, St = (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"]), Ct = (e) => $.has(e) || e.startsWith("_voltro_") || e.startsWith("_cloud_") || e.startsWith("cluster_"), wt = /__dropped_\d{14}$/, Tt = (e) => wt.test(e);
|
|
1168
1212
|
//#endregion
|
|
1169
|
-
export { N as $,
|
|
1213
|
+
export { N as $, rt as A, me as At, G as B, se as Bt, Ze as C, ae as Ct, Z as D, ge as Dt, ut as E, he as Et, Ue as F, i as Ft, Fe as G, Be as H, We as I, ne as It, Pe as J, ze as K, Ve as L, d as Lt, ct as M, f as Mt, $e as N, re as Nt, it as O, ee as Ot, et as P, _e as Pt, Ne as Q, K as R, r as Rt, st as S, ce as St, Q as T, de as Tt, V as U, He as V, fe as Vt, Le as W, F as X, P as Y, M as Z, dt as _, ie as _t, St as a, b as at, tt as b, a as bt, ft as c, S as ct, ht as d, ye as dt, j as et, Ye as f, be as ft, qe as g, pe as gt, Ke as h, o as ht, xt as i, Te as it, Je as j, le as jt, Y as k, te as kt, mt as l, xe as lt, Qe as m, m as mt, Ct as n, Ce as nt, bt as o, x as ot, lt as p, ve as pt, Ie as q, Tt as r, we as rt, yt as s, y as st, $ as t, je as tt, pt as u, Se as ut, at as v, oe as vt, Xe as w, l as wt, ot as x, u as xt, nt as y, ue as yt, Ge as z, c as zt };
|