@seedprotocol/query 0.7.5 → 0.7.6-next.957.g6bb7768

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.
@@ -1,18 +1,18 @@
1
- import { a as e, t } from "./types-Dx2hRPNB.js";
1
+ import { a as e, t } from "./types-BgGzWcrW.js";
2
2
  import { BaseArweaveClient as n, isKnownArweaveGatewayHostname as r, readArweaveContentResponse as i } from "@seedprotocol/arweave";
3
3
  import { EasClient as a, GET_SEEDS_LEAN as o, decodeEasNumber as s, getAttestationChangesSince as c, getItemPropertiesFromEas as l, getItemVersionsFromEas as u, getSeedsBySchemaName as d, getSeedsByUidsFromEas as f, isNumericEasType as p, keepAttestationsFromRefAttester as m, pickLatestPropertyAttestationsByRefAndSchema as h, setSchemaUidForSchemaDefinition as g, withExcludeRevokedFilter as _ } from "@seedprotocol/eas";
4
4
  import v from "pluralize";
5
- import { sha256 as ee } from "@noble/hashes/sha256";
6
- import { bytesToHex as te, utf8ToBytes as ne } from "@noble/hashes/utils";
5
+ import { sha256 as y } from "@noble/hashes/sha256";
6
+ import { bytesToHex as ee, utf8ToBytes as te } from "@noble/hashes/utils";
7
7
  //#region src/arweaveUrl.ts
8
- function y(e) {
8
+ function b(e) {
9
9
  return `https://${n.getHost()}/${e}`;
10
10
  }
11
11
  //#endregion
12
12
  //#region src/listRelationKey.ts
13
- var re = /^(.+?)([A-Z][a-zA-Z]+)Ids$/;
14
- function b(e) {
15
- let t = re.exec(e);
13
+ var ne = /^(.+?)([A-Z][a-zA-Z]+)Ids$/;
14
+ function x(e) {
15
+ let t = ne.exec(e);
16
16
  if (t) {
17
17
  let e = t[1];
18
18
  if (e) return v(e);
@@ -27,10 +27,10 @@ function b(e) {
27
27
  }
28
28
  return e;
29
29
  }
30
- function x(e, t) {
31
- for (let n of Object.keys(e)) n !== t && b(n) === t && delete e[n];
30
+ function re(e, t) {
31
+ for (let n of Object.keys(e)) n !== t && x(n) === t && delete e[n];
32
32
  }
33
- function ie(e) {
33
+ function S(e) {
34
34
  if (Array.isArray(e) || typeof e != "string") return e;
35
35
  let t = e.trim();
36
36
  if (!t.startsWith("[")) return e;
@@ -42,57 +42,57 @@ function ie(e) {
42
42
  }
43
43
  //#endregion
44
44
  //#region src/imageRelationEnrichment.ts
45
- function S(e) {
45
+ function C(e) {
46
46
  let t = e.storageTransactionId ?? e.storage_transaction_id;
47
47
  if (t && typeof t == "string" && t.trim()) try {
48
- e.arweaveUrl = y(t.trim());
48
+ e.arweaveUrl = b(t.trim());
49
49
  } catch {}
50
50
  }
51
- var ae = S, C = /* @__PURE__ */ new Set([
51
+ var ie = C, w = /* @__PURE__ */ new Set([
52
52
  "html",
53
53
  "file",
54
54
  "json"
55
- ]), oe = C, se = "_feedFieldStorageModels", ce = "_feedListElementStorageModels";
56
- function w(e) {
55
+ ]), ae = w, oe = "_feedFieldStorageModels", se = "_feedListElementStorageModels";
56
+ function T(e) {
57
57
  return e.trim().toLowerCase();
58
58
  }
59
- function T(e) {
60
- return C.has(w(e));
59
+ function E(e) {
60
+ return w.has(T(e));
61
61
  }
62
- var le = T;
63
- function ue(e) {
64
- let t = w(e);
62
+ var ce = E;
63
+ function le(e) {
64
+ let t = T(e);
65
65
  return t === "html" ? 0 : t === "file" ? 1 : t === "json" ? 2 : 99;
66
66
  }
67
- var de = ue;
68
- function E(e) {
69
- let t = e[se];
67
+ var ue = le;
68
+ function D(e) {
69
+ let t = e[oe];
70
70
  if (typeof t == "object" && t && !Array.isArray(t)) return t;
71
71
  }
72
- var fe = E;
73
- function D(e) {
74
- let t = e[ce];
72
+ var de = D;
73
+ function O(e) {
74
+ let t = e[se];
75
75
  if (typeof t == "object" && t && !Array.isArray(t)) return t;
76
76
  }
77
- var pe = D;
78
- function O(e, t, n) {
79
- let r = w(n), i = E(e);
80
- i || (i = {}, e[se] = i), i[t] = r;
77
+ var fe = O;
78
+ function k(e, t, n) {
79
+ let r = T(n), i = D(e);
80
+ i || (i = {}, e[oe] = i), i[t] = r;
81
81
  }
82
- var me = O;
83
- function he(e, t, n) {
84
- let r = D(e);
85
- r || (r = {}, e[ce] = r), r[t] = n.map(w);
82
+ var pe = k;
83
+ function me(e, t, n) {
84
+ let r = O(e);
85
+ r || (r = {}, e[se] = r), r[t] = n.map(T);
86
86
  }
87
- var ge = he, _e = [
87
+ var he = me, ge = [
88
88
  "html",
89
89
  "Html",
90
90
  "body",
91
91
  "Body",
92
92
  "content",
93
93
  "Content"
94
- ], ve = 8e6;
95
- function ye(e) {
94
+ ], _e = 8e6;
95
+ function ve(e) {
96
96
  let t = e.trim();
97
97
  if (!t.startsWith("http://") && !t.startsWith("https://")) return !1;
98
98
  try {
@@ -106,7 +106,7 @@ function ye(e) {
106
106
  return !1;
107
107
  }
108
108
  }
109
- async function be(e, t) {
109
+ async function ye(e, t) {
110
110
  try {
111
111
  let n = await fetch(e, {
112
112
  headers: { Accept: "text/html, text/plain, text/markdown, application/json, */*" },
@@ -116,37 +116,37 @@ async function be(e, t) {
116
116
  let r = n.headers.get("content-type") ?? "";
117
117
  if (/^(image|video|audio)\//i.test(r)) return null;
118
118
  let { bytes: a } = await i(n, { transactionId: t });
119
- if (a.byteLength > ve) return null;
119
+ if (a.byteLength > _e) return null;
120
120
  let o = new TextDecoder("utf-8", { fatal: !1 }).decode(a);
121
121
  return o.length === 0 || o.includes("\0") ? null : o;
122
122
  } catch {
123
123
  return null;
124
124
  }
125
125
  }
126
- var xe = 32e6, k = /* @__PURE__ */ new Map(), A = 0, j = /* @__PURE__ */ new Map();
127
- function Se() {
128
- k.clear(), A = 0, j.clear();
126
+ var be = 32e6, A = /* @__PURE__ */ new Map(), j = 0, M = /* @__PURE__ */ new Map();
127
+ function xe() {
128
+ A.clear(), j = 0, M.clear();
129
129
  }
130
- function Ce(e, t) {
131
- if (!(t.length > xe)) {
132
- k.set(e, t), A += t.length;
133
- for (let [e, t] of k) {
134
- if (A <= xe) break;
135
- k.delete(e), A -= t.length;
130
+ function Se(e, t) {
131
+ if (!(t.length > be)) {
132
+ A.set(e, t), j += t.length;
133
+ for (let [e, t] of A) {
134
+ if (j <= be) break;
135
+ A.delete(e), j -= t.length;
136
136
  }
137
137
  }
138
138
  }
139
- async function we(e) {
140
- let t = new URL(e.trim()).pathname.replace(/^\//, ""), n = k.get(t);
141
- if (n !== void 0) return k.delete(t), k.set(t, n), n;
142
- let r = j.get(t);
139
+ async function Ce(e) {
140
+ let t = new URL(e.trim()).pathname.replace(/^\//, ""), n = A.get(t);
141
+ if (n !== void 0) return A.delete(t), A.set(t, n), n;
142
+ let r = M.get(t);
143
143
  if (r) return r;
144
- let i = be(e, t).then((e) => (e !== null && j.get(t) === i && Ce(t, e), e)).finally(() => {
145
- j.get(t) === i && j.delete(t);
144
+ let i = ye(e, t).then((e) => (e !== null && M.get(t) === i && Se(t, e), e)).finally(() => {
145
+ M.get(t) === i && M.delete(t);
146
146
  });
147
- return j.set(t, i), i;
147
+ return M.set(t, i), i;
148
148
  }
149
- async function Te(e, t, n) {
149
+ async function we(e, t, n) {
150
150
  if (n) try {
151
151
  let r = await n({
152
152
  propertyName: e,
@@ -154,48 +154,48 @@ async function Te(e, t, n) {
154
154
  });
155
155
  if (r != null && r.length > 0) return r;
156
156
  } catch {}
157
- return ye(t) ? we(t) : null;
157
+ return ve(t) ? Ce(t) : null;
158
158
  }
159
- var Ee = 8;
160
- async function De(e, t) {
159
+ var Te = 8;
160
+ async function Ee(e, t) {
161
161
  let n = 0;
162
162
  await Promise.all(Array.from({ length: Math.min(t, e.length) }, async () => {
163
163
  for (; n < e.length;) await e[n++]();
164
164
  }));
165
165
  }
166
- async function Oe(e, t) {
166
+ async function N(e, t) {
167
167
  let n = t?.readStorageBody, r = [];
168
168
  for (let t of e) {
169
- let e = /* @__PURE__ */ new Set([..._e]), i = E(t);
170
- if (i) for (let [t, n] of Object.entries(i)) T(n) && e.add(t);
169
+ let e = /* @__PURE__ */ new Set([...ge]), i = D(t);
170
+ if (i) for (let [t, n] of Object.entries(i)) E(n) && e.add(t);
171
171
  for (let i of e) {
172
172
  let e = t[i];
173
173
  typeof e == "string" && e.trim() !== "" && r.push(async () => {
174
- let r = await Te(i, e, n);
174
+ let r = await we(i, e, n);
175
175
  r !== null && (t[i] = r);
176
176
  });
177
177
  }
178
- let a = D(t);
178
+ let a = O(t);
179
179
  if (a) for (let [e, i] of Object.entries(a)) {
180
180
  let a = t[e];
181
181
  if (!Array.isArray(a)) continue;
182
182
  let o = Math.min(i.length, a.length);
183
183
  for (let t = 0; t < o; t++) {
184
- if (!T(i[t])) continue;
184
+ if (!E(i[t])) continue;
185
185
  let o = a[t];
186
186
  typeof o == "string" && r.push(async () => {
187
- let r = await Te(e, o, n);
187
+ let r = await we(e, o, n);
188
188
  r !== null && (a[t] = r);
189
189
  });
190
190
  }
191
191
  }
192
192
  }
193
- await De(r, Ee);
193
+ await Ee(r, Te);
194
194
  }
195
- var ke = Oe;
195
+ var De = N;
196
196
  //#endregion
197
197
  //#region src/parseEasPropertyMetadata.ts
198
- function M(e) {
198
+ function P(e) {
199
199
  let t = typeof e == "string" ? e.trim() : "";
200
200
  if (!t) return {
201
201
  ok: !1,
@@ -219,10 +219,10 @@ function M(e) {
219
219
  metadata: n[0].value
220
220
  };
221
221
  }
222
- var Ae = M;
222
+ var Oe = P;
223
223
  //#endregion
224
224
  //#region src/parseEasRelationPropertyName.ts
225
- function je(e) {
225
+ function F(e) {
226
226
  let [t, n, r] = e.split("_");
227
227
  if (!t || !n) return null;
228
228
  let i = r === "ids";
@@ -234,14 +234,14 @@ function je(e) {
234
234
  }
235
235
  //#endregion
236
236
  //#region src/source/remote.ts
237
- function Me(e, t) {
237
+ function ke(e, t) {
238
238
  let n = new Date(e, t - 1, 1), r = new Date(e, t, 0, 23, 59, 59);
239
239
  return {
240
240
  startTs: Math.floor(n.getTime() / 1e3),
241
241
  endTs: Math.floor(r.getTime() / 1e3) + 1
242
242
  };
243
243
  }
244
- function Ne() {
244
+ function Ae() {
245
245
  return {
246
246
  kind: "remote",
247
247
  async getSeedByUid(e) {
@@ -255,7 +255,7 @@ function Ne() {
255
255
  return await d(e, n.limit, n.skip, { uidPrefix: t });
256
256
  },
257
257
  async listSeedsBySchemaNameForMonth(e, t, n) {
258
- let { startTs: r, endTs: i } = Me(t, n), s = _({ AND: [{ schema: { is: { schemaNames: { some: { name: { equals: e } } } } } }, { timeCreated: {
258
+ let { startTs: r, endTs: i } = ke(t, n), s = _({ AND: [{ schema: { is: { schemaNames: { some: { name: { equals: e } } } } } }, { timeCreated: {
259
259
  gte: r,
260
260
  lt: i
261
261
  } }] }), { itemSeeds: c } = await a.getEasClient().request(o, {
@@ -288,13 +288,13 @@ function Ne() {
288
288
  }
289
289
  };
290
290
  }
291
- var Pe = null;
292
- function N() {
293
- return Pe ||= Ne(), Pe;
291
+ var je = null;
292
+ function I() {
293
+ return je ||= Ae(), je;
294
294
  }
295
295
  //#endregion
296
296
  //#region src/assembleSeeds.ts
297
- var P = "image", F = ["0x0000000000000000000000000000000000000000000000000000000000000020"], Fe = /* @__PURE__ */ new Set([
297
+ var L = "image", R = ["0x0000000000000000000000000000000000000000000000000000000000000020"], Me = /* @__PURE__ */ new Set([
298
298
  "seedUid",
299
299
  "SeedUid",
300
300
  "timeCreated",
@@ -305,8 +305,8 @@ var P = "image", F = ["0x0000000000000000000000000000000000000000000000000000000
305
305
  "storageTransactionId",
306
306
  "storageProviderTransactionId",
307
307
  "versionUid"
308
- ]), I = (e) => e.replace(/_([a-z])/g, (e, t) => t.toUpperCase());
309
- function Ie() {
308
+ ]), z = (e) => e.replace(/_([a-z])/g, (e, t) => t.toUpperCase());
309
+ function Ne() {
310
310
  return {
311
311
  seedUidToModelType: /* @__PURE__ */ new Map(),
312
312
  relatedSeedUids: /* @__PURE__ */ new Set(),
@@ -315,21 +315,30 @@ function Ie() {
315
315
  assembledItems: /* @__PURE__ */ new Map(),
316
316
  versionsBySeedUid: /* @__PURE__ */ new Map(),
317
317
  latestVersionUidsBySeedUid: /* @__PURE__ */ new Map(),
318
- droppedSeedUids: /* @__PURE__ */ new Set()
318
+ droppedSeedUids: /* @__PURE__ */ new Set(),
319
+ requestedSeedUids: /* @__PURE__ */ new Set()
319
320
  };
320
321
  }
321
- function L(e, t) {
322
+ function B(e) {
323
+ let t = [];
324
+ for (let n of e.requestedSeedUids) {
325
+ let r = e.assembledItems.get(n);
326
+ r && t.push([n, r]);
327
+ }
328
+ return t;
329
+ }
330
+ function V(e, t) {
322
331
  !e.seedUid && !e.SeedUid ? (e.seedUid = t, e.SeedUid = t) : e.seedUid && !e.SeedUid ? e.SeedUid = e.seedUid : e.SeedUid && !e.seedUid && (e.seedUid = e.SeedUid), e.attester && !e.Attester ? e.Attester = e.attester : e.Attester && !e.attester && (e.attester = e.Attester);
323
332
  }
324
- function Le(e, t, n) {
333
+ function Pe(e, t, n) {
325
334
  e.relatedSeedUids.add(n);
326
335
  let r = e.versionUidToSeedUid.get(t.refUID);
327
336
  if (!r) return;
328
337
  let i = e.relatedSeedUidsBySeedUid.get(r) ?? /* @__PURE__ */ new Set();
329
338
  i.add(n), e.relatedSeedUidsBySeedUid.set(r, i);
330
339
  }
331
- async function Re(e, t) {
332
- let n = M(t.decodedDataJson);
340
+ async function Fe(e, t) {
341
+ let n = P(t.decodedDataJson);
333
342
  if (!n.ok) {
334
343
  let { id: e, refUID: r, schemaId: i } = t;
335
344
  n.reason === "empty" ? console.warn("[query] [processItemProperty] empty decodedDataJson for property:", e, r, i) : n.reason === "parse" ? console.warn("[query] [processItemProperty] failed to parse decodedDataJson for property:", e, r, i, n.error) : console.warn("[query] [processItemProperty] invalid decodedDataJson structure for property:", e, r, i);
@@ -346,13 +355,13 @@ async function Re(e, t) {
346
355
  if (u || d) {
347
356
  if (o = !0, Array.isArray(r.value)) {
348
357
  if (c = !0, d) {
349
- let e = je(i);
358
+ let e = F(i);
350
359
  e && (i = e.propertyName);
351
360
  }
352
361
  r.value.forEach((n) => {
353
- F.includes(n) || Le(e, t, n);
362
+ R.includes(n) || Pe(e, t, n);
354
363
  });
355
- } else F.includes(r.value) || Le(e, t, r.value);
364
+ } else R.includes(r.value) || Pe(e, t, r.value);
356
365
  }
357
366
  let f = r.value;
358
367
  o && c && Array.isArray(f) ? f = f.map((e) => String(e)) : typeof f != "string" && (f = (p(l) ? s(f) : void 0) ?? JSON.stringify(f));
@@ -360,10 +369,21 @@ async function Re(e, t) {
360
369
  if (!m) return;
361
370
  let h = e.assembledItems.get(m) || {};
362
371
  h[i] = f;
363
- let _ = I(i);
372
+ let _ = z(i);
364
373
  _ !== i && (h[_] = f), e.assembledItems.set(m, h);
365
374
  }
366
- async function ze(e, t, n, r = {}) {
375
+ function Ie(e) {
376
+ let t = /* @__PURE__ */ new Map();
377
+ for (let [n, r] of e) (r.versionUid !== void 0 || r.asOf !== void 0) && t.set(n.toLowerCase(), r);
378
+ return t;
379
+ }
380
+ function Le(e, t) {
381
+ let n = t.asOf, r = n === void 0 ? e : e.filter((e) => e.timeCreated <= n);
382
+ if (t.versionUid === void 0) return [...r].sort((e, t) => t.timeCreated - e.timeCreated)[0];
383
+ let i = t.versionUid.toLowerCase();
384
+ return r.find((e) => e.id.toLowerCase() === i);
385
+ }
386
+ async function Re(e, t, n, r = {}) {
367
387
  let i = [];
368
388
  for (let n = 0; n < t.length; n++) {
369
389
  let r = t[n];
@@ -391,66 +411,74 @@ async function ze(e, t, n, r = {}) {
391
411
  let i = e.versionsBySeedUid.get(r) || [];
392
412
  e.versionsBySeedUid.set(r, [...i, n]);
393
413
  }
394
- let l = [];
414
+ let l = [], u = /* @__PURE__ */ new Map();
415
+ for (let t of i) {
416
+ let n = r.pins?.get(t.toLowerCase());
417
+ if (!n) continue;
418
+ let i = Le(e.versionsBySeedUid.get(t) ?? [], n);
419
+ i ? (l.push(i.id), e.latestVersionUidsBySeedUid.set(t, i.id), n.asOf !== void 0 && u.set(i.id, n.asOf)) : (e.assembledItems.delete(t), e.seedUidToModelType.delete(t), e.versionsBySeedUid.delete(t), e.droppedSeedUids.add(t));
420
+ }
395
421
  for (let [t, n] of e.versionsBySeedUid.entries()) {
396
422
  if (e.latestVersionUidsBySeedUid.has(t)) continue;
397
423
  let r = [...n].sort((e, t) => t.timeCreated - e.timeCreated)[0];
398
424
  r && (l.push(r.id), e.latestVersionUidsBySeedUid.set(t, r.id));
399
425
  }
400
426
  if (l.length === 0) return;
401
- let u = m(await n.getPropertiesForVersionUids(l), c), d = h(u);
402
- for (let t = 0; t < d.length; t++) await Re(e, d[t]);
403
- }
404
- function Be(e, t) {
405
- let n = Array.from(e.assembledItems.entries()).filter(([n]) => e.seedUidToModelType.get(n) === t);
406
- for (let [, t] of n) {
407
- let n = Object.keys(t).filter((e) => !e.startsWith("_") && !Fe.has(e));
427
+ let d = m(await n.getPropertiesForVersionUids(l), c).filter((e) => {
428
+ let t = u.get(e.refUID);
429
+ return t === void 0 || e.timeCreated <= t;
430
+ }), f = h(d);
431
+ for (let t = 0; t < f.length; t++) await Fe(e, f[t]);
432
+ }
433
+ function ze(e) {
434
+ for (let [, t] of B(e)) {
435
+ let n = Object.keys(t).filter((e) => !e.startsWith("_") && !Me.has(e));
408
436
  for (let r of n) {
409
- let n = t[r], i = ie(n);
437
+ let n = t[r], i = S(n);
410
438
  if (i !== n && Array.isArray(i) && (t[r] = i, n = i), Array.isArray(n)) {
411
439
  let i = n;
412
- if (!i.some((t) => typeof t == "string" && !F.includes(t) && e.assembledItems.has(t))) continue;
440
+ if (!i.some((t) => typeof t == "string" && !R.includes(t) && e.assembledItems.has(t))) continue;
413
441
  let a = [], o = [], s = !1;
414
442
  for (let t of i) {
415
- if (typeof t != "string" || F.includes(t)) {
443
+ if (typeof t != "string" || R.includes(t)) {
416
444
  a.push(String(t)), o.push("unknown");
417
445
  continue;
418
446
  }
419
447
  let n = e.seedUidToModelType.get(t) ?? "unknown";
420
- if (n === P) {
421
- a.push(t), o.push(P);
448
+ if (n === L) {
449
+ a.push(t), o.push(L);
422
450
  continue;
423
451
  }
424
452
  let r = e.assembledItems.get(t), i = r?.storageTransactionId ?? r?.storage_transaction_id;
425
453
  if (i && typeof i == "string" && i.trim()) try {
426
- a.push(y(i)), o.push(n), s = !0;
454
+ a.push(b(i)), o.push(n), s = !0;
427
455
  } catch {
428
456
  a.push(t), o.push(n);
429
457
  }
430
458
  else a.push(t), o.push(n);
431
459
  }
432
460
  if (s) {
433
- let e = b(r);
434
- if (t[e] = a, he(t, e, o), x(t, e), e !== r) {
461
+ let e = x(r);
462
+ if (t[e] = a, me(t, e, o), re(t, e), e !== r) {
435
463
  delete t[r];
436
- let e = I(r);
464
+ let e = z(r);
437
465
  e !== r && delete t[e];
438
466
  }
439
467
  }
440
468
  } else if (typeof n == "string") {
441
- if (F.includes(n) || !e.assembledItems.has(n)) continue;
469
+ if (R.includes(n) || !e.assembledItems.has(n)) continue;
442
470
  let i = e.assembledItems.get(n);
443
- if (e.seedUidToModelType.get(n) === P) continue;
471
+ if (e.seedUidToModelType.get(n) === L) continue;
444
472
  let a = i?.storageTransactionId ?? i?.storage_transaction_id;
445
473
  if (a && typeof a == "string" && a.trim()) try {
446
474
  let i = r.endsWith("_id") ? r.replace(/_id$/, "") : r;
447
- t[i] = y(a);
475
+ t[i] = b(a);
448
476
  let o = e.seedUidToModelType.get(n) ?? "unknown";
449
- O(t, i, o);
450
- let s = I(i);
451
- if (s !== i && O(t, s, o), i !== r) {
477
+ k(t, i, o);
478
+ let s = z(i);
479
+ if (s !== i && k(t, s, o), i !== r) {
452
480
  delete t[r];
453
- let e = I(r);
481
+ let e = z(r);
454
482
  e !== r && delete t[e];
455
483
  }
456
484
  } catch {}
@@ -458,17 +486,15 @@ function Be(e, t) {
458
486
  }
459
487
  }
460
488
  }
461
- function Ve(e, t, n) {
462
- if (!n) return;
463
- let r = Array.from(e.assembledItems.entries()).filter(([n]) => e.seedUidToModelType.get(n) === t);
464
- for (let [, t] of r) {
465
- let n = Object.keys(t).filter((e) => !e.startsWith("_") && !Fe.has(e));
489
+ function Be(e, t) {
490
+ if (t) for (let [, t] of B(e)) {
491
+ let n = Object.keys(t).filter((e) => !e.startsWith("_") && !Me.has(e));
466
492
  for (let r of n) {
467
- let n = t[r], i = ie(n);
493
+ let n = t[r], i = S(n);
468
494
  i !== n && Array.isArray(i) && (t[r] = i, n = i);
469
495
  let a = Array.isArray(n), o = a ? n : [n], s = [], c = !1;
470
496
  for (let t of o) {
471
- if (typeof t != "string" || F.includes(t)) {
497
+ if (typeof t != "string" || R.includes(t)) {
472
498
  s.push(t);
473
499
  continue;
474
500
  }
@@ -478,9 +504,9 @@ function Ve(e, t, n) {
478
504
  continue;
479
505
  }
480
506
  let r = n?.storageTransactionId ?? n?.storage_transaction_id;
481
- if (e.seedUidToModelType.get(t) === P) {
507
+ if (e.seedUidToModelType.get(t) === L) {
482
508
  let e = { ...n };
483
- L(e, t), e.schemaName = P, S(e), s.push(e), c = !0;
509
+ V(e, t), e.schemaName = L, C(e), s.push(e), c = !0;
484
510
  continue;
485
511
  }
486
512
  if (r && typeof r == "string" && r.trim()) {
@@ -488,66 +514,74 @@ function Ve(e, t, n) {
488
514
  continue;
489
515
  }
490
516
  let i = { ...n };
491
- L(i, t), s.push(i), c = !0;
517
+ V(i, t), s.push(i), c = !0;
492
518
  }
493
519
  if (c) {
494
- let e = a ? b(r) : r.endsWith("_id") ? r.replace(/_id$/, "") : r;
495
- if (t[e] = a ? s : s[0], x(t, e), e !== r) {
520
+ let e = a ? x(r) : r.endsWith("_id") ? r.replace(/_id$/, "") : r;
521
+ if (t[e] = a ? s : s[0], re(t, e), e !== r) {
496
522
  delete t[r];
497
- let e = I(r);
523
+ let e = z(r);
498
524
  e !== r && delete t[e];
499
525
  }
500
526
  }
501
527
  }
502
528
  }
503
529
  }
504
- function He(e, t) {
505
- return Array.from(e.assembledItems.entries()).filter(([n]) => e.seedUidToModelType.get(n) === t).map(([n, r]) => {
530
+ function Ve(e, t) {
531
+ return B(e).map(([n, r]) => {
506
532
  let i = e.latestVersionUidsBySeedUid.get(n) ?? "";
507
- i && (r.versionUid = i), L(r, n);
508
- let a = typeof r.timeCreated == "number" ? r.timeCreated : 0;
533
+ i && (r.versionUid = i), V(r, n);
534
+ let a = typeof r.timeCreated == "number" ? r.timeCreated : 0, o = typeof r.attester == "string" ? r.attester : typeof r.Attester == "string" ? r.Attester : void 0;
509
535
  return {
510
536
  seedUid: n,
511
- schemaName: t,
512
- attester: typeof r.attester == "string" ? r.attester : typeof r.Attester == "string" ? r.Attester : void 0,
537
+ schemaName: t ?? e.seedUidToModelType.get(n) ?? "unknown",
538
+ attester: o,
513
539
  timeCreated: a,
514
540
  versionUid: i,
515
541
  data: r
516
542
  };
517
543
  });
518
544
  }
519
- function Ue(e, t) {
545
+ function He(e, t) {
520
546
  let n = [t, ...e.relatedSeedUidsBySeedUid.get(t) ?? []], r = n.map((t) => e.latestVersionUidsBySeedUid.get(t)).filter((e) => !!e);
521
547
  return {
522
548
  refUIDs: [...n, ...r],
523
549
  ids: n
524
550
  };
525
551
  }
526
- async function R(e, t, n, r = N(), i) {
527
- let a = n?.expandRelations !== !1, o = n?.hydrateStorage !== !1, s = Ie();
528
- await ze(s, t, r, {
529
- dropSeedsWithOnlyRevokedVersions: !0,
552
+ async function H(e, t, n, r = I(), i) {
553
+ return U(t, n, r, {
554
+ schemaName: e,
530
555
  versions: i?.versions
531
556
  });
532
- let c = Array.from(s.relatedSeedUids).filter((e) => !s.assembledItems.has(e) && !s.droppedSeedUids.has(e));
533
- if (c.length > 0) {
534
- let [e, t] = await Promise.all([r.getSeedsByUids(c), r.getVersionsForSeeds(c, { includeRevoked: !0 })]);
535
- await ze(s, e, r, { versions: t });
536
- }
537
- Be(s, e), Ve(s, e, a);
538
- let l = He(s, e);
539
- return o && await Oe(l.map((e) => e.data), r.readStorageBody ? { readStorageBody: r.readStorageBody.bind(r) } : void 0), {
540
- records: l,
541
- dependencies: new Map(l.map((e) => [e.seedUid, Ue(s, e.seedUid)]))
557
+ }
558
+ async function U(e, t, n, r = {}) {
559
+ let i = t?.expandRelations !== !1, a = t?.hydrateStorage !== !1, o = Ne();
560
+ for (let t of e) t && o.requestedSeedUids.add(t.id);
561
+ await Re(o, e, n, {
562
+ dropSeedsWithOnlyRevokedVersions: !0,
563
+ versions: r.versions,
564
+ pins: r.pins && Ie(r.pins)
565
+ });
566
+ let s = Array.from(o.relatedSeedUids).filter((e) => !o.assembledItems.has(e) && !o.droppedSeedUids.has(e));
567
+ if (s.length > 0) {
568
+ let [e, t] = await Promise.all([n.getSeedsByUids(s), n.getVersionsForSeeds(s, { includeRevoked: !0 })]);
569
+ await Re(o, e, n, { versions: t });
570
+ }
571
+ ze(o), Be(o, i);
572
+ let c = Ve(o, r.schemaName);
573
+ return a && await N(c.map((e) => e.data), n.readStorageBody ? { readStorageBody: n.readStorageBody.bind(n) } : void 0), {
574
+ records: c,
575
+ dependencies: new Map(c.map((e) => [e.seedUid, He(o, e.seedUid)]))
542
576
  };
543
577
  }
544
- async function We(e, t, n, r = N()) {
545
- return (await R(e, t, n, r)).records;
578
+ async function Ue(e, t, n, r = I()) {
579
+ return (await H(e, t, n, r)).records;
546
580
  }
547
581
  //#endregion
548
582
  //#region src/changelog.ts
549
- var Ge = (e) => e.replace(/_([a-z])/g, (e, t) => t.toUpperCase());
550
- function z(e, t) {
583
+ var We = (e) => e.replace(/_([a-z])/g, (e, t) => t.toUpperCase());
584
+ function Ge(e, t) {
551
585
  if (Object.is(e, t)) return !0;
552
586
  if (e === void 0 || t === void 0) return !1;
553
587
  if (e === null || t === null) return e === t;
@@ -558,38 +592,38 @@ function z(e, t) {
558
592
  return !1;
559
593
  }
560
594
  }
561
- function B(e) {
562
- let t = M(e.decodedDataJson);
595
+ function Ke(e) {
596
+ let t = P(e.decodedDataJson);
563
597
  if (!t.ok) return null;
564
598
  let n = t.metadata, r = n.name;
565
599
  if (!r) return null;
566
600
  let i = n.type, a = (i === "bytes32" || i === "bytes32[]") && r !== "storage_transaction_id" && r !== "storage_provider_transaction_id", o = !a && (r.endsWith("_id") || r.endsWith("_ids")) && r !== "storage_transaction_id" && r !== "storage_provider_transaction_id", c = !1, l = !1;
567
601
  if ((a || o) && (c = !0, Array.isArray(n.value) && (l = !0, o))) {
568
- let e = je(r);
602
+ let e = F(r);
569
603
  e?.isList && (r = e.propertyName);
570
604
  }
571
605
  let u = n.value;
572
606
  c && l && Array.isArray(u) ? u = u.map((e) => String(e)) : typeof u != "string" && (u = (p(i) ? s(u) : void 0) ?? JSON.stringify(u));
573
- let d = Ge(r);
607
+ let d = We(r);
574
608
  return {
575
609
  propertyName: r,
576
610
  value: u,
577
611
  camelName: d === r ? void 0 : d
578
612
  };
579
613
  }
580
- function Ke(e) {
614
+ function qe(e) {
581
615
  let t = {};
582
616
  for (let n of e) {
583
- let e = B(n);
617
+ let e = Ke(n);
584
618
  e && (t[e.propertyName] = e.value, e.camelName && (t[e.camelName] = e.value));
585
619
  }
586
620
  return t;
587
621
  }
588
- function qe(e) {
622
+ function Je(e) {
589
623
  let t = [], n = {};
590
624
  for (let r of e) {
591
625
  let e = r.data, i = /* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(e)]), a = [];
592
- for (let t of i) z(n[t], e[t]) || a.push(t);
626
+ for (let t of i) Ge(n[t], e[t]) || a.push(t);
593
627
  a.sort(), t.push({
594
628
  type: "version",
595
629
  at: r.at,
@@ -601,15 +635,15 @@ function qe(e) {
601
635
  }
602
636
  return t;
603
637
  }
604
- function Je(e) {
638
+ function Ye(e) {
605
639
  let t = [...e].sort((e, t) => e.timeCreated === t.timeCreated ? e.id.localeCompare(t.id) : e.timeCreated - t.timeCreated), n = /* @__PURE__ */ new Map(), r = [];
606
640
  for (let e of t) {
607
- let t = B(e);
641
+ let t = Ke(e);
608
642
  if (!t) continue;
609
643
  let i = [t.propertyName];
610
644
  t.camelName && i.push(t.camelName);
611
645
  let a = n.has(t.propertyName) ? n.get(t.propertyName) : void 0, o = t.value;
612
- z(a, o) || r.push({
646
+ Ge(a, o) || r.push({
613
647
  type: "property",
614
648
  at: e.timeCreated,
615
649
  versionUid: e.refUID,
@@ -621,7 +655,7 @@ function Je(e) {
621
655
  }
622
656
  return r;
623
657
  }
624
- function Ye(e, t) {
658
+ function Xe(e, t) {
625
659
  let n = e;
626
660
  if (typeof t?.since == "number") {
627
661
  let e = t.since;
@@ -631,14 +665,14 @@ function Ye(e, t) {
631
665
  }
632
666
  //#endregion
633
667
  //#region src/assembleChangelog.ts
634
- async function Xe(e, t, n = N()) {
668
+ async function Ze(e, t, n = I()) {
635
669
  let r = t?.changelog ?? {}, i = r.granularity ?? "version", [a, o] = await Promise.all([n.getSeedByUid(e), n.getVersionsForSeed(e)]), s = [...m(o, a ? [a] : [])].sort((e, t) => e.timeCreated - t.timeCreated);
636
670
  if (s.length === 0) return {
637
671
  latestVersionUid: "",
638
672
  changelog: []
639
673
  };
640
674
  let c = s[s.length - 1].id, l = s.map((e) => e.id), u = m(await n.getPropertiesForVersionUids(l), s), d;
641
- if (i === "property") d = Je(u);
675
+ if (i === "property") d = Ye(u);
642
676
  else {
643
677
  let e = /* @__PURE__ */ new Map();
644
678
  for (let t of u) {
@@ -651,40 +685,40 @@ async function Xe(e, t, n = N()) {
651
685
  t.push({
652
686
  versionUid: n.id,
653
687
  at: n.timeCreated,
654
- data: Ke(i)
688
+ data: qe(i)
655
689
  });
656
690
  }
657
- d = qe(t);
691
+ d = Je(t);
658
692
  }
659
693
  return {
660
694
  latestVersionUid: c,
661
- changelog: Ye(d, r)
695
+ changelog: Xe(d, r)
662
696
  };
663
697
  }
664
698
  //#endregion
665
699
  //#region src/cache/etag.ts
666
- function Ze(e) {
667
- return `"${te(ee(ne(e))).substring(0, 16)}"`;
700
+ function Qe(e) {
701
+ return `"${ee(y(te(e))).substring(0, 16)}"`;
668
702
  }
669
- function Qe(e, t, n) {
670
- return Ze(`${e}-${t}-${n.join(",")}`);
703
+ function $e(e, t, n) {
704
+ return Qe(`${e}-${t}-${n.join(",")}`);
671
705
  }
672
- function $e(e, t) {
673
- return Ze(`${t}-${et(e)}`);
706
+ function et(e, t) {
707
+ return Qe(`${t}-${tt(e)}`);
674
708
  }
675
- function et(e) {
709
+ function tt(e) {
676
710
  return JSON.stringify(e, (e, t) => t && typeof t == "object" && !Array.isArray(t) ? Object.fromEntries(Object.keys(t).sort().map((e) => [e, t[e]])) : t);
677
711
  }
678
712
  //#endregion
679
713
  //#region src/cache/config.ts
680
- function tt() {
714
+ function nt() {
681
715
  return globalThis.process?.env ?? {};
682
716
  }
683
- function nt() {
684
- return tt().NODE_ENV !== "production";
717
+ function rt() {
718
+ return nt().NODE_ENV !== "production";
685
719
  }
686
- function V() {
687
- let e = tt(), t = parseInt(e.CACHE_TTL || "3600", 10), n = e.CACHE_DIR || "./cache", r = e.CACHE_ENABLED === "false" || e.CACHE_ENABLED === "0" || e.CACHE_ENABLED === "no" || e.CACHE_ENABLED === "off", i = e.CACHE_ENABLED === "true" || e.CACHE_ENABLED === "1" || e.CACHE_ENABLED === "yes", a = e.NODE_ENV === "development", o;
720
+ function it() {
721
+ let e = nt(), t = parseInt(e.CACHE_TTL || "3600", 10), n = e.CACHE_DIR || "./cache", r = e.CACHE_ENABLED === "false" || e.CACHE_ENABLED === "0" || e.CACHE_ENABLED === "no" || e.CACHE_ENABLED === "off", i = e.CACHE_ENABLED === "true" || e.CACHE_ENABLED === "1" || e.CACHE_ENABLED === "yes", a = e.NODE_ENV === "development", o;
688
722
  o = r ? !1 : i ? !0 : !a;
689
723
  let s = e.CACHE_BACKGROUND_REFRESH === "true", c = parseInt(e.CACHE_REFRESH_INTERVAL || "300", 10);
690
724
  return {
@@ -693,19 +727,19 @@ function V() {
693
727
  enabled: o,
694
728
  backgroundRefresh: s,
695
729
  refreshInterval: c,
696
- freezeRecords: nt()
730
+ freezeRecords: rt()
697
731
  };
698
732
  }
699
733
  //#endregion
700
734
  //#region src/cache/freeze.ts
701
- function H(e) {
735
+ function at(e) {
702
736
  if (typeof e != "object" || !e || Object.isFrozen(e) || ArrayBuffer.isView(e)) return e;
703
- for (let t of Object.values(e)) H(t);
737
+ for (let t of Object.values(e)) at(t);
704
738
  return Object.freeze(e);
705
739
  }
706
740
  //#endregion
707
741
  //#region src/cache/MemoryCache.ts
708
- var rt = class {
742
+ var ot = class {
709
743
  collectionCache = /* @__PURE__ */ new Map();
710
744
  itemCache = /* @__PURE__ */ new Map();
711
745
  config;
@@ -720,7 +754,7 @@ var rt = class {
720
754
  return `${e}:${t}`;
721
755
  }
722
756
  get freezeRecords() {
723
- return this.config.freezeRecords ?? nt();
757
+ return this.config.freezeRecords ?? rt();
724
758
  }
725
759
  expired(e) {
726
760
  return Math.floor(Date.now() / 1e3) - e > this.config.ttl;
@@ -730,7 +764,7 @@ var rt = class {
730
764
  return r ? this.expired(r.lastUpdated) ? (this.collectionCache.delete(n), null) : r : null;
731
765
  }
732
766
  setCollection(e, t, n) {
733
- if (this.freezeRecords) for (let e of n.items) H(e);
767
+ if (this.freezeRecords) for (let e of n.items) at(e);
734
768
  this.collectionCache.set(this.collectionKey(e, t), n);
735
769
  }
736
770
  getItem(e, t) {
@@ -738,7 +772,7 @@ var rt = class {
738
772
  return r ? this.expired(r.lastUpdated) ? (this.itemCache.delete(n), null) : r : null;
739
773
  }
740
774
  setItem(e) {
741
- this.freezeRecords && H(e.record), this.itemCache.set(this.itemKey(e.record.seedUid, e.optionsKey), e);
775
+ this.freezeRecords && at(e.record), this.itemCache.set(this.itemKey(e.record.seedUid, e.optionsKey), e);
742
776
  }
743
777
  clearCollection(e) {
744
778
  for (let t of this.collectionCache.keys()) t.startsWith(`${e}\n`) && this.collectionCache.delete(t);
@@ -775,19 +809,19 @@ var rt = class {
775
809
  activeLocks: this.refreshLocks.size
776
810
  };
777
811
  }
778
- }, it = () => null;
779
- function at(e) {
780
- it = e;
812
+ }, st = () => null;
813
+ function ct(e) {
814
+ st = e;
781
815
  }
782
- function ot(e) {
816
+ function lt(e) {
783
817
  let t = e;
784
818
  return !!t && Array.isArray(t.items) && typeof t.meta == "object" && t.meta !== null && typeof t.checkedAt == "number" && Array.isArray(t.seenChangeKeys);
785
819
  }
786
- function st(e) {
820
+ function ut(e) {
787
821
  let t = e;
788
822
  return !!t && !!t.record && !!t.dependencies && typeof t.checkedAt == "number" && Array.isArray(t.seenChangeKeys);
789
823
  }
790
- var U = class {
824
+ var dt = class {
791
825
  memoryCache;
792
826
  persistent;
793
827
  config;
@@ -798,7 +832,7 @@ var U = class {
798
832
  errors: 0
799
833
  };
800
834
  constructor(e, t) {
801
- this.config = e, this.memoryCache = new rt(e), this.persistent = t === void 0 ? it(e) : t;
835
+ this.config = e, this.memoryCache = new ot(e), this.persistent = t === void 0 ? st(e) : t;
802
836
  }
803
837
  get enabled() {
804
838
  return this.config.enabled;
@@ -812,7 +846,7 @@ var U = class {
812
846
  let n = this.memoryCache.getCollection(e, t);
813
847
  if (n) return this.stats.hits++, n;
814
848
  let r = await this.persistent?.getCollection(e, t) ?? null;
815
- return ot(r) ? (this.memoryCache.setCollection(e, t, r), this.stats.hits++, r) : (this.stats.misses++, null);
849
+ return lt(r) ? (this.memoryCache.setCollection(e, t, r), this.stats.hits++, r) : (this.stats.misses++, null);
816
850
  } catch (t) {
817
851
  return console.error(`Error getting query collection cache for ${e}:`, t), this.stats.errors++, null;
818
852
  }
@@ -823,7 +857,7 @@ var U = class {
823
857
  let r = n.items.map((e) => ({
824
858
  ...e,
825
859
  data: { ...e.data }
826
- })), i = Qe(e, t, r.map((e) => $e(e, t))), a = {
860
+ })), i = $e(e, t, r.map((e) => et(e, t))), a = {
827
861
  ...n,
828
862
  items: r,
829
863
  etag: i
@@ -839,7 +873,7 @@ var U = class {
839
873
  let n = this.memoryCache.getItem(e, t);
840
874
  if (n) return this.stats.hits++, n;
841
875
  let r = await this.persistent?.getItem(e, t) ?? null;
842
- return st(r) ? (this.memoryCache.setItem(r), this.stats.hits++, r) : (this.stats.misses++, null);
876
+ return ut(r) ? (this.memoryCache.setItem(r), this.stats.hits++, r) : (this.stats.misses++, null);
843
877
  } catch (t) {
844
878
  return console.error(`Error getting query item cache for ${e}:`, t), this.stats.errors++, null;
845
879
  }
@@ -854,7 +888,7 @@ var U = class {
854
888
  }, n = {
855
889
  ...e,
856
890
  record: t,
857
- etag: $e(t, e.optionsKey)
891
+ etag: et(t, e.optionsKey)
858
892
  };
859
893
  return this.memoryCache.setItem(n), await this.persistent?.setItem(n), n;
860
894
  } catch (t) {
@@ -899,30 +933,30 @@ var U = class {
899
933
  errors: 0
900
934
  };
901
935
  }
902
- }, W = null;
903
- function G() {
904
- return W ||= new U(V()), W;
936
+ }, ft = null;
937
+ function W() {
938
+ return ft ||= new dt(it()), ft;
905
939
  }
906
- function ct() {
907
- W = null;
940
+ function pt() {
941
+ ft = null;
908
942
  }
909
- function lt(e, t) {
910
- return new U({
911
- ...V(),
943
+ function mt(e, t) {
944
+ return new dt({
945
+ ...it(),
912
946
  ...e
913
947
  }, t);
914
948
  }
915
- function K() {
949
+ function G() {
916
950
  return Math.floor(Date.now() / 1e3);
917
951
  }
918
- function q(e) {
952
+ function K(e) {
919
953
  return e - 600;
920
954
  }
921
- function ut(e, t) {
922
- return q(t) - e.checkedAt > 600;
955
+ function ht(e, t) {
956
+ return K(t) - e.checkedAt > 600;
923
957
  }
924
- var dt = (e) => `${e.id}:${e.revocationTime}`;
925
- async function ft(e, t, n) {
958
+ var q = (e) => `${e.id}:${e.revocationTime}`;
959
+ async function gt(e, t, n) {
926
960
  if (!e.listChangesSince) return null;
927
961
  if (t.size === 0) return {
928
962
  changed: /* @__PURE__ */ new Set(),
@@ -941,29 +975,57 @@ async function ft(e, t, n) {
941
975
  ids: [...i.keys()],
942
976
  since: n.checkedAt
943
977
  }), s = new Set(n.seenChangeKeys), c = /* @__PURE__ */ new Set();
944
- for (let e of o) if (!s.has(dt(e))) {
978
+ for (let e of o) if (!s.has(q(e))) {
945
979
  for (let t of r.get(e.refUID) ?? []) c.add(t);
946
980
  for (let t of i.get(e.id) ?? []) c.add(t);
947
981
  }
948
982
  return {
949
983
  changed: c,
950
- seenChangeKeys: o.map(dt)
984
+ seenChangeKeys: o.map(q)
985
+ };
986
+ }
987
+ async function _t(e, t) {
988
+ if (!e.listChangesSince) return null;
989
+ let n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Map();
990
+ if (t.size === 0) return {
991
+ changed: n,
992
+ seenChangeKeys: r
993
+ };
994
+ let i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = Infinity;
995
+ for (let e of t.values()) {
996
+ for (let t of e.dependencies.refUIDs) i.add(t);
997
+ for (let t of e.dependencies.ids) a.add(t);
998
+ o = Math.min(o, e.checkedAt);
999
+ }
1000
+ let s = await e.listChangesSince({
1001
+ refUIDs: [...i],
1002
+ ids: [...a],
1003
+ since: o
1004
+ });
1005
+ for (let [e, i] of t) {
1006
+ let t = new Set(i.dependencies.refUIDs), a = new Set(i.dependencies.ids), o = new Set(i.seenChangeKeys), c = [];
1007
+ for (let r of s) r.timeCreated <= i.checkedAt && r.revocationTime <= i.checkedAt || (t.has(r.refUID) || a.has(r.id)) && (c.push(q(r)), o.has(q(r)) || n.add(e));
1008
+ r.set(e, c);
1009
+ }
1010
+ return {
1011
+ changed: n,
1012
+ seenChangeKeys: r
951
1013
  };
952
1014
  }
953
1015
  //#endregion
954
1016
  //#region src/source/registry.ts
955
1017
  var J = null;
956
- function pt(e) {
1018
+ function vt(e) {
957
1019
  if (e.kind !== "local") throw Error("[query] registerLocalQuerySource expects a source with kind: \"local\"");
958
1020
  J = e;
959
1021
  }
960
- function mt() {
1022
+ function yt() {
961
1023
  J = null;
962
1024
  }
963
- function ht() {
1025
+ function bt() {
964
1026
  return J;
965
1027
  }
966
- function gt() {
1028
+ function xt() {
967
1029
  return J != null;
968
1030
  }
969
1031
  //#endregion
@@ -971,10 +1033,10 @@ function gt() {
971
1033
  function Y(e = "remote") {
972
1034
  if (e === "remote") return {
973
1035
  mode: "remote",
974
- dataSource: N(),
1036
+ dataSource: I(),
975
1037
  useQueryCache: !0
976
1038
  };
977
- let t = ht();
1039
+ let t = bt();
978
1040
  if (e === "local") {
979
1041
  if (!t) throw Error("[query] source: \"local\" requires registerLocalQuerySource(...) (e.g. SDK DB ready)");
980
1042
  return {
@@ -989,7 +1051,7 @@ function Y(e = "remote") {
989
1051
  useQueryCache: !1
990
1052
  } : {
991
1053
  mode: "auto",
992
- dataSource: N(),
1054
+ dataSource: I(),
993
1055
  useQueryCache: !0
994
1056
  };
995
1057
  }
@@ -1003,21 +1065,21 @@ var Z = {
1003
1065
  ids: []
1004
1066
  };
1005
1067
  function Q(e, t) {
1006
- return !t || e?.cache === !1 ? !1 : G().enabled;
1068
+ return !t || e?.cache === !1 ? !1 : W().enabled;
1007
1069
  }
1008
- function _t(e) {
1070
+ function St(e) {
1009
1071
  return e === "data+changelog" || e === "changelog";
1010
1072
  }
1011
- function vt(e) {
1073
+ function Ct(e) {
1012
1074
  return e !== "changelog";
1013
1075
  }
1014
- async function yt(e, t, n, r, i) {
1015
- return R(e, await i.listSeedsBySchemaName(e, {
1076
+ async function wt(e, t, n, r, i) {
1077
+ return H(e, await i.listSeedsBySchemaName(e, {
1016
1078
  limit: t,
1017
1079
  skip: n
1018
1080
  }), r, i);
1019
1081
  }
1020
- async function bt(e, t, n) {
1082
+ async function Tt(e, t, n) {
1021
1083
  let r = await n(t);
1022
1084
  if (e !== "auto" || t.kind !== "local") return {
1023
1085
  assembled: r,
@@ -1029,7 +1091,7 @@ async function bt(e, t, n) {
1029
1091
  dataSource: t,
1030
1092
  useQueryCache: !1
1031
1093
  };
1032
- let i = N();
1094
+ let i = I();
1033
1095
  return {
1034
1096
  assembled: await n(i),
1035
1097
  dataSource: i,
@@ -1037,17 +1099,17 @@ async function bt(e, t, n) {
1037
1099
  };
1038
1100
  }
1039
1101
  async function $(e, t, n, r = []) {
1040
- await G().writeThroughItems(e.records.map((i) => ({
1102
+ await W().writeThroughItems(e.records.map((i) => ({
1041
1103
  record: i,
1042
1104
  optionsKey: t,
1043
1105
  dependencies: e.dependencies.get(i.seedUid) ?? Z,
1044
- checkedAt: q(n),
1106
+ checkedAt: K(n),
1045
1107
  seenChangeKeys: r,
1046
1108
  lastUpdated: n
1047
1109
  })));
1048
1110
  }
1049
- async function xt(e, t, n, r, i) {
1050
- let a = G(), o = K(), s = await a.getCollection(e, r), c = await i.listSeedsBySchemaName(e, {
1111
+ async function Et(e, t, n, r, i) {
1112
+ let a = W(), o = G(), s = await a.getCollection(e, r), c = await i.listSeedsBySchemaName(e, {
1051
1113
  limit: t,
1052
1114
  skip: 0
1053
1115
  }), l = new Map(s?.items.map((e) => [e.seedUid, e]) ?? []), u = /* @__PURE__ */ new Set(), d = [];
@@ -1057,10 +1119,10 @@ async function xt(e, t, n, r, i) {
1057
1119
  let n = s.meta[t.id];
1058
1120
  l.has(t.id) && e.set(t.id, n?.dependencies ?? Z);
1059
1121
  }
1060
- let t = await ft(i, e, s);
1122
+ let t = await gt(i, e, s);
1061
1123
  t ? (u = t.changed, d = t.seenChangeKeys) : u = new Set(e.keys());
1062
1124
  }
1063
- let f = c.filter((e) => !l.has(e.id) || u.has(e.id)), p = f.length > 0 ? await R(e, f, n, i) : {
1125
+ let f = c.filter((e) => !l.has(e.id) || u.has(e.id)), p = f.length > 0 ? await H(e, f, n, i) : {
1064
1126
  records: [],
1065
1127
  dependencies: /* @__PURE__ */ new Map()
1066
1128
  }, m = new Map(p.records.map((e) => [e.seedUid, e])), h = [], g = {};
@@ -1075,7 +1137,7 @@ async function xt(e, t, n, r, i) {
1075
1137
  });
1076
1138
  }
1077
1139
  let _ = !!s && p.records.length === 0 && h.length === s.items.length && h.every((e, t) => e === s.items[t]);
1078
- if (s && _ && !ut(s, o)) return {
1140
+ if (s && _ && !ht(s, o)) return {
1079
1141
  items: h,
1080
1142
  limit: t,
1081
1143
  skip: 0,
@@ -1085,7 +1147,7 @@ async function xt(e, t, n, r, i) {
1085
1147
  let v = await a.setCollection(e, r, {
1086
1148
  items: h,
1087
1149
  meta: g,
1088
- checkedAt: q(o),
1150
+ checkedAt: K(o),
1089
1151
  seenChangeKeys: d,
1090
1152
  lastUpdated: s?.lastUpdated ?? o
1091
1153
  });
@@ -1096,55 +1158,75 @@ async function xt(e, t, n, r, i) {
1096
1158
  etag: v?.etag
1097
1159
  };
1098
1160
  }
1099
- var St = 4;
1100
- function Ct(e) {
1161
+ var Dt = 4;
1162
+ function Ot(e) {
1101
1163
  let t = e.trim().toLowerCase().replace(/^0x/, "");
1102
- return t.length < St || t.length > 64 || !/^[0-9a-f]+$/.test(t) ? null : `0x${t}`;
1164
+ return t.length < Dt || t.length > 64 || !/^[0-9a-f]+$/.test(t) ? null : `0x${t}`;
1103
1165
  }
1104
- async function wt(n, r) {
1166
+ async function kt(n, r) {
1105
1167
  await e();
1106
1168
  let i = r?.limit ?? 100, a = r?.skip ?? 0, o = X(r?.source), s = Y(o), c = t(r), l = null;
1107
- if (r?.uidPrefix !== void 0 && (l = Ct(r.uidPrefix), !l)) return {
1169
+ if (r?.uidPrefix !== void 0 && (l = Ot(r.uidPrefix), !l)) return {
1108
1170
  items: [],
1109
1171
  limit: i,
1110
1172
  skip: a
1111
1173
  };
1112
- let u = async (e) => l ? R(n, await e.listSeedsByUidPrefix(n, l, {
1174
+ let u = async (e) => l ? H(n, await e.listSeedsByUidPrefix(n, l, {
1113
1175
  limit: i,
1114
1176
  skip: a
1115
- }), r, e) : yt(n, i, a, r, e);
1177
+ }), r, e) : wt(n, i, a, r, e);
1116
1178
  if (!l && Q(r, s.useQueryCache) && a === 0 && s.dataSource.kind === "remote") {
1117
1179
  let e = `${n}\n${c}\n${i}`;
1118
- return G().withRefreshLock(e, () => xt(n, i, r, c, s.dataSource));
1180
+ return W().withRefreshLock(e, () => Et(n, i, r, c, s.dataSource));
1119
1181
  }
1120
- let d = K(), { assembled: f, dataSource: p, useQueryCache: m } = await bt(o, s.dataSource, (e) => u(e));
1182
+ let d = G(), { assembled: f, dataSource: p, useQueryCache: m } = await Tt(o, s.dataSource, (e) => u(e));
1121
1183
  return Q(r, m) && p.kind === "remote" && await $(f, c, d), {
1122
1184
  items: f.records,
1123
1185
  limit: i,
1124
1186
  skip: a
1125
1187
  };
1126
1188
  }
1127
- async function Tt(e, t, n) {
1128
- let r = G(), i = await r.getItem(e, t);
1129
- if (!i) return null;
1130
- let a = K(), o = await ft(n, /* @__PURE__ */ new Map([[e, i.dependencies]]), i);
1131
- return !o || o.changed.has(e) ? (await r.clearItem(e, t), null) : (ut(i, a) && await r.setItem({
1132
- ...i,
1133
- checkedAt: q(a),
1134
- seenChangeKeys: o.seenChangeKeys
1135
- }), i.record);
1136
- }
1137
- async function Et(n, r) {
1189
+ async function At(e, t) {
1190
+ let n = W(), r = /* @__PURE__ */ new Map();
1191
+ await Promise.all(e.map(async ({ seedUid: e, optionsKey: t }) => {
1192
+ let i = await n.getItem(e, t);
1193
+ i && r.set(e, i);
1194
+ }));
1195
+ let i = /* @__PURE__ */ new Map();
1196
+ if (r.size === 0) return i;
1197
+ let a = G(), o = /* @__PURE__ */ new Map();
1198
+ for (let [e, t] of r) o.set(e, t);
1199
+ let s = await _t(t, o);
1200
+ for (let [e, t] of r) !s || s.changed.has(e) ? await n.clearItem(e, t.optionsKey) : (ht(t, a) && await n.setItem({
1201
+ ...t,
1202
+ checkedAt: K(a),
1203
+ seenChangeKeys: s.seenChangeKeys.get(e) ?? []
1204
+ }), i.set(e, t.record));
1205
+ return i;
1206
+ }
1207
+ async function jt(e, t, n) {
1208
+ return (await At([{
1209
+ seedUid: e,
1210
+ optionsKey: t
1211
+ }], n)).get(e) ?? null;
1212
+ }
1213
+ function Mt(e) {
1214
+ if (e?.versionUid !== void 0 || e?.asOf !== void 0) return {
1215
+ versionUid: e.versionUid,
1216
+ asOf: e.asOf
1217
+ };
1218
+ }
1219
+ async function Nt(n, r) {
1138
1220
  if (await e(), !n || typeof n != "string" || n.trim() === "") return null;
1139
1221
  let i = n.trim(), a = r?.include ?? "data", o = X(r?.source), s = Y(o), c = t(r), l = s.dataSource, u = s.useQueryCache;
1140
1222
  if (Q(r, u) && l.kind === "remote") {
1141
- let e = await Tt(i, c, l);
1223
+ let e = await jt(i, c, l);
1142
1224
  if (e) return e;
1143
1225
  }
1144
- let d = (e) => Promise.all([e.getSeedByUid(i), e.getVersionsForSeeds([i], { includeRevoked: !0 })]), f = K(), [p, m] = await d(l);
1226
+ let d = (e) => Promise.all([e.getSeedByUid(i), e.getVersionsForSeeds([i], { includeRevoked: !0 })]), f = G(), [p, m] = await d(l);
1145
1227
  if (!p && o === "auto" && l.kind === "local") {
1146
- if (l = N(), u = !0, Q(r, u)) {
1147
- let e = await Tt(i, c, l);
1228
+ if (l = I(), u = !0, Q(r, u)) {
1229
+ let e = await jt(i, c, l);
1148
1230
  if (e) return e;
1149
1231
  }
1150
1232
  [p, m] = await d(l);
@@ -1155,15 +1237,19 @@ async function Et(n, r) {
1155
1237
  let g = null, _ = {
1156
1238
  refUIDs: [i],
1157
1239
  ids: [i]
1158
- }, v = async () => {
1159
- let e = await R(h, [p], r, l, { versions: m }), t = e.records[0];
1240
+ }, v = Mt(r), y = async () => {
1241
+ let e = await U([p], r, l, {
1242
+ schemaName: h,
1243
+ versions: m,
1244
+ pins: v && /* @__PURE__ */ new Map([[i, v]])
1245
+ }), t = e.records[0];
1160
1246
  return t && (_ = e.dependencies.get(t.seedUid) ?? _), t ?? null;
1161
1247
  };
1162
- if (!_t(a)) g = await v();
1248
+ if (!St(a)) g = await y();
1163
1249
  else {
1164
- let { latestVersionUid: e, changelog: t } = await Xe(i, r, l);
1165
- if (vt(a)) {
1166
- let e = await v();
1250
+ let { latestVersionUid: e, changelog: t } = await Ze(i, r, l);
1251
+ if (Ct(a)) {
1252
+ let e = await y();
1167
1253
  g = e ? {
1168
1254
  ...e,
1169
1255
  changelog: t
@@ -1184,11 +1270,11 @@ async function Et(n, r) {
1184
1270
  };
1185
1271
  }
1186
1272
  if (g && Q(r, u) && l.kind === "remote") {
1187
- let e = await G().setItem({
1273
+ let e = await W().setItem({
1188
1274
  record: g,
1189
1275
  optionsKey: c,
1190
1276
  dependencies: _,
1191
- checkedAt: q(f),
1277
+ checkedAt: K(f),
1192
1278
  seenChangeKeys: [],
1193
1279
  lastUpdated: f
1194
1280
  });
@@ -1196,12 +1282,73 @@ async function Et(n, r) {
1196
1282
  }
1197
1283
  return g;
1198
1284
  }
1199
- async function Dt(n, r, i, a) {
1285
+ async function Pt(n, r) {
1286
+ await e();
1287
+ let i = /* @__PURE__ */ new Map();
1288
+ for (let e of n) {
1289
+ if (typeof e != "string" || e.trim() === "") continue;
1290
+ let t = e.trim().toLowerCase();
1291
+ i.has(t) || i.set(t, e.trim());
1292
+ }
1293
+ let a = [...i.keys()];
1294
+ if (a.length === 0) return /* @__PURE__ */ new Map();
1295
+ let o = /* @__PURE__ */ new Map();
1296
+ for (let [e, t] of r?.pins ?? []) {
1297
+ let n = Mt(t);
1298
+ n && o.set(e.trim().toLowerCase(), n);
1299
+ }
1300
+ let s = (e) => t({
1301
+ ...r,
1302
+ ...o.get(e)
1303
+ }), c = X(r?.source), l = Y(c), u = /* @__PURE__ */ new Map(), d = async (e, t, n) => {
1304
+ let i = Q(r, t) && e.kind === "remote", a = n;
1305
+ if (i) {
1306
+ let t = await At(n.map((e) => ({
1307
+ seedUid: e,
1308
+ optionsKey: s(e)
1309
+ })), e);
1310
+ for (let [e, n] of t) u.set(e, n);
1311
+ a = n.filter((e) => !t.has(e));
1312
+ }
1313
+ if (a.length === 0) return [];
1314
+ let c = G(), [l, d] = await Promise.all([e.getSeedsByUids(a), e.getVersionsForSeeds(a, { includeRevoked: !0 })]), f = new Map(l.map((e) => [e.id.toLowerCase(), e])), p = a.filter((e) => !f.has(e)), m = await U(a.map((e) => f.get(e)).filter((e) => !!e?.schema?.schemaNames?.[0]?.name), r, e, {
1315
+ versions: d,
1316
+ pins: o
1317
+ });
1318
+ for (let e of m.records) {
1319
+ let t = e;
1320
+ if (i) {
1321
+ let n = await W().setItem({
1322
+ record: e,
1323
+ optionsKey: s(e.seedUid.toLowerCase()),
1324
+ dependencies: m.dependencies.get(e.seedUid) ?? {
1325
+ refUIDs: [e.seedUid],
1326
+ ids: [e.seedUid]
1327
+ },
1328
+ checkedAt: K(c),
1329
+ seenChangeKeys: [],
1330
+ lastUpdated: c
1331
+ });
1332
+ n && (t = n.record);
1333
+ }
1334
+ u.set(e.seedUid.toLowerCase(), t);
1335
+ }
1336
+ return p;
1337
+ }, f = await d(l.dataSource, l.useQueryCache, a);
1338
+ f.length > 0 && c === "auto" && l.dataSource.kind === "local" && await d(I(), !0, f);
1339
+ let p = /* @__PURE__ */ new Map();
1340
+ for (let [e, t] of i) {
1341
+ let n = u.get(e);
1342
+ n && p.set(t, n);
1343
+ }
1344
+ return p;
1345
+ }
1346
+ async function Ft(n, r, i, a) {
1200
1347
  await e();
1201
- let o = X(a?.source), s = Y(o), c = async (e) => R(n, await e.listSeedsBySchemaNameForMonth(n, r, i), a, e), l = K(), { assembled: u, dataSource: d, useQueryCache: f } = await bt(o, s.dataSource, c);
1348
+ let o = X(a?.source), s = Y(o), c = async (e) => H(n, await e.listSeedsBySchemaNameForMonth(n, r, i), a, e), l = G(), { assembled: u, dataSource: d, useQueryCache: f } = await Tt(o, s.dataSource, c);
1202
1349
  return Q(a, f) && d.kind === "remote" && await $(u, t(a), l), u.records;
1203
1350
  }
1204
1351
  //#endregion
1205
- export { y as $, ke as A, D as B, qe as C, je as D, N as E, C as F, ge as G, T as H, de as I, S as J, O as K, fe as L, ye as M, Se as N, M as O, oe as P, ie as Q, pe as R, Je as S, Ne as T, ue as U, le as V, me as W, b as X, ae as Y, x as Z, Xe as _, X as a, z as b, ht as c, lt as d, G as f, V as g, at as h, Dt as i, Oe as j, Ae as k, gt as l, U as m, Ct as n, Y as o, ct as p, he as q, wt as r, mt as s, Et as t, pt as u, Ye as v, We as w, B as x, Ke as y, E as z };
1352
+ export { S as $, Oe as A, D as B, Ye as C, I as D, Ae as E, ae as F, pe as G, ce as H, w as I, me as J, he as K, ue as L, N as M, ve as N, F as O, xe as P, re as Q, de as R, Ke as S, Ue as T, E as U, O as V, le as W, ie as X, C as Y, x as Z, it as _, Ft as a, qe as b, yt as c, vt as d, b as et, mt as f, ct as g, dt as h, kt as i, De as j, P as k, bt as l, pt as m, Pt as n, X as o, W as p, k as q, Ot as r, Y as s, Nt as t, xt as u, Ze as v, Je as w, Ge as x, Xe as y, fe as z };
1206
1353
 
1207
- //# sourceMappingURL=src-BowznSl-.js.map
1354
+ //# sourceMappingURL=src-D20xeLMs.js.map