@instantdb/react 0.22.49-experimental.persisted-object-2.19477253536.1 → 0.22.49-experimental.persisted-object-2.19477901153.1

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.
@@ -88,7 +88,7 @@ function fe(t, e) {
88
88
  }
89
89
  function ii(t, e = []) {
90
90
  if (Object.hasOwnProperty.call(t, "key")) {
91
- const n = t.parent.copy, r = k(me(n, t.key));
91
+ const n = t.parent.copy, r = k(we(n, t.key));
92
92
  if (r !== null && (r == null ? void 0 : r.original) !== t.original)
93
93
  return null;
94
94
  const i = t.parent.type === 3, s = i ? Array.from(t.parent.setMap.keys()).indexOf(t.key) : t.key;
@@ -109,7 +109,7 @@ function ii(t, e = []) {
109
109
  function Ie(t) {
110
110
  return Array.isArray(t) ? 1 : t instanceof Map ? 2 : t instanceof Set ? 3 : 0;
111
111
  }
112
- function me(t, e) {
112
+ function we(t, e) {
113
113
  return Ie(t) === 2 ? t.get(e) : t[e];
114
114
  }
115
115
  function ut(t, e, n) {
@@ -119,7 +119,7 @@ function Yt(t, e) {
119
119
  const n = k(t);
120
120
  return (n ? ie(n) : t)[e];
121
121
  }
122
- function ge(t, e) {
122
+ function me(t, e) {
123
123
  return t === e ? t !== 0 || 1 / t === 1 / e : t !== t && e !== e;
124
124
  }
125
125
  function on(t) {
@@ -136,7 +136,7 @@ function ke(t, e) {
136
136
  function _s(t, e) {
137
137
  for (let n = 0; n < e.length - 1; n += 1) {
138
138
  const r = e[n];
139
- if (t = me(Ie(t) === 3 ? Array.from(t) : t, r), typeof t != "object")
139
+ if (t = we(Ie(t) === 3 ? Array.from(t) : t, r), typeof t != "object")
140
140
  throw new Error(`Cannot resolve patch at '${e.join("/")}'.`);
141
141
  }
142
142
  return t;
@@ -316,7 +316,7 @@ function oi(t, e, n) {
316
316
  }
317
317
  function ms(t, e) {
318
318
  const n = t.type === 3 ? t.setMap : t.copy;
319
- t.finalities.revoke.length > 1 && t.assignedMap.get(e) && n && oi(me(n, e), t.finalities.handledSet, t.options);
319
+ t.finalities.revoke.length > 1 && t.assignedMap.get(e) && n && oi(we(n, e), t.finalities.handledSet, t.options);
320
320
  }
321
321
  function an(t) {
322
322
  t.type === 3 && t.copy && (t.copy.clear(), t.setMap.forEach((e) => {
@@ -337,13 +337,13 @@ function Nn(t, e, n, r) {
337
337
  i && (i.callbacks || (i.callbacks = []), i.callbacks.push((s, o) => {
338
338
  var a;
339
339
  const u = t.type === 3 ? t.setMap : t.copy;
340
- if (ge(me(u, e), n)) {
340
+ if (me(we(u, e), n)) {
341
341
  let d = i.original;
342
342
  i.copy && (d = i.copy), an(t), un(t, r, s, o), t.options.enableAutoFreeze && (t.options.updatedValues = (a = t.options.updatedValues) !== null && a !== void 0 ? a : /* @__PURE__ */ new WeakMap(), t.options.updatedValues.set(d, i.original)), ut(u, e, d);
343
343
  }
344
344
  }), t.options.enableAutoFreeze && i.finalities !== t.finalities && (t.options.enableAutoFreeze = !1)), fe(n, t.options) && t.finalities.draft.push(() => {
345
345
  const s = t.type === 3 ? t.setMap : t.copy;
346
- ge(me(s, e), n) && ms(t, e);
346
+ me(we(s, e), n) && ms(t, e);
347
347
  });
348
348
  }
349
349
  function ws(t, e, n, r, i) {
@@ -394,8 +394,8 @@ function ws(t, e, n, r, i) {
394
394
  }
395
395
  function Ts({ original: t, copy: e, assignedMap: n }, r, i, s, o) {
396
396
  n.forEach((a, u) => {
397
- const d = me(t, u), c = Ot(me(e, u)), f = a ? rt(t, u) ? D.Replace : D.Add : D.Remove;
398
- if (ge(d, c) && f === D.Replace)
397
+ const d = we(t, u), c = Ot(we(e, u)), f = a ? rt(t, u) ? D.Replace : D.Add : D.Remove;
398
+ if (me(d, c) && f === D.Replace)
399
399
  return;
400
400
  const h = r.concat(u), p = ke(h, o);
401
401
  i.push(f === D.Remove ? { op: f, path: p } : { op: f, path: p, value: c }), s.push(f === D.Add ? { op: D.Remove, path: p } : f === D.Remove ? { op: D.Add, path: p, value: d } : { op: D.Replace, path: p, value: d });
@@ -457,7 +457,7 @@ const Ct = (t, e, n = !1) => {
457
457
  },
458
458
  set(t, e) {
459
459
  const n = k(this), r = ie(n);
460
- return (!r.has(t) || !ge(r.get(t), e)) && (H(n), ye(n), n.assignedMap.set(t, !0), n.copy.set(t, e), Nn(n, t, e, at)), this;
460
+ return (!r.has(t) || !me(r.get(t), e)) && (H(n), ye(n), n.assignedMap.set(t, !0), n.copy.set(t, e), Nn(n, t, e, at)), this;
461
461
  },
462
462
  delete(t) {
463
463
  if (!this.has(t))
@@ -705,7 +705,7 @@ const Os = Reflect.ownKeys(Pt), ai = /* @__PURE__ */ new WeakSet(), ui = {
705
705
  if (s != null && s.set)
706
706
  return s.set.call(t.proxy, n), !0;
707
707
  const o = Yt(ie(t), e), a = k(o);
708
- return a && ge(a.original, n) ? (t.copy[e] = n, t.assignedMap = (r = t.assignedMap) !== null && r !== void 0 ? r : /* @__PURE__ */ new Map(), t.assignedMap.set(e, !1), !0) : (ge(n, o) && (n !== void 0 || rt(t.original, e)) || (H(t), ye(t), rt(t.original, e) && ge(n, t.original[e]) ? t.assignedMap.delete(e) : t.assignedMap.set(e, !0), t.copy[e] = n, Nn(t, e, n, at)), !0);
708
+ return a && me(a.original, n) ? (t.copy[e] = n, t.assignedMap = (r = t.assignedMap) !== null && r !== void 0 ? r : /* @__PURE__ */ new Map(), t.assignedMap.set(e, !1), !0) : (me(n, o) && (n !== void 0 || rt(t.original, e)) || (H(t), ye(t), rt(t.original, e) && me(n, t.original[e]) ? t.assignedMap.delete(e) : t.assignedMap.set(e, !0), t.copy[e] = n, Nn(t, e, n, at)), !0);
709
709
  },
710
710
  has(t, e) {
711
711
  return e in ie(t);
@@ -757,7 +757,7 @@ function Fn(t) {
757
757
  var p, _;
758
758
  const y = k(u);
759
759
  let g = c.type === 3 ? c.setMap : c.copy;
760
- const T = me(g, r), w = k(T);
760
+ const T = we(g, r), w = k(T);
761
761
  if (w) {
762
762
  let v = w.original;
763
763
  w.operated && (v = Un(T)), an(w), un(w, at, f, h), c.options.enableAutoFreeze && (c.options.updatedValues = (p = c.options.updatedValues) !== null && p !== void 0 ? p : /* @__PURE__ */ new WeakMap(), c.options.updatedValues.set(v, w.original)), ut(g, r, v);
@@ -848,7 +848,7 @@ function ci(t) {
848
848
  } else
849
849
  i = t;
850
850
  if (Ln(i, (o, a) => {
851
- if (n && ge(me(n.original, o), a))
851
+ if (n && me(we(n.original, o), a))
852
852
  return;
853
853
  const u = ci(a);
854
854
  u !== a && (i === t && s(), ut(i, o, u));
@@ -905,7 +905,7 @@ const js = (t) => function e(n, r, i) {
905
905
  const P = (E) => {
906
906
  const U = k(T);
907
907
  if (!Me(E)) {
908
- if (E !== void 0 && !ge(E, T) && (U != null && U.operated))
908
+ if (E !== void 0 && !me(E, T) && (U != null && U.operated))
909
909
  throw new Error("Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.");
910
910
  const he = E == null ? void 0 : E[ys];
911
911
  if (he) {
@@ -3147,7 +3147,7 @@ class Ir {
3147
3147
  this._reject(e);
3148
3148
  }
3149
3149
  }
3150
- var Te = function(t, e, n, r) {
3150
+ var _e = function(t, e, n, r) {
3151
3151
  function i(s) {
3152
3152
  return s instanceof n ? s : new n(function(o) {
3153
3153
  o(s);
@@ -3187,28 +3187,36 @@ class $r {
3187
3187
  value: null,
3188
3188
  error: null,
3189
3189
  attempts: 0
3190
- }, this._persister = e, this._onMerge = n, this.serialize = r, this.parse = i, this._objectSize = s, this._log = o, this._saveThrottleMs = (u = a.saveThrottleMs) !== null && u !== void 0 ? u : 100, this._idleCallbackMaxWaitMs = (d = a.idleCallbackMaxWaitMs) !== null && d !== void 0 ? d : 1e3, this._gcOpts = a.gc, this.currentValue = {}, this._loadedKeys = /* @__PURE__ */ new Set(), this._loadingKeys = {}, this._initMeta();
3190
+ }, this._persister = e, this._onMerge = n, this.serialize = r, this.parse = i, this._objectSize = s, this._log = o, this._saveThrottleMs = (u = a.saveThrottleMs) !== null && u !== void 0 ? u : 100, this._idleCallbackMaxWaitMs = (d = a.idleCallbackMaxWaitMs) !== null && d !== void 0 ? d : 1e3, this._gcOpts = a.gc, this.currentValue = {}, this._loadedKeys = /* @__PURE__ */ new Set(), this._loadingKeys = {}, this._initMeta(), a.preloadEntryCount && this._preloadEntries(a.preloadEntryCount);
3191
3191
  }
3192
3192
  _initMeta() {
3193
- return Te(this, void 0, void 0, function* () {
3193
+ return _e(this, void 0, void 0, function* () {
3194
3194
  this._meta.loadingPromise && (yield this._meta.loadingPromise);
3195
3195
  try {
3196
3196
  const e = this._persister.getItem(Zt);
3197
3197
  this._meta.loadingPromise = e;
3198
3198
  const n = yield e;
3199
- this._meta.isLoading = !1, this._meta.error = null, this._meta.value = n || {};
3199
+ this._meta.isLoading = !1, this._meta.error = null, this._meta.value = n || { objects: {} };
3200
3200
  } catch (e) {
3201
3201
  this._meta.error = e, this._meta.attempts++, this._meta.loadingPromise = null;
3202
3202
  }
3203
3203
  });
3204
3204
  }
3205
3205
  _getMeta() {
3206
- return Te(this, void 0, void 0, function* () {
3206
+ return _e(this, void 0, void 0, function* () {
3207
3207
  return this._meta.value ? this._meta.value : this._meta.loadingPromise ? (yield this._meta.loadingPromise, this._meta.value) : (this._initMeta(), yield this._meta.loadingPromise, this._meta.value);
3208
3208
  });
3209
3209
  }
3210
+ _preloadEntries(e) {
3211
+ return _e(this, void 0, void 0, function* () {
3212
+ const n = yield this.waitForMetaToLoad(), r = Object.entries(n.objects);
3213
+ r.sort(([i, s], [o, a]) => a.updatedAt - s.updatedAt);
3214
+ for (const [i] of r.slice(0, e))
3215
+ this._loadKey(i);
3216
+ });
3217
+ }
3210
3218
  _getFromStorage(e) {
3211
- return Te(this, void 0, void 0, function* () {
3219
+ return _e(this, void 0, void 0, function* () {
3212
3220
  try {
3213
3221
  const n = yield this._persister.getItem(e);
3214
3222
  return this.parse(e, n);
@@ -3218,13 +3226,13 @@ class $r {
3218
3226
  });
3219
3227
  }
3220
3228
  waitForKeyToLoad(e) {
3221
- return Te(this, void 0, void 0, function* () {
3229
+ return _e(this, void 0, void 0, function* () {
3222
3230
  return this._loadedKeys.has(e) ? this.currentValue[e] : (yield this._loadingKeys[e] || this._loadKey(e), this.currentValue[e]);
3223
3231
  });
3224
3232
  }
3225
3233
  // Used for tests
3226
3234
  waitForMetaToLoad() {
3227
- return Te(this, void 0, void 0, function* () {
3235
+ return _e(this, void 0, void 0, function* () {
3228
3236
  return this._getMeta();
3229
3237
  });
3230
3238
  }
@@ -3234,7 +3242,7 @@ class $r {
3234
3242
  this._loadedKeys.delete(e), delete this._loadingKeys[e], delete this.currentValue[e];
3235
3243
  }
3236
3244
  _loadKey(e) {
3237
- return Te(this, void 0, void 0, function* () {
3245
+ return _e(this, void 0, void 0, function* () {
3238
3246
  if (this._loadedKeys.has(e) || e in this._loadingKeys)
3239
3247
  return;
3240
3248
  const n = this._getFromStorage(e);
@@ -3292,12 +3300,12 @@ class $r {
3292
3300
  return s || this.gc(), Promise.all(i).then((p) => p.reduce((_, y) => _ + y, 0));
3293
3301
  }
3294
3302
  flush() {
3295
- return Te(this, void 0, void 0, function* () {
3303
+ return _e(this, void 0, void 0, function* () {
3296
3304
  return this._nextSave ? (clearTimeout(this._nextSave), this._nextSave = null, this._writeToStorage()) : void 0;
3297
3305
  });
3298
3306
  }
3299
3307
  _gc() {
3300
- return Te(this, void 0, void 0, function* () {
3308
+ return _e(this, void 0, void 0, function* () {
3301
3309
  const e = new Set(yield this._persister.getAllKeys());
3302
3310
  e.delete(Zt);
3303
3311
  const n = new Set(Object.keys(this.currentValue));
@@ -3418,7 +3426,7 @@ function Dr(t) {
3418
3426
  }, e;
3419
3427
  }, {});
3420
3428
  }
3421
- const Qn = "v0.22.49-experimental.persisted-object-2.19477253536.1";
3429
+ const Qn = "v0.22.49-experimental.persisted-object-2.19477901153.1";
3422
3430
  function Ja(t, e) {
3423
3431
  return {
3424
3432
  info: t ? (...n) => console.info(...n, e()) : () => {
@@ -3939,7 +3947,7 @@ var N = function(t, e, n, r) {
3939
3947
  e.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(t, r[i]) && (n[r[i]] = t[r[i]]);
3940
3948
  return n;
3941
3949
  };
3942
- const _e = {
3950
+ const be = {
3943
3951
  CONNECTING: "connecting",
3944
3952
  OPENED: "opened",
3945
3953
  AUTHENTICATED: "authenticated",
@@ -4009,7 +4017,7 @@ function Vr(t) {
4009
4017
  class mu {
4010
4018
  constructor(e, n = ki, r = Ci, i, s) {
4011
4019
  var o, a, u;
4012
- if (this._isOnline = !0, this._isShutdown = !1, this.status = _e.CONNECTING, this.queryCbs = {}, this.queryOnceDfds = {}, this.authCbs = [], this.attrsCbs = [], this.mutationErrorCbs = [], this.connectionStatusCbs = [], this.mutationDeferredStore = /* @__PURE__ */ 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 = /* @__PURE__ */ new Set(), this._onMergeQuerySub = (d, c, f) => {
4020
+ if (this._isOnline = !0, this._isShutdown = !1, this.status = be.CONNECTING, this.queryCbs = {}, this.queryOnceDfds = {}, this.authCbs = [], this.attrsCbs = [], this.mutationErrorCbs = [], this.connectionStatusCbs = [], this.mutationDeferredStore = /* @__PURE__ */ 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 = /* @__PURE__ */ new Set(), this._onMergeQuerySub = (d, c, f) => {
4013
4021
  const h = c == null ? void 0 : c.result, p = f == null ? void 0 : f.result;
4014
4022
  return h && !p && f && (f.result = h), f || c;
4015
4023
  }, this._onMergeKv = (d, c, f) => {
@@ -4077,7 +4085,7 @@ class mu {
4077
4085
  this._log.info("[socket][open]", c.id, "skip; this is no longer the current transport");
4078
4086
  return;
4079
4087
  }
4080
- this._log.info("[socket][open]", this._transport.id), this._setStatus(_e.OPENED), this.getCurrentUser().then((f) => {
4088
+ this._log.info("[socket][open]", this._transport.id), this._setStatus(be.OPENED), this.getCurrentUser().then((f) => {
4081
4089
  var h;
4082
4090
  this._trySend(B(), {
4083
4091
  op: "init",
@@ -4122,7 +4130,7 @@ class mu {
4122
4130
  this._log.info("[socket][close]", c.id, "skip; this is no longer the current transport");
4123
4131
  return;
4124
4132
  }
4125
- this._setStatus(_e.CLOSED);
4133
+ this._setStatus(be.CLOSED);
4126
4134
  for (const f of Object.values(this._rooms))
4127
4135
  f.isConnected = !1;
4128
4136
  if (this._isShutdown) {
@@ -4147,7 +4155,7 @@ class mu {
4147
4155
  }
4148
4156
  }))), this._initStorage(n), this._oauthCallbackResponse = this._oauthLoginInit(), this.getCurrentUser(), r.getIsOnline().then((d) => {
4149
4157
  this._isOnline = d, this._startSocket(), r.listen((c) => {
4150
- 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", _e.CLOSED), this._setStatus(_e.CLOSED)));
4158
+ 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", be.CLOSED), this._setStatus(be.CLOSED)));
4151
4159
  });
4152
4160
  }), typeof addEventListener < "u" && (this._beforeUnload = this._beforeUnload.bind(this), addEventListener("beforeunload", this._beforeUnload));
4153
4161
  }
@@ -4178,6 +4186,7 @@ class mu {
4178
4186
  },
4179
4187
  this._log,
4180
4188
  {
4189
+ preloadEntryCount: 10,
4181
4190
  gc: {
4182
4191
  maxAgeMs: 1e3 * 60 * 60 * 24 * 7 * 52,
4183
4192
  // 1 year
@@ -4253,7 +4262,7 @@ class mu {
4253
4262
  const d = !!this.config.schema && ("cardinalityInference" in this.config ? !!this.config.cardinalityInference : !0);
4254
4263
  switch (zr[n.op] || this._log.info("[receive]", e, n.op, n), n.op) {
4255
4264
  case "init-ok":
4256
- this._setStatus(_e.AUTHENTICATED), this._reconnectTimeoutMs = 0, this._setAttrs(n.attrs), this._flushPendingMessages(), this._sessionId = n["session-id"];
4265
+ this._setStatus(be.AUTHENTICATED), this._reconnectTimeoutMs = 0, this._setAttrs(n.attrs), this._flushPendingMessages(), this._sessionId = n["session-id"];
4257
4266
  for (const O of Object.keys(this._rooms)) {
4258
4267
  const Q = (i = (r = this._presence[O]) === null || r === void 0 ? void 0 : r.result) === null || i === void 0 ? void 0 : i.user;
4259
4268
  this._tryJoinRoom(O, Q);
@@ -4282,12 +4291,12 @@ class mu {
4282
4291
  O.pendingMutations = P;
4283
4292
  });
4284
4293
  const E = Vr(P.entries()), U = T.map((O) => {
4285
- var Q, we, pe, ue;
4286
- const G = O["instaql-query"], W = O["instaql-result"], Oe = X(G), ft = xr(W), lt = ln(this.attrs, ft, d, this._linkIndex, this.config.useDateObjects), ht = this._applyOptimisticUpdates(lt, E, v), pt = (we = (Q = W == null ? void 0 : W[0]) === null || Q === void 0 ? void 0 : Q.data) === null || we === void 0 ? void 0 : we["page-info"], yt = (ue = (pe = W == null ? void 0 : W[0]) === null || pe === void 0 ? void 0 : pe.data) === null || ue === void 0 ? void 0 : ue.aggregate;
4294
+ var Q, Te, pe, ue;
4295
+ const G = O["instaql-query"], W = O["instaql-result"], Oe = X(G), ft = xr(W), lt = ln(this.attrs, ft, d, this._linkIndex, this.config.useDateObjects), ht = this._applyOptimisticUpdates(lt, E, v), pt = (Te = (Q = W == null ? void 0 : W[0]) === null || Q === void 0 ? void 0 : Q.data) === null || Te === void 0 ? void 0 : Te["page-info"], yt = (ue = (pe = W == null ? void 0 : W[0]) === null || pe === void 0 ? void 0 : pe.data) === null || ue === void 0 ? void 0 : ue.aggregate;
4287
4296
  return { hash: Oe, store: ht, pageInfo: pt, aggregate: yt };
4288
4297
  });
4289
- U.forEach(({ hash: O, store: Q, pageInfo: we, aggregate: pe }) => {
4290
- this.querySubs.updateInPlace((ue) => (ue[O].result = { store: Q, pageInfo: we, aggregate: pe, processedTxId: v }, ue));
4298
+ U.forEach(({ hash: O, store: Q, pageInfo: Te, aggregate: pe }) => {
4299
+ this.querySubs.updateInPlace((ue) => (ue[O].result = { store: Q, pageInfo: Te, aggregate: pe, processedTxId: v }, ue));
4291
4300
  }), this._cleanupPendingMutationsQueries(), U.forEach(({ hash: O }) => {
4292
4301
  this.notifyOne(O);
4293
4302
  });
@@ -4393,7 +4402,7 @@ class mu {
4393
4402
  this.changeCurrentUser(null);
4394
4403
  return;
4395
4404
  }
4396
- this._setStatus(_e.ERRORED, d), this.notifyAll();
4405
+ this._setStatus(be.ERRORED, d), this.notifyAll();
4397
4406
  return;
4398
4407
  }
4399
4408
  const f = Object.assign({}, e);
@@ -4585,7 +4594,7 @@ class mu {
4585
4594
  });
4586
4595
  return;
4587
4596
  }
4588
- if (this.status !== _e.AUTHENTICATED) {
4597
+ if (this.status !== be.AUTHENTICATED) {
4589
4598
  this._finishTransaction("enqueued", e);
4590
4599
  return;
4591
4600
  }
@@ -4639,7 +4648,7 @@ class mu {
4639
4648
  });
4640
4649
  }
4641
4650
  _trySendAuthed(...e) {
4642
- this.status === _e.AUTHENTICATED && this._trySend(...e);
4651
+ this.status === be.AUTHENTICATED && this._trySend(...e);
4643
4652
  }
4644
4653
  _trySend(e, n, r) {
4645
4654
  if (this._transport.isOpen()) {
@@ -5622,7 +5631,7 @@ function Bu() {
5622
5631
  }
5623
5632
  var E = !1, U = !1, F = !1, he = !1, O = !1, Q;
5624
5633
  Q = Symbol.for("react.module.reference");
5625
- function we(l) {
5634
+ function Te(l) {
5626
5635
  return !!(typeof l == "string" || typeof l == "function" || l === i || l === o || O || l === s || l === c || l === f || he || l === _ || E || U || F || typeof l == "object" && l !== null && (l.$$typeof === p || l.$$typeof === h || l.$$typeof === a || l.$$typeof === u || l.$$typeof === d || // This needs to include all possible module reference object
5627
5636
  // types supported by any Flight configuration anywhere since
5628
5637
  // we don't know which Flight build this will end up being used
@@ -6130,7 +6139,7 @@ Check the top-level render call using <` + m + ">.");
6130
6139
  var hr = {};
6131
6140
  function pr(l, b, m, S, M, I) {
6132
6141
  {
6133
- var C = we(l);
6142
+ var C = Te(l);
6134
6143
  if (!C) {
6135
6144
  var j = "";
6136
6145
  (l === void 0 || typeof l == "object" && l !== null && Object.keys(l).length === 0) && (j += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
@@ -6567,7 +6576,7 @@ function Zr(t) {
6567
6576
  }
6568
6577
  var Fi = (t) => {
6569
6578
  throw TypeError(t);
6570
- }, Yn = (t, e, n) => e.has(t) || Fi("Cannot " + n), A = (t, e, n) => (Yn(t, e, "read from private field"), n ? n.call(t) : e.get(t)), K = (t, e, n) => e.has(t) ? Fi("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n), $ = (t, e, n, r) => (Yn(t, e, "write to private field"), e.set(t, n), n), be = (t, e, n) => (Yn(t, e, "access private method"), n), ee, je, De, At, $t, st, Ne, ot, ve, Ue, Ke, Le, tt, ce, An, jn, kn, Xr, Cn, Pn, nt, Mn, In;
6579
+ }, Yn = (t, e, n) => e.has(t) || Fi("Cannot " + n), A = (t, e, n) => (Yn(t, e, "read from private field"), n ? n.call(t) : e.get(t)), K = (t, e, n) => e.has(t) ? Fi("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n), $ = (t, e, n, r) => (Yn(t, e, "write to private field"), e.set(t, n), n), ge = (t, e, n) => (Yn(t, e, "access private method"), n), ee, je, De, At, $t, st, Ne, ot, ve, Ue, Ke, Le, tt, ce, An, jn, kn, Xr, Cn, Pn, nt, Mn, In;
6571
6580
  class jt extends EventTarget {
6572
6581
  constructor(e, n) {
6573
6582
  var r, i;
@@ -6576,15 +6585,15 @@ class jt extends EventTarget {
6576
6585
  A(this, Ue).reset();
6577
6586
  const { body: a, redirected: u, status: d, headers: c } = s;
6578
6587
  if (d === 204) {
6579
- be(this, ce, nt).call(this, "Server sent HTTP 204, not reconnecting", 204), this.close();
6588
+ ge(this, ce, nt).call(this, "Server sent HTTP 204, not reconnecting", 204), this.close();
6580
6589
  return;
6581
6590
  }
6582
6591
  if (u ? $(this, De, new URL(s.url)) : $(this, De, void 0), d !== 200) {
6583
- be(this, ce, nt).call(this, `Non-200 status code (${d})`, d);
6592
+ ge(this, ce, nt).call(this, `Non-200 status code (${d})`, d);
6584
6593
  return;
6585
6594
  }
6586
6595
  if (!(c.get("content-type") || "").startsWith("text/event-stream")) {
6587
- be(this, ce, nt).call(this, 'Invalid content type, expected "text/event-stream"', d);
6596
+ ge(this, ce, nt).call(this, 'Invalid content type, expected "text/event-stream"', d);
6588
6597
  return;
6589
6598
  }
6590
6599
  if (A(this, ee) === this.CLOSED)
@@ -6592,17 +6601,17 @@ class jt extends EventTarget {
6592
6601
  $(this, ee, this.OPEN);
6593
6602
  const f = new Event("open");
6594
6603
  if ((o = A(this, tt)) == null || o.call(this, f), this.dispatchEvent(f), typeof a != "object" || !a || !("getReader" in a)) {
6595
- be(this, ce, nt).call(this, "Invalid response body, expected a web ReadableStream", d), this.close();
6604
+ ge(this, ce, nt).call(this, "Invalid response body, expected a web ReadableStream", d), this.close();
6596
6605
  return;
6597
6606
  }
6598
6607
  const h = new TextDecoder(), p = a.getReader();
6599
6608
  let _ = !0;
6600
6609
  do {
6601
6610
  const { done: y, value: g } = await p.read();
6602
- g && A(this, Ue).feed(h.decode(g, { stream: !y })), y && (_ = !1, A(this, Ue).reset(), be(this, ce, Mn).call(this));
6611
+ g && A(this, Ue).feed(h.decode(g, { stream: !y })), y && (_ = !1, A(this, Ue).reset(), ge(this, ce, Mn).call(this));
6603
6612
  } while (_);
6604
6613
  }), K(this, kn, (s) => {
6605
- $(this, ve, void 0), !(s.name === "AbortError" || s.type === "aborted") && be(this, ce, Mn).call(this, En(s));
6614
+ $(this, ve, void 0), !(s.name === "AbortError" || s.type === "aborted") && ge(this, ce, Mn).call(this, En(s));
6606
6615
  }), K(this, Cn, (s) => {
6607
6616
  typeof s.id == "string" && $(this, ot, s.id);
6608
6617
  const o = new MessageEvent(s.event || "message", {
@@ -6614,7 +6623,7 @@ class jt extends EventTarget {
6614
6623
  }), K(this, Pn, (s) => {
6615
6624
  $(this, st, s);
6616
6625
  }), K(this, In, () => {
6617
- $(this, Ne, void 0), A(this, ee) === this.CONNECTING && be(this, ce, An).call(this);
6626
+ $(this, Ne, void 0), A(this, ee) === this.CONNECTING && ge(this, ce, An).call(this);
6618
6627
  });
6619
6628
  try {
6620
6629
  if (e instanceof URL)
@@ -6629,7 +6638,7 @@ class jt extends EventTarget {
6629
6638
  $(this, Ue, uc({
6630
6639
  onEvent: A(this, Cn),
6631
6640
  onRetry: A(this, Pn)
6632
- })), $(this, ee, this.CONNECTING), $(this, st, 3e3), $(this, $t, (r = n == null ? void 0 : n.fetch) != null ? r : globalThis.fetch), $(this, At, (i = n == null ? void 0 : n.withCredentials) != null ? i : !1), be(this, ce, An).call(this);
6641
+ })), $(this, ee, this.CONNECTING), $(this, st, 3e3), $(this, $t, (r = n == null ? void 0 : n.fetch) != null ? r : globalThis.fetch), $(this, At, (i = n == null ? void 0 : n.withCredentials) != null ? i : !1), ge(this, ce, An).call(this);
6633
6642
  }
6634
6643
  /**
6635
6644
  * Returns the state of this EventSource object's connection. It can have the values described below.
@@ -6708,7 +6717,7 @@ ee = /* @__PURE__ */ new WeakMap(), je = /* @__PURE__ */ new WeakMap(), De = /*
6708
6717
  * @internal
6709
6718
  */
6710
6719
  An = function() {
6711
- $(this, ee, this.CONNECTING), $(this, ve, new AbortController()), A(this, $t)(A(this, je), be(this, ce, Xr).call(this)).then(A(this, jn)).catch(A(this, kn));
6720
+ $(this, ee, this.CONNECTING), $(this, ve, new AbortController()), A(this, $t)(A(this, je), ge(this, ce, Xr).call(this)).then(A(this, jn)).catch(A(this, kn));
6712
6721
  }, jn = /* @__PURE__ */ new WeakMap(), kn = /* @__PURE__ */ new WeakMap(), /**
6713
6722
  * Get request options for the `fetch()` request
6714
6723
  *
@@ -1,5 +1,5 @@
1
- (function(Q,C){typeof exports=="object"&&typeof module<"u"?C(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],C):(Q=typeof globalThis<"u"?globalThis:Q||self,C(Q.instantReact={},Q.React))})(this,function(Q,C){"use strict";function ee(t){if(typeof t=="number")return(Math.abs(t*2654435761)>>>0).toString(16);if(typeof t=="boolean")return t?"1":"0";if(t===null)return"null";if(t===void 0)return"undefined";if(typeof t=="string"){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24),e=e>>>0;return e.toString(16)}if(Array.isArray(t)){let e=2166136261;for(let n=0;n<t.length;n++){e^=(n+1)*2654435761;const r=ee(t[n]);for(let i=0;i<r.length;i++)e^=r.charCodeAt(i),e*=16777619,e=e>>>0}return e.toString(16)}if(typeof t=="object"){let e=2166136261;const n=Object.keys(t).sort();for(let r=0;r<n.length;r++){const i=n[r],s=ee(i);e^=parseInt(s,16),e*=16777619,e=e>>>0;const o=ee(t[i]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return ee(String(t))}const $={Remove:"remove",Replace:"replace",Add:"add"},Qn=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Li=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),lt=Symbol.iterator,oe={mutable:"mutable",immutable:"immutable"},Kt={};function Qe(t,e){return t instanceof Map?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Yn(t,e){if(e in t){let n=Reflect.getPrototypeOf(t);for(;n;){const r=Reflect.getOwnPropertyDescriptor(n,e);if(r)return r;n=Reflect.getPrototypeOf(n)}}}function Wt(t){return Object.getPrototypeOf(t)===Set.prototype}function zt(t){return Object.getPrototypeOf(t)===Map.prototype}function ae(t){var e;return(e=t.copy)!==null&&e!==void 0?e:t.original}function Ee(t){return!!k(t)}function k(t){return typeof t!="object"?null:t==null?void 0:t[Qn]}function Vt(t){var e;const n=k(t);return n?(e=n.copy)!==null&&e!==void 0?e:n.original:t}function de(t,e){if(!t||typeof t!="object")return!1;let n;return Object.getPrototypeOf(t)===Object.prototype||Array.isArray(t)||t instanceof Map||t instanceof Set||!!(e!=null&&e.mark)&&((n=e.mark(t,oe))===oe.immutable||typeof n=="function")}function Hn(t,e=[]){if(Object.hasOwnProperty.call(t,"key")){const n=t.parent.copy,r=k(ge(n,t.key));if(r!==null&&(r==null?void 0:r.original)!==t.original)return null;const i=t.parent.type===3,s=i?Array.from(t.parent.setMap.keys()).indexOf(t.key):t.key;if(!(i&&n.size>s||Qe(n,s)))return null;e.push(s)}if(t.parent)return Hn(t.parent,e);e.reverse();try{Ni(t.copy,e)}catch{return null}return e}function Ae(t){return Array.isArray(t)?1:t instanceof Map?2:t instanceof Set?3:0}function ge(t,e){return Ae(t)===2?t.get(e):t[e]}function Ye(t,e,n){Ae(t)===2?t.set(e,n):t[e]=n}function qt(t,e){const n=k(t);return(n?ae(n):t)[e]}function me(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function Gt(t){if(t)for(;t.finalities.revoke.length>0;)t.finalities.revoke.pop()()}function ke(t,e){return e?t:[""].concat(t).map(n=>{const r=`${n}`;return r.indexOf("/")===-1&&r.indexOf("~")===-1?r:r.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")}function Ni(t,e){for(let n=0;n<e.length-1;n+=1){const r=e[n];if(t=ge(Ae(t)===3?Array.from(t):t,r),typeof t!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return t}function Fi(t){const e=Object.create(Object.getPrototypeOf(t));return Reflect.ownKeys(t).forEach(n=>{let r=Reflect.getOwnPropertyDescriptor(t,n);if(r.enumerable&&r.configurable&&r.writable){e[n]=t[n];return}r.writable||(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(r={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[n]}),Reflect.defineProperty(e,n,r)}),e}const Ki=Object.prototype.propertyIsEnumerable;function Jn(t,e){let n;if(Array.isArray(t))return Array.prototype.concat.call(t);if(t instanceof Set){if(!Wt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t.values())}return Set.prototype.difference?Set.prototype.difference.call(t,new Set):new Set(t.values())}else if(t instanceof Map){if(!zt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t)}return new Map(t)}else if(e!=null&&e.mark&&(n=e.mark(t,oe),n!==void 0)&&n!==oe.mutable){if(n===oe.immutable)return Fi(t);if(typeof n=="function"){if(e.enablePatches||e.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 t=="object"&&Object.getPrototypeOf(t)===Object.prototype){const r={};return Object.keys(t).forEach(i=>{r[i]=t[i]}),Object.getOwnPropertySymbols(t).forEach(i=>{Ki.call(t,i)&&(r[i]=t[i])}),r}else throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function H(t){t.copy||(t.copy=Jn(t.original,t.options))}function He(t){if(!de(t))return Vt(t);if(Array.isArray(t))return t.map(He);if(t instanceof Map){const n=Array.from(t.entries()).map(([r,i])=>[r,He(i)]);if(!zt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Map(n)}if(t instanceof Set){const n=Array.from(t).map(He);if(!Wt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Set(n)}const e=Object.create(Object.getPrototypeOf(t));for(const n in t)e[n]=He(t[n]);return e}function ht(t){return Ee(t)?He(t):t}function ye(t){var e;t.assignedMap=(e=t.assignedMap)!==null&&e!==void 0?e:new Map,t.operated||(t.operated=!0,t.parent&&ye(t.parent))}function Zn(){throw new Error("Cannot modify frozen object")}function Re(t,e,n,r,i){{n=n??new WeakMap,r=r??[],i=i??[];const o=n.has(t)?n.get(t):t;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(e)}else r.push(o)}if(Object.isFrozen(t)||Ee(t)){r.pop(),i.pop();return}switch(Ae(t)){case 2:for(const[a,u]of t)Re(a,a,n,r,i),Re(u,a,n,r,i);t.set=t.clear=t.delete=Zn;break;case 3:for(const a of t)Re(a,a,n,r,i);t.add=t.clear=t.delete=Zn;break;case 1:Object.freeze(t);let o=0;for(const a of t)Re(a,o,n,r,i),o+=1;break;default:Object.freeze(t),Object.keys(t).forEach(a=>{const u=t[a];Re(u,a,n,r,i)})}r.pop(),i.pop()}function Bt(t,e){const n=Ae(t);if(n===0)Reflect.ownKeys(t).forEach(r=>{e(r,t[r],t)});else if(n===1){let r=0;for(const i of t)e(r,i,t),r+=1}else t.forEach((r,i)=>e(i,r,t))}function Xn(t,e,n){if(Ee(t)||!de(t,n)||e.has(t)||Object.isFrozen(t))return;const r=t instanceof Set,i=r?new Map:void 0;if(e.add(t),Bt(t,(s,o)=>{var a;if(Ee(o)){const u=k(o);H(u);const d=!((a=u.assignedMap)===null||a===void 0)&&a.size||u.operated?u.copy:u.original;Ye(r?i:t,s,d)}else Xn(o,e,n)}),i){const s=t,o=Array.from(s);s.clear(),o.forEach(a=>{s.add(i.has(a)?i.get(a):a)})}}function Wi(t,e){const n=t.type===3?t.setMap:t.copy;t.finalities.revoke.length>1&&t.assignedMap.get(e)&&n&&Xn(ge(n,e),t.finalities.handledSet,t.options)}function Qt(t){t.type===3&&t.copy&&(t.copy.clear(),t.setMap.forEach(e=>{t.copy.add(Vt(e))}))}function Yt(t,e,n,r){if(t.operated&&t.assignedMap&&t.assignedMap.size>0&&!t.finalized){if(n&&r){const s=Hn(t);s&&e(t,s,n,r)}t.finalized=!0}}function Ht(t,e,n,r){const i=k(n);i&&(i.callbacks||(i.callbacks=[]),i.callbacks.push((s,o)=>{var a;const u=t.type===3?t.setMap:t.copy;if(me(ge(u,e),n)){let d=i.original;i.copy&&(d=i.copy),Qt(t),Yt(t,r,s,o),t.options.enableAutoFreeze&&(t.options.updatedValues=(a=t.options.updatedValues)!==null&&a!==void 0?a:new WeakMap,t.options.updatedValues.set(d,i.original)),Ye(u,e,d)}}),t.options.enableAutoFreeze&&i.finalities!==t.finalities&&(t.options.enableAutoFreeze=!1)),de(n,t.options)&&t.finalities.draft.push(()=>{const s=t.type===3?t.setMap:t.copy;me(ge(s,e),n)&&Wi(t,e)})}function zi(t,e,n,r,i){let{original:s,assignedMap:o,options:a}=t,u=t.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=e.concat([d]),f=ke(c,i);n.push({op:$.Replace,path:f,value:ht(u[d])}),r.push({op:$.Replace,path:f,value:ht(s[d])})}for(let d=s.length;d<u.length;d+=1){const c=e.concat([d]),f=ke(c,i);n.push({op:$.Add,path:f,value:ht(u[d])})}if(s.length<u.length){const{arrayLengthAssignment:d=!0}=a.enablePatches;if(d){const c=e.concat(["length"]),f=ke(c,i);r.push({op:$.Replace,path:f,value:s.length})}else for(let c=u.length;s.length<c;c-=1){const f=e.concat([c-1]),h=ke(f,i);r.push({op:$.Remove,path:h})}}}function Vi({original:t,copy:e,assignedMap:n},r,i,s,o){n.forEach((a,u)=>{const d=ge(t,u),c=ht(ge(e,u)),f=a?Qe(t,u)?$.Replace:$.Add:$.Remove;if(me(d,c)&&f===$.Replace)return;const h=r.concat(u),p=ke(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 qi({original:t,copy:e},n,r,i,s){let o=0;t.forEach(a=>{if(!e.has(a)){const u=n.concat([o]),d=ke(u,s);r.push({op:$.Remove,path:d,value:a}),i.unshift({op:$.Add,path:d,value:a})}o+=1}),o=0,e.forEach(a=>{if(!t.has(a)){const u=n.concat([o]),d=ke(u,s);r.push({op:$.Add,path:d,value:a}),i.unshift({op:$.Remove,path:d,value:a})}o+=1})}function Je(t,e,n,r){const{pathAsArray:i=!0}=t.options.enablePatches;switch(t.type){case 0:case 2:return Vi(t,e,n,r,i);case 1:return zi(t,e,n,r,i);case 3:return qi(t,e,n,r,i)}}const pt=(t,e,n=!1)=>{if(typeof t=="object"&&t!==null&&(!de(t,e)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},Jt={get size(){return ae(k(this)).size},has(t){return ae(k(this)).has(t)},set(t,e){const n=k(this),r=ae(n);return(!r.has(t)||!me(r.get(t),e))&&(H(n),ye(n),n.assignedMap.set(t,!0),n.copy.set(t,e),Ht(n,t,e,Je)),this},delete(t){if(!this.has(t))return!1;const e=k(this);return H(e),ye(e),e.original.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.copy.delete(t),!0},clear(){const t=k(this);if(this.size){H(t),ye(t),t.assignedMap=new Map;for(const[e]of t.original)t.assignedMap.set(e,!1);t.copy.clear()}},forEach(t,e){const n=k(this);ae(n).forEach((r,i)=>{t.call(e,this.get(i),i,this)})},get(t){var e,n;const r=k(this),i=ae(r).get(t),s=((n=(e=r.options).mark)===null||n===void 0?void 0:n.call(e,i,oe))===oe.mutable;if(r.options.strict&&pt(i,r.options,s),s||r.finalized||!de(i,r.options)||i!==r.original.get(t))return i;const o=Kt.createDraft({original:i,parentDraft:r,key:t,finalities:r.finalities,options:r.options});return H(r),r.copy.set(t,o),o},keys(){return ae(k(this)).keys()},values(){const t=this.keys();return{[lt]:()=>this.values(),next:()=>{const e=t.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const t=this.keys();return{[lt]:()=>this.entries(),next:()=>{const e=t.next();if(e.done)return e;const n=this.get(e.value);return{done:!1,value:[e.value,n]}}}},[lt](){return this.entries()}},Gi=Reflect.ownKeys(Jt),er=(t,e,{isValuesIterator:n})=>()=>{var r,i;const s=e.next();if(s.done)return s;const o=s.value;let a=t.setMap.get(o);const u=k(a),d=((i=(r=t.options).mark)===null||i===void 0?void 0:i.call(r,a,oe))===oe.mutable;if(t.options.strict&&pt(o,t.options,d),!d&&!u&&de(o,t.options)&&!t.finalized&&t.original.has(o)){const c=Kt.createDraft({original:o,parentDraft:t,key:o,finalities:t.finalities,options:t.options});t.setMap.set(o,c),a=c}else u&&(a=u.proxy);return{done:!1,value:n?a:[a,a]}},yt={get size(){return k(this).setMap.size},has(t){const e=k(this);if(e.setMap.has(t))return!0;H(e);const n=k(t);return!!(n&&e.setMap.has(n.original))},add(t){const e=k(this);return this.has(t)||(H(e),ye(e),e.assignedMap.set(t,!0),e.setMap.set(t,t),Ht(e,t,t,Je)),this},delete(t){if(!this.has(t))return!1;const e=k(this);H(e),ye(e);const n=k(t);return n&&e.setMap.has(n.original)?(e.assignedMap.set(n.original,!1),e.setMap.delete(n.original)):(!n&&e.setMap.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.setMap.delete(t))},clear(){if(!this.size)return;const t=k(this);H(t),ye(t);for(const e of t.original)t.assignedMap.set(e,!1);t.setMap.clear()},values(){const t=k(this);H(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:er(t,e,{isValuesIterator:!0})}},entries(){const t=k(this);H(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:er(t,e,{isValuesIterator:!1})}},keys(){return this.values()},[lt](){return this.values()},forEach(t,e){const n=this.values();let r=n.next();for(;!r.done;)t.call(e,r.value,r.value,this),r=n.next()}};Set.prototype.difference&&Object.assign(yt,{intersection(t){return Set.prototype.intersection.call(new Set(this.values()),t)},union(t){return Set.prototype.union.call(new Set(this.values()),t)},difference(t){return Set.prototype.difference.call(new Set(this.values()),t)},symmetricDifference(t){return Set.prototype.symmetricDifference.call(new Set(this.values()),t)},isSubsetOf(t){return Set.prototype.isSubsetOf.call(new Set(this.values()),t)},isSupersetOf(t){return Set.prototype.isSupersetOf.call(new Set(this.values()),t)},isDisjointFrom(t){return Set.prototype.isDisjointFrom.call(new Set(this.values()),t)}});const Bi=Reflect.ownKeys(yt),tr=new WeakSet,nr={get(t,e,n){var r,i;const s=(r=t.copy)===null||r===void 0?void 0:r[e];if(s&&tr.has(s))return s;if(e===Qn)return t;let o;if(t.options.mark){const d=e==="size"&&(t.original instanceof Map||t.original instanceof Set)?Reflect.get(t.original,e):Reflect.get(t.original,e,n);if(o=t.options.mark(d,oe),o===oe.mutable)return t.options.strict&&pt(d,t.options,!0),d}const a=ae(t);if(a instanceof Map&&Gi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Jt,"size").get.call(t.proxy);const d=Jt[e];if(d)return d.bind(t.proxy)}if(a instanceof Set&&Bi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(yt,"size").get.call(t.proxy);const d=yt[e];if(d)return d.bind(t.proxy)}if(!Qe(a,e)){const d=Yn(a,e);return d?"value"in d?d.value:(i=d.get)===null||i===void 0?void 0:i.call(t.proxy):void 0}const u=a[e];if(t.options.strict&&pt(u,t.options),t.finalized||!de(u,t.options))return u;if(u===qt(t.original,e)){if(H(t),t.copy[e]=Zt({original:t.original[e],parentDraft:t,key:t.type===1?Number(e):e,finalities:t.finalities,options:t.options}),typeof o=="function"){const d=k(t.copy[e]);return H(d),ye(d),d.copy}return t.copy[e]}return u},set(t,e,n){var r;if(t.type===3||t.type===2)throw new Error("Map/Set draft does not support any property assignment.");let i;if(t.type===1&&e!=="length"&&!(Number.isInteger(i=Number(e))&&i>=0&&(e===0||i===0||String(i)===String(e))))throw new Error("Only supports setting array indices and the 'length' property.");const s=Yn(ae(t),e);if(s!=null&&s.set)return s.set.call(t.proxy,n),!0;const o=qt(ae(t),e),a=k(o);return a&&me(a.original,n)?(t.copy[e]=n,t.assignedMap=(r=t.assignedMap)!==null&&r!==void 0?r:new Map,t.assignedMap.set(e,!1),!0):(me(n,o)&&(n!==void 0||Qe(t.original,e))||(H(t),ye(t),Qe(t.original,e)&&me(n,t.original[e])?t.assignedMap.delete(e):t.assignedMap.set(e,!0),t.copy[e]=n,Ht(t,e,n,Je)),!0)},has(t,e){return e in ae(t)},ownKeys(t){return Reflect.ownKeys(ae(t))},getOwnPropertyDescriptor(t,e){const n=ae(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.type!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},getPrototypeOf(t){return Reflect.getPrototypeOf(t.original)},setPrototypeOf(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty(t,e){var n;return t.type===1?nr.set.call(this,t,e,void 0,t.proxy):(qt(t.original,e)!==void 0||e in t.original?(H(t),ye(t),t.assignedMap.set(e,!1)):(t.assignedMap=(n=t.assignedMap)!==null&&n!==void 0?n:new Map,t.assignedMap.delete(e)),t.copy&&delete t.copy[e],!0)}};function Zt(t){const{original:e,parentDraft:n,key:r,finalities:i,options:s}=t,o=Ae(e),a={type:o,finalized:!1,parent:n,original:e,copy:null,proxy:null,finalities:i,options:s,setMap:o===3?new Map(e.entries()):void 0};(r||"key"in t)&&(a.key=r);const{proxy:u,revoke:d}=Proxy.revocable(o===1?Object.assign([],a):a,nr);if(i.revoke.push(d),tr.add(u),a.proxy=u,n){const c=n;c.finalities.draft.push((f,h)=>{var p,_;const y=k(u);let g=c.type===3?c.setMap:c.copy;const T=ge(g,r),w=k(T);if(w){let v=w.original;w.operated&&(v=Vt(T)),Qt(w),Yt(w,Je,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)),Ye(g,r,v)}(_=y.callbacks)===null||_===void 0||_.forEach(v=>{v(f,h)})})}else{const c=k(u);c.finalities.draft.push((f,h)=>{Qt(c),Yt(c,Je,f,h)})}return u}Kt.createDraft=Zt;function Qi(t,e,n,r,i){var s;const o=k(t),a=(s=o==null?void 0:o.original)!==null&&s!==void 0?s:t,u=!!e.length;if(o!=null&&o.operated)for(;o.finalities.draft.length>0;)o.finalities.draft.pop()(n,r);const d=u?e[0]:o?o.operated?o.copy:o.original:t;return o&&Gt(o),i&&Re(d,d,o==null?void 0:o.options.updatedValues),[d,n&&u?[{op:$.Replace,path:[],value:e[0]}]:n,r&&u?[{op:$.Replace,path:[],value:a}]:r]}function Yi(t,e){var n;const r={draft:[],revoke:[],handledSet:new WeakSet};let i,s;e.enablePatches&&(i=[],s=[]);const a=((n=e.mark)===null||n===void 0?void 0:n.call(e,t,oe))===oe.mutable||!de(t,e)?t:Zt({original:t,parentDraft:null,finalities:r,options:e});return[a,(u=[])=>{const[d,c,f]=Qi(a,u,i,s,e.enableAutoFreeze);return e.enablePatches?[d,c,f]:d}]}function Xt(t){const{rootDraft:e,value:n,useRawReturn:r=!1,isRoot:i=!0}=t;Bt(n,(s,o,a)=>{const u=k(o);if(u&&e&&u.finalities===e.finalities){t.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 Ye(a,s,d)}else typeof o=="object"&&o!==null&&(t.value=o,t.isRoot=!1,Xt(t))}),i&&(t.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 rr(t){var e;const n=k(t);if(!de(t,n==null?void 0:n.options))return t;const r=Ae(t);if(n&&!n.operated)return n.original;let i;function s(){i=r===2?zt(t)?new Map(t):new(Object.getPrototypeOf(t)).constructor(t):r===3?Array.from(n.setMap.values()):Jn(t,n==null?void 0:n.options)}if(n){n.finalized=!0;try{s()}finally{n.finalized=!1}}else i=t;if(Bt(i,(o,a)=>{if(n&&me(ge(n.original,o),a))return;const u=rr(a);u!==a&&(i===t&&s(),Ye(i,o,u))}),r===3){const o=(e=n==null?void 0:n.original)!==null&&e!==void 0?e:i;return Wt(o)?new Set(i):new(Object.getPrototypeOf(o)).constructor(i)}return i}function ir(t){if(!Ee(t))throw new Error(`current() is only used for Draft, parameter: ${t}`);return rr(t)}const _t=(t=>function e(n,r,i){var s,o,a;if(typeof n=="function"&&typeof r!="function")return function(E,...N){return e(E,W=>n.call(this,W,...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({},t),c);const f=Ee(u)?ir(u):u,h=Array.isArray(c.mark)?(E,N)=>{for(const W of c.mark){if(typeof W!="function")throw new Error(`Invalid mark: ${W}, 'mark' should be a function.`);const _e=W(E,N);if(_e)return _e}}: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]=Yi(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 Gt(k(T)),E}const M=E=>{const N=k(T);if(!Ee(E)){if(E!==void 0&&!me(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 _e=E==null?void 0:E[Li];if(_e){const O=_e[0];return g.strict&&typeof E=="object"&&E!==null&&Xt({rootDraft:N,value:E,useRawReturn:!0}),w([O])}if(E!==void 0)return typeof E=="object"&&E!==null&&Xt({rootDraft:N,value:E}),w([E])}if(E===T||E===void 0)return w([]);const W=k(E);if(g===W.options){if(W.operated)throw new Error("Cannot return a modified child draft.");return w([ir(E)])}return w([E])};return v instanceof Promise?v.then(M,E=>{throw Gt(k(T)),E}):M(v)})();Object.prototype.constructor.toString();function sr(t,e){const n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&Object.keys(t).every(i=>e.hasOwnProperty(i))}function or(t,e){return Object.keys(t).length===Object.keys(e).length&&Object.keys(t).every(n=>e.hasOwnProperty(n)&&t[n]===e[n])}function bt(t,e){return typeof t!="object"||typeof e!="object"||t===null||e===null?t===e:sr(t,e)?Object.keys(t).every(n=>bt(t[n],e[n])):!1}function en(t){if(!Ze(t))return t;const e={};for(const[n,r]of Object.entries(t))r!==void 0&&(e[n]=r);return e}function ar(t,e){if(!Ze(t)||!Ze(e))return e;const n=Object.assign({},t);for(const r of Object.keys(e)){if(e[r]===void 0)continue;if(e[r]===null){delete n[r];continue}const i=Ze(t[r])&&Ze(e[r]);n[r]=i?ar(t[r],e[r]):e[r]}return n}function Ze(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Hi(t,e,n){if(!t||e.length===0)return;let r=t||{};for(let s=0;s<e.length-1;s++){const o=e[s];(!(o in r)||typeof r[o]!="object")&&(r[o]=typeof e[s+1]=="number"?[]:{}),r=r[o]}const i=e[e.length-1];Array.isArray(r)&&typeof i=="number"?r.splice(i,0,n):r[i]=n}function ur(t,e,n){if(!t||e.length===0)return;let r=t||{};for(let i=0;i<e.length-1;i++){const s=e[i];(!(s in r)||typeof r[s]!="object")&&(r[s]=typeof e[i+1]=="number"?[]:{}),r=r[s]}r[e[e.length-1]]=n}function cr(t,e){if(!t||e.length===0)return;const[n,...r]=e;if(n in t){if(r.length===0){Array.isArray(t)?t.splice(n,1):delete t[n];return}cr(t[n],r),Ji(t[n])&&delete t[n]}}function Ji(t){return t&&Object.keys(t).length===0}const dr=/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$/,Zi={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 Xi(t){return new Date(t)}function es(t){return new Date(t+"Z")}const ts=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function ns(t){const e=t.match(ts);if(!e)return null;const[n,r,i,s]=e;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 rs(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function is(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ss(t){return new Date(t)}function os(t){const e=/^(\w{3}) (\w{3}) (\d{2}) (\d{4})$/;if(!t.match(e))throw new Error(`Unable to parse \`${t}\` as a date.`);const r=new Date(t+" UTC");return new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),0,0,0,0))}function as(t){const e=/^(.+T.+)([+-])(\d{2})$/,n=t.match(e);if(n){const[,r,i,s]=n,o=`${r}${i}${s}:00`;return new Date(o)}return null}function us(t){const[e,n]=t.split(", "),[r,i,s]=e.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: ${t}`);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 cs(t){switch(t){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function ds(t){const e=t.match(dr);if(!e)return null;const[n]=e,r=Zi[n],i=new Date(t.replace(dr,"Z"));return new Date(i.getTime()-r*1e3)}const fs=[ns,is,os,us,ss,es,as,rs,Xi,cs,ds];function ls(t,e){try{const n=t(e);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function tn(t){for(const e of fs){const n=ls(e,t);if(n)return n}return null}function hs(t){try{const e=JSON.parse(t);return typeof e=="string"?tn(e):null}catch{return null}}function gt(t){if(t!==void 0){if(t===null)return null;if(t instanceof Date)return t;if(typeof t=="string"){const e=tn(t)||hs(t)||tn(t.trim());if(!e)throw new Error(`Unable to parse \`${t}\` as a date.`);return e}else if(typeof t=="number")return new Date(t);throw new Error(`Invalid date value \`${t}\`. Expected a date, number, or string, got type ${typeof t}.`)}}function ps(t){return t.cardinality==="one"}function nn(t){return t["value-type"]==="ref"}function rn(t){return t["value-type"]==="blob"}function xe(t,e){return t[e]}function mt(t,e){return e.reduce((n,r)=>n&&n.get(r),t)}function fe(t,e){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.delete(e[0]);return}const[n,...r]=e;t.has(n)&&fe(t.get(n),r)}function te(t,e,n){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.set(e[0],n);return}const[r,...i]=e;let s=t.get(r);s||(s=new Map,t.set(r,s)),te(s,i,n)}function fr(t,e,n){const r=new Map,i=new Map,s=new Map;for(const o of e){let[a,u,d,c]=o;const f=xe(t,u);if(!f){console.warn("no such attr",a,t);continue}f["checked-data-type"]==="date"&&n&&(d=gt(d),o[2]=d),nn(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 lr(t){const e=new Map,n=new Map,r=new Map,i=new Map;for(const s of Object.values(t)){const o=s["forward-identity"],[a,u,d]=o,c=s["reverse-identity"];if(te(r,[u,d],s),rn(s)&&te(e,[u,d],s),s["primary?"]&&te(n,[u],s),c){const[f,h,p]=c;te(i,[h,p],s)}}return{blobAttrs:e,primaryKeys:n,forwardIdents:r,revIdents:i}}function ys(t){return{__type:t.__type,attrs:t.attrs,triples:ne(t.eav,3),cardinalityInference:t.cardinalityInference,linkIndex:t.linkIndex,useDateObjects:t.useDateObjects}}function _s(t){return on(t.attrs,t.triples,t.cardinalityInference,t.linkIndex,t.useDateObjects)}function sn(t){t.attrIndexes=lr(t.attrs)}function on(t,e,n,r,i){const s=fr(t,e,i);return s.useDateObjects=i,s.attrs=t,s.attrIndexes=lr(t),s.cardinalityInference=n,s.linkIndex=r,s.__type="store",s}function Xe(t,e){var n,r;let i;if(Array.isArray(e[0])){const[o,a]=e[0],u=t.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=e[0];if(!i)return null;const s=e[2];if(Array.isArray(s)&&s.length===2&&t.aev.get(s[0])){const[o,a]=s,u=t.aev.get(o);if(!u)return null;const c=(r=ne(u,2).find(y=>y[2]===a))===null||r===void 0?void 0:r[0];if(!c)return null;const[f,h,p,..._]=e;return[i,h,c,..._]}else{const[o,...a]=e;return[i,...a]}}function bs(t,e){const n=Xe(t,e);if(!n)return;const[r,i,s]=n,o=xe(t.attrs,i);o&&(fe(t.eav,[r,i,s]),fe(t.aev,[i,r,s]),nn(o)&&fe(t.vae,[s,i,r]))}let gs=0;function hr(t,e,n){const[r,i,s]=n;let o;const a=mt(t.ea,[r,i,s]);return a&&(o=a[3]),o||Date.now()*10+gs++}function ms(t,e){var n;const r=Xe(t,e);if(!r)return;let[i,s,o]=r;const a=xe(t.attrs,s);if(!a)return;a["checked-data-type"]==="date"&&t.useDateObjects&&(o=gt(o));const u=mt(t.eav,[i,s,o]),d=(n=u==null?void 0:u[3])!==null&&n!==void 0?n:hr(t,a,r),c=[i,s,o,d];ps(a)?(te(t.eav,[i,s],new Map([[o,c]])),te(t.aev,[s,i],new Map([[o,c]]))):(te(t.eav,[i,s,o],c),te(t.aev,[s,i,o],c)),nn(a)&&te(t.vae,[o,s,i],c)}function ws(t,e){var n;const r=Xe(t,e);if(!r)return;const[i,s,o]=r,a=xe(t.attrs,s);if(!a)return;if(!rn(a))throw new Error("merge operation is not supported for links");const u=mt(t.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=ar(c,o),h=[i,s,f,hr(t,a,d)];te(t.eav,[i,s],new Map([[f,h]]))}function an(t,e){var n,r;const[i,s]=e,o=Xe(t,[i]);if(!o)return;const[a]=o,u=t.eav.get(a);if(u){for(const c of u.keys()){const f=t.attrs[c];f&&f["on-delete-reverse"]==="cascade"&&ne(u.get(c),1).forEach(([h,p,_])=>{var y;return an(t,[_,(y=f["reverse-identity"])===null||y===void 0?void 0:y[1]])}),(!s||!f||((n=f["forward-identity"])===null||n===void 0?void 0:n[1])===s)&&(fe(t.aev,[c,a]),fe(t.eav,[a,c]))}u.size===0&&fe(t.eav,[a])}const d=t.vae.get(a)&&ne(t.vae.get(a),2);d&&d.forEach(c=>{var f,h,p;const[_,y,g]=c,T=t.attrs[y];(!s||!T||((f=T["reverse-identity"])===null||f===void 0?void 0:f[1])===s)&&(fe(t.eav,[_,y,g]),fe(t.aev,[y,_,g]),fe(t.vae,[g,y,_])),T&&T["on-delete"]==="cascade"&&((h=T["reverse-identity"])===null||h===void 0?void 0:h[1])===s&&an(t,[_,(p=T["forward-identity"])===null||p===void 0?void 0:p[1]])}),((r=t.vae.get(a))===null||r===void 0?void 0:r.size)===0&&fe(t.vae,[a])}function pr(t,e){const n=fr(t.attrs,e,t.useDateObjects);Object.keys(n).forEach(r=>{t[r]=n[r]})}function Ts(t,[e]){t.attrs[e.id]=e,sn(t)}function yr(t){return ne(t.eav,3)}function vs(t,[e]){if(!t.attrs[e])return;const n=yr(t).filter(([r,i])=>i!==e);delete t.attrs[e],sn(t),pr(t,n)}function Ss(t,[e]){const n=t.attrs[e.id];n&&(t.attrs[e.id]=Object.assign(Object.assign({},n),e),sn(t),pr(t,yr(t)))}function Os(t,e){const[n,...r]=e;switch(n){case"add-triple":ms(t,r);break;case"deep-merge-triple":ws(t,r);break;case"retract-triple":bs(t,r);break;case"delete-entity":an(t,r);break;case"add-attr":Ts(t,r);break;case"delete-attr":vs(t,r);break;case"update-attr":Ss(t,r);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${n}`)}}function ne(t,e,n=[]){if(!t||e===0)return n;if(e===1){for(const r of t.values())n.push(r);return n}for(const r of t.values())ne(r,e-1,n);return n}function wt(t,e,n){var r,i;const s=[];if(n!=null&&n.hasOwnProperty("$not")){for(const a of e.keys())n.$not!==a&&s.push(e.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 e.keys()){const f=t.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(e.get(c))}else{const c=t.aev.get(a);for(const f of e.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(e.get(f))}}return s}if(n!=null&&n.$comparator)return ne(e,1).filter(n.$op);const o=n.in||n.$in||[n];for(const a of o){const u=e.get(a);u&&s.push(u)}return s}function Es(t,e,n){let r="";return t!==void 0&&(r+="e"),e!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function As(t,[e,n,r]){var i,s;switch(Es(e,n,r)){case"e":{const a=t.eav.get(e);return ne(a,2)}case"ea":{const a=(i=t.eav.get(e))===null||i===void 0?void 0:i.get(n);return ne(a,1)}case"eav":{const a=(s=t.eav.get(e))===null||s===void 0?void 0:s.get(n);return a?wt(t,a,r):[]}case"ev":{const a=t.eav.get(e);if(!a)return[];const u=[];for(const d of a.values())u.push(...wt(t,d,r));return u}case"a":{const a=t.aev.get(n);return ne(a,2)}case"av":{const a=t.aev.get(n);if(!a)return[];const u=[];for(const d of a.values())u.push(...wt(t,d,r));return u}case"v":{const a=[];for(const u of t.eav.values())for(const d of u.values())a.push(...wt(t,d,r));return a}default:return ne(t.eav,3)}}function ks(t,e,n){var r;const i={};for(const[s,o]of e.entries()){const a=(r=t.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 De(t,e,n){var r;return(r=t.attrIndexes.forwardIdents.get(e))===null||r===void 0?void 0:r.get(n)}function _r(t,e,n){var r;return(r=t.attrIndexes.revIdents.get(e))===null||r===void 0?void 0:r.get(n)}function js(t,e){return t.attrIndexes.blobAttrs.get(e)}function br(t,e){var n;const r=t.attrIndexes.primaryKeys.get(e);return r||((n=t.attrIndexes.forwardIdents.get(e))===null||n===void 0?void 0:n.get("id"))}function Cs(t,e){const n=Xe(t,e);if(!n)return;const[r,i,s]=n;if(xe(t.attrs,i))return mt(t.eav,[r,i])}function Ps(t,e){const n=e.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=xe(t.attrs,s);if(c){const f=br(t,c["forward-identity"][1]);d=!!Cs(t,[i,f.id,i])}return!(u==="create"&&d||u==="update"&&!d)});return _t(t,r=>{n.forEach(i=>{Os(r,i)})})}function Ms(t){return typeof t=="string"&&t.startsWith("?")}function Is(t,e,n){if(n.hasOwnProperty(t)){const r=n[t];return mr(r,e,n)}return Object.assign(Object.assign({},n),{[t]:e})}function gr(t,e,n){return t===e?n:null}function Rs(t){switch(typeof t){case"string":return t.startsWith("?")?Is:gr;default:return gr}}const xs=["in","$in","$not","$isNull","$comparator"];function Ds(t){for(const e of xs)if(t.hasOwnProperty(e))return!0;return!1}function mr(t,e,n){return n?typeof t=="object"?Ds(t)?n:null:Rs(t)(t,e,n):null}function $s(t,e,n){return t.reduce((r,i,s)=>{const o=e[s];return mr(i,o,r)},n)}function Us(t,e,n){return Fs(t,e,n).map(r=>$s(e,r,n)).filter(r=>r)}function Ls(t,e,n){return e.or?e.or.patterns.flatMap(r=>un(t,r,n)):e.and?e.and.patterns.reduce((r,i)=>un(t,i,r),n):n.flatMap(r=>Us(t,e,r))}function un(t,e,n=[{}]){return e.reduce((r,i)=>Ls(t,i,r),n)}function cn(t,e){return Array.isArray(e)?e.map(n=>cn(t,n)):Ms(e)?t[e]:e}function Ns(t,{find:e,where:n}){return un(t,n).map(i=>cn(i,e))}function Fs(t,e,n){return As(t,cn(n,e))}const Ks=/^(?:[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 $e(t){return typeof t=="string"&&Ks.test(t)}const V=[];for(let t=0;t<256;++t)V.push((t+256).toString(16).slice(1));function Ws(t,e=0){return(V[t[e+0]]+V[t[e+1]]+V[t[e+2]]+V[t[e+3]]+"-"+V[t[e+4]]+V[t[e+5]]+"-"+V[t[e+6]]+V[t[e+7]]+"-"+V[t[e+8]]+V[t[e+9]]+"-"+V[t[e+10]]+V[t[e+11]]+V[t[e+12]]+V[t[e+13]]+V[t[e+14]]+V[t[e+15]]).toLowerCase()}let dn;const zs=new Uint8Array(16);function Vs(){if(!dn){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");dn=crypto.getRandomValues.bind(crypto)}return dn(zs)}const wr={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function qs(t,e,n){var i;if(wr.randomUUID&&!t)return wr.randomUUID();t=t||{};const r=t.random??((i=t.rng)==null?void 0:i.call(t))??Vs();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,Ws(r)}function Tr(t){const e=t.replace(/-/g,""),n=[];for(let r=0;r<e.length;r+=2)n.push(parseInt(e.substring(r,r+2),16));return n}function Gs(t,e){for(let n=0;n<t.length;n++){if(t[n]<e[n])return-1;if(t[n]>e[n])return 1}return 0}function Bs(t,e){return Gs(Tr(t),Tr(e))}function q(){return qs()}function Qs(t,e){return t.localeCompare(e)}function Ys(){let t=Qs;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{t=Intl.Collator("en-US").compare}catch{}return t}const Hs=Ys();let Js=0;function et(t){return Tt(`_${t}`,Js++)}function Tt(t,e){return`?${t}-${e}`}class Ue extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function Zs(t,e){const n=br(t,e);if(!n)throw new Ue(`Could not find id attr for ${e}`);return n}function vr(t,e,n,r){return[Xs(t,e,n,r)]}function Xs(t,e,n,r){return[t(n,r),Zs(e,n).id,t(n,r),t("time",r)]}function eo(t,e,n){return t.map(r=>r===e?n:r)}function Sr(t,e,n,r,i){const s=De(e,n,i),o=_r(e,n,i),a=s||o;if(!a)throw new Ue(`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?[t(d,r),a.id,t(f,h),et("time")]:[t(d,h),a.id,t(f,r),et("time")];return[s?f:d,h,p,a,!!s]}function Or(t,e){if(typeof e!="string")return function(o){return!1};const r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,"."),i=new RegExp(`^${r}$`,t?void 0:"i");return function(o){return typeof o!="string"?!1:i.test(o)}}function to(t,e){if(typeof e!="object"||e.hasOwnProperty("$in")||e.hasOwnProperty("in"))return e;const n=t["checked-data-type"]==="date";if(e.hasOwnProperty("$gt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>new Date(e.$gt)}:function(i){return i[2]>e.$gt}};if(e.hasOwnProperty("$gte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>=new Date(e.$gte)}:function(i){return i[2]>=e.$gte}};if(e.hasOwnProperty("$lt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<new Date(e.$lt)}:function(i){return i[2]<e.$lt}};if(e.hasOwnProperty("$lte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<=new Date(e.$lte)}:function(i){return i[2]<=e.$lte}};if(e.hasOwnProperty("$like")){const r=Or(!0,e.$like);return{$comparator:!0,$op:function(s){return r(s[2])}}}if(e.hasOwnProperty("$ilike")){const r=Or(!1,e.$ilike);return{$comparator:!0,$op:function(s){return r(s[2])}}}return e}function no(t,e,n,r,i,s){const o=De(e,n,i),a=_r(e,n,i),u=o||a;if(!u)throw new Ue(`No attr for etype = ${n} label = ${i}`);if(s!=null&&s.hasOwnProperty("$isNull")){const d=De(e,n,"id");if(!d)throw new Ue(`No attr for etype = ${n} label = id`);return[t(n,r),d.id,{$isNull:{attrId:u.id,isNull:s.$isNull,reverse:!o}},et("time")]}return o?[t(n,r),u.id,to(u,s),et("time")]:[s,u.id,t(n,r),et("time")]}function ro(t,e,n,r,i){const[s,o,a]=i.reduce((u,d)=>{const[c,f,h]=u,[p,_,y]=Sr(t,e,c,f,d);return[p,_,[...h,y]]},[n,r,[]]);return[s,o,a]}function fn(t,e,n,r,i,s){const o=i.slice(0,i.length-1),a=i[i.length-1],[u,d,c]=ro(t,e,n,r,o),f=no(t,e,u,d,a,s);return c.concat([f])}function io(t,e){return e?[e].concat(t):t}function so([t,e]){return t==="or"&&Array.isArray(e)}function oo([t,e]){return t==="and"&&Array.isArray(e)}function ao(t,e,n){return(r,i)=>{const s=t(r,i);return e==s?s:`${s}-${n}`}}function Er(t,e,n,r,i,s){const o=t(r,i),a=s.map((u,d)=>{const c=ao(t,o,d);return kr(c,n,r,i,u)});return{[e]:{patterns:a,joinSym:o}}}function uo(t){const e=[];for(let n=1;n<=t.length;n++)e.push(t.slice(0,n));return e}function Ar(t,e,n,r,i){return uo(i).map(s=>fn(t,e,n,r,s,{$isNull:!0}))}function kr(t,e,n,r,i){return Object.entries(i).flatMap(([s,o])=>{if(so([s,o]))return Er(t,"or",e,n,r,o);if(oo([s,o]))return Er(t,"and",e,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=fn(t,e,n,r,a,o),d=Ar(t,e,n,r,a);return[{or:{patterns:[u,...d],joinSym:t(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Ar(t,e,n,r,a),joinSym:t(n,r)}}]:fn(t,e,n,r,a,o)})}function co(t,e,n,r){const i=Tt;return r?kr(i,t,e,n,r).concat(vr(i,t,e,n)):vr(i,t,e,n)}function fo(t,e,n){return[t(e,n),t("time",n)]}function lo(t,e,n,r,i,s){const[o,a,u,d,c]=Sr(t,e,n,r,i),f=eo(u,t(n,r),s);return[o,a,f,d,c]}function ho(t,e,{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,_,y;const g=!!(e.cardinalityInference&&(!((y=(_=(p=e.linkIndex)===null||p===void 0?void 0:p[n])===null||_===void 0?void 0:_[h])===null||y===void 0)&&y.isSingular));try{const[T,w,v]=lo(t,e,n,r,h,u),M=Cr(e,{etype:T,level:w,form:i[h],join:v}),E=g?M[0]:M;return{[h]:E}}catch(T){if(T instanceof Ue)return{[h]:g?void 0:[]};throw T}}).reduce(function(h,p){return Object.assign(Object.assign({},h),p)},d)}):Object.values(s)}function po(t,e,n){return n==="string"?Hs(t,e):t>e?1:-1}function vt([t,e],[n,r],i){return e===r||e==null&&r==null?Bs(t,n):r==null?1:e==null?-1:po(e,r,i)}function ln(t){return t==null?t:new Date(t).getTime()}function yo(t,e,n,r){var i;const[s,o,a,u]=t,d=n==="desc"?1:-1;if(((i=e["forward-identity"])===null||i===void 0?void 0:i[2])==="id")return vt(r,[s,u],null)===d;const[c,f]=r,h=e["checked-data-type"],p=h==="date"?ln(f):f,_=h==="date"?ln(a):a;return vt([c,p],[s,_],h)===d}function _o(t,e){const n=e[1];return t.attrs[n]}function bo(t,e,n){const r=Object.keys(n)[0];return De(t,e,r)}function go(t,e,n,r){if(n)return _o(t,n);if(r)return bo(t,e,r)}function mo(t,e,n){var r,i;if(!Array.isArray(n.fields))return js(t,e);const s=new Map;for(const o of n.fields){const a=De(t,e,o),u=(r=a==null?void 0:a["forward-identity"])===null||r===void 0?void 0:r[2];u&&rn(a)&&s.set(u,a)}if(!s.has("id")){const o=De(t,e,"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 wo(t,{etype:e,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=jr(i),d=To(i);let c=Ns(t,r);const f=n==null?void 0:n["start-cursor"],h=go(t,e,f,a);if(h&&((o=h==null?void 0:h["forward-identity"])===null||o===void 0?void 0:o[2])!=="id"){const y=h["checked-data-type"]==="date",g=h.id;c=c.map(([T])=>{var w,v,M,E,N;let W=(N=(E=(M=(v=(w=t.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||N===void 0?void 0:N[2];return y&&(W=ln(W)),[T,W]})}c.sort(d==="asc"?function(g,T){return vt(g,T,h==null?void 0:h["checked-data-type"])}:function(g,T){return vt(T,g,h==null?void 0:h["checked-data-type"])});let p={};const _=mo(t,e,r);for(const y of c){const[g]=y;if(p[g]||!u&&f&&h&&yo(f,h,d,y))continue;const T=ks(t,_,g);T&&(p[g]=T)}return p}function To(t){var e;const n=(e=t.$)===null||e===void 0?void 0:e.order;return n&&n[Object.keys(n)[0]]||"asc"}function jr(t){var e,n,r;const i=(e=t.$)===null||e===void 0?void 0:e.offset,s=(n=t.$)===null||n===void 0?void 0:n.before,o=(r=t.$)===null||r===void 0?void 0:r.after;return!i&&!s&&!o}function vo(t,{etype:e,level:n,form:r,join:i,pageInfo:s}){var o,a,u,d,c;if(!jr(r)&&(!s||!s["start-cursor"]))return[];const f=io(co(t,e,n,(o=r.$)===null||o===void 0?void 0:o.where),i),h=fo(Tt,e,n),p=(a=r.$)===null||a===void 0?void 0:a.fields,_=wo(t,{etype:e,pageInfo:s,form:r,dq:{where:f,find:h,fields:p}}),y=((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(y!=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<=y?_:Object.fromEntries(g.slice(0,y))}return _}function So(t,e){try{return vo(t,e)}catch(n){if(n instanceof Ue)return{};throw n}}function Cr(t,e){const n=So(t,e);return ho(Tt,t,e,n)}function Oo(t){const e={};for(const[n,r]of Object.entries(t))e[n]={startCursor:r["start-cursor"],endCursor:r["end-cursor"],hasNextPage:r["has-next-page?"],hasPreviousPage:r["has-previous-page?"]};return e}function Eo({store:t,pageInfo:e,aggregate:n},r){const s={data:Object.keys(r).reduce(function(a,u){return n!=null&&n[u]||u==="$$ruleParams"||(a[u]=Cr(t,{etype:u,form:r[u],level:0,pageInfo:e==null?void 0:e[u]})),a},{})};return e&&(s.pageInfo=Oo(e)),n&&(s.aggregate=n),s}function Ao(){const e={__etype:1,__ops:1,create:1,update:1,link:1,unlink:1,delete:1,merge:1,ruleParams:1};return new Set(Object.keys(e))}const ko=Ao();function hn(t,e,n){const r={__etype:t,__ops:n};return new Proxy(r,{get:(i,s)=>{if(s==="__ops")return n;if(s==="__etype")return t;if(ko.has(s))return(o,a)=>hn(t,e,[...n,a?[s,t,e,o,a]:[s,t,e,o]])}})}function jo(t,e){return`lookup__${t}__${JSON.stringify(e)}`}function St(t){return t.startsWith("lookup__")}function Pr(t){const[e,n,...r]=t.split("__");return[n,JSON.parse(r.join("__"))]}function Co(t){return new Proxy({__etype:t},{get(e,n){if(n==="__etype")return t;const r=n;return St(r)?hn(t,Pr(r),[]):hn(t,r,[])}})}function pn(){return new Proxy({},{get(t,e){return Co(e)}})}const Po=pn();function Mo(t){return t.__ops}function Io(t,e){const{attrIdMap:n,refSwapAttrIds:r}=t,i=[];for(const o of e){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]=e;if((s==="add-triple"||s==="retract-triple")&&r.has(e[2])){const o=i[1];i[1]=i[3],i[3]=o}return i}function G(t,e,n){return Object.values(t).find(r=>{const[i,s,o]=r["forward-identity"];return s===e&&o===n})}function je(t,e,n){return Object.values(t).find(r=>{const i=r["reverse-identity"];if(!i)return!1;const[s,o,a]=i;return o===e&&a===n})}function Ro(t){if(Array.isArray(t))return t;const e=Object.entries(t);if(e.length!==1)throw new Error("lookup must be an object with a single unique attr and value.");return e[0]}function yn(t,e,n){return n.indexOf(".")!==-1&&!G(t,e,n)}function _n(t){const[e,n,...r]=t.split(".");if(r.length>0||n!=="id")throw new Error(`${t} is not a valid lookup attribute.`);return e}function xo(t,e,n){if(!yn(t,e,n))return G(t,e,n);const r=_n(n),i=G(t,e,r)||je(t,e,r);if(i&&i["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return i}function bn(t){return typeof t=="string"&&!St(t)?null:typeof t=="string"&&St(t)?Pr(t):Ro(t)}function re(t,e,n){const r=bn(n);if(r===null)return n;const[i,s]=r,o=xo(t,e,i);if(!o||!o["unique?"])throw new Error(`${i} is not a unique attribute.`);return[o.id,s]}function Mr(t,e,n,r){const i=re(t,e,n);return Array.isArray(i)?[["add-triple",i,G(t,e,"id").id,i]].concat(r):r}function Do({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=G(t,e,s),d=je(t,e,s);return a.map(c=>u?["add-triple",re(t,e,n),u.id,re(t,u["reverse-identity"][1],c)]:["add-triple",re(t,d["forward-identity"][1],c),d.id,re(t,e,n)])});return Mr(t,e,n,i)}function $o({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=G(t,e,s),d=je(t,e,s);return a.map(c=>u?["retract-triple",re(t,e,n),u.id,re(t,u["reverse-identity"][1],c)]:["retract-triple",re(t,d["forward-identity"][1],c),d.id,re(t,e,n)])});return Mr(t,e,n,i)}function Uo(t,e,n){if(Array.isArray(n)){const[r,i]=n;for(const s of t||[]){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 t||[]){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]==e)return!0}}return!1}function Ir({stores:t,attrs:e},[n,r,i,s]){return(s==null?void 0:s.upsert)===!1?{mode:"update"}:(s==null?void 0:s.upsert)===!0?null:Uo(t,n,r)?{mode:"update"}:null}function Lo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),d=re(r,i,s);return[["id",d]].concat(Object.entries(u)).map(([f,h])=>{const p=G(r,i,f);return p["checked-data-type"]==="date"&&t.useDateObjects&&(h=gt(h)),["add-triple",d,p.id,h,{mode:"create"}]})}function No(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),d=re(r,i,s),c=Ir(t,[i,d,o,a]);return[["id",d]].concat(Object.entries(u)).map(([h,p])=>{const _=G(r,i,h);return _["checked-data-type"]==="date"&&t.useDateObjects&&(p=gt(p)),["add-triple",d,_.id,p,...c?[c]:[]]})}function Fo({attrs:t},[e,n]){return[["delete-entity",re(t,e,n),e]]}function Ko(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),d=re(r,i,s),c=Ir(t,[i,d,o,a]),f=Object.entries(u).map(([p,_])=>{const y=G(r,i,p);return["deep-merge-triple",d,y.id,_,...c?[c]:[]]});return[["add-triple",d,G(r,i,"id").id,d,...c?[c]:[]]].concat(f)}function Wo({attrs:t},[e,n,r]){return[["rule-params",re(t,e,n),e,r]]}function zo(t){const[e,n,r,i,s]=t;if(!i)return t;const o=Object.assign({},i);return delete o.id,[e,n,r,o,...s?[s]:[]]}function Vo(t,e){const[n,...r]=zo(e);switch(n){case"merge":return Ko(t,r);case"create":return Lo(t,r);case"update":return No(t,r);case"link":return Do(t,r);case"unlink":return $o(t,r);case"delete":return Fo(t,r);case"ruleParams":return Wo(t,r);default:throw new Error(`unsupported action ${n}`)}}function qo(t){switch(t){case"string":case"date":case"boolean":case"number":return t;default:return}}function Go(t,e,n){var r,i;const s=(i=(r=t.entities[e])===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(`${e}.${n} does not exist in your schema`);const{unique:o,indexed:a}=s==null?void 0:s.config,u=qo(s==null?void 0:s.valueType);return{"index?":a,"unique?":o,"checked-data-type":u}}function Ot(t,e,n,r){const i=t?Go(t,e,n):null,s=q(),a=[q(),e,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 Bo(t,e,n){return Object.values(t.links).find(i=>i.forward.on===e&&i.forward.label===n||i.reverse.on===e&&i.reverse.label===n)}function Qo(t,e,n){const r=Bo(t,e,n);if(!r)throw new Error(`Couldn't find the link ${e}.${n} in your schema`);const{forward:i,reverse:s}=r;return{"forward-identity":[q(),i.on,i.label],"reverse-identity":[q(),s.on,s.label],cardinality:i.has==="one"?"one":"many","unique?":s.has==="one","on-delete":i.onDelete,"on-delete-reverse":s.onDelete}}function Rr(t,e,n,r){const i=t?Qo(t,e,n):null,s=q(),o=[q(),e,n],a=[q(),n,e];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 Yo=new Set(["create","update","merge","link","unlink"]),Ho=new Set(["link","unlink"]),Jo=new Set(["create","update","merge"]),Zo=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),gn={"unique?":!0,"index?":!0},Xo=Object.assign(Object.assign({},gn),{cardinality:"one"});function ea(t){const e=[],[n,r,i,s]=t;if(!Zo.has(n))return e;const o=bn(i);if(o&&e.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=bn(c);f&&e.push({etype:r,lookupPair:f,linkLabel:a})}}return e}function ta({attrs:t,schema:e},n){var r,i;const[s,o,a]=[new Set,Object.assign({},t),[]];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=G(o,f,h),_=je(o,f,h);d(p),d(_),!p&&!_&&u(Rr(e,f,h,Xo))}for(const f of n)for(const{etype:h,lookupPair:p,linkLabel:_}of ea(f)){const y=p[0];if(_){c(h,_);const g=G(o,h,_),T=je(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(yn(o,w,y))c(w,_n(y));else{const v=G(o,w,y);v||u(Ot(e,w,y,gn)),d(v)}}else if(yn(o,h,y))c(h,_n(y));else{const g=G(o,h,y);g||u(Ot(e,h,y,gn)),d(g)}}for(const f of n){const[h,p,_,y]=f;if(Yo.has(h)){const g=G(o,p,"id");d(g),g||u(Ot(e,p,"id",{"unique?":!0}));for(const T of Object.keys(y)){const w=G(o,p,T);if(d(w),Jo.has(h)&&(w||u(Ot(e,p,T,T==="id"?{"unique?":!0}:null))),Ho.has(h)){const v=je(o,p,T);!w&&!v&&u(Rr(e,p,T)),d(v)}}}}return[o,a]}function na(t,e){const r=(Array.isArray(e)?e:[e]).flatMap(u=>Mo(u)),[i,s]=ta(t,r),o=Object.assign(Object.assign({},t),{attrs:i}),a=r.flatMap(u=>Vo(o,u));return[...s,...a]}var tt=function(t,e,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(t,e||[])).next())})};const ra=2,ia=["kv","querySubs"];function mn(t){return function(n){console.error("Error in IndexedDB event",{source:t,event:n})}}class xr{constructor(e,n){this.dbName=e,this._storeName=n,this._dbPromise=this._init()}_init(){return new Promise((e,n)=>{const r=indexedDB.open(this.dbName,ra);r.onerror=i=>{n(i)},r.onsuccess=i=>{const o=i.target.result;e(o)},r.onupgradeneeded=i=>this._upgradeStore(i)})}_moveQuerySubsToObjectStore(e){const n=e.objectStore("kv"),r=e.objectStore("querySubs"),i=n.get("querySubs");i.onerror=mn("get querySubs from kv store failed"),i.onsuccess=s=>{const o=typeof i.result=="string"?JSON.parse(i.result):i.result;if(!o)return;const a=new Set;for(const[u,d]of Object.entries(o)){const c=r.put(d,u);c.onerror=mn(`Move ${u} to querySubs store failed`),a.add(c)}for(const u of a)u.onsuccess=()=>{if(a.delete(u),a.size===0){const d=n.delete("querySubs");d.onerror=mn("Cleanup querySubs from kv store failed")}}}}_upgradeStore(e){const n=e.target,r=n.result,i=new Set;for(const s of ia)r.objectStoreNames.contains(s)||(i.add(s),r.createObjectStore(s));if(i.has("querySubs")&&!i.has("kv")){const s=n.transaction;this._moveQuerySubsToObjectStore(s)}}getItem(e){return tt(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(e);a.onerror=u=>{i(u)},a.onsuccess=u=>{a.result?r(a.result):r(null)}})})}setItem(e,n){return tt(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,e);u.onerror=d=>{s(d)},u.onsuccess=d=>{i()}})})}multiSet(e){return tt(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const s=n.transaction([this._storeName],"readwrite"),o=s.objectStore(this._storeName),a=new Set;for(const[u,d]of e){const c=o.put(d,u);a.add(c)}for(const u of a)u.onerror=d=>{s.abort(),i(d)},u.onsuccess=d=>{a.delete(u),a.size===0&&r()}})})}removeItem(e){return tt(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const a=n.transaction([this._storeName],"readwrite").objectStore(this._storeName).delete(e);a.onerror=u=>{i(u)},a.onsuccess=u=>{r()}})})}getAllKeys(){return tt(this,void 0,void 0,function*(){const e=yield this._dbPromise;return new Promise((n,r)=>{const o=e.transaction([this._storeName],"readwrite").objectStore(this._storeName).getAllKeys();o.onerror=a=>{r(a)},o.onsuccess=a=>{n(o.result.filter(u=>typeof u=="string"))}})})}}var sa=function(t,e,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(t,e||[])).next())})};class Dr{static getIsOnline(){return sa(this,void 0,void 0,function*(){return navigator.onLine})}static listen(e){const n=()=>{e(!0)},r=()=>{e(!1)};return addEventListener("online",n),addEventListener("offline",r),()=>{removeEventListener("online",n),removeEventListener("offline",r)}}}class Le extends Error{constructor(e,n){super(e),this.hint=n;const r=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,r),Error.captureStackTrace&&Error.captureStackTrace(this,Le),this.name="InstantError"}get[Symbol.toStringTag](){return"InstantError"}}var oa=function(t,e,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(t,e||[])).next())})};class nt extends Le{constructor(e){var n;const r=((n=e.body)===null||n===void 0?void 0:n.message)||`API Error (${e.status})`;super(r,e.body.hint);const i=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,i),Error.captureStackTrace&&Error.captureStackTrace(this,nt),this.name="InstantAPIError",this.status=e.status,this.body=e.body}get[Symbol.toStringTag](){return"InstantAPIError"}}function le(t,e){return oa(this,void 0,void 0,function*(){const n=yield fetch(t,e),r=yield n.json();return n.status===200?Promise.resolve(r):Promise.reject(new nt({status:n.status,body:r}))})}var Ne=function(t,e,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(t,e||[])).next())})};function aa({apiURI:t,appId:e,email:n}){return le(`${t}/runtime/auth/send_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,email:n})})}function ua(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,email:r,code:i,refreshToken:s}){return yield le(`${e}/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 ca(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield le(`${e}/runtime/auth/verify_refresh_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n,"refresh-token":r})})})}function da(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n}){return yield le(`${e}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n})})})}function $r(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,code:r,codeVerifier:i,refreshToken:s}){return yield le(`${e}/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 fa(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,nonce:r,idToken:i,clientName:s,refreshToken:o}){return yield le(`${e}/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 la(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield le(`${e}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,refresh_token:r})})})}var rt=function(t,e,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(t,e||[])).next())})};function ha(t){return rt(this,arguments,void 0,function*({apiURI:e,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(`${e}/storage/upload`,{method:"PUT",headers:u,body:i})})}function pa(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${e}/storage/files?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"DELETE",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}function ya(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,fileName:r,refreshToken:i,metadata:s={}}){const{data:o}=yield le(`${e}/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 _a(t,e){return rt(this,void 0,void 0,function*(){return(yield fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok})}function ba(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${e}/storage/signed-download-url?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}let wn=!1,Ur=!1,Lr=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(wn=!!window.localStorage.getItem("devBackend"),Ur=!!window.localStorage.getItem("__instantLogging"),Lr=!!window.localStorage.getItem("__devtoolLocalDash"));function Nr(t,e){if(!e)return t;const n={};return e.forEach(r=>{n[r]=t[r]}),n}function ga(t,e,n){var r,i;const s={peers:{}};if(e&&"user"in e?e.user:!0){const a=Nr((r=t.user)!==null&&r!==void 0?r:{},e==null?void 0:e.keys);s.user=Object.assign(Object.assign({},a),{peerId:n})}for(const a of Object.keys((i=t.peers)!==null&&i!==void 0?i:{})){const u=(e==null?void 0:e.peers)===void 0,d=Array.isArray(e==null?void 0:e.peers)&&(e==null?void 0:e.peers.includes(a));if(u||d){const c=Nr(t.peers[a],e==null?void 0:e.keys);s.peers[a]=Object.assign(Object.assign({},c),{peerId:a})}}return s}function ma(t,e){if(t.isLoading!==e.isLoading||t.error!==e.error||(t.user||e.user)&&(!t.user||!e.user||!or(t.user,e.user))||!sr(t.peers,e.peers))return!0;for(const r of Object.keys(t.peers))if(!or(t.peers[r],e.peers[r]))return!0;return!1}class Fr{constructor(){this.promise=new Promise((e,n)=>{this._resolve=e,this._reject=n})}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}var ve=function(t,e,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(t,e||[])).next())})};function Kr(t,e){typeof requestIdleCallback>"u"?t():requestIdleCallback(t,{timeout:e})}const Tn="__meta";class Wr{constructor(e,n,r,i,s,o,a){var u,d;this._subs=[],this._nextSave=null,this._nextGc=null,this._pendingSaveKeys=new Set,this._loadedKeys=new Set,this._version=0,this._meta={isLoading:!0,onLoadCbs:[],value:null,error:null,attempts:0},this._persister=e,this._onMerge=n,this.serialize=r,this.parse=i,this._objectSize=s,this._log=o,this._saveThrottleMs=(u=a.saveThrottleMs)!==null&&u!==void 0?u:100,this._idleCallbackMaxWaitMs=(d=a.idleCallbackMaxWaitMs)!==null&&d!==void 0?d:1e3,this._gcOpts=a.gc,this.currentValue={},this._loadedKeys=new Set,this._loadingKeys={},this._initMeta()}_initMeta(){return ve(this,void 0,void 0,function*(){this._meta.loadingPromise&&(yield this._meta.loadingPromise);try{const e=this._persister.getItem(Tn);this._meta.loadingPromise=e;const n=yield e;this._meta.isLoading=!1,this._meta.error=null,this._meta.value=n||{}}catch(e){this._meta.error=e,this._meta.attempts++,this._meta.loadingPromise=null}})}_getMeta(){return ve(this,void 0,void 0,function*(){return this._meta.value?this._meta.value:this._meta.loadingPromise?(yield this._meta.loadingPromise,this._meta.value):(this._initMeta(),yield this._meta.loadingPromise,this._meta.value)})}_getFromStorage(e){return ve(this,void 0,void 0,function*(){try{const n=yield this._persister.getItem(e);return this.parse(e,n)}catch(n){return console.error(`Unable to read from storage for key=${e}`,n),null}})}waitForKeyToLoad(e){return ve(this,void 0,void 0,function*(){return this._loadedKeys.has(e)?this.currentValue[e]:(yield this._loadingKeys[e]||this._loadKey(e),this.currentValue[e])})}waitForMetaToLoad(){return ve(this,void 0,void 0,function*(){return this._getMeta()})}unloadKey(e){this._loadedKeys.delete(e),delete this._loadingKeys[e],delete this.currentValue[e]}_loadKey(e){return ve(this,void 0,void 0,function*(){if(this._loadedKeys.has(e)||e in this._loadingKeys)return;const n=this._getFromStorage(e);this._loadingKeys[e]=n;const r=yield n;delete this._loadingKeys[e],this._loadedKeys.add(e);const i=this._onMerge(e,r,this.currentValue[e]);i&&(this.currentValue[e]=i),this.onKeyLoaded&&this.onKeyLoaded(e)})}_writeToStorage(e){var n,r;const i=[],s=e==null?void 0:e.skipGc;if(this._meta.isLoading){const p=new Promise((_,y)=>{var g;setTimeout(()=>this._enqueuePersist(e?Object.assign(Object.assign({},e),{attempts:(e.attempts||0)+1}):{attempts:1}).then(_).catch(y),10+((g=e==null?void 0:e.attempts)!==null&&g!==void 0?g:0)*1e3)});return i.push(p),Promise.all(i).then(_=>_.reduce((y,g)=>y+g,0))}const o=this._meta.value;if(!o)return Promise.resolve(0);const a=[],u=[];for(const p of this._pendingSaveKeys)p in this.currentValue?u.push(p):(a.push(p),delete o.objects[p]);for(const p of a){const _=this._persister.removeItem(p);i.push(_.then(()=>1)),this._loadedKeys.delete(p),this._pendingSaveKeys.delete(p)}const d=[],c=[[Tn,o]],f=(n=o.objects)!==null&&n!==void 0?n:{};o.objects=f;for(const p of u)if(this._loadedKeys.has(p)){const _=this.serialize(p,this.currentValue[p]);c.push([p,_]);const y=this._objectSize(_),g=(r=f[p])!==null&&r!==void 0?r:{createdAt:Date.now(),updatedAt:Date.now(),size:y};g.updatedAt=Date.now(),g.size=y,f[p]=g,this._pendingSaveKeys.delete(p)}else d.push(p);const h=this._persister.multiSet(c);i.push(h.then(()=>1));for(const p of d){const _=this._loadKey(p).then(()=>this._enqueuePersist(e));i.push(_)}return s||this.gc(),Promise.all(i).then(p=>p.reduce((_,y)=>_+y,0))}flush(){return ve(this,void 0,void 0,function*(){return this._nextSave?(clearTimeout(this._nextSave),this._nextSave=null,this._writeToStorage()):void 0})}_gc(){return ve(this,void 0,void 0,function*(){const e=new Set(yield this._persister.getAllKeys());e.delete(Tn);const n=new Set(Object.keys(this.currentValue));for(const h of Object.keys(this._loadingKeys))n.add(h);for(const h of this._loadedKeys)n.add(h);const r=yield this._getMeta();if(!r){this._log.info("Could not gc because we were not able to load meta");return}const i=[],s={gcOpts:this._gcOpts,keys:e,sacredKeys:n,removed:[],metaRemoved:[],removedMissingCount:0,removedOldCount:0,removedThresholdCount:0,removedSizeCount:0};for(const h of e)n.has(h)||h in r.objects||(this._log.info("Lost track of key in meta",h),i.push(this._persister.removeItem(h)),s.removed.push(h),s.removedMissingCount++);const o=Date.now();for(const[h,p]of Object.entries(r.objects))!n.has(h)&&p.updatedAt<o-this._gcOpts.maxAgeMs&&(i.push(this._persister.removeItem(h)),delete r.objects[h],s.removed.push(h),s.removedOldCount++);const a=Object.entries(r.objects);a.sort(([h,p],[_,y])=>p.updatedAt-y.updatedAt);const u=a.filter(([h])=>!n.has(h));if(a.length>this._gcOpts.maxEntries)for(const[h]of u.slice(0,a.length-this._gcOpts.maxEntries))i.push(this._persister.removeItem(h)),delete r.objects[h],s.removed.push(h),s.removedThresholdCount++;const d=Object.entries(r.objects);d.sort(([h,p],[_,y])=>p.updatedAt-y.updatedAt);const c=d.filter(([h])=>!n.has(h));let f=d.reduce((h,[p,_])=>h+_.size,0);for(;f>0&&f>this._gcOpts.maxSize&&c.length;){const[[h,p]]=c.splice(0,1);f-=p.size,i.push(this._persister.removeItem(h)),delete r.objects[h],s.removed.push(h),s.removedSizeCount++}for(const h of Object.keys(r.objects))!e.has(h)&&!n.has(h)&&delete r.objects[h];return(s.removed.length||s.metaRemoved.length)&&i.push(this._enqueuePersist({skipGc:!0})),this._log.info("Completed GC",s),yield Promise.all(i),s})}gc(){this._nextGc||(this._nextGc=setTimeout(()=>{Kr(()=>{this._nextGc=null,this._gc()},30*1e3)},1e3*60))}_enqueuePersist(e){return new Promise((n,r)=>{if(this._nextSave){n(0);return}this._nextSave=setTimeout(()=>{Kr(()=>{this._nextSave=null,this._writeToStorage(e).then(n).catch(r)},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)})}version(){return this._version}updateInPlace(e){this._version++;const[n,r]=_t(this.currentValue,e,{enablePatches:!0});for(const i of r){const s=i.path[0];s&&typeof s=="string"&&(this._pendingSaveKeys.add(s),this._loadedKeys.has(s)||this._loadKey(s))}for(const i of Object.keys(n))if(!n[i])debugger;this.currentValue=n,this._enqueuePersist();for(const i of this._subs)i(this.currentValue);return n}subscribe(e){return this._subs.push(e),e(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==e)}}}function zr(t,e=[]){t.forEach(n=>{const{data:r}=n,{"datalog-result":i}=r,{"join-rows":s}=i;for(const o of s)for(const a of o)e.push(a);zr(n["child-nodes"],e)})}function Vr(t){const e=[];return zr(t,e),e}function qr(t){return Object.values(t.links).reduce((e,n)=>{var r,i,s,o;return(r=e[s=n.forward.on])!==null&&r!==void 0||(e[s]={}),e[n.forward.on][n.forward.label]={isForward:!0,isSingular:n.forward.has==="one",link:n},(i=e[o=n.reverse.on])!==null&&i!==void 0||(e[o]={}),e[n.reverse.on][n.reverse.label]={isForward:!1,isSingular:n.reverse.has==="one",link:n},e},{})}const vn="v0.22.49-experimental.persisted-object-2.19477253536.1";function wa(t,e){return{info:t?(...n)=>console.info(...n,e()):()=>{},debug:t?(...n)=>console.debug(...n,e()):()=>{},error:t?(...n)=>console.error(...n,e()):()=>{}}}class J{constructor(e,n,r,i={indexed:!1,unique:!1}){this.valueType=e,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 Et{constructor(e,n){this.attrs=e,this.links=n}asType(){return new Et(this.attrs,this.links)}}class At{constructor(e,n,r){this.entities=e,this.links=n,this.rooms=r}withRoomSchema(){return new At(this.entities,this.links,{})}}class x extends Error{constructor(e,n){const r=n?`At path '${n}': ${e}`:e;super(r),this.name="QueryValidationError"}}const Gr=["where","order","limit","last","first","offset","after","before","fields","aggregate"],Ta=t=>t.valueType||"unknown",Br=(t,e,n=!1)=>{if(n||t==null)return!0;switch(e){case"string":return typeof t=="string";case"number":return typeof t=="number"&&!isNaN(t);case"boolean":return typeof t=="boolean";case"date":return t instanceof Date||typeof t=="string"||typeof t=="number";default:return!0}},va=(t,e,n,r,i,s,o)=>{const a=s.valueType==="json",u=(d,c,f)=>{if(!Br(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(t){case"in":case"$in":if(!Array.isArray(e))throw new x(`Operator '${t}' for attribute '${r}' in entity '${i}' must be an array, but received: ${typeof e}`,o);for(const d of e)u(t,n,d);break;case"$not":case"$ne":case"$gt":case"$lt":case"$gte":case"$lte":u(t,n,e);break;case"$like":case"$ilike":if(u(t,"string",e),t==="$ilike"&&!s.isIndexed)throw new x(`Operator '${t}' can only be used with indexed attributes, but '${r}' in entity '${i}' is not indexed`,o);break;case"$isNull":u(t,"boolean",e);break;default:throw new x(`Unknown operator '${t}' for attribute '${r}' in entity '${i}'`,o)}},Fe=(t,e,n,r,i)=>{const s=Ta(n),o=n.valueType==="json";if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(o)return;const u=t;for(const[d,c]of Object.entries(u))va(d,c,s,e,r,n,`${i}.${d}`)}else if(!Br(t,s,o))throw new x(`Invalid value for attribute '${e}' in entity '${r}'. Expected ${s}, but received: ${typeof t}`,i)},Sa=(t,e,n,r,i)=>{const s=t.split(".");if(s.length<2)throw new x(`Invalid dot notation path '${t}'. 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 '${t}'.`,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 '${t}'. 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 '${t}'.`,i);if(a==="id"){if(typeof e=="string"&&!$e(e))throw new x(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${e}`,i);Fe(e,t,new J("string",!1,!0),n,i);return}const d=u.attrs[a];if(Object.keys(u.links).includes(a)){if(typeof e=="string"&&!$e(e))throw new x(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${e}`,i);Fe(e,t,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 '${t}'. Available attributes: ${c.length>0?c.join(", ")+", id":"id"}`,i)}Fe(e,t,d,n,i)},Qr=(t,e,n,r)=>{for(const[i,s]of Object.entries(t)){if(i==="or"||i==="and"){if(Array.isArray(s))for(const d of s)typeof d=="object"&&d!==null&&Qr(d,e,n,`${r}.${i}[${d}]`);continue}if(i==="id"){Fe(s,"id",new J("string",!1,!0),e,`${r}.id`);continue}if(i.includes(".")){Sa(i,s,e,n,`${r}.${i}`);continue}const o=n.entities[e];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 '${e}'. Available attributes: ${d.length>0?d.join(", "):"none"}. Available links: ${c.length>0?c.join(", "):"none"}`,`${r}.${i}`)}if(a)Fe(s,i,a,e,`${r}.${i}`);else if(u){if(typeof s=="string"&&!$e(s))throw new x(`Invalid value for link '${i}' in entity '${e}'. Expected a UUID, but received: ${s}`,`${r}.${i}`);const d=new J("string",!1,!0);Fe(s,i,d,e,`${r}.${i}`)}}},Oa=(t,e,n,r,i=0)=>{for(const o of Object.keys(t))if(!Gr.includes(o))throw new x(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${Gr.join(", ")}. Found: ${o}`,r);const s=["offset","before","after","first","last"];for(const o of s)if(t[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(t.where&&n){if(typeof t.where!="object"||t.where===null)throw new x(`'where' clause must be an object in entity '${e}', but received: ${typeof t.where}`,r?`${r}.where`:void 0);Qr(t.where,e,n,r?`${r}.where`:"where")}},Yr=(t,e,n,r,i=0)=>{var s;if(!t||typeof t!="object")throw new x(`Query part for entity '${e}' must be an object, but received: ${typeof t}`,r);for(const o of Object.keys(t))if(o!=="$"){if(n&&!(o in n.entities[e].links)){const u=Object.keys(n.entities[e].links);throw new x(`Link '${o}' does not exist on entity '${e}'. Available links: ${u.length>0?u.join(", "):"none"}`,`${r}.${o}`)}const a=t[o];if(typeof a=="object"&&a!==null){const u=(s=n==null?void 0:n.entities[e].links[o])===null||s===void 0?void 0:s.entityName;u&&Yr(a,u,n,`${r}.${o}`,i+1)}}else{const a=t[o];if(typeof a!="object"||a===null)throw new x(`Query parameter '$' must be an object in entity '${e}', but received: ${typeof a}`,`${r}.$`);Oa(a,e,n,`${r}.$`,i)}},Hr=(t,e)=>{if(typeof t!="object"||t===null)throw new x(`Query must be an object, but received: ${typeof t}${t===null?" (null)":""}`);if(Array.isArray(t))throw new x(`Query must be an object, but received: ${typeof t}`);const n=t;for(const r of Object.keys(n)){if(Array.isArray(t[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(e&&!e.entities[r]){const i=Object.keys(e.entities);throw new x(`Entity '${r}' does not exist in schema. Available entities: ${i.length>0?i.join(", "):"none"}`,r)}Yr(n[r],r,e,r,0)}}},Jr=t=>typeof t!="string"?!1:St(t)?!0:$e(t);class ue extends Error{constructor(e){super(e),this.name="TransactionValidationError"}}const Zr=t=>t.length>0?t.join(", "):"none",Ea=(t,e)=>new ue(`Entity '${t}' does not exist in schema. Available entities: ${Zr(e)}`),Xr={string:t=>typeof t=="string",number:t=>typeof t=="number"&&!isNaN(t),boolean:t=>typeof t=="boolean",date:t=>t instanceof Date||typeof t=="string"||typeof t=="number",json:()=>!0},Aa=(t,e)=>{var n,r;return t==null?!0:(r=(n=Xr[e.valueType])===null||n===void 0?void 0:n.call(Xr,t))!==null&&r!==void 0?r:!1},ei=(t,e)=>{const n=e.entities[t];if(!n)throw Ea(t,Object.keys(e.entities));return n},Sn=(t,e,n)=>{const r=ei(t,n);if(typeof e!="object"||e===null)throw new ue(`Arguments for data operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[i,s]of Object.entries(e)){if(i==="id")continue;const o=r.attrs[i];if(o&&!Aa(s,o))throw new ue(`Invalid value for attribute '${i}' in entity '${t}'. Expected ${o.valueType}, but received: ${typeof s}`)}},ti=(t,e,n)=>{const r=ei(t,n);if(typeof e!="object"||e===null)throw new ue(`Arguments for link operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[i,s]of Object.entries(e)){if(!r.links[i]){const a=Object.keys(r.links);throw new ue(`Link '${i}' does not exist on entity '${t}'. Available links: ${Zr(a)}`)}if(s!=null){if(Array.isArray(s)){for(const a of s)if(!Jr(a))throw new ue(`Invalid entity ID in link '${i}' for entity '${t}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!Jr(s))throw new ue(`Invalid UUID in link '${i}' for entity '${t}'. Expected a UUID, but received: ${s}`)}}},ka={create:Sn,update:Sn,merge:Sn,link:ti,unlink:ti,delete:()=>{}},ja=(t,e)=>{if(!e)return;const[n,r,i,s]=t;if(!Array.isArray(i)&&!$e(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=ka[n];o&&s!==void 0&&o(r,s,e)},Ca=(t,e)=>{const n=Array.isArray(t)?t:[t];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}`);ja(i,e)}}};var ni=function(t,e,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(t,e||[])).next())})};let ri=0;class ii{constructor(e){this.type="ws",this.id=`${this.type}_${ri++}`,this.conn=new WebSocket(e),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(e){return this.conn.send(JSON.stringify(e))}}class Pa{constructor(e,n){this.type="sse",this.initParams=null,this.sendQueue=[],this.closeFired=!1,this.sseInitTimeout=null,this.id=`${this.type}_${ri++}`,this.url=n,this.ES=e,this.conn=new e(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(e){return ni(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:e})})).ok||this.handleError()}catch{this.handleError()}})}flushQueue(){return ni(this,void 0,void 0,function*(){if(this.sendPromise||!this.sendQueue.length)return;const e=this.sendQueue;this.sendQueue=[];const n=this.postMessages(e);this.sendPromise=n,n.then(()=>{this.sendPromise=null,this.flushQueue()})})}send(e){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(e),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(t,e,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(t,e||[])).next())})},Ma=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const we={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},Ia=3e4,Ra=3e4,xa=200,Da={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},On="_instant_oauth_redirect",it="currentUser";function $a({transportType:t,appId:e,apiURI:n,wsURI:r,EventSourceImpl:i}){if(!i)return new ii(`${r}?app_id=${e}`);switch(t){case"ws":return new ii(`${r}?app_id=${e}`);case"sse":return new Pa(i,`${n}/runtime/sse?app_id=${e}`);default:throw new Error("Unknown transport type "+t)}}function Ua(){return typeof window<"u"||typeof chrome<"u"}const si={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function La(t,e){var n;const r=typeof t=="string"?JSON.parse(t):t;if(!((n=r==null?void 0:r.result)===null||n===void 0)&&n.store){const i=r.result.store;r.result.store=_s(Object.assign(Object.assign({},i),{useDateObjects:e}))}return r}function Na(t,e){var n;const r=Object.assign({},e);return!((n=e.result)===null||n===void 0)&&n.store&&(r.result=Object.assign(Object.assign({},e.result),{store:ys(e.result.store)})),r}function Fa(t,e){switch(t){case"pendingMutations":return new Map(typeof e=="string"?JSON.parse(e):e);default:return e}}function Ka(t,e){switch(t){case"pendingMutations":return[...e.entries()];default:return e}}function oi(t){return[...t].sort((e,n)=>{const[r,i]=e,[s,o]=n,a=i.order||0,u=o.order||0;return a==u?r<s?-1:r>s?1:0:a-u})}class Wa{constructor(e,n=xr,r=Dr,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._onMergeQuerySub=(d,c,f)=>{const h=c==null?void 0:c.result,p=f==null?void 0:f.result;return h&&!p&&f&&(f.result=h),f||c},this._onMergeKv=(d,c,f)=>{var h,p;switch(d){case"pendingMutations":{const _=(h=c==null?void 0:c.entries())!==null&&h!==void 0?h:[],y=(p=f==null?void 0:f.entries())!==null&&p!==void 0?p:[],g=new Map([..._,...y]);return(c?this._rewriteMutationsSorted(this.attrs,c):[]).forEach(([w,v])=>{var M;!(!((M=f==null?void 0:f.pendingMutations)===null||M===void 0)&&M.has(w))&&!v["tx-id"]&&this._sendMutation(w,v)}),g}default:return c||f}},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);_&&(bt(_,p)||h.forEach(y=>y.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||Ca(d,this.config.schema);try{const c=na({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=q(),h=[...this._pendingMutations().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._updatePendingMutations(g=>{g.set(f,_)});const y=new Fr;return this.mutationDeferredStore.set(f,y),this._sendMutation(f,_),this.notifyAll(),y.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(q(),{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({},Da),e),this.queryCacheLimit=(o=this.config.queryCacheLimit)!==null&&o!==void 0?o:10,this._pendingTxCleanupTimeout=(a=this.config.pendingTxCleanupTimeout)!==null&&a!==void 0?a:Ra,this._pendingMutationCleanupThreshold=(u=this.config.pendingMutationCleanupThreshold)!==null&&u!==void 0?u:xa,this._log=wa(e.verbose||wn||Ur,()=>this._reactorStats()),this.versions=Object.assign(Object.assign({},i||{}),{"@instantdb/core":vn}),this.config.schema&&(this._linkIndex=qr(this.config.schema)),!!Ua()){if(!e.appId)throw new Error("Instant must be initialized with an appId.");if(!$e(e.appId))throw new Error(`Instant must be initialized with a valid appId. \`${e.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(e){this.config=Object.assign(Object.assign({},this.config),{schema:e,cardinalityInference:!!e}),this._linkIndex=e?qr(this.config.schema):null}_reactorStats(){return{inFlightMutationCount:this._inFlightMutationEventIds.size,pendingMutationCount:this._pendingMutations().size,transportType:this._transportType}}_onQuerySubLoaded(e){this.kv.waitForKeyToLoad("pendingMutations").then(()=>this.notifyOne(e))}_initStorage(e){this.querySubs=new Wr(new e(`instant_${this.config.appId}_5`,"querySubs"),this._onMergeQuerySub,Na,(n,r)=>La(r,this.config.useDateObjects),n=>{var r,i,s,o;return(o=(s=(i=(r=n.result)===null||r===void 0?void 0:r.store)===null||i===void 0?void 0:i.triples)===null||s===void 0?void 0:s.length)!==null&&o!==void 0?o:0},this._log,{gc:{maxAgeMs:1e3*60*60*24*7*52,maxEntries:1e3,maxSize:1e6}}),this.querySubs.onKeyLoaded=n=>this._onQuerySubLoaded(n),this.kv=new Wr(new e(`instant_${this.config.appId}_5`,"kv"),this._onMergeKv,Ka,Fa,()=>0,this._log,{saveThrottleMs:100,idleCallbackMaxWaitMs:100,gc:{maxAgeMs:Number.MAX_SAFE_INTEGER,maxEntries:Number.MAX_SAFE_INTEGER,maxSize:Number.MAX_SAFE_INTEGER}}),this.kv.onKeyLoaded=n=>{n==="pendingMutations"&&this.notifyAll()},this.kv.waitForKeyToLoad("pendingMutations"),this.kv.waitForKeyToLoad(it),this._beforeUnloadCbs.push(()=>{this.kv.flush(),this.querySubs.flush()})}_beforeUnload(){for(const e of this._beforeUnloadCbs)e()}_finishTransaction(e,n,r){const i=this.mutationDeferredStore.get(n);this.mutationDeferredStore.delete(n);const s=e!=="error"&&e!=="timeout";if(!i&&!s&&console.error("Mutation failed",Object.assign({status:e,eventId:n},r)),!!i)if(s)i.resolve({status:e,eventId:n});else if(r.type){const{status:o}=r,a=Ma(r,["status"]);i.reject(new nt({body:a,status:o}))}else i.reject(new Le(r.message,r.hint))}_setStatus(e,n){this.status=e,this._errorMessage=n,this.notifyConnectionStatusSubs(e)}_flushEnqueuedRoomData(e){var n,r;const i=(r=(n=this._presence[e])===null||n===void 0?void 0:n.result)===null||r===void 0?void 0:r.user,s=this._broadcastQueue[e];if(this._broadcastQueue[e]=[],i&&this._trySetPresence(e,i),s)for(const o of s){const{topic:a,roomType:u,data:d}=o;this._tryBroadcast(e,u,a,d)}}_handleReceive(e,n){var r,i,s,o,a,u;const d=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(si[n.op]||this._log.info("[receive]",e,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);if(!this._hasQueryListeners()&&!this.querySubs.currentValue[h])break;const 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,y=Vr(f),g=on(this.attrs,y,d,this._linkIndex,this.config.useDateObjects);this.querySubs.updateInPlace(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 M=this._rewriteMutations(this.attrs,this._pendingMutations(),v);M!==this._pendingMutations()&&this.kv.updateInPlace(O=>{O.pendingMutations=M});const E=oi(M.entries()),N=T.map(O=>{var Z,Oe,be,pe;const Y=O["instaql-query"],z=O["instaql-result"],Me=ee(Y),It=Vr(z),Rt=on(this.attrs,It,d,this._linkIndex,this.config.useDateObjects),xt=this._applyOptimisticUpdates(Rt,E,v),Dt=(Oe=(Z=z==null?void 0:z[0])===null||Z===void 0?void 0:Z.data)===null||Oe===void 0?void 0:Oe["page-info"],$t=(pe=(be=z==null?void 0:z[0])===null||be===void 0?void 0:be.data)===null||pe===void 0?void 0:pe.aggregate;return{hash:Me,store:xt,pageInfo:Dt,aggregate:$t}});N.forEach(({hash:O,store:Z,pageInfo:Oe,aggregate:be})=>{this.querySubs.updateInPlace(pe=>(pe[O].result={store:Z,pageInfo:Oe,aggregate:be,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 be=this._rewriteMutations(this.attrs,this._pendingMutations()).get(O);if(!be)break;this._updatePendingMutations(Y=>{Y.set(O,Object.assign(Object.assign({},Y.get(O)),{"tx-id":Z,confirmed:Date.now()}))});const pe=be["tx-steps"].filter(([Y,...z])=>Y==="add-attr").map(([Y,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 W=n["room-id"],_e=this._rooms[W];_e&&(_e.error=n.error),this._notifyPresenceSubs(W);break;case"error":this._handleReceiveError(n);break}}_pendingMutations(){var e;return(e=this.kv.currentValue.pendingMutations)!==null&&e!==void 0?e:new Map}_updatePendingMutations(e){this.kv.updateInPlace(n=>{var r;const i=(r=n.pendingMutations)!==null&&r!==void 0?r:new Map;n.pendingMutations=i,e(i)})}_handleMutationError(e,n,r){var i;const s=(i=this.kv.currentValue.pendingMutations)===null||i===void 0?void 0:i.get(n);if(s&&(e!=="timeout"||!s["tx-id"])){this._updatePendingMutations(a=>(a.delete(n),a)),this._inFlightMutationEventIds.delete(n);const o={message:r.message,hint:r.hint};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(o),this._finishTransaction(e,n,r)}}_handleReceiveError(e){var n,r,i,s,o;console.log("error",e);const a=e["client-event-id"];this._inFlightMutationEventIds.delete(a);const u=this._pendingMutations().get(a),d={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(e.hint&&(d.hint=e.hint),u){this._handleMutationError("error",a,e);return}if(!((n=e["original-event"])===null||n===void 0)&&n.hasOwnProperty("q")&&((r=e["original-event"])===null||r===void 0?void 0:r.op)==="add-query"){const h=(i=e["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=e["original-event"])===null||s===void 0?void 0:s.op)==="init"){if(e.type==="record-not-found"&&((o=e.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({},e);delete f.message,delete f.hint,console.error(e.message,f),e.hint&&console.error(`This error comes with some debugging information. Here it is:
2
- `,e.hint)}notifyQueryOnceError(e,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(e,n,o.dfd))}_setAttrs(e){this.attrs=e.reduce((n,r)=>(n[r.id]=r,n),{}),this.notifyAttrsSubs()}_startQuerySub(e,n){const r=q();return this.querySubs.updateInPlace(i=>{i[n]=i[n]||{q:e,result:null,eventId:r},i[n].lastAccessed=Date.now()}),this._trySendAuthed(r,{op:"add-query",q:e}),r}subscribeQuery(e,n,r){var i;this.config.disableValidation||Hr(e,this.config.schema),r&&"ruleParams"in r&&(e=Object.assign({$$ruleParams:r.ruleParams},e));const s=ee(e),o=this.getPreviousResult(e);return o&&n(o),this.queryCbs[s]=(i=this.queryCbs[s])!==null&&i!==void 0?i:[],this.queryCbs[s].push({q:e,cb:n}),this._startQuerySub(e,s),()=>{this._unsubQuery(e,s,n)}}queryOnce(e,n){var r;this.config.disableValidation||Hr(e,this.config.schema),n&&"ruleParams"in n&&(e=Object.assign({$$ruleParams:n.ruleParams},e));const i=new Fr;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(e),o=this._startQuerySub(e,s);return this.queryOnceDfds[s]=(r=this.queryOnceDfds[s])!==null&&r!==void 0?r:[],this.queryOnceDfds[s].push({q:e,dfd:i,eventId:o}),setTimeout(()=>i.reject(new Error("Query timed out")),Ia),i.promise}_completeQueryOnce(e,n,r){this.queryOnceDfds[n]&&(this.queryOnceDfds[n]=this.queryOnceDfds[n].filter(i=>i.dfd!==r),this._cleanupQuery(e,n))}_unsubQuery(e,n,r){this.queryCbs[n]&&(this.queryCbs[n]=this.queryCbs[n].filter(i=>i.cb!==r),this._cleanupQuery(e,n))}_hasQueryListeners(e){var n,r;return!!(!((n=this.queryCbs[e])===null||n===void 0)&&n.length||!((r=this.queryOnceDfds[e])===null||r===void 0)&&r.length)}_cleanupQuery(e,n){this._hasQueryListeners(n)||(delete this.queryCbs[n],delete this.queryOnceDfds[n],delete this._dataForQueryCache[n],this.querySubs.unloadKey(n),this._trySendAuthed(q(),{op:"remove-query",q:e}))}_rewriteMutations(e,n,r){if(!e)return n;if(!n)return new Map;const i=c=>{const[f,h,p]=c["forward-identity"];return G(e,h,p)},s=c=>{const[f,h,p]=c["forward-identity"];return je(e,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 y=a?Io(o,p):p;h.push(y)}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(e,n){return oi(this._rewriteMutations(e,n).entries())}optimisticAttrs(){var e;const n=[...this._pendingMutations().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&&(!((e=this.attrs)===null||e===void 0)&&e[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(e){const n=this._errorMessage;if(n)return{error:n};if(!this.querySubs||!this.kv.currentValue.pendingMutations)return;const r=this.querySubs.version(),i=this.querySubs.currentValue,s=this.kv.version(),o=this._pendingMutations(),{q:a,result:u}=i[e]||{};if(!u)return;const d=this._dataForQueryCache[e];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),y=this._applyOptimisticUpdates(c,_,p),g=Eo({store:y,pageInfo:f,aggregate:h},a);return this._dataForQueryCache[e]={querySubVersion:r,pendingMutationsVersion:s,data:g},g}_applyOptimisticUpdates(e,n,r){for(const[i,s]of n)(!s["tx-id"]||r&&s["tx-id"]>r)&&(e=Ps(e,s["tx-steps"]));return e}notifyAll(){Object.keys(this.queryCbs).forEach(e=>{this.notifyOne(e)})}loadedNotifyAll(){this.notifyAll()}shutdown(){var e;this._log.info("[shutdown]",this.config.appId),this._isShutdown=!0,(e=this._transport)===null||e===void 0||e.close()}_sendMutation(e,n){if(n.error){this._handleMutationError("error",e,{message:n.error.message});return}if(this.status!==we.AUTHENTICATED){this._finishTransaction("enqueued",e);return}const r=Math.max(6e3,Math.min(this._inFlightMutationEventIds.size+1,this._pendingMutations().size+1)*6e3);this._isOnline?(this._trySend(e,n),setTimeout(()=>{this._isOnline&&this._handleMutationError("timeout",e,{message:"transaction timed out"})},r)):this._finishTransaction("enqueued",e)}_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()).forEach(([i,s])=>{s["tx-id"]||this._sendMutation(i,s)})}_cleanupPendingMutationsQueries(){let e=Number.MAX_SAFE_INTEGER;for(const{result:n}of Object.values(this.querySubs.currentValue))n!=null&&n.processedTxId&&(e=Math.min(e,n==null?void 0:n.processedTxId));this._updatePendingMutations(n=>{for(const[r,i]of Array.from(n.entries()))i["tx-id"]&&i["tx-id"]<=e&&n.delete(r)})}_cleanupPendingMutationsTimeout(){if(this._pendingMutations().size<this._pendingMutationCleanupThreshold)return;const e=Date.now();this._updatePendingMutations(n=>{for(const[r,i]of Array.from(n.entries()))i.confirmed&&i.confirmed+this._pendingTxCleanupTimeout<e&&n.delete(r)})}_trySendAuthed(...e){this.status===we.AUTHENTICATED&&this._trySend(...e)}_trySend(e,n,r){if(this._transport.isOpen()){switch(si[n.op]||this._log.info("[send]",this._transport.id,n.op,n),n.op){case"transact":{this._inFlightMutationEventIds.add(e);break}case"init":this._inFlightMutationEventIds.clear()}this._transport.send(Object.assign({"client-event-id":e},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 e=this._transport;this._transport=$a({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),e!=null&&e.isOpen()&&(this._log.info("[socket][start]",this._transport.id,"close previous transport id = ",e.id),e.close())}getLocalId(e){return L(this,void 0,void 0,function*(){const n=`localToken_${e}`;if(this.kv.currentValue[n])return this.kv.currentValue[n];const r=yield this.kv.waitForKeyToLoad(n);if(r)return r;const i=q();return this.kv.updateInPlace(s=>{s[n]||(s[n]=i)}),yield this.kv.waitForKeyToLoad(n)})}_replaceUrlAfterOAuth(){if(typeof URL>"u")return;const e=new URL(window.location.href);if(e.searchParams.get(On)){const n=e.toString();e.searchParams.delete(On),e.searchParams.delete("code"),e.searchParams.delete("error");const r=e.pathname+(e.searchParams.size?"?"+e.searchParams:"")+e.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 e,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(On))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 $r({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((e=u==null?void 0:u.body)===null||e===void 0?void 0:e.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(e){return this.mutationErrorCbs.push(e),()=>{this.mutationErrorCbs=this.mutationErrorCbs.filter(n=>n!==e)}}subscribeAuth(e){this.authCbs.push(e);const n=this._currentUserCached;n.isLoading||e(this._currentUserCached);let r=!1;return this.getCurrentUser().then(i=>{r||bt(i,n)||e(i)}),()=>{r=!0,this.authCbs=this.authCbs.filter(i=>i!==e)}}getAuth(){return L(this,void 0,void 0,function*(){const{user:e,error:n}=yield this.getCurrentUser();if(n)throw new Le("Could not get current user: "+n.message);return e})}subscribeConnectionStatus(e){return this.connectionStatusCbs.push(e),()=>{this.connectionStatusCbs=this.connectionStatusCbs.filter(n=>n!==e)}}subscribeAttrs(e){return this.attrsCbs.push(e),this.attrs&&e(this.attrs),()=>{this.attrsCbs=this.attrsCbs.filter(n=>n!==e)}}notifyAuthSubs(e){this.authCbs.forEach(n=>n(e))}notifyMutationErrorSubs(e){this.mutationErrorCbs.forEach(n=>n(e))}notifyAttrsSubs(){if(!this.attrs)return;const e=this.optimisticAttrs();this.attrsCbs.forEach(n=>n(e))}notifyConnectionStatusSubs(e){this.connectionStatusCbs.forEach(n=>n(e))}setCurrentUser(e){return L(this,void 0,void 0,function*(){this.kv.updateInPlace(n=>{n[it]=e}),yield this.kv.waitForKeyToLoad(it)})}getCurrentUserCached(){return this._currentUserCached}_getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this.kv.waitForKeyToLoad(it);return typeof e=="string"?JSON.parse(e):e})}getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this._waitForOAuthCallbackResponse();if(e!=null&&e.error){const i={error:e.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 e=yield this.kv.waitForKeyToLoad(it);return typeof e=="string"?JSON.parse(e)!=null:e!=null})}changeCurrentUser(e){return L(this,void 0,void 0,function*(){var n;const{user:r}=yield this.getCurrentUser();if(!bt(r,e)){yield this.setCurrentUser(e),this.updateUser(e);try{(n=this._broadcastChannel)===null||n===void 0||n.postMessage({type:"auth"})}catch(i){console.error("Error posting message to broadcast channel",i)}}})}updateUser(e){const n={error:void 0,user:e};this._currentUserCached=Object.assign({isLoading:!1},n),this._dataForQueryCache={},this.querySubs.updateInPlace(r=>{Object.keys(r).forEach(i=>{delete r[i].result})}),this._reconnectTimeoutMs=0,this._transport.close(),this._oauthCallbackResponse=null,this.notifyAuthSubs(n)}sendMagicCode({email:e}){return aa({apiURI:this.config.apiURI,appId:this.config.appId,email:e})}signInWithMagicCode(e){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 ua({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(e){return L(this,void 0,void 0,function*(){const n=yield ca({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:e});return yield this.changeCurrentUser(n.user),n})}signInAsGuest(){return L(this,void 0,void 0,function*(){const e=yield da({apiURI:this.config.apiURI,appId:this.config.appId});return yield this.changeCurrentUser(e.user),e})}potentiallyInvalidateToken(e,n){var r;const i=(r=e==null?void 0:e.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}la({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:i}).then(()=>{this._log.info("[auth-invalidate] completed invalidateToken")}).catch(o=>{})}signOut(e){return L(this,void 0,void 0,function*(){const n=yield this.getCurrentUser();this.potentiallyInvalidateToken(n,e),yield this.changeCurrentUser(null)})}createAuthorizationURL({clientName:e,redirectURL:n}){const{apiURI:r,appId:i}=this.config;return`${r}/runtime/oauth/start?app_id=${i}&client_name=${e}&redirect_uri=${n}`}exchangeCodeForToken(e){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 $r({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:e,appId:n}=this.config;return`${e}/runtime/${n}`}signInWithIdToken(e){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 fa({apiURI:this.config.apiURI,appId:this.config.appId,idToken:n,clientName:r,nonce:i,refreshToken:a});return yield this.changeCurrentUser(u.user),u})}joinRoom(e,n){let r=!1;this._rooms[e]||(r=!0,this._rooms[e]={isConnected:!1,error:void 0}),this._presence[e]=this._presence[e]||{};const i=this._presence[e].result;return n&&!i&&(this._presence[e].result=this._presence[e].result||{},this._presence[e].result.user=n,this._notifyPresenceSubs(e)),r&&this._tryJoinRoom(e,n),()=>{this._cleanupRoom(e)}}_cleanupRoom(e){var n,r,i,s;if(!(!((r=(n=this._presence[e])===null||n===void 0?void 0:n.handlers)===null||r===void 0)&&r.length)&&!Object.keys((i=this._broadcastSubs[e])!==null&&i!==void 0?i:{}).length){const o=(s=this._rooms[e])===null||s===void 0?void 0:s.isConnected;delete this._rooms[e],delete this._presence[e],delete this._broadcastSubs[e],o?this._tryLeaveRoom(e):this._roomsPendingLeave[e]=!0}}getPresence(e,n,r={}){const i=this._rooms[n],s=this._presence[n];return!i||!s||!s.result?null:Object.assign(Object.assign({},ga(s.result,r,this._sessionId)),{isLoading:!i.isConnected,error:i.error})}publishPresence(e,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(e,n){this._trySendAuthed(q(),{op:"set-presence","room-id":e,data:n})}_tryJoinRoom(e,n){this._trySendAuthed(q(),{op:"join-room","room-id":e,data:n}),delete this._roomsPendingLeave[e]}_tryLeaveRoom(e){this._trySendAuthed(q(),{op:"leave-room","room-id":e})}_trySetRoomConnected(e,n){const r=this._rooms[e];r&&(r.isConnected=n)}subscribePresence(e,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(e){var n,r;(r=(n=this._presence[e])===null||n===void 0?void 0:n.handlers)===null||r===void 0||r.forEach(i=>{this._notifyPresenceSub(e,i)})}_notifyPresenceSub(e,n){const r=this.getPresence("",e,n);r&&(n.prev&&!ma(r,n.prev)||(n.prev=r,n.cb(r)))}_patchPresencePeers(e,n){var r,i,s;const o=((i=(r=this._presence[e])===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[e])===null||s===void 0||s.result;const u=_t(a,d=>{for(let[c,f,h]of n)switch(f){case"+":Hi(d,c,h);break;case"r":ur(d,c,h);break;case"-":cr(d,c);break}delete d[this._sessionId]});this._setPresencePeers(e,u)}_setPresencePeers(e,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=_t(this._presence,s=>{ur(s,[e,"result","peers"],i)})}publishTopic({roomType:e,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:e,data:i});return}this._tryBroadcast(n,e,r,i)}}_tryBroadcast(e,n,r,i){this._trySendAuthed(q(),{op:"client-broadcast","room-id":e,roomType:n,topic:r,data:i})}subscribeTopic(e,n,r){const i=this.joinRoom(e);return this._broadcastSubs[e]=this._broadcastSubs[e]||{},this._broadcastSubs[e][n]=this._broadcastSubs[e][n]||[],this._broadcastSubs[e][n].push(r),this._presence[e]=this._presence[e]||{},()=>{this._broadcastSubs[e][n]=this._broadcastSubs[e][n].filter(s=>s!==r),this._broadcastSubs[e][n].length||delete this._broadcastSubs[e][n],i()}}_notifyBroadcastSubs(e,n,r){var i,s,o;(o=(s=(i=this._broadcastSubs)===null||i===void 0?void 0:i[e])===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,y=r.data["peer-id"]===this._sessionId?(c=(d=this._presence[e])===null||d===void 0?void 0:d.result)===null||c===void 0?void 0:c.user:(p=(h=(f=this._presence[e])===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(_,y)})}uploadFile(e,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 ha(Object.assign(Object.assign({},r),{apiURI:this.config.apiURI,appId:this.config.appId,path:e,file:n,refreshToken:o}))})}deleteFile(e){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 pa({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}upload(e,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=e||n.name,a=yield ya({apiURI:this.config.apiURI,appId:this.config.appId,fileName:o,refreshToken:s});return yield _a(a,n)})}getDownloadUrl(e){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 ba({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}}function za(t,e){return new At(ai(t,e),e,void 0)}function Va(t){return new Et(t,{})}function qa(){return new J("string",!0,!1)}function Ga(){return new J("number",!0,!1)}function Ba(){return new J("boolean",!0,!1)}function Qa(){return new J("date",!0,!1)}function Ya(){return new J("json",!0,!1)}function Ha(){return new J("json",!0,!1)}function ai(t,e){var n,r,i,s;const o={fwd:{},rev:{}};for(const u of Object.values(e))(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(t).map(([u,d])=>[u,new Et(d.attrs,Object.assign(Object.assign({},o.fwd[u]),o.rev[u]))]))}function Ja({entities:t,links:e,rooms:n}){const r=e??{},i=n??{};return new At(ai(t,r),r,i)}const Za={graph:za,schema:Ja,entity:Va,string:qa,number:Ga,boolean:Ba,date:Qa,json:Ya,any:Ha};let kt;function Xa(t,e){kt==null||kt.dispose();const n=su(e),r=nu(e,a),i=tu(eu(t));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),kt={dispose:u}}return d()}function eu(t){return`${wn||Lr?"http://localhost:3000":"https://instantdb.com"}/_devtool?appId=${t}`}function tu(t){const e=document.createElement("iframe");return e.src=t,e.className="instant-devtool-iframe",Object.assign(e.style,{width:"100%",height:"100%",backgroundColor:"white",border:"none"}),{element:e}}function nu(t,e){const n=`
1
+ (function(Q,C){typeof exports=="object"&&typeof module<"u"?C(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],C):(Q=typeof globalThis<"u"?globalThis:Q||self,C(Q.instantReact={},Q.React))})(this,function(Q,C){"use strict";function ee(t){if(typeof t=="number")return(Math.abs(t*2654435761)>>>0).toString(16);if(typeof t=="boolean")return t?"1":"0";if(t===null)return"null";if(t===void 0)return"undefined";if(typeof t=="string"){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24),e=e>>>0;return e.toString(16)}if(Array.isArray(t)){let e=2166136261;for(let n=0;n<t.length;n++){e^=(n+1)*2654435761;const r=ee(t[n]);for(let i=0;i<r.length;i++)e^=r.charCodeAt(i),e*=16777619,e=e>>>0}return e.toString(16)}if(typeof t=="object"){let e=2166136261;const n=Object.keys(t).sort();for(let r=0;r<n.length;r++){const i=n[r],s=ee(i);e^=parseInt(s,16),e*=16777619,e=e>>>0;const o=ee(t[i]);e^=parseInt(o,16),e*=16777619,e=e>>>0}return e.toString(16)}return ee(String(t))}const $={Remove:"remove",Replace:"replace",Add:"add"},Qn=Symbol.for("__MUTATIVE_PROXY_DRAFT__"),Li=Symbol("__MUTATIVE_RAW_RETURN_SYMBOL__"),lt=Symbol.iterator,oe={mutable:"mutable",immutable:"immutable"},Kt={};function Qe(t,e){return t instanceof Map?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Yn(t,e){if(e in t){let n=Reflect.getPrototypeOf(t);for(;n;){const r=Reflect.getOwnPropertyDescriptor(n,e);if(r)return r;n=Reflect.getPrototypeOf(n)}}}function Wt(t){return Object.getPrototypeOf(t)===Set.prototype}function zt(t){return Object.getPrototypeOf(t)===Map.prototype}function ae(t){var e;return(e=t.copy)!==null&&e!==void 0?e:t.original}function Ee(t){return!!k(t)}function k(t){return typeof t!="object"?null:t==null?void 0:t[Qn]}function Vt(t){var e;const n=k(t);return n?(e=n.copy)!==null&&e!==void 0?e:n.original:t}function de(t,e){if(!t||typeof t!="object")return!1;let n;return Object.getPrototypeOf(t)===Object.prototype||Array.isArray(t)||t instanceof Map||t instanceof Set||!!(e!=null&&e.mark)&&((n=e.mark(t,oe))===oe.immutable||typeof n=="function")}function Hn(t,e=[]){if(Object.hasOwnProperty.call(t,"key")){const n=t.parent.copy,r=k(ge(n,t.key));if(r!==null&&(r==null?void 0:r.original)!==t.original)return null;const i=t.parent.type===3,s=i?Array.from(t.parent.setMap.keys()).indexOf(t.key):t.key;if(!(i&&n.size>s||Qe(n,s)))return null;e.push(s)}if(t.parent)return Hn(t.parent,e);e.reverse();try{Ni(t.copy,e)}catch{return null}return e}function Ae(t){return Array.isArray(t)?1:t instanceof Map?2:t instanceof Set?3:0}function ge(t,e){return Ae(t)===2?t.get(e):t[e]}function Ye(t,e,n){Ae(t)===2?t.set(e,n):t[e]=n}function qt(t,e){const n=k(t);return(n?ae(n):t)[e]}function me(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function Gt(t){if(t)for(;t.finalities.revoke.length>0;)t.finalities.revoke.pop()()}function ke(t,e){return e?t:[""].concat(t).map(n=>{const r=`${n}`;return r.indexOf("/")===-1&&r.indexOf("~")===-1?r:r.replace(/~/g,"~0").replace(/\//g,"~1")}).join("/")}function Ni(t,e){for(let n=0;n<e.length-1;n+=1){const r=e[n];if(t=ge(Ae(t)===3?Array.from(t):t,r),typeof t!="object")throw new Error(`Cannot resolve patch at '${e.join("/")}'.`)}return t}function Fi(t){const e=Object.create(Object.getPrototypeOf(t));return Reflect.ownKeys(t).forEach(n=>{let r=Reflect.getOwnPropertyDescriptor(t,n);if(r.enumerable&&r.configurable&&r.writable){e[n]=t[n];return}r.writable||(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(r={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[n]}),Reflect.defineProperty(e,n,r)}),e}const Ki=Object.prototype.propertyIsEnumerable;function Jn(t,e){let n;if(Array.isArray(t))return Array.prototype.concat.call(t);if(t instanceof Set){if(!Wt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t.values())}return Set.prototype.difference?Set.prototype.difference.call(t,new Set):new Set(t.values())}else if(t instanceof Map){if(!zt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(t)}return new Map(t)}else if(e!=null&&e.mark&&(n=e.mark(t,oe),n!==void 0)&&n!==oe.mutable){if(n===oe.immutable)return Fi(t);if(typeof n=="function"){if(e.enablePatches||e.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 t=="object"&&Object.getPrototypeOf(t)===Object.prototype){const r={};return Object.keys(t).forEach(i=>{r[i]=t[i]}),Object.getOwnPropertySymbols(t).forEach(i=>{Ki.call(t,i)&&(r[i]=t[i])}),r}else throw new Error("Please check mark() to ensure that it is a stable marker draftable function.")}function H(t){t.copy||(t.copy=Jn(t.original,t.options))}function He(t){if(!de(t))return Vt(t);if(Array.isArray(t))return t.map(He);if(t instanceof Map){const n=Array.from(t.entries()).map(([r,i])=>[r,He(i)]);if(!zt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Map(n)}if(t instanceof Set){const n=Array.from(t).map(He);if(!Wt(t)){const r=Object.getPrototypeOf(t).constructor;return new r(n)}return new Set(n)}const e=Object.create(Object.getPrototypeOf(t));for(const n in t)e[n]=He(t[n]);return e}function ht(t){return Ee(t)?He(t):t}function ye(t){var e;t.assignedMap=(e=t.assignedMap)!==null&&e!==void 0?e:new Map,t.operated||(t.operated=!0,t.parent&&ye(t.parent))}function Zn(){throw new Error("Cannot modify frozen object")}function Re(t,e,n,r,i){{n=n??new WeakMap,r=r??[],i=i??[];const o=n.has(t)?n.get(t):t;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(e)}else r.push(o)}if(Object.isFrozen(t)||Ee(t)){r.pop(),i.pop();return}switch(Ae(t)){case 2:for(const[a,u]of t)Re(a,a,n,r,i),Re(u,a,n,r,i);t.set=t.clear=t.delete=Zn;break;case 3:for(const a of t)Re(a,a,n,r,i);t.add=t.clear=t.delete=Zn;break;case 1:Object.freeze(t);let o=0;for(const a of t)Re(a,o,n,r,i),o+=1;break;default:Object.freeze(t),Object.keys(t).forEach(a=>{const u=t[a];Re(u,a,n,r,i)})}r.pop(),i.pop()}function Bt(t,e){const n=Ae(t);if(n===0)Reflect.ownKeys(t).forEach(r=>{e(r,t[r],t)});else if(n===1){let r=0;for(const i of t)e(r,i,t),r+=1}else t.forEach((r,i)=>e(i,r,t))}function Xn(t,e,n){if(Ee(t)||!de(t,n)||e.has(t)||Object.isFrozen(t))return;const r=t instanceof Set,i=r?new Map:void 0;if(e.add(t),Bt(t,(s,o)=>{var a;if(Ee(o)){const u=k(o);H(u);const d=!((a=u.assignedMap)===null||a===void 0)&&a.size||u.operated?u.copy:u.original;Ye(r?i:t,s,d)}else Xn(o,e,n)}),i){const s=t,o=Array.from(s);s.clear(),o.forEach(a=>{s.add(i.has(a)?i.get(a):a)})}}function Wi(t,e){const n=t.type===3?t.setMap:t.copy;t.finalities.revoke.length>1&&t.assignedMap.get(e)&&n&&Xn(ge(n,e),t.finalities.handledSet,t.options)}function Qt(t){t.type===3&&t.copy&&(t.copy.clear(),t.setMap.forEach(e=>{t.copy.add(Vt(e))}))}function Yt(t,e,n,r){if(t.operated&&t.assignedMap&&t.assignedMap.size>0&&!t.finalized){if(n&&r){const s=Hn(t);s&&e(t,s,n,r)}t.finalized=!0}}function Ht(t,e,n,r){const i=k(n);i&&(i.callbacks||(i.callbacks=[]),i.callbacks.push((s,o)=>{var a;const u=t.type===3?t.setMap:t.copy;if(me(ge(u,e),n)){let d=i.original;i.copy&&(d=i.copy),Qt(t),Yt(t,r,s,o),t.options.enableAutoFreeze&&(t.options.updatedValues=(a=t.options.updatedValues)!==null&&a!==void 0?a:new WeakMap,t.options.updatedValues.set(d,i.original)),Ye(u,e,d)}}),t.options.enableAutoFreeze&&i.finalities!==t.finalities&&(t.options.enableAutoFreeze=!1)),de(n,t.options)&&t.finalities.draft.push(()=>{const s=t.type===3?t.setMap:t.copy;me(ge(s,e),n)&&Wi(t,e)})}function zi(t,e,n,r,i){let{original:s,assignedMap:o,options:a}=t,u=t.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=e.concat([d]),f=ke(c,i);n.push({op:$.Replace,path:f,value:ht(u[d])}),r.push({op:$.Replace,path:f,value:ht(s[d])})}for(let d=s.length;d<u.length;d+=1){const c=e.concat([d]),f=ke(c,i);n.push({op:$.Add,path:f,value:ht(u[d])})}if(s.length<u.length){const{arrayLengthAssignment:d=!0}=a.enablePatches;if(d){const c=e.concat(["length"]),f=ke(c,i);r.push({op:$.Replace,path:f,value:s.length})}else for(let c=u.length;s.length<c;c-=1){const f=e.concat([c-1]),h=ke(f,i);r.push({op:$.Remove,path:h})}}}function Vi({original:t,copy:e,assignedMap:n},r,i,s,o){n.forEach((a,u)=>{const d=ge(t,u),c=ht(ge(e,u)),f=a?Qe(t,u)?$.Replace:$.Add:$.Remove;if(me(d,c)&&f===$.Replace)return;const h=r.concat(u),p=ke(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 qi({original:t,copy:e},n,r,i,s){let o=0;t.forEach(a=>{if(!e.has(a)){const u=n.concat([o]),d=ke(u,s);r.push({op:$.Remove,path:d,value:a}),i.unshift({op:$.Add,path:d,value:a})}o+=1}),o=0,e.forEach(a=>{if(!t.has(a)){const u=n.concat([o]),d=ke(u,s);r.push({op:$.Add,path:d,value:a}),i.unshift({op:$.Remove,path:d,value:a})}o+=1})}function Je(t,e,n,r){const{pathAsArray:i=!0}=t.options.enablePatches;switch(t.type){case 0:case 2:return Vi(t,e,n,r,i);case 1:return zi(t,e,n,r,i);case 3:return qi(t,e,n,r,i)}}const pt=(t,e,n=!1)=>{if(typeof t=="object"&&t!==null&&(!de(t,e)||n))throw new Error("Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.")},Jt={get size(){return ae(k(this)).size},has(t){return ae(k(this)).has(t)},set(t,e){const n=k(this),r=ae(n);return(!r.has(t)||!me(r.get(t),e))&&(H(n),ye(n),n.assignedMap.set(t,!0),n.copy.set(t,e),Ht(n,t,e,Je)),this},delete(t){if(!this.has(t))return!1;const e=k(this);return H(e),ye(e),e.original.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.copy.delete(t),!0},clear(){const t=k(this);if(this.size){H(t),ye(t),t.assignedMap=new Map;for(const[e]of t.original)t.assignedMap.set(e,!1);t.copy.clear()}},forEach(t,e){const n=k(this);ae(n).forEach((r,i)=>{t.call(e,this.get(i),i,this)})},get(t){var e,n;const r=k(this),i=ae(r).get(t),s=((n=(e=r.options).mark)===null||n===void 0?void 0:n.call(e,i,oe))===oe.mutable;if(r.options.strict&&pt(i,r.options,s),s||r.finalized||!de(i,r.options)||i!==r.original.get(t))return i;const o=Kt.createDraft({original:i,parentDraft:r,key:t,finalities:r.finalities,options:r.options});return H(r),r.copy.set(t,o),o},keys(){return ae(k(this)).keys()},values(){const t=this.keys();return{[lt]:()=>this.values(),next:()=>{const e=t.next();return e.done?e:{done:!1,value:this.get(e.value)}}}},entries(){const t=this.keys();return{[lt]:()=>this.entries(),next:()=>{const e=t.next();if(e.done)return e;const n=this.get(e.value);return{done:!1,value:[e.value,n]}}}},[lt](){return this.entries()}},Gi=Reflect.ownKeys(Jt),er=(t,e,{isValuesIterator:n})=>()=>{var r,i;const s=e.next();if(s.done)return s;const o=s.value;let a=t.setMap.get(o);const u=k(a),d=((i=(r=t.options).mark)===null||i===void 0?void 0:i.call(r,a,oe))===oe.mutable;if(t.options.strict&&pt(o,t.options,d),!d&&!u&&de(o,t.options)&&!t.finalized&&t.original.has(o)){const c=Kt.createDraft({original:o,parentDraft:t,key:o,finalities:t.finalities,options:t.options});t.setMap.set(o,c),a=c}else u&&(a=u.proxy);return{done:!1,value:n?a:[a,a]}},yt={get size(){return k(this).setMap.size},has(t){const e=k(this);if(e.setMap.has(t))return!0;H(e);const n=k(t);return!!(n&&e.setMap.has(n.original))},add(t){const e=k(this);return this.has(t)||(H(e),ye(e),e.assignedMap.set(t,!0),e.setMap.set(t,t),Ht(e,t,t,Je)),this},delete(t){if(!this.has(t))return!1;const e=k(this);H(e),ye(e);const n=k(t);return n&&e.setMap.has(n.original)?(e.assignedMap.set(n.original,!1),e.setMap.delete(n.original)):(!n&&e.setMap.has(t)?e.assignedMap.set(t,!1):e.assignedMap.delete(t),e.setMap.delete(t))},clear(){if(!this.size)return;const t=k(this);H(t),ye(t);for(const e of t.original)t.assignedMap.set(e,!1);t.setMap.clear()},values(){const t=k(this);H(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.values(),next:er(t,e,{isValuesIterator:!0})}},entries(){const t=k(this);H(t);const e=t.setMap.keys();return{[Symbol.iterator]:()=>this.entries(),next:er(t,e,{isValuesIterator:!1})}},keys(){return this.values()},[lt](){return this.values()},forEach(t,e){const n=this.values();let r=n.next();for(;!r.done;)t.call(e,r.value,r.value,this),r=n.next()}};Set.prototype.difference&&Object.assign(yt,{intersection(t){return Set.prototype.intersection.call(new Set(this.values()),t)},union(t){return Set.prototype.union.call(new Set(this.values()),t)},difference(t){return Set.prototype.difference.call(new Set(this.values()),t)},symmetricDifference(t){return Set.prototype.symmetricDifference.call(new Set(this.values()),t)},isSubsetOf(t){return Set.prototype.isSubsetOf.call(new Set(this.values()),t)},isSupersetOf(t){return Set.prototype.isSupersetOf.call(new Set(this.values()),t)},isDisjointFrom(t){return Set.prototype.isDisjointFrom.call(new Set(this.values()),t)}});const Bi=Reflect.ownKeys(yt),tr=new WeakSet,nr={get(t,e,n){var r,i;const s=(r=t.copy)===null||r===void 0?void 0:r[e];if(s&&tr.has(s))return s;if(e===Qn)return t;let o;if(t.options.mark){const d=e==="size"&&(t.original instanceof Map||t.original instanceof Set)?Reflect.get(t.original,e):Reflect.get(t.original,e,n);if(o=t.options.mark(d,oe),o===oe.mutable)return t.options.strict&&pt(d,t.options,!0),d}const a=ae(t);if(a instanceof Map&&Gi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(Jt,"size").get.call(t.proxy);const d=Jt[e];if(d)return d.bind(t.proxy)}if(a instanceof Set&&Bi.includes(e)){if(e==="size")return Object.getOwnPropertyDescriptor(yt,"size").get.call(t.proxy);const d=yt[e];if(d)return d.bind(t.proxy)}if(!Qe(a,e)){const d=Yn(a,e);return d?"value"in d?d.value:(i=d.get)===null||i===void 0?void 0:i.call(t.proxy):void 0}const u=a[e];if(t.options.strict&&pt(u,t.options),t.finalized||!de(u,t.options))return u;if(u===qt(t.original,e)){if(H(t),t.copy[e]=Zt({original:t.original[e],parentDraft:t,key:t.type===1?Number(e):e,finalities:t.finalities,options:t.options}),typeof o=="function"){const d=k(t.copy[e]);return H(d),ye(d),d.copy}return t.copy[e]}return u},set(t,e,n){var r;if(t.type===3||t.type===2)throw new Error("Map/Set draft does not support any property assignment.");let i;if(t.type===1&&e!=="length"&&!(Number.isInteger(i=Number(e))&&i>=0&&(e===0||i===0||String(i)===String(e))))throw new Error("Only supports setting array indices and the 'length' property.");const s=Yn(ae(t),e);if(s!=null&&s.set)return s.set.call(t.proxy,n),!0;const o=qt(ae(t),e),a=k(o);return a&&me(a.original,n)?(t.copy[e]=n,t.assignedMap=(r=t.assignedMap)!==null&&r!==void 0?r:new Map,t.assignedMap.set(e,!1),!0):(me(n,o)&&(n!==void 0||Qe(t.original,e))||(H(t),ye(t),Qe(t.original,e)&&me(n,t.original[e])?t.assignedMap.delete(e):t.assignedMap.set(e,!0),t.copy[e]=n,Ht(t,e,n,Je)),!0)},has(t,e){return e in ae(t)},ownKeys(t){return Reflect.ownKeys(ae(t))},getOwnPropertyDescriptor(t,e){const n=ae(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.type!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},getPrototypeOf(t){return Reflect.getPrototypeOf(t.original)},setPrototypeOf(){throw new Error("Cannot call 'setPrototypeOf()' on drafts")},defineProperty(){throw new Error("Cannot call 'defineProperty()' on drafts")},deleteProperty(t,e){var n;return t.type===1?nr.set.call(this,t,e,void 0,t.proxy):(qt(t.original,e)!==void 0||e in t.original?(H(t),ye(t),t.assignedMap.set(e,!1)):(t.assignedMap=(n=t.assignedMap)!==null&&n!==void 0?n:new Map,t.assignedMap.delete(e)),t.copy&&delete t.copy[e],!0)}};function Zt(t){const{original:e,parentDraft:n,key:r,finalities:i,options:s}=t,o=Ae(e),a={type:o,finalized:!1,parent:n,original:e,copy:null,proxy:null,finalities:i,options:s,setMap:o===3?new Map(e.entries()):void 0};(r||"key"in t)&&(a.key=r);const{proxy:u,revoke:d}=Proxy.revocable(o===1?Object.assign([],a):a,nr);if(i.revoke.push(d),tr.add(u),a.proxy=u,n){const c=n;c.finalities.draft.push((f,h)=>{var p,_;const y=k(u);let g=c.type===3?c.setMap:c.copy;const T=ge(g,r),w=k(T);if(w){let v=w.original;w.operated&&(v=Vt(T)),Qt(w),Yt(w,Je,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)),Ye(g,r,v)}(_=y.callbacks)===null||_===void 0||_.forEach(v=>{v(f,h)})})}else{const c=k(u);c.finalities.draft.push((f,h)=>{Qt(c),Yt(c,Je,f,h)})}return u}Kt.createDraft=Zt;function Qi(t,e,n,r,i){var s;const o=k(t),a=(s=o==null?void 0:o.original)!==null&&s!==void 0?s:t,u=!!e.length;if(o!=null&&o.operated)for(;o.finalities.draft.length>0;)o.finalities.draft.pop()(n,r);const d=u?e[0]:o?o.operated?o.copy:o.original:t;return o&&Gt(o),i&&Re(d,d,o==null?void 0:o.options.updatedValues),[d,n&&u?[{op:$.Replace,path:[],value:e[0]}]:n,r&&u?[{op:$.Replace,path:[],value:a}]:r]}function Yi(t,e){var n;const r={draft:[],revoke:[],handledSet:new WeakSet};let i,s;e.enablePatches&&(i=[],s=[]);const a=((n=e.mark)===null||n===void 0?void 0:n.call(e,t,oe))===oe.mutable||!de(t,e)?t:Zt({original:t,parentDraft:null,finalities:r,options:e});return[a,(u=[])=>{const[d,c,f]=Qi(a,u,i,s,e.enableAutoFreeze);return e.enablePatches?[d,c,f]:d}]}function Xt(t){const{rootDraft:e,value:n,useRawReturn:r=!1,isRoot:i=!0}=t;Bt(n,(s,o,a)=>{const u=k(o);if(u&&e&&u.finalities===e.finalities){t.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 Ye(a,s,d)}else typeof o=="object"&&o!==null&&(t.value=o,t.isRoot=!1,Xt(t))}),i&&(t.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 rr(t){var e;const n=k(t);if(!de(t,n==null?void 0:n.options))return t;const r=Ae(t);if(n&&!n.operated)return n.original;let i;function s(){i=r===2?zt(t)?new Map(t):new(Object.getPrototypeOf(t)).constructor(t):r===3?Array.from(n.setMap.values()):Jn(t,n==null?void 0:n.options)}if(n){n.finalized=!0;try{s()}finally{n.finalized=!1}}else i=t;if(Bt(i,(o,a)=>{if(n&&me(ge(n.original,o),a))return;const u=rr(a);u!==a&&(i===t&&s(),Ye(i,o,u))}),r===3){const o=(e=n==null?void 0:n.original)!==null&&e!==void 0?e:i;return Wt(o)?new Set(i):new(Object.getPrototypeOf(o)).constructor(i)}return i}function ir(t){if(!Ee(t))throw new Error(`current() is only used for Draft, parameter: ${t}`);return rr(t)}const _t=(t=>function e(n,r,i){var s,o,a;if(typeof n=="function"&&typeof r!="function")return function(E,...N){return e(E,W=>n.call(this,W,...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({},t),c);const f=Ee(u)?ir(u):u,h=Array.isArray(c.mark)?(E,N)=>{for(const W of c.mark){if(typeof W!="function")throw new Error(`Invalid mark: ${W}, 'mark' should be a function.`);const _e=W(E,N);if(_e)return _e}}: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]=Yi(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 Gt(k(T)),E}const M=E=>{const N=k(T);if(!Ee(E)){if(E!==void 0&&!me(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 _e=E==null?void 0:E[Li];if(_e){const O=_e[0];return g.strict&&typeof E=="object"&&E!==null&&Xt({rootDraft:N,value:E,useRawReturn:!0}),w([O])}if(E!==void 0)return typeof E=="object"&&E!==null&&Xt({rootDraft:N,value:E}),w([E])}if(E===T||E===void 0)return w([]);const W=k(E);if(g===W.options){if(W.operated)throw new Error("Cannot return a modified child draft.");return w([ir(E)])}return w([E])};return v instanceof Promise?v.then(M,E=>{throw Gt(k(T)),E}):M(v)})();Object.prototype.constructor.toString();function sr(t,e){const n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&Object.keys(t).every(i=>e.hasOwnProperty(i))}function or(t,e){return Object.keys(t).length===Object.keys(e).length&&Object.keys(t).every(n=>e.hasOwnProperty(n)&&t[n]===e[n])}function bt(t,e){return typeof t!="object"||typeof e!="object"||t===null||e===null?t===e:sr(t,e)?Object.keys(t).every(n=>bt(t[n],e[n])):!1}function en(t){if(!Ze(t))return t;const e={};for(const[n,r]of Object.entries(t))r!==void 0&&(e[n]=r);return e}function ar(t,e){if(!Ze(t)||!Ze(e))return e;const n=Object.assign({},t);for(const r of Object.keys(e)){if(e[r]===void 0)continue;if(e[r]===null){delete n[r];continue}const i=Ze(t[r])&&Ze(e[r]);n[r]=i?ar(t[r],e[r]):e[r]}return n}function Ze(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Hi(t,e,n){if(!t||e.length===0)return;let r=t||{};for(let s=0;s<e.length-1;s++){const o=e[s];(!(o in r)||typeof r[o]!="object")&&(r[o]=typeof e[s+1]=="number"?[]:{}),r=r[o]}const i=e[e.length-1];Array.isArray(r)&&typeof i=="number"?r.splice(i,0,n):r[i]=n}function ur(t,e,n){if(!t||e.length===0)return;let r=t||{};for(let i=0;i<e.length-1;i++){const s=e[i];(!(s in r)||typeof r[s]!="object")&&(r[s]=typeof e[i+1]=="number"?[]:{}),r=r[s]}r[e[e.length-1]]=n}function cr(t,e){if(!t||e.length===0)return;const[n,...r]=e;if(n in t){if(r.length===0){Array.isArray(t)?t.splice(n,1):delete t[n];return}cr(t[n],r),Ji(t[n])&&delete t[n]}}function Ji(t){return t&&Object.keys(t).length===0}const dr=/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$/,Zi={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 Xi(t){return new Date(t)}function es(t){return new Date(t+"Z")}const ts=/^(\d+)[\./-](\d+)[\./-](\d+)$/;function ns(t){const e=t.match(ts);if(!e)return null;const[n,r,i,s]=e;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 rs(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function is(t){const[e,n]=t.split(" ");return new Date(e+"T"+n+"Z")}function ss(t){return new Date(t)}function os(t){const e=/^(\w{3}) (\w{3}) (\d{2}) (\d{4})$/;if(!t.match(e))throw new Error(`Unable to parse \`${t}\` as a date.`);const r=new Date(t+" UTC");return new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),0,0,0,0))}function as(t){const e=/^(.+T.+)([+-])(\d{2})$/,n=t.match(e);if(n){const[,r,i,s]=n,o=`${r}${i}${s}:00`;return new Date(o)}return null}function us(t){const[e,n]=t.split(", "),[r,i,s]=e.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: ${t}`);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 cs(t){switch(t){case"epoch":return new Date(0);case"infinity":case"-infinity":case"today":case"tomorrow":case"yesterday":return null}}function ds(t){const e=t.match(dr);if(!e)return null;const[n]=e,r=Zi[n],i=new Date(t.replace(dr,"Z"));return new Date(i.getTime()-r*1e3)}const fs=[ns,is,os,us,ss,es,as,rs,Xi,cs,ds];function ls(t,e){try{const n=t(e);return n instanceof Date&&!isNaN(n.getTime())?n:null}catch{return null}}function tn(t){for(const e of fs){const n=ls(e,t);if(n)return n}return null}function hs(t){try{const e=JSON.parse(t);return typeof e=="string"?tn(e):null}catch{return null}}function gt(t){if(t!==void 0){if(t===null)return null;if(t instanceof Date)return t;if(typeof t=="string"){const e=tn(t)||hs(t)||tn(t.trim());if(!e)throw new Error(`Unable to parse \`${t}\` as a date.`);return e}else if(typeof t=="number")return new Date(t);throw new Error(`Invalid date value \`${t}\`. Expected a date, number, or string, got type ${typeof t}.`)}}function ps(t){return t.cardinality==="one"}function nn(t){return t["value-type"]==="ref"}function rn(t){return t["value-type"]==="blob"}function xe(t,e){return t[e]}function mt(t,e){return e.reduce((n,r)=>n&&n.get(r),t)}function fe(t,e){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.delete(e[0]);return}const[n,...r]=e;t.has(n)&&fe(t.get(n),r)}function te(t,e,n){if(e.length===0)throw new Error("path must have at least one element");if(e.length===1){t.set(e[0],n);return}const[r,...i]=e;let s=t.get(r);s||(s=new Map,t.set(r,s)),te(s,i,n)}function fr(t,e,n){const r=new Map,i=new Map,s=new Map;for(const o of e){let[a,u,d,c]=o;const f=xe(t,u);if(!f){console.warn("no such attr",a,t);continue}f["checked-data-type"]==="date"&&n&&(d=gt(d),o[2]=d),nn(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 lr(t){const e=new Map,n=new Map,r=new Map,i=new Map;for(const s of Object.values(t)){const o=s["forward-identity"],[a,u,d]=o,c=s["reverse-identity"];if(te(r,[u,d],s),rn(s)&&te(e,[u,d],s),s["primary?"]&&te(n,[u],s),c){const[f,h,p]=c;te(i,[h,p],s)}}return{blobAttrs:e,primaryKeys:n,forwardIdents:r,revIdents:i}}function ys(t){return{__type:t.__type,attrs:t.attrs,triples:ne(t.eav,3),cardinalityInference:t.cardinalityInference,linkIndex:t.linkIndex,useDateObjects:t.useDateObjects}}function _s(t){return on(t.attrs,t.triples,t.cardinalityInference,t.linkIndex,t.useDateObjects)}function sn(t){t.attrIndexes=lr(t.attrs)}function on(t,e,n,r,i){const s=fr(t,e,i);return s.useDateObjects=i,s.attrs=t,s.attrIndexes=lr(t),s.cardinalityInference=n,s.linkIndex=r,s.__type="store",s}function Xe(t,e){var n,r;let i;if(Array.isArray(e[0])){const[o,a]=e[0],u=t.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=e[0];if(!i)return null;const s=e[2];if(Array.isArray(s)&&s.length===2&&t.aev.get(s[0])){const[o,a]=s,u=t.aev.get(o);if(!u)return null;const c=(r=ne(u,2).find(y=>y[2]===a))===null||r===void 0?void 0:r[0];if(!c)return null;const[f,h,p,..._]=e;return[i,h,c,..._]}else{const[o,...a]=e;return[i,...a]}}function bs(t,e){const n=Xe(t,e);if(!n)return;const[r,i,s]=n,o=xe(t.attrs,i);o&&(fe(t.eav,[r,i,s]),fe(t.aev,[i,r,s]),nn(o)&&fe(t.vae,[s,i,r]))}let gs=0;function hr(t,e,n){const[r,i,s]=n;let o;const a=mt(t.ea,[r,i,s]);return a&&(o=a[3]),o||Date.now()*10+gs++}function ms(t,e){var n;const r=Xe(t,e);if(!r)return;let[i,s,o]=r;const a=xe(t.attrs,s);if(!a)return;a["checked-data-type"]==="date"&&t.useDateObjects&&(o=gt(o));const u=mt(t.eav,[i,s,o]),d=(n=u==null?void 0:u[3])!==null&&n!==void 0?n:hr(t,a,r),c=[i,s,o,d];ps(a)?(te(t.eav,[i,s],new Map([[o,c]])),te(t.aev,[s,i],new Map([[o,c]]))):(te(t.eav,[i,s,o],c),te(t.aev,[s,i,o],c)),nn(a)&&te(t.vae,[o,s,i],c)}function ws(t,e){var n;const r=Xe(t,e);if(!r)return;const[i,s,o]=r,a=xe(t.attrs,s);if(!a)return;if(!rn(a))throw new Error("merge operation is not supported for links");const u=mt(t.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=ar(c,o),h=[i,s,f,hr(t,a,d)];te(t.eav,[i,s],new Map([[f,h]]))}function an(t,e){var n,r;const[i,s]=e,o=Xe(t,[i]);if(!o)return;const[a]=o,u=t.eav.get(a);if(u){for(const c of u.keys()){const f=t.attrs[c];f&&f["on-delete-reverse"]==="cascade"&&ne(u.get(c),1).forEach(([h,p,_])=>{var y;return an(t,[_,(y=f["reverse-identity"])===null||y===void 0?void 0:y[1]])}),(!s||!f||((n=f["forward-identity"])===null||n===void 0?void 0:n[1])===s)&&(fe(t.aev,[c,a]),fe(t.eav,[a,c]))}u.size===0&&fe(t.eav,[a])}const d=t.vae.get(a)&&ne(t.vae.get(a),2);d&&d.forEach(c=>{var f,h,p;const[_,y,g]=c,T=t.attrs[y];(!s||!T||((f=T["reverse-identity"])===null||f===void 0?void 0:f[1])===s)&&(fe(t.eav,[_,y,g]),fe(t.aev,[y,_,g]),fe(t.vae,[g,y,_])),T&&T["on-delete"]==="cascade"&&((h=T["reverse-identity"])===null||h===void 0?void 0:h[1])===s&&an(t,[_,(p=T["forward-identity"])===null||p===void 0?void 0:p[1]])}),((r=t.vae.get(a))===null||r===void 0?void 0:r.size)===0&&fe(t.vae,[a])}function pr(t,e){const n=fr(t.attrs,e,t.useDateObjects);Object.keys(n).forEach(r=>{t[r]=n[r]})}function Ts(t,[e]){t.attrs[e.id]=e,sn(t)}function yr(t){return ne(t.eav,3)}function vs(t,[e]){if(!t.attrs[e])return;const n=yr(t).filter(([r,i])=>i!==e);delete t.attrs[e],sn(t),pr(t,n)}function Ss(t,[e]){const n=t.attrs[e.id];n&&(t.attrs[e.id]=Object.assign(Object.assign({},n),e),sn(t),pr(t,yr(t)))}function Os(t,e){const[n,...r]=e;switch(n){case"add-triple":ms(t,r);break;case"deep-merge-triple":ws(t,r);break;case"retract-triple":bs(t,r);break;case"delete-entity":an(t,r);break;case"add-attr":Ts(t,r);break;case"delete-attr":vs(t,r);break;case"update-attr":Ss(t,r);break;case"restore-attr":break;case"rule-params":break;default:throw new Error(`unhandled transaction action: ${n}`)}}function ne(t,e,n=[]){if(!t||e===0)return n;if(e===1){for(const r of t.values())n.push(r);return n}for(const r of t.values())ne(r,e-1,n);return n}function wt(t,e,n){var r,i;const s=[];if(n!=null&&n.hasOwnProperty("$not")){for(const a of e.keys())n.$not!==a&&s.push(e.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 e.keys()){const f=t.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(e.get(c))}else{const c=t.aev.get(a);for(const f of e.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(e.get(f))}}return s}if(n!=null&&n.$comparator)return ne(e,1).filter(n.$op);const o=n.in||n.$in||[n];for(const a of o){const u=e.get(a);u&&s.push(u)}return s}function Es(t,e,n){let r="";return t!==void 0&&(r+="e"),e!==void 0&&(r+="a"),n!==void 0&&(r+="v"),r}function As(t,[e,n,r]){var i,s;switch(Es(e,n,r)){case"e":{const a=t.eav.get(e);return ne(a,2)}case"ea":{const a=(i=t.eav.get(e))===null||i===void 0?void 0:i.get(n);return ne(a,1)}case"eav":{const a=(s=t.eav.get(e))===null||s===void 0?void 0:s.get(n);return a?wt(t,a,r):[]}case"ev":{const a=t.eav.get(e);if(!a)return[];const u=[];for(const d of a.values())u.push(...wt(t,d,r));return u}case"a":{const a=t.aev.get(n);return ne(a,2)}case"av":{const a=t.aev.get(n);if(!a)return[];const u=[];for(const d of a.values())u.push(...wt(t,d,r));return u}case"v":{const a=[];for(const u of t.eav.values())for(const d of u.values())a.push(...wt(t,d,r));return a}default:return ne(t.eav,3)}}function ks(t,e,n){var r;const i={};for(const[s,o]of e.entries()){const a=(r=t.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 De(t,e,n){var r;return(r=t.attrIndexes.forwardIdents.get(e))===null||r===void 0?void 0:r.get(n)}function _r(t,e,n){var r;return(r=t.attrIndexes.revIdents.get(e))===null||r===void 0?void 0:r.get(n)}function js(t,e){return t.attrIndexes.blobAttrs.get(e)}function br(t,e){var n;const r=t.attrIndexes.primaryKeys.get(e);return r||((n=t.attrIndexes.forwardIdents.get(e))===null||n===void 0?void 0:n.get("id"))}function Cs(t,e){const n=Xe(t,e);if(!n)return;const[r,i,s]=n;if(xe(t.attrs,i))return mt(t.eav,[r,i])}function Ps(t,e){const n=e.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=xe(t.attrs,s);if(c){const f=br(t,c["forward-identity"][1]);d=!!Cs(t,[i,f.id,i])}return!(u==="create"&&d||u==="update"&&!d)});return _t(t,r=>{n.forEach(i=>{Os(r,i)})})}function Ms(t){return typeof t=="string"&&t.startsWith("?")}function Is(t,e,n){if(n.hasOwnProperty(t)){const r=n[t];return mr(r,e,n)}return Object.assign(Object.assign({},n),{[t]:e})}function gr(t,e,n){return t===e?n:null}function Rs(t){switch(typeof t){case"string":return t.startsWith("?")?Is:gr;default:return gr}}const xs=["in","$in","$not","$isNull","$comparator"];function Ds(t){for(const e of xs)if(t.hasOwnProperty(e))return!0;return!1}function mr(t,e,n){return n?typeof t=="object"?Ds(t)?n:null:Rs(t)(t,e,n):null}function $s(t,e,n){return t.reduce((r,i,s)=>{const o=e[s];return mr(i,o,r)},n)}function Us(t,e,n){return Fs(t,e,n).map(r=>$s(e,r,n)).filter(r=>r)}function Ls(t,e,n){return e.or?e.or.patterns.flatMap(r=>un(t,r,n)):e.and?e.and.patterns.reduce((r,i)=>un(t,i,r),n):n.flatMap(r=>Us(t,e,r))}function un(t,e,n=[{}]){return e.reduce((r,i)=>Ls(t,i,r),n)}function cn(t,e){return Array.isArray(e)?e.map(n=>cn(t,n)):Ms(e)?t[e]:e}function Ns(t,{find:e,where:n}){return un(t,n).map(i=>cn(i,e))}function Fs(t,e,n){return As(t,cn(n,e))}const Ks=/^(?:[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 $e(t){return typeof t=="string"&&Ks.test(t)}const V=[];for(let t=0;t<256;++t)V.push((t+256).toString(16).slice(1));function Ws(t,e=0){return(V[t[e+0]]+V[t[e+1]]+V[t[e+2]]+V[t[e+3]]+"-"+V[t[e+4]]+V[t[e+5]]+"-"+V[t[e+6]]+V[t[e+7]]+"-"+V[t[e+8]]+V[t[e+9]]+"-"+V[t[e+10]]+V[t[e+11]]+V[t[e+12]]+V[t[e+13]]+V[t[e+14]]+V[t[e+15]]).toLowerCase()}let dn;const zs=new Uint8Array(16);function Vs(){if(!dn){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");dn=crypto.getRandomValues.bind(crypto)}return dn(zs)}const wr={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function qs(t,e,n){var i;if(wr.randomUUID&&!t)return wr.randomUUID();t=t||{};const r=t.random??((i=t.rng)==null?void 0:i.call(t))??Vs();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,Ws(r)}function Tr(t){const e=t.replace(/-/g,""),n=[];for(let r=0;r<e.length;r+=2)n.push(parseInt(e.substring(r,r+2),16));return n}function Gs(t,e){for(let n=0;n<t.length;n++){if(t[n]<e[n])return-1;if(t[n]>e[n])return 1}return 0}function Bs(t,e){return Gs(Tr(t),Tr(e))}function q(){return qs()}function Qs(t,e){return t.localeCompare(e)}function Ys(){let t=Qs;if(typeof Intl=="object"&&Intl.hasOwnProperty("Collator"))try{t=Intl.Collator("en-US").compare}catch{}return t}const Hs=Ys();let Js=0;function et(t){return Tt(`_${t}`,Js++)}function Tt(t,e){return`?${t}-${e}`}class Ue extends Error{constructor(e){super(e),this.name="AttrNotFoundError"}}function Zs(t,e){const n=br(t,e);if(!n)throw new Ue(`Could not find id attr for ${e}`);return n}function vr(t,e,n,r){return[Xs(t,e,n,r)]}function Xs(t,e,n,r){return[t(n,r),Zs(e,n).id,t(n,r),t("time",r)]}function eo(t,e,n){return t.map(r=>r===e?n:r)}function Sr(t,e,n,r,i){const s=De(e,n,i),o=_r(e,n,i),a=s||o;if(!a)throw new Ue(`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?[t(d,r),a.id,t(f,h),et("time")]:[t(d,h),a.id,t(f,r),et("time")];return[s?f:d,h,p,a,!!s]}function Or(t,e){if(typeof e!="string")return function(o){return!1};const r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,"."),i=new RegExp(`^${r}$`,t?void 0:"i");return function(o){return typeof o!="string"?!1:i.test(o)}}function to(t,e){if(typeof e!="object"||e.hasOwnProperty("$in")||e.hasOwnProperty("in"))return e;const n=t["checked-data-type"]==="date";if(e.hasOwnProperty("$gt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>new Date(e.$gt)}:function(i){return i[2]>e.$gt}};if(e.hasOwnProperty("$gte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])>=new Date(e.$gte)}:function(i){return i[2]>=e.$gte}};if(e.hasOwnProperty("$lt"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<new Date(e.$lt)}:function(i){return i[2]<e.$lt}};if(e.hasOwnProperty("$lte"))return{$comparator:!0,$op:n?function(i){return new Date(i[2])<=new Date(e.$lte)}:function(i){return i[2]<=e.$lte}};if(e.hasOwnProperty("$like")){const r=Or(!0,e.$like);return{$comparator:!0,$op:function(s){return r(s[2])}}}if(e.hasOwnProperty("$ilike")){const r=Or(!1,e.$ilike);return{$comparator:!0,$op:function(s){return r(s[2])}}}return e}function no(t,e,n,r,i,s){const o=De(e,n,i),a=_r(e,n,i),u=o||a;if(!u)throw new Ue(`No attr for etype = ${n} label = ${i}`);if(s!=null&&s.hasOwnProperty("$isNull")){const d=De(e,n,"id");if(!d)throw new Ue(`No attr for etype = ${n} label = id`);return[t(n,r),d.id,{$isNull:{attrId:u.id,isNull:s.$isNull,reverse:!o}},et("time")]}return o?[t(n,r),u.id,to(u,s),et("time")]:[s,u.id,t(n,r),et("time")]}function ro(t,e,n,r,i){const[s,o,a]=i.reduce((u,d)=>{const[c,f,h]=u,[p,_,y]=Sr(t,e,c,f,d);return[p,_,[...h,y]]},[n,r,[]]);return[s,o,a]}function fn(t,e,n,r,i,s){const o=i.slice(0,i.length-1),a=i[i.length-1],[u,d,c]=ro(t,e,n,r,o),f=no(t,e,u,d,a,s);return c.concat([f])}function io(t,e){return e?[e].concat(t):t}function so([t,e]){return t==="or"&&Array.isArray(e)}function oo([t,e]){return t==="and"&&Array.isArray(e)}function ao(t,e,n){return(r,i)=>{const s=t(r,i);return e==s?s:`${s}-${n}`}}function Er(t,e,n,r,i,s){const o=t(r,i),a=s.map((u,d)=>{const c=ao(t,o,d);return kr(c,n,r,i,u)});return{[e]:{patterns:a,joinSym:o}}}function uo(t){const e=[];for(let n=1;n<=t.length;n++)e.push(t.slice(0,n));return e}function Ar(t,e,n,r,i){return uo(i).map(s=>fn(t,e,n,r,s,{$isNull:!0}))}function kr(t,e,n,r,i){return Object.entries(i).flatMap(([s,o])=>{if(so([s,o]))return Er(t,"or",e,n,r,o);if(oo([s,o]))return Er(t,"and",e,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=fn(t,e,n,r,a,o),d=Ar(t,e,n,r,a);return[{or:{patterns:[u,...d],joinSym:t(n,r)}}]}return o!=null&&o.hasOwnProperty("$isNull")&&o.$isNull===!0&&a.length>1?[{or:{patterns:Ar(t,e,n,r,a),joinSym:t(n,r)}}]:fn(t,e,n,r,a,o)})}function co(t,e,n,r){const i=Tt;return r?kr(i,t,e,n,r).concat(vr(i,t,e,n)):vr(i,t,e,n)}function fo(t,e,n){return[t(e,n),t("time",n)]}function lo(t,e,n,r,i,s){const[o,a,u,d,c]=Sr(t,e,n,r,i),f=eo(u,t(n,r),s);return[o,a,f,d,c]}function ho(t,e,{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,_,y;const g=!!(e.cardinalityInference&&(!((y=(_=(p=e.linkIndex)===null||p===void 0?void 0:p[n])===null||_===void 0?void 0:_[h])===null||y===void 0)&&y.isSingular));try{const[T,w,v]=lo(t,e,n,r,h,u),M=Cr(e,{etype:T,level:w,form:i[h],join:v}),E=g?M[0]:M;return{[h]:E}}catch(T){if(T instanceof Ue)return{[h]:g?void 0:[]};throw T}}).reduce(function(h,p){return Object.assign(Object.assign({},h),p)},d)}):Object.values(s)}function po(t,e,n){return n==="string"?Hs(t,e):t>e?1:-1}function vt([t,e],[n,r],i){return e===r||e==null&&r==null?Bs(t,n):r==null?1:e==null?-1:po(e,r,i)}function ln(t){return t==null?t:new Date(t).getTime()}function yo(t,e,n,r){var i;const[s,o,a,u]=t,d=n==="desc"?1:-1;if(((i=e["forward-identity"])===null||i===void 0?void 0:i[2])==="id")return vt(r,[s,u],null)===d;const[c,f]=r,h=e["checked-data-type"],p=h==="date"?ln(f):f,_=h==="date"?ln(a):a;return vt([c,p],[s,_],h)===d}function _o(t,e){const n=e[1];return t.attrs[n]}function bo(t,e,n){const r=Object.keys(n)[0];return De(t,e,r)}function go(t,e,n,r){if(n)return _o(t,n);if(r)return bo(t,e,r)}function mo(t,e,n){var r,i;if(!Array.isArray(n.fields))return js(t,e);const s=new Map;for(const o of n.fields){const a=De(t,e,o),u=(r=a==null?void 0:a["forward-identity"])===null||r===void 0?void 0:r[2];u&&rn(a)&&s.set(u,a)}if(!s.has("id")){const o=De(t,e,"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 wo(t,{etype:e,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=jr(i),d=To(i);let c=Ns(t,r);const f=n==null?void 0:n["start-cursor"],h=go(t,e,f,a);if(h&&((o=h==null?void 0:h["forward-identity"])===null||o===void 0?void 0:o[2])!=="id"){const y=h["checked-data-type"]==="date",g=h.id;c=c.map(([T])=>{var w,v,M,E,N;let W=(N=(E=(M=(v=(w=t.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||N===void 0?void 0:N[2];return y&&(W=ln(W)),[T,W]})}c.sort(d==="asc"?function(g,T){return vt(g,T,h==null?void 0:h["checked-data-type"])}:function(g,T){return vt(T,g,h==null?void 0:h["checked-data-type"])});let p={};const _=mo(t,e,r);for(const y of c){const[g]=y;if(p[g]||!u&&f&&h&&yo(f,h,d,y))continue;const T=ks(t,_,g);T&&(p[g]=T)}return p}function To(t){var e;const n=(e=t.$)===null||e===void 0?void 0:e.order;return n&&n[Object.keys(n)[0]]||"asc"}function jr(t){var e,n,r;const i=(e=t.$)===null||e===void 0?void 0:e.offset,s=(n=t.$)===null||n===void 0?void 0:n.before,o=(r=t.$)===null||r===void 0?void 0:r.after;return!i&&!s&&!o}function vo(t,{etype:e,level:n,form:r,join:i,pageInfo:s}){var o,a,u,d,c;if(!jr(r)&&(!s||!s["start-cursor"]))return[];const f=io(co(t,e,n,(o=r.$)===null||o===void 0?void 0:o.where),i),h=fo(Tt,e,n),p=(a=r.$)===null||a===void 0?void 0:a.fields,_=wo(t,{etype:e,pageInfo:s,form:r,dq:{where:f,find:h,fields:p}}),y=((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(y!=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<=y?_:Object.fromEntries(g.slice(0,y))}return _}function So(t,e){try{return vo(t,e)}catch(n){if(n instanceof Ue)return{};throw n}}function Cr(t,e){const n=So(t,e);return ho(Tt,t,e,n)}function Oo(t){const e={};for(const[n,r]of Object.entries(t))e[n]={startCursor:r["start-cursor"],endCursor:r["end-cursor"],hasNextPage:r["has-next-page?"],hasPreviousPage:r["has-previous-page?"]};return e}function Eo({store:t,pageInfo:e,aggregate:n},r){const s={data:Object.keys(r).reduce(function(a,u){return n!=null&&n[u]||u==="$$ruleParams"||(a[u]=Cr(t,{etype:u,form:r[u],level:0,pageInfo:e==null?void 0:e[u]})),a},{})};return e&&(s.pageInfo=Oo(e)),n&&(s.aggregate=n),s}function Ao(){const e={__etype:1,__ops:1,create:1,update:1,link:1,unlink:1,delete:1,merge:1,ruleParams:1};return new Set(Object.keys(e))}const ko=Ao();function hn(t,e,n){const r={__etype:t,__ops:n};return new Proxy(r,{get:(i,s)=>{if(s==="__ops")return n;if(s==="__etype")return t;if(ko.has(s))return(o,a)=>hn(t,e,[...n,a?[s,t,e,o,a]:[s,t,e,o]])}})}function jo(t,e){return`lookup__${t}__${JSON.stringify(e)}`}function St(t){return t.startsWith("lookup__")}function Pr(t){const[e,n,...r]=t.split("__");return[n,JSON.parse(r.join("__"))]}function Co(t){return new Proxy({__etype:t},{get(e,n){if(n==="__etype")return t;const r=n;return St(r)?hn(t,Pr(r),[]):hn(t,r,[])}})}function pn(){return new Proxy({},{get(t,e){return Co(e)}})}const Po=pn();function Mo(t){return t.__ops}function Io(t,e){const{attrIdMap:n,refSwapAttrIds:r}=t,i=[];for(const o of e){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]=e;if((s==="add-triple"||s==="retract-triple")&&r.has(e[2])){const o=i[1];i[1]=i[3],i[3]=o}return i}function G(t,e,n){return Object.values(t).find(r=>{const[i,s,o]=r["forward-identity"];return s===e&&o===n})}function je(t,e,n){return Object.values(t).find(r=>{const i=r["reverse-identity"];if(!i)return!1;const[s,o,a]=i;return o===e&&a===n})}function Ro(t){if(Array.isArray(t))return t;const e=Object.entries(t);if(e.length!==1)throw new Error("lookup must be an object with a single unique attr and value.");return e[0]}function yn(t,e,n){return n.indexOf(".")!==-1&&!G(t,e,n)}function _n(t){const[e,n,...r]=t.split(".");if(r.length>0||n!=="id")throw new Error(`${t} is not a valid lookup attribute.`);return e}function xo(t,e,n){if(!yn(t,e,n))return G(t,e,n);const r=_n(n),i=G(t,e,r)||je(t,e,r);if(i&&i["value-type"]!=="ref")throw new Error(`${n} does not reference a valid link attribute.`);return i}function bn(t){return typeof t=="string"&&!St(t)?null:typeof t=="string"&&St(t)?Pr(t):Ro(t)}function re(t,e,n){const r=bn(n);if(r===null)return n;const[i,s]=r,o=xo(t,e,i);if(!o||!o["unique?"])throw new Error(`${i} is not a unique attribute.`);return[o.id,s]}function Mr(t,e,n,r){const i=re(t,e,n);return Array.isArray(i)?[["add-triple",i,G(t,e,"id").id,i]].concat(r):r}function Do({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=G(t,e,s),d=je(t,e,s);return a.map(c=>u?["add-triple",re(t,e,n),u.id,re(t,u["reverse-identity"][1],c)]:["add-triple",re(t,d["forward-identity"][1],c),d.id,re(t,e,n)])});return Mr(t,e,n,i)}function $o({attrs:t},[e,n,r]){const i=Object.entries(r).flatMap(([s,o])=>{const a=Array.isArray(o)?o:[o],u=G(t,e,s),d=je(t,e,s);return a.map(c=>u?["retract-triple",re(t,e,n),u.id,re(t,u["reverse-identity"][1],c)]:["retract-triple",re(t,d["forward-identity"][1],c),d.id,re(t,e,n)])});return Mr(t,e,n,i)}function Uo(t,e,n){if(Array.isArray(n)){const[r,i]=n;for(const s of t||[]){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 t||[]){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]==e)return!0}}return!1}function Ir({stores:t,attrs:e},[n,r,i,s]){return(s==null?void 0:s.upsert)===!1?{mode:"update"}:(s==null?void 0:s.upsert)===!0?null:Uo(t,n,r)?{mode:"update"}:null}function Lo(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),d=re(r,i,s);return[["id",d]].concat(Object.entries(u)).map(([f,h])=>{const p=G(r,i,f);return p["checked-data-type"]==="date"&&t.useDateObjects&&(h=gt(h)),["add-triple",d,p.id,h,{mode:"create"}]})}function No(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),d=re(r,i,s),c=Ir(t,[i,d,o,a]);return[["id",d]].concat(Object.entries(u)).map(([h,p])=>{const _=G(r,i,h);return _["checked-data-type"]==="date"&&t.useDateObjects&&(p=gt(p)),["add-triple",d,_.id,p,...c?[c]:[]]})}function Fo({attrs:t},[e,n]){return[["delete-entity",re(t,e,n),e]]}function Ko(t,e){const{stores:n,attrs:r}=t,[i,s,o,a]=e,u=en(o),d=re(r,i,s),c=Ir(t,[i,d,o,a]),f=Object.entries(u).map(([p,_])=>{const y=G(r,i,p);return["deep-merge-triple",d,y.id,_,...c?[c]:[]]});return[["add-triple",d,G(r,i,"id").id,d,...c?[c]:[]]].concat(f)}function Wo({attrs:t},[e,n,r]){return[["rule-params",re(t,e,n),e,r]]}function zo(t){const[e,n,r,i,s]=t;if(!i)return t;const o=Object.assign({},i);return delete o.id,[e,n,r,o,...s?[s]:[]]}function Vo(t,e){const[n,...r]=zo(e);switch(n){case"merge":return Ko(t,r);case"create":return Lo(t,r);case"update":return No(t,r);case"link":return Do(t,r);case"unlink":return $o(t,r);case"delete":return Fo(t,r);case"ruleParams":return Wo(t,r);default:throw new Error(`unsupported action ${n}`)}}function qo(t){switch(t){case"string":case"date":case"boolean":case"number":return t;default:return}}function Go(t,e,n){var r,i;const s=(i=(r=t.entities[e])===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(`${e}.${n} does not exist in your schema`);const{unique:o,indexed:a}=s==null?void 0:s.config,u=qo(s==null?void 0:s.valueType);return{"index?":a,"unique?":o,"checked-data-type":u}}function Ot(t,e,n,r){const i=t?Go(t,e,n):null,s=q(),a=[q(),e,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 Bo(t,e,n){return Object.values(t.links).find(i=>i.forward.on===e&&i.forward.label===n||i.reverse.on===e&&i.reverse.label===n)}function Qo(t,e,n){const r=Bo(t,e,n);if(!r)throw new Error(`Couldn't find the link ${e}.${n} in your schema`);const{forward:i,reverse:s}=r;return{"forward-identity":[q(),i.on,i.label],"reverse-identity":[q(),s.on,s.label],cardinality:i.has==="one"?"one":"many","unique?":s.has==="one","on-delete":i.onDelete,"on-delete-reverse":s.onDelete}}function Rr(t,e,n,r){const i=t?Qo(t,e,n):null,s=q(),o=[q(),e,n],a=[q(),n,e];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 Yo=new Set(["create","update","merge","link","unlink"]),Ho=new Set(["link","unlink"]),Jo=new Set(["create","update","merge"]),Zo=new Set(["link","unlink","create","update","merge","delete","ruleParams"]),gn={"unique?":!0,"index?":!0},Xo=Object.assign(Object.assign({},gn),{cardinality:"one"});function ea(t){const e=[],[n,r,i,s]=t;if(!Zo.has(n))return e;const o=bn(i);if(o&&e.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=bn(c);f&&e.push({etype:r,lookupPair:f,linkLabel:a})}}return e}function ta({attrs:t,schema:e},n){var r,i;const[s,o,a]=[new Set,Object.assign({},t),[]];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=G(o,f,h),_=je(o,f,h);d(p),d(_),!p&&!_&&u(Rr(e,f,h,Xo))}for(const f of n)for(const{etype:h,lookupPair:p,linkLabel:_}of ea(f)){const y=p[0];if(_){c(h,_);const g=G(o,h,_),T=je(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(yn(o,w,y))c(w,_n(y));else{const v=G(o,w,y);v||u(Ot(e,w,y,gn)),d(v)}}else if(yn(o,h,y))c(h,_n(y));else{const g=G(o,h,y);g||u(Ot(e,h,y,gn)),d(g)}}for(const f of n){const[h,p,_,y]=f;if(Yo.has(h)){const g=G(o,p,"id");d(g),g||u(Ot(e,p,"id",{"unique?":!0}));for(const T of Object.keys(y)){const w=G(o,p,T);if(d(w),Jo.has(h)&&(w||u(Ot(e,p,T,T==="id"?{"unique?":!0}:null))),Ho.has(h)){const v=je(o,p,T);!w&&!v&&u(Rr(e,p,T)),d(v)}}}}return[o,a]}function na(t,e){const r=(Array.isArray(e)?e:[e]).flatMap(u=>Mo(u)),[i,s]=ta(t,r),o=Object.assign(Object.assign({},t),{attrs:i}),a=r.flatMap(u=>Vo(o,u));return[...s,...a]}var tt=function(t,e,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(t,e||[])).next())})};const ra=2,ia=["kv","querySubs"];function mn(t){return function(n){console.error("Error in IndexedDB event",{source:t,event:n})}}class xr{constructor(e,n){this.dbName=e,this._storeName=n,this._dbPromise=this._init()}_init(){return new Promise((e,n)=>{const r=indexedDB.open(this.dbName,ra);r.onerror=i=>{n(i)},r.onsuccess=i=>{const o=i.target.result;e(o)},r.onupgradeneeded=i=>this._upgradeStore(i)})}_moveQuerySubsToObjectStore(e){const n=e.objectStore("kv"),r=e.objectStore("querySubs"),i=n.get("querySubs");i.onerror=mn("get querySubs from kv store failed"),i.onsuccess=s=>{const o=typeof i.result=="string"?JSON.parse(i.result):i.result;if(!o)return;const a=new Set;for(const[u,d]of Object.entries(o)){const c=r.put(d,u);c.onerror=mn(`Move ${u} to querySubs store failed`),a.add(c)}for(const u of a)u.onsuccess=()=>{if(a.delete(u),a.size===0){const d=n.delete("querySubs");d.onerror=mn("Cleanup querySubs from kv store failed")}}}}_upgradeStore(e){const n=e.target,r=n.result,i=new Set;for(const s of ia)r.objectStoreNames.contains(s)||(i.add(s),r.createObjectStore(s));if(i.has("querySubs")&&!i.has("kv")){const s=n.transaction;this._moveQuerySubsToObjectStore(s)}}getItem(e){return tt(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(e);a.onerror=u=>{i(u)},a.onsuccess=u=>{a.result?r(a.result):r(null)}})})}setItem(e,n){return tt(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,e);u.onerror=d=>{s(d)},u.onsuccess=d=>{i()}})})}multiSet(e){return tt(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const s=n.transaction([this._storeName],"readwrite"),o=s.objectStore(this._storeName),a=new Set;for(const[u,d]of e){const c=o.put(d,u);a.add(c)}for(const u of a)u.onerror=d=>{s.abort(),i(d)},u.onsuccess=d=>{a.delete(u),a.size===0&&r()}})})}removeItem(e){return tt(this,void 0,void 0,function*(){const n=yield this._dbPromise;return new Promise((r,i)=>{const a=n.transaction([this._storeName],"readwrite").objectStore(this._storeName).delete(e);a.onerror=u=>{i(u)},a.onsuccess=u=>{r()}})})}getAllKeys(){return tt(this,void 0,void 0,function*(){const e=yield this._dbPromise;return new Promise((n,r)=>{const o=e.transaction([this._storeName],"readwrite").objectStore(this._storeName).getAllKeys();o.onerror=a=>{r(a)},o.onsuccess=a=>{n(o.result.filter(u=>typeof u=="string"))}})})}}var sa=function(t,e,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(t,e||[])).next())})};class Dr{static getIsOnline(){return sa(this,void 0,void 0,function*(){return navigator.onLine})}static listen(e){const n=()=>{e(!0)},r=()=>{e(!1)};return addEventListener("online",n),addEventListener("offline",r),()=>{removeEventListener("online",n),removeEventListener("offline",r)}}}class Le extends Error{constructor(e,n){super(e),this.hint=n;const r=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,r),Error.captureStackTrace&&Error.captureStackTrace(this,Le),this.name="InstantError"}get[Symbol.toStringTag](){return"InstantError"}}var oa=function(t,e,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(t,e||[])).next())})};class nt extends Le{constructor(e){var n;const r=((n=e.body)===null||n===void 0?void 0:n.message)||`API Error (${e.status})`;super(r,e.body.hint);const i=new.target.prototype;Object.setPrototypeOf&&Object.setPrototypeOf(this,i),Error.captureStackTrace&&Error.captureStackTrace(this,nt),this.name="InstantAPIError",this.status=e.status,this.body=e.body}get[Symbol.toStringTag](){return"InstantAPIError"}}function le(t,e){return oa(this,void 0,void 0,function*(){const n=yield fetch(t,e),r=yield n.json();return n.status===200?Promise.resolve(r):Promise.reject(new nt({status:n.status,body:r}))})}var Ne=function(t,e,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(t,e||[])).next())})};function aa({apiURI:t,appId:e,email:n}){return le(`${t}/runtime/auth/send_magic_code`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":e,email:n})})}function ua(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,email:r,code:i,refreshToken:s}){return yield le(`${e}/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 ca(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield le(`${e}/runtime/auth/verify_refresh_token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n,"refresh-token":r})})})}function da(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n}){return yield le(`${e}/runtime/auth/sign_in_guest`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({"app-id":n})})})}function $r(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,code:r,codeVerifier:i,refreshToken:s}){return yield le(`${e}/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 fa(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,nonce:r,idToken:i,clientName:s,refreshToken:o}){return yield le(`${e}/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 la(t){return Ne(this,arguments,void 0,function*({apiURI:e,appId:n,refreshToken:r}){return yield le(`${e}/runtime/signout`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({app_id:n,refresh_token:r})})})}var rt=function(t,e,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(t,e||[])).next())})};function ha(t){return rt(this,arguments,void 0,function*({apiURI:e,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(`${e}/storage/upload`,{method:"PUT",headers:u,body:i})})}function pa(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${e}/storage/files?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"DELETE",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}function ya(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,fileName:r,refreshToken:i,metadata:s={}}){const{data:o}=yield le(`${e}/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 _a(t,e){return rt(this,void 0,void 0,function*(){return(yield fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}})).ok})}function ba(t){return rt(this,arguments,void 0,function*({apiURI:e,appId:n,path:r,refreshToken:i}){const{data:s}=yield le(`${e}/storage/signed-download-url?app_id=${n}&filename=${encodeURIComponent(r)}`,{method:"GET",headers:{"content-type":"application/json",authorization:`Bearer ${i}`}});return s})}let wn=!1,Ur=!1,Lr=!1;typeof window<"u"&&typeof window.localStorage<"u"&&(wn=!!window.localStorage.getItem("devBackend"),Ur=!!window.localStorage.getItem("__instantLogging"),Lr=!!window.localStorage.getItem("__devtoolLocalDash"));function Nr(t,e){if(!e)return t;const n={};return e.forEach(r=>{n[r]=t[r]}),n}function ga(t,e,n){var r,i;const s={peers:{}};if(e&&"user"in e?e.user:!0){const a=Nr((r=t.user)!==null&&r!==void 0?r:{},e==null?void 0:e.keys);s.user=Object.assign(Object.assign({},a),{peerId:n})}for(const a of Object.keys((i=t.peers)!==null&&i!==void 0?i:{})){const u=(e==null?void 0:e.peers)===void 0,d=Array.isArray(e==null?void 0:e.peers)&&(e==null?void 0:e.peers.includes(a));if(u||d){const c=Nr(t.peers[a],e==null?void 0:e.keys);s.peers[a]=Object.assign(Object.assign({},c),{peerId:a})}}return s}function ma(t,e){if(t.isLoading!==e.isLoading||t.error!==e.error||(t.user||e.user)&&(!t.user||!e.user||!or(t.user,e.user))||!sr(t.peers,e.peers))return!0;for(const r of Object.keys(t.peers))if(!or(t.peers[r],e.peers[r]))return!0;return!1}class Fr{constructor(){this.promise=new Promise((e,n)=>{this._resolve=e,this._reject=n})}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}var we=function(t,e,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(t,e||[])).next())})};function Kr(t,e){typeof requestIdleCallback>"u"?t():requestIdleCallback(t,{timeout:e})}const Tn="__meta";class Wr{constructor(e,n,r,i,s,o,a){var u,d;this._subs=[],this._nextSave=null,this._nextGc=null,this._pendingSaveKeys=new Set,this._loadedKeys=new Set,this._version=0,this._meta={isLoading:!0,onLoadCbs:[],value:null,error:null,attempts:0},this._persister=e,this._onMerge=n,this.serialize=r,this.parse=i,this._objectSize=s,this._log=o,this._saveThrottleMs=(u=a.saveThrottleMs)!==null&&u!==void 0?u:100,this._idleCallbackMaxWaitMs=(d=a.idleCallbackMaxWaitMs)!==null&&d!==void 0?d:1e3,this._gcOpts=a.gc,this.currentValue={},this._loadedKeys=new Set,this._loadingKeys={},this._initMeta(),a.preloadEntryCount&&this._preloadEntries(a.preloadEntryCount)}_initMeta(){return we(this,void 0,void 0,function*(){this._meta.loadingPromise&&(yield this._meta.loadingPromise);try{const e=this._persister.getItem(Tn);this._meta.loadingPromise=e;const n=yield e;this._meta.isLoading=!1,this._meta.error=null,this._meta.value=n||{objects:{}}}catch(e){this._meta.error=e,this._meta.attempts++,this._meta.loadingPromise=null}})}_getMeta(){return we(this,void 0,void 0,function*(){return this._meta.value?this._meta.value:this._meta.loadingPromise?(yield this._meta.loadingPromise,this._meta.value):(this._initMeta(),yield this._meta.loadingPromise,this._meta.value)})}_preloadEntries(e){return we(this,void 0,void 0,function*(){const n=yield this.waitForMetaToLoad(),r=Object.entries(n.objects);r.sort(([i,s],[o,a])=>a.updatedAt-s.updatedAt);for(const[i]of r.slice(0,e))this._loadKey(i)})}_getFromStorage(e){return we(this,void 0,void 0,function*(){try{const n=yield this._persister.getItem(e);return this.parse(e,n)}catch(n){return console.error(`Unable to read from storage for key=${e}`,n),null}})}waitForKeyToLoad(e){return we(this,void 0,void 0,function*(){return this._loadedKeys.has(e)?this.currentValue[e]:(yield this._loadingKeys[e]||this._loadKey(e),this.currentValue[e])})}waitForMetaToLoad(){return we(this,void 0,void 0,function*(){return this._getMeta()})}unloadKey(e){this._loadedKeys.delete(e),delete this._loadingKeys[e],delete this.currentValue[e]}_loadKey(e){return we(this,void 0,void 0,function*(){if(this._loadedKeys.has(e)||e in this._loadingKeys)return;const n=this._getFromStorage(e);this._loadingKeys[e]=n;const r=yield n;delete this._loadingKeys[e],this._loadedKeys.add(e);const i=this._onMerge(e,r,this.currentValue[e]);i&&(this.currentValue[e]=i),this.onKeyLoaded&&this.onKeyLoaded(e)})}_writeToStorage(e){var n,r;const i=[],s=e==null?void 0:e.skipGc;if(this._meta.isLoading){const p=new Promise((_,y)=>{var g;setTimeout(()=>this._enqueuePersist(e?Object.assign(Object.assign({},e),{attempts:(e.attempts||0)+1}):{attempts:1}).then(_).catch(y),10+((g=e==null?void 0:e.attempts)!==null&&g!==void 0?g:0)*1e3)});return i.push(p),Promise.all(i).then(_=>_.reduce((y,g)=>y+g,0))}const o=this._meta.value;if(!o)return Promise.resolve(0);const a=[],u=[];for(const p of this._pendingSaveKeys)p in this.currentValue?u.push(p):(a.push(p),delete o.objects[p]);for(const p of a){const _=this._persister.removeItem(p);i.push(_.then(()=>1)),this._loadedKeys.delete(p),this._pendingSaveKeys.delete(p)}const d=[],c=[[Tn,o]],f=(n=o.objects)!==null&&n!==void 0?n:{};o.objects=f;for(const p of u)if(this._loadedKeys.has(p)){const _=this.serialize(p,this.currentValue[p]);c.push([p,_]);const y=this._objectSize(_),g=(r=f[p])!==null&&r!==void 0?r:{createdAt:Date.now(),updatedAt:Date.now(),size:y};g.updatedAt=Date.now(),g.size=y,f[p]=g,this._pendingSaveKeys.delete(p)}else d.push(p);const h=this._persister.multiSet(c);i.push(h.then(()=>1));for(const p of d){const _=this._loadKey(p).then(()=>this._enqueuePersist(e));i.push(_)}return s||this.gc(),Promise.all(i).then(p=>p.reduce((_,y)=>_+y,0))}flush(){return we(this,void 0,void 0,function*(){return this._nextSave?(clearTimeout(this._nextSave),this._nextSave=null,this._writeToStorage()):void 0})}_gc(){return we(this,void 0,void 0,function*(){const e=new Set(yield this._persister.getAllKeys());e.delete(Tn);const n=new Set(Object.keys(this.currentValue));for(const h of Object.keys(this._loadingKeys))n.add(h);for(const h of this._loadedKeys)n.add(h);const r=yield this._getMeta();if(!r){this._log.info("Could not gc because we were not able to load meta");return}const i=[],s={gcOpts:this._gcOpts,keys:e,sacredKeys:n,removed:[],metaRemoved:[],removedMissingCount:0,removedOldCount:0,removedThresholdCount:0,removedSizeCount:0};for(const h of e)n.has(h)||h in r.objects||(this._log.info("Lost track of key in meta",h),i.push(this._persister.removeItem(h)),s.removed.push(h),s.removedMissingCount++);const o=Date.now();for(const[h,p]of Object.entries(r.objects))!n.has(h)&&p.updatedAt<o-this._gcOpts.maxAgeMs&&(i.push(this._persister.removeItem(h)),delete r.objects[h],s.removed.push(h),s.removedOldCount++);const a=Object.entries(r.objects);a.sort(([h,p],[_,y])=>p.updatedAt-y.updatedAt);const u=a.filter(([h])=>!n.has(h));if(a.length>this._gcOpts.maxEntries)for(const[h]of u.slice(0,a.length-this._gcOpts.maxEntries))i.push(this._persister.removeItem(h)),delete r.objects[h],s.removed.push(h),s.removedThresholdCount++;const d=Object.entries(r.objects);d.sort(([h,p],[_,y])=>p.updatedAt-y.updatedAt);const c=d.filter(([h])=>!n.has(h));let f=d.reduce((h,[p,_])=>h+_.size,0);for(;f>0&&f>this._gcOpts.maxSize&&c.length;){const[[h,p]]=c.splice(0,1);f-=p.size,i.push(this._persister.removeItem(h)),delete r.objects[h],s.removed.push(h),s.removedSizeCount++}for(const h of Object.keys(r.objects))!e.has(h)&&!n.has(h)&&delete r.objects[h];return(s.removed.length||s.metaRemoved.length)&&i.push(this._enqueuePersist({skipGc:!0})),this._log.info("Completed GC",s),yield Promise.all(i),s})}gc(){this._nextGc||(this._nextGc=setTimeout(()=>{Kr(()=>{this._nextGc=null,this._gc()},30*1e3)},1e3*60))}_enqueuePersist(e){return new Promise((n,r)=>{if(this._nextSave){n(0);return}this._nextSave=setTimeout(()=>{Kr(()=>{this._nextSave=null,this._writeToStorage(e).then(n).catch(r)},this._idleCallbackMaxWaitMs)},this._saveThrottleMs)})}version(){return this._version}updateInPlace(e){this._version++;const[n,r]=_t(this.currentValue,e,{enablePatches:!0});for(const i of r){const s=i.path[0];s&&typeof s=="string"&&(this._pendingSaveKeys.add(s),this._loadedKeys.has(s)||this._loadKey(s))}for(const i of Object.keys(n))if(!n[i])debugger;this.currentValue=n,this._enqueuePersist();for(const i of this._subs)i(this.currentValue);return n}subscribe(e){return this._subs.push(e),e(this.currentValue),()=>{this._subs=this._subs.filter(n=>n!==e)}}}function zr(t,e=[]){t.forEach(n=>{const{data:r}=n,{"datalog-result":i}=r,{"join-rows":s}=i;for(const o of s)for(const a of o)e.push(a);zr(n["child-nodes"],e)})}function Vr(t){const e=[];return zr(t,e),e}function qr(t){return Object.values(t.links).reduce((e,n)=>{var r,i,s,o;return(r=e[s=n.forward.on])!==null&&r!==void 0||(e[s]={}),e[n.forward.on][n.forward.label]={isForward:!0,isSingular:n.forward.has==="one",link:n},(i=e[o=n.reverse.on])!==null&&i!==void 0||(e[o]={}),e[n.reverse.on][n.reverse.label]={isForward:!1,isSingular:n.reverse.has==="one",link:n},e},{})}const vn="v0.22.49-experimental.persisted-object-2.19477901153.1";function wa(t,e){return{info:t?(...n)=>console.info(...n,e()):()=>{},debug:t?(...n)=>console.debug(...n,e()):()=>{},error:t?(...n)=>console.error(...n,e()):()=>{}}}class J{constructor(e,n,r,i={indexed:!1,unique:!1}){this.valueType=e,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 Et{constructor(e,n){this.attrs=e,this.links=n}asType(){return new Et(this.attrs,this.links)}}class At{constructor(e,n,r){this.entities=e,this.links=n,this.rooms=r}withRoomSchema(){return new At(this.entities,this.links,{})}}class x extends Error{constructor(e,n){const r=n?`At path '${n}': ${e}`:e;super(r),this.name="QueryValidationError"}}const Gr=["where","order","limit","last","first","offset","after","before","fields","aggregate"],Ta=t=>t.valueType||"unknown",Br=(t,e,n=!1)=>{if(n||t==null)return!0;switch(e){case"string":return typeof t=="string";case"number":return typeof t=="number"&&!isNaN(t);case"boolean":return typeof t=="boolean";case"date":return t instanceof Date||typeof t=="string"||typeof t=="number";default:return!0}},va=(t,e,n,r,i,s,o)=>{const a=s.valueType==="json",u=(d,c,f)=>{if(!Br(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(t){case"in":case"$in":if(!Array.isArray(e))throw new x(`Operator '${t}' for attribute '${r}' in entity '${i}' must be an array, but received: ${typeof e}`,o);for(const d of e)u(t,n,d);break;case"$not":case"$ne":case"$gt":case"$lt":case"$gte":case"$lte":u(t,n,e);break;case"$like":case"$ilike":if(u(t,"string",e),t==="$ilike"&&!s.isIndexed)throw new x(`Operator '${t}' can only be used with indexed attributes, but '${r}' in entity '${i}' is not indexed`,o);break;case"$isNull":u(t,"boolean",e);break;default:throw new x(`Unknown operator '${t}' for attribute '${r}' in entity '${i}'`,o)}},Fe=(t,e,n,r,i)=>{const s=Ta(n),o=n.valueType==="json";if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(o)return;const u=t;for(const[d,c]of Object.entries(u))va(d,c,s,e,r,n,`${i}.${d}`)}else if(!Br(t,s,o))throw new x(`Invalid value for attribute '${e}' in entity '${r}'. Expected ${s}, but received: ${typeof t}`,i)},Sa=(t,e,n,r,i)=>{const s=t.split(".");if(s.length<2)throw new x(`Invalid dot notation path '${t}'. 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 '${t}'.`,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 '${t}'. 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 '${t}'.`,i);if(a==="id"){if(typeof e=="string"&&!$e(e))throw new x(`Invalid value for id field in entity '${o}'. Expected a UUID, but received: ${e}`,i);Fe(e,t,new J("string",!1,!0),n,i);return}const d=u.attrs[a];if(Object.keys(u.links).includes(a)){if(typeof e=="string"&&!$e(e))throw new x(`Invalid value for link '${a}' in entity '${o}'. Expected a UUID, but received: ${e}`,i);Fe(e,t,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 '${t}'. Available attributes: ${c.length>0?c.join(", ")+", id":"id"}`,i)}Fe(e,t,d,n,i)},Qr=(t,e,n,r)=>{for(const[i,s]of Object.entries(t)){if(i==="or"||i==="and"){if(Array.isArray(s))for(const d of s)typeof d=="object"&&d!==null&&Qr(d,e,n,`${r}.${i}[${d}]`);continue}if(i==="id"){Fe(s,"id",new J("string",!1,!0),e,`${r}.id`);continue}if(i.includes(".")){Sa(i,s,e,n,`${r}.${i}`);continue}const o=n.entities[e];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 '${e}'. Available attributes: ${d.length>0?d.join(", "):"none"}. Available links: ${c.length>0?c.join(", "):"none"}`,`${r}.${i}`)}if(a)Fe(s,i,a,e,`${r}.${i}`);else if(u){if(typeof s=="string"&&!$e(s))throw new x(`Invalid value for link '${i}' in entity '${e}'. Expected a UUID, but received: ${s}`,`${r}.${i}`);const d=new J("string",!1,!0);Fe(s,i,d,e,`${r}.${i}`)}}},Oa=(t,e,n,r,i=0)=>{for(const o of Object.keys(t))if(!Gr.includes(o))throw new x(`Invalid query parameter '${o}' in $ object. Valid parameters are: ${Gr.join(", ")}. Found: ${o}`,r);const s=["offset","before","after","first","last"];for(const o of s)if(t[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(t.where&&n){if(typeof t.where!="object"||t.where===null)throw new x(`'where' clause must be an object in entity '${e}', but received: ${typeof t.where}`,r?`${r}.where`:void 0);Qr(t.where,e,n,r?`${r}.where`:"where")}},Yr=(t,e,n,r,i=0)=>{var s;if(!t||typeof t!="object")throw new x(`Query part for entity '${e}' must be an object, but received: ${typeof t}`,r);for(const o of Object.keys(t))if(o!=="$"){if(n&&!(o in n.entities[e].links)){const u=Object.keys(n.entities[e].links);throw new x(`Link '${o}' does not exist on entity '${e}'. Available links: ${u.length>0?u.join(", "):"none"}`,`${r}.${o}`)}const a=t[o];if(typeof a=="object"&&a!==null){const u=(s=n==null?void 0:n.entities[e].links[o])===null||s===void 0?void 0:s.entityName;u&&Yr(a,u,n,`${r}.${o}`,i+1)}}else{const a=t[o];if(typeof a!="object"||a===null)throw new x(`Query parameter '$' must be an object in entity '${e}', but received: ${typeof a}`,`${r}.$`);Oa(a,e,n,`${r}.$`,i)}},Hr=(t,e)=>{if(typeof t!="object"||t===null)throw new x(`Query must be an object, but received: ${typeof t}${t===null?" (null)":""}`);if(Array.isArray(t))throw new x(`Query must be an object, but received: ${typeof t}`);const n=t;for(const r of Object.keys(n)){if(Array.isArray(t[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(e&&!e.entities[r]){const i=Object.keys(e.entities);throw new x(`Entity '${r}' does not exist in schema. Available entities: ${i.length>0?i.join(", "):"none"}`,r)}Yr(n[r],r,e,r,0)}}},Jr=t=>typeof t!="string"?!1:St(t)?!0:$e(t);class ue extends Error{constructor(e){super(e),this.name="TransactionValidationError"}}const Zr=t=>t.length>0?t.join(", "):"none",Ea=(t,e)=>new ue(`Entity '${t}' does not exist in schema. Available entities: ${Zr(e)}`),Xr={string:t=>typeof t=="string",number:t=>typeof t=="number"&&!isNaN(t),boolean:t=>typeof t=="boolean",date:t=>t instanceof Date||typeof t=="string"||typeof t=="number",json:()=>!0},Aa=(t,e)=>{var n,r;return t==null?!0:(r=(n=Xr[e.valueType])===null||n===void 0?void 0:n.call(Xr,t))!==null&&r!==void 0?r:!1},ei=(t,e)=>{const n=e.entities[t];if(!n)throw Ea(t,Object.keys(e.entities));return n},Sn=(t,e,n)=>{const r=ei(t,n);if(typeof e!="object"||e===null)throw new ue(`Arguments for data operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[i,s]of Object.entries(e)){if(i==="id")continue;const o=r.attrs[i];if(o&&!Aa(s,o))throw new ue(`Invalid value for attribute '${i}' in entity '${t}'. Expected ${o.valueType}, but received: ${typeof s}`)}},ti=(t,e,n)=>{const r=ei(t,n);if(typeof e!="object"||e===null)throw new ue(`Arguments for link operation on entity '${t}' must be an object, but received: ${typeof e}`);for(const[i,s]of Object.entries(e)){if(!r.links[i]){const a=Object.keys(r.links);throw new ue(`Link '${i}' does not exist on entity '${t}'. Available links: ${Zr(a)}`)}if(s!=null){if(Array.isArray(s)){for(const a of s)if(!Jr(a))throw new ue(`Invalid entity ID in link '${i}' for entity '${t}'. Expected a UUID or a lookup, but received: ${a}`)}else if(!Jr(s))throw new ue(`Invalid UUID in link '${i}' for entity '${t}'. Expected a UUID, but received: ${s}`)}}},ka={create:Sn,update:Sn,merge:Sn,link:ti,unlink:ti,delete:()=>{}},ja=(t,e)=>{if(!e)return;const[n,r,i,s]=t;if(!Array.isArray(i)&&!$e(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=ka[n];o&&s!==void 0&&o(r,s,e)},Ca=(t,e)=>{const n=Array.isArray(t)?t:[t];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}`);ja(i,e)}}};var ni=function(t,e,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(t,e||[])).next())})};let ri=0;class ii{constructor(e){this.type="ws",this.id=`${this.type}_${ri++}`,this.conn=new WebSocket(e),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(e){return this.conn.send(JSON.stringify(e))}}class Pa{constructor(e,n){this.type="sse",this.initParams=null,this.sendQueue=[],this.closeFired=!1,this.sseInitTimeout=null,this.id=`${this.type}_${ri++}`,this.url=n,this.ES=e,this.conn=new e(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(e){return ni(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:e})})).ok||this.handleError()}catch{this.handleError()}})}flushQueue(){return ni(this,void 0,void 0,function*(){if(this.sendPromise||!this.sendQueue.length)return;const e=this.sendQueue;this.sendQueue=[];const n=this.postMessages(e);this.sendPromise=n,n.then(()=>{this.sendPromise=null,this.flushQueue()})})}send(e){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(e),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(t,e,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(t,e||[])).next())})},Ma=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n};const Te={CONNECTING:"connecting",OPENED:"opened",AUTHENTICATED:"authenticated",CLOSED:"closed",ERRORED:"errored"},Ia=3e4,Ra=3e4,xa=200,Da={apiURI:"https://api.instantdb.com",websocketURI:"wss://api.instantdb.com/runtime/session"},On="_instant_oauth_redirect",it="currentUser";function $a({transportType:t,appId:e,apiURI:n,wsURI:r,EventSourceImpl:i}){if(!i)return new ii(`${r}?app_id=${e}`);switch(t){case"ws":return new ii(`${r}?app_id=${e}`);case"sse":return new Pa(i,`${n}/runtime/sse?app_id=${e}`);default:throw new Error("Unknown transport type "+t)}}function Ua(){return typeof window<"u"||typeof chrome<"u"}const si={"set-presence":!0,"set-presence-ok":!0,"refresh-presence":!0,"patch-presence":!0};function La(t,e){var n;const r=typeof t=="string"?JSON.parse(t):t;if(!((n=r==null?void 0:r.result)===null||n===void 0)&&n.store){const i=r.result.store;r.result.store=_s(Object.assign(Object.assign({},i),{useDateObjects:e}))}return r}function Na(t,e){var n;const r=Object.assign({},e);return!((n=e.result)===null||n===void 0)&&n.store&&(r.result=Object.assign(Object.assign({},e.result),{store:ys(e.result.store)})),r}function Fa(t,e){switch(t){case"pendingMutations":return new Map(typeof e=="string"?JSON.parse(e):e);default:return e}}function Ka(t,e){switch(t){case"pendingMutations":return[...e.entries()];default:return e}}function oi(t){return[...t].sort((e,n)=>{const[r,i]=e,[s,o]=n,a=i.order||0,u=o.order||0;return a==u?r<s?-1:r>s?1:0:a-u})}class Wa{constructor(e,n=xr,r=Dr,i,s){var o,a,u;if(this._isOnline=!0,this._isShutdown=!1,this.status=Te.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._onMergeQuerySub=(d,c,f)=>{const h=c==null?void 0:c.result,p=f==null?void 0:f.result;return h&&!p&&f&&(f.result=h),f||c},this._onMergeKv=(d,c,f)=>{var h,p;switch(d){case"pendingMutations":{const _=(h=c==null?void 0:c.entries())!==null&&h!==void 0?h:[],y=(p=f==null?void 0:f.entries())!==null&&p!==void 0?p:[],g=new Map([..._,...y]);return(c?this._rewriteMutationsSorted(this.attrs,c):[]).forEach(([w,v])=>{var M;!(!((M=f==null?void 0:f.pendingMutations)===null||M===void 0)&&M.has(w))&&!v["tx-id"]&&this._sendMutation(w,v)}),g}default:return c||f}},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);_&&(bt(_,p)||h.forEach(y=>y.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||Ca(d,this.config.schema);try{const c=na({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=q(),h=[...this._pendingMutations().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._updatePendingMutations(g=>{g.set(f,_)});const y=new Fr;return this.mutationDeferredStore.set(f,y),this._sendMutation(f,_),this.notifyAll(),y.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(Te.OPENED),this.getCurrentUser().then(f=>{var h;this._trySend(q(),{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(Te.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({},Da),e),this.queryCacheLimit=(o=this.config.queryCacheLimit)!==null&&o!==void 0?o:10,this._pendingTxCleanupTimeout=(a=this.config.pendingTxCleanupTimeout)!==null&&a!==void 0?a:Ra,this._pendingMutationCleanupThreshold=(u=this.config.pendingMutationCleanupThreshold)!==null&&u!==void 0?u:xa,this._log=wa(e.verbose||wn||Ur,()=>this._reactorStats()),this.versions=Object.assign(Object.assign({},i||{}),{"@instantdb/core":vn}),this.config.schema&&(this._linkIndex=qr(this.config.schema)),!!Ua()){if(!e.appId)throw new Error("Instant must be initialized with an appId.");if(!$e(e.appId))throw new Error(`Instant must be initialized with a valid appId. \`${e.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",Te.CLOSED),this._setStatus(Te.CLOSED)))})}),typeof addEventListener<"u"&&(this._beforeUnload=this._beforeUnload.bind(this),addEventListener("beforeunload",this._beforeUnload))}}updateSchema(e){this.config=Object.assign(Object.assign({},this.config),{schema:e,cardinalityInference:!!e}),this._linkIndex=e?qr(this.config.schema):null}_reactorStats(){return{inFlightMutationCount:this._inFlightMutationEventIds.size,pendingMutationCount:this._pendingMutations().size,transportType:this._transportType}}_onQuerySubLoaded(e){this.kv.waitForKeyToLoad("pendingMutations").then(()=>this.notifyOne(e))}_initStorage(e){this.querySubs=new Wr(new e(`instant_${this.config.appId}_5`,"querySubs"),this._onMergeQuerySub,Na,(n,r)=>La(r,this.config.useDateObjects),n=>{var r,i,s,o;return(o=(s=(i=(r=n.result)===null||r===void 0?void 0:r.store)===null||i===void 0?void 0:i.triples)===null||s===void 0?void 0:s.length)!==null&&o!==void 0?o:0},this._log,{preloadEntryCount:10,gc:{maxAgeMs:1e3*60*60*24*7*52,maxEntries:1e3,maxSize:1e6}}),this.querySubs.onKeyLoaded=n=>this._onQuerySubLoaded(n),this.kv=new Wr(new e(`instant_${this.config.appId}_5`,"kv"),this._onMergeKv,Ka,Fa,()=>0,this._log,{saveThrottleMs:100,idleCallbackMaxWaitMs:100,gc:{maxAgeMs:Number.MAX_SAFE_INTEGER,maxEntries:Number.MAX_SAFE_INTEGER,maxSize:Number.MAX_SAFE_INTEGER}}),this.kv.onKeyLoaded=n=>{n==="pendingMutations"&&this.notifyAll()},this.kv.waitForKeyToLoad("pendingMutations"),this.kv.waitForKeyToLoad(it),this._beforeUnloadCbs.push(()=>{this.kv.flush(),this.querySubs.flush()})}_beforeUnload(){for(const e of this._beforeUnloadCbs)e()}_finishTransaction(e,n,r){const i=this.mutationDeferredStore.get(n);this.mutationDeferredStore.delete(n);const s=e!=="error"&&e!=="timeout";if(!i&&!s&&console.error("Mutation failed",Object.assign({status:e,eventId:n},r)),!!i)if(s)i.resolve({status:e,eventId:n});else if(r.type){const{status:o}=r,a=Ma(r,["status"]);i.reject(new nt({body:a,status:o}))}else i.reject(new Le(r.message,r.hint))}_setStatus(e,n){this.status=e,this._errorMessage=n,this.notifyConnectionStatusSubs(e)}_flushEnqueuedRoomData(e){var n,r;const i=(r=(n=this._presence[e])===null||n===void 0?void 0:n.result)===null||r===void 0?void 0:r.user,s=this._broadcastQueue[e];if(this._broadcastQueue[e]=[],i&&this._trySetPresence(e,i),s)for(const o of s){const{topic:a,roomType:u,data:d}=o;this._tryBroadcast(e,u,a,d)}}_handleReceive(e,n){var r,i,s,o,a,u;const d=!!this.config.schema&&("cardinalityInference"in this.config?!!this.config.cardinalityInference:!0);switch(si[n.op]||this._log.info("[receive]",e,n.op,n),n.op){case"init-ok":this._setStatus(Te.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);if(!this._hasQueryListeners()&&!this.querySubs.currentValue[h])break;const 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,y=Vr(f),g=on(this.attrs,y,d,this._linkIndex,this.config.useDateObjects);this.querySubs.updateInPlace(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 M=this._rewriteMutations(this.attrs,this._pendingMutations(),v);M!==this._pendingMutations()&&this.kv.updateInPlace(O=>{O.pendingMutations=M});const E=oi(M.entries()),N=T.map(O=>{var Z,Oe,be,pe;const Y=O["instaql-query"],z=O["instaql-result"],Me=ee(Y),It=Vr(z),Rt=on(this.attrs,It,d,this._linkIndex,this.config.useDateObjects),xt=this._applyOptimisticUpdates(Rt,E,v),Dt=(Oe=(Z=z==null?void 0:z[0])===null||Z===void 0?void 0:Z.data)===null||Oe===void 0?void 0:Oe["page-info"],$t=(pe=(be=z==null?void 0:z[0])===null||be===void 0?void 0:be.data)===null||pe===void 0?void 0:pe.aggregate;return{hash:Me,store:xt,pageInfo:Dt,aggregate:$t}});N.forEach(({hash:O,store:Z,pageInfo:Oe,aggregate:be})=>{this.querySubs.updateInPlace(pe=>(pe[O].result={store:Z,pageInfo:Oe,aggregate:be,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 be=this._rewriteMutations(this.attrs,this._pendingMutations()).get(O);if(!be)break;this._updatePendingMutations(Y=>{Y.set(O,Object.assign(Object.assign({},Y.get(O)),{"tx-id":Z,confirmed:Date.now()}))});const pe=be["tx-steps"].filter(([Y,...z])=>Y==="add-attr").map(([Y,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 W=n["room-id"],_e=this._rooms[W];_e&&(_e.error=n.error),this._notifyPresenceSubs(W);break;case"error":this._handleReceiveError(n);break}}_pendingMutations(){var e;return(e=this.kv.currentValue.pendingMutations)!==null&&e!==void 0?e:new Map}_updatePendingMutations(e){this.kv.updateInPlace(n=>{var r;const i=(r=n.pendingMutations)!==null&&r!==void 0?r:new Map;n.pendingMutations=i,e(i)})}_handleMutationError(e,n,r){var i;const s=(i=this.kv.currentValue.pendingMutations)===null||i===void 0?void 0:i.get(n);if(s&&(e!=="timeout"||!s["tx-id"])){this._updatePendingMutations(a=>(a.delete(n),a)),this._inFlightMutationEventIds.delete(n);const o={message:r.message,hint:r.hint};this.notifyAll(),this.notifyAttrsSubs(),this.notifyMutationErrorSubs(o),this._finishTransaction(e,n,r)}}_handleReceiveError(e){var n,r,i,s,o;console.log("error",e);const a=e["client-event-id"];this._inFlightMutationEventIds.delete(a);const u=this._pendingMutations().get(a),d={message:e.message||"Uh-oh, something went wrong. Ping Joe & Stopa."};if(e.hint&&(d.hint=e.hint),u){this._handleMutationError("error",a,e);return}if(!((n=e["original-event"])===null||n===void 0)&&n.hasOwnProperty("q")&&((r=e["original-event"])===null||r===void 0?void 0:r.op)==="add-query"){const h=(i=e["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=e["original-event"])===null||s===void 0?void 0:s.op)==="init"){if(e.type==="record-not-found"&&((o=e.hint)===null||o===void 0?void 0:o["record-type"])==="app-user"){this.changeCurrentUser(null);return}this._setStatus(Te.ERRORED,d),this.notifyAll();return}const f=Object.assign({},e);delete f.message,delete f.hint,console.error(e.message,f),e.hint&&console.error(`This error comes with some debugging information. Here it is:
2
+ `,e.hint)}notifyQueryOnceError(e,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(e,n,o.dfd))}_setAttrs(e){this.attrs=e.reduce((n,r)=>(n[r.id]=r,n),{}),this.notifyAttrsSubs()}_startQuerySub(e,n){const r=q();return this.querySubs.updateInPlace(i=>{i[n]=i[n]||{q:e,result:null,eventId:r},i[n].lastAccessed=Date.now()}),this._trySendAuthed(r,{op:"add-query",q:e}),r}subscribeQuery(e,n,r){var i;this.config.disableValidation||Hr(e,this.config.schema),r&&"ruleParams"in r&&(e=Object.assign({$$ruleParams:r.ruleParams},e));const s=ee(e),o=this.getPreviousResult(e);return o&&n(o),this.queryCbs[s]=(i=this.queryCbs[s])!==null&&i!==void 0?i:[],this.queryCbs[s].push({q:e,cb:n}),this._startQuerySub(e,s),()=>{this._unsubQuery(e,s,n)}}queryOnce(e,n){var r;this.config.disableValidation||Hr(e,this.config.schema),n&&"ruleParams"in n&&(e=Object.assign({$$ruleParams:n.ruleParams},e));const i=new Fr;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(e),o=this._startQuerySub(e,s);return this.queryOnceDfds[s]=(r=this.queryOnceDfds[s])!==null&&r!==void 0?r:[],this.queryOnceDfds[s].push({q:e,dfd:i,eventId:o}),setTimeout(()=>i.reject(new Error("Query timed out")),Ia),i.promise}_completeQueryOnce(e,n,r){this.queryOnceDfds[n]&&(this.queryOnceDfds[n]=this.queryOnceDfds[n].filter(i=>i.dfd!==r),this._cleanupQuery(e,n))}_unsubQuery(e,n,r){this.queryCbs[n]&&(this.queryCbs[n]=this.queryCbs[n].filter(i=>i.cb!==r),this._cleanupQuery(e,n))}_hasQueryListeners(e){var n,r;return!!(!((n=this.queryCbs[e])===null||n===void 0)&&n.length||!((r=this.queryOnceDfds[e])===null||r===void 0)&&r.length)}_cleanupQuery(e,n){this._hasQueryListeners(n)||(delete this.queryCbs[n],delete this.queryOnceDfds[n],delete this._dataForQueryCache[n],this.querySubs.unloadKey(n),this._trySendAuthed(q(),{op:"remove-query",q:e}))}_rewriteMutations(e,n,r){if(!e)return n;if(!n)return new Map;const i=c=>{const[f,h,p]=c["forward-identity"];return G(e,h,p)},s=c=>{const[f,h,p]=c["forward-identity"];return je(e,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 y=a?Io(o,p):p;h.push(y)}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(e,n){return oi(this._rewriteMutations(e,n).entries())}optimisticAttrs(){var e;const n=[...this._pendingMutations().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&&(!((e=this.attrs)===null||e===void 0)&&e[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(e){const n=this._errorMessage;if(n)return{error:n};if(!this.querySubs||!this.kv.currentValue.pendingMutations)return;const r=this.querySubs.version(),i=this.querySubs.currentValue,s=this.kv.version(),o=this._pendingMutations(),{q:a,result:u}=i[e]||{};if(!u)return;const d=this._dataForQueryCache[e];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),y=this._applyOptimisticUpdates(c,_,p),g=Eo({store:y,pageInfo:f,aggregate:h},a);return this._dataForQueryCache[e]={querySubVersion:r,pendingMutationsVersion:s,data:g},g}_applyOptimisticUpdates(e,n,r){for(const[i,s]of n)(!s["tx-id"]||r&&s["tx-id"]>r)&&(e=Ps(e,s["tx-steps"]));return e}notifyAll(){Object.keys(this.queryCbs).forEach(e=>{this.notifyOne(e)})}loadedNotifyAll(){this.notifyAll()}shutdown(){var e;this._log.info("[shutdown]",this.config.appId),this._isShutdown=!0,(e=this._transport)===null||e===void 0||e.close()}_sendMutation(e,n){if(n.error){this._handleMutationError("error",e,{message:n.error.message});return}if(this.status!==Te.AUTHENTICATED){this._finishTransaction("enqueued",e);return}const r=Math.max(6e3,Math.min(this._inFlightMutationEventIds.size+1,this._pendingMutations().size+1)*6e3);this._isOnline?(this._trySend(e,n),setTimeout(()=>{this._isOnline&&this._handleMutationError("timeout",e,{message:"transaction timed out"})},r)):this._finishTransaction("enqueued",e)}_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()).forEach(([i,s])=>{s["tx-id"]||this._sendMutation(i,s)})}_cleanupPendingMutationsQueries(){let e=Number.MAX_SAFE_INTEGER;for(const{result:n}of Object.values(this.querySubs.currentValue))n!=null&&n.processedTxId&&(e=Math.min(e,n==null?void 0:n.processedTxId));this._updatePendingMutations(n=>{for(const[r,i]of Array.from(n.entries()))i["tx-id"]&&i["tx-id"]<=e&&n.delete(r)})}_cleanupPendingMutationsTimeout(){if(this._pendingMutations().size<this._pendingMutationCleanupThreshold)return;const e=Date.now();this._updatePendingMutations(n=>{for(const[r,i]of Array.from(n.entries()))i.confirmed&&i.confirmed+this._pendingTxCleanupTimeout<e&&n.delete(r)})}_trySendAuthed(...e){this.status===Te.AUTHENTICATED&&this._trySend(...e)}_trySend(e,n,r){if(this._transport.isOpen()){switch(si[n.op]||this._log.info("[send]",this._transport.id,n.op,n),n.op){case"transact":{this._inFlightMutationEventIds.add(e);break}case"init":this._inFlightMutationEventIds.clear()}this._transport.send(Object.assign({"client-event-id":e},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 e=this._transport;this._transport=$a({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),e!=null&&e.isOpen()&&(this._log.info("[socket][start]",this._transport.id,"close previous transport id = ",e.id),e.close())}getLocalId(e){return L(this,void 0,void 0,function*(){const n=`localToken_${e}`;if(this.kv.currentValue[n])return this.kv.currentValue[n];const r=yield this.kv.waitForKeyToLoad(n);if(r)return r;const i=q();return this.kv.updateInPlace(s=>{s[n]||(s[n]=i)}),yield this.kv.waitForKeyToLoad(n)})}_replaceUrlAfterOAuth(){if(typeof URL>"u")return;const e=new URL(window.location.href);if(e.searchParams.get(On)){const n=e.toString();e.searchParams.delete(On),e.searchParams.delete("code"),e.searchParams.delete("error");const r=e.pathname+(e.searchParams.size?"?"+e.searchParams:"")+e.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 e,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(On))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 $r({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((e=u==null?void 0:u.body)===null||e===void 0?void 0:e.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(e){return this.mutationErrorCbs.push(e),()=>{this.mutationErrorCbs=this.mutationErrorCbs.filter(n=>n!==e)}}subscribeAuth(e){this.authCbs.push(e);const n=this._currentUserCached;n.isLoading||e(this._currentUserCached);let r=!1;return this.getCurrentUser().then(i=>{r||bt(i,n)||e(i)}),()=>{r=!0,this.authCbs=this.authCbs.filter(i=>i!==e)}}getAuth(){return L(this,void 0,void 0,function*(){const{user:e,error:n}=yield this.getCurrentUser();if(n)throw new Le("Could not get current user: "+n.message);return e})}subscribeConnectionStatus(e){return this.connectionStatusCbs.push(e),()=>{this.connectionStatusCbs=this.connectionStatusCbs.filter(n=>n!==e)}}subscribeAttrs(e){return this.attrsCbs.push(e),this.attrs&&e(this.attrs),()=>{this.attrsCbs=this.attrsCbs.filter(n=>n!==e)}}notifyAuthSubs(e){this.authCbs.forEach(n=>n(e))}notifyMutationErrorSubs(e){this.mutationErrorCbs.forEach(n=>n(e))}notifyAttrsSubs(){if(!this.attrs)return;const e=this.optimisticAttrs();this.attrsCbs.forEach(n=>n(e))}notifyConnectionStatusSubs(e){this.connectionStatusCbs.forEach(n=>n(e))}setCurrentUser(e){return L(this,void 0,void 0,function*(){this.kv.updateInPlace(n=>{n[it]=e}),yield this.kv.waitForKeyToLoad(it)})}getCurrentUserCached(){return this._currentUserCached}_getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this.kv.waitForKeyToLoad(it);return typeof e=="string"?JSON.parse(e):e})}getCurrentUser(){return L(this,void 0,void 0,function*(){const e=yield this._waitForOAuthCallbackResponse();if(e!=null&&e.error){const i={error:e.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 e=yield this.kv.waitForKeyToLoad(it);return typeof e=="string"?JSON.parse(e)!=null:e!=null})}changeCurrentUser(e){return L(this,void 0,void 0,function*(){var n;const{user:r}=yield this.getCurrentUser();if(!bt(r,e)){yield this.setCurrentUser(e),this.updateUser(e);try{(n=this._broadcastChannel)===null||n===void 0||n.postMessage({type:"auth"})}catch(i){console.error("Error posting message to broadcast channel",i)}}})}updateUser(e){const n={error:void 0,user:e};this._currentUserCached=Object.assign({isLoading:!1},n),this._dataForQueryCache={},this.querySubs.updateInPlace(r=>{Object.keys(r).forEach(i=>{delete r[i].result})}),this._reconnectTimeoutMs=0,this._transport.close(),this._oauthCallbackResponse=null,this.notifyAuthSubs(n)}sendMagicCode({email:e}){return aa({apiURI:this.config.apiURI,appId:this.config.appId,email:e})}signInWithMagicCode(e){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 ua({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(e){return L(this,void 0,void 0,function*(){const n=yield ca({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:e});return yield this.changeCurrentUser(n.user),n})}signInAsGuest(){return L(this,void 0,void 0,function*(){const e=yield da({apiURI:this.config.apiURI,appId:this.config.appId});return yield this.changeCurrentUser(e.user),e})}potentiallyInvalidateToken(e,n){var r;const i=(r=e==null?void 0:e.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}la({apiURI:this.config.apiURI,appId:this.config.appId,refreshToken:i}).then(()=>{this._log.info("[auth-invalidate] completed invalidateToken")}).catch(o=>{})}signOut(e){return L(this,void 0,void 0,function*(){const n=yield this.getCurrentUser();this.potentiallyInvalidateToken(n,e),yield this.changeCurrentUser(null)})}createAuthorizationURL({clientName:e,redirectURL:n}){const{apiURI:r,appId:i}=this.config;return`${r}/runtime/oauth/start?app_id=${i}&client_name=${e}&redirect_uri=${n}`}exchangeCodeForToken(e){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 $r({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:e,appId:n}=this.config;return`${e}/runtime/${n}`}signInWithIdToken(e){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 fa({apiURI:this.config.apiURI,appId:this.config.appId,idToken:n,clientName:r,nonce:i,refreshToken:a});return yield this.changeCurrentUser(u.user),u})}joinRoom(e,n){let r=!1;this._rooms[e]||(r=!0,this._rooms[e]={isConnected:!1,error:void 0}),this._presence[e]=this._presence[e]||{};const i=this._presence[e].result;return n&&!i&&(this._presence[e].result=this._presence[e].result||{},this._presence[e].result.user=n,this._notifyPresenceSubs(e)),r&&this._tryJoinRoom(e,n),()=>{this._cleanupRoom(e)}}_cleanupRoom(e){var n,r,i,s;if(!(!((r=(n=this._presence[e])===null||n===void 0?void 0:n.handlers)===null||r===void 0)&&r.length)&&!Object.keys((i=this._broadcastSubs[e])!==null&&i!==void 0?i:{}).length){const o=(s=this._rooms[e])===null||s===void 0?void 0:s.isConnected;delete this._rooms[e],delete this._presence[e],delete this._broadcastSubs[e],o?this._tryLeaveRoom(e):this._roomsPendingLeave[e]=!0}}getPresence(e,n,r={}){const i=this._rooms[n],s=this._presence[n];return!i||!s||!s.result?null:Object.assign(Object.assign({},ga(s.result,r,this._sessionId)),{isLoading:!i.isConnected,error:i.error})}publishPresence(e,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(e,n){this._trySendAuthed(q(),{op:"set-presence","room-id":e,data:n})}_tryJoinRoom(e,n){this._trySendAuthed(q(),{op:"join-room","room-id":e,data:n}),delete this._roomsPendingLeave[e]}_tryLeaveRoom(e){this._trySendAuthed(q(),{op:"leave-room","room-id":e})}_trySetRoomConnected(e,n){const r=this._rooms[e];r&&(r.isConnected=n)}subscribePresence(e,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(e){var n,r;(r=(n=this._presence[e])===null||n===void 0?void 0:n.handlers)===null||r===void 0||r.forEach(i=>{this._notifyPresenceSub(e,i)})}_notifyPresenceSub(e,n){const r=this.getPresence("",e,n);r&&(n.prev&&!ma(r,n.prev)||(n.prev=r,n.cb(r)))}_patchPresencePeers(e,n){var r,i,s;const o=((i=(r=this._presence[e])===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[e])===null||s===void 0||s.result;const u=_t(a,d=>{for(let[c,f,h]of n)switch(f){case"+":Hi(d,c,h);break;case"r":ur(d,c,h);break;case"-":cr(d,c);break}delete d[this._sessionId]});this._setPresencePeers(e,u)}_setPresencePeers(e,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=_t(this._presence,s=>{ur(s,[e,"result","peers"],i)})}publishTopic({roomType:e,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:e,data:i});return}this._tryBroadcast(n,e,r,i)}}_tryBroadcast(e,n,r,i){this._trySendAuthed(q(),{op:"client-broadcast","room-id":e,roomType:n,topic:r,data:i})}subscribeTopic(e,n,r){const i=this.joinRoom(e);return this._broadcastSubs[e]=this._broadcastSubs[e]||{},this._broadcastSubs[e][n]=this._broadcastSubs[e][n]||[],this._broadcastSubs[e][n].push(r),this._presence[e]=this._presence[e]||{},()=>{this._broadcastSubs[e][n]=this._broadcastSubs[e][n].filter(s=>s!==r),this._broadcastSubs[e][n].length||delete this._broadcastSubs[e][n],i()}}_notifyBroadcastSubs(e,n,r){var i,s,o;(o=(s=(i=this._broadcastSubs)===null||i===void 0?void 0:i[e])===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,y=r.data["peer-id"]===this._sessionId?(c=(d=this._presence[e])===null||d===void 0?void 0:d.result)===null||c===void 0?void 0:c.user:(p=(h=(f=this._presence[e])===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(_,y)})}uploadFile(e,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 ha(Object.assign(Object.assign({},r),{apiURI:this.config.apiURI,appId:this.config.appId,path:e,file:n,refreshToken:o}))})}deleteFile(e){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 pa({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}upload(e,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=e||n.name,a=yield ya({apiURI:this.config.apiURI,appId:this.config.appId,fileName:o,refreshToken:s});return yield _a(a,n)})}getDownloadUrl(e){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 ba({apiURI:this.config.apiURI,appId:this.config.appId,path:e,refreshToken:i})})}}function za(t,e){return new At(ai(t,e),e,void 0)}function Va(t){return new Et(t,{})}function qa(){return new J("string",!0,!1)}function Ga(){return new J("number",!0,!1)}function Ba(){return new J("boolean",!0,!1)}function Qa(){return new J("date",!0,!1)}function Ya(){return new J("json",!0,!1)}function Ha(){return new J("json",!0,!1)}function ai(t,e){var n,r,i,s;const o={fwd:{},rev:{}};for(const u of Object.values(e))(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(t).map(([u,d])=>[u,new Et(d.attrs,Object.assign(Object.assign({},o.fwd[u]),o.rev[u]))]))}function Ja({entities:t,links:e,rooms:n}){const r=e??{},i=n??{};return new At(ai(t,r),r,i)}const Za={graph:za,schema:Ja,entity:Va,string:qa,number:Ga,boolean:Ba,date:Qa,json:Ya,any:Ha};let kt;function Xa(t,e){kt==null||kt.dispose();const n=su(e),r=nu(e,a),i=tu(eu(t));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),kt={dispose:u}}return d()}function eu(t){return`${wn||Lr?"http://localhost:3000":"https://instantdb.com"}/_devtool?appId=${t}`}function tu(t){const e=document.createElement("iframe");return e.src=t,e.className="instant-devtool-iframe",Object.assign(e.style,{width:"100%",height:"100%",backgroundColor:"white",border:"none"}),{element:e}}function nu(t,e){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"/>
5
5
  <rect x="97.0973" y="91.3297" width="140" height="330" fill="white"/>
@@ -37,4 +37,4 @@ React keys must be passed directly to JSX without using spread:
37
37
  `;break;case"id":a=g.includes("\0")?void 0:g;break;case"retry":/^\d+$/.test(g)?r(parseInt(g,10)):n(new hi(`Invalid \`retry\` value: "${g}"`,{type:"invalid-retry",value:g,line:T}));break;default:n(new hi(`Unknown field "${y.length>20?`${y.slice(0,20)}…`:y}"`,{type:"unknown-field",field:y,value:g,line:T}));break}}function p(){u.length>0&&e({id:a,event:d||void 0,data:u.endsWith(`
38
38
  `)?u.slice(0,-1):u}),a=void 0,u="",d=""}function _(y={}){s&&y.consume&&f(s),o=!0,a=void 0,u="",d="",s=""}return{feed:c,reset:_}}function Iu(t){const e=[];let n="",r=0;for(;r<t.length;){const i=t.indexOf("\r",r),s=t.indexOf(`
39
39
  `,r);let o=-1;if(i!==-1&&s!==-1?o=Math.min(i,s):i!==-1?o=i:s!==-1&&(o=s),o===-1){n=t.slice(r);break}else{const a=t.slice(r,o);e.push(a),r=o+1,t[r-1]==="\r"&&t[r]===`
40
- `&&r++}}return[e,n]}class pi extends Event{constructor(e,n){var r,i;super(e),this.code=(r=n==null?void 0:n.code)!=null?r:void 0,this.message=(i=n==null?void 0:n.message)!=null?i:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,n,r){return r(yi(this),n)}[Symbol.for("Deno.customInspect")](e,n){return e(yi(this),n)}}function Ru(t){const e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function Pn(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(Pn).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${Pn(t.cause)}`:t.message:`${t}`}function yi(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var _i=t=>{throw TypeError(t)},Mn=(t,e,n)=>e.has(t)||_i("Cannot "+n),A=(t,e,n)=>(Mn(t,e,"read from private field"),n?n.call(t):e.get(t)),K=(t,e,n)=>e.has(t)?_i("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),D=(t,e,n,r)=>(Mn(t,e,"write to private field"),e.set(t,n),n),Te=(t,e,n)=>(Mn(t,e,"access private method"),n),ie,Pe,Ke,jt,Ct,at,We,ut,Se,ze,Ve,qe,ct,he,In,Rn,xn,bi,Dn,$n,dt,Un,Ln;class Pt extends EventTarget{constructor(e,n){var r,i;super(),K(this,he),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,K(this,ie),K(this,Pe),K(this,Ke),K(this,jt),K(this,Ct),K(this,at),K(this,We),K(this,ut,null),K(this,Se),K(this,ze),K(this,Ve,null),K(this,qe,null),K(this,ct,null),K(this,Rn,async s=>{var o;A(this,ze).reset();const{body:a,redirected:u,status:d,headers:c}=s;if(d===204){Te(this,he,dt).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(u?D(this,Ke,new URL(s.url)):D(this,Ke,void 0),d!==200){Te(this,he,dt).call(this,`Non-200 status code (${d})`,d);return}if(!(c.get("content-type")||"").startsWith("text/event-stream")){Te(this,he,dt).call(this,'Invalid content type, expected "text/event-stream"',d);return}if(A(this,ie)===this.CLOSED)return;D(this,ie,this.OPEN);const f=new Event("open");if((o=A(this,ct))==null||o.call(this,f),this.dispatchEvent(f),typeof a!="object"||!a||!("getReader"in a)){Te(this,he,dt).call(this,"Invalid response body, expected a web ReadableStream",d),this.close();return}const h=new TextDecoder,p=a.getReader();let _=!0;do{const{done:y,value:g}=await p.read();g&&A(this,ze).feed(h.decode(g,{stream:!y})),y&&(_=!1,A(this,ze).reset(),Te(this,he,Un).call(this))}while(_)}),K(this,xn,s=>{D(this,Se,void 0),!(s.name==="AbortError"||s.type==="aborted")&&Te(this,he,Un).call(this,Pn(s))}),K(this,Dn,s=>{typeof s.id=="string"&&D(this,ut,s.id);const o=new MessageEvent(s.event||"message",{data:s.data,origin:A(this,Ke)?A(this,Ke).origin:A(this,Pe).origin,lastEventId:s.id||""});A(this,qe)&&(!s.event||s.event==="message")&&A(this,qe).call(this,o),this.dispatchEvent(o)}),K(this,$n,s=>{D(this,at,s)}),K(this,Ln,()=>{D(this,We,void 0),A(this,ie)===this.CONNECTING&&Te(this,he,In).call(this)});try{if(e instanceof URL)D(this,Pe,e);else if(typeof e=="string")D(this,Pe,new URL(e,xu()));else throw new Error("Invalid URL")}catch{throw Ru("An invalid or illegal string was specified")}D(this,ze,Mu({onEvent:A(this,Dn),onRetry:A(this,$n)})),D(this,ie,this.CONNECTING),D(this,at,3e3),D(this,Ct,(r=n==null?void 0:n.fetch)!=null?r:globalThis.fetch),D(this,jt,(i=n==null?void 0:n.withCredentials)!=null?i:!1),Te(this,he,In).call(this)}get readyState(){return A(this,ie)}get url(){return A(this,Pe).href}get withCredentials(){return A(this,jt)}get onerror(){return A(this,Ve)}set onerror(e){D(this,Ve,e)}get onmessage(){return A(this,qe)}set onmessage(e){D(this,qe,e)}get onopen(){return A(this,ct)}set onopen(e){D(this,ct,e)}addEventListener(e,n,r){const i=n;super.addEventListener(e,i,r)}removeEventListener(e,n,r){const i=n;super.removeEventListener(e,i,r)}close(){A(this,We)&&clearTimeout(A(this,We)),A(this,ie)!==this.CLOSED&&(A(this,Se)&&A(this,Se).abort(),D(this,ie,this.CLOSED),D(this,Se,void 0))}}ie=new WeakMap,Pe=new WeakMap,Ke=new WeakMap,jt=new WeakMap,Ct=new WeakMap,at=new WeakMap,We=new WeakMap,ut=new WeakMap,Se=new WeakMap,ze=new WeakMap,Ve=new WeakMap,qe=new WeakMap,ct=new WeakMap,he=new WeakSet,In=function(){D(this,ie,this.CONNECTING),D(this,Se,new AbortController),A(this,Ct)(A(this,Pe),Te(this,he,bi).call(this)).then(A(this,Rn)).catch(A(this,xn))},Rn=new WeakMap,xn=new WeakMap,bi=function(){var t;const e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...A(this,ut)?{"Last-Event-ID":A(this,ut)}:void 0},cache:"no-store",signal:(t=A(this,Se))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},Dn=new WeakMap,$n=new WeakMap,dt=function(t,e){var n;A(this,ie)!==this.CLOSED&&D(this,ie,this.CLOSED);const r=new pi("error",{code:e,message:t});(n=A(this,Ve))==null||n.call(this,r),this.dispatchEvent(r)},Un=function(t,e){var n;if(A(this,ie)===this.CLOSED)return;D(this,ie,this.CONNECTING);const r=new pi("error",{code:e,message:t});(n=A(this,Ve))==null||n.call(this,r),this.dispatchEvent(r),D(this,We,setTimeout(A(this,Ln),A(this,at)))},Ln=new WeakMap,Pt.CONNECTING=0,Pt.OPEN=1,Pt.CLOSED=2;function xu(){const t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}const Nn=class Nn extends li{};Nn.EventSourceImpl=Pt;let Mt=Nn;function gi(t){return new Mt(t,{"@instantdb/react":vn})}const Du=gi;function $u({as:t="div",spaceId:e,room:n,className:r,style:i,userCursorColor:s,children:o,renderCursor:a,propagate:u,zIndex:d}){const c=e||`cursors-space-default--${String(n.type)}-${n.id}`,f=n.usePresence({keys:[c]}),h=n._core._reactor.getPresence(n.type,n.id);function p(w,v){const M=v.clientX,E=v.clientY,N=(M-w.left)/w.width*100,W=(E-w.top)/w.height*100;f.publishPresence({[c]:{x:M,y:E,xPercent:N,yPercent:W,color:s}})}function _(w){u||w.stopPropagation();const v=w.currentTarget.getBoundingClientRect();p(v,w)}function y(w){f.publishPresence({[c]:void 0})}function g(w){if(w.touches.length!==1)return;const v=w.touches[0];if(v.target instanceof Element){u||w.stopPropagation();const M=v.target.getBoundingClientRect();p(M,v)}}function T(w){f.publishPresence({[c]:void 0})}return C.createElement(t,{onMouseMove:_,onMouseOut:y,onTouchMove:g,onTouchEnd:T,className:r,style:{position:"relative",...i}},[o,B.jsx("div",{style:{...mi,...Lu,zIndex:d!==void 0?d:Nu},children:Object.entries(f.peers).map(([w,v])=>{const M=v[c];return M?B.jsx("div",{style:{...mi,transform:`translate(${M.xPercent}%, ${M.yPercent}%)`,transformOrigin:"0 0",transition:"transform 100ms"},children:a?a({color:M.color,presence:h.peers[w]}):B.jsx(Uu,{...M})},w):null})},c)])}function Uu({color:t}){const n=t||"black";return B.jsxs("svg",{style:{height:35,width:35},viewBox:"0 0 35 35",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[B.jsxs("g",{fill:"rgba(0,0,0,.2)",transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[B.jsx("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),B.jsx("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),B.jsxs("g",{fill:"white",transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[B.jsx("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),B.jsx("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),B.jsxs("g",{fill:n,transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[B.jsx("path",{d:"m19.751 24.4155-1.844.774-3.1-7.374 1.841-.775z"}),B.jsx("path",{d:"m13 10.814v11.188l2.969-2.866.428-.139h4.768z"})]})]})}const mi={position:"absolute",top:0,left:0,bottom:0,right:0},Lu={overflow:"hidden",pointerEvents:"none",userSelect:"none"},Nu=99999;Q.Cursors=$u,Q.InstantAPIError=nt,Q.InstantReactAbstractDatabase=li,Q.InstantReactWebDatabase=Mt,Q.i=Za,Q.id=q,Q.init=gi,Q.init_experimental=Du,Q.lookup=jo,Q.tx=Po,Object.defineProperty(Q,Symbol.toStringTag,{value:"Module"})});
40
+ `&&r++}}return[e,n]}class pi extends Event{constructor(e,n){var r,i;super(e),this.code=(r=n==null?void 0:n.code)!=null?r:void 0,this.message=(i=n==null?void 0:n.message)!=null?i:void 0}[Symbol.for("nodejs.util.inspect.custom")](e,n,r){return r(yi(this),n)}[Symbol.for("Deno.customInspect")](e,n){return e(yi(this),n)}}function Ru(t){const e=globalThis.DOMException;return typeof e=="function"?new e(t,"SyntaxError"):new SyntaxError(t)}function Pn(t){return t instanceof Error?"errors"in t&&Array.isArray(t.errors)?t.errors.map(Pn).join(", "):"cause"in t&&t.cause instanceof Error?`${t}: ${Pn(t.cause)}`:t.message:`${t}`}function yi(t){return{type:t.type,message:t.message,code:t.code,defaultPrevented:t.defaultPrevented,cancelable:t.cancelable,timeStamp:t.timeStamp}}var _i=t=>{throw TypeError(t)},Mn=(t,e,n)=>e.has(t)||_i("Cannot "+n),A=(t,e,n)=>(Mn(t,e,"read from private field"),n?n.call(t):e.get(t)),K=(t,e,n)=>e.has(t)?_i("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),D=(t,e,n,r)=>(Mn(t,e,"write to private field"),e.set(t,n),n),ve=(t,e,n)=>(Mn(t,e,"access private method"),n),ie,Pe,Ke,jt,Ct,at,We,ut,Se,ze,Ve,qe,ct,he,In,Rn,xn,bi,Dn,$n,dt,Un,Ln;class Pt extends EventTarget{constructor(e,n){var r,i;super(),K(this,he),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,K(this,ie),K(this,Pe),K(this,Ke),K(this,jt),K(this,Ct),K(this,at),K(this,We),K(this,ut,null),K(this,Se),K(this,ze),K(this,Ve,null),K(this,qe,null),K(this,ct,null),K(this,Rn,async s=>{var o;A(this,ze).reset();const{body:a,redirected:u,status:d,headers:c}=s;if(d===204){ve(this,he,dt).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(u?D(this,Ke,new URL(s.url)):D(this,Ke,void 0),d!==200){ve(this,he,dt).call(this,`Non-200 status code (${d})`,d);return}if(!(c.get("content-type")||"").startsWith("text/event-stream")){ve(this,he,dt).call(this,'Invalid content type, expected "text/event-stream"',d);return}if(A(this,ie)===this.CLOSED)return;D(this,ie,this.OPEN);const f=new Event("open");if((o=A(this,ct))==null||o.call(this,f),this.dispatchEvent(f),typeof a!="object"||!a||!("getReader"in a)){ve(this,he,dt).call(this,"Invalid response body, expected a web ReadableStream",d),this.close();return}const h=new TextDecoder,p=a.getReader();let _=!0;do{const{done:y,value:g}=await p.read();g&&A(this,ze).feed(h.decode(g,{stream:!y})),y&&(_=!1,A(this,ze).reset(),ve(this,he,Un).call(this))}while(_)}),K(this,xn,s=>{D(this,Se,void 0),!(s.name==="AbortError"||s.type==="aborted")&&ve(this,he,Un).call(this,Pn(s))}),K(this,Dn,s=>{typeof s.id=="string"&&D(this,ut,s.id);const o=new MessageEvent(s.event||"message",{data:s.data,origin:A(this,Ke)?A(this,Ke).origin:A(this,Pe).origin,lastEventId:s.id||""});A(this,qe)&&(!s.event||s.event==="message")&&A(this,qe).call(this,o),this.dispatchEvent(o)}),K(this,$n,s=>{D(this,at,s)}),K(this,Ln,()=>{D(this,We,void 0),A(this,ie)===this.CONNECTING&&ve(this,he,In).call(this)});try{if(e instanceof URL)D(this,Pe,e);else if(typeof e=="string")D(this,Pe,new URL(e,xu()));else throw new Error("Invalid URL")}catch{throw Ru("An invalid or illegal string was specified")}D(this,ze,Mu({onEvent:A(this,Dn),onRetry:A(this,$n)})),D(this,ie,this.CONNECTING),D(this,at,3e3),D(this,Ct,(r=n==null?void 0:n.fetch)!=null?r:globalThis.fetch),D(this,jt,(i=n==null?void 0:n.withCredentials)!=null?i:!1),ve(this,he,In).call(this)}get readyState(){return A(this,ie)}get url(){return A(this,Pe).href}get withCredentials(){return A(this,jt)}get onerror(){return A(this,Ve)}set onerror(e){D(this,Ve,e)}get onmessage(){return A(this,qe)}set onmessage(e){D(this,qe,e)}get onopen(){return A(this,ct)}set onopen(e){D(this,ct,e)}addEventListener(e,n,r){const i=n;super.addEventListener(e,i,r)}removeEventListener(e,n,r){const i=n;super.removeEventListener(e,i,r)}close(){A(this,We)&&clearTimeout(A(this,We)),A(this,ie)!==this.CLOSED&&(A(this,Se)&&A(this,Se).abort(),D(this,ie,this.CLOSED),D(this,Se,void 0))}}ie=new WeakMap,Pe=new WeakMap,Ke=new WeakMap,jt=new WeakMap,Ct=new WeakMap,at=new WeakMap,We=new WeakMap,ut=new WeakMap,Se=new WeakMap,ze=new WeakMap,Ve=new WeakMap,qe=new WeakMap,ct=new WeakMap,he=new WeakSet,In=function(){D(this,ie,this.CONNECTING),D(this,Se,new AbortController),A(this,Ct)(A(this,Pe),ve(this,he,bi).call(this)).then(A(this,Rn)).catch(A(this,xn))},Rn=new WeakMap,xn=new WeakMap,bi=function(){var t;const e={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...A(this,ut)?{"Last-Event-ID":A(this,ut)}:void 0},cache:"no-store",signal:(t=A(this,Se))==null?void 0:t.signal};return"window"in globalThis&&(e.credentials=this.withCredentials?"include":"same-origin"),e},Dn=new WeakMap,$n=new WeakMap,dt=function(t,e){var n;A(this,ie)!==this.CLOSED&&D(this,ie,this.CLOSED);const r=new pi("error",{code:e,message:t});(n=A(this,Ve))==null||n.call(this,r),this.dispatchEvent(r)},Un=function(t,e){var n;if(A(this,ie)===this.CLOSED)return;D(this,ie,this.CONNECTING);const r=new pi("error",{code:e,message:t});(n=A(this,Ve))==null||n.call(this,r),this.dispatchEvent(r),D(this,We,setTimeout(A(this,Ln),A(this,at)))},Ln=new WeakMap,Pt.CONNECTING=0,Pt.OPEN=1,Pt.CLOSED=2;function xu(){const t="document"in globalThis?globalThis.document:void 0;return t&&typeof t=="object"&&"baseURI"in t&&typeof t.baseURI=="string"?t.baseURI:void 0}const Nn=class Nn extends li{};Nn.EventSourceImpl=Pt;let Mt=Nn;function gi(t){return new Mt(t,{"@instantdb/react":vn})}const Du=gi;function $u({as:t="div",spaceId:e,room:n,className:r,style:i,userCursorColor:s,children:o,renderCursor:a,propagate:u,zIndex:d}){const c=e||`cursors-space-default--${String(n.type)}-${n.id}`,f=n.usePresence({keys:[c]}),h=n._core._reactor.getPresence(n.type,n.id);function p(w,v){const M=v.clientX,E=v.clientY,N=(M-w.left)/w.width*100,W=(E-w.top)/w.height*100;f.publishPresence({[c]:{x:M,y:E,xPercent:N,yPercent:W,color:s}})}function _(w){u||w.stopPropagation();const v=w.currentTarget.getBoundingClientRect();p(v,w)}function y(w){f.publishPresence({[c]:void 0})}function g(w){if(w.touches.length!==1)return;const v=w.touches[0];if(v.target instanceof Element){u||w.stopPropagation();const M=v.target.getBoundingClientRect();p(M,v)}}function T(w){f.publishPresence({[c]:void 0})}return C.createElement(t,{onMouseMove:_,onMouseOut:y,onTouchMove:g,onTouchEnd:T,className:r,style:{position:"relative",...i}},[o,B.jsx("div",{style:{...mi,...Lu,zIndex:d!==void 0?d:Nu},children:Object.entries(f.peers).map(([w,v])=>{const M=v[c];return M?B.jsx("div",{style:{...mi,transform:`translate(${M.xPercent}%, ${M.yPercent}%)`,transformOrigin:"0 0",transition:"transform 100ms"},children:a?a({color:M.color,presence:h.peers[w]}):B.jsx(Uu,{...M})},w):null})},c)])}function Uu({color:t}){const n=t||"black";return B.jsxs("svg",{style:{height:35,width:35},viewBox:"0 0 35 35",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[B.jsxs("g",{fill:"rgba(0,0,0,.2)",transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[B.jsx("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),B.jsx("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),B.jsxs("g",{fill:"white",transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[B.jsx("path",{d:"m12 24.4219v-16.015l11.591 11.619h-6.781l-.411.124z"}),B.jsx("path",{d:"m21.0845 25.0962-3.605 1.535-4.682-11.089 3.686-1.553z"})]}),B.jsxs("g",{fill:n,transform:"matrix(1, 0, 0, 1, -11.999999046325684, -8.406899452209473)",children:[B.jsx("path",{d:"m19.751 24.4155-1.844.774-3.1-7.374 1.841-.775z"}),B.jsx("path",{d:"m13 10.814v11.188l2.969-2.866.428-.139h4.768z"})]})]})}const mi={position:"absolute",top:0,left:0,bottom:0,right:0},Lu={overflow:"hidden",pointerEvents:"none",userSelect:"none"},Nu=99999;Q.Cursors=$u,Q.InstantAPIError=nt,Q.InstantReactAbstractDatabase=li,Q.InstantReactWebDatabase=Mt,Q.i=Za,Q.id=q,Q.init=gi,Q.init_experimental=Du,Q.lookup=jo,Q.tx=Po,Object.defineProperty(Q,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instantdb/react",
3
- "version": "v0.22.49-experimental.persisted-object-2.19477253536.1",
3
+ "version": "v0.22.49-experimental.persisted-object-2.19477901153.1",
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.49-experimental.persisted-object-2.19477253536.1",
58
- "@instantdb/version": "v0.22.49-experimental.persisted-object-2.19477253536.1",
59
- "@instantdb/react-common": "v0.22.49-experimental.persisted-object-2.19477253536.1"
57
+ "@instantdb/core": "v0.22.49-experimental.persisted-object-2.19477901153.1",
58
+ "@instantdb/react-common": "v0.22.49-experimental.persisted-object-2.19477901153.1",
59
+ "@instantdb/version": "v0.22.49-experimental.persisted-object-2.19477901153.1"
60
60
  },
61
61
  "scripts": {
62
62
  "test": "vitest",