@instantdb/react 0.22.46 → 0.22.47

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.
@@ -44,7 +44,7 @@ const D = {
44
44
  }, ei = Symbol.for("__MUTATIVE_PROXY_DRAFT__"), ls = Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"), mt = Symbol.iterator, se = {
45
45
  mutable: "mutable",
46
46
  immutable: "immutable"
47
- }, Mn = {};
47
+ }, In = {};
48
48
  function tt(e, t) {
49
49
  return e instanceof Map ? e.has(t) : Object.prototype.hasOwnProperty.call(e, t);
50
50
  }
@@ -59,7 +59,7 @@ function lr(e, t) {
59
59
  }
60
60
  }
61
61
  }
62
- function In(e) {
62
+ function Mn(e) {
63
63
  return Object.getPrototypeOf(e) === Set.prototype;
64
64
  }
65
65
  function Rn(e) {
@@ -106,14 +106,14 @@ function ti(e, t = []) {
106
106
  }
107
107
  return t;
108
108
  }
109
- function Me(e) {
109
+ function Ie(e) {
110
110
  return Array.isArray(e) ? 1 : e instanceof Map ? 2 : e instanceof Set ? 3 : 0;
111
111
  }
112
112
  function Te(e, t) {
113
- return Me(e) === 2 ? e.get(t) : e[t];
113
+ return Ie(e) === 2 ? e.get(t) : e[t];
114
114
  }
115
115
  function ot(e, t, n) {
116
- Me(e) === 2 ? e.set(t, n) : e[t] = n;
116
+ Ie(e) === 2 ? e.set(t, n) : e[t] = n;
117
117
  }
118
118
  function Bt(e, t) {
119
119
  const n = j(e);
@@ -136,7 +136,7 @@ function Ce(e, t) {
136
136
  function hs(e, t) {
137
137
  for (let n = 0; n < t.length - 1; n += 1) {
138
138
  const r = t[n];
139
- if (e = Te(Me(e) === 3 ? Array.from(e) : e, r), typeof e != "object")
139
+ if (e = Te(Ie(e) === 3 ? Array.from(e) : e, r), typeof e != "object")
140
140
  throw new Error(`Cannot resolve patch at '${t.join("/")}'.`);
141
141
  }
142
142
  return e;
@@ -163,7 +163,7 @@ function ni(e, t) {
163
163
  if (Array.isArray(e))
164
164
  return Array.prototype.concat.call(e);
165
165
  if (e instanceof Set) {
166
- if (!In(e)) {
166
+ if (!Mn(e)) {
167
167
  const r = Object.getPrototypeOf(e).constructor;
168
168
  return new r(e.values());
169
169
  }
@@ -214,7 +214,7 @@ function Je(e) {
214
214
  }
215
215
  if (e instanceof Set) {
216
216
  const n = Array.from(e).map(Je);
217
- if (!In(e)) {
217
+ if (!Mn(e)) {
218
218
  const r = Object.getPrototypeOf(e).constructor;
219
219
  return new r(n);
220
220
  }
@@ -256,7 +256,7 @@ function $e(e, t, n, r, i) {
256
256
  r.pop(), i.pop();
257
257
  return;
258
258
  }
259
- switch (Me(e)) {
259
+ switch (Ie(e)) {
260
260
  case 2:
261
261
  for (const [u, a] of e)
262
262
  $e(u, u, n, r, i), $e(a, u, n, r, i);
@@ -282,7 +282,7 @@ function $e(e, t, n, r, i) {
282
282
  r.pop(), i.pop();
283
283
  }
284
284
  function xn(e, t) {
285
- const n = Me(e);
285
+ const n = Ie(e);
286
286
  if (n === 0)
287
287
  Reflect.ownKeys(e).forEach((r) => {
288
288
  t(r, e[r], e);
@@ -485,7 +485,7 @@ const Ct = (e, t, n = !1) => {
485
485
  const r = j(this), i = ie(r).get(e), s = ((n = (t = r.options).mark) === null || n === void 0 ? void 0 : n.call(t, i, se)) === se.mutable;
486
486
  if (r.options.strict && Ct(i, r.options, s), s || r.finalized || !fe(i, r.options) || i !== r.original.get(e))
487
487
  return i;
488
- const o = Mn.createDraft({
488
+ const o = In.createDraft({
489
489
  original: i,
490
490
  parentDraft: r,
491
491
  key: e,
@@ -538,7 +538,7 @@ const Ct = (e, t, n = !1) => {
538
538
  let u = e.setMap.get(o);
539
539
  const a = j(u), d = ((i = (r = e.options).mark) === null || i === void 0 ? void 0 : i.call(r, u, se)) === se.mutable;
540
540
  if (e.options.strict && Ct(o, e.options, d), !d && !a && fe(o, e.options) && !e.finalized && e.original.has(o)) {
541
- const c = Mn.createDraft({
541
+ const c = In.createDraft({
542
542
  original: o,
543
543
  parentDraft: e,
544
544
  key: o,
@@ -737,7 +737,7 @@ const ms = Reflect.ownKeys(jt), ii = /* @__PURE__ */ new WeakSet(), si = {
737
737
  }
738
738
  };
739
739
  function Un(e) {
740
- const { original: t, parentDraft: n, key: r, finalities: i, options: s } = e, o = Me(t), u = {
740
+ const { original: t, parentDraft: n, key: r, finalities: i, options: s } = e, o = Ie(t), u = {
741
741
  type: o,
742
742
  finalized: !1,
743
743
  parent: n,
@@ -774,7 +774,7 @@ function Un(e) {
774
774
  }
775
775
  return a;
776
776
  }
777
- Mn.createDraft = Un;
777
+ In.createDraft = Un;
778
778
  function vs(e, t, n, r, i) {
779
779
  var s;
780
780
  const o = j(e), u = (s = o == null ? void 0 : o.original) !== null && s !== void 0 ? s : e, a = !!t.length;
@@ -831,7 +831,7 @@ function oi(e) {
831
831
  const n = j(e);
832
832
  if (!fe(e, n == null ? void 0 : n.options))
833
833
  return e;
834
- const r = Me(e);
834
+ const r = Ie(e);
835
835
  if (n && !n.operated)
836
836
  return n.original;
837
837
  let i;
@@ -854,7 +854,7 @@ function oi(e) {
854
854
  a !== u && (i === e && s(), ot(i, o, a));
855
855
  }), r === 3) {
856
856
  const o = (t = n == null ? void 0 : n.original) !== null && t !== void 0 ? t : i;
857
- return In(o) ? new Set(i) : new (Object.getPrototypeOf(o)).constructor(i);
857
+ return Mn(o) ? new Set(i) : new (Object.getPrototypeOf(o)).constructor(i);
858
858
  }
859
859
  return i;
860
860
  }
@@ -902,7 +902,7 @@ const Os = (e) => function t(n, r, i) {
902
902
  } catch (E) {
903
903
  throw tn(j(T)), E;
904
904
  }
905
- const I = (E) => {
905
+ const M = (E) => {
906
906
  const U = j(T);
907
907
  if (!Pe(E)) {
908
908
  if (E !== void 0 && !ge(E, T) && (U != null && U.operated))
@@ -929,9 +929,9 @@ const Os = (e) => function t(n, r, i) {
929
929
  }
930
930
  return w([E]);
931
931
  };
932
- return v instanceof Promise ? v.then(I, (E) => {
932
+ return v instanceof Promise ? v.then(M, (E) => {
933
933
  throw tn(j(T)), E;
934
- }) : I(v);
934
+ }) : M(v);
935
935
  }, un = Os();
936
936
  Object.prototype.constructor.toString();
937
937
  function ui(e, t) {
@@ -1210,14 +1210,14 @@ function ks(e) {
1210
1210
  return /* @__PURE__ */ new Date(e + "Z");
1211
1211
  }
1212
1212
  const Ps = /^(\d+)[\./-](\d+)[\./-](\d+)$/;
1213
- function Ms(e) {
1213
+ function Is(e) {
1214
1214
  const t = e.match(Ps);
1215
1215
  if (!t)
1216
1216
  return null;
1217
1217
  const [n, r, i, s] = t;
1218
1218
  return r <= 0 || i <= 0 || s <= 0 ? null : r > 999 ? new Date(Date.UTC(r, i - 1, s, 0, 0, 0, 0)) : new Date(Date.UTC(s, r - 1, i, 0, 0, 0, 0));
1219
1219
  }
1220
- function Is(e) {
1220
+ function Ms(e) {
1221
1221
  const [t, n] = e.split(" ");
1222
1222
  return /* @__PURE__ */ new Date(t + "T" + n + "Z");
1223
1223
  }
@@ -1270,14 +1270,14 @@ function Ns(e) {
1270
1270
  return new Date(i.getTime() - r * 1e3);
1271
1271
  }
1272
1272
  const Fs = [
1273
- Ms,
1273
+ Is,
1274
1274
  Rs,
1275
1275
  xs,
1276
1276
  Us,
1277
1277
  $s,
1278
1278
  ks,
1279
1279
  Ds,
1280
- Is,
1280
+ Ms,
1281
1281
  js,
1282
1282
  Ls,
1283
1283
  Ns
@@ -1306,7 +1306,7 @@ function Vs(e) {
1306
1306
  return null;
1307
1307
  }
1308
1308
  }
1309
- function It(e) {
1309
+ function Mt(e) {
1310
1310
  if (e !== void 0) {
1311
1311
  if (e === null)
1312
1312
  return null;
@@ -1367,7 +1367,7 @@ function di(e, t, n) {
1367
1367
  console.warn("no such attr", u, e);
1368
1368
  continue;
1369
1369
  }
1370
- f["checked-data-type"] === "date" && n && (d = It(d), o[2] = d), Nn(f) && te(s, [d, a, u], o), te(r, [u, a, d], o), te(i, [a, u, d], o);
1370
+ f["checked-data-type"] === "date" && n && (d = Mt(d), o[2] = d), Nn(f) && te(s, [d, a, u], o), te(r, [u, a, d], o), te(i, [a, u, d], o);
1371
1371
  }
1372
1372
  return { eav: r, aev: i, vae: s };
1373
1373
  }
@@ -1452,7 +1452,7 @@ function Qs(e, t) {
1452
1452
  const u = Ke(e.attrs, s);
1453
1453
  if (!u)
1454
1454
  return;
1455
- u["checked-data-type"] === "date" && e.useDateObjects && (o = It(o));
1455
+ u["checked-data-type"] === "date" && e.useDateObjects && (o = Mt(o));
1456
1456
  const a = Rt(e.eav, [i, s, o]), d = (n = a == null ? void 0 : a[3]) !== null && n !== void 0 ? n : li(e, u, r), c = [i, s, o, d];
1457
1457
  qs(u) ? (te(e.eav, [i, s], /* @__PURE__ */ new Map([[o, c]])), te(e.aev, [s, i], /* @__PURE__ */ new Map([[o, c]]))) : (te(e.eav, [i, s, o], c), te(e.aev, [s, i, o], c)), Nn(u) && te(e.vae, [o, s, i], c);
1458
1458
  }
@@ -1869,7 +1869,7 @@ function Po(e, t, n, r) {
1869
1869
  e("time", r)
1870
1870
  ];
1871
1871
  }
1872
- function Mo(e, t, n) {
1872
+ function Io(e, t, n) {
1873
1873
  return e.map((r) => r === t ? n : r);
1874
1874
  }
1875
1875
  function gi(e, t, n, r, i) {
@@ -1901,7 +1901,7 @@ function Sr(e, t) {
1901
1901
  return typeof o != "string" ? !1 : i.test(o);
1902
1902
  };
1903
1903
  }
1904
- function Io(e, t) {
1904
+ function Mo(e, t) {
1905
1905
  if (typeof t != "object" || t.hasOwnProperty("$in") || t.hasOwnProperty("in"))
1906
1906
  return t;
1907
1907
  const n = e["checked-data-type"] === "date";
@@ -1979,7 +1979,7 @@ function Ro(e, t, n, r, i, s) {
1979
1979
  return o ? [
1980
1980
  e(n, r),
1981
1981
  a.id,
1982
- Io(a, s),
1982
+ Mo(a, s),
1983
1983
  nt("time")
1984
1984
  ] : [s, a.id, e(n, r), nt("time")];
1985
1985
  }
@@ -2063,7 +2063,7 @@ function Wo(e, t, n) {
2063
2063
  return [e(t, n), e("time", n)];
2064
2064
  }
2065
2065
  function Vo(e, t, n, r, i, s) {
2066
- const [o, u, a, d, c] = gi(e, t, n, r, i), f = Mo(a, e(n, r), s);
2066
+ const [o, u, a, d, c] = gi(e, t, n, r, i), f = Io(a, e(n, r), s);
2067
2067
  return [o, u, f, d, c];
2068
2068
  }
2069
2069
  function qo(e, t, { etype: n, level: r, form: i }, s) {
@@ -2073,12 +2073,12 @@ function qo(e, t, { etype: n, level: r, form: i }, s) {
2073
2073
  var p, _, b;
2074
2074
  const g = !!(t.cardinalityInference && (!((b = (_ = (p = t.linkIndex) === null || p === void 0 ? void 0 : p[n]) === null || _ === void 0 ? void 0 : _[h]) === null || b === void 0) && b.isSingular));
2075
2075
  try {
2076
- const [T, w, v] = Vo(e, t, n, r, h, a), I = mi(t, {
2076
+ const [T, w, v] = Vo(e, t, n, r, h, a), M = mi(t, {
2077
2077
  etype: T,
2078
2078
  level: w,
2079
2079
  form: i[h],
2080
2080
  join: v
2081
- }), E = g ? I[0] : I;
2081
+ }), E = g ? M[0] : M;
2082
2082
  return { [h]: E };
2083
2083
  } catch (T) {
2084
2084
  if (T instanceof qe)
@@ -2144,8 +2144,8 @@ function Ho(e, { etype: t, pageInfo: n, dq: r, form: i }) {
2144
2144
  if (h && ((o = h == null ? void 0 : h["forward-identity"]) === null || o === void 0 ? void 0 : o[2]) !== "id") {
2145
2145
  const b = h["checked-data-type"] === "date", g = h.id;
2146
2146
  c = c.map(([T]) => {
2147
- var w, v, I, E, U;
2148
- let F = (U = (E = (I = (v = (w = e.eav.get(T)) === null || w === void 0 ? void 0 : w.get(g)) === null || v === void 0 ? void 0 : v.values()) === null || I === void 0 ? void 0 : I.next()) === null || E === void 0 ? void 0 : E.value) === null || U === void 0 ? void 0 : U[2];
2147
+ var w, v, M, E, U;
2148
+ let F = (U = (E = (M = (v = (w = e.eav.get(T)) === null || w === void 0 ? void 0 : w.get(g)) === null || v === void 0 ? void 0 : v.values()) === null || M === void 0 ? void 0 : M.next()) === null || E === void 0 ? void 0 : E.value) === null || U === void 0 ? void 0 : U[2];
2149
2149
  return b && (F = hn(F)), [T, F];
2150
2150
  });
2151
2151
  }
@@ -2186,6 +2186,7 @@ function Zo(e, { etype: t, level: n, form: r, join: i, pageInfo: s }) {
2186
2186
  dq: { where: f, find: h, fields: p }
2187
2187
  }), b = ((a = r.$) === null || a === void 0 ? void 0 : a.limit) || ((d = r.$) === null || d === void 0 ? void 0 : d.first) || ((c = r.$) === null || c === void 0 ? void 0 : c.last);
2188
2188
  if (b != null) {
2189
+ n > 0 && console.warn("WARNING: Limits in child queries are only run client-side. Data returned from the server will not have a limit.");
2189
2190
  const g = Object.entries(_);
2190
2191
  return g.length <= b ? _ : Object.fromEntries(g.slice(0, b));
2191
2192
  }
@@ -2438,14 +2439,14 @@ function lu(e, t) {
2438
2439
  const { stores: n, attrs: r } = e, [i, s, o, u] = t, a = Ln(o), d = re(r, i, s);
2439
2440
  return [["id", d]].concat(Object.entries(a)).map(([f, h]) => {
2440
2441
  const p = B(r, i, f);
2441
- return p["checked-data-type"] === "date" && e.useDateObjects && (h = It(h)), ["add-triple", d, p.id, h, { mode: "create" }];
2442
+ return p["checked-data-type"] === "date" && e.useDateObjects && (h = Mt(h)), ["add-triple", d, p.id, h, { mode: "create" }];
2442
2443
  });
2443
2444
  }
2444
2445
  function hu(e, t) {
2445
2446
  const { stores: n, attrs: r } = e, [i, s, o, u] = t, a = Ln(o), d = re(r, i, s), c = Oi(e, [i, d, o, u]);
2446
2447
  return [["id", d]].concat(Object.entries(a)).map(([h, p]) => {
2447
2448
  const _ = B(r, i, h);
2448
- return _["checked-data-type"] === "date" && e.useDateObjects && (p = It(p)), [
2449
+ return _["checked-data-type"] === "date" && e.useDateObjects && (p = Mt(p)), [
2449
2450
  "add-triple",
2450
2451
  d,
2451
2452
  _.id,
@@ -2710,7 +2711,7 @@ class Ei {
2710
2711
  });
2711
2712
  }
2712
2713
  }
2713
- var Mu = function(e, t, n, r) {
2714
+ var Iu = function(e, t, n, r) {
2714
2715
  function i(s) {
2715
2716
  return s instanceof n ? s : new n(function(o) {
2716
2717
  o(s);
@@ -2739,7 +2740,7 @@ var Mu = function(e, t, n, r) {
2739
2740
  };
2740
2741
  class Ai {
2741
2742
  static getIsOnline() {
2742
- return Mu(this, void 0, void 0, function* () {
2743
+ return Iu(this, void 0, void 0, function* () {
2743
2744
  return navigator.onLine;
2744
2745
  });
2745
2746
  }
@@ -2764,7 +2765,7 @@ class ze extends Error {
2764
2765
  return "InstantError";
2765
2766
  }
2766
2767
  }
2767
- var Iu = function(e, t, n, r) {
2768
+ var Mu = function(e, t, n, r) {
2768
2769
  function i(s) {
2769
2770
  return s instanceof n ? s : new n(function(o) {
2770
2771
  o(s);
@@ -2804,7 +2805,7 @@ class xt extends ze {
2804
2805
  }
2805
2806
  }
2806
2807
  function le(e, t) {
2807
- return Iu(this, void 0, void 0, function* () {
2808
+ return Mu(this, void 0, void 0, function* () {
2808
2809
  const n = yield fetch(e, t), r = yield n.json();
2809
2810
  return n.status === 200 ? Promise.resolve(r) : Promise.reject(new xt({ status: n.status, body: r }));
2810
2811
  });
@@ -3094,7 +3095,7 @@ var Qe = function(e, t, n, r) {
3094
3095
  function Bu(e, t) {
3095
3096
  typeof requestIdleCallback > "u" ? e() : requestIdleCallback(e, { timeout: t });
3096
3097
  }
3097
- class Mr {
3098
+ class Ir {
3098
3099
  constructor(t, n, r, i, s = (d) => d, o = (d) => d, u = 100, a = 1e3) {
3099
3100
  this._subs = [], this._nextSave = null, this._persister = t, this._key = n, this._onMerge = i, this._loadedCbs = [], this._isLoading = !0, this.currentValue = r, this.serialize = s, this.parse = o, this._saveThrottleMs = u, this._pendingSaveCbs = [], this._version = 0, this._idleCallbackMaxWaitMs = a, this._load();
3100
3101
  }
@@ -3181,7 +3182,7 @@ function ki(e, t = []) {
3181
3182
  ki(n["child-nodes"], t);
3182
3183
  });
3183
3184
  }
3184
- function Ir(e) {
3185
+ function Mr(e) {
3185
3186
  const t = [];
3186
3187
  return ki(e, t), t;
3187
3188
  }
@@ -3199,7 +3200,7 @@ function Rr(e) {
3199
3200
  }, t;
3200
3201
  }, {});
3201
3202
  }
3202
- const Kn = "v0.22.46";
3203
+ const Kn = "v0.22.47";
3203
3204
  function Gu(e, t) {
3204
3205
  return {
3205
3206
  info: e ? (...n) => console.info(...n, t()) : () => {
@@ -3378,12 +3379,12 @@ const $r = [
3378
3379
  throw new R(`Attribute '${u}' does not exist on entity '${o}' in dot notation path '${e}'. Available attributes: ${c.length > 0 ? c.join(", ") + ", id" : "id"}`, i);
3379
3380
  }
3380
3381
  Ne(t, e, d, n, i);
3381
- }, Mi = (e, t, n, r) => {
3382
+ }, Ii = (e, t, n, r) => {
3382
3383
  for (const [i, s] of Object.entries(e)) {
3383
3384
  if (i === "or" || i === "and") {
3384
3385
  if (Array.isArray(s))
3385
3386
  for (const d of s)
3386
- typeof d == "object" && d !== null && Mi(d, t, n, `${r}.${i}[${d}]`);
3387
+ typeof d == "object" && d !== null && Ii(d, t, n, `${r}.${i}[${d}]`);
3387
3388
  continue;
3388
3389
  }
3389
3390
  if (i === "id") {
@@ -3416,7 +3417,7 @@ const $r = [
3416
3417
  if (!$r.includes(o))
3417
3418
  throw new R(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${$r.join(", ")}. Found: ${o}`, r);
3418
3419
  const s = [
3419
- "limit",
3420
+ // 'limit', // only supported client side
3420
3421
  "offset",
3421
3422
  "before",
3422
3423
  "after",
@@ -3429,9 +3430,9 @@ const $r = [
3429
3430
  if (e.where && n) {
3430
3431
  if (typeof e.where != "object" || e.where === null)
3431
3432
  throw new R(`'where' clause must be an object in entity '${t}', but received: ${typeof e.where}`, r ? `${r}.where` : void 0);
3432
- Mi(e.where, t, n, r ? `${r}.where` : "where");
3433
+ Ii(e.where, t, n, r ? `${r}.where` : "where");
3433
3434
  }
3434
- }, Ii = (e, t, n, r, i = 0) => {
3435
+ }, Mi = (e, t, n, r, i = 0) => {
3435
3436
  var s;
3436
3437
  if (!e || typeof e != "object")
3437
3438
  throw new R(`Query part for entity '${t}' must be an object, but received: ${typeof e}`, r);
@@ -3444,7 +3445,7 @@ const $r = [
3444
3445
  const u = e[o];
3445
3446
  if (typeof u == "object" && u !== null) {
3446
3447
  const a = (s = n == null ? void 0 : n.entities[t].links[o]) === null || s === void 0 ? void 0 : s.entityName;
3447
- a && Ii(u, a, n, `${r}.${o}`, i + 1);
3448
+ a && Mi(u, a, n, `${r}.${o}`, i + 1);
3448
3449
  }
3449
3450
  } else {
3450
3451
  const u = e[o];
@@ -3468,7 +3469,7 @@ const $r = [
3468
3469
  const i = Object.keys(t.entities);
3469
3470
  throw new R(`Entity '${r}' does not exist in schema. Available entities: ${i.length > 0 ? i.join(", ") : "none"}`, r);
3470
3471
  }
3471
- Ii(n[r], r, t, r, 0);
3472
+ Mi(n[r], r, t, r, 0);
3472
3473
  }
3473
3474
  }
3474
3475
  }, Dr = (e) => typeof e != "string" ? !1 : Pt(e) ? !0 : Ve(e);
@@ -3933,7 +3934,7 @@ class ha {
3933
3934
  };
3934
3935
  }
3935
3936
  _initStorage(t) {
3936
- this._persister = new t(`instant_${this.config.appId}_5`), this.querySubs = new Mr(this._persister, "querySubs", {}, this._onMergeQuerySubs, la, (n) => fa(n, this.config.useDateObjects)), this.pendingMutations = new Mr(
3937
+ this._persister = new t(`instant_${this.config.appId}_5`), this.querySubs = new Ir(this._persister, "querySubs", {}, this._onMergeQuerySubs, la, (n) => fa(n, this.config.useDateObjects)), this.pendingMutations = new Ir(
3937
3938
  this._persister,
3938
3939
  "pendingMutations",
3939
3940
  /* @__PURE__ */ new Map(),
@@ -4000,7 +4001,7 @@ class ha {
4000
4001
  this.notifyOneQueryOnce(X(n.q));
4001
4002
  break;
4002
4003
  case "add-query-ok":
4003
- const { q: c, result: f } = n, h = X(c), p = (o = (s = f == null ? void 0 : f[0]) === null || s === void 0 ? void 0 : s.data) === null || o === void 0 ? void 0 : o["page-info"], _ = (a = (u = f == null ? void 0 : f[0]) === null || u === void 0 ? void 0 : u.data) === null || a === void 0 ? void 0 : a.aggregate, b = Ir(f), g = cn(this.attrs, b, d, this._linkIndex, this.config.useDateObjects);
4004
+ const { q: c, result: f } = n, h = X(c), p = (o = (s = f == null ? void 0 : f[0]) === null || s === void 0 ? void 0 : s.data) === null || o === void 0 ? void 0 : o["page-info"], _ = (a = (u = f == null ? void 0 : f[0]) === null || u === void 0 ? void 0 : u.data) === null || a === void 0 ? void 0 : a.aggregate, b = Mr(f), g = cn(this.attrs, b, d, this._linkIndex, this.config.useDateObjects);
4004
4005
  this.querySubs.set((O) => (O[h].result = {
4005
4006
  store: g,
4006
4007
  pageInfo: p,
@@ -4011,11 +4012,11 @@ class ha {
4011
4012
  case "refresh-ok":
4012
4013
  const { computations: T, attrs: w } = n, v = n["processed-tx-id"];
4013
4014
  w && this._setAttrs(w), this._cleanupPendingMutationsTimeout();
4014
- const I = this._rewriteMutations(this.attrs, this.pendingMutations.currentValue, v);
4015
- I !== this.pendingMutations.currentValue && this.pendingMutations.set(() => I);
4016
- const E = Vr(I.entries()), U = T.map((O) => {
4015
+ const M = this._rewriteMutations(this.attrs, this.pendingMutations.currentValue, v);
4016
+ M !== this.pendingMutations.currentValue && this.pendingMutations.set(() => M);
4017
+ const E = Vr(M.entries()), U = T.map((O) => {
4017
4018
  var Q, we, pe, ae;
4018
- const q = O["instaql-query"], V = O["instaql-result"], Se = X(q), ct = Ir(V), dt = cn(this.attrs, ct, d, this._linkIndex, this.config.useDateObjects), ft = this._applyOptimisticUpdates(dt, E, v), lt = (we = (Q = V == null ? void 0 : V[0]) === null || Q === void 0 ? void 0 : Q.data) === null || we === void 0 ? void 0 : we["page-info"], ht = (ae = (pe = V == null ? void 0 : V[0]) === null || pe === void 0 ? void 0 : pe.data) === null || ae === void 0 ? void 0 : ae.aggregate;
4019
+ const q = O["instaql-query"], V = O["instaql-result"], Se = X(q), ct = Mr(V), dt = cn(this.attrs, ct, d, this._linkIndex, this.config.useDateObjects), ft = this._applyOptimisticUpdates(dt, E, v), lt = (we = (Q = V == null ? void 0 : V[0]) === null || Q === void 0 ? void 0 : Q.data) === null || we === void 0 ? void 0 : we["page-info"], ht = (ae = (pe = V == null ? void 0 : V[0]) === null || pe === void 0 ? void 0 : pe.data) === null || ae === void 0 ? void 0 : ae.aggregate;
4019
4020
  return { hash: Se, store: ft, pageInfo: lt, aggregate: ht };
4020
4021
  });
4021
4022
  U.forEach(({ hash: O, store: Q, pageInfo: we, aggregate: pe }) => {
@@ -5053,11 +5054,11 @@ const Pa = {
5053
5054
  apiURI: "https://api.instantdb.com",
5054
5055
  websocketURI: "wss://api.instantdb.com/runtime/session"
5055
5056
  };
5056
- function Ma() {
5057
+ function Ia() {
5057
5058
  var e;
5058
5059
  return globalThis.__instantDbSchemaHashStore = (e = globalThis.__instantDbSchemaHashStore) !== null && e !== void 0 ? e : /* @__PURE__ */ new WeakMap(), globalThis.__instantDbSchemaHashStore;
5059
5060
  }
5060
- function Ia() {
5061
+ function Ma() {
5061
5062
  var e;
5062
5063
  return globalThis.__instantDbStore = (e = globalThis.__instantDbStore) !== null && e !== void 0 ? e : {}, globalThis.__instantDbStore;
5063
5064
  }
@@ -5065,7 +5066,7 @@ function Tn(e) {
5065
5066
  const t = e.__adminToken;
5066
5067
  return e.appId + "_" + (e.websocketURI || "default_ws_uri") + "_" + (e.apiURI || "default_api_uri") + "_" + (t || "client_only") + "_" + e.useDateObjects;
5067
5068
  }
5068
- const wn = Ia(), Jt = Ma();
5069
+ const wn = Ma(), Jt = Ia();
5069
5070
  class Ra {
5070
5071
  constructor(t) {
5071
5072
  this.db = t, this.sendMagicCode = (n) => this.db.sendMagicCode(n), this.signInWithMagicCode = (n) => this.db.signInWithMagicCode(n), this.signInWithToken = (n) => this.db.signInWithCustomToken(n), this.signInAsGuest = () => this.db.signInAsGuest(), this.createAuthorizationURL = (n) => this.db.createAuthorizationURL(n), this.signInWithIdToken = (n) => this.db.signInWithIdToken(n), this.exchangeOAuthCode = (n) => this.db.exchangeCodeForToken(n), this.issuerURI = () => this.db.issuerURI(), this.signOut = (n = { invalidateToken: !0 }) => this.db.signOut(n);
@@ -5316,17 +5317,17 @@ function Wa() {
5316
5317
  {
5317
5318
  for (var y = arguments.length, m = new Array(y > 1 ? y - 1 : 0), S = 1; S < y; S++)
5318
5319
  m[S - 1] = arguments[S];
5319
- I("error", l, m);
5320
+ M("error", l, m);
5320
5321
  }
5321
5322
  }
5322
- function I(l, y, m) {
5323
+ function M(l, y, m) {
5323
5324
  {
5324
5325
  var S = w.ReactDebugCurrentFrame, P = S.getStackAddendum();
5325
5326
  P !== "" && (y += "%s", m = m.concat([P]));
5326
- var M = m.map(function(k) {
5327
+ var I = m.map(function(k) {
5327
5328
  return String(k);
5328
5329
  });
5329
- M.unshift("Warning: " + y), Function.prototype.apply.call(console[l], console, M);
5330
+ I.unshift("Warning: " + y), Function.prototype.apply.call(console[l], console, I);
5330
5331
  }
5331
5332
  }
5332
5333
  var E = !1, U = !1, F = !1, he = !1, O = !1, Q;
@@ -5383,9 +5384,9 @@ function Wa() {
5383
5384
  var S = l.displayName || null;
5384
5385
  return S !== null ? S : q(l.type) || "Memo";
5385
5386
  case p: {
5386
- var P = l, M = P._payload, k = P._init;
5387
+ var P = l, I = P._payload, k = P._init;
5387
5388
  try {
5388
- return q(k(M));
5389
+ return q(k(I));
5389
5390
  } catch {
5390
5391
  return null;
5391
5392
  }
@@ -5486,8 +5487,8 @@ function Wa() {
5486
5487
  Ft = !0;
5487
5488
  var P = Error.prepareStackTrace;
5488
5489
  Error.prepareStackTrace = void 0;
5489
- var M;
5490
- M = Lt.current, Lt.current = null, Li();
5490
+ var I;
5491
+ I = Lt.current, Lt.current = null, Li();
5491
5492
  try {
5492
5493
  if (y) {
5493
5494
  var k = function() {
@@ -5540,7 +5541,7 @@ function Wa() {
5540
5541
  }
5541
5542
  }
5542
5543
  } finally {
5543
- Ft = !1, Lt.current = M, Ni(), Error.prepareStackTrace = P;
5544
+ Ft = !1, Lt.current = I, Ni(), Error.prepareStackTrace = P;
5544
5545
  }
5545
5546
  var Re = l ? l.displayName || l.name : "", Oe = Re ? pt(Re) : "";
5546
5547
  return typeof l == "function" && yt.set(l, Oe), Oe;
@@ -5572,9 +5573,9 @@ function Wa() {
5572
5573
  case h:
5573
5574
  return bt(l.type, y, m);
5574
5575
  case p: {
5575
- var S = l, P = S._payload, M = S._init;
5576
+ var S = l, P = S._payload, I = S._init;
5576
5577
  try {
5577
- return bt(M(P), y, m);
5578
+ return bt(I(P), y, m);
5578
5579
  } catch {
5579
5580
  }
5580
5581
  }
@@ -5591,9 +5592,9 @@ function Wa() {
5591
5592
  }
5592
5593
  function qi(l, y, m, S, P) {
5593
5594
  {
5594
- var M = Function.call.bind(Ge);
5595
+ var I = Function.call.bind(Ge);
5595
5596
  for (var k in l)
5596
- if (M(l, k)) {
5597
+ if (I(l, k)) {
5597
5598
  var C = void 0;
5598
5599
  try {
5599
5600
  if (typeof l[k] != "function") {
@@ -5679,7 +5680,7 @@ function Wa() {
5679
5680
  });
5680
5681
  }
5681
5682
  }
5682
- var Xi = function(l, y, m, S, P, M, k) {
5683
+ var Xi = function(l, y, m, S, P, I, k) {
5683
5684
  var C = {
5684
5685
  // This tag allows us to uniquely identify this as a React Element
5685
5686
  $$typeof: n,
@@ -5689,7 +5690,7 @@ function Wa() {
5689
5690
  ref: m,
5690
5691
  props: k,
5691
5692
  // Record the component responsible for creating this element.
5692
- _owner: M
5693
+ _owner: I
5693
5694
  };
5694
5695
  return C._store = {}, Object.defineProperty(C._store, "validated", {
5695
5696
  configurable: !1,
@@ -5710,14 +5711,14 @@ function Wa() {
5710
5711
  };
5711
5712
  function es(l, y, m, S, P) {
5712
5713
  {
5713
- var M, k = {}, C = null, Y = null;
5714
+ var I, k = {}, C = null, Y = null;
5714
5715
  m !== void 0 && (tr(m), C = "" + m), Yi(y) && (tr(y.key), C = "" + y.key), Qi(y) && (Y = y.ref, Hi(y, P));
5715
- for (M in y)
5716
- Ge.call(y, M) && !Gi.hasOwnProperty(M) && (k[M] = y[M]);
5716
+ for (I in y)
5717
+ Ge.call(y, I) && !Gi.hasOwnProperty(I) && (k[I] = y[I]);
5717
5718
  if (l && l.defaultProps) {
5718
5719
  var x = l.defaultProps;
5719
- for (M in x)
5720
- k[M] === void 0 && (k[M] = x[M]);
5720
+ for (I in x)
5721
+ k[I] === void 0 && (k[I] = x[I]);
5721
5722
  }
5722
5723
  if (C || Y) {
5723
5724
  var L = typeof l == "function" ? l.displayName || l.name || "Unknown" : l;
@@ -5727,7 +5728,7 @@ function Wa() {
5727
5728
  }
5728
5729
  }
5729
5730
  var Vt = w.ReactCurrentOwner, sr = w.ReactDebugCurrentFrame;
5730
- function Ie(l) {
5731
+ function Me(l) {
5731
5732
  if (l) {
5732
5733
  var y = l._owner, m = bt(l.type, l._source, y ? y.type : null);
5733
5734
  sr.setExtraStackFrame(m);
@@ -5777,7 +5778,7 @@ Check the top-level render call using <` + m + ">.");
5777
5778
  return;
5778
5779
  ur[m] = !0;
5779
5780
  var S = "";
5780
- l && l._owner && l._owner !== Vt.current && (S = " It was passed a child from " + q(l._owner.type) + "."), Ie(l), v('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', m, S), Ie(null);
5781
+ l && l._owner && l._owner !== Vt.current && (S = " It was passed a child from " + q(l._owner.type) + "."), Me(l), v('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', m, S), Me(null);
5781
5782
  }
5782
5783
  }
5783
5784
  function cr(l, y) {
@@ -5794,7 +5795,7 @@ Check the top-level render call using <` + m + ">.");
5794
5795
  else if (l) {
5795
5796
  var P = T(l);
5796
5797
  if (typeof P == "function" && P !== l.entries)
5797
- for (var M = P.call(l), k; !(k = M.next()).done; )
5798
+ for (var I = P.call(l), k; !(k = I.next()).done; )
5798
5799
  zt(k.value) && ar(k.value, y);
5799
5800
  }
5800
5801
  }
@@ -5829,15 +5830,15 @@ Check the top-level render call using <` + m + ">.");
5829
5830
  for (var y = Object.keys(l.props), m = 0; m < y.length; m++) {
5830
5831
  var S = y[m];
5831
5832
  if (S !== "children" && S !== "key") {
5832
- Ie(l), v("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", S), Ie(null);
5833
+ Me(l), v("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", S), Me(null);
5833
5834
  break;
5834
5835
  }
5835
5836
  }
5836
- l.ref !== null && (Ie(l), v("Invalid attribute `ref` supplied to `React.Fragment`."), Ie(null));
5837
+ l.ref !== null && (Me(l), v("Invalid attribute `ref` supplied to `React.Fragment`."), Me(null));
5837
5838
  }
5838
5839
  }
5839
5840
  var dr = {};
5840
- function fr(l, y, m, S, P, M) {
5841
+ function fr(l, y, m, S, P, I) {
5841
5842
  {
5842
5843
  var k = we(l);
5843
5844
  if (!k) {
@@ -5848,7 +5849,7 @@ Check the top-level render call using <` + m + ">.");
5848
5849
  var x;
5849
5850
  l === null ? x = "null" : Wt(l) ? x = "array" : l !== void 0 && l.$$typeof === n ? (x = "<" + (q(l.type) || "Unknown") + " />", C = " Did you accidentally export a JSX literal instead of a component?") : x = typeof l, v("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", x, C);
5850
5851
  }
5851
- var L = es(l, y, m, P, M);
5852
+ var L = es(l, y, m, P, I);
5852
5853
  if (L == null)
5853
5854
  return L;
5854
5855
  if (k) {
@@ -6276,11 +6277,11 @@ function Yr(e) {
6276
6277
  }
6277
6278
  var Ui = (e) => {
6278
6279
  throw TypeError(e);
6279
- }, Bn = (e, t, n) => t.has(e) || Ui("Cannot " + n), A = (e, t, n) => (Bn(e, t, "read from private field"), n ? n.call(e) : t.get(e)), W = (e, t, n) => t.has(e) ? Ui("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, n), $ = (e, t, n, r) => (Bn(e, t, "write to private field"), t.set(e, n), n), _e = (e, t, n) => (Bn(e, t, "access private method"), n), ee, Ae, xe, Ot, Mt, rt, Le, it, me, De, Fe, Ue, Xe, ce, Sn, On, En, Hr, An, Cn, et, jn, kn;
6280
+ }, Bn = (e, t, n) => t.has(e) || Ui("Cannot " + n), A = (e, t, n) => (Bn(e, t, "read from private field"), n ? n.call(e) : t.get(e)), W = (e, t, n) => t.has(e) ? Ui("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, n), $ = (e, t, n, r) => (Bn(e, t, "write to private field"), t.set(e, n), n), _e = (e, t, n) => (Bn(e, t, "access private method"), n), ee, Ae, xe, Ot, It, rt, Le, it, me, De, Fe, Ue, Xe, ce, Sn, On, En, Hr, An, Cn, et, jn, kn;
6280
6281
  class Et extends EventTarget {
6281
6282
  constructor(t, n) {
6282
6283
  var r, i;
6283
- super(), W(this, ce), this.CONNECTING = 0, this.OPEN = 1, this.CLOSED = 2, W(this, ee), W(this, Ae), W(this, xe), W(this, Ot), W(this, Mt), W(this, rt), W(this, Le), W(this, it, null), W(this, me), W(this, De), W(this, Fe, null), W(this, Ue, null), W(this, Xe, null), W(this, On, async (s) => {
6284
+ super(), W(this, ce), this.CONNECTING = 0, this.OPEN = 1, this.CLOSED = 2, W(this, ee), W(this, Ae), W(this, xe), W(this, Ot), W(this, It), W(this, rt), W(this, Le), W(this, it, null), W(this, me), W(this, De), W(this, Fe, null), W(this, Ue, null), W(this, Xe, null), W(this, On, async (s) => {
6284
6285
  var o;
6285
6286
  A(this, De).reset();
6286
6287
  const { body: u, redirected: a, status: d, headers: c } = s;
@@ -6338,7 +6339,7 @@ class Et extends EventTarget {
6338
6339
  $(this, De, nc({
6339
6340
  onEvent: A(this, An),
6340
6341
  onRetry: A(this, Cn)
6341
- })), $(this, ee, this.CONNECTING), $(this, rt, 3e3), $(this, Mt, (r = n == null ? void 0 : n.fetch) != null ? r : globalThis.fetch), $(this, Ot, (i = n == null ? void 0 : n.withCredentials) != null ? i : !1), _e(this, ce, Sn).call(this);
6342
+ })), $(this, ee, this.CONNECTING), $(this, rt, 3e3), $(this, It, (r = n == null ? void 0 : n.fetch) != null ? r : globalThis.fetch), $(this, Ot, (i = n == null ? void 0 : n.withCredentials) != null ? i : !1), _e(this, ce, Sn).call(this);
6342
6343
  }
6343
6344
  /**
6344
6345
  * Returns the state of this EventSource object's connection. It can have the values described below.
@@ -6411,13 +6412,13 @@ class Et extends EventTarget {
6411
6412
  A(this, Le) && clearTimeout(A(this, Le)), A(this, ee) !== this.CLOSED && (A(this, me) && A(this, me).abort(), $(this, ee, this.CLOSED), $(this, me, void 0));
6412
6413
  }
6413
6414
  }
6414
- ee = /* @__PURE__ */ new WeakMap(), Ae = /* @__PURE__ */ new WeakMap(), xe = /* @__PURE__ */ new WeakMap(), Ot = /* @__PURE__ */ new WeakMap(), Mt = /* @__PURE__ */ new WeakMap(), rt = /* @__PURE__ */ new WeakMap(), Le = /* @__PURE__ */ new WeakMap(), it = /* @__PURE__ */ new WeakMap(), me = /* @__PURE__ */ new WeakMap(), De = /* @__PURE__ */ new WeakMap(), Fe = /* @__PURE__ */ new WeakMap(), Ue = /* @__PURE__ */ new WeakMap(), Xe = /* @__PURE__ */ new WeakMap(), ce = /* @__PURE__ */ new WeakSet(), /**
6415
+ ee = /* @__PURE__ */ new WeakMap(), Ae = /* @__PURE__ */ new WeakMap(), xe = /* @__PURE__ */ new WeakMap(), Ot = /* @__PURE__ */ new WeakMap(), It = /* @__PURE__ */ new WeakMap(), rt = /* @__PURE__ */ new WeakMap(), Le = /* @__PURE__ */ new WeakMap(), it = /* @__PURE__ */ new WeakMap(), me = /* @__PURE__ */ new WeakMap(), De = /* @__PURE__ */ new WeakMap(), Fe = /* @__PURE__ */ new WeakMap(), Ue = /* @__PURE__ */ new WeakMap(), Xe = /* @__PURE__ */ new WeakMap(), ce = /* @__PURE__ */ new WeakSet(), /**
6415
6416
  * Connect to the given URL and start receiving events
6416
6417
  *
6417
6418
  * @internal
6418
6419
  */
6419
6420
  Sn = function() {
6420
- $(this, ee, this.CONNECTING), $(this, me, new AbortController()), A(this, Mt)(A(this, Ae), _e(this, ce, Hr).call(this)).then(A(this, On)).catch(A(this, En));
6421
+ $(this, ee, this.CONNECTING), $(this, me, new AbortController()), A(this, It)(A(this, Ae), _e(this, ce, Hr).call(this)).then(A(this, On)).catch(A(this, En));
6421
6422
  }, On = /* @__PURE__ */ new WeakMap(), En = /* @__PURE__ */ new WeakMap(), /**
6422
6423
  * Get request options for the `fetch()` request
6423
6424
  *
@@ -6511,10 +6512,10 @@ function yc({
6511
6512
  keys: [c]
6512
6513
  }), h = n._core._reactor.getPresence(n.type, n.id);
6513
6514
  function p(w, v) {
6514
- const I = v.clientX, E = v.clientY, U = (I - w.left) / w.width * 100, F = (E - w.top) / w.height * 100;
6515
+ const M = v.clientX, E = v.clientY, U = (M - w.left) / w.width * 100, F = (E - w.top) / w.height * 100;
6515
6516
  f.publishPresence({
6516
6517
  [c]: {
6517
- x: I,
6518
+ x: M,
6518
6519
  y: E,
6519
6520
  xPercent: U,
6520
6521
  yPercent: F,
@@ -6538,8 +6539,8 @@ function yc({
6538
6539
  const v = w.touches[0];
6539
6540
  if (v.target instanceof Element) {
6540
6541
  a || w.stopPropagation();
6541
- const I = v.target.getBoundingClientRect();
6542
- p(I, v);
6542
+ const M = v.target.getBoundingClientRect();
6543
+ p(M, v);
6543
6544
  }
6544
6545
  }
6545
6546
  function T(w) {
@@ -6571,20 +6572,20 @@ function yc({
6571
6572
  zIndex: d !== void 0 ? d : cc
6572
6573
  },
6573
6574
  children: Object.entries(f.peers).map(([w, v]) => {
6574
- const I = v[c];
6575
- return I ? /* @__PURE__ */ K.jsx(
6575
+ const M = v[c];
6576
+ return M ? /* @__PURE__ */ K.jsx(
6576
6577
  "div",
6577
6578
  {
6578
6579
  style: {
6579
6580
  ...Jr,
6580
- transform: `translate(${I.xPercent}%, ${I.yPercent}%)`,
6581
+ transform: `translate(${M.xPercent}%, ${M.yPercent}%)`,
6581
6582
  transformOrigin: "0 0",
6582
6583
  transition: "transform 100ms"
6583
6584
  },
6584
6585
  children: u ? u({
6585
- color: I.color,
6586
+ color: M.color,
6586
6587
  presence: h.peers[w]
6587
- }) : /* @__PURE__ */ K.jsx(uc, { ...I })
6588
+ }) : /* @__PURE__ */ K.jsx(uc, { ...M })
6588
6589
  },
6589
6590
  w
6590
6591
  ) : null;
@@ -1,4 +1,4 @@
1
- (function(Y,k){typeof exports=="object"&&typeof module<"u"?k(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],k):(Y=typeof globalThis<"u"?globalThis:Y||self,k(Y.instantReact={},Y.React))})(this,function(Y,k){"use strict";function ee(e){if(typeof e=="number")return(Math.abs(e*2654435761)>>>0).toString(16);if(typeof e=="boolean")return e?"1":"0";if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e=="string"){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24),t=t>>>0;return t.toString(16)}if(Array.isArray(e)){let t=2166136261;for(let n=0;n<e.length;n++){t^=(n+1)*2654435761;const r=ee(e[n]);for(let i=0;i<r.length;i++)t^=r.charCodeAt(i),t*=16777619,t=t>>>0}return t.toString(16)}if(typeof e=="object"){let t=2166136261;const n=Object.keys(e).sort();for(let r=0;r<n.length;r++){const i=n[r],s=ee(i);t^=parseInt(s,16),t*=16777619,t=t>>>0;const o=ee(e[i]);t^=parseInt(o,16),t*=16777619,t=t>>>0}return t.toString(16)}return ee(String(e))}const $={Remove:"remove",Replace:"replace",Add:"add"},Bn=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Di=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),dt=Symbol.iterator,oe={mutable:"mutable",immutable:"immutable"},Lt={};function Ge(e,t){return e instanceof Map?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function qn(e,t){if(t in e){let n=Reflect.getPrototypeOf(e);for(;n;){const r=Reflect.getOwnPropertyDescriptor(n,t);if(r)return r;n=Reflect.getPrototypeOf(n)}}}function Nt(e){return Object.getPrototypeOf(e)===Set.prototype}function Ft(e){return Object.getPrototypeOf(e)===Map.prototype}function ae(e){var t;return(t=e.copy)!==null&&t!==void 0?t:e.original}function Oe(e){return!!C(e)}function C(e){return typeof e!="object"?null:e==null?void 0:e[Bn]}function Wt(e){var t;const n=C(e);return n?(t=n.copy)!==null&&t!==void 0?t:n.original:e}function de(e,t){if(!e||typeof e!="object")return!1;let n;return Object.getPrototypeOf(e)===Object.prototype||Array.isArray(e)||e instanceof Map||e instanceof Set||!!(t!=null&&t.mark)&&((n=t.mark(e,oe))===oe.immutable||typeof n=="function")}function Gn(e,t=[]){if(Object.hasOwnProperty.call(e,"key")){const n=e.parent.copy,r=C(ge(n,e.key));if(r!==null&&(r==null?void 0:r.original)!==e.original)return null;const i=e.parent.type===3,s=i?Array.from(e.parent.setMap.keys()).indexOf(e.key):e.key;if(!(i&&n.size>s||Ge(n,s)))return null;t.push(s)}if(e.parent)return Gn(e.parent,t);t.reverse();try{$i(e.copy,t)}catch{return null}return t}function Ee(e){return Array.isArray(e)?1:e instanceof Map?2:e instanceof Set?3:0}function ge(e,t){return Ee(e)===2?e.get(t):e[t]}function Qe(e,t,n){Ee(e)===2?e.set(t,n):e[t]=n}function Vt(e,t){const n=C(e);return(n?ae(n):e)[t]}function Te(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function zt(e){if(e)for(;e.finalities.revoke.length>0;)e.finalities.revoke.pop()()}function Ae(e,t){return t?e:[""].concat(e).map(n=>{const r=`${n}`;return r.indexOf("/")===-1&&r.indexOf("~")===-1?r:r.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")}function $i(e,t){for(let n=0;n<t.length-1;n+=1){const r=t[n];if(e=ge(Ee(e)===3?Array.from(e):e,r),typeof e!="object")throw new Error(`Cannot resolve patch at '${t.join("/")}'.`)}return e}function Ui(e){const t=Object.create(Object.getPrototypeOf(e));return Reflect.ownKeys(e).forEach(n=>{let r=Reflect.getOwnPropertyDescriptor(e,n);if(r.enumerable&&r.configurable&&r.writable){t[n]=e[n];return}r.writable||(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(r={configurable:!0,writable:!0,enumerable:r.enumerable,value:e[n]}),Reflect.defineProperty(t,n,r)}),t}const Li=Object.prototype.propertyIsEnumerable;function Qn(e,t){let n;if(Array.isArray(e))return Array.prototype.concat.call(e);if(e instanceof Set){if(!Nt(e)){const r=Object.getPrototypeOf(e).constructor;return new r(e.values())}return Set.prototype.difference?Set.prototype.difference.call(e,new Set):new Set(e.values())}else if(e instanceof Map){if(!Ft(e)){const r=Object.getPrototypeOf(e).constructor;return new r(e)}return new Map(e)}else if(t!=null&&t.mark&&(n=t.mark(e,oe),n!==void 0)&&n!==oe.mutable){if(n===oe.immutable)return Ui(e);if(typeof n=="function"){if(t.enablePatches||t.enableAutoFreeze)throw new Error("You can't use mark and patches or auto freeze together.");return n()}throw new Error(`Unsupported mark result: ${n}`)}else if(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype){const r={};return Object.keys(e).forEach(i=>{r[i]=e[i]}),Object.getOwnPropertySymbols(e).forEach(i=>{Li.call(e,i)&&(r[i]=e[i])}),r}else throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function H(e){e.copy||(e.copy=Qn(e.original,e.options))}function Ye(e){if(!de(e))return Wt(e);if(Array.isArray(e))return e.map(Ye);if(e instanceof Map){const n=Array.from(e.entries()).map(([r,i])=>[r,Ye(i)]);if(!Ft(e)){const r=Object.getPrototypeOf(e).constructor;return new r(n)}return new Map(n)}if(e instanceof Set){const n=Array.from(e).map(Ye);if(!Nt(e)){const r=Object.getPrototypeOf(e).constructor;return new r(n)}return new Set(n)}const t=Object.create(Object.getPrototypeOf(e));for(const n in e)t[n]=Ye(e[n]);return t}function ft(e){return Oe(e)?Ye(e):e}function ye(e){var t;e.assignedMap=(t=e.assignedMap)!==null&&t!==void 0?t:new Map,e.operated||(e.operated=!0,e.parent&&ye(e.parent))}function Yn(){throw new Error("Cannot modify frozen object")}function Me(e,t,n,r,i){{n=n??new WeakMap,r=r??[],i=i??[];const o=n.has(e)?n.get(e):e;if(r.length>0){const a=r.indexOf(o);if(o&&typeof o=="object"&&a!==-1)throw r[0]===o?new Error("Forbids circular reference"):new Error(`Forbids circular reference: ~/${i.slice(0,a).map((u,d)=>{if(typeof u=="symbol")return`[${u.toString()}]`;const c=r[d];return typeof u=="object"&&(c instanceof Map||c instanceof Set)?Array.from(c.keys()).indexOf(u):u}).join("/")}`);r.push(o),i.push(t)}else r.push(o)}if(Object.isFrozen(e)||Oe(e)){r.pop(),i.pop();return}switch(Ee(e)){case 2:for(const[a,u]of e)Me(a,a,n,r,i),Me(u,a,n,r,i);e.set=e.clear=e.delete=Yn;break;case 3:for(const a of e)Me(a,a,n,r,i);e.add=e.clear=e.delete=Yn;break;case 1:Object.freeze(e);let o=0;for(const a of e)Me(a,o,n,r,i),o+=1;break;default:Object.freeze(e),Object.keys(e).forEach(a=>{const u=e[a];Me(u,a,n,r,i)})}r.pop(),i.pop()}function Kt(e,t){const n=Ee(e);if(n===0)Reflect.ownKeys(e).forEach(r=>{t(r,e[r],e)});else if(n===1){let r=0;for(const i of e)t(r,i,e),r+=1}else e.forEach((r,i)=>t(i,r,e))}function Hn(e,t,n){if(Oe(e)||!de(e,n)||t.has(e)||Object.isFrozen(e))return;const r=e instanceof Set,i=r?new Map:void 0;if(t.add(e),Kt(e,(s,o)=>{var a;if(Oe(o)){const u=C(o);H(u);const d=!((a=u.assignedMap)===null||a===void 0)&&a.size||u.operated?u.copy:u.original;Qe(r?i:e,s,d)}else Hn(o,t,n)}),i){const s=e,o=Array.from(s);s.clear(),o.forEach(a=>{s.add(i.has(a)?i.get(a):a)})}}function Ni(e,t){const n=e.type===3?e.setMap:e.copy;e.finalities.revoke.length>1&&e.assignedMap.get(t)&&n&&Hn(ge(n,t),e.finalities.handledSet,e.options)}function Bt(e){e.type===3&&e.copy&&(e.copy.clear(),e.setMap.forEach(t=>{e.copy.add(Wt(t))}))}function qt(e,t,n,r){if(e.operated&&e.assignedMap&&e.assignedMap.size>0&&!e.finalized){if(n&&r){const s=Gn(e);s&&t(e,s,n,r)}e.finalized=!0}}function Gt(e,t,n,r){const i=C(n);i&&(i.callbacks||(i.callbacks=[]),i.callbacks.push((s,o)=>{var a;const u=e.type===3?e.setMap:e.copy;if(Te(ge(u,t),n)){let d=i.original;i.copy&&(d=i.copy),Bt(e),qt(e,r,s,o),e.options.enableAutoFreeze&&(e.options.updatedValues=(a=e.options.updatedValues)!==null&&a!==void 0?a:new WeakMap,e.options.updatedValues.set(d,i.original)),Qe(u,t,d)}}),e.options.enableAutoFreeze&&i.finalities!==e.finalities&&(e.options.enableAutoFreeze=!1)),de(n,e.options)&&e.finalities.draft.push(()=>{const s=e.type===3?e.setMap:e.copy;Te(ge(s,t),n)&&Ni(e,t)})}function Fi(e,t,n,r,i){let{original:s,assignedMap:o,options:a}=e,u=e.copy;u.length<s.length&&([s,u]=[u,s],[n,r]=[r,n]);for(let d=0;d<s.length;d+=1)if(o.get(d.toString())&&u[d]!==s[d]){const c=t.concat([d]),f=Ae(c,i);n.push({op:$.Replace,path:f,value:ft(u[d])}),r.push({op:$.Replace,path:f,value:ft(s[d])})}for(let d=s.length;d<u.length;d+=1){const c=t.concat([d]),f=Ae(c,i);n.push({op:$.Add,path:f,value:ft(u[d])})}if(s.length<u.length){const{arrayLengthAssignment:d=!0}=a.enablePatches;if(d){const c=t.concat(["length"]),f=Ae(c,i);r.push({op:$.Replace,path:f,value:s.length})}else for(let c=u.length;s.length<c;c-=1){const f=t.concat([c-1]),h=Ae(f,i);r.push({op:$.Remove,path:h})}}}function Wi({original:e,copy:t,assignedMap:n},r,i,s,o){n.forEach((a,u)=>{const d=ge(e,u),c=ft(ge(t,u)),f=a?Ge(e,u)?$.Replace:$.Add:$.Remove;if(Te(d,c)&&f===$.Replace)return;const h=r.concat(u),p=Ae(h,o);i.push(f===$.Remove?{op:f,path:p}:{op:f,path:p,value:c}),s.push(f===$.Add?{op:$.Remove,path:p}:f===$.Remove?{op:$.Add,path:p,value:d}:{op:$.Replace,path:p,value:d})})}function Vi({original:e,copy:t},n,r,i,s){let o=0;e.forEach(a=>{if(!t.has(a)){const u=n.concat([o]),d=Ae(u,s);r.push({op:$.Remove,path:d,value:a}),i.unshift({op:$.Add,path:d,value:a})}o+=1}),o=0,t.forEach(a=>{if(!e.has(a)){const u=n.concat([o]),d=Ae(u,s);r.push({op:$.Add,path:d,value:a}),i.unshift({op:$.Remove,path:d,value:a})}o+=1})}function He(e,t,n,r){const{pathAsArray:i=!0}=e.options.enablePatches;switch(e.type){case 0:case 2:return Wi(e,t,n,r,i);case 1:return Fi(e,t,n,r,i);case 3:return Vi(e,t,n,r,i)}}const lt=(e,t,n=!1)=>{if(typeof e=="object"&&e!==null&&(!de(e,t)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},Qt={get size(){return ae(C(this)).size},has(e){return ae(C(this)).has(e)},set(e,t){const n=C(this),r=ae(n);return(!r.has(e)||!Te(r.get(e),t))&&(H(n),ye(n),n.assignedMap.set(e,!0),n.copy.set(e,t),Gt(n,e,t,He)),this},delete(e){if(!this.has(e))return!1;const t=C(this);return H(t),ye(t),t.original.has(e)?t.assignedMap.set(e,!1):t.assignedMap.delete(e),t.copy.delete(e),!0},clear(){const e=C(this);if(this.size){H(e),ye(e),e.assignedMap=new Map;for(const[t]of e.original)e.assignedMap.set(t,!1);e.copy.clear()}},forEach(e,t){const n=C(this);ae(n).forEach((r,i)=>{e.call(t,this.get(i),i,this)})},get(e){var t,n;const r=C(this),i=ae(r).get(e),s=((n=(t=r.options).mark)===null||n===void 0?void 0:n.call(t,i,oe))===oe.mutable;if(r.options.strict&&lt(i,r.options,s),s||r.finalized||!de(i,r.options)||i!==r.original.get(e))return i;const o=Lt.createDraft({original:i,parentDraft:r,key:e,finalities:r.finalities,options:r.options});return H(r),r.copy.set(e,o),o},keys(){return ae(C(this)).keys()},values(){const e=this.keys();return{[dt]:()=>this.values(),next:()=>{const t=e.next();return t.done?t:{done:!1,value:this.get(t.value)}}}},entries(){const e=this.keys();return{[dt]:()=>this.entries(),next:()=>{const t=e.next();if(t.done)return t;const n=this.get(t.value);return{done:!1,value:[t.value,n]}}}},[dt](){return this.entries()}},zi=Reflect.ownKeys(Qt),Jn=(e,t,{isValuesIterator:n})=>()=>{var r,i;const s=t.next();if(s.done)return s;const o=s.value;let a=e.setMap.get(o);const u=C(a),d=((i=(r=e.options).mark)===null||i===void 0?void 0:i.call(r,a,oe))===oe.mutable;if(e.options.strict&&lt(o,e.options,d),!d&&!u&&de(o,e.options)&&!e.finalized&&e.original.has(o)){const c=Lt.createDraft({original:o,parentDraft:e,key:o,finalities:e.finalities,options:e.options});e.setMap.set(o,c),a=c}else u&&(a=u.proxy);return{done:!1,value:n?a:[a,a]}},ht={get size(){return C(this).setMap.size},has(e){const t=C(this);if(t.setMap.has(e))return!0;H(t);const n=C(e);return!!(n&&t.setMap.has(n.original))},add(e){const t=C(this);return this.has(e)||(H(t),ye(t),t.assignedMap.set(e,!0),t.setMap.set(e,e),Gt(t,e,e,He)),this},delete(e){if(!this.has(e))return!1;const t=C(this);H(t),ye(t);const n=C(e);return n&&t.setMap.has(n.original)?(t.assignedMap.set(n.original,!1),t.setMap.delete(n.original)):(!n&&t.setMap.has(e)?t.assignedMap.set(e,!1):t.assignedMap.delete(e),t.setMap.delete(e))},clear(){if(!this.size)return;const e=C(this);H(e),ye(e);for(const t of e.original)e.assignedMap.set(t,!1);e.setMap.clear()},values(){const e=C(this);H(e);const t=e.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:Jn(e,t,{isValuesIterator:!0})}},entries(){const e=C(this);H(e);const t=e.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:Jn(e,t,{isValuesIterator:!1})}},keys(){return this.values()},[dt](){return this.values()},forEach(e,t){const n=this.values();let r=n.next();for(;!r.done;)e.call(t,r.value,r.value,this),r=n.next()}};Set.prototype.difference&&Object.assign(ht,{intersection(e){return Set.prototype.intersection.call(new Set(this.values()),e)},union(e){return Set.prototype.union.call(new Set(this.values()),e)},difference(e){return Set.prototype.difference.call(new Set(this.values()),e)},symmetricDifference(e){return Set.prototype.symmetricDifference.call(new Set(this.values()),e)},isSubsetOf(e){return Set.prototype.isSubsetOf.call(new Set(this.values()),e)},isSupersetOf(e){return Set.prototype.isSupersetOf.call(new Set(this.values()),e)},isDisjointFrom(e){return Set.prototype.isDisjointFrom.call(new Set(this.values()),e)}});const Ki=Reflect.ownKeys(ht),Zn=new WeakSet,Xn={get(e,t,n){var r,i;const s=(r=e.copy)===null||r===void 0?void 0:r[t];if(s&&Zn.has(s))return s;if(t===Bn)return e;let o;if(e.options.mark){const d=t==="size"&&(e.original instanceof Map||e.original instanceof Set)?Reflect.get(e.original,t):Reflect.get(e.original,t,n);if(o=e.options.mark(d,oe),o===oe.mutable)return e.options.strict&&lt(d,e.options,!0),d}const a=ae(e);if(a instanceof Map&&zi.includes(t)){if(t==="size")return Object.getOwnPropertyDescriptor(Qt,"size").get.call(e.proxy);const d=Qt[t];if(d)return d.bind(e.proxy)}if(a instanceof Set&&Ki.includes(t)){if(t==="size")return Object.getOwnPropertyDescriptor(ht,"size").get.call(e.proxy);const d=ht[t];if(d)return d.bind(e.proxy)}if(!Ge(a,t)){const d=qn(a,t);return d?"value"in d?d.value:(i=d.get)===null||i===void 0?void 0:i.call(e.proxy):void 0}const u=a[t];if(e.options.strict&&lt(u,e.options),e.finalized||!de(u,e.options))return u;if(u===Vt(e.original,t)){if(H(e),e.copy[t]=Yt({original:e.original[t],parentDraft:e,key:e.type===1?Number(t):t,finalities:e.finalities,options:e.options}),typeof o=="function"){const d=C(e.copy[t]);return H(d),ye(d),d.copy}return e.copy[t]}return u},set(e,t,n){var r;if(e.type===3||e.type===2)throw new Error("Map/Set draft does not support any property assignment.");let i;if(e.type===1&&t!=="length"&&!(Number.isInteger(i=Number(t))&&i>=0&&(t===0||i===0||String(i)===String(t))))throw new Error("Only supports setting array indices and the 'length' property.");const s=qn(ae(e),t);if(s!=null&&s.set)return s.set.call(e.proxy,n),!0;const o=Vt(ae(e),t),a=C(o);return a&&Te(a.original,n)?(e.copy[t]=n,e.assignedMap=(r=e.assignedMap)!==null&&r!==void 0?r:new Map,e.assignedMap.set(t,!1),!0):(Te(n,o)&&(n!==void 0||Ge(e.original,t))||(H(e),ye(e),Ge(e.original,t)&&Te(n,e.original[t])?e.assignedMap.delete(t):e.assignedMap.set(t,!0),e.copy[t]=n,Gt(e,t,n,He)),!0)},has(e,t){return t in ae(e)},ownKeys(e){return Reflect.ownKeys(ae(e))},getOwnPropertyDescriptor(e,t){const n=ae(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},getPrototypeOf(e){return Reflect.getPrototypeOf(e.original)},setPrototypeOf(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty(e,t){var n;return e.type===1?Xn.set.call(this,e,t,void 0,e.proxy):(Vt(e.original,t)!==void 0||t in e.original?(H(e),ye(e),e.assignedMap.set(t,!1)):(e.assignedMap=(n=e.assignedMap)!==null&&n!==void 0?n:new Map,e.assignedMap.delete(t)),e.copy&&delete e.copy[t],!0)}};function Yt(e){const{original:t,parentDraft:n,key:r,finalities:i,options:s}=e,o=Ee(t),a={type:o,finalized:!1,parent:n,original:t,copy:null,proxy:null,finalities:i,options:s,setMap:o===3?new Map(t.entries()):void 0};(r||"key"in e)&&(a.key=r);const{proxy:u,revoke:d}=Proxy.revocable(o===1?Object.assign([],a):a,Xn);if(i.revoke.push(d),Zn.add(u),a.proxy=u,n){const c=n;c.finalities.draft.push((f,h)=>{var p,_;const b=C(u);let g=c.type===3?c.setMap:c.copy;const T=ge(g,r),w=C(T);if(w){let v=w.original;w.operated&&(v=Wt(T)),Bt(w),qt(w,He,f,h),c.options.enableAutoFreeze&&(c.options.updatedValues=(p=c.options.updatedValues)!==null&&p!==void 0?p:new WeakMap,c.options.updatedValues.set(v,w.original)),Qe(g,r,v)}(_=b.callbacks)===null||_===void 0||_.forEach(v=>{v(f,h)})})}else{const c=C(u);c.finalities.draft.push((f,h)=>{Bt(c),qt(c,He,f,h)})}return u}Lt.createDraft=Yt;function Bi(e,t,n,r,i){var s;const o=C(e),a=(s=o==null?void 0:o.original)!==null&&s!==void 0?s:e,u=!!t.length;if(o!=null&&o.operated)for(;o.finalities.draft.length>0;)o.finalities.draft.pop()(n,r);const d=u?t[0]:o?o.operated?o.copy:o.original:e;return o&&zt(o),i&&Me(d,d,o==null?void 0:o.options.updatedValues),[d,n&&u?[{op:$.Replace,path:[],value:t[0]}]:n,r&&u?[{op:$.Replace,path:[],value:a}]:r]}function qi(e,t){var n;const r={draft:[],revoke:[],handledSet:new WeakSet};let i,s;t.enablePatches&&(i=[],s=[]);const a=((n=t.mark)===null||n===void 0?void 0:n.call(t,e,oe))===oe.mutable||!de(e,t)?e:Yt({original:e,parentDraft:null,finalities:r,options:t});return[a,(u=[])=>{const[d,c,f]=Bi(a,u,i,s,t.enableAutoFreeze);return t.enablePatches?[d,c,f]:d}]}function Ht(e){const{rootDraft:t,value:n,useRawReturn:r=!1,isRoot:i=!0}=e;Kt(n,(s,o,a)=>{const u=C(o);if(u&&t&&u.finalities===t.finalities){e.isContainDraft=!0;const d=u.original;if(a instanceof Set){const c=Array.from(a);a.clear(),c.forEach(f=>a.add(s===f?d:f))}else Qe(a,s,d)}else typeof o=="object"&&o!==null&&(e.value=o,e.isRoot=!1,Ht(e))}),i&&(e.isContainDraft||console.warn("The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance."),r&&console.warn("The return value contains drafts, please don't use 'rawReturn()' to wrap the return value."))}function er(e){var t;const n=C(e);if(!de(e,n==null?void 0:n.options))return e;const r=Ee(e);if(n&&!n.operated)return n.original;let i;function s(){i=r===2?Ft(e)?new Map(e):new(Object.getPrototypeOf(e)).constructor(e):r===3?Array.from(n.setMap.values()):Qn(e,n==null?void 0:n.options)}if(n){n.finalized=!0;try{s()}finally{n.finalized=!1}}else i=e;if(Kt(i,(o,a)=>{if(n&&Te(ge(n.original,o),a))return;const u=er(a);u!==a&&(i===e&&s(),Qe(i,o,u))}),r===3){const o=(t=n==null?void 0:n.original)!==null&&t!==void 0?t:i;return Nt(o)?new Set(i):new(Object.getPrototypeOf(o)).constructor(i)}return i}function tr(e){if(!Oe(e))throw new Error(`current() is only used for Draft, parameter: ${e}`);return er(e)}const Jt=(e=>function t(n,r,i){var s,o,a;if(typeof n=="function"&&typeof r!="function")return function(E,...N){return t(E,V=>n.call(this,V,...N),r)};const u=n,d=r;let c=i;if(typeof r!="function"&&(c=r),c!==void 0&&Object.prototype.toString.call(c)!=="[object Object]")throw new Error(`Invalid options: ${c}, 'options' should be an object.`);c=Object.assign(Object.assign({},e),c);const f=Oe(u)?tr(u):u,h=Array.isArray(c.mark)?(E,N)=>{for(const V of c.mark){if(typeof V!="function")throw new Error(`Invalid mark: ${V}, 'mark' should be a function.`);const be=V(E,N);if(be)return be}}:c.mark,p=(s=c.enablePatches)!==null&&s!==void 0?s:!1,_=(o=c.strict)!==null&&o!==void 0?o:!1,g={enableAutoFreeze:(a=c.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:h,strict:_,enablePatches:p};if(!de(f,g)&&typeof f=="object"&&f!==null)throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");const[T,w]=qi(f,g);if(typeof r!="function"){if(!de(f,g))throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");return[T,w]}let v;try{v=d(T)}catch(E){throw zt(C(T)),E}const R=E=>{const N=C(T);if(!Oe(E)){if(E!==void 0&&!Te(E,T)&&(N!=null&&N.operated))throw new Error("Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.");const be=E==null?void 0:E[Di];if(be){const O=be[0];return g.strict&&typeof E=="object"&&E!==null&&Ht({rootDraft:N,value:E,useRawReturn:!0}),w([O])}if(E!==void 0)return typeof E=="object"&&E!==null&&Ht({rootDraft:N,value:E}),w([E])}if(E===T||E===void 0)return w([]);const V=C(E);if(g===V.options){if(V.operated)throw new Error("Cannot return a modified child draft.");return w([tr(E)])}return w([E])};return v instanceof Promise?v.then(R,E=>{throw zt(C(T)),E}):R(v)})();Object.prototype.constructor.toString();function nr(e,t){const n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&Object.keys(e).every(i=>t.hasOwnProperty(i))}function rr(e,t){return Object.keys(e).length===Object.keys(t).length&&Object.keys(e).every(n=>t.hasOwnProperty(n)&&e[n]===t[n])}function pt(e,t){return typeof e!="object"||typeof t!="object"||e===null||t===null?e===t:nr(e,t)?Object.keys(e).every(n=>pt(e[n],t[n])):!1}function Zt(e){if(!Je(e))return e;const t={};for(const[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}function ir(e,t){if(!Je(e)||!Je(t))return t;const n=Object.assign({},e);for(const r of Object.keys(t)){if(t[r]===void 0)continue;if(t[r]===null){delete n[r];continue}const i=Je(e[r])&&Je(t[r]);n[r]=i?ir(e[r],t[r]):t[r]}return n}function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Gi(e,t,n){if(!e||t.length===0)return;let r=e||{};for(let s=0;s<t.length-1;s++){const o=t[s];(!(o in r)||typeof r[o]!="object")&&(r[o]=typeof t[s+1]=="number"?[]:{}),r=r[o]}const i=t[t.length-1];Array.isArray(r)&&typeof i=="number"?r.splice(i,0,n):r[i]=n}function sr(e,t,n){if(!e||t.length===0)return;let r=e||{};for(let i=0;i<t.length-1;i++){const s=t[i];(!(s in r)||typeof r[s]!="object")&&(r[s]=typeof t[i+1]=="number"?[]:{}),r=r[s]}r[t[t.length-1]]=n}function or(e,t){if(!e||t.length===0)return;const[n,...r]=t;if(n in e){if(r.length===0){Array.isArray(e)?e.splice(n,1):delete e[n];return}or(e[n],r),Qi(e[n])&&delete e[n]}}function Qi(e){return e&&Object.keys(e).length===0}const ar=/ZULU|YEKT|YEKST|YAPT|YAKT|YAKST|XJT|WGT|WGST|WFT|WETDST|WET|WDT|WAT|WAST|WAKT|WADT|VUT|VOLT|VLAT|VLAST|VET|UZT|UZST|UYT|UYST|UTC|UT|ULAT|ULAST|UCT|TVT|TRUT|TOT|TMT|TKT|TJT|TFT|TAHT|SGT|SCT|SAST|SADT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PKST|PHT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZT|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|MYT|MVT|MUT|MUST|MST|MSK|MSD|MPT|MMT|MHT|MEZ|METDST|MET|MESZ|MEST|MDT|MAWT|MART|MAGT|MAGST|LKT|LINT|LIGT|LHST|LHDT|KST|KRAT|KRAST|KOST|KGT|KGST|KDT|JST|JAYT|IST|IRT|IRKT|IRKST|IOT|IDT|ICT|HST|HKT|GYT|GMT|GILT|GFT|GET|GEST|GAMT|GALT|FNT|FNST|FKT|FKST|FJT|FJST|FET|EST|EGT|EGST|EETDST|EET|EEST|EDT|EAT|EAST|EASST|DDUT|DAVT|CXT|CST|COT|CLT|CLST|CKT|CHUT|CHAST|CHADT|CETDST|CET|CEST|CDT|CCT|CAST|CADT|BTT|BST|BRT|BRST|BRA|BOT|BORT|BNT|BDT|BDST|AZT|AZST|AZOT|AZOST|AWST|AWSST|AST|ART|ARST|ANAT|ANAST|AMT|AMST|ALMT|ALMST|AKST|AKDT|AFT|AEST|AESST|AEDT|ADT|ACWST|ACT|ACST|ACSST|ACDT$/,Yi={ZULU:0,YEKT:18e3,YEKST:21600,YAPT:36e3,YAKT:32400,YAKST:32400,XJT:21600,WGT:-10800,WGST:-7200,WFT:43200,WETDST:3600,WET:0,WDT:32400,WAT:3600,WAST:25200,WAKT:43200,WADT:28800,VUT:39600,VOLT:10800,VLAT:36e3,VLAST:36e3,VET:-14400,UZT:18e3,UZST:21600,UYT:-10800,UYST:-7200,UTC:0,UT:0,ULAT:28800,ULAST:32400,UCT:0,TVT:43200,TRUT:36e3,TOT:46800,TMT:18e3,TKT:46800,TJT:18e3,TFT:18e3,TAHT:-36e3,SGT:28800,SCT:14400,SAST:7200,SADT:37800,RET:14400,PYT:-14400,PYST:-10800,PWT:32400,PST:-28800,PONT:39600,PMST:-10800,PMDT:-7200,PKT:18e3,PKST:21600,PHT:28800,PGT:36e3,PETT:43200,PETST:43200,PET:-18e3,PDT:-25200,OMST:21600,OMSST:21600,NZT:43200,NZST:43200,NZDT:46800,NUT:-39600,NST:-12600,NPT:20700,NOVT:25200,NOVST:25200,NFT:-12600,NDT:-9e3,MYT:28800,MVT:18e3,MUT:14400,MUST:18e3,MST:-25200,MSK:10800,MSD:14400,MPT:36e3,MMT:23400,MHT:43200,MEZ:3600,METDST:7200,MET:3600,MESZ:7200,MEST:7200,MDT:-21600,MAWT:18e3,MART:-34200,MAGT:39600,MAGST:39600,LKT:19800,LINT:50400,LIGT:36e3,LHST:37800,LHDT:37800,KST:32400,KRAT:25200,KRAST:25200,KOST:39600,KGT:21600,KGST:21600,KDT:36e3,JST:32400,JAYT:32400,IST:7200,IRT:12600,IRKT:28800,IRKST:28800,IOT:21600,IDT:10800,ICT:25200,HST:-36e3,HKT:28800,GYT:-14400,GMT:0,GILT:43200,GFT:-10800,GET:14400,GEST:14400,GAMT:-32400,GALT:-21600,FNT:-7200,FNST:-3600,FKT:-10800,FKST:-10800,FJT:43200,FJST:46800,FET:10800,EST:-18e3,EGT:-3600,EGST:0,EETDST:10800,EET:7200,EEST:10800,EDT:-14400,EAT:10800,EAST:-21600,EASST:-21600,DDUT:36e3,DAVT:25200,CXT:25200,CST:-21600,COT:-18e3,CLT:-14400,CLST:-10800,CKT:-36e3,CHUT:36e3,CHAST:45900,CHADT:49500,CETDST:7200,CET:3600,CEST:7200,CDT:-18e3,CCT:28800,CAST:34200,CADT:37800,BTT:21600,BST:3600,BRT:-10800,BRST:-7200,BRA:-10800,BOT:-14400,BORT:28800,BNT:28800,BDT:21600,BDST:7200,AZT:14400,AZST:14400,AZOT:-3600,AZOST:0,AWST:28800,AWSST:32400,AST:-14400,ART:-10800,ARST:-10800,ANAT:43200,ANAST:43200,AMT:-14400,AMST:14400,ALMT:21600,ALMST:25200,AKST:-32400,AKDT:-28800,AFT:16200,AEST:36e3,AESST:39600,AEDT:39600,ADT:-10800,ACWST:31500,ACT:-18e3,ACST:34200,ACSST:37800,ACDT:37800};function Hi(e){return new Date(e)}function Ji(e){return new Date(e+"Z")}const Zi=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function Xi(e){const t=e.match(Zi);if(!t)return null;const[n,r,i,s]=t;return r<=0||i<=0||s<=0?null:r>999?new Date(Date.UTC(r,i-1,s,0,0,0,0)):new Date(Date.UTC(s,r-1,i,0,0,0,0))}function es(e){const[t,n]=e.split(" ");return new Date(t+"T"+n+"Z")}function ts(e){const[t,n]=e.split(" ");return new Date(t+"T"+n+"Z")}function ns(e){return new Date(e)}function rs(e){const t=/^(\w{3}) (\w{3}) (\d{2}) (\d{4})$/;if(!e.match(t))throw new Error(`Unable to parse \`${e}\` as a date.`);const r=new Date(e+" UTC");return new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),0,0,0,0))}function is(e){const t=/^(.+T.+)([+-])(\d{2})$/,n=e.match(t);if(n){const[,r,i,s]=n,o=`${r}${i}${s}:00`;return new Date(o)}return null}function ss(e){const[t,n]=e.split(", "),[r,i,s]=t.split("/").map(Number),o=n.match(/(\d{1,2}):(\d{2}):(\d{2}) (AM|PM)/);if(!o)throw new Error(`Unable to parse time from: ${e}`);let[,a,u,d,c]=o;return a=Number(a),u=Number(u),d=Number(d),c==="PM"&&a!==12?a+=12:c==="AM"&&a===12&&(a=0),new Date(Date.UTC(s,r-1,i,a,u,d))}function os(e){switch(e){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function as(e){const t=e.match(ar);if(!t)return null;const[n]=t,r=Yi[n],i=new Date(e.replace(ar,"Z"));return new Date(i.getTime()-r*1e3)}const us=[Xi,ts,rs,ss,ns,Ji,is,es,Hi,os,as];function cs(e,t){try{const n=e(t);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function Xt(e){for(const t of us){const n=cs(t,e);if(n)return n}return null}function ds(e){try{const t=JSON.parse(e);return typeof t=="string"?Xt(t):null}catch{return null}}function yt(e){if(e!==void 0){if(e===null)return null;if(e instanceof Date)return e;if(typeof e=="string"){const t=Xt(e)||ds(e)||Xt(e.trim());if(!t)throw new Error(`Unable to parse \`${e}\` as a date.`);return t}else if(typeof e=="number")return new Date(e);throw new Error(`Invalid date value \`${e}\`. Expected a date, number, or string, got type ${typeof e}.`)}}function fs(e){return e.cardinality==="one"}function en(e){return e["value-type"]==="ref"}function tn(e){return e["value-type"]==="blob"}function Re(e,t){return e[t]}function bt(e,t){return t.reduce((n,r)=>n&&n.get(r),e)}function fe(e,t){if(t.length===0)throw new Error("path must have at least one element");if(t.length===1){e.delete(t[0]);return}const[n,...r]=t;e.has(n)&&fe(e.get(n),r)}function te(e,t,n){if(t.length===0)throw new Error("path must have at least one element");if(t.length===1){e.set(t[0],n);return}const[r,...i]=t;let s=e.get(r);s||(s=new Map,e.set(r,s)),te(s,i,n)}function ur(e,t,n){const r=new Map,i=new Map,s=new Map;for(const o of t){let[a,u,d,c]=o;const f=Re(e,u);if(!f){console.warn("no such attr",a,e);continue}f["checked-data-type"]==="date"&&n&&(d=yt(d),o[2]=d),en(f)&&te(s,[d,u,a],o),te(r,[a,u,d],o),te(i,[u,a,d],o)}return{eav:r,aev:i,vae:s}}function cr(e){const t=new Map,n=new Map,r=new Map,i=new Map;for(const s of Object.values(e)){const o=s["forward-identity"],[a,u,d]=o,c=s["reverse-identity"];if(te(r,[u,d],s),tn(s)&&te(t,[u,d],s),s["primary?"]&&te(n,[u],s),c){const[f,h,p]=c;te(i,[h,p],s)}}return{blobAttrs:t,primaryKeys:n,forwardIdents:r,revIdents:i}}function ls(e){return{__type:e.__type,attrs:e.attrs,triples:ne(e.eav,3),cardinalityInference:e.cardinalityInference,linkIndex:e.linkIndex,useDateObjects:e.useDateObjects}}function hs(e){return rn(e.attrs,e.triples,e.cardinalityInference,e.linkIndex,e.useDateObjects)}function nn(e){e.attrIndexes=cr(e.attrs)}function rn(e,t,n,r,i){const s=ur(e,t,i);return s.useDateObjects=i,s.attrs=e,s.attrIndexes=cr(e),s.cardinalityInference=n,s.linkIndex=r,s.__type="store",s}function Ze(e,t){var n,r;let i;if(Array.isArray(t[0])){const[o,a]=t[0],u=e.aev.get(o);if(!u)return null;i=(n=ne(u,2).find(c=>c[2]===a))===null||n===void 0?void 0:n[0]}else i=t[0];if(!i)return null;const s=t[2];if(Array.isArray(s)&&s.length===2&&e.aev.get(s[0])){const[o,a]=s,u=e.aev.get(o);if(!u)return null;const c=(r=ne(u,2).find(b=>b[2]===a))===null||r===void 0?void 0:r[0];if(!c)return null;const[f,h,p,..._]=t;return[i,h,c,..._]}else{const[o,...a]=t;return[i,...a]}}function ps(e,t){const n=Ze(e,t);if(!n)return;const[r,i,s]=n,o=Re(e.attrs,i);o&&(fe(e.eav,[r,i,s]),fe(e.aev,[i,r,s]),en(o)&&fe(e.vae,[s,i,r]))}let ys=0;function dr(e,t,n){const[r,i,s]=n;let o;const a=bt(e.ea,[r,i,s]);return a&&(o=a[3]),o||Date.now()*10+ys++}function bs(e,t){var n;const r=Ze(e,t);if(!r)return;let[i,s,o]=r;const a=Re(e.attrs,s);if(!a)return;a["checked-data-type"]==="date"&&e.useDateObjects&&(o=yt(o));const u=bt(e.eav,[i,s,o]),d=(n=u==null?void 0:u[3])!==null&&n!==void 0?n:dr(e,a,r),c=[i,s,o,d];fs(a)?(te(e.eav,[i,s],new Map([[o,c]])),te(e.aev,[s,i],new Map([[o,c]]))):(te(e.eav,[i,s,o],c),te(e.aev,[s,i,o],c)),en(a)&&te(e.vae,[o,s,i],c)}function _s(e,t){var n;const r=Ze(e,t);if(!r)return;const[i,s,o]=r,a=Re(e.attrs,s);if(!a)return;if(!tn(a))throw new Error("merge operation is not supported for links");const u=bt(e.eav,[i,s]);if(!u)return;const d=(n=u.values().next())===null||n===void 0?void 0:n.value;if(!d)return;const c=d[2],f=ir(c,o),h=[i,s,f,dr(e,a,d)];te(e.eav,[i,s],new Map([[f,h]]))}function sn(e,t){var n,r;const[i,s]=t,o=Ze(e,[i]);if(!o)return;const[a]=o,u=e.eav.get(a);if(u){for(const c of u.keys()){const f=e.attrs[c];f&&f["on-delete-reverse"]==="cascade"&&ne(u.get(c),1).forEach(([h,p,_])=>{var b;return sn(e,[_,(b=f["reverse-identity"])===null||b===void 0?void 0:b[1]])}),(!s||!f||((n=f["forward-identity"])===null||n===void 0?void 0:n[1])===s)&&(fe(e.aev,[c,a]),fe(e.eav,[a,c]))}u.size===0&&fe(e.eav,[a])}const d=e.vae.get(a)&&ne(e.vae.get(a),2);d&&d.forEach(c=>{var f,h,p;const[_,b,g]=c,T=e.attrs[b];(!s||!T||((f=T["reverse-identity"])===null||f===void 0?void 0:f[1])===s)&&(fe(e.eav,[_,b,g]),fe(e.aev,[b,_,g]),fe(e.vae,[g,b,_])),T&&T["on-delete"]==="cascade"&&((h=T["reverse-identity"])===null||h===void 0?void 0:h[1])===s&&sn(e,[_,(p=T["forward-identity"])===null||p===void 0?void 0:p[1]])}),((r=e.vae.get(a))===null||r===void 0?void 0:r.size)===0&&fe(e.vae,[a])}function fr(e,t){const n=ur(e.attrs,t,e.useDateObjects);Object.keys(n).forEach(r=>{e[r]=n[r]})}function gs(e,[t]){e.attrs[t.id]=t,nn(e)}function lr(e){return ne(e.eav,3)}function Ts(e,[t]){if(!e.attrs[t])return;const n=lr(e).filter(([r,i])=>i!==t);delete e.attrs[t],nn(e),fr(e,n)}function ws(e,[t]){const n=e.attrs[t.id];n&&(e.attrs[t.id]=Object.assign(Object.assign({},n),t),nn(e),fr(e,lr(e)))}function ms(e,t){const[n,...r]=t;switch(n){case"add-triple":bs(e,r);break;case"deep-merge-triple":_s(e,r);break;case"retract-triple":ps(e,r);break;case"delete-entity":sn(e,r);break;case"add-attr":gs(e,r);break;case"delete-attr":Ts(e,r);break;case"update-attr":ws(e,r);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${n}`)}}function ne(e,t,n=[]){if(!e||t===0)return n;if(t===1){for(const r of e.values())n.push(r);return n}for(const r of e.values())ne(r,t-1,n);return n}function _t(e,t,n){var r,i;const s=[];if(n!=null&&n.hasOwnProperty("$not")){for(const a of t.keys())n.$not!==a&&s.push(t.get(a));return s}if(n!=null&&n.hasOwnProperty("$isNull")){const{attrId:a,isNull:u,reverse:d}=n.$isNull;if(d)for(const c of t.keys()){const f=e.vae.get(c),h=!f||((r=f.get(a))===null||r===void 0?void 0:r.get(null))||!f.get(a);(u?h:!h)&&s.push(t.get(c))}else{const c=e.aev.get(a);for(const f of t.keys()){const h=!c||((i=c.get(f))===null||i===void 0?void 0:i.get(null))||!c.get(f);(u?h:!h)&&s.push(t.get(f))}}return s}if(n!=null&&n.$comparator)return ne(t,1).filter(n.$op);const o=n.in||n.$in||[n];for(const a of o){const u=t.get(a);u&&s.push(u)}return s}function vs(e,t,n){let r="";return e!==void 0&&(r+="e"),t!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function Ss(e,[t,n,r]){var i,s;switch(vs(t,n,r)){case"e":{const a=e.eav.get(t);return ne(a,2)}case"ea":{const a=(i=e.eav.get(t))===null||i===void 0?void 0:i.get(n);return ne(a,1)}case"eav":{const a=(s=e.eav.get(t))===null||s===void 0?void 0:s.get(n);return a?_t(e,a,r):[]}case"ev":{const a=e.eav.get(t);if(!a)return[];const u=[];for(const d of a.values())u.push(..._t(e,d,r));return u}case"a":{const a=e.aev.get(n);return ne(a,2)}case"av":{const a=e.aev.get(n);if(!a)return[];const u=[];for(const d of a.values())u.push(..._t(e,d,r));return u}case"v":{const a=[];for(const u of e.eav.values())for(const d of u.values())a.push(..._t(e,d,r));return a}default:return ne(e.eav,3)}}function Os(e,t,n){var r;const i={};for(const[s,o]of t.entries()){const a=(r=e.eav.get(n))===null||r===void 0?void 0:r.get(o.id),u=ne(a,1);for(const d of u)i[s]=d[2]}return i}function xe(e,t,n){var r;return(r=e.attrIndexes.forwardIdents.get(t))===null||r===void 0?void 0:r.get(n)}function hr(e,t,n){var r;return(r=e.attrIndexes.revIdents.get(t))===null||r===void 0?void 0:r.get(n)}function Es(e,t){return e.attrIndexes.blobAttrs.get(t)}function pr(e,t){var n;const r=e.attrIndexes.primaryKeys.get(t);return r||((n=e.attrIndexes.forwardIdents.get(t))===null||n===void 0?void 0:n.get("id"))}function As(e,t){const n=Ze(e,t);if(!n)return;const[r,i,s]=n;if(Re(e.attrs,i))return bt(e.eav,[r,i])}function Cs(e,t){const n=t.filter(([r,i,s,o,a])=>{if(r!=="add-triple"&&r!=="deep-merge-triple")return!0;const u=a==null?void 0:a.mode;if(u!=="create"&&u!=="update")return!0;let d=!1;const c=Re(e.attrs,s);if(c){const f=pr(e,c["forward-identity"][1]);d=!!As(e,[i,f.id,i])}return!(u==="create"&&d||u==="update"&&!d)});return Jt(e,r=>{n.forEach(i=>{ms(r,i)})})}function js(e){return typeof e=="string"&&e.startsWith("?")}function ks(e,t,n){if(n.hasOwnProperty(e)){const r=n[e];return br(r,t,n)}return Object.assign(Object.assign({},n),{[e]:t})}function yr(e,t,n){return e===t?n:null}function Ps(e){switch(typeof e){case"string":return e.startsWith("?")?ks:yr;default:return yr}}const Is=["in","$in","$not","$isNull","$comparator"];function Ms(e){for(const t of Is)if(e.hasOwnProperty(t))return!0;return!1}function br(e,t,n){return n?typeof e=="object"?Ms(e)?n:null:Ps(e)(e,t,n):null}function Rs(e,t,n){return e.reduce((r,i,s)=>{const o=t[s];return br(i,o,r)},n)}function xs(e,t,n){return Us(e,t,n).map(r=>Rs(t,r,n)).filter(r=>r)}function Ds(e,t,n){return t.or?t.or.patterns.flatMap(r=>on(e,r,n)):t.and?t.and.patterns.reduce((r,i)=>on(e,i,r),n):n.flatMap(r=>xs(e,t,r))}function on(e,t,n=[{}]){return t.reduce((r,i)=>Ds(e,i,r),n)}function an(e,t){return Array.isArray(t)?t.map(n=>an(e,n)):js(t)?e[t]:t}function $s(e,{find:t,where:n}){return on(e,n).map(i=>an(i,t))}function Us(e,t,n){return Ss(e,an(n,t))}const Ls=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function De(e){return typeof e=="string"&&Ls.test(e)}const K=[];for(let e=0;e<256;++e)K.push((e+256).toString(16).slice(1));function Ns(e,t=0){return(K[e[t+0]]+K[e[t+1]]+K[e[t+2]]+K[e[t+3]]+"-"+K[e[t+4]]+K[e[t+5]]+"-"+K[e[t+6]]+K[e[t+7]]+"-"+K[e[t+8]]+K[e[t+9]]+"-"+K[e[t+10]]+K[e[t+11]]+K[e[t+12]]+K[e[t+13]]+K[e[t+14]]+K[e[t+15]]).toLowerCase()}let un;const Fs=new Uint8Array(16);function Ws(){if(!un){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");un=crypto.getRandomValues.bind(crypto)}return un(Fs)}const _r={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Vs(e,t,n){var i;if(_r.randomUUID&&!e)return _r.randomUUID();e=e||{};const r=e.random??((i=e.rng)==null?void 0:i.call(e))??Ws();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,Ns(r)}function gr(e){const t=e.replace(/-/g,""),n=[];for(let r=0;r<t.length;r+=2)n.push(parseInt(t.substring(r,r+2),16));return n}function zs(e,t){for(let n=0;n<e.length;n++){if(e[n]<t[n])return-1;if(e[n]>t[n])return 1}return 0}function Ks(e,t){return zs(gr(e),gr(t))}function B(){return Vs()}function Bs(e,t){return e.localeCompare(t)}function qs(){let e=Bs;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{e=Intl.Collator("en-US").compare}catch{}return e}const Gs=qs();let Qs=0;function Xe(e){return gt(`_${e}`,Qs++)}function gt(e,t){return`?${e}-${t}`}class $e extends Error{constructor(t){super(t),this.name="AttrNotFoundError"}}function Ys(e,t){const n=pr(e,t);if(!n)throw new $e(`Could not find id attr for ${t}`);return n}function Tr(e,t,n,r){return[Hs(e,t,n,r)]}function Hs(e,t,n,r){return[e(n,r),Ys(t,n).id,e(n,r),e("time",r)]}function Js(e,t,n){return e.map(r=>r===t?n:r)}function wr(e,t,n,r,i){const s=xe(t,n,i),o=hr(t,n,i),a=s||o;if(!a)throw new $e(`Could not find attr for ${[n,i]}`);if(a["value-type"]!=="ref")throw new Error(`Attr ${a.id} is not a ref`);const[u,d]=a["forward-identity"],[c,f]=a["reverse-identity"],h=r+1,p=s?[e(d,r),a.id,e(f,h),Xe("time")]:[e(d,h),a.id,e(f,r),Xe("time")];return[s?f:d,h,p,a,!!s]}function mr(e,t){if(typeof t!="string")return function(o){return!1};const r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,"."),i=new RegExp(`^${r}$`,e?void 0:"i");return function(o){return typeof o!="string"?!1:i.test(o)}}function Zs(e,t){if(typeof t!="object"||t.hasOwnProperty("$in")||t.hasOwnProperty("in"))return t;const n=e["checked-data-type"]==="date";if(t.hasOwnProperty("$gt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>new Date(t.$gt)}:function(i){return i[2]>t.$gt}};if(t.hasOwnProperty("$gte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>=new Date(t.$gte)}:function(i){return i[2]>=t.$gte}};if(t.hasOwnProperty("$lt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<new Date(t.$lt)}:function(i){return i[2]<t.$lt}};if(t.hasOwnProperty("$lte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<=new Date(t.$lte)}:function(i){return i[2]<=t.$lte}};if(t.hasOwnProperty("$like")){const r=mr(!0,t.$like);return{$comparator:!0,$op:function(s){return r(s[2])}}}if(t.hasOwnProperty("$ilike")){const r=mr(!1,t.$ilike);return{$comparator:!0,$op:function(s){return r(s[2])}}}return t}function Xs(e,t,n,r,i,s){const o=xe(t,n,i),a=hr(t,n,i),u=o||a;if(!u)throw new $e(`No attr for etype = ${n} label = ${i}`);if(s!=null&&s.hasOwnProperty("$isNull")){const d=xe(t,n,"id");if(!d)throw new $e(`No attr for etype = ${n} label = id`);return[e(n,r),d.id,{$isNull:{attrId:u.id,isNull:s.$isNull,reverse:!o}},Xe("time")]}return o?[e(n,r),u.id,Zs(u,s),Xe("time")]:[s,u.id,e(n,r),Xe("time")]}function eo(e,t,n,r,i){const[s,o,a]=i.reduce((u,d)=>{const[c,f,h]=u,[p,_,b]=wr(e,t,c,f,d);return[p,_,[...h,b]]},[n,r,[]]);return[s,o,a]}function cn(e,t,n,r,i,s){const o=i.slice(0,i.length-1),a=i[i.length-1],[u,d,c]=eo(e,t,n,r,o),f=Xs(e,t,u,d,a,s);return c.concat([f])}function to(e,t){return t?[t].concat(e):e}function no([e,t]){return e==="or"&&Array.isArray(t)}function ro([e,t]){return e==="and"&&Array.isArray(t)}function io(e,t,n){return(r,i)=>{const s=e(r,i);return t==s?s:`${s}-${n}`}}function vr(e,t,n,r,i,s){const o=e(r,i),a=s.map((u,d)=>{const c=io(e,o,d);return Or(c,n,r,i,u)});return{[t]:{patterns:a,joinSym:o}}}function so(e){const t=[];for(let n=1;n<=e.length;n++)t.push(e.slice(0,n));return t}function Sr(e,t,n,r,i){return so(i).map(s=>cn(e,t,n,r,s,{$isNull:!0}))}function Or(e,t,n,r,i){return Object.entries(i).flatMap(([s,o])=>{if(no([s,o]))return vr(e,"or",t,n,r,o);if(ro([s,o]))return vr(e,"and",t,n,r,o);if(s==="$entityIdStartsWith")return[];const a=s.split(".");if(o!=null&&o.hasOwnProperty("$ne")&&(o=Object.assign(Object.assign({},o),{$not:o.$ne}),delete o.$ne),o!=null&&o.hasOwnProperty("$not")){const u=cn(e,t,n,r,a,o),d=Sr(e,t,n,r,a);return[{or:{patterns:[u,...d],joinSym:e(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Sr(e,t,n,r,a),joinSym:e(n,r)}}]:cn(e,t,n,r,a,o)})}function oo(e,t,n,r){const i=gt;return r?Or(i,e,t,n,r).concat(Tr(i,e,t,n)):Tr(i,e,t,n)}function ao(e,t,n){return[e(t,n),e("time",n)]}function uo(e,t,n,r,i,s){const[o,a,u,d,c]=wr(e,t,n,r,i),f=Js(u,e(n,r),s);return[o,a,f,d,c]}function co(e,t,{etype:n,level:r,form:i},s){const o=Object.keys(i).filter(a=>a!=="$");return o.length?Object.entries(s).map(function([u,d]){return o.map(function(h){var p,_,b;const g=!!(t.cardinalityInference&&(!((b=(_=(p=t.linkIndex)===null||p===void 0?void 0:p[n])===null||_===void 0?void 0:_[h])===null||b===void 0)&&b.isSingular));try{const[T,w,v]=uo(e,t,n,r,h,u),R=Ar(t,{etype:T,level:w,form:i[h],join:v}),E=g?R[0]:R;return{[h]:E}}catch(T){if(T instanceof $e)return{[h]:g?void 0:[]};throw T}}).reduce(function(h,p){return Object.assign(Object.assign({},h),p)},d)}):Object.values(s)}function fo(e,t,n){return n==="string"?Gs(e,t):e>t?1:-1}function Tt([e,t],[n,r],i){return t===r||t==null&&r==null?Ks(e,n):r==null?1:t==null?-1:fo(t,r,i)}function dn(e){return e==null?e:new Date(e).getTime()}function lo(e,t,n,r){var i;const[s,o,a,u]=e,d=n==="desc"?1:-1;if(((i=t["forward-identity"])===null||i===void 0?void 0:i[2])==="id")return Tt(r,[s,u],null)===d;const[c,f]=r,h=t["checked-data-type"],p=h==="date"?dn(f):f,_=h==="date"?dn(a):a;return Tt([c,p],[s,_],h)===d}function ho(e,t){const n=t[1];return e.attrs[n]}function po(e,t,n){const r=Object.keys(n)[0];return xe(e,t,r)}function yo(e,t,n,r){if(n)return ho(e,n);if(r)return po(e,t,r)}function bo(e,t,n){var r,i;if(!Array.isArray(n.fields))return Es(e,t);const s=new Map;for(const o of n.fields){const a=xe(e,t,o),u=(r=a==null?void 0:a["forward-identity"])===null||r===void 0?void 0:r[2];u&&tn(a)&&s.set(u,a)}if(!s.has("id")){const o=xe(e,t,"id"),a=(i=o==null?void 0:o["forward-identity"])===null||i===void 0?void 0:i[2];a&&s.set(a,o)}return s}function _o(e,{etype:t,pageInfo:n,dq:r,form:i}){var s,o;const a=(s=i==null?void 0:i.$)===null||s===void 0?void 0:s.order,u=Er(i),d=go(i);let c=$s(e,r);const f=n==null?void 0:n["start-cursor"],h=yo(e,t,f,a);if(h&&((o=h==null?void 0:h["forward-identity"])===null||o===void 0?void 0:o[2])!=="id"){const b=h["checked-data-type"]==="date",g=h.id;c=c.map(([T])=>{var w,v,R,E,N;let V=(N=(E=(R=(v=(w=e.eav.get(T))===null||w===void 0?void 0:w.get(g))===null||v===void 0?void 0:v.values())===null||R===void 0?void 0:R.next())===null||E===void 0?void 0:E.value)===null||N===void 0?void 0:N[2];return b&&(V=dn(V)),[T,V]})}c.sort(d==="asc"?function(g,T){return Tt(g,T,h==null?void 0:h["checked-data-type"])}:function(g,T){return Tt(T,g,h==null?void 0:h["checked-data-type"])});let p={};const _=bo(e,t,r);for(const b of c){const[g]=b;if(p[g]||!u&&f&&h&&lo(f,h,d,b))continue;const T=Os(e,_,g);T&&(p[g]=T)}return p}function go(e){var t;const n=(t=e.$)===null||t===void 0?void 0:t.order;return n&&n[Object.keys(n)[0]]||"asc"}function Er(e){var t,n,r;const i=(t=e.$)===null||t===void 0?void 0:t.offset,s=(n=e.$)===null||n===void 0?void 0:n.before,o=(r=e.$)===null||r===void 0?void 0:r.after;return!i&&!s&&!o}function To(e,{etype:t,level:n,form:r,join:i,pageInfo:s}){var o,a,u,d,c;if(!Er(r)&&(!s||!s["start-cursor"]))return[];const f=to(oo(e,t,n,(o=r.$)===null||o===void 0?void 0:o.where),i),h=ao(gt,t,n),p=(a=r.$)===null||a===void 0?void 0:a.fields,_=_o(e,{etype:t,pageInfo:s,form:r,dq:{where:f,find:h,fields:p}}),b=((u=r.$)===null||u===void 0?void 0:u.limit)||((d=r.$)===null||d===void 0?void 0:d.first)||((c=r.$)===null||c===void 0?void 0:c.last);if(b!=null){const g=Object.entries(_);return g.length<=b?_:Object.fromEntries(g.slice(0,b))}return _}function wo(e,t){try{return To(e,t)}catch(n){if(n instanceof $e)return{};throw n}}function Ar(e,t){const n=wo(e,t);return co(gt,e,t,n)}function mo(e){const t={};for(const[n,r]of Object.entries(e))t[n]={startCursor:r["start-cursor"],endCursor:r["end-cursor"],hasNextPage:r["has-next-page?"],hasPreviousPage:r["has-previous-page?"]};return t}function vo({store:e,pageInfo:t,aggregate:n},r){const s={data:Object.keys(r).reduce(function(a,u){return n!=null&&n[u]||u==="$$ruleParams"||(a[u]=Ar(e,{etype:u,form:r[u],level:0,pageInfo:t==null?void 0:t[u]})),a},{})};return t&&(s.pageInfo=mo(t)),n&&(s.aggregate=n),s}function So(){const t={__etype:1,__ops:1,create:1,update:1,link:1,unlink:1,delete:1,merge:1,ruleParams:1};return new Set(Object.keys(t))}const Oo=So();function fn(e,t,n){const r={__etype:e,__ops:n};return new Proxy(r,{get:(i,s)=>{if(s==="__ops")return n;if(s==="__etype")return e;if(Oo.has(s))return(o,a)=>fn(e,t,[...n,a?[s,e,t,o,a]:[s,e,t,o]])}})}function Eo(e,t){return`lookup__${e}__${JSON.stringify(t)}`}function wt(e){return e.startsWith("lookup__")}function Cr(e){const[t,n,...r]=e.split("__");return[n,JSON.parse(r.join("__"))]}function Ao(e){return new Proxy({__etype:e},{get(t,n){if(n==="__etype")return e;const r=n;return wt(r)?fn(e,Cr(r),[]):fn(e,r,[])}})}function ln(){return new Proxy({},{get(e,t){return Ao(t)}})}const Co=ln();function jo(e){return e.__ops}function ko(e,t){const{attrIdMap:n,refSwapAttrIds:r}=e,i=[];for(const o of t){const a=n[o];if(a)i.push(a);else if(Array.isArray(o)&&o.length==2&&n[o[0]]){const[u,d]=o;i.push([n[u],d])}else i.push(o)}const[s]=t;if((s==="add-triple"||s==="retract-triple")&&r.has(t[2])){const o=i[1];i[1]=i[3],i[3]=o}return i}function q(e,t,n){return Object.values(e).find(r=>{const[i,s,o]=r["forward-identity"];return s===t&&o===n})}function Ce(e,t,n){return Object.values(e).find(r=>{const i=r["reverse-identity"];if(!i)return!1;const[s,o,a]=i;return o===t&&a===n})}function Po(e){if(Array.isArray(e))return e;const t=Object.entries(e);if(t.length!==1)throw new Error("lookup must be an object with a single unique attr and value.");return t[0]}function hn(e,t,n){return n.indexOf(".")!==-1&&!q(e,t,n)}function pn(e){const[t,n,...r]=e.split(".");if(r.length>0||n!=="id")throw new Error(`${e} is not a valid lookup attribute.`);return t}function Io(e,t,n){if(!hn(e,t,n))return q(e,t,n);const r=pn(n),i=q(e,t,r)||Ce(e,t,r);if(i&&i["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return i}function yn(e){return typeof e=="string"&&!wt(e)?null:typeof e=="string"&&wt(e)?Cr(e):Po(e)}function re(e,t,n){const r=yn(n);if(r===null)return n;const[i,s]=r,o=Io(e,t,i);if(!o||!o["unique?"])throw new Error(`${i} is not a unique attribute.`);return[o.id,s]}function jr(e,t,n,r){const i=re(e,t,n);return Array.isArray(i)?[["add-triple",i,q(e,t,"id").id,i]].concat(r):r}function Mo({attrs:e},[t,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=q(e,t,s),d=Ce(e,t,s);return a.map(c=>u?["add-triple",re(e,t,n),u.id,re(e,u["reverse-identity"][1],c)]:["add-triple",re(e,d["forward-identity"][1],c),d.id,re(e,t,n)])});return jr(e,t,n,i)}function Ro({attrs:e},[t,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=q(e,t,s),d=Ce(e,t,s);return a.map(c=>u?["retract-triple",re(e,t,n),u.id,re(e,u["reverse-identity"][1],c)]:["retract-triple",re(e,d["forward-identity"][1],c),d.id,re(e,t,n)])});return jr(e,t,n,i)}function xo(e,t,n){if(Array.isArray(n)){const[r,i]=n;for(const s of e||[]){const o=s==null?void 0:s.aev.get(r);if(o){for(const[a,u,d]of ne(o,2))if(d===i)return!0}}}else for(const r of e||[]){const i=r==null?void 0:r.eav.get(n);if(i){for(const s of i.keys())if(r.attrs[s]["forward-identity"][1]==t)return!0}}return!1}function kr({stores:e,attrs:t},[n,r,i,s]){return(s==null?void 0:s.upsert)===!1?{mode:"update"}:(s==null?void 0:s.upsert)===!0?null:xo(e,n,r)?{mode:"update"}:null}function Do(e,t){const{stores:n,attrs:r}=e,[i,s,o,a]=t,u=Zt(o),d=re(r,i,s);return[["id",d]].concat(Object.entries(u)).map(([f,h])=>{const p=q(r,i,f);return p["checked-data-type"]==="date"&&e.useDateObjects&&(h=yt(h)),["add-triple",d,p.id,h,{mode:"create"}]})}function $o(e,t){const{stores:n,attrs:r}=e,[i,s,o,a]=t,u=Zt(o),d=re(r,i,s),c=kr(e,[i,d,o,a]);return[["id",d]].concat(Object.entries(u)).map(([h,p])=>{const _=q(r,i,h);return _["checked-data-type"]==="date"&&e.useDateObjects&&(p=yt(p)),["add-triple",d,_.id,p,...c?[c]:[]]})}function Uo({attrs:e},[t,n]){return[["delete-entity",re(e,t,n),t]]}function Lo(e,t){const{stores:n,attrs:r}=e,[i,s,o,a]=t,u=Zt(o),d=re(r,i,s),c=kr(e,[i,d,o,a]),f=Object.entries(u).map(([p,_])=>{const b=q(r,i,p);return["deep-merge-triple",d,b.id,_,...c?[c]:[]]});return[["add-triple",d,q(r,i,"id").id,d,...c?[c]:[]]].concat(f)}function No({attrs:e},[t,n,r]){return[["rule-params",re(e,t,n),t,r]]}function Fo(e){const[t,n,r,i,s]=e;if(!i)return e;const o=Object.assign({},i);return delete o.id,[t,n,r,o,...s?[s]:[]]}function Wo(e,t){const[n,...r]=Fo(t);switch(n){case"merge":return Lo(e,r);case"create":return Do(e,r);case"update":return $o(e,r);case"link":return Mo(e,r);case"unlink":return Ro(e,r);case"delete":return Uo(e,r);case"ruleParams":return No(e,r);default:throw new Error(`unsupported action ${n}`)}}function Vo(e){switch(e){case"string":case"date":case"boolean":case"number":return e;default:return}}function zo(e,t,n){var r,i;const s=(i=(r=e.entities[t])===null||r===void 0?void 0:r.attrs)===null||i===void 0?void 0:i[n];if(n==="id")return null;if(!s)throw new Error(`${t}.${n} does not exist in your schema`);const{unique:o,indexed:a}=s==null?void 0:s.config,u=Vo(s==null?void 0:s.valueType);return{"index?":a,"unique?":o,"checked-data-type":u}}function mt(e,t,n,r){const i=e?zo(e,t,n):null,s=B(),a=[B(),t,n];return Object.assign(Object.assign({id:s,"forward-identity":a,"value-type":"blob",cardinality:"one","unique?":!1,"index?":!1,isUnsynced:!0},i||{}),r||{})}function Ko(e,t,n){return Object.values(e.links).find(i=>i.forward.on===t&&i.forward.label===n||i.reverse.on===t&&i.reverse.label===n)}function Bo(e,t,n){const r=Ko(e,t,n);if(!r)throw new Error(`Couldn't find the link ${t}.${n} in your schema`);const{forward:i,reverse:s}=r;return{"forward-identity":[B(),i.on,i.label],"reverse-identity":[B(),s.on,s.label],cardinality:i.has==="one"?"one":"many","unique?":s.has==="one","on-delete":i.onDelete,"on-delete-reverse":s.onDelete}}function Pr(e,t,n,r){const i=e?Bo(e,t,n):null,s=B(),o=[B(),t,n],a=[B(),n,t];return Object.assign(Object.assign({id:s,"forward-identity":o,"reverse-identity":a,"value-type":"ref",cardinality:"many","unique?":!1,"index?":!1,isUnsynced:!0},i||{}),r||{})}const qo=new Set(["create","update","merge","link","unlink"]),Go=new Set(["link","unlink"]),Qo=new Set(["create","update","merge"]),Yo=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),bn={"unique?":!0,"index?":!0},Ho=Object.assign(Object.assign({},bn),{cardinality:"one"});function Jo(e){const t=[],[n,r,i,s]=e;if(!Yo.has(n))return t;const o=yn(i);if(o&&t.push({etype:r,lookupPair:o}),n==="link")for(const[a,u]of Object.entries(s)){const d=Array.isArray(u)?u:[u];for(const c of d){const f=yn(c);f&&t.push({etype:r,lookupPair:f,linkLabel:a})}}return t}function Zo({attrs:e,schema:t},n){var r,i;const[s,o,a]=[new Set,Object.assign({},e),[]];function u(f){o[f.id]=f,a.push(["add-attr",f]),s.add(f.id)}function d(f){f!=null&&f.isUnsynced&&!s.has(f.id)&&(a.push(["add-attr",f]),s.add(f.id))}function c(f,h){const p=q(o,f,h),_=Ce(o,f,h);d(p),d(_),!p&&!_&&u(Pr(t,f,h,Ho))}for(const f of n)for(const{etype:h,lookupPair:p,linkLabel:_}of Jo(f)){const b=p[0];if(_){c(h,_);const g=q(o,h,_),T=Ce(o,h,_);d(g),d(T);const w=((r=g==null?void 0:g["reverse-identity"])===null||r===void 0?void 0:r[1])||((i=T==null?void 0:T["forward-identity"])===null||i===void 0?void 0:i[1])||_;if(hn(o,w,b))c(w,pn(b));else{const v=q(o,w,b);v||u(mt(t,w,b,bn)),d(v)}}else if(hn(o,h,b))c(h,pn(b));else{const g=q(o,h,b);g||u(mt(t,h,b,bn)),d(g)}}for(const f of n){const[h,p,_,b]=f;if(qo.has(h)){const g=q(o,p,"id");d(g),g||u(mt(t,p,"id",{"unique?":!0}));for(const T of Object.keys(b)){const w=q(o,p,T);if(d(w),Qo.has(h)&&(w||u(mt(t,p,T,T==="id"?{"unique?":!0}:null))),Go.has(h)){const v=Ce(o,p,T);!w&&!v&&u(Pr(t,p,T)),d(v)}}}}return[o,a]}function Xo(e,t){const r=(Array.isArray(t)?t:[t]).flatMap(u=>jo(u)),[i,s]=Zo(e,r),o=Object.assign(Object.assign({},e),{attrs:i}),a=r.flatMap(u=>Wo(o,u));return[...s,...a]}var Ir=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};class Mr{constructor(t){this.dbName=t,this._storeName="kv",this._dbPromise=this._init()}_init(){return new Promise((t,n)=>{const r=indexedDB.open(this.dbName,1);r.onerror=i=>{n(i)},r.onsuccess=i=>{const s=i.target;t(s.result)},r.onupgradeneeded=i=>{i.target.result.createObjectStore(this._storeName)}})}getItem(t){return Ir(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const a=n.transaction([this._storeName],"readonly").objectStore(this._storeName).get(t);a.onerror=u=>{i(u)},a.onsuccess=u=>{a.result?r(a.result):r(null)}})})}setItem(t,n){return Ir(this,void 0,void 0,function*(){const r=yield this._dbPromise;return new Promise((i,s)=>{const u=r.transaction([this._storeName],"readwrite").objectStore(this._storeName).put(n,t);u.onerror=d=>{s(d)},u.onsuccess=d=>{i()}})})}}var ea=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};class Rr{static getIsOnline(){return ea(this,void 0,void 0,function*(){return navigator.onLine})}static listen(t){const n=()=>{t(!0)},r=()=>{t(!1)};return addEventListener("online",n),addEventListener("offline",r),()=>{removeEventListener("online",n),removeEventListener("offline",r)}}}class Ue extends Error{constructor(t,n){super(t),this.hint=n;const r=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,r),Error.captureStackTrace&&Error.captureStackTrace(this,Ue),this.name="InstantError"}get[Symbol.toStringTag](){return"InstantError"}}var ta=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};class et extends Ue{constructor(t){var n;const r=((n=t.body)===null||n===void 0?void 0:n.message)||`API Error (${t.status})`;super(r,t.body.hint);const i=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,i),Error.captureStackTrace&&Error.captureStackTrace(this,et),this.name="InstantAPIError",this.status=t.status,this.body=t.body}get[Symbol.toStringTag](){return"InstantAPIError"}}function le(e,t){return ta(this,void 0,void 0,function*(){const n=yield fetch(e,t),r=yield n.json();return n.status===200?Promise.resolve(r):Promise.reject(new et({status:n.status,body:r}))})}var Le=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};function na({apiURI:e,appId:t,email:n}){return le(`${e}/runtime/auth/send_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":t,email:n})})}function ra(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,email:r,code:i,refreshToken:s}){return yield le(`${t}/runtime/auth/verify_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(Object.assign({"app-id":n,email:r,code:i},s?{"refresh-token":s}:{}))})})}function ia(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,refreshToken:r}){return yield le(`${t}/runtime/auth/verify_refresh_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n,"refresh-token":r})})})}function sa(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n}){return yield le(`${t}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n})})})}function xr(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,code:r,codeVerifier:i,refreshToken:s}){return yield le(`${t}/runtime/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,code:r,code_verifier:i,refresh_token:s})})})}function oa(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,nonce:r,idToken:i,clientName:s,refreshToken:o}){return yield le(`${t}/runtime/oauth/id_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,nonce:r,id_token:i,client_name:s,refresh_token:o})})})}function aa(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,refreshToken:r}){return yield le(`${t}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,refresh_token:r})})})}var tt=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};function ua(e){return tt(this,arguments,void 0,function*({apiURI:t,appId:n,path:r,file:i,refreshToken:s,contentType:o,contentDisposition:a}){const u={app_id:n,path:r,authorization:`Bearer ${s}`,"content-type":o||i.type};return a&&(u["content-disposition"]=a),yield le(`${t}/storage/upload`,{method:"PUT",headers:u,body:i})})}function ca(e){return tt(this,arguments,void 0,function*({apiURI:t,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${t}/storage/files?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"DELETE",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}function da(e){return tt(this,arguments,void 0,function*({apiURI:t,appId:n,fileName:r,refreshToken:i,metadata:s={}}){const{data:o}=yield le(`${t}/storage/signed-upload-url`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${i}`},body:JSON.stringify({app_id:n,filename:r})});return o})}function fa(e,t){return tt(this,void 0,void 0,function*(){return(yield fetch(e,{method:"PUT",body:t,headers:{"Content-Type":t.type}})).ok})}function la(e){return tt(this,arguments,void 0,function*({apiURI:t,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${t}/storage/signed-download-url?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}let _n=!1,Dr=!1,$r=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(_n=!!window.localStorage.getItem("devBackend"),Dr=!!window.localStorage.getItem("__instantLogging"),$r=!!window.localStorage.getItem("__devtoolLocalDash"));function Ur(e,t){if(!t)return e;const n={};return t.forEach(r=>{n[r]=e[r]}),n}function ha(e,t,n){var r,i;const s={peers:{}};if(t&&"user"in t?t.user:!0){const a=Ur((r=e.user)!==null&&r!==void 0?r:{},t==null?void 0:t.keys);s.user=Object.assign(Object.assign({},a),{peerId:n})}for(const a of Object.keys((i=e.peers)!==null&&i!==void 0?i:{})){const u=(t==null?void 0:t.peers)===void 0,d=Array.isArray(t==null?void 0:t.peers)&&(t==null?void 0:t.peers.includes(a));if(u||d){const c=Ur(e.peers[a],t==null?void 0:t.keys);s.peers[a]=Object.assign(Object.assign({},c),{peerId:a})}}return s}function pa(e,t){if(e.isLoading!==t.isLoading||e.error!==t.error||(e.user||t.user)&&(!e.user||!t.user||!rr(e.user,t.user))||!nr(e.peers,t.peers))return!0;for(const r of Object.keys(e.peers))if(!rr(e.peers[r],t.peers[r]))return!0;return!1}class Lr{constructor(){this.promise=new Promise((t,n)=>{this._resolve=t,this._reject=n})}resolve(t){this._resolve(t)}reject(t){this._reject(t)}}var nt=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};function ya(e,t){typeof requestIdleCallback>"u"?e():requestIdleCallback(e,{timeout:t})}class Nr{constructor(t,n,r,i,s=d=>d,o=d=>d,a=100,u=1e3){this._subs=[],this._nextSave=null,this._persister=t,this._key=n,this._onMerge=i,this._loadedCbs=[],this._isLoading=!0,this.currentValue=r,this.serialize=s,this.parse=o,this._saveThrottleMs=a,this._pendingSaveCbs=[],this._version=0,this._idleCallbackMaxWaitMs=u,this._load()}_getFromStorage(){return nt(this,void 0,void 0,function*(){try{return this.parse(yield this._persister.getItem(this._key))}catch(t){return console.error(`Unable to read from storage for key=${this._key}`,t),null}})}_load(){return nt(this,void 0,void 0,function*(){const t=yield this._getFromStorage();this._isLoading=!1,this._onMerge(t,this.currentValue);for(const n of this._loadedCbs)n()})}waitForLoaded(){return nt(this,void 0,void 0,function*(){if(!this._isLoading)return;yield new Promise(n=>{this._loadedCbs.push(n)})})}isLoading(){return this._isLoading}version(){return this._version}waitForSync(){return nt(this,void 0,void 0,function*(){if(!this._nextSave)return;yield new Promise(n=>{this._pendingSaveCbs.push(n)})})}_writeToStorage(){this._persister.setItem(this._key,this.serialize(this.currentValue));for(const t of this._pendingSaveCbs)t();this._pendingSaveCbs.length=0}flush(){return nt(this,void 0,void 0,function*(){this._nextSave&&(clearTimeout(this._nextSave),this._writeToStorage())})}_enqueuePersist(t){if(this._nextSave){t&&this._pendingSaveCbs.push(t);return}this._nextSave=setTimeout(()=>{ya(()=>{this._nextSave=null,this._writeToStorage()},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)}set(t,n){this._version++,this.currentValue=t(this.currentValue),this._isLoading?this._loadedCbs.push(()=>this._enqueuePersist(n)):this._enqueuePersist(n);for(const r of this._subs)r(this.currentValue)}subscribe(t){return this._subs.push(t),t(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==t)}}}function Fr(e,t=[]){e.forEach(n=>{const{data:r}=n,{"datalog-result":i}=r,{"join-rows":s}=i;for(const o of s)for(const a of o)t.push(a);Fr(n["child-nodes"],t)})}function Wr(e){const t=[];return Fr(e,t),t}function Vr(e){return Object.values(e.links).reduce((t,n)=>{var r,i,s,o;return(r=t[s=n.forward.on])!==null&&r!==void 0||(t[s]={}),t[n.forward.on][n.forward.label]={isForward:!0,isSingular:n.forward.has==="one",link:n},(i=t[o=n.reverse.on])!==null&&i!==void 0||(t[o]={}),t[n.reverse.on][n.reverse.label]={isForward:!1,isSingular:n.reverse.has==="one",link:n},t},{})}const gn="v0.22.46";function ba(e,t){return{info:e?(...n)=>console.info(...n,t()):()=>{},debug:e?(...n)=>console.debug(...n,t()):()=>{},error:e?(...n)=>console.error(...n,t()):()=>{}}}class J{constructor(t,n,r,i={indexed:!1,unique:!1}){this.valueType=t,this.required=n,this.isIndexed=r,this.config=i,this.metadata={}}clientRequired(){return new J(this.valueType,!1,this.isIndexed,this.config)}optional(){return new J(this.valueType,!1,this.isIndexed,this.config)}unique(){return new J(this.valueType,this.required,this.isIndexed,Object.assign(Object.assign({},this.config),{unique:!0}))}indexed(){return new J(this.valueType,this.required,!0,Object.assign(Object.assign({},this.config),{indexed:!0}))}}class vt{constructor(t,n){this.attrs=t,this.links=n}asType(){return new vt(this.attrs,this.links)}}class St{constructor(t,n,r){this.entities=t,this.links=n,this.rooms=r}withRoomSchema(){return new St(this.entities,this.links,{})}}class x extends Error{constructor(t,n){const r=n?`At path '${n}': ${t}`:t;super(r),this.name="QueryValidationError"}}const zr=["where","order","limit","last","first","offset","after","before","fields","aggregate"],_a=e=>e.valueType||"unknown",Kr=(e,t,n=!1)=>{if(n||e==null)return!0;switch(t){case"string":return typeof e=="string";case"number":return typeof e=="number"&&!isNaN(e);case"boolean":return typeof e=="boolean";case"date":return e instanceof Date||typeof e=="string"||typeof e=="number";default:return!0}},ga=(e,t,n,r,i,s,o)=>{const a=s.valueType==="json",u=(d,c,f)=>{if(!Kr(f,c,a))throw new x(`Invalid value for operator '${d}' on attribute '${r}' in entity '${i}'. Expected ${c}, but received: ${typeof f}`,o)};switch(e){case"in":case"$in":if(!Array.isArray(t))throw new x(`Operator '${e}' for attribute '${r}' in entity '${i}' must be an array, but received: ${typeof t}`,o);for(const d of t)u(e,n,d);break;case"$not":case"$ne":case"$gt":case"$lt":case"$gte":case"$lte":u(e,n,t);break;case"$like":case"$ilike":if(u(e,"string",t),e==="$ilike"&&!s.isIndexed)throw new x(`Operator '${e}' can only be used with indexed attributes, but '${r}' in entity '${i}' is not indexed`,o);break;case"$isNull":u(e,"boolean",t);break;default:throw new x(`Unknown operator '${e}' for attribute '${r}' in entity '${i}'`,o)}},Ne=(e,t,n,r,i)=>{const s=_a(n),o=n.valueType==="json";if(typeof e=="object"&&e!==null&&!Array.isArray(e)){if(o)return;const u=e;for(const[d,c]of Object.entries(u))ga(d,c,s,t,r,n,`${i}.${d}`)}else if(!Kr(e,s,o))throw new x(`Invalid value for attribute '${t}' in entity '${r}'. Expected ${s}, but received: ${typeof e}`,i)},Ta=(e,t,n,r,i)=>{const s=e.split(".");if(s.length<2)throw new x(`Invalid dot notation path '${e}'. Must contain at least one dot.`,i);let o=n;for(let c=0;c<s.length-1;c++){const f=s[c],h=r.entities[o];if(!h)throw new x(`Entity '${o}' does not exist in schema while traversing dot notation path '${e}'.`,i);const p=h.links[f];if(!p){const _=Object.keys(h.links);throw new x(`Link '${f}' does not exist on entity '${o}' in dot notation path '${e}'. Available links: ${_.length>0?_.join(", "):"none"}`,i)}o=p.entityName}const a=s[s.length-1],u=r.entities[o];if(!u)throw new x(`Target entity '${o}' does not exist in schema for dot notation path '${e}'.`,i);if(a==="id"){if(typeof t=="string"&&!De(t))throw new x(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${t}`,i);Ne(t,e,new J("string",!1,!0),n,i);return}const d=u.attrs[a];if(Object.keys(u.links).includes(a)){if(typeof t=="string"&&!De(t))throw new x(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${t}`,i);Ne(t,e,new J("string",!1,!0),n,i);return}if(!d){const c=Object.keys(u.attrs);throw new x(`Attribute '${a}' does not exist on entity '${o}' in dot notation path '${e}'. Available attributes: ${c.length>0?c.join(", ")+", id":"id"}`,i)}Ne(t,e,d,n,i)},Br=(e,t,n,r)=>{for(const[i,s]of Object.entries(e)){if(i==="or"||i==="and"){if(Array.isArray(s))for(const d of s)typeof d=="object"&&d!==null&&Br(d,t,n,`${r}.${i}[${d}]`);continue}if(i==="id"){Ne(s,"id",new J("string",!1,!0),t,`${r}.id`);continue}if(i.includes(".")){Ta(i,s,t,n,`${r}.${i}`);continue}const o=n.entities[t];if(!o)continue;const a=o.attrs[i],u=o.links[i];if(!a&&!u){const d=Object.keys(o.attrs),c=Object.keys(o.links);throw new x(`Attribute or link '${i}' does not exist on entity '${t}'. Available attributes: ${d.length>0?d.join(", "):"none"}. Available links: ${c.length>0?c.join(", "):"none"}`,`${r}.${i}`)}if(a)Ne(s,i,a,t,`${r}.${i}`);else if(u){if(typeof s=="string"&&!De(s))throw new x(`Invalid value for link '${i}' in entity '${t}'. Expected a UUID, but received: ${s}`,`${r}.${i}`);const d=new J("string",!1,!0);Ne(s,i,d,t,`${r}.${i}`)}}},wa=(e,t,n,r,i=0)=>{for(const o of Object.keys(e))if(!zr.includes(o))throw new x(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${zr.join(", ")}. Found: ${o}`,r);const s=["limit","offset","before","after","first","last"];for(const o of s)if(e[o]!==void 0&&i>0)throw new x(`'${o}' can only be used on top-level namespaces. It cannot be used in nested queries.`,r);if(e.where&&n){if(typeof e.where!="object"||e.where===null)throw new x(`'where' clause must be an object in entity '${t}', but received: ${typeof e.where}`,r?`${r}.where`:void 0);Br(e.where,t,n,r?`${r}.where`:"where")}},qr=(e,t,n,r,i=0)=>{var s;if(!e||typeof e!="object")throw new x(`Query part for entity '${t}' must be an object, but received: ${typeof e}`,r);for(const o of Object.keys(e))if(o!=="$"){if(n&&!(o in n.entities[t].links)){const u=Object.keys(n.entities[t].links);throw new x(`Link '${o}' does not exist on entity '${t}'. Available links: ${u.length>0?u.join(", "):"none"}`,`${r}.${o}`)}const a=e[o];if(typeof a=="object"&&a!==null){const u=(s=n==null?void 0:n.entities[t].links[o])===null||s===void 0?void 0:s.entityName;u&&qr(a,u,n,`${r}.${o}`,i+1)}}else{const a=e[o];if(typeof a!="object"||a===null)throw new x(`Query parameter '$' must be an object in entity '${t}', but received: ${typeof a}`,`${r}.$`);wa(a,t,n,`${r}.$`,i)}},Gr=(e,t)=>{if(typeof e!="object"||e===null)throw new x(`Query must be an object, but received: ${typeof e}${e===null?" (null)":""}`);if(Array.isArray(e))throw new x(`Query must be an object, but received: ${typeof e}`);const n=e;for(const r of Object.keys(n)){if(Array.isArray(e[r]))throw new x(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(typeof r!="string")throw new x(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(r!=="$$ruleParams"){if(t&&!t.entities[r]){const i=Object.keys(t.entities);throw new x(`Entity '${r}' does not exist in schema. Available entities: ${i.length>0?i.join(", "):"none"}`,r)}qr(n[r],r,t,r,0)}}},Qr=e=>typeof e!="string"?!1:wt(e)?!0:De(e);class ue extends Error{constructor(t){super(t),this.name="TransactionValidationError"}}const Yr=e=>e.length>0?e.join(", "):"none",ma=(e,t)=>new ue(`Entity '${e}' does not exist in schema. Available entities: ${Yr(t)}`),Hr={string:e=>typeof e=="string",number:e=>typeof e=="number"&&!isNaN(e),boolean:e=>typeof e=="boolean",date:e=>e instanceof Date||typeof e=="string"||typeof e=="number",json:()=>!0},va=(e,t)=>{var n,r;return e==null?!0:(r=(n=Hr[t.valueType])===null||n===void 0?void 0:n.call(Hr,e))!==null&&r!==void 0?r:!1},Jr=(e,t)=>{const n=t.entities[e];if(!n)throw ma(e,Object.keys(t.entities));return n},Tn=(e,t,n)=>{const r=Jr(e,n);if(typeof t!="object"||t===null)throw new ue(`Arguments for data operation on entity '${e}' must be an object, but received: ${typeof t}`);for(const[i,s]of Object.entries(t)){if(i==="id")continue;const o=r.attrs[i];if(o&&!va(s,o))throw new ue(`Invalid value for attribute '${i}' in entity '${e}'. Expected ${o.valueType}, but received: ${typeof s}`)}},Zr=(e,t,n)=>{const r=Jr(e,n);if(typeof t!="object"||t===null)throw new ue(`Arguments for link operation on entity '${e}' must be an object, but received: ${typeof t}`);for(const[i,s]of Object.entries(t)){if(!r.links[i]){const a=Object.keys(r.links);throw new ue(`Link '${i}' does not exist on entity '${e}'. Available links: ${Yr(a)}`)}if(s!=null){if(Array.isArray(s)){for(const a of s)if(!Qr(a))throw new ue(`Invalid entity ID in link '${i}' for entity '${e}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!Qr(s))throw new ue(`Invalid UUID in link '${i}' for entity '${e}'. Expected a UUID, but received: ${s}`)}}},Sa={create:Tn,update:Tn,merge:Tn,link:Zr,unlink:Zr,delete:()=>{}},Oa=(e,t)=>{if(!t)return;const[n,r,i,s]=e;if(!Array.isArray(i)&&!De(i))throw new ue(`Invalid id for entity '${r}'. Expected a UUID, but received: ${i}`);if(typeof r!="string")throw new ue(`Entity name must be a string, but received: ${typeof r}`);const o=Sa[n];o&&s!==void 0&&o(r,s,t)},Ea=(e,t)=>{const n=Array.isArray(e)?e:[e];for(const r of n){if(!r||typeof r!="object")throw new ue(`Transaction chunk must be an object, but received: ${typeof r}`);if(!Array.isArray(r.__ops))throw new ue(`Transaction chunk must have __ops array, but received: ${typeof r.__ops}`);for(const i of r.__ops){if(!Array.isArray(i))throw new ue(`Transaction operation must be an array, but received: ${typeof i}`);Oa(i,t)}}};var Xr=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};let ei=0;class ti{constructor(t){this.type="ws",this.id=`${this.type}_${ei++}`,this.conn=new WebSocket(t),this.conn.onopen=n=>{this.onopen&&this.onopen({target:this})},this.conn.onmessage=n=>{this.onmessage&&this.onmessage({target:this,message:JSON.parse(n.data.toString())})},this.conn.onclose=n=>{this.onclose&&this.onclose({target:this})},this.conn.onerror=n=>{this.onerror&&this.onerror({target:this})}}close(){this.conn.close()}isOpen(){return this.conn.readyState===WebSocket.OPEN}isConnecting(){return this.conn.readyState===WebSocket.CONNECTING}send(t){return this.conn.send(JSON.stringify(t))}}class Aa{constructor(t,n){this.type="sse",this.initParams=null,this.sendQueue=[],this.closeFired=!1,this.sseInitTimeout=null,this.id=`${this.type}_${ei++}`,this.url=n,this.ES=t,this.conn=new t(n),this.sseInitTimeout=setTimeout(()=>{this.initParams||this.handleError()},1e4),this.conn.onmessage=r=>{const i=JSON.parse(r.data);if(i.op==="sse-init"){this.initParams={machineId:i["machine-id"],sessionId:i["session-id"],sseToken:i["sse-token"]},this.onopen&&this.onopen({target:this}),clearTimeout(this.sseInitTimeout);return}this.onmessage&&this.onmessage({target:this,message:i})},this.conn.onerror=r=>{this.handleError()}}handleError(){try{this.onerror&&this.onerror({target:this})}finally{this.handleClose()}}handleClose(){this.conn.close(),this.onclose&&!this.closeFired&&(this.closeFired=!0,this.onclose({target:this}))}postMessages(t){return Xr(this,void 0,void 0,function*(){try{(yield fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machine_id:this.initParams.machineId,session_id:this.initParams.sessionId,sse_token:this.initParams.sseToken,messages:t})})).ok||this.handleError()}catch{this.handleError()}})}flushQueue(){return Xr(this,void 0,void 0,function*(){if(this.sendPromise||!this.sendQueue.length)return;const t=this.sendQueue;this.sendQueue=[];const n=this.postMessages(t);this.sendPromise=n,n.then(()=>{this.sendPromise=null,this.flushQueue()})})}send(t){if(!this.isOpen()||!this.initParams)throw this.isConnecting()?new Error("Failed to execute 'send' on 'EventSource': Still in CONNECTING state."):this.conn.readyState===this.ES.CLOSED?new Error("EventSource is already in CLOSING or CLOSED state."):new Error("EventSource is in invalid state.");this.sendQueue.push(t),this.flushQueue()}isOpen(){return this.conn.readyState===this.ES.OPEN&&this.initParams!==null}isConnecting(){return this.conn.readyState===this.ES.CONNECTING||this.conn.readyState===this.ES.OPEN&&this.initParams===null}close(){this.handleClose()}}var L=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})},Ca=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n};const we={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},ja=3e4,ka=3e4,Pa=200,Ia={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},wn="_instant_oauth_redirect",mn="currentUser";function Ma({transportType:e,appId:t,apiURI:n,wsURI:r,EventSourceImpl:i}){if(!i)return new ti(`${r}?app_id=${t}`);switch(e){case"ws":return new ti(`${r}?app_id=${t}`);case"sse":return new Aa(i,`${n}/runtime/sse?app_id=${t}`);default:throw new Error("Unknown transport type "+e)}}function Ra(){return typeof window<"u"||typeof chrome<"u"}const ni={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function xa(e,t){var n;const r=typeof e=="string"?JSON.parse(e):e;for(const i in r){const s=r[i];if(!((n=s==null?void 0:s.result)===null||n===void 0)&&n.store){const o=s.result.store;s.result.store=hs(Object.assign(Object.assign({},o),{useDateObjects:t}))}}return r}function Da(e){var t;const n={};for(const r in e){const i=e[r],s=Object.assign({},i);!((t=i.result)===null||t===void 0)&&t.store&&(s.result=Object.assign(Object.assign({},i.result),{store:ls(i.result.store)})),n[r]=s}return n}function ri(e){return[...e].sort((t,n)=>{const[r,i]=t,[s,o]=n,a=i.order||0,u=o.order||0;return a==u?r<s?-1:r>s?1:0:a-u})}class $a{constructor(t,n=Mr,r=Rr,i,s){var o,a,u;if(this._isOnline=!0,this._isShutdown=!1,this.status=we.CONNECTING,this.queryCbs={},this.queryOnceDfds={},this.authCbs=[],this.attrsCbs=[],this.mutationErrorCbs=[],this.connectionStatusCbs=[],this.mutationDeferredStore=new Map,this._reconnectTimeoutId=null,this._reconnectTimeoutMs=0,this._transportType="ws",this._wsOk=null,this._localIdPromises={},this._errorMessage=null,this._oauthCallbackResponse=null,this._linkIndex=null,this._rooms={},this._roomsPendingLeave={},this._presence={},this._broadcastQueue=[],this._broadcastSubs={},this._currentUserCached={isLoading:!0,error:void 0,user:void 0},this._beforeUnloadCbs=[],this._dataForQueryCache={},this._inFlightMutationEventIds=new Set,this._onMergeQuerySubs=(d,c)=>{const f=d||{},h=Object.assign({},c);Object.entries(c).forEach(([_,b])=>{var g;const T=(g=f==null?void 0:f[_])===null||g===void 0?void 0:g.result,w=b.result;T&&!w&&(h[_].result=T)}),Object.keys(f).filter(_=>!c[_]).sort((_,b)=>{var g,T;const w=((g=f[_])===null||g===void 0?void 0:g.lastAccessed)||0;return(((T=f[b])===null||T===void 0?void 0:T.lastAccessed)||0)-w}).slice(0,this.queryCacheLimit).forEach(_=>{h[_]=f[_]}),this.querySubs.set(_=>h),this.loadedNotifyAll()},this._onMergePendingMutations=(d,c)=>{const f=new Map([...d.entries(),...c.entries()]);this.pendingMutations.set(p=>f),this.loadedNotifyAll(),this._rewriteMutationsSorted(this.attrs,d).forEach(([p,_])=>{!c.has(p)&&!_["tx-id"]&&this._sendMutation(p,_)})},this.getPreviousResult=d=>{const c=ee(d);return this.dataForQuery(c)},this.notifyOne=d=>{var c,f;const h=(c=this.queryCbs[d])!==null&&c!==void 0?c:[],p=(f=this._dataForQueryCache[d])===null||f===void 0?void 0:f.data,_=this.dataForQuery(d);_&&(pt(_,p)||h.forEach(b=>b.cb(_)))},this.notifyOneQueryOnce=d=>{var c;const f=(c=this.queryOnceDfds[d])!==null&&c!==void 0?c:[],h=this.dataForQuery(d);f.forEach(p=>{this._completeQueryOnce(p.q,d,p.dfd),p.dfd.resolve(h)})},this.notifyQueryError=(d,c)=>{(this.queryCbs[d]||[]).forEach(h=>h.cb({error:c}))},this.pushTx=d=>{this.config.disableValidation||Ea(d,this.config.schema);try{const c=Xo({attrs:this.optimisticAttrs(),schema:this.config.schema,stores:Object.values(this.querySubs.currentValue).map(f=>{var h;return(h=f==null?void 0:f.result)===null||h===void 0?void 0:h.store}),useDateObjects:this.config.useDateObjects},d);return this.pushOps(c)}catch(c){return this.pushOps([],c)}},this.pushOps=(d,c)=>{const f=B(),h=[...this.pendingMutations.currentValue.values()],p=Math.max(0,...h.map(g=>g.order||0))+1,_={op:"transact","tx-steps":d,created:Date.now(),error:c,order:p};this.pendingMutations.set(g=>(g.set(f,_),g));const b=new Lr;return this.mutationDeferredStore.set(f,b),this._sendMutation(f,_),this.notifyAll(),b.promise},this._transportOnOpen=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][open]",c.id,"skip; this is no longer the current transport");return}this._log.info("[socket][open]",this._transport.id),this._setStatus(we.OPENED),this.getCurrentUser().then(f=>{var h;this._trySend(B(),{op:"init","app-id":this.config.appId,"refresh-token":(h=f.user)===null||h===void 0?void 0:h.refresh_token,versions:this.versions,"__admin-token":this.config.__adminToken})}).catch(f=>{this._log.error("[socket][error]",c.id,f)})},this._transportOnMessage=d=>{const c=d.target,f=d.message;if(this._transport!==c){this._log.info("[socket][message]",c.id,f,"skip; this is no longer the current transport");return}!this._wsOk&&c.type==="ws"&&(this._wsOk=!0),this._transportType="ws",this._handleReceive(c.id,d.message)},this._transportOnError=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][error]",c.id,"skip; this is no longer the current transport");return}this._log.error("[socket][error]",c.id,d)},this._scheduleReconnect=()=>{!this._wsOk&&this._transportType!=="sse"&&(this._transportType="sse",this._reconnectTimeoutMs=0),setTimeout(()=>{if(this._reconnectTimeoutMs=Math.min(this._reconnectTimeoutMs+1e3,1e4),!this._isOnline){this._log.info("[socket][close]",this._transport.id,"we are offline, no need to start socket");return}this._startSocket()},this._reconnectTimeoutMs)},this._transportOnClose=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][close]",c.id,"skip; this is no longer the current transport");return}this._setStatus(we.CLOSED);for(const f of Object.values(this._rooms))f.isConnected=!1;if(this._isShutdown){this._log.info("[socket][close]",c.id,"Reactor has been shut down and will not reconnect");return}this._log.info("[socket][close]",c.id,"schedule reconnect, ms =",this._reconnectTimeoutMs),this._scheduleReconnect()},this._EventSource=s,this.config=Object.assign(Object.assign({},Ia),t),this.queryCacheLimit=(o=this.config.queryCacheLimit)!==null&&o!==void 0?o:10,this._pendingTxCleanupTimeout=(a=this.config.pendingTxCleanupTimeout)!==null&&a!==void 0?a:ka,this._pendingMutationCleanupThreshold=(u=this.config.pendingMutationCleanupThreshold)!==null&&u!==void 0?u:Pa,this._log=ba(t.verbose||_n||Dr,()=>this._reactorStats()),this.versions=Object.assign(Object.assign({},i||{}),{"@instantdb/core":gn}),this.config.schema&&(this._linkIndex=Vr(this.config.schema)),!!Ra()){if(!t.appId)throw new Error("Instant must be initialized with an appId.");if(!De(t.appId))throw new Error(`Instant must be initialized with a valid appId. \`${t.appId}\` is not a valid uuid.`);typeof BroadcastChannel=="function"&&(this._broadcastChannel=new BroadcastChannel("@instantdb"),this._broadcastChannel.addEventListener("message",d=>L(this,void 0,void 0,function*(){var c;try{if(((c=d.data)===null||c===void 0?void 0:c.type)==="auth"){const f=yield this.getCurrentUser();this.updateUser(f.user)}}catch(f){this._log.error("[error] handle broadcast channel",f)}}))),this._initStorage(n),this._oauthCallbackResponse=this._oauthLoginInit(),this.getCurrentUser(),r.getIsOnline().then(d=>{this._isOnline=d,this._startSocket(),r.listen(c=>{c!==this._isOnline&&(this._log.info("[network] online =",c),this._isOnline=c,this._isOnline?this._startSocket():(this._log.info("Changing status from",this.status,"to",we.CLOSED),this._setStatus(we.CLOSED)))})}),typeof addEventListener<"u"&&(this._beforeUnload=this._beforeUnload.bind(this),addEventListener("beforeunload",this._beforeUnload))}}updateSchema(t){this.config=Object.assign(Object.assign({},this.config),{schema:t,cardinalityInference:!!t}),this._linkIndex=t?Vr(this.config.schema):null}_reactorStats(){return{inFlightMutationCount:this._inFlightMutationEventIds.size,pendingMutationCount:this.pendingMutations.currentValue.size,transportType:this._transportType}}_initStorage(t){this._persister=new t(`instant_${this.config.appId}_5`),this.querySubs=new Nr(this._persister,"querySubs",{},this._onMergeQuerySubs,Da,n=>xa(n,this.config.useDateObjects)),this.pendingMutations=new Nr(this._persister,"pendingMutations",new Map,this._onMergePendingMutations,n=>[...n.entries()],n=>new Map(typeof n=="string"?JSON.parse(n):n),100,100),this._beforeUnloadCbs.push(()=>{this.pendingMutations.flush(),this.querySubs.flush()})}_beforeUnload(){for(const t of this._beforeUnloadCbs)t()}_finishTransaction(t,n,r){const i=this.mutationDeferredStore.get(n);this.mutationDeferredStore.delete(n);const s=t!=="error"&&t!=="timeout";if(!i&&!s&&console.error("Mutation failed",Object.assign({status:t,eventId:n},r)),!!i)if(s)i.resolve({status:t,eventId:n});else if(r.type){const{status:o}=r,a=Ca(r,["status"]);i.reject(new et({body:a,status:o}))}else i.reject(new Ue(r.message,r.hint))}_setStatus(t,n){this.status=t,this._errorMessage=n,this.notifyConnectionStatusSubs(t)}_flushEnqueuedRoomData(t){var n,r;const i=(r=(n=this._presence[t])===null||n===void 0?void 0:n.result)===null||r===void 0?void 0:r.user,s=this._broadcastQueue[t];if(this._broadcastQueue[t]=[],i&&this._trySetPresence(t,i),s)for(const o of s){const{topic:a,roomType:u,data:d}=o;this._tryBroadcast(t,u,a,d)}}_handleReceive(t,n){var r,i,s,o,a,u;const d=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(ni[n.op]||this._log.info("[receive]",t,n.op,n),n.op){case"init-ok":this._setStatus(we.AUTHENTICATED),this._reconnectTimeoutMs=0,this._setAttrs(n.attrs),this._flushPendingMessages(),this._sessionId=n["session-id"];for(const O of Object.keys(this._rooms)){const Z=(i=(r=this._presence[O])===null||r===void 0?void 0:r.result)===null||i===void 0?void 0:i.user;this._tryJoinRoom(O,Z)}break;case"add-query-exists":this.notifyOneQueryOnce(ee(n.q));break;case"add-query-ok":const{q:c,result:f}=n,h=ee(c),p=(o=(s=f==null?void 0:f[0])===null||s===void 0?void 0:s.data)===null||o===void 0?void 0:o["page-info"],_=(u=(a=f==null?void 0:f[0])===null||a===void 0?void 0:a.data)===null||u===void 0?void 0:u.aggregate,b=Wr(f),g=rn(this.attrs,b,d,this._linkIndex,this.config.useDateObjects);this.querySubs.set(O=>(O[h].result={store:g,pageInfo:p,aggregate:_,processedTxId:n["processed-tx-id"]},O)),this._cleanupPendingMutationsQueries(),this.notifyOne(h),this.notifyOneQueryOnce(h),this._cleanupPendingMutationsTimeout();break;case"refresh-ok":const{computations:T,attrs:w}=n,v=n["processed-tx-id"];w&&this._setAttrs(w),this._cleanupPendingMutationsTimeout();const R=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue,v);R!==this.pendingMutations.currentValue&&this.pendingMutations.set(()=>R);const E=ri(R.entries()),N=T.map(O=>{var Z,Se,_e,pe;const Q=O["instaql-query"],z=O["instaql-result"],Pe=ee(Q),kt=Wr(z),Pt=rn(this.attrs,kt,d,this._linkIndex,this.config.useDateObjects),It=this._applyOptimisticUpdates(Pt,E,v),Mt=(Se=(Z=z==null?void 0:z[0])===null||Z===void 0?void 0:Z.data)===null||Se===void 0?void 0:Se["page-info"],Rt=(pe=(_e=z==null?void 0:z[0])===null||_e===void 0?void 0:_e.data)===null||pe===void 0?void 0:pe.aggregate;return{hash:Pe,store:It,pageInfo:Mt,aggregate:Rt}});N.forEach(({hash:O,store:Z,pageInfo:Se,aggregate:_e})=>{this.querySubs.set(pe=>(pe[O].result={store:Z,pageInfo:Se,aggregate:_e,processedTxId:v},pe))}),this._cleanupPendingMutationsQueries(),N.forEach(({hash:O})=>{this.notifyOne(O)});break;case"transact-ok":{const{"client-event-id":O,"tx-id":Z}=n;this._inFlightMutationEventIds.delete(O);const _e=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue).get(O);if(!_e)break;this.pendingMutations.set(Q=>(Q.set(O,Object.assign(Object.assign({},Q.get(O)),{"tx-id":Z,confirmed:Date.now()})),Q));const pe=_e["tx-steps"].filter(([Q,...z])=>Q==="add-attr").map(([Q,z])=>z).concat(Object.values(this.attrs));this._setAttrs(pe),this._finishTransaction("synced",O),this._cleanupPendingMutationsTimeout();break}case"patch-presence":{const O=n["room-id"];this._trySetRoomConnected(O,!0),this._patchPresencePeers(O,n.edits),this._notifyPresenceSubs(O);break}case"refresh-presence":{const O=n["room-id"];this._trySetRoomConnected(O,!0),this._setPresencePeers(O,n.data),this._notifyPresenceSubs(O);break}case"server-broadcast":{const O=n["room-id"],Z=n.topic;this._trySetRoomConnected(O,!0),this._notifyBroadcastSubs(O,Z,n);break}case"join-room-ok":{const O=n["room-id"];if(!this._rooms[O]){this._roomsPendingLeave[O]&&(this._tryLeaveRoom(O),delete this._roomsPendingLeave[O]);break}this._trySetRoomConnected(O,!0),this._flushEnqueuedRoomData(O);break}case"leave-room-ok":{const O=n["room-id"];this._trySetRoomConnected(O,!1);break}case"join-room-error":const V=n["room-id"],be=this._rooms[V];be&&(be.error=n.error),this._notifyPresenceSubs(V);break;case"error":this._handleReceiveError(n);break}}_handleMutationError(t,n,r){const i=this.pendingMutations.currentValue.get(n);if(i&&(t!=="timeout"||!i["tx-id"])){this.pendingMutations.set(o=>(o.delete(n),o)),this._inFlightMutationEventIds.delete(n);const s={message:r.message,hint:r.hint};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(s),this._finishTransaction(t,n,r)}}_handleReceiveError(t){var n,r,i,s,o;console.log("error",t);const a=t["client-event-id"];this._inFlightMutationEventIds.delete(a);const u=this.pendingMutations.currentValue.get(a),d={message:t.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(t.hint&&(d.hint=t.hint),u){this._handleMutationError("error",a,t);return}if(!((n=t["original-event"])===null||n===void 0)&&n.hasOwnProperty("q")&&((r=t["original-event"])===null||r===void 0?void 0:r.op)==="add-query"){const h=(i=t["original-event"])===null||i===void 0?void 0:i.q,p=ee(h);this.notifyQueryError(ee(h),d),this.notifyQueryOnceError(h,p,a,d);return}if(((s=t["original-event"])===null||s===void 0?void 0:s.op)==="init"){if(t.type==="record-not-found"&&((o=t.hint)===null||o===void 0?void 0:o["record-type"])==="app-user"){this.changeCurrentUser(null);return}this._setStatus(we.ERRORED,d),this.notifyAll();return}const f=Object.assign({},t);delete f.message,delete f.hint,console.error(t.message,f),t.hint&&console.error(`This error comes with some debugging information. Here it is:
1
+ (function(Y,k){typeof exports=="object"&&typeof module<"u"?k(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],k):(Y=typeof globalThis<"u"?globalThis:Y||self,k(Y.instantReact={},Y.React))})(this,function(Y,k){"use strict";function ee(e){if(typeof e=="number")return(Math.abs(e*2654435761)>>>0).toString(16);if(typeof e=="boolean")return e?"1":"0";if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e=="string"){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24),t=t>>>0;return t.toString(16)}if(Array.isArray(e)){let t=2166136261;for(let n=0;n<e.length;n++){t^=(n+1)*2654435761;const r=ee(e[n]);for(let i=0;i<r.length;i++)t^=r.charCodeAt(i),t*=16777619,t=t>>>0}return t.toString(16)}if(typeof e=="object"){let t=2166136261;const n=Object.keys(e).sort();for(let r=0;r<n.length;r++){const i=n[r],s=ee(i);t^=parseInt(s,16),t*=16777619,t=t>>>0;const o=ee(e[i]);t^=parseInt(o,16),t*=16777619,t=t>>>0}return t.toString(16)}return ee(String(e))}const $={Remove:"remove",Replace:"replace",Add:"add"},Bn=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Di=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),dt=Symbol.iterator,oe={mutable:"mutable",immutable:"immutable"},Lt={};function Ge(e,t){return e instanceof Map?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function qn(e,t){if(t in e){let n=Reflect.getPrototypeOf(e);for(;n;){const r=Reflect.getOwnPropertyDescriptor(n,t);if(r)return r;n=Reflect.getPrototypeOf(n)}}}function Nt(e){return Object.getPrototypeOf(e)===Set.prototype}function Ft(e){return Object.getPrototypeOf(e)===Map.prototype}function ae(e){var t;return(t=e.copy)!==null&&t!==void 0?t:e.original}function Oe(e){return!!C(e)}function C(e){return typeof e!="object"?null:e==null?void 0:e[Bn]}function Wt(e){var t;const n=C(e);return n?(t=n.copy)!==null&&t!==void 0?t:n.original:e}function de(e,t){if(!e||typeof e!="object")return!1;let n;return Object.getPrototypeOf(e)===Object.prototype||Array.isArray(e)||e instanceof Map||e instanceof Set||!!(t!=null&&t.mark)&&((n=t.mark(e,oe))===oe.immutable||typeof n=="function")}function Gn(e,t=[]){if(Object.hasOwnProperty.call(e,"key")){const n=e.parent.copy,r=C(ge(n,e.key));if(r!==null&&(r==null?void 0:r.original)!==e.original)return null;const i=e.parent.type===3,s=i?Array.from(e.parent.setMap.keys()).indexOf(e.key):e.key;if(!(i&&n.size>s||Ge(n,s)))return null;t.push(s)}if(e.parent)return Gn(e.parent,t);t.reverse();try{$i(e.copy,t)}catch{return null}return t}function Ee(e){return Array.isArray(e)?1:e instanceof Map?2:e instanceof Set?3:0}function ge(e,t){return Ee(e)===2?e.get(t):e[t]}function Qe(e,t,n){Ee(e)===2?e.set(t,n):e[t]=n}function Vt(e,t){const n=C(e);return(n?ae(n):e)[t]}function Te(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function zt(e){if(e)for(;e.finalities.revoke.length>0;)e.finalities.revoke.pop()()}function Ae(e,t){return t?e:[""].concat(e).map(n=>{const r=`${n}`;return r.indexOf("/")===-1&&r.indexOf("~")===-1?r:r.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")}function $i(e,t){for(let n=0;n<t.length-1;n+=1){const r=t[n];if(e=ge(Ee(e)===3?Array.from(e):e,r),typeof e!="object")throw new Error(`Cannot resolve patch at '${t.join("/")}'.`)}return e}function Ui(e){const t=Object.create(Object.getPrototypeOf(e));return Reflect.ownKeys(e).forEach(n=>{let r=Reflect.getOwnPropertyDescriptor(e,n);if(r.enumerable&&r.configurable&&r.writable){t[n]=e[n];return}r.writable||(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(r={configurable:!0,writable:!0,enumerable:r.enumerable,value:e[n]}),Reflect.defineProperty(t,n,r)}),t}const Li=Object.prototype.propertyIsEnumerable;function Qn(e,t){let n;if(Array.isArray(e))return Array.prototype.concat.call(e);if(e instanceof Set){if(!Nt(e)){const r=Object.getPrototypeOf(e).constructor;return new r(e.values())}return Set.prototype.difference?Set.prototype.difference.call(e,new Set):new Set(e.values())}else if(e instanceof Map){if(!Ft(e)){const r=Object.getPrototypeOf(e).constructor;return new r(e)}return new Map(e)}else if(t!=null&&t.mark&&(n=t.mark(e,oe),n!==void 0)&&n!==oe.mutable){if(n===oe.immutable)return Ui(e);if(typeof n=="function"){if(t.enablePatches||t.enableAutoFreeze)throw new Error("You can't use mark and patches or auto freeze together.");return n()}throw new Error(`Unsupported mark result: ${n}`)}else if(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype){const r={};return Object.keys(e).forEach(i=>{r[i]=e[i]}),Object.getOwnPropertySymbols(e).forEach(i=>{Li.call(e,i)&&(r[i]=e[i])}),r}else throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function H(e){e.copy||(e.copy=Qn(e.original,e.options))}function Ye(e){if(!de(e))return Wt(e);if(Array.isArray(e))return e.map(Ye);if(e instanceof Map){const n=Array.from(e.entries()).map(([r,i])=>[r,Ye(i)]);if(!Ft(e)){const r=Object.getPrototypeOf(e).constructor;return new r(n)}return new Map(n)}if(e instanceof Set){const n=Array.from(e).map(Ye);if(!Nt(e)){const r=Object.getPrototypeOf(e).constructor;return new r(n)}return new Set(n)}const t=Object.create(Object.getPrototypeOf(e));for(const n in e)t[n]=Ye(e[n]);return t}function ft(e){return Oe(e)?Ye(e):e}function ye(e){var t;e.assignedMap=(t=e.assignedMap)!==null&&t!==void 0?t:new Map,e.operated||(e.operated=!0,e.parent&&ye(e.parent))}function Yn(){throw new Error("Cannot modify frozen object")}function Me(e,t,n,r,i){{n=n??new WeakMap,r=r??[],i=i??[];const o=n.has(e)?n.get(e):e;if(r.length>0){const a=r.indexOf(o);if(o&&typeof o=="object"&&a!==-1)throw r[0]===o?new Error("Forbids circular reference"):new Error(`Forbids circular reference: ~/${i.slice(0,a).map((u,d)=>{if(typeof u=="symbol")return`[${u.toString()}]`;const c=r[d];return typeof u=="object"&&(c instanceof Map||c instanceof Set)?Array.from(c.keys()).indexOf(u):u}).join("/")}`);r.push(o),i.push(t)}else r.push(o)}if(Object.isFrozen(e)||Oe(e)){r.pop(),i.pop();return}switch(Ee(e)){case 2:for(const[a,u]of e)Me(a,a,n,r,i),Me(u,a,n,r,i);e.set=e.clear=e.delete=Yn;break;case 3:for(const a of e)Me(a,a,n,r,i);e.add=e.clear=e.delete=Yn;break;case 1:Object.freeze(e);let o=0;for(const a of e)Me(a,o,n,r,i),o+=1;break;default:Object.freeze(e),Object.keys(e).forEach(a=>{const u=e[a];Me(u,a,n,r,i)})}r.pop(),i.pop()}function Kt(e,t){const n=Ee(e);if(n===0)Reflect.ownKeys(e).forEach(r=>{t(r,e[r],e)});else if(n===1){let r=0;for(const i of e)t(r,i,e),r+=1}else e.forEach((r,i)=>t(i,r,e))}function Hn(e,t,n){if(Oe(e)||!de(e,n)||t.has(e)||Object.isFrozen(e))return;const r=e instanceof Set,i=r?new Map:void 0;if(t.add(e),Kt(e,(s,o)=>{var a;if(Oe(o)){const u=C(o);H(u);const d=!((a=u.assignedMap)===null||a===void 0)&&a.size||u.operated?u.copy:u.original;Qe(r?i:e,s,d)}else Hn(o,t,n)}),i){const s=e,o=Array.from(s);s.clear(),o.forEach(a=>{s.add(i.has(a)?i.get(a):a)})}}function Ni(e,t){const n=e.type===3?e.setMap:e.copy;e.finalities.revoke.length>1&&e.assignedMap.get(t)&&n&&Hn(ge(n,t),e.finalities.handledSet,e.options)}function Bt(e){e.type===3&&e.copy&&(e.copy.clear(),e.setMap.forEach(t=>{e.copy.add(Wt(t))}))}function qt(e,t,n,r){if(e.operated&&e.assignedMap&&e.assignedMap.size>0&&!e.finalized){if(n&&r){const s=Gn(e);s&&t(e,s,n,r)}e.finalized=!0}}function Gt(e,t,n,r){const i=C(n);i&&(i.callbacks||(i.callbacks=[]),i.callbacks.push((s,o)=>{var a;const u=e.type===3?e.setMap:e.copy;if(Te(ge(u,t),n)){let d=i.original;i.copy&&(d=i.copy),Bt(e),qt(e,r,s,o),e.options.enableAutoFreeze&&(e.options.updatedValues=(a=e.options.updatedValues)!==null&&a!==void 0?a:new WeakMap,e.options.updatedValues.set(d,i.original)),Qe(u,t,d)}}),e.options.enableAutoFreeze&&i.finalities!==e.finalities&&(e.options.enableAutoFreeze=!1)),de(n,e.options)&&e.finalities.draft.push(()=>{const s=e.type===3?e.setMap:e.copy;Te(ge(s,t),n)&&Ni(e,t)})}function Fi(e,t,n,r,i){let{original:s,assignedMap:o,options:a}=e,u=e.copy;u.length<s.length&&([s,u]=[u,s],[n,r]=[r,n]);for(let d=0;d<s.length;d+=1)if(o.get(d.toString())&&u[d]!==s[d]){const c=t.concat([d]),f=Ae(c,i);n.push({op:$.Replace,path:f,value:ft(u[d])}),r.push({op:$.Replace,path:f,value:ft(s[d])})}for(let d=s.length;d<u.length;d+=1){const c=t.concat([d]),f=Ae(c,i);n.push({op:$.Add,path:f,value:ft(u[d])})}if(s.length<u.length){const{arrayLengthAssignment:d=!0}=a.enablePatches;if(d){const c=t.concat(["length"]),f=Ae(c,i);r.push({op:$.Replace,path:f,value:s.length})}else for(let c=u.length;s.length<c;c-=1){const f=t.concat([c-1]),h=Ae(f,i);r.push({op:$.Remove,path:h})}}}function Wi({original:e,copy:t,assignedMap:n},r,i,s,o){n.forEach((a,u)=>{const d=ge(e,u),c=ft(ge(t,u)),f=a?Ge(e,u)?$.Replace:$.Add:$.Remove;if(Te(d,c)&&f===$.Replace)return;const h=r.concat(u),p=Ae(h,o);i.push(f===$.Remove?{op:f,path:p}:{op:f,path:p,value:c}),s.push(f===$.Add?{op:$.Remove,path:p}:f===$.Remove?{op:$.Add,path:p,value:d}:{op:$.Replace,path:p,value:d})})}function Vi({original:e,copy:t},n,r,i,s){let o=0;e.forEach(a=>{if(!t.has(a)){const u=n.concat([o]),d=Ae(u,s);r.push({op:$.Remove,path:d,value:a}),i.unshift({op:$.Add,path:d,value:a})}o+=1}),o=0,t.forEach(a=>{if(!e.has(a)){const u=n.concat([o]),d=Ae(u,s);r.push({op:$.Add,path:d,value:a}),i.unshift({op:$.Remove,path:d,value:a})}o+=1})}function He(e,t,n,r){const{pathAsArray:i=!0}=e.options.enablePatches;switch(e.type){case 0:case 2:return Wi(e,t,n,r,i);case 1:return Fi(e,t,n,r,i);case 3:return Vi(e,t,n,r,i)}}const lt=(e,t,n=!1)=>{if(typeof e=="object"&&e!==null&&(!de(e,t)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},Qt={get size(){return ae(C(this)).size},has(e){return ae(C(this)).has(e)},set(e,t){const n=C(this),r=ae(n);return(!r.has(e)||!Te(r.get(e),t))&&(H(n),ye(n),n.assignedMap.set(e,!0),n.copy.set(e,t),Gt(n,e,t,He)),this},delete(e){if(!this.has(e))return!1;const t=C(this);return H(t),ye(t),t.original.has(e)?t.assignedMap.set(e,!1):t.assignedMap.delete(e),t.copy.delete(e),!0},clear(){const e=C(this);if(this.size){H(e),ye(e),e.assignedMap=new Map;for(const[t]of e.original)e.assignedMap.set(t,!1);e.copy.clear()}},forEach(e,t){const n=C(this);ae(n).forEach((r,i)=>{e.call(t,this.get(i),i,this)})},get(e){var t,n;const r=C(this),i=ae(r).get(e),s=((n=(t=r.options).mark)===null||n===void 0?void 0:n.call(t,i,oe))===oe.mutable;if(r.options.strict&&lt(i,r.options,s),s||r.finalized||!de(i,r.options)||i!==r.original.get(e))return i;const o=Lt.createDraft({original:i,parentDraft:r,key:e,finalities:r.finalities,options:r.options});return H(r),r.copy.set(e,o),o},keys(){return ae(C(this)).keys()},values(){const e=this.keys();return{[dt]:()=>this.values(),next:()=>{const t=e.next();return t.done?t:{done:!1,value:this.get(t.value)}}}},entries(){const e=this.keys();return{[dt]:()=>this.entries(),next:()=>{const t=e.next();if(t.done)return t;const n=this.get(t.value);return{done:!1,value:[t.value,n]}}}},[dt](){return this.entries()}},zi=Reflect.ownKeys(Qt),Jn=(e,t,{isValuesIterator:n})=>()=>{var r,i;const s=t.next();if(s.done)return s;const o=s.value;let a=e.setMap.get(o);const u=C(a),d=((i=(r=e.options).mark)===null||i===void 0?void 0:i.call(r,a,oe))===oe.mutable;if(e.options.strict&&lt(o,e.options,d),!d&&!u&&de(o,e.options)&&!e.finalized&&e.original.has(o)){const c=Lt.createDraft({original:o,parentDraft:e,key:o,finalities:e.finalities,options:e.options});e.setMap.set(o,c),a=c}else u&&(a=u.proxy);return{done:!1,value:n?a:[a,a]}},ht={get size(){return C(this).setMap.size},has(e){const t=C(this);if(t.setMap.has(e))return!0;H(t);const n=C(e);return!!(n&&t.setMap.has(n.original))},add(e){const t=C(this);return this.has(e)||(H(t),ye(t),t.assignedMap.set(e,!0),t.setMap.set(e,e),Gt(t,e,e,He)),this},delete(e){if(!this.has(e))return!1;const t=C(this);H(t),ye(t);const n=C(e);return n&&t.setMap.has(n.original)?(t.assignedMap.set(n.original,!1),t.setMap.delete(n.original)):(!n&&t.setMap.has(e)?t.assignedMap.set(e,!1):t.assignedMap.delete(e),t.setMap.delete(e))},clear(){if(!this.size)return;const e=C(this);H(e),ye(e);for(const t of e.original)e.assignedMap.set(t,!1);e.setMap.clear()},values(){const e=C(this);H(e);const t=e.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:Jn(e,t,{isValuesIterator:!0})}},entries(){const e=C(this);H(e);const t=e.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:Jn(e,t,{isValuesIterator:!1})}},keys(){return this.values()},[dt](){return this.values()},forEach(e,t){const n=this.values();let r=n.next();for(;!r.done;)e.call(t,r.value,r.value,this),r=n.next()}};Set.prototype.difference&&Object.assign(ht,{intersection(e){return Set.prototype.intersection.call(new Set(this.values()),e)},union(e){return Set.prototype.union.call(new Set(this.values()),e)},difference(e){return Set.prototype.difference.call(new Set(this.values()),e)},symmetricDifference(e){return Set.prototype.symmetricDifference.call(new Set(this.values()),e)},isSubsetOf(e){return Set.prototype.isSubsetOf.call(new Set(this.values()),e)},isSupersetOf(e){return Set.prototype.isSupersetOf.call(new Set(this.values()),e)},isDisjointFrom(e){return Set.prototype.isDisjointFrom.call(new Set(this.values()),e)}});const Ki=Reflect.ownKeys(ht),Zn=new WeakSet,Xn={get(e,t,n){var r,i;const s=(r=e.copy)===null||r===void 0?void 0:r[t];if(s&&Zn.has(s))return s;if(t===Bn)return e;let o;if(e.options.mark){const d=t==="size"&&(e.original instanceof Map||e.original instanceof Set)?Reflect.get(e.original,t):Reflect.get(e.original,t,n);if(o=e.options.mark(d,oe),o===oe.mutable)return e.options.strict&&lt(d,e.options,!0),d}const a=ae(e);if(a instanceof Map&&zi.includes(t)){if(t==="size")return Object.getOwnPropertyDescriptor(Qt,"size").get.call(e.proxy);const d=Qt[t];if(d)return d.bind(e.proxy)}if(a instanceof Set&&Ki.includes(t)){if(t==="size")return Object.getOwnPropertyDescriptor(ht,"size").get.call(e.proxy);const d=ht[t];if(d)return d.bind(e.proxy)}if(!Ge(a,t)){const d=qn(a,t);return d?"value"in d?d.value:(i=d.get)===null||i===void 0?void 0:i.call(e.proxy):void 0}const u=a[t];if(e.options.strict&&lt(u,e.options),e.finalized||!de(u,e.options))return u;if(u===Vt(e.original,t)){if(H(e),e.copy[t]=Yt({original:e.original[t],parentDraft:e,key:e.type===1?Number(t):t,finalities:e.finalities,options:e.options}),typeof o=="function"){const d=C(e.copy[t]);return H(d),ye(d),d.copy}return e.copy[t]}return u},set(e,t,n){var r;if(e.type===3||e.type===2)throw new Error("Map/Set draft does not support any property assignment.");let i;if(e.type===1&&t!=="length"&&!(Number.isInteger(i=Number(t))&&i>=0&&(t===0||i===0||String(i)===String(t))))throw new Error("Only supports setting array indices and the 'length' property.");const s=qn(ae(e),t);if(s!=null&&s.set)return s.set.call(e.proxy,n),!0;const o=Vt(ae(e),t),a=C(o);return a&&Te(a.original,n)?(e.copy[t]=n,e.assignedMap=(r=e.assignedMap)!==null&&r!==void 0?r:new Map,e.assignedMap.set(t,!1),!0):(Te(n,o)&&(n!==void 0||Ge(e.original,t))||(H(e),ye(e),Ge(e.original,t)&&Te(n,e.original[t])?e.assignedMap.delete(t):e.assignedMap.set(t,!0),e.copy[t]=n,Gt(e,t,n,He)),!0)},has(e,t){return t in ae(e)},ownKeys(e){return Reflect.ownKeys(ae(e))},getOwnPropertyDescriptor(e,t){const n=ae(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},getPrototypeOf(e){return Reflect.getPrototypeOf(e.original)},setPrototypeOf(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty(e,t){var n;return e.type===1?Xn.set.call(this,e,t,void 0,e.proxy):(Vt(e.original,t)!==void 0||t in e.original?(H(e),ye(e),e.assignedMap.set(t,!1)):(e.assignedMap=(n=e.assignedMap)!==null&&n!==void 0?n:new Map,e.assignedMap.delete(t)),e.copy&&delete e.copy[t],!0)}};function Yt(e){const{original:t,parentDraft:n,key:r,finalities:i,options:s}=e,o=Ee(t),a={type:o,finalized:!1,parent:n,original:t,copy:null,proxy:null,finalities:i,options:s,setMap:o===3?new Map(t.entries()):void 0};(r||"key"in e)&&(a.key=r);const{proxy:u,revoke:d}=Proxy.revocable(o===1?Object.assign([],a):a,Xn);if(i.revoke.push(d),Zn.add(u),a.proxy=u,n){const c=n;c.finalities.draft.push((f,h)=>{var p,_;const b=C(u);let g=c.type===3?c.setMap:c.copy;const T=ge(g,r),w=C(T);if(w){let v=w.original;w.operated&&(v=Wt(T)),Bt(w),qt(w,He,f,h),c.options.enableAutoFreeze&&(c.options.updatedValues=(p=c.options.updatedValues)!==null&&p!==void 0?p:new WeakMap,c.options.updatedValues.set(v,w.original)),Qe(g,r,v)}(_=b.callbacks)===null||_===void 0||_.forEach(v=>{v(f,h)})})}else{const c=C(u);c.finalities.draft.push((f,h)=>{Bt(c),qt(c,He,f,h)})}return u}Lt.createDraft=Yt;function Bi(e,t,n,r,i){var s;const o=C(e),a=(s=o==null?void 0:o.original)!==null&&s!==void 0?s:e,u=!!t.length;if(o!=null&&o.operated)for(;o.finalities.draft.length>0;)o.finalities.draft.pop()(n,r);const d=u?t[0]:o?o.operated?o.copy:o.original:e;return o&&zt(o),i&&Me(d,d,o==null?void 0:o.options.updatedValues),[d,n&&u?[{op:$.Replace,path:[],value:t[0]}]:n,r&&u?[{op:$.Replace,path:[],value:a}]:r]}function qi(e,t){var n;const r={draft:[],revoke:[],handledSet:new WeakSet};let i,s;t.enablePatches&&(i=[],s=[]);const a=((n=t.mark)===null||n===void 0?void 0:n.call(t,e,oe))===oe.mutable||!de(e,t)?e:Yt({original:e,parentDraft:null,finalities:r,options:t});return[a,(u=[])=>{const[d,c,f]=Bi(a,u,i,s,t.enableAutoFreeze);return t.enablePatches?[d,c,f]:d}]}function Ht(e){const{rootDraft:t,value:n,useRawReturn:r=!1,isRoot:i=!0}=e;Kt(n,(s,o,a)=>{const u=C(o);if(u&&t&&u.finalities===t.finalities){e.isContainDraft=!0;const d=u.original;if(a instanceof Set){const c=Array.from(a);a.clear(),c.forEach(f=>a.add(s===f?d:f))}else Qe(a,s,d)}else typeof o=="object"&&o!==null&&(e.value=o,e.isRoot=!1,Ht(e))}),i&&(e.isContainDraft||console.warn("The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance."),r&&console.warn("The return value contains drafts, please don't use 'rawReturn()' to wrap the return value."))}function er(e){var t;const n=C(e);if(!de(e,n==null?void 0:n.options))return e;const r=Ee(e);if(n&&!n.operated)return n.original;let i;function s(){i=r===2?Ft(e)?new Map(e):new(Object.getPrototypeOf(e)).constructor(e):r===3?Array.from(n.setMap.values()):Qn(e,n==null?void 0:n.options)}if(n){n.finalized=!0;try{s()}finally{n.finalized=!1}}else i=e;if(Kt(i,(o,a)=>{if(n&&Te(ge(n.original,o),a))return;const u=er(a);u!==a&&(i===e&&s(),Qe(i,o,u))}),r===3){const o=(t=n==null?void 0:n.original)!==null&&t!==void 0?t:i;return Nt(o)?new Set(i):new(Object.getPrototypeOf(o)).constructor(i)}return i}function tr(e){if(!Oe(e))throw new Error(`current() is only used for Draft, parameter: ${e}`);return er(e)}const Jt=(e=>function t(n,r,i){var s,o,a;if(typeof n=="function"&&typeof r!="function")return function(E,...N){return t(E,V=>n.call(this,V,...N),r)};const u=n,d=r;let c=i;if(typeof r!="function"&&(c=r),c!==void 0&&Object.prototype.toString.call(c)!=="[object Object]")throw new Error(`Invalid options: ${c}, 'options' should be an object.`);c=Object.assign(Object.assign({},e),c);const f=Oe(u)?tr(u):u,h=Array.isArray(c.mark)?(E,N)=>{for(const V of c.mark){if(typeof V!="function")throw new Error(`Invalid mark: ${V}, 'mark' should be a function.`);const be=V(E,N);if(be)return be}}:c.mark,p=(s=c.enablePatches)!==null&&s!==void 0?s:!1,_=(o=c.strict)!==null&&o!==void 0?o:!1,g={enableAutoFreeze:(a=c.enableAutoFreeze)!==null&&a!==void 0?a:!1,mark:h,strict:_,enablePatches:p};if(!de(f,g)&&typeof f=="object"&&f!==null)throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");const[T,w]=qi(f,g);if(typeof r!="function"){if(!de(f,g))throw new Error("Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.");return[T,w]}let v;try{v=d(T)}catch(E){throw zt(C(T)),E}const R=E=>{const N=C(T);if(!Oe(E)){if(E!==void 0&&!Te(E,T)&&(N!=null&&N.operated))throw new Error("Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.");const be=E==null?void 0:E[Di];if(be){const O=be[0];return g.strict&&typeof E=="object"&&E!==null&&Ht({rootDraft:N,value:E,useRawReturn:!0}),w([O])}if(E!==void 0)return typeof E=="object"&&E!==null&&Ht({rootDraft:N,value:E}),w([E])}if(E===T||E===void 0)return w([]);const V=C(E);if(g===V.options){if(V.operated)throw new Error("Cannot return a modified child draft.");return w([tr(E)])}return w([E])};return v instanceof Promise?v.then(R,E=>{throw zt(C(T)),E}):R(v)})();Object.prototype.constructor.toString();function nr(e,t){const n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&Object.keys(e).every(i=>t.hasOwnProperty(i))}function rr(e,t){return Object.keys(e).length===Object.keys(t).length&&Object.keys(e).every(n=>t.hasOwnProperty(n)&&e[n]===t[n])}function pt(e,t){return typeof e!="object"||typeof t!="object"||e===null||t===null?e===t:nr(e,t)?Object.keys(e).every(n=>pt(e[n],t[n])):!1}function Zt(e){if(!Je(e))return e;const t={};for(const[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}function ir(e,t){if(!Je(e)||!Je(t))return t;const n=Object.assign({},e);for(const r of Object.keys(t)){if(t[r]===void 0)continue;if(t[r]===null){delete n[r];continue}const i=Je(e[r])&&Je(t[r]);n[r]=i?ir(e[r],t[r]):t[r]}return n}function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Gi(e,t,n){if(!e||t.length===0)return;let r=e||{};for(let s=0;s<t.length-1;s++){const o=t[s];(!(o in r)||typeof r[o]!="object")&&(r[o]=typeof t[s+1]=="number"?[]:{}),r=r[o]}const i=t[t.length-1];Array.isArray(r)&&typeof i=="number"?r.splice(i,0,n):r[i]=n}function sr(e,t,n){if(!e||t.length===0)return;let r=e||{};for(let i=0;i<t.length-1;i++){const s=t[i];(!(s in r)||typeof r[s]!="object")&&(r[s]=typeof t[i+1]=="number"?[]:{}),r=r[s]}r[t[t.length-1]]=n}function or(e,t){if(!e||t.length===0)return;const[n,...r]=t;if(n in e){if(r.length===0){Array.isArray(e)?e.splice(n,1):delete e[n];return}or(e[n],r),Qi(e[n])&&delete e[n]}}function Qi(e){return e&&Object.keys(e).length===0}const ar=/ZULU|YEKT|YEKST|YAPT|YAKT|YAKST|XJT|WGT|WGST|WFT|WETDST|WET|WDT|WAT|WAST|WAKT|WADT|VUT|VOLT|VLAT|VLAST|VET|UZT|UZST|UYT|UYST|UTC|UT|ULAT|ULAST|UCT|TVT|TRUT|TOT|TMT|TKT|TJT|TFT|TAHT|SGT|SCT|SAST|SADT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PKST|PHT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZT|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|MYT|MVT|MUT|MUST|MST|MSK|MSD|MPT|MMT|MHT|MEZ|METDST|MET|MESZ|MEST|MDT|MAWT|MART|MAGT|MAGST|LKT|LINT|LIGT|LHST|LHDT|KST|KRAT|KRAST|KOST|KGT|KGST|KDT|JST|JAYT|IST|IRT|IRKT|IRKST|IOT|IDT|ICT|HST|HKT|GYT|GMT|GILT|GFT|GET|GEST|GAMT|GALT|FNT|FNST|FKT|FKST|FJT|FJST|FET|EST|EGT|EGST|EETDST|EET|EEST|EDT|EAT|EAST|EASST|DDUT|DAVT|CXT|CST|COT|CLT|CLST|CKT|CHUT|CHAST|CHADT|CETDST|CET|CEST|CDT|CCT|CAST|CADT|BTT|BST|BRT|BRST|BRA|BOT|BORT|BNT|BDT|BDST|AZT|AZST|AZOT|AZOST|AWST|AWSST|AST|ART|ARST|ANAT|ANAST|AMT|AMST|ALMT|ALMST|AKST|AKDT|AFT|AEST|AESST|AEDT|ADT|ACWST|ACT|ACST|ACSST|ACDT$/,Yi={ZULU:0,YEKT:18e3,YEKST:21600,YAPT:36e3,YAKT:32400,YAKST:32400,XJT:21600,WGT:-10800,WGST:-7200,WFT:43200,WETDST:3600,WET:0,WDT:32400,WAT:3600,WAST:25200,WAKT:43200,WADT:28800,VUT:39600,VOLT:10800,VLAT:36e3,VLAST:36e3,VET:-14400,UZT:18e3,UZST:21600,UYT:-10800,UYST:-7200,UTC:0,UT:0,ULAT:28800,ULAST:32400,UCT:0,TVT:43200,TRUT:36e3,TOT:46800,TMT:18e3,TKT:46800,TJT:18e3,TFT:18e3,TAHT:-36e3,SGT:28800,SCT:14400,SAST:7200,SADT:37800,RET:14400,PYT:-14400,PYST:-10800,PWT:32400,PST:-28800,PONT:39600,PMST:-10800,PMDT:-7200,PKT:18e3,PKST:21600,PHT:28800,PGT:36e3,PETT:43200,PETST:43200,PET:-18e3,PDT:-25200,OMST:21600,OMSST:21600,NZT:43200,NZST:43200,NZDT:46800,NUT:-39600,NST:-12600,NPT:20700,NOVT:25200,NOVST:25200,NFT:-12600,NDT:-9e3,MYT:28800,MVT:18e3,MUT:14400,MUST:18e3,MST:-25200,MSK:10800,MSD:14400,MPT:36e3,MMT:23400,MHT:43200,MEZ:3600,METDST:7200,MET:3600,MESZ:7200,MEST:7200,MDT:-21600,MAWT:18e3,MART:-34200,MAGT:39600,MAGST:39600,LKT:19800,LINT:50400,LIGT:36e3,LHST:37800,LHDT:37800,KST:32400,KRAT:25200,KRAST:25200,KOST:39600,KGT:21600,KGST:21600,KDT:36e3,JST:32400,JAYT:32400,IST:7200,IRT:12600,IRKT:28800,IRKST:28800,IOT:21600,IDT:10800,ICT:25200,HST:-36e3,HKT:28800,GYT:-14400,GMT:0,GILT:43200,GFT:-10800,GET:14400,GEST:14400,GAMT:-32400,GALT:-21600,FNT:-7200,FNST:-3600,FKT:-10800,FKST:-10800,FJT:43200,FJST:46800,FET:10800,EST:-18e3,EGT:-3600,EGST:0,EETDST:10800,EET:7200,EEST:10800,EDT:-14400,EAT:10800,EAST:-21600,EASST:-21600,DDUT:36e3,DAVT:25200,CXT:25200,CST:-21600,COT:-18e3,CLT:-14400,CLST:-10800,CKT:-36e3,CHUT:36e3,CHAST:45900,CHADT:49500,CETDST:7200,CET:3600,CEST:7200,CDT:-18e3,CCT:28800,CAST:34200,CADT:37800,BTT:21600,BST:3600,BRT:-10800,BRST:-7200,BRA:-10800,BOT:-14400,BORT:28800,BNT:28800,BDT:21600,BDST:7200,AZT:14400,AZST:14400,AZOT:-3600,AZOST:0,AWST:28800,AWSST:32400,AST:-14400,ART:-10800,ARST:-10800,ANAT:43200,ANAST:43200,AMT:-14400,AMST:14400,ALMT:21600,ALMST:25200,AKST:-32400,AKDT:-28800,AFT:16200,AEST:36e3,AESST:39600,AEDT:39600,ADT:-10800,ACWST:31500,ACT:-18e3,ACST:34200,ACSST:37800,ACDT:37800};function Hi(e){return new Date(e)}function Ji(e){return new Date(e+"Z")}const Zi=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function Xi(e){const t=e.match(Zi);if(!t)return null;const[n,r,i,s]=t;return r<=0||i<=0||s<=0?null:r>999?new Date(Date.UTC(r,i-1,s,0,0,0,0)):new Date(Date.UTC(s,r-1,i,0,0,0,0))}function es(e){const[t,n]=e.split(" ");return new Date(t+"T"+n+"Z")}function ts(e){const[t,n]=e.split(" ");return new Date(t+"T"+n+"Z")}function ns(e){return new Date(e)}function rs(e){const t=/^(\w{3}) (\w{3}) (\d{2}) (\d{4})$/;if(!e.match(t))throw new Error(`Unable to parse \`${e}\` as a date.`);const r=new Date(e+" UTC");return new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),0,0,0,0))}function is(e){const t=/^(.+T.+)([+-])(\d{2})$/,n=e.match(t);if(n){const[,r,i,s]=n,o=`${r}${i}${s}:00`;return new Date(o)}return null}function ss(e){const[t,n]=e.split(", "),[r,i,s]=t.split("/").map(Number),o=n.match(/(\d{1,2}):(\d{2}):(\d{2}) (AM|PM)/);if(!o)throw new Error(`Unable to parse time from: ${e}`);let[,a,u,d,c]=o;return a=Number(a),u=Number(u),d=Number(d),c==="PM"&&a!==12?a+=12:c==="AM"&&a===12&&(a=0),new Date(Date.UTC(s,r-1,i,a,u,d))}function os(e){switch(e){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function as(e){const t=e.match(ar);if(!t)return null;const[n]=t,r=Yi[n],i=new Date(e.replace(ar,"Z"));return new Date(i.getTime()-r*1e3)}const us=[Xi,ts,rs,ss,ns,Ji,is,es,Hi,os,as];function cs(e,t){try{const n=e(t);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function Xt(e){for(const t of us){const n=cs(t,e);if(n)return n}return null}function ds(e){try{const t=JSON.parse(e);return typeof t=="string"?Xt(t):null}catch{return null}}function yt(e){if(e!==void 0){if(e===null)return null;if(e instanceof Date)return e;if(typeof e=="string"){const t=Xt(e)||ds(e)||Xt(e.trim());if(!t)throw new Error(`Unable to parse \`${e}\` as a date.`);return t}else if(typeof e=="number")return new Date(e);throw new Error(`Invalid date value \`${e}\`. Expected a date, number, or string, got type ${typeof e}.`)}}function fs(e){return e.cardinality==="one"}function en(e){return e["value-type"]==="ref"}function tn(e){return e["value-type"]==="blob"}function Re(e,t){return e[t]}function bt(e,t){return t.reduce((n,r)=>n&&n.get(r),e)}function fe(e,t){if(t.length===0)throw new Error("path must have at least one element");if(t.length===1){e.delete(t[0]);return}const[n,...r]=t;e.has(n)&&fe(e.get(n),r)}function te(e,t,n){if(t.length===0)throw new Error("path must have at least one element");if(t.length===1){e.set(t[0],n);return}const[r,...i]=t;let s=e.get(r);s||(s=new Map,e.set(r,s)),te(s,i,n)}function ur(e,t,n){const r=new Map,i=new Map,s=new Map;for(const o of t){let[a,u,d,c]=o;const f=Re(e,u);if(!f){console.warn("no such attr",a,e);continue}f["checked-data-type"]==="date"&&n&&(d=yt(d),o[2]=d),en(f)&&te(s,[d,u,a],o),te(r,[a,u,d],o),te(i,[u,a,d],o)}return{eav:r,aev:i,vae:s}}function cr(e){const t=new Map,n=new Map,r=new Map,i=new Map;for(const s of Object.values(e)){const o=s["forward-identity"],[a,u,d]=o,c=s["reverse-identity"];if(te(r,[u,d],s),tn(s)&&te(t,[u,d],s),s["primary?"]&&te(n,[u],s),c){const[f,h,p]=c;te(i,[h,p],s)}}return{blobAttrs:t,primaryKeys:n,forwardIdents:r,revIdents:i}}function ls(e){return{__type:e.__type,attrs:e.attrs,triples:ne(e.eav,3),cardinalityInference:e.cardinalityInference,linkIndex:e.linkIndex,useDateObjects:e.useDateObjects}}function hs(e){return rn(e.attrs,e.triples,e.cardinalityInference,e.linkIndex,e.useDateObjects)}function nn(e){e.attrIndexes=cr(e.attrs)}function rn(e,t,n,r,i){const s=ur(e,t,i);return s.useDateObjects=i,s.attrs=e,s.attrIndexes=cr(e),s.cardinalityInference=n,s.linkIndex=r,s.__type="store",s}function Ze(e,t){var n,r;let i;if(Array.isArray(t[0])){const[o,a]=t[0],u=e.aev.get(o);if(!u)return null;i=(n=ne(u,2).find(c=>c[2]===a))===null||n===void 0?void 0:n[0]}else i=t[0];if(!i)return null;const s=t[2];if(Array.isArray(s)&&s.length===2&&e.aev.get(s[0])){const[o,a]=s,u=e.aev.get(o);if(!u)return null;const c=(r=ne(u,2).find(b=>b[2]===a))===null||r===void 0?void 0:r[0];if(!c)return null;const[f,h,p,..._]=t;return[i,h,c,..._]}else{const[o,...a]=t;return[i,...a]}}function ps(e,t){const n=Ze(e,t);if(!n)return;const[r,i,s]=n,o=Re(e.attrs,i);o&&(fe(e.eav,[r,i,s]),fe(e.aev,[i,r,s]),en(o)&&fe(e.vae,[s,i,r]))}let ys=0;function dr(e,t,n){const[r,i,s]=n;let o;const a=bt(e.ea,[r,i,s]);return a&&(o=a[3]),o||Date.now()*10+ys++}function bs(e,t){var n;const r=Ze(e,t);if(!r)return;let[i,s,o]=r;const a=Re(e.attrs,s);if(!a)return;a["checked-data-type"]==="date"&&e.useDateObjects&&(o=yt(o));const u=bt(e.eav,[i,s,o]),d=(n=u==null?void 0:u[3])!==null&&n!==void 0?n:dr(e,a,r),c=[i,s,o,d];fs(a)?(te(e.eav,[i,s],new Map([[o,c]])),te(e.aev,[s,i],new Map([[o,c]]))):(te(e.eav,[i,s,o],c),te(e.aev,[s,i,o],c)),en(a)&&te(e.vae,[o,s,i],c)}function _s(e,t){var n;const r=Ze(e,t);if(!r)return;const[i,s,o]=r,a=Re(e.attrs,s);if(!a)return;if(!tn(a))throw new Error("merge operation is not supported for links");const u=bt(e.eav,[i,s]);if(!u)return;const d=(n=u.values().next())===null||n===void 0?void 0:n.value;if(!d)return;const c=d[2],f=ir(c,o),h=[i,s,f,dr(e,a,d)];te(e.eav,[i,s],new Map([[f,h]]))}function sn(e,t){var n,r;const[i,s]=t,o=Ze(e,[i]);if(!o)return;const[a]=o,u=e.eav.get(a);if(u){for(const c of u.keys()){const f=e.attrs[c];f&&f["on-delete-reverse"]==="cascade"&&ne(u.get(c),1).forEach(([h,p,_])=>{var b;return sn(e,[_,(b=f["reverse-identity"])===null||b===void 0?void 0:b[1]])}),(!s||!f||((n=f["forward-identity"])===null||n===void 0?void 0:n[1])===s)&&(fe(e.aev,[c,a]),fe(e.eav,[a,c]))}u.size===0&&fe(e.eav,[a])}const d=e.vae.get(a)&&ne(e.vae.get(a),2);d&&d.forEach(c=>{var f,h,p;const[_,b,g]=c,T=e.attrs[b];(!s||!T||((f=T["reverse-identity"])===null||f===void 0?void 0:f[1])===s)&&(fe(e.eav,[_,b,g]),fe(e.aev,[b,_,g]),fe(e.vae,[g,b,_])),T&&T["on-delete"]==="cascade"&&((h=T["reverse-identity"])===null||h===void 0?void 0:h[1])===s&&sn(e,[_,(p=T["forward-identity"])===null||p===void 0?void 0:p[1]])}),((r=e.vae.get(a))===null||r===void 0?void 0:r.size)===0&&fe(e.vae,[a])}function fr(e,t){const n=ur(e.attrs,t,e.useDateObjects);Object.keys(n).forEach(r=>{e[r]=n[r]})}function gs(e,[t]){e.attrs[t.id]=t,nn(e)}function lr(e){return ne(e.eav,3)}function Ts(e,[t]){if(!e.attrs[t])return;const n=lr(e).filter(([r,i])=>i!==t);delete e.attrs[t],nn(e),fr(e,n)}function ws(e,[t]){const n=e.attrs[t.id];n&&(e.attrs[t.id]=Object.assign(Object.assign({},n),t),nn(e),fr(e,lr(e)))}function ms(e,t){const[n,...r]=t;switch(n){case"add-triple":bs(e,r);break;case"deep-merge-triple":_s(e,r);break;case"retract-triple":ps(e,r);break;case"delete-entity":sn(e,r);break;case"add-attr":gs(e,r);break;case"delete-attr":Ts(e,r);break;case"update-attr":ws(e,r);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${n}`)}}function ne(e,t,n=[]){if(!e||t===0)return n;if(t===1){for(const r of e.values())n.push(r);return n}for(const r of e.values())ne(r,t-1,n);return n}function _t(e,t,n){var r,i;const s=[];if(n!=null&&n.hasOwnProperty("$not")){for(const a of t.keys())n.$not!==a&&s.push(t.get(a));return s}if(n!=null&&n.hasOwnProperty("$isNull")){const{attrId:a,isNull:u,reverse:d}=n.$isNull;if(d)for(const c of t.keys()){const f=e.vae.get(c),h=!f||((r=f.get(a))===null||r===void 0?void 0:r.get(null))||!f.get(a);(u?h:!h)&&s.push(t.get(c))}else{const c=e.aev.get(a);for(const f of t.keys()){const h=!c||((i=c.get(f))===null||i===void 0?void 0:i.get(null))||!c.get(f);(u?h:!h)&&s.push(t.get(f))}}return s}if(n!=null&&n.$comparator)return ne(t,1).filter(n.$op);const o=n.in||n.$in||[n];for(const a of o){const u=t.get(a);u&&s.push(u)}return s}function vs(e,t,n){let r="";return e!==void 0&&(r+="e"),t!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function Ss(e,[t,n,r]){var i,s;switch(vs(t,n,r)){case"e":{const a=e.eav.get(t);return ne(a,2)}case"ea":{const a=(i=e.eav.get(t))===null||i===void 0?void 0:i.get(n);return ne(a,1)}case"eav":{const a=(s=e.eav.get(t))===null||s===void 0?void 0:s.get(n);return a?_t(e,a,r):[]}case"ev":{const a=e.eav.get(t);if(!a)return[];const u=[];for(const d of a.values())u.push(..._t(e,d,r));return u}case"a":{const a=e.aev.get(n);return ne(a,2)}case"av":{const a=e.aev.get(n);if(!a)return[];const u=[];for(const d of a.values())u.push(..._t(e,d,r));return u}case"v":{const a=[];for(const u of e.eav.values())for(const d of u.values())a.push(..._t(e,d,r));return a}default:return ne(e.eav,3)}}function Os(e,t,n){var r;const i={};for(const[s,o]of t.entries()){const a=(r=e.eav.get(n))===null||r===void 0?void 0:r.get(o.id),u=ne(a,1);for(const d of u)i[s]=d[2]}return i}function xe(e,t,n){var r;return(r=e.attrIndexes.forwardIdents.get(t))===null||r===void 0?void 0:r.get(n)}function hr(e,t,n){var r;return(r=e.attrIndexes.revIdents.get(t))===null||r===void 0?void 0:r.get(n)}function Es(e,t){return e.attrIndexes.blobAttrs.get(t)}function pr(e,t){var n;const r=e.attrIndexes.primaryKeys.get(t);return r||((n=e.attrIndexes.forwardIdents.get(t))===null||n===void 0?void 0:n.get("id"))}function As(e,t){const n=Ze(e,t);if(!n)return;const[r,i,s]=n;if(Re(e.attrs,i))return bt(e.eav,[r,i])}function Cs(e,t){const n=t.filter(([r,i,s,o,a])=>{if(r!=="add-triple"&&r!=="deep-merge-triple")return!0;const u=a==null?void 0:a.mode;if(u!=="create"&&u!=="update")return!0;let d=!1;const c=Re(e.attrs,s);if(c){const f=pr(e,c["forward-identity"][1]);d=!!As(e,[i,f.id,i])}return!(u==="create"&&d||u==="update"&&!d)});return Jt(e,r=>{n.forEach(i=>{ms(r,i)})})}function js(e){return typeof e=="string"&&e.startsWith("?")}function ks(e,t,n){if(n.hasOwnProperty(e)){const r=n[e];return br(r,t,n)}return Object.assign(Object.assign({},n),{[e]:t})}function yr(e,t,n){return e===t?n:null}function Ps(e){switch(typeof e){case"string":return e.startsWith("?")?ks:yr;default:return yr}}const Is=["in","$in","$not","$isNull","$comparator"];function Ms(e){for(const t of Is)if(e.hasOwnProperty(t))return!0;return!1}function br(e,t,n){return n?typeof e=="object"?Ms(e)?n:null:Ps(e)(e,t,n):null}function Rs(e,t,n){return e.reduce((r,i,s)=>{const o=t[s];return br(i,o,r)},n)}function xs(e,t,n){return Us(e,t,n).map(r=>Rs(t,r,n)).filter(r=>r)}function Ds(e,t,n){return t.or?t.or.patterns.flatMap(r=>on(e,r,n)):t.and?t.and.patterns.reduce((r,i)=>on(e,i,r),n):n.flatMap(r=>xs(e,t,r))}function on(e,t,n=[{}]){return t.reduce((r,i)=>Ds(e,i,r),n)}function an(e,t){return Array.isArray(t)?t.map(n=>an(e,n)):js(t)?e[t]:t}function $s(e,{find:t,where:n}){return on(e,n).map(i=>an(i,t))}function Us(e,t,n){return Ss(e,an(n,t))}const Ls=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function De(e){return typeof e=="string"&&Ls.test(e)}const K=[];for(let e=0;e<256;++e)K.push((e+256).toString(16).slice(1));function Ns(e,t=0){return(K[e[t+0]]+K[e[t+1]]+K[e[t+2]]+K[e[t+3]]+"-"+K[e[t+4]]+K[e[t+5]]+"-"+K[e[t+6]]+K[e[t+7]]+"-"+K[e[t+8]]+K[e[t+9]]+"-"+K[e[t+10]]+K[e[t+11]]+K[e[t+12]]+K[e[t+13]]+K[e[t+14]]+K[e[t+15]]).toLowerCase()}let un;const Fs=new Uint8Array(16);function Ws(){if(!un){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");un=crypto.getRandomValues.bind(crypto)}return un(Fs)}const _r={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Vs(e,t,n){var i;if(_r.randomUUID&&!e)return _r.randomUUID();e=e||{};const r=e.random??((i=e.rng)==null?void 0:i.call(e))??Ws();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,Ns(r)}function gr(e){const t=e.replace(/-/g,""),n=[];for(let r=0;r<t.length;r+=2)n.push(parseInt(t.substring(r,r+2),16));return n}function zs(e,t){for(let n=0;n<e.length;n++){if(e[n]<t[n])return-1;if(e[n]>t[n])return 1}return 0}function Ks(e,t){return zs(gr(e),gr(t))}function B(){return Vs()}function Bs(e,t){return e.localeCompare(t)}function qs(){let e=Bs;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{e=Intl.Collator("en-US").compare}catch{}return e}const Gs=qs();let Qs=0;function Xe(e){return gt(`_${e}`,Qs++)}function gt(e,t){return`?${e}-${t}`}class $e extends Error{constructor(t){super(t),this.name="AttrNotFoundError"}}function Ys(e,t){const n=pr(e,t);if(!n)throw new $e(`Could not find id attr for ${t}`);return n}function Tr(e,t,n,r){return[Hs(e,t,n,r)]}function Hs(e,t,n,r){return[e(n,r),Ys(t,n).id,e(n,r),e("time",r)]}function Js(e,t,n){return e.map(r=>r===t?n:r)}function wr(e,t,n,r,i){const s=xe(t,n,i),o=hr(t,n,i),a=s||o;if(!a)throw new $e(`Could not find attr for ${[n,i]}`);if(a["value-type"]!=="ref")throw new Error(`Attr ${a.id} is not a ref`);const[u,d]=a["forward-identity"],[c,f]=a["reverse-identity"],h=r+1,p=s?[e(d,r),a.id,e(f,h),Xe("time")]:[e(d,h),a.id,e(f,r),Xe("time")];return[s?f:d,h,p,a,!!s]}function mr(e,t){if(typeof t!="string")return function(o){return!1};const r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,"."),i=new RegExp(`^${r}$`,e?void 0:"i");return function(o){return typeof o!="string"?!1:i.test(o)}}function Zs(e,t){if(typeof t!="object"||t.hasOwnProperty("$in")||t.hasOwnProperty("in"))return t;const n=e["checked-data-type"]==="date";if(t.hasOwnProperty("$gt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>new Date(t.$gt)}:function(i){return i[2]>t.$gt}};if(t.hasOwnProperty("$gte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>=new Date(t.$gte)}:function(i){return i[2]>=t.$gte}};if(t.hasOwnProperty("$lt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<new Date(t.$lt)}:function(i){return i[2]<t.$lt}};if(t.hasOwnProperty("$lte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<=new Date(t.$lte)}:function(i){return i[2]<=t.$lte}};if(t.hasOwnProperty("$like")){const r=mr(!0,t.$like);return{$comparator:!0,$op:function(s){return r(s[2])}}}if(t.hasOwnProperty("$ilike")){const r=mr(!1,t.$ilike);return{$comparator:!0,$op:function(s){return r(s[2])}}}return t}function Xs(e,t,n,r,i,s){const o=xe(t,n,i),a=hr(t,n,i),u=o||a;if(!u)throw new $e(`No attr for etype = ${n} label = ${i}`);if(s!=null&&s.hasOwnProperty("$isNull")){const d=xe(t,n,"id");if(!d)throw new $e(`No attr for etype = ${n} label = id`);return[e(n,r),d.id,{$isNull:{attrId:u.id,isNull:s.$isNull,reverse:!o}},Xe("time")]}return o?[e(n,r),u.id,Zs(u,s),Xe("time")]:[s,u.id,e(n,r),Xe("time")]}function eo(e,t,n,r,i){const[s,o,a]=i.reduce((u,d)=>{const[c,f,h]=u,[p,_,b]=wr(e,t,c,f,d);return[p,_,[...h,b]]},[n,r,[]]);return[s,o,a]}function cn(e,t,n,r,i,s){const o=i.slice(0,i.length-1),a=i[i.length-1],[u,d,c]=eo(e,t,n,r,o),f=Xs(e,t,u,d,a,s);return c.concat([f])}function to(e,t){return t?[t].concat(e):e}function no([e,t]){return e==="or"&&Array.isArray(t)}function ro([e,t]){return e==="and"&&Array.isArray(t)}function io(e,t,n){return(r,i)=>{const s=e(r,i);return t==s?s:`${s}-${n}`}}function vr(e,t,n,r,i,s){const o=e(r,i),a=s.map((u,d)=>{const c=io(e,o,d);return Or(c,n,r,i,u)});return{[t]:{patterns:a,joinSym:o}}}function so(e){const t=[];for(let n=1;n<=e.length;n++)t.push(e.slice(0,n));return t}function Sr(e,t,n,r,i){return so(i).map(s=>cn(e,t,n,r,s,{$isNull:!0}))}function Or(e,t,n,r,i){return Object.entries(i).flatMap(([s,o])=>{if(no([s,o]))return vr(e,"or",t,n,r,o);if(ro([s,o]))return vr(e,"and",t,n,r,o);if(s==="$entityIdStartsWith")return[];const a=s.split(".");if(o!=null&&o.hasOwnProperty("$ne")&&(o=Object.assign(Object.assign({},o),{$not:o.$ne}),delete o.$ne),o!=null&&o.hasOwnProperty("$not")){const u=cn(e,t,n,r,a,o),d=Sr(e,t,n,r,a);return[{or:{patterns:[u,...d],joinSym:e(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Sr(e,t,n,r,a),joinSym:e(n,r)}}]:cn(e,t,n,r,a,o)})}function oo(e,t,n,r){const i=gt;return r?Or(i,e,t,n,r).concat(Tr(i,e,t,n)):Tr(i,e,t,n)}function ao(e,t,n){return[e(t,n),e("time",n)]}function uo(e,t,n,r,i,s){const[o,a,u,d,c]=wr(e,t,n,r,i),f=Js(u,e(n,r),s);return[o,a,f,d,c]}function co(e,t,{etype:n,level:r,form:i},s){const o=Object.keys(i).filter(a=>a!=="$");return o.length?Object.entries(s).map(function([u,d]){return o.map(function(h){var p,_,b;const g=!!(t.cardinalityInference&&(!((b=(_=(p=t.linkIndex)===null||p===void 0?void 0:p[n])===null||_===void 0?void 0:_[h])===null||b===void 0)&&b.isSingular));try{const[T,w,v]=uo(e,t,n,r,h,u),R=Ar(t,{etype:T,level:w,form:i[h],join:v}),E=g?R[0]:R;return{[h]:E}}catch(T){if(T instanceof $e)return{[h]:g?void 0:[]};throw T}}).reduce(function(h,p){return Object.assign(Object.assign({},h),p)},d)}):Object.values(s)}function fo(e,t,n){return n==="string"?Gs(e,t):e>t?1:-1}function Tt([e,t],[n,r],i){return t===r||t==null&&r==null?Ks(e,n):r==null?1:t==null?-1:fo(t,r,i)}function dn(e){return e==null?e:new Date(e).getTime()}function lo(e,t,n,r){var i;const[s,o,a,u]=e,d=n==="desc"?1:-1;if(((i=t["forward-identity"])===null||i===void 0?void 0:i[2])==="id")return Tt(r,[s,u],null)===d;const[c,f]=r,h=t["checked-data-type"],p=h==="date"?dn(f):f,_=h==="date"?dn(a):a;return Tt([c,p],[s,_],h)===d}function ho(e,t){const n=t[1];return e.attrs[n]}function po(e,t,n){const r=Object.keys(n)[0];return xe(e,t,r)}function yo(e,t,n,r){if(n)return ho(e,n);if(r)return po(e,t,r)}function bo(e,t,n){var r,i;if(!Array.isArray(n.fields))return Es(e,t);const s=new Map;for(const o of n.fields){const a=xe(e,t,o),u=(r=a==null?void 0:a["forward-identity"])===null||r===void 0?void 0:r[2];u&&tn(a)&&s.set(u,a)}if(!s.has("id")){const o=xe(e,t,"id"),a=(i=o==null?void 0:o["forward-identity"])===null||i===void 0?void 0:i[2];a&&s.set(a,o)}return s}function _o(e,{etype:t,pageInfo:n,dq:r,form:i}){var s,o;const a=(s=i==null?void 0:i.$)===null||s===void 0?void 0:s.order,u=Er(i),d=go(i);let c=$s(e,r);const f=n==null?void 0:n["start-cursor"],h=yo(e,t,f,a);if(h&&((o=h==null?void 0:h["forward-identity"])===null||o===void 0?void 0:o[2])!=="id"){const b=h["checked-data-type"]==="date",g=h.id;c=c.map(([T])=>{var w,v,R,E,N;let V=(N=(E=(R=(v=(w=e.eav.get(T))===null||w===void 0?void 0:w.get(g))===null||v===void 0?void 0:v.values())===null||R===void 0?void 0:R.next())===null||E===void 0?void 0:E.value)===null||N===void 0?void 0:N[2];return b&&(V=dn(V)),[T,V]})}c.sort(d==="asc"?function(g,T){return Tt(g,T,h==null?void 0:h["checked-data-type"])}:function(g,T){return Tt(T,g,h==null?void 0:h["checked-data-type"])});let p={};const _=bo(e,t,r);for(const b of c){const[g]=b;if(p[g]||!u&&f&&h&&lo(f,h,d,b))continue;const T=Os(e,_,g);T&&(p[g]=T)}return p}function go(e){var t;const n=(t=e.$)===null||t===void 0?void 0:t.order;return n&&n[Object.keys(n)[0]]||"asc"}function Er(e){var t,n,r;const i=(t=e.$)===null||t===void 0?void 0:t.offset,s=(n=e.$)===null||n===void 0?void 0:n.before,o=(r=e.$)===null||r===void 0?void 0:r.after;return!i&&!s&&!o}function To(e,{etype:t,level:n,form:r,join:i,pageInfo:s}){var o,a,u,d,c;if(!Er(r)&&(!s||!s["start-cursor"]))return[];const f=to(oo(e,t,n,(o=r.$)===null||o===void 0?void 0:o.where),i),h=ao(gt,t,n),p=(a=r.$)===null||a===void 0?void 0:a.fields,_=_o(e,{etype:t,pageInfo:s,form:r,dq:{where:f,find:h,fields:p}}),b=((u=r.$)===null||u===void 0?void 0:u.limit)||((d=r.$)===null||d===void 0?void 0:d.first)||((c=r.$)===null||c===void 0?void 0:c.last);if(b!=null){n>0&&console.warn("WARNING: Limits in child queries are only run client-side. Data returned from the server will not have a limit.");const g=Object.entries(_);return g.length<=b?_:Object.fromEntries(g.slice(0,b))}return _}function wo(e,t){try{return To(e,t)}catch(n){if(n instanceof $e)return{};throw n}}function Ar(e,t){const n=wo(e,t);return co(gt,e,t,n)}function mo(e){const t={};for(const[n,r]of Object.entries(e))t[n]={startCursor:r["start-cursor"],endCursor:r["end-cursor"],hasNextPage:r["has-next-page?"],hasPreviousPage:r["has-previous-page?"]};return t}function vo({store:e,pageInfo:t,aggregate:n},r){const s={data:Object.keys(r).reduce(function(a,u){return n!=null&&n[u]||u==="$$ruleParams"||(a[u]=Ar(e,{etype:u,form:r[u],level:0,pageInfo:t==null?void 0:t[u]})),a},{})};return t&&(s.pageInfo=mo(t)),n&&(s.aggregate=n),s}function So(){const t={__etype:1,__ops:1,create:1,update:1,link:1,unlink:1,delete:1,merge:1,ruleParams:1};return new Set(Object.keys(t))}const Oo=So();function fn(e,t,n){const r={__etype:e,__ops:n};return new Proxy(r,{get:(i,s)=>{if(s==="__ops")return n;if(s==="__etype")return e;if(Oo.has(s))return(o,a)=>fn(e,t,[...n,a?[s,e,t,o,a]:[s,e,t,o]])}})}function Eo(e,t){return`lookup__${e}__${JSON.stringify(t)}`}function wt(e){return e.startsWith("lookup__")}function Cr(e){const[t,n,...r]=e.split("__");return[n,JSON.parse(r.join("__"))]}function Ao(e){return new Proxy({__etype:e},{get(t,n){if(n==="__etype")return e;const r=n;return wt(r)?fn(e,Cr(r),[]):fn(e,r,[])}})}function ln(){return new Proxy({},{get(e,t){return Ao(t)}})}const Co=ln();function jo(e){return e.__ops}function ko(e,t){const{attrIdMap:n,refSwapAttrIds:r}=e,i=[];for(const o of t){const a=n[o];if(a)i.push(a);else if(Array.isArray(o)&&o.length==2&&n[o[0]]){const[u,d]=o;i.push([n[u],d])}else i.push(o)}const[s]=t;if((s==="add-triple"||s==="retract-triple")&&r.has(t[2])){const o=i[1];i[1]=i[3],i[3]=o}return i}function q(e,t,n){return Object.values(e).find(r=>{const[i,s,o]=r["forward-identity"];return s===t&&o===n})}function Ce(e,t,n){return Object.values(e).find(r=>{const i=r["reverse-identity"];if(!i)return!1;const[s,o,a]=i;return o===t&&a===n})}function Po(e){if(Array.isArray(e))return e;const t=Object.entries(e);if(t.length!==1)throw new Error("lookup must be an object with a single unique attr and value.");return t[0]}function hn(e,t,n){return n.indexOf(".")!==-1&&!q(e,t,n)}function pn(e){const[t,n,...r]=e.split(".");if(r.length>0||n!=="id")throw new Error(`${e} is not a valid lookup attribute.`);return t}function Io(e,t,n){if(!hn(e,t,n))return q(e,t,n);const r=pn(n),i=q(e,t,r)||Ce(e,t,r);if(i&&i["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return i}function yn(e){return typeof e=="string"&&!wt(e)?null:typeof e=="string"&&wt(e)?Cr(e):Po(e)}function re(e,t,n){const r=yn(n);if(r===null)return n;const[i,s]=r,o=Io(e,t,i);if(!o||!o["unique?"])throw new Error(`${i} is not a unique attribute.`);return[o.id,s]}function jr(e,t,n,r){const i=re(e,t,n);return Array.isArray(i)?[["add-triple",i,q(e,t,"id").id,i]].concat(r):r}function Mo({attrs:e},[t,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=q(e,t,s),d=Ce(e,t,s);return a.map(c=>u?["add-triple",re(e,t,n),u.id,re(e,u["reverse-identity"][1],c)]:["add-triple",re(e,d["forward-identity"][1],c),d.id,re(e,t,n)])});return jr(e,t,n,i)}function Ro({attrs:e},[t,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=q(e,t,s),d=Ce(e,t,s);return a.map(c=>u?["retract-triple",re(e,t,n),u.id,re(e,u["reverse-identity"][1],c)]:["retract-triple",re(e,d["forward-identity"][1],c),d.id,re(e,t,n)])});return jr(e,t,n,i)}function xo(e,t,n){if(Array.isArray(n)){const[r,i]=n;for(const s of e||[]){const o=s==null?void 0:s.aev.get(r);if(o){for(const[a,u,d]of ne(o,2))if(d===i)return!0}}}else for(const r of e||[]){const i=r==null?void 0:r.eav.get(n);if(i){for(const s of i.keys())if(r.attrs[s]["forward-identity"][1]==t)return!0}}return!1}function kr({stores:e,attrs:t},[n,r,i,s]){return(s==null?void 0:s.upsert)===!1?{mode:"update"}:(s==null?void 0:s.upsert)===!0?null:xo(e,n,r)?{mode:"update"}:null}function Do(e,t){const{stores:n,attrs:r}=e,[i,s,o,a]=t,u=Zt(o),d=re(r,i,s);return[["id",d]].concat(Object.entries(u)).map(([f,h])=>{const p=q(r,i,f);return p["checked-data-type"]==="date"&&e.useDateObjects&&(h=yt(h)),["add-triple",d,p.id,h,{mode:"create"}]})}function $o(e,t){const{stores:n,attrs:r}=e,[i,s,o,a]=t,u=Zt(o),d=re(r,i,s),c=kr(e,[i,d,o,a]);return[["id",d]].concat(Object.entries(u)).map(([h,p])=>{const _=q(r,i,h);return _["checked-data-type"]==="date"&&e.useDateObjects&&(p=yt(p)),["add-triple",d,_.id,p,...c?[c]:[]]})}function Uo({attrs:e},[t,n]){return[["delete-entity",re(e,t,n),t]]}function Lo(e,t){const{stores:n,attrs:r}=e,[i,s,o,a]=t,u=Zt(o),d=re(r,i,s),c=kr(e,[i,d,o,a]),f=Object.entries(u).map(([p,_])=>{const b=q(r,i,p);return["deep-merge-triple",d,b.id,_,...c?[c]:[]]});return[["add-triple",d,q(r,i,"id").id,d,...c?[c]:[]]].concat(f)}function No({attrs:e},[t,n,r]){return[["rule-params",re(e,t,n),t,r]]}function Fo(e){const[t,n,r,i,s]=e;if(!i)return e;const o=Object.assign({},i);return delete o.id,[t,n,r,o,...s?[s]:[]]}function Wo(e,t){const[n,...r]=Fo(t);switch(n){case"merge":return Lo(e,r);case"create":return Do(e,r);case"update":return $o(e,r);case"link":return Mo(e,r);case"unlink":return Ro(e,r);case"delete":return Uo(e,r);case"ruleParams":return No(e,r);default:throw new Error(`unsupported action ${n}`)}}function Vo(e){switch(e){case"string":case"date":case"boolean":case"number":return e;default:return}}function zo(e,t,n){var r,i;const s=(i=(r=e.entities[t])===null||r===void 0?void 0:r.attrs)===null||i===void 0?void 0:i[n];if(n==="id")return null;if(!s)throw new Error(`${t}.${n} does not exist in your schema`);const{unique:o,indexed:a}=s==null?void 0:s.config,u=Vo(s==null?void 0:s.valueType);return{"index?":a,"unique?":o,"checked-data-type":u}}function mt(e,t,n,r){const i=e?zo(e,t,n):null,s=B(),a=[B(),t,n];return Object.assign(Object.assign({id:s,"forward-identity":a,"value-type":"blob",cardinality:"one","unique?":!1,"index?":!1,isUnsynced:!0},i||{}),r||{})}function Ko(e,t,n){return Object.values(e.links).find(i=>i.forward.on===t&&i.forward.label===n||i.reverse.on===t&&i.reverse.label===n)}function Bo(e,t,n){const r=Ko(e,t,n);if(!r)throw new Error(`Couldn't find the link ${t}.${n} in your schema`);const{forward:i,reverse:s}=r;return{"forward-identity":[B(),i.on,i.label],"reverse-identity":[B(),s.on,s.label],cardinality:i.has==="one"?"one":"many","unique?":s.has==="one","on-delete":i.onDelete,"on-delete-reverse":s.onDelete}}function Pr(e,t,n,r){const i=e?Bo(e,t,n):null,s=B(),o=[B(),t,n],a=[B(),n,t];return Object.assign(Object.assign({id:s,"forward-identity":o,"reverse-identity":a,"value-type":"ref",cardinality:"many","unique?":!1,"index?":!1,isUnsynced:!0},i||{}),r||{})}const qo=new Set(["create","update","merge","link","unlink"]),Go=new Set(["link","unlink"]),Qo=new Set(["create","update","merge"]),Yo=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),bn={"unique?":!0,"index?":!0},Ho=Object.assign(Object.assign({},bn),{cardinality:"one"});function Jo(e){const t=[],[n,r,i,s]=e;if(!Yo.has(n))return t;const o=yn(i);if(o&&t.push({etype:r,lookupPair:o}),n==="link")for(const[a,u]of Object.entries(s)){const d=Array.isArray(u)?u:[u];for(const c of d){const f=yn(c);f&&t.push({etype:r,lookupPair:f,linkLabel:a})}}return t}function Zo({attrs:e,schema:t},n){var r,i;const[s,o,a]=[new Set,Object.assign({},e),[]];function u(f){o[f.id]=f,a.push(["add-attr",f]),s.add(f.id)}function d(f){f!=null&&f.isUnsynced&&!s.has(f.id)&&(a.push(["add-attr",f]),s.add(f.id))}function c(f,h){const p=q(o,f,h),_=Ce(o,f,h);d(p),d(_),!p&&!_&&u(Pr(t,f,h,Ho))}for(const f of n)for(const{etype:h,lookupPair:p,linkLabel:_}of Jo(f)){const b=p[0];if(_){c(h,_);const g=q(o,h,_),T=Ce(o,h,_);d(g),d(T);const w=((r=g==null?void 0:g["reverse-identity"])===null||r===void 0?void 0:r[1])||((i=T==null?void 0:T["forward-identity"])===null||i===void 0?void 0:i[1])||_;if(hn(o,w,b))c(w,pn(b));else{const v=q(o,w,b);v||u(mt(t,w,b,bn)),d(v)}}else if(hn(o,h,b))c(h,pn(b));else{const g=q(o,h,b);g||u(mt(t,h,b,bn)),d(g)}}for(const f of n){const[h,p,_,b]=f;if(qo.has(h)){const g=q(o,p,"id");d(g),g||u(mt(t,p,"id",{"unique?":!0}));for(const T of Object.keys(b)){const w=q(o,p,T);if(d(w),Qo.has(h)&&(w||u(mt(t,p,T,T==="id"?{"unique?":!0}:null))),Go.has(h)){const v=Ce(o,p,T);!w&&!v&&u(Pr(t,p,T)),d(v)}}}}return[o,a]}function Xo(e,t){const r=(Array.isArray(t)?t:[t]).flatMap(u=>jo(u)),[i,s]=Zo(e,r),o=Object.assign(Object.assign({},e),{attrs:i}),a=r.flatMap(u=>Wo(o,u));return[...s,...a]}var Ir=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};class Mr{constructor(t){this.dbName=t,this._storeName="kv",this._dbPromise=this._init()}_init(){return new Promise((t,n)=>{const r=indexedDB.open(this.dbName,1);r.onerror=i=>{n(i)},r.onsuccess=i=>{const s=i.target;t(s.result)},r.onupgradeneeded=i=>{i.target.result.createObjectStore(this._storeName)}})}getItem(t){return Ir(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const a=n.transaction([this._storeName],"readonly").objectStore(this._storeName).get(t);a.onerror=u=>{i(u)},a.onsuccess=u=>{a.result?r(a.result):r(null)}})})}setItem(t,n){return Ir(this,void 0,void 0,function*(){const r=yield this._dbPromise;return new Promise((i,s)=>{const u=r.transaction([this._storeName],"readwrite").objectStore(this._storeName).put(n,t);u.onerror=d=>{s(d)},u.onsuccess=d=>{i()}})})}}var ea=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};class Rr{static getIsOnline(){return ea(this,void 0,void 0,function*(){return navigator.onLine})}static listen(t){const n=()=>{t(!0)},r=()=>{t(!1)};return addEventListener("online",n),addEventListener("offline",r),()=>{removeEventListener("online",n),removeEventListener("offline",r)}}}class Ue extends Error{constructor(t,n){super(t),this.hint=n;const r=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,r),Error.captureStackTrace&&Error.captureStackTrace(this,Ue),this.name="InstantError"}get[Symbol.toStringTag](){return"InstantError"}}var ta=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};class et extends Ue{constructor(t){var n;const r=((n=t.body)===null||n===void 0?void 0:n.message)||`API Error (${t.status})`;super(r,t.body.hint);const i=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,i),Error.captureStackTrace&&Error.captureStackTrace(this,et),this.name="InstantAPIError",this.status=t.status,this.body=t.body}get[Symbol.toStringTag](){return"InstantAPIError"}}function le(e,t){return ta(this,void 0,void 0,function*(){const n=yield fetch(e,t),r=yield n.json();return n.status===200?Promise.resolve(r):Promise.reject(new et({status:n.status,body:r}))})}var Le=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};function na({apiURI:e,appId:t,email:n}){return le(`${e}/runtime/auth/send_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":t,email:n})})}function ra(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,email:r,code:i,refreshToken:s}){return yield le(`${t}/runtime/auth/verify_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(Object.assign({"app-id":n,email:r,code:i},s?{"refresh-token":s}:{}))})})}function ia(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,refreshToken:r}){return yield le(`${t}/runtime/auth/verify_refresh_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n,"refresh-token":r})})})}function sa(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n}){return yield le(`${t}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n})})})}function xr(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,code:r,codeVerifier:i,refreshToken:s}){return yield le(`${t}/runtime/oauth/token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,code:r,code_verifier:i,refresh_token:s})})})}function oa(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,nonce:r,idToken:i,clientName:s,refreshToken:o}){return yield le(`${t}/runtime/oauth/id_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,nonce:r,id_token:i,client_name:s,refresh_token:o})})})}function aa(e){return Le(this,arguments,void 0,function*({apiURI:t,appId:n,refreshToken:r}){return yield le(`${t}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,refresh_token:r})})})}var tt=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};function ua(e){return tt(this,arguments,void 0,function*({apiURI:t,appId:n,path:r,file:i,refreshToken:s,contentType:o,contentDisposition:a}){const u={app_id:n,path:r,authorization:`Bearer ${s}`,"content-type":o||i.type};return a&&(u["content-disposition"]=a),yield le(`${t}/storage/upload`,{method:"PUT",headers:u,body:i})})}function ca(e){return tt(this,arguments,void 0,function*({apiURI:t,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${t}/storage/files?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"DELETE",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}function da(e){return tt(this,arguments,void 0,function*({apiURI:t,appId:n,fileName:r,refreshToken:i,metadata:s={}}){const{data:o}=yield le(`${t}/storage/signed-upload-url`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${i}`},body:JSON.stringify({app_id:n,filename:r})});return o})}function fa(e,t){return tt(this,void 0,void 0,function*(){return(yield fetch(e,{method:"PUT",body:t,headers:{"Content-Type":t.type}})).ok})}function la(e){return tt(this,arguments,void 0,function*({apiURI:t,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${t}/storage/signed-download-url?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}let _n=!1,Dr=!1,$r=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(_n=!!window.localStorage.getItem("devBackend"),Dr=!!window.localStorage.getItem("__instantLogging"),$r=!!window.localStorage.getItem("__devtoolLocalDash"));function Ur(e,t){if(!t)return e;const n={};return t.forEach(r=>{n[r]=e[r]}),n}function ha(e,t,n){var r,i;const s={peers:{}};if(t&&"user"in t?t.user:!0){const a=Ur((r=e.user)!==null&&r!==void 0?r:{},t==null?void 0:t.keys);s.user=Object.assign(Object.assign({},a),{peerId:n})}for(const a of Object.keys((i=e.peers)!==null&&i!==void 0?i:{})){const u=(t==null?void 0:t.peers)===void 0,d=Array.isArray(t==null?void 0:t.peers)&&(t==null?void 0:t.peers.includes(a));if(u||d){const c=Ur(e.peers[a],t==null?void 0:t.keys);s.peers[a]=Object.assign(Object.assign({},c),{peerId:a})}}return s}function pa(e,t){if(e.isLoading!==t.isLoading||e.error!==t.error||(e.user||t.user)&&(!e.user||!t.user||!rr(e.user,t.user))||!nr(e.peers,t.peers))return!0;for(const r of Object.keys(e.peers))if(!rr(e.peers[r],t.peers[r]))return!0;return!1}class Lr{constructor(){this.promise=new Promise((t,n)=>{this._resolve=t,this._reject=n})}resolve(t){this._resolve(t)}reject(t){this._reject(t)}}var nt=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};function ya(e,t){typeof requestIdleCallback>"u"?e():requestIdleCallback(e,{timeout:t})}class Nr{constructor(t,n,r,i,s=d=>d,o=d=>d,a=100,u=1e3){this._subs=[],this._nextSave=null,this._persister=t,this._key=n,this._onMerge=i,this._loadedCbs=[],this._isLoading=!0,this.currentValue=r,this.serialize=s,this.parse=o,this._saveThrottleMs=a,this._pendingSaveCbs=[],this._version=0,this._idleCallbackMaxWaitMs=u,this._load()}_getFromStorage(){return nt(this,void 0,void 0,function*(){try{return this.parse(yield this._persister.getItem(this._key))}catch(t){return console.error(`Unable to read from storage for key=${this._key}`,t),null}})}_load(){return nt(this,void 0,void 0,function*(){const t=yield this._getFromStorage();this._isLoading=!1,this._onMerge(t,this.currentValue);for(const n of this._loadedCbs)n()})}waitForLoaded(){return nt(this,void 0,void 0,function*(){if(!this._isLoading)return;yield new Promise(n=>{this._loadedCbs.push(n)})})}isLoading(){return this._isLoading}version(){return this._version}waitForSync(){return nt(this,void 0,void 0,function*(){if(!this._nextSave)return;yield new Promise(n=>{this._pendingSaveCbs.push(n)})})}_writeToStorage(){this._persister.setItem(this._key,this.serialize(this.currentValue));for(const t of this._pendingSaveCbs)t();this._pendingSaveCbs.length=0}flush(){return nt(this,void 0,void 0,function*(){this._nextSave&&(clearTimeout(this._nextSave),this._writeToStorage())})}_enqueuePersist(t){if(this._nextSave){t&&this._pendingSaveCbs.push(t);return}this._nextSave=setTimeout(()=>{ya(()=>{this._nextSave=null,this._writeToStorage()},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)}set(t,n){this._version++,this.currentValue=t(this.currentValue),this._isLoading?this._loadedCbs.push(()=>this._enqueuePersist(n)):this._enqueuePersist(n);for(const r of this._subs)r(this.currentValue)}subscribe(t){return this._subs.push(t),t(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==t)}}}function Fr(e,t=[]){e.forEach(n=>{const{data:r}=n,{"datalog-result":i}=r,{"join-rows":s}=i;for(const o of s)for(const a of o)t.push(a);Fr(n["child-nodes"],t)})}function Wr(e){const t=[];return Fr(e,t),t}function Vr(e){return Object.values(e.links).reduce((t,n)=>{var r,i,s,o;return(r=t[s=n.forward.on])!==null&&r!==void 0||(t[s]={}),t[n.forward.on][n.forward.label]={isForward:!0,isSingular:n.forward.has==="one",link:n},(i=t[o=n.reverse.on])!==null&&i!==void 0||(t[o]={}),t[n.reverse.on][n.reverse.label]={isForward:!1,isSingular:n.reverse.has==="one",link:n},t},{})}const gn="v0.22.47";function ba(e,t){return{info:e?(...n)=>console.info(...n,t()):()=>{},debug:e?(...n)=>console.debug(...n,t()):()=>{},error:e?(...n)=>console.error(...n,t()):()=>{}}}class J{constructor(t,n,r,i={indexed:!1,unique:!1}){this.valueType=t,this.required=n,this.isIndexed=r,this.config=i,this.metadata={}}clientRequired(){return new J(this.valueType,!1,this.isIndexed,this.config)}optional(){return new J(this.valueType,!1,this.isIndexed,this.config)}unique(){return new J(this.valueType,this.required,this.isIndexed,Object.assign(Object.assign({},this.config),{unique:!0}))}indexed(){return new J(this.valueType,this.required,!0,Object.assign(Object.assign({},this.config),{indexed:!0}))}}class vt{constructor(t,n){this.attrs=t,this.links=n}asType(){return new vt(this.attrs,this.links)}}class St{constructor(t,n,r){this.entities=t,this.links=n,this.rooms=r}withRoomSchema(){return new St(this.entities,this.links,{})}}class x extends Error{constructor(t,n){const r=n?`At path '${n}': ${t}`:t;super(r),this.name="QueryValidationError"}}const zr=["where","order","limit","last","first","offset","after","before","fields","aggregate"],_a=e=>e.valueType||"unknown",Kr=(e,t,n=!1)=>{if(n||e==null)return!0;switch(t){case"string":return typeof e=="string";case"number":return typeof e=="number"&&!isNaN(e);case"boolean":return typeof e=="boolean";case"date":return e instanceof Date||typeof e=="string"||typeof e=="number";default:return!0}},ga=(e,t,n,r,i,s,o)=>{const a=s.valueType==="json",u=(d,c,f)=>{if(!Kr(f,c,a))throw new x(`Invalid value for operator '${d}' on attribute '${r}' in entity '${i}'. Expected ${c}, but received: ${typeof f}`,o)};switch(e){case"in":case"$in":if(!Array.isArray(t))throw new x(`Operator '${e}' for attribute '${r}' in entity '${i}' must be an array, but received: ${typeof t}`,o);for(const d of t)u(e,n,d);break;case"$not":case"$ne":case"$gt":case"$lt":case"$gte":case"$lte":u(e,n,t);break;case"$like":case"$ilike":if(u(e,"string",t),e==="$ilike"&&!s.isIndexed)throw new x(`Operator '${e}' can only be used with indexed attributes, but '${r}' in entity '${i}' is not indexed`,o);break;case"$isNull":u(e,"boolean",t);break;default:throw new x(`Unknown operator '${e}' for attribute '${r}' in entity '${i}'`,o)}},Ne=(e,t,n,r,i)=>{const s=_a(n),o=n.valueType==="json";if(typeof e=="object"&&e!==null&&!Array.isArray(e)){if(o)return;const u=e;for(const[d,c]of Object.entries(u))ga(d,c,s,t,r,n,`${i}.${d}`)}else if(!Kr(e,s,o))throw new x(`Invalid value for attribute '${t}' in entity '${r}'. Expected ${s}, but received: ${typeof e}`,i)},Ta=(e,t,n,r,i)=>{const s=e.split(".");if(s.length<2)throw new x(`Invalid dot notation path '${e}'. Must contain at least one dot.`,i);let o=n;for(let c=0;c<s.length-1;c++){const f=s[c],h=r.entities[o];if(!h)throw new x(`Entity '${o}' does not exist in schema while traversing dot notation path '${e}'.`,i);const p=h.links[f];if(!p){const _=Object.keys(h.links);throw new x(`Link '${f}' does not exist on entity '${o}' in dot notation path '${e}'. Available links: ${_.length>0?_.join(", "):"none"}`,i)}o=p.entityName}const a=s[s.length-1],u=r.entities[o];if(!u)throw new x(`Target entity '${o}' does not exist in schema for dot notation path '${e}'.`,i);if(a==="id"){if(typeof t=="string"&&!De(t))throw new x(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${t}`,i);Ne(t,e,new J("string",!1,!0),n,i);return}const d=u.attrs[a];if(Object.keys(u.links).includes(a)){if(typeof t=="string"&&!De(t))throw new x(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${t}`,i);Ne(t,e,new J("string",!1,!0),n,i);return}if(!d){const c=Object.keys(u.attrs);throw new x(`Attribute '${a}' does not exist on entity '${o}' in dot notation path '${e}'. Available attributes: ${c.length>0?c.join(", ")+", id":"id"}`,i)}Ne(t,e,d,n,i)},Br=(e,t,n,r)=>{for(const[i,s]of Object.entries(e)){if(i==="or"||i==="and"){if(Array.isArray(s))for(const d of s)typeof d=="object"&&d!==null&&Br(d,t,n,`${r}.${i}[${d}]`);continue}if(i==="id"){Ne(s,"id",new J("string",!1,!0),t,`${r}.id`);continue}if(i.includes(".")){Ta(i,s,t,n,`${r}.${i}`);continue}const o=n.entities[t];if(!o)continue;const a=o.attrs[i],u=o.links[i];if(!a&&!u){const d=Object.keys(o.attrs),c=Object.keys(o.links);throw new x(`Attribute or link '${i}' does not exist on entity '${t}'. Available attributes: ${d.length>0?d.join(", "):"none"}. Available links: ${c.length>0?c.join(", "):"none"}`,`${r}.${i}`)}if(a)Ne(s,i,a,t,`${r}.${i}`);else if(u){if(typeof s=="string"&&!De(s))throw new x(`Invalid value for link '${i}' in entity '${t}'. Expected a UUID, but received: ${s}`,`${r}.${i}`);const d=new J("string",!1,!0);Ne(s,i,d,t,`${r}.${i}`)}}},wa=(e,t,n,r,i=0)=>{for(const o of Object.keys(e))if(!zr.includes(o))throw new x(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${zr.join(", ")}. Found: ${o}`,r);const s=["offset","before","after","first","last"];for(const o of s)if(e[o]!==void 0&&i>0)throw new x(`'${o}' can only be used on top-level namespaces. It cannot be used in nested queries.`,r);if(e.where&&n){if(typeof e.where!="object"||e.where===null)throw new x(`'where' clause must be an object in entity '${t}', but received: ${typeof e.where}`,r?`${r}.where`:void 0);Br(e.where,t,n,r?`${r}.where`:"where")}},qr=(e,t,n,r,i=0)=>{var s;if(!e||typeof e!="object")throw new x(`Query part for entity '${t}' must be an object, but received: ${typeof e}`,r);for(const o of Object.keys(e))if(o!=="$"){if(n&&!(o in n.entities[t].links)){const u=Object.keys(n.entities[t].links);throw new x(`Link '${o}' does not exist on entity '${t}'. Available links: ${u.length>0?u.join(", "):"none"}`,`${r}.${o}`)}const a=e[o];if(typeof a=="object"&&a!==null){const u=(s=n==null?void 0:n.entities[t].links[o])===null||s===void 0?void 0:s.entityName;u&&qr(a,u,n,`${r}.${o}`,i+1)}}else{const a=e[o];if(typeof a!="object"||a===null)throw new x(`Query parameter '$' must be an object in entity '${t}', but received: ${typeof a}`,`${r}.$`);wa(a,t,n,`${r}.$`,i)}},Gr=(e,t)=>{if(typeof e!="object"||e===null)throw new x(`Query must be an object, but received: ${typeof e}${e===null?" (null)":""}`);if(Array.isArray(e))throw new x(`Query must be an object, but received: ${typeof e}`);const n=e;for(const r of Object.keys(n)){if(Array.isArray(e[r]))throw new x(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(typeof r!="string")throw new x(`Query keys must be strings, but found key of type: ${typeof r}`,r);if(r!=="$$ruleParams"){if(t&&!t.entities[r]){const i=Object.keys(t.entities);throw new x(`Entity '${r}' does not exist in schema. Available entities: ${i.length>0?i.join(", "):"none"}`,r)}qr(n[r],r,t,r,0)}}},Qr=e=>typeof e!="string"?!1:wt(e)?!0:De(e);class ue extends Error{constructor(t){super(t),this.name="TransactionValidationError"}}const Yr=e=>e.length>0?e.join(", "):"none",ma=(e,t)=>new ue(`Entity '${e}' does not exist in schema. Available entities: ${Yr(t)}`),Hr={string:e=>typeof e=="string",number:e=>typeof e=="number"&&!isNaN(e),boolean:e=>typeof e=="boolean",date:e=>e instanceof Date||typeof e=="string"||typeof e=="number",json:()=>!0},va=(e,t)=>{var n,r;return e==null?!0:(r=(n=Hr[t.valueType])===null||n===void 0?void 0:n.call(Hr,e))!==null&&r!==void 0?r:!1},Jr=(e,t)=>{const n=t.entities[e];if(!n)throw ma(e,Object.keys(t.entities));return n},Tn=(e,t,n)=>{const r=Jr(e,n);if(typeof t!="object"||t===null)throw new ue(`Arguments for data operation on entity '${e}' must be an object, but received: ${typeof t}`);for(const[i,s]of Object.entries(t)){if(i==="id")continue;const o=r.attrs[i];if(o&&!va(s,o))throw new ue(`Invalid value for attribute '${i}' in entity '${e}'. Expected ${o.valueType}, but received: ${typeof s}`)}},Zr=(e,t,n)=>{const r=Jr(e,n);if(typeof t!="object"||t===null)throw new ue(`Arguments for link operation on entity '${e}' must be an object, but received: ${typeof t}`);for(const[i,s]of Object.entries(t)){if(!r.links[i]){const a=Object.keys(r.links);throw new ue(`Link '${i}' does not exist on entity '${e}'. Available links: ${Yr(a)}`)}if(s!=null){if(Array.isArray(s)){for(const a of s)if(!Qr(a))throw new ue(`Invalid entity ID in link '${i}' for entity '${e}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!Qr(s))throw new ue(`Invalid UUID in link '${i}' for entity '${e}'. Expected a UUID, but received: ${s}`)}}},Sa={create:Tn,update:Tn,merge:Tn,link:Zr,unlink:Zr,delete:()=>{}},Oa=(e,t)=>{if(!t)return;const[n,r,i,s]=e;if(!Array.isArray(i)&&!De(i))throw new ue(`Invalid id for entity '${r}'. Expected a UUID, but received: ${i}`);if(typeof r!="string")throw new ue(`Entity name must be a string, but received: ${typeof r}`);const o=Sa[n];o&&s!==void 0&&o(r,s,t)},Ea=(e,t)=>{const n=Array.isArray(e)?e:[e];for(const r of n){if(!r||typeof r!="object")throw new ue(`Transaction chunk must be an object, but received: ${typeof r}`);if(!Array.isArray(r.__ops))throw new ue(`Transaction chunk must have __ops array, but received: ${typeof r.__ops}`);for(const i of r.__ops){if(!Array.isArray(i))throw new ue(`Transaction operation must be an array, but received: ${typeof i}`);Oa(i,t)}}};var Xr=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})};let ei=0;class ti{constructor(t){this.type="ws",this.id=`${this.type}_${ei++}`,this.conn=new WebSocket(t),this.conn.onopen=n=>{this.onopen&&this.onopen({target:this})},this.conn.onmessage=n=>{this.onmessage&&this.onmessage({target:this,message:JSON.parse(n.data.toString())})},this.conn.onclose=n=>{this.onclose&&this.onclose({target:this})},this.conn.onerror=n=>{this.onerror&&this.onerror({target:this})}}close(){this.conn.close()}isOpen(){return this.conn.readyState===WebSocket.OPEN}isConnecting(){return this.conn.readyState===WebSocket.CONNECTING}send(t){return this.conn.send(JSON.stringify(t))}}class Aa{constructor(t,n){this.type="sse",this.initParams=null,this.sendQueue=[],this.closeFired=!1,this.sseInitTimeout=null,this.id=`${this.type}_${ei++}`,this.url=n,this.ES=t,this.conn=new t(n),this.sseInitTimeout=setTimeout(()=>{this.initParams||this.handleError()},1e4),this.conn.onmessage=r=>{const i=JSON.parse(r.data);if(i.op==="sse-init"){this.initParams={machineId:i["machine-id"],sessionId:i["session-id"],sseToken:i["sse-token"]},this.onopen&&this.onopen({target:this}),clearTimeout(this.sseInitTimeout);return}this.onmessage&&this.onmessage({target:this,message:i})},this.conn.onerror=r=>{this.handleError()}}handleError(){try{this.onerror&&this.onerror({target:this})}finally{this.handleClose()}}handleClose(){this.conn.close(),this.onclose&&!this.closeFired&&(this.closeFired=!0,this.onclose({target:this}))}postMessages(t){return Xr(this,void 0,void 0,function*(){try{(yield fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machine_id:this.initParams.machineId,session_id:this.initParams.sessionId,sse_token:this.initParams.sseToken,messages:t})})).ok||this.handleError()}catch{this.handleError()}})}flushQueue(){return Xr(this,void 0,void 0,function*(){if(this.sendPromise||!this.sendQueue.length)return;const t=this.sendQueue;this.sendQueue=[];const n=this.postMessages(t);this.sendPromise=n,n.then(()=>{this.sendPromise=null,this.flushQueue()})})}send(t){if(!this.isOpen()||!this.initParams)throw this.isConnecting()?new Error("Failed to execute 'send' on 'EventSource': Still in CONNECTING state."):this.conn.readyState===this.ES.CLOSED?new Error("EventSource is already in CLOSING or CLOSED state."):new Error("EventSource is in invalid state.");this.sendQueue.push(t),this.flushQueue()}isOpen(){return this.conn.readyState===this.ES.OPEN&&this.initParams!==null}isConnecting(){return this.conn.readyState===this.ES.CONNECTING||this.conn.readyState===this.ES.OPEN&&this.initParams===null}close(){this.handleClose()}}var L=function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{d(r.next(c))}catch(f){o(f)}}function u(c){try{d(r.throw(c))}catch(f){o(f)}}function d(c){c.done?s(c.value):i(c.value).then(a,u)}d((r=r.apply(e,t||[])).next())})},Ca=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n};const we={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},ja=3e4,ka=3e4,Pa=200,Ia={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},wn="_instant_oauth_redirect",mn="currentUser";function Ma({transportType:e,appId:t,apiURI:n,wsURI:r,EventSourceImpl:i}){if(!i)return new ti(`${r}?app_id=${t}`);switch(e){case"ws":return new ti(`${r}?app_id=${t}`);case"sse":return new Aa(i,`${n}/runtime/sse?app_id=${t}`);default:throw new Error("Unknown transport type "+e)}}function Ra(){return typeof window<"u"||typeof chrome<"u"}const ni={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function xa(e,t){var n;const r=typeof e=="string"?JSON.parse(e):e;for(const i in r){const s=r[i];if(!((n=s==null?void 0:s.result)===null||n===void 0)&&n.store){const o=s.result.store;s.result.store=hs(Object.assign(Object.assign({},o),{useDateObjects:t}))}}return r}function Da(e){var t;const n={};for(const r in e){const i=e[r],s=Object.assign({},i);!((t=i.result)===null||t===void 0)&&t.store&&(s.result=Object.assign(Object.assign({},i.result),{store:ls(i.result.store)})),n[r]=s}return n}function ri(e){return[...e].sort((t,n)=>{const[r,i]=t,[s,o]=n,a=i.order||0,u=o.order||0;return a==u?r<s?-1:r>s?1:0:a-u})}class $a{constructor(t,n=Mr,r=Rr,i,s){var o,a,u;if(this._isOnline=!0,this._isShutdown=!1,this.status=we.CONNECTING,this.queryCbs={},this.queryOnceDfds={},this.authCbs=[],this.attrsCbs=[],this.mutationErrorCbs=[],this.connectionStatusCbs=[],this.mutationDeferredStore=new Map,this._reconnectTimeoutId=null,this._reconnectTimeoutMs=0,this._transportType="ws",this._wsOk=null,this._localIdPromises={},this._errorMessage=null,this._oauthCallbackResponse=null,this._linkIndex=null,this._rooms={},this._roomsPendingLeave={},this._presence={},this._broadcastQueue=[],this._broadcastSubs={},this._currentUserCached={isLoading:!0,error:void 0,user:void 0},this._beforeUnloadCbs=[],this._dataForQueryCache={},this._inFlightMutationEventIds=new Set,this._onMergeQuerySubs=(d,c)=>{const f=d||{},h=Object.assign({},c);Object.entries(c).forEach(([_,b])=>{var g;const T=(g=f==null?void 0:f[_])===null||g===void 0?void 0:g.result,w=b.result;T&&!w&&(h[_].result=T)}),Object.keys(f).filter(_=>!c[_]).sort((_,b)=>{var g,T;const w=((g=f[_])===null||g===void 0?void 0:g.lastAccessed)||0;return(((T=f[b])===null||T===void 0?void 0:T.lastAccessed)||0)-w}).slice(0,this.queryCacheLimit).forEach(_=>{h[_]=f[_]}),this.querySubs.set(_=>h),this.loadedNotifyAll()},this._onMergePendingMutations=(d,c)=>{const f=new Map([...d.entries(),...c.entries()]);this.pendingMutations.set(p=>f),this.loadedNotifyAll(),this._rewriteMutationsSorted(this.attrs,d).forEach(([p,_])=>{!c.has(p)&&!_["tx-id"]&&this._sendMutation(p,_)})},this.getPreviousResult=d=>{const c=ee(d);return this.dataForQuery(c)},this.notifyOne=d=>{var c,f;const h=(c=this.queryCbs[d])!==null&&c!==void 0?c:[],p=(f=this._dataForQueryCache[d])===null||f===void 0?void 0:f.data,_=this.dataForQuery(d);_&&(pt(_,p)||h.forEach(b=>b.cb(_)))},this.notifyOneQueryOnce=d=>{var c;const f=(c=this.queryOnceDfds[d])!==null&&c!==void 0?c:[],h=this.dataForQuery(d);f.forEach(p=>{this._completeQueryOnce(p.q,d,p.dfd),p.dfd.resolve(h)})},this.notifyQueryError=(d,c)=>{(this.queryCbs[d]||[]).forEach(h=>h.cb({error:c}))},this.pushTx=d=>{this.config.disableValidation||Ea(d,this.config.schema);try{const c=Xo({attrs:this.optimisticAttrs(),schema:this.config.schema,stores:Object.values(this.querySubs.currentValue).map(f=>{var h;return(h=f==null?void 0:f.result)===null||h===void 0?void 0:h.store}),useDateObjects:this.config.useDateObjects},d);return this.pushOps(c)}catch(c){return this.pushOps([],c)}},this.pushOps=(d,c)=>{const f=B(),h=[...this.pendingMutations.currentValue.values()],p=Math.max(0,...h.map(g=>g.order||0))+1,_={op:"transact","tx-steps":d,created:Date.now(),error:c,order:p};this.pendingMutations.set(g=>(g.set(f,_),g));const b=new Lr;return this.mutationDeferredStore.set(f,b),this._sendMutation(f,_),this.notifyAll(),b.promise},this._transportOnOpen=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][open]",c.id,"skip; this is no longer the current transport");return}this._log.info("[socket][open]",this._transport.id),this._setStatus(we.OPENED),this.getCurrentUser().then(f=>{var h;this._trySend(B(),{op:"init","app-id":this.config.appId,"refresh-token":(h=f.user)===null||h===void 0?void 0:h.refresh_token,versions:this.versions,"__admin-token":this.config.__adminToken})}).catch(f=>{this._log.error("[socket][error]",c.id,f)})},this._transportOnMessage=d=>{const c=d.target,f=d.message;if(this._transport!==c){this._log.info("[socket][message]",c.id,f,"skip; this is no longer the current transport");return}!this._wsOk&&c.type==="ws"&&(this._wsOk=!0),this._transportType="ws",this._handleReceive(c.id,d.message)},this._transportOnError=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][error]",c.id,"skip; this is no longer the current transport");return}this._log.error("[socket][error]",c.id,d)},this._scheduleReconnect=()=>{!this._wsOk&&this._transportType!=="sse"&&(this._transportType="sse",this._reconnectTimeoutMs=0),setTimeout(()=>{if(this._reconnectTimeoutMs=Math.min(this._reconnectTimeoutMs+1e3,1e4),!this._isOnline){this._log.info("[socket][close]",this._transport.id,"we are offline, no need to start socket");return}this._startSocket()},this._reconnectTimeoutMs)},this._transportOnClose=d=>{const c=d.target;if(this._transport!==c){this._log.info("[socket][close]",c.id,"skip; this is no longer the current transport");return}this._setStatus(we.CLOSED);for(const f of Object.values(this._rooms))f.isConnected=!1;if(this._isShutdown){this._log.info("[socket][close]",c.id,"Reactor has been shut down and will not reconnect");return}this._log.info("[socket][close]",c.id,"schedule reconnect, ms =",this._reconnectTimeoutMs),this._scheduleReconnect()},this._EventSource=s,this.config=Object.assign(Object.assign({},Ia),t),this.queryCacheLimit=(o=this.config.queryCacheLimit)!==null&&o!==void 0?o:10,this._pendingTxCleanupTimeout=(a=this.config.pendingTxCleanupTimeout)!==null&&a!==void 0?a:ka,this._pendingMutationCleanupThreshold=(u=this.config.pendingMutationCleanupThreshold)!==null&&u!==void 0?u:Pa,this._log=ba(t.verbose||_n||Dr,()=>this._reactorStats()),this.versions=Object.assign(Object.assign({},i||{}),{"@instantdb/core":gn}),this.config.schema&&(this._linkIndex=Vr(this.config.schema)),!!Ra()){if(!t.appId)throw new Error("Instant must be initialized with an appId.");if(!De(t.appId))throw new Error(`Instant must be initialized with a valid appId. \`${t.appId}\` is not a valid uuid.`);typeof BroadcastChannel=="function"&&(this._broadcastChannel=new BroadcastChannel("@instantdb"),this._broadcastChannel.addEventListener("message",d=>L(this,void 0,void 0,function*(){var c;try{if(((c=d.data)===null||c===void 0?void 0:c.type)==="auth"){const f=yield this.getCurrentUser();this.updateUser(f.user)}}catch(f){this._log.error("[error] handle broadcast channel",f)}}))),this._initStorage(n),this._oauthCallbackResponse=this._oauthLoginInit(),this.getCurrentUser(),r.getIsOnline().then(d=>{this._isOnline=d,this._startSocket(),r.listen(c=>{c!==this._isOnline&&(this._log.info("[network] online =",c),this._isOnline=c,this._isOnline?this._startSocket():(this._log.info("Changing status from",this.status,"to",we.CLOSED),this._setStatus(we.CLOSED)))})}),typeof addEventListener<"u"&&(this._beforeUnload=this._beforeUnload.bind(this),addEventListener("beforeunload",this._beforeUnload))}}updateSchema(t){this.config=Object.assign(Object.assign({},this.config),{schema:t,cardinalityInference:!!t}),this._linkIndex=t?Vr(this.config.schema):null}_reactorStats(){return{inFlightMutationCount:this._inFlightMutationEventIds.size,pendingMutationCount:this.pendingMutations.currentValue.size,transportType:this._transportType}}_initStorage(t){this._persister=new t(`instant_${this.config.appId}_5`),this.querySubs=new Nr(this._persister,"querySubs",{},this._onMergeQuerySubs,Da,n=>xa(n,this.config.useDateObjects)),this.pendingMutations=new Nr(this._persister,"pendingMutations",new Map,this._onMergePendingMutations,n=>[...n.entries()],n=>new Map(typeof n=="string"?JSON.parse(n):n),100,100),this._beforeUnloadCbs.push(()=>{this.pendingMutations.flush(),this.querySubs.flush()})}_beforeUnload(){for(const t of this._beforeUnloadCbs)t()}_finishTransaction(t,n,r){const i=this.mutationDeferredStore.get(n);this.mutationDeferredStore.delete(n);const s=t!=="error"&&t!=="timeout";if(!i&&!s&&console.error("Mutation failed",Object.assign({status:t,eventId:n},r)),!!i)if(s)i.resolve({status:t,eventId:n});else if(r.type){const{status:o}=r,a=Ca(r,["status"]);i.reject(new et({body:a,status:o}))}else i.reject(new Ue(r.message,r.hint))}_setStatus(t,n){this.status=t,this._errorMessage=n,this.notifyConnectionStatusSubs(t)}_flushEnqueuedRoomData(t){var n,r;const i=(r=(n=this._presence[t])===null||n===void 0?void 0:n.result)===null||r===void 0?void 0:r.user,s=this._broadcastQueue[t];if(this._broadcastQueue[t]=[],i&&this._trySetPresence(t,i),s)for(const o of s){const{topic:a,roomType:u,data:d}=o;this._tryBroadcast(t,u,a,d)}}_handleReceive(t,n){var r,i,s,o,a,u;const d=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(ni[n.op]||this._log.info("[receive]",t,n.op,n),n.op){case"init-ok":this._setStatus(we.AUTHENTICATED),this._reconnectTimeoutMs=0,this._setAttrs(n.attrs),this._flushPendingMessages(),this._sessionId=n["session-id"];for(const O of Object.keys(this._rooms)){const Z=(i=(r=this._presence[O])===null||r===void 0?void 0:r.result)===null||i===void 0?void 0:i.user;this._tryJoinRoom(O,Z)}break;case"add-query-exists":this.notifyOneQueryOnce(ee(n.q));break;case"add-query-ok":const{q:c,result:f}=n,h=ee(c),p=(o=(s=f==null?void 0:f[0])===null||s===void 0?void 0:s.data)===null||o===void 0?void 0:o["page-info"],_=(u=(a=f==null?void 0:f[0])===null||a===void 0?void 0:a.data)===null||u===void 0?void 0:u.aggregate,b=Wr(f),g=rn(this.attrs,b,d,this._linkIndex,this.config.useDateObjects);this.querySubs.set(O=>(O[h].result={store:g,pageInfo:p,aggregate:_,processedTxId:n["processed-tx-id"]},O)),this._cleanupPendingMutationsQueries(),this.notifyOne(h),this.notifyOneQueryOnce(h),this._cleanupPendingMutationsTimeout();break;case"refresh-ok":const{computations:T,attrs:w}=n,v=n["processed-tx-id"];w&&this._setAttrs(w),this._cleanupPendingMutationsTimeout();const R=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue,v);R!==this.pendingMutations.currentValue&&this.pendingMutations.set(()=>R);const E=ri(R.entries()),N=T.map(O=>{var Z,Se,_e,pe;const Q=O["instaql-query"],z=O["instaql-result"],Pe=ee(Q),kt=Wr(z),Pt=rn(this.attrs,kt,d,this._linkIndex,this.config.useDateObjects),It=this._applyOptimisticUpdates(Pt,E,v),Mt=(Se=(Z=z==null?void 0:z[0])===null||Z===void 0?void 0:Z.data)===null||Se===void 0?void 0:Se["page-info"],Rt=(pe=(_e=z==null?void 0:z[0])===null||_e===void 0?void 0:_e.data)===null||pe===void 0?void 0:pe.aggregate;return{hash:Pe,store:It,pageInfo:Mt,aggregate:Rt}});N.forEach(({hash:O,store:Z,pageInfo:Se,aggregate:_e})=>{this.querySubs.set(pe=>(pe[O].result={store:Z,pageInfo:Se,aggregate:_e,processedTxId:v},pe))}),this._cleanupPendingMutationsQueries(),N.forEach(({hash:O})=>{this.notifyOne(O)});break;case"transact-ok":{const{"client-event-id":O,"tx-id":Z}=n;this._inFlightMutationEventIds.delete(O);const _e=this._rewriteMutations(this.attrs,this.pendingMutations.currentValue).get(O);if(!_e)break;this.pendingMutations.set(Q=>(Q.set(O,Object.assign(Object.assign({},Q.get(O)),{"tx-id":Z,confirmed:Date.now()})),Q));const pe=_e["tx-steps"].filter(([Q,...z])=>Q==="add-attr").map(([Q,z])=>z).concat(Object.values(this.attrs));this._setAttrs(pe),this._finishTransaction("synced",O),this._cleanupPendingMutationsTimeout();break}case"patch-presence":{const O=n["room-id"];this._trySetRoomConnected(O,!0),this._patchPresencePeers(O,n.edits),this._notifyPresenceSubs(O);break}case"refresh-presence":{const O=n["room-id"];this._trySetRoomConnected(O,!0),this._setPresencePeers(O,n.data),this._notifyPresenceSubs(O);break}case"server-broadcast":{const O=n["room-id"],Z=n.topic;this._trySetRoomConnected(O,!0),this._notifyBroadcastSubs(O,Z,n);break}case"join-room-ok":{const O=n["room-id"];if(!this._rooms[O]){this._roomsPendingLeave[O]&&(this._tryLeaveRoom(O),delete this._roomsPendingLeave[O]);break}this._trySetRoomConnected(O,!0),this._flushEnqueuedRoomData(O);break}case"leave-room-ok":{const O=n["room-id"];this._trySetRoomConnected(O,!1);break}case"join-room-error":const V=n["room-id"],be=this._rooms[V];be&&(be.error=n.error),this._notifyPresenceSubs(V);break;case"error":this._handleReceiveError(n);break}}_handleMutationError(t,n,r){const i=this.pendingMutations.currentValue.get(n);if(i&&(t!=="timeout"||!i["tx-id"])){this.pendingMutations.set(o=>(o.delete(n),o)),this._inFlightMutationEventIds.delete(n);const s={message:r.message,hint:r.hint};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(s),this._finishTransaction(t,n,r)}}_handleReceiveError(t){var n,r,i,s,o;console.log("error",t);const a=t["client-event-id"];this._inFlightMutationEventIds.delete(a);const u=this.pendingMutations.currentValue.get(a),d={message:t.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(t.hint&&(d.hint=t.hint),u){this._handleMutationError("error",a,t);return}if(!((n=t["original-event"])===null||n===void 0)&&n.hasOwnProperty("q")&&((r=t["original-event"])===null||r===void 0?void 0:r.op)==="add-query"){const h=(i=t["original-event"])===null||i===void 0?void 0:i.q,p=ee(h);this.notifyQueryError(ee(h),d),this.notifyQueryOnceError(h,p,a,d);return}if(((s=t["original-event"])===null||s===void 0?void 0:s.op)==="init"){if(t.type==="record-not-found"&&((o=t.hint)===null||o===void 0?void 0:o["record-type"])==="app-user"){this.changeCurrentUser(null);return}this._setStatus(we.ERRORED,d),this.notifyAll();return}const f=Object.assign({},t);delete f.message,delete f.hint,console.error(t.message,f),t.hint&&console.error(`This error comes with some debugging information. Here it is:
2
2
  `,t.hint)}notifyQueryOnceError(t,n,r,i){var s;const o=(s=this.queryOnceDfds[n])===null||s===void 0?void 0:s.find(a=>a.eventId===r);o&&(o.dfd.reject(i),this._completeQueryOnce(t,n,o.dfd))}_setAttrs(t){this.attrs=t.reduce((n,r)=>(n[r.id]=r,n),{}),this.notifyAttrsSubs()}_startQuerySub(t,n){const r=B();return this.querySubs.set(i=>(i[n]=i[n]||{q:t,result:null,eventId:r},i[n].lastAccessed=Date.now(),i)),this._trySendAuthed(r,{op:"add-query",q:t}),r}subscribeQuery(t,n,r){var i;this.config.disableValidation||Gr(t,this.config.schema),r&&"ruleParams"in r&&(t=Object.assign({$$ruleParams:r.ruleParams},t));const s=ee(t),o=this.getPreviousResult(t);return o&&n(o),this.queryCbs[s]=(i=this.queryCbs[s])!==null&&i!==void 0?i:[],this.queryCbs[s].push({q:t,cb:n}),this._startQuerySub(t,s),()=>{this._unsubQuery(t,s,n)}}queryOnce(t,n){var r;this.config.disableValidation||Gr(t,this.config.schema),n&&"ruleParams"in n&&(t=Object.assign({$$ruleParams:n.ruleParams},t));const i=new Lr;if(!this._isOnline)return i.reject(new Error("We can't run `queryOnce`, because the device is offline.")),i.promise;if(!this.querySubs)return i.reject(new Error("We can't run `queryOnce` on the backend. Use adminAPI.query instead: https://www.instantdb.com/docs/backend#query")),i.promise;const s=ee(t),o=this._startQuerySub(t,s);return this.queryOnceDfds[s]=(r=this.queryOnceDfds[s])!==null&&r!==void 0?r:[],this.queryOnceDfds[s].push({q:t,dfd:i,eventId:o}),setTimeout(()=>i.reject(new Error("Query timed out")),ja),i.promise}_completeQueryOnce(t,n,r){this.queryOnceDfds[n]&&(this.queryOnceDfds[n]=this.queryOnceDfds[n].filter(i=>i.dfd!==r),this._cleanupQuery(t,n))}_unsubQuery(t,n,r){this.queryCbs[n]&&(this.queryCbs[n]=this.queryCbs[n].filter(i=>i.cb!==r),this._cleanupQuery(t,n))}_cleanupQuery(t,n){var r,i;!((r=this.queryCbs[n])===null||r===void 0)&&r.length||!((i=this.queryOnceDfds[n])===null||i===void 0)&&i.length||(delete this.queryCbs[n],delete this.queryOnceDfds[n],this._trySendAuthed(B(),{op:"remove-query",q:t}))}_rewriteMutations(t,n,r){if(!t)return n;const i=c=>{const[f,h,p]=c["forward-identity"];return q(t,h,p)},s=c=>{const[f,h,p]=c["forward-identity"];return Ce(t,h,p)},o={attrIdMap:{},refSwapAttrIds:new Set};let a=!1;const u=(c,f)=>{const h=[];for(const p of c){const[_]=p;if(_==="add-attr"){const[g,T]=p,w=i(T);if(w&&T.id!==w.id){o.attrIdMap[T.id]=w.id,a=!0;continue}if(T["value-type"]==="ref"){const v=s(T);if(v){o.attrIdMap[T.id]=v.id,o.refSwapAttrIds.add(T.id),a=!0;continue}}}if(r&&f&&r>=f&&_==="add-attr"||_==="update-attr"||_==="delete-attr"){a=!0;continue}const b=a?ko(o,p):p;h.push(b)}return a?h:c},d=new Map;for(const[c,f]of n.entries())d.set(c,Object.assign(Object.assign({},f),{"tx-steps":u(f["tx-steps"],f["tx-id"])}));return a?d:n}_rewriteMutationsSorted(t,n){return ri(this._rewriteMutations(t,n).entries())}optimisticAttrs(){var t;const n=[...this.pendingMutations.currentValue.values()].flatMap(a=>a["tx-steps"]),r=new Set(n.filter(([a,u])=>a==="delete-attr").map(([a,u])=>u)),i=[];for(const[a,u]of n)if(a==="add-attr")i.push(u);else if(a==="update-attr"&&u.id&&(!((t=this.attrs)===null||t===void 0)&&t[u.id])){const d=Object.assign(Object.assign({},this.attrs[u.id]),u);i.push(d)}const s=[...Object.values(this.attrs||{}),...i].filter(a=>!r.has(a.id));return Object.fromEntries(s.map(a=>[a.id,a]))}dataForQuery(t){const n=this._errorMessage;if(n)return{error:n};if(!this.querySubs||!this.pendingMutations)return;const r=this.querySubs.version(),i=this.querySubs.currentValue,s=this.pendingMutations.version(),o=this.pendingMutations.currentValue,{q:a,result:u}=i[t]||{};if(!u)return;const d=this._dataForQueryCache[t];if(d&&r===d.querySubVersion&&s===d.pendingMutationsVersion)return d.data;const{store:c,pageInfo:f,aggregate:h,processedTxId:p}=u,_=this._rewriteMutationsSorted(c.attrs,o),b=this._applyOptimisticUpdates(c,_,p),g=vo({store:b,pageInfo:f,aggregate:h},a);return this._dataForQueryCache[t]={querySubVersion:r,pendingMutationsVersion:s,data:g},g}_applyOptimisticUpdates(t,n,r){for(const[i,s]of n)(!s["tx-id"]||r&&s["tx-id"]>r)&&(t=Cs(t,s["tx-steps"]));return t}notifyAll(){Object.keys(this.queryCbs).forEach(t=>{this.notifyOne(t)})}loadedNotifyAll(){this.pendingMutations.isLoading()||this.querySubs.isLoading()||this.notifyAll()}shutdown(){var t;this._log.info("[shutdown]",this.config.appId),this._isShutdown=!0,(t=this._transport)===null||t===void 0||t.close()}_sendMutation(t,n){if(n.error){this._handleMutationError("error",t,{message:n.error.message});return}if(this.status!==we.AUTHENTICATED){this._finishTransaction("enqueued",t);return}const r=Math.max(6e3,Math.min(this._inFlightMutationEventIds.size+1,this.pendingMutations.currentValue.size+1)*6e3);this._isOnline?(this._trySend(t,n),setTimeout(()=>{this._isOnline&&this._handleMutationError("timeout",t,{message:"transaction timed out"})},r)):this._finishTransaction("enqueued",t)}_flushPendingMessages(){Object.keys(this.queryCbs).map(i=>this.querySubs.currentValue[i]).filter(i=>i).forEach(({eventId:i,q:s})=>{this._trySendAuthed(i,{op:"add-query",q:s})}),Object.values(this.queryOnceDfds).flat().forEach(({eventId:i,q:s})=>{this._trySendAuthed(i,{op:"add-query",q:s})}),this._rewriteMutationsSorted(this.attrs,this.pendingMutations.currentValue).forEach(([i,s])=>{s["tx-id"]||this._sendMutation(i,s)})}_cleanupPendingMutationsQueries(){let t=Number.MAX_SAFE_INTEGER;for(const{result:n}of Object.values(this.querySubs.currentValue))n!=null&&n.processedTxId&&(t=Math.min(t,n==null?void 0:n.processedTxId));this.pendingMutations.set(n=>{for(const[r,i]of Array.from(n.entries()))i["tx-id"]&&i["tx-id"]<=t&&n.delete(r);return n})}_cleanupPendingMutationsTimeout(){if(this.pendingMutations.currentValue.size<this._pendingMutationCleanupThreshold)return;const t=Date.now();this.pendingMutations.set(n=>{for(const[r,i]of Array.from(n.entries()))i.confirmed&&i.confirmed+this._pendingTxCleanupTimeout<t&&n.delete(r);return n})}_trySendAuthed(...t){this.status===we.AUTHENTICATED&&this._trySend(...t)}_trySend(t,n,r){if(this._transport.isOpen()){switch(ni[n.op]||this._log.info("[send]",this._transport.id,n.op,n),n.op){case"transact":{this._inFlightMutationEventIds.add(t);break}case"init":this._inFlightMutationEventIds.clear()}this._transport.send(Object.assign({"client-event-id":t},n))}}_startSocket(){if(this._wsOk=null,this._isShutdown){this._log.info("[socket][start]",this.config.appId,"Reactor has been shut down and will not start a new socket");return}if(this._transport&&this._transport.isConnecting()){this._log.info("[socket][start]",this._transport.id,"maintained as current transport, we were still in a connecting state");return}const t=this._transport;this._transport=Ma({transportType:this._transportType,appId:this.config.appId,apiURI:this.config.apiURI,wsURI:this.config.websocketURI,EventSourceImpl:this._EventSource}),this._transport.onopen=this._transportOnOpen,this._transport.onmessage=this._transportOnMessage,this._transport.onclose=this._transportOnClose,this._transport.onerror=this._transportOnError,this._log.info("[socket][start]",this._transport.id),t!=null&&t.isOpen()&&(this._log.info("[socket][start]",this._transport.id,"close previous transport id = ",t.id),t.close())}getLocalId(t){return L(this,void 0,void 0,function*(){const n=`localToken_${t}`,r=yield this._persister.getItem(n);if(r)return r;if(this._localIdPromises[n])return this._localIdPromises[n];const i=B();return this._localIdPromises[n]=this._persister.setItem(n,i).then(()=>i),this._localIdPromises[n]})}_replaceUrlAfterOAuth(){if(typeof URL>"u")return;const t=new URL(window.location.href);if(t.searchParams.get(wn)){const n=t.toString();t.searchParams.delete(wn),t.searchParams.delete("code"),t.searchParams.delete("error");const r=t.pathname+(t.searchParams.size?"?"+t.searchParams:"")+t.hash;if(history.replaceState(history.state,"",r),typeof navigation=="object"&&typeof navigation.addEventListener=="function"&&typeof navigation.removeEventListener=="function"){let i=!1;const s=o=>{var a;i||(i=!0,navigation.removeEventListener("navigate",s),!o.userInitiated&&o.navigationType==="replace"&&((a=o.destination)===null||a===void 0?void 0:a.url)===n&&history.replaceState(history.state,"",r))};navigation.addEventListener("navigate",s)}}}_oauthLoginInit(){return L(this,void 0,void 0,function*(){var t,n,r,i;if(typeof window>"u"||typeof window.location>"u"||typeof URLSearchParams>"u")return null;const s=new URLSearchParams(window.location.search);if(!s.get(wn))return null;const o=s.get("error");if(o)return this._replaceUrlAfterOAuth(),{error:{message:o}};const a=s.get("code");if(!a)return null;this._replaceUrlAfterOAuth();try{const u=yield this._getCurrentUser(),d=(u==null?void 0:u.type)==="guest",{user:c}=yield xr({apiURI:this.config.apiURI,appId:this.config.appId,code:a,refreshToken:d?u.refresh_token:void 0});return this.setCurrentUser(c),null}catch(u){return((t=u==null?void 0:u.body)===null||t===void 0?void 0:t.type)==="record-not-found"&&((r=(n=u==null?void 0:u.body)===null||n===void 0?void 0:n.hint)===null||r===void 0?void 0:r["record-type"])==="app-oauth-code"&&(yield this._hasCurrentUser())?null:{error:{message:((i=u==null?void 0:u.body)===null||i===void 0?void 0:i.message)||"Error logging in."}}}})}_waitForOAuthCallbackResponse(){return L(this,void 0,void 0,function*(){return yield this._oauthCallbackResponse})}__subscribeMutationErrors(t){return this.mutationErrorCbs.push(t),()=>{this.mutationErrorCbs=this.mutationErrorCbs.filter(n=>n!==t)}}subscribeAuth(t){this.authCbs.push(t);const n=this._currentUserCached;n.isLoading||t(this._currentUserCached);let r=!1;return this.getCurrentUser().then(i=>{r||pt(i,n)||t(i)}),()=>{r=!0,this.authCbs=this.authCbs.filter(i=>i!==t)}}getAuth(){return L(this,void 0,void 0,function*(){const{user:t,error:n}=yield this.getCurrentUser();if(n)throw new Ue("Could not get current user: "+n.message);return t})}subscribeConnectionStatus(t){return this.connectionStatusCbs.push(t),()=>{this.connectionStatusCbs=this.connectionStatusCbs.filter(n=>n!==t)}}subscribeAttrs(t){return this.attrsCbs.push(t),this.attrs&&t(this.attrs),()=>{this.attrsCbs=this.attrsCbs.filter(n=>n!==t)}}notifyAuthSubs(t){this.authCbs.forEach(n=>n(t))}notifyMutationErrorSubs(t){this.mutationErrorCbs.forEach(n=>n(t))}notifyAttrsSubs(){if(!this.attrs)return;const t=this.optimisticAttrs();this.attrsCbs.forEach(n=>n(t))}notifyConnectionStatusSubs(t){this.connectionStatusCbs.forEach(n=>n(t))}setCurrentUser(t){return L(this,void 0,void 0,function*(){yield this._persister.setItem(mn,t)})}getCurrentUserCached(){return this._currentUserCached}_getCurrentUser(){return L(this,void 0,void 0,function*(){const t=yield this._persister.getItem(mn);return typeof t=="string"?JSON.parse(t):t})}getCurrentUser(){return L(this,void 0,void 0,function*(){const t=yield this._waitForOAuthCallbackResponse();if(t!=null&&t.error){const i={error:t.error,user:void 0};return this._currentUserCached=Object.assign({isLoading:!1},i),i}const r={user:yield this._getCurrentUser(),error:void 0};return this._currentUserCached=Object.assign({isLoading:!1},r),r})}_hasCurrentUser(){return L(this,void 0,void 0,function*(){const t=yield this._persister.getItem(mn);return JSON.parse(t)!=null})}changeCurrentUser(t){return L(this,void 0,void 0,function*(){var n;const{user:r}=yield this.getCurrentUser();if(!pt(r,t)){yield this.setCurrentUser(t),this.updateUser(t);try{(n=this._broadcastChannel)===null||n===void 0||n.postMessage({type:"auth"})}catch(i){console.error("Error posting message to broadcast channel",i)}}})}updateUser(t){const n={error:void 0,user:t};this._currentUserCached=Object.assign({isLoading:!1},n),this._dataForQueryCache={},this.querySubs.set(r=>(Object.keys(r).forEach(i=>{delete r[i].result}),r)),this._reconnectTimeoutMs=0,this._transport.close(),this._oauthCallbackResponse=null,this.notifyAuthSubs(n)}sendMagicCode({email:t}){return na({apiURI:this.config.apiURI,appId:this.config.appId,email:t})}signInWithMagicCode(t){return L(this,arguments,void 0,function*({email:n,code:r}){var i;const s=yield this.getCurrentUser(),o=((i=s==null?void 0:s.user)===null||i===void 0?void 0:i.type)==="guest",a=yield ra({apiURI:this.config.apiURI,appId:this.config.appId,email:n,code:r,refreshToken:o?s.user.refresh_token:void 0});return yield this.changeCurrentUser(a.user),a})}signInWithCustomToken(t){return L(this,void 0,void 0,function*(){const n=yield ia({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:t});return yield this.changeCurrentUser(n.user),n})}signInAsGuest(){return L(this,void 0,void 0,function*(){const t=yield sa({apiURI:this.config.apiURI,appId:this.config.appId});return yield this.changeCurrentUser(t.user),t})}potentiallyInvalidateToken(t,n){var r;const i=(r=t==null?void 0:t.user)===null||r===void 0?void 0:r.refresh_token;if(!i)return;if(n.invalidateToken===!1){this._log.info("[auth-invalidate] skipped invalidateToken");return}aa({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:i}).then(()=>{this._log.info("[auth-invalidate] completed invalidateToken")}).catch(o=>{})}signOut(t){return L(this,void 0,void 0,function*(){const n=yield this.getCurrentUser();this.potentiallyInvalidateToken(n,t),yield this.changeCurrentUser(null)})}createAuthorizationURL({clientName:t,redirectURL:n}){const{apiURI:r,appId:i}=this.config;return`${r}/runtime/oauth/start?app_id=${i}&client_name=${t}&redirect_uri=${n}`}exchangeCodeForToken(t){return L(this,arguments,void 0,function*({code:n,codeVerifier:r}){var i;const s=yield this.getCurrentUser(),o=((i=s==null?void 0:s.user)===null||i===void 0?void 0:i.type)==="guest",a=yield xr({apiURI:this.config.apiURI,appId:this.config.appId,code:n,codeVerifier:r,refreshToken:o?s.user.refresh_token:void 0});return yield this.changeCurrentUser(a.user),a})}issuerURI(){const{apiURI:t,appId:n}=this.config;return`${t}/runtime/${n}`}signInWithIdToken(t){return L(this,arguments,void 0,function*({idToken:n,clientName:r,nonce:i}){var s;const o=yield this.getCurrentUser(),a=(s=o==null?void 0:o.user)===null||s===void 0?void 0:s.refresh_token,u=yield oa({apiURI:this.config.apiURI,appId:this.config.appId,idToken:n,clientName:r,nonce:i,refreshToken:a});return yield this.changeCurrentUser(u.user),u})}joinRoom(t,n){let r=!1;this._rooms[t]||(r=!0,this._rooms[t]={isConnected:!1,error:void 0}),this._presence[t]=this._presence[t]||{};const i=this._presence[t].result;return n&&!i&&(this._presence[t].result=this._presence[t].result||{},this._presence[t].result.user=n,this._notifyPresenceSubs(t)),r&&this._tryJoinRoom(t,n),()=>{this._cleanupRoom(t)}}_cleanupRoom(t){var n,r,i,s;if(!(!((r=(n=this._presence[t])===null||n===void 0?void 0:n.handlers)===null||r===void 0)&&r.length)&&!Object.keys((i=this._broadcastSubs[t])!==null&&i!==void 0?i:{}).length){const o=(s=this._rooms[t])===null||s===void 0?void 0:s.isConnected;delete this._rooms[t],delete this._presence[t],delete this._broadcastSubs[t],o?this._tryLeaveRoom(t):this._roomsPendingLeave[t]=!0}}getPresence(t,n,r={}){const i=this._rooms[n],s=this._presence[n];return!i||!s||!s.result?null:Object.assign(Object.assign({},ha(s.result,r,this._sessionId)),{isLoading:!i.isConnected,error:i.error})}publishPresence(t,n,r){const i=this._rooms[n],s=this._presence[n];if(!i||!s)return;s.result=s.result||{};const o=Object.assign(Object.assign({},s.result.user),r);s.result.user=o,i.isConnected&&(this._trySetPresence(n,o),this._notifyPresenceSubs(n))}_trySetPresence(t,n){this._trySendAuthed(B(),{op:"set-presence","room-id":t,data:n})}_tryJoinRoom(t,n){this._trySendAuthed(B(),{op:"join-room","room-id":t,data:n}),delete this._roomsPendingLeave[t]}_tryLeaveRoom(t){this._trySendAuthed(B(),{op:"leave-room","room-id":t})}_trySetRoomConnected(t,n){const r=this._rooms[t];r&&(r.isConnected=n)}subscribePresence(t,n,r,i){const s=this.joinRoom(n,r.initialPresence||r.initialData),o=Object.assign(Object.assign({},r),{roomId:n,cb:i,prev:null});return this._presence[n]=this._presence[n]||{},this._presence[n].handlers=this._presence[n].handlers||[],this._presence[n].handlers.push(o),this._notifyPresenceSub(n,o),()=>{var a,u,d;this._presence[n].handlers=(d=(u=(a=this._presence[n])===null||a===void 0?void 0:a.handlers)===null||u===void 0?void 0:u.filter(c=>c!==o))!==null&&d!==void 0?d:[],s()}}_notifyPresenceSubs(t){var n,r;(r=(n=this._presence[t])===null||n===void 0?void 0:n.handlers)===null||r===void 0||r.forEach(i=>{this._notifyPresenceSub(t,i)})}_notifyPresenceSub(t,n){const r=this.getPresence("",t,n);r&&(n.prev&&!pa(r,n.prev)||(n.prev=r,n.cb(r)))}_patchPresencePeers(t,n){var r,i,s;const o=((i=(r=this._presence[t])===null||r===void 0?void 0:r.result)===null||i===void 0?void 0:i.peers)||{};let a=Object.fromEntries(Object.entries(o).map(([d,c])=>[d,{data:c}]));(s=this._presence[t])===null||s===void 0||s.result;const u=Jt(a,d=>{for(let[c,f,h]of n)switch(f){case"+":Gi(d,c,h);break;case"r":sr(d,c,h);break;case"-":or(d,c);break}delete d[this._sessionId]});this._setPresencePeers(t,u)}_setPresencePeers(t,n){const r=Object.assign({},n);delete r[this._sessionId];const i=Object.fromEntries(Object.entries(r).map(([s,o])=>[s,o.data]));this._presence=Jt(this._presence,s=>{sr(s,[t,"result","peers"],i)})}publishTopic({roomType:t,roomId:n,topic:r,data:i}){var s;const o=this._rooms[n];if(o){if(!o.isConnected){this._broadcastQueue[n]=(s=this._broadcastQueue[n])!==null&&s!==void 0?s:[],this._broadcastQueue[n].push({topic:r,roomType:t,data:i});return}this._tryBroadcast(n,t,r,i)}}_tryBroadcast(t,n,r,i){this._trySendAuthed(B(),{op:"client-broadcast","room-id":t,roomType:n,topic:r,data:i})}subscribeTopic(t,n,r){const i=this.joinRoom(t);return this._broadcastSubs[t]=this._broadcastSubs[t]||{},this._broadcastSubs[t][n]=this._broadcastSubs[t][n]||[],this._broadcastSubs[t][n].push(r),this._presence[t]=this._presence[t]||{},()=>{this._broadcastSubs[t][n]=this._broadcastSubs[t][n].filter(s=>s!==r),this._broadcastSubs[t][n].length||delete this._broadcastSubs[t][n],i()}}_notifyBroadcastSubs(t,n,r){var i,s,o;(o=(s=(i=this._broadcastSubs)===null||i===void 0?void 0:i[t])===null||s===void 0?void 0:s[n])===null||o===void 0||o.forEach(a=>{var u,d,c,f,h,p;const _=(u=r.data)===null||u===void 0?void 0:u.data,b=r.data["peer-id"]===this._sessionId?(c=(d=this._presence[t])===null||d===void 0?void 0:d.result)===null||c===void 0?void 0:c.user:(p=(h=(f=this._presence[t])===null||f===void 0?void 0:f.result)===null||h===void 0?void 0:h.peers)===null||p===void 0?void 0:p[r.data["peer-id"]];return a(_,b)})}uploadFile(t,n,r){return L(this,void 0,void 0,function*(){var i;const s=yield this.getCurrentUser(),o=(i=s==null?void 0:s.user)===null||i===void 0?void 0:i.refresh_token;return ua(Object.assign(Object.assign({},r),{apiURI:this.config.apiURI,appId:this.config.appId,path:t,file:n,refreshToken:o}))})}deleteFile(t){return L(this,void 0,void 0,function*(){var n;const r=yield this.getCurrentUser(),i=(n=r==null?void 0:r.user)===null||n===void 0?void 0:n.refresh_token;return yield ca({apiURI:this.config.apiURI,appId:this.config.appId,path:t,refreshToken:i})})}upload(t,n){return L(this,void 0,void 0,function*(){var r;const i=yield this.getCurrentUser(),s=(r=i==null?void 0:i.user)===null||r===void 0?void 0:r.refresh_token,o=t||n.name,a=yield da({apiURI:this.config.apiURI,appId:this.config.appId,fileName:o,refreshToken:s});return yield fa(a,n)})}getDownloadUrl(t){return L(this,void 0,void 0,function*(){var n;const r=yield this.getCurrentUser(),i=(n=r==null?void 0:r.user)===null||n===void 0?void 0:n.refresh_token;return yield la({apiURI:this.config.apiURI,appId:this.config.appId,path:t,refreshToken:i})})}}function Ua(e,t){return new St(ii(e,t),t,void 0)}function La(e){return new vt(e,{})}function Na(){return new J("string",!0,!1)}function Fa(){return new J("number",!0,!1)}function Wa(){return new J("boolean",!0,!1)}function Va(){return new J("date",!0,!1)}function za(){return new J("json",!0,!1)}function Ka(){return new J("json",!0,!1)}function ii(e,t){var n,r,i,s;const o={fwd:{},rev:{}};for(const u of Object.values(t))(n=o.fwd)[r=u.forward.on]||(n[r]={}),(i=o.rev)[s=u.reverse.on]||(i[s]={}),o.fwd[u.forward.on][u.forward.label]={entityName:u.reverse.on,cardinality:u.forward.has},o.rev[u.reverse.on][u.reverse.label]={entityName:u.forward.on,cardinality:u.reverse.has};return Object.fromEntries(Object.entries(e).map(([u,d])=>[u,new vt(d.attrs,Object.assign(Object.assign({},o.fwd[u]),o.rev[u]))]))}function Ba({entities:e,links:t,rooms:n}){const r=t??{},i=n??{};return new St(ii(e,r),r,i)}const qa={graph:Ua,schema:Ba,entity:La,string:Na,number:Fa,boolean:Wa,date:Va,json:za,any:Ka};let Ot;function Ga(e,t){Ot==null||Ot.dispose();const n=Xa(t),r=Ha(t,a),i=Ya(Qa(e));function s(c){var f;c.source===i.element.contentWindow&&((f=c.data)===null||f===void 0?void 0:f.type)==="close"&&n.isVisible()&&a()}function o(c){const f=c.shiftKey&&c.ctrlKey&&c.key==="0",h=c.key==="Escape"||c.key==="Esc";(f||h&&n.isVisible())&&a()}function a(){n.isVisible()?n.element.style.display="none":(n.element.style.display="block",n.element.contains(i.element)||n.element.appendChild(i.element))}function u(){n.element.remove(),r.element.remove(),removeEventListener("keydown",o),removeEventListener("message",s)}function d(){document.body.appendChild(n.element),document.body.appendChild(r.element),addEventListener("keydown",o),addEventListener("message",s),Ot={dispose:u}}return d()}function Qa(e){return`${_n||$r?"http://localhost:3000":"https://instantdb.com"}/_devtool?appId=${e}`}function Ya(e){const t=document.createElement("iframe");return t.src=e,t.className="instant-devtool-iframe",Object.assign(t.style,{width:"100%",height:"100%",backgroundColor:"white",border:"none"}),{element:t}}function Ha(e,t){const n=`
3
3
  <svg width="32" height="32" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
4
4
  <rect width="512" height="512" fill="black"/>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instantdb/react",
3
- "version": "v0.22.46",
3
+ "version": "v0.22.47",
4
4
  "description": "Instant DB for React",
5
5
  "homepage": "https://github.com/instantdb/instant/tree/main/client/packages/react",
6
6
  "repository": {
@@ -54,9 +54,9 @@
54
54
  },
55
55
  "dependencies": {
56
56
  "eventsource": "^4.0.0",
57
- "@instantdb/core": "v0.22.46",
58
- "@instantdb/react-common": "v0.22.46",
59
- "@instantdb/version": "v0.22.46"
57
+ "@instantdb/core": "v0.22.47",
58
+ "@instantdb/version": "v0.22.47",
59
+ "@instantdb/react-common": "v0.22.47"
60
60
  },
61
61
  "scripts": {
62
62
  "test": "vitest",