@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.
package/dist/standalone/index.js
CHANGED
|
@@ -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(
|
|
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
|
|
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
|
|
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 =
|
|
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(
|
|
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 (
|
|
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
|
-
|
|
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 =
|
|
398
|
-
if (
|
|
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) || !
|
|
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 &&
|
|
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 =
|
|
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 &&
|
|
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 && !
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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 =
|
|
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(
|
|
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(
|
|
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",
|
|
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(
|
|
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,
|
|
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 = (
|
|
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:
|
|
4290
|
-
this.querySubs.updateInPlace((ue) => (ue[O].result = { store: Q, pageInfo:
|
|
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(
|
|
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 !==
|
|
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 ===
|
|
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
|
|
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 =
|
|
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),
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(),
|
|
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") &&
|
|
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 &&
|
|
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),
|
|
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),
|
|
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),
|
|
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.
|
|
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.
|
|
58
|
-
"@instantdb/
|
|
59
|
-
"@instantdb/
|
|
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",
|