@voltro/client 0.50.1 → 0.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +231 -0
- package/dist/form.d.ts +127 -0
- package/dist/form.js +2 -0
- package/dist/formData-Bw07C0wr.js +155 -0
- package/dist/index.d.ts +133 -0
- package/dist/index.js +1095 -1176
- package/package.json +8 -3
package/dist/index.js
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import * as
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./formData-Bw07C0wr.js";
|
|
2
|
+
import { createContext as l, createElement as u, useCallback as d, useContext as f, useDebugValue as p, useEffect as m, useMemo as h, useRef as g, useState as _, useSyncExternalStore as v } from "react";
|
|
3
|
+
import { Cause as y, Context as b, Duration as x, Effect as S, Exit as C, Fiber as w, Layer as T, ManagedRuntime as E, Schedule as D, Schema as ee, Stream as O } from "effect";
|
|
4
|
+
import { applyRowPatch as te } from "@voltro/protocol";
|
|
5
|
+
import * as ne from "@effect/platform/Socket";
|
|
6
|
+
import * as re from "@effect/platform/Headers";
|
|
7
|
+
import { RpcClient as k, RpcSerialization as ie } from "@effect/rpc";
|
|
8
|
+
import { jsx as ae } from "react/jsx-runtime";
|
|
9
|
+
import { ArrayFormatter as oe } from "effect/ParseResult";
|
|
9
10
|
//#region src/traceBus.ts
|
|
10
|
-
var
|
|
11
|
-
for (let t of
|
|
11
|
+
var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
12
|
+
for (let t of se) try {
|
|
12
13
|
t(e);
|
|
13
14
|
} catch {}
|
|
14
|
-
},
|
|
15
|
-
|
|
16
|
-
}),
|
|
15
|
+
}, ce = (e) => (se.add(e), () => {
|
|
16
|
+
se.delete(e);
|
|
17
|
+
}), j = (e) => {
|
|
17
18
|
let t = (e) => e == null ? "null" : typeof e == "string" ? JSON.stringify(e) : typeof e == "number" || typeof e == "boolean" ? String(e) : Array.isArray(e) ? `[${e.map(t).join(",")}]` : typeof e == "object" ? `{${Object.keys(e).sort().map((n) => `${JSON.stringify(n)}:${t(e[n])}`).join(",")}}` : String(e);
|
|
18
19
|
return t(e);
|
|
19
|
-
},
|
|
20
|
+
}, le = Object.freeze({
|
|
20
21
|
data: void 0,
|
|
21
22
|
revision: -1,
|
|
22
23
|
emittedAt: void 0,
|
|
23
24
|
error: void 0,
|
|
24
25
|
pendingPatches: 0
|
|
25
|
-
}),
|
|
26
|
+
}), ue = 5e3, de = (e, t, n) => {
|
|
26
27
|
if (e._tag === "error") return !1;
|
|
27
28
|
if (e._tag === "delta") return !0;
|
|
28
29
|
try {
|
|
@@ -30,21 +31,21 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
30
31
|
} catch {
|
|
31
32
|
return !1;
|
|
32
33
|
}
|
|
33
|
-
},
|
|
34
|
+
}, fe = 0, pe = () => `patch_${++fe}`, M = (e, t) => {
|
|
34
35
|
let n = e;
|
|
35
36
|
for (let e of t.split(".")) {
|
|
36
37
|
if (typeof n != "object" || !n) return;
|
|
37
38
|
n = n[e];
|
|
38
39
|
}
|
|
39
40
|
return n;
|
|
40
|
-
},
|
|
41
|
+
}, me = (e, t, n) => {
|
|
41
42
|
let r = t.split("."), i = (e) => typeof e == "object" && e && !Array.isArray(e) ? { ...e } : {}, a = i(e), o = a;
|
|
42
43
|
for (let e = 0; e < r.length - 1; e += 1) o[r[e]] = i(o[r[e]]), o = o[r[e]];
|
|
43
44
|
return o[r[r.length - 1]] = n, a;
|
|
44
|
-
},
|
|
45
|
+
}, he = (e, t) => {
|
|
45
46
|
let n = e.by ?? "id", r = e.identify ? e.identify(t) : typeof t[n] == "string" ? t[n] : typeof t.id == "string" ? t.id : void 0, i = r === void 0 ? [] : Array.isArray(r) ? r : [r];
|
|
46
47
|
return i.length === 0 ? null : new Set(i);
|
|
47
|
-
},
|
|
48
|
+
}, ge = (e, t, n) => {
|
|
48
49
|
let r = e.path, i = e.by ?? "id";
|
|
49
50
|
if (e.op === "insert") {
|
|
50
51
|
let a = e.shapeItem ?? e.shape, o = a ? {
|
|
@@ -57,11 +58,11 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
57
58
|
optimistic: !0
|
|
58
59
|
}, s = e.order ?? "append";
|
|
59
60
|
return (e) => {
|
|
60
|
-
let t = Array.isArray(
|
|
61
|
-
return
|
|
61
|
+
let t = Array.isArray(M(e, r)) ? M(e, r) : [];
|
|
62
|
+
return me(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
|
-
let a =
|
|
65
|
+
let a = he(e, t);
|
|
65
66
|
if (a === null) return null;
|
|
66
67
|
if (e.op === "update") {
|
|
67
68
|
let n = e.shapeItem ?? e.shape, o = n ? (e) => ({
|
|
@@ -75,16 +76,16 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
75
76
|
optimistic: !0
|
|
76
77
|
});
|
|
77
78
|
return (e) => {
|
|
78
|
-
let t = Array.isArray(
|
|
79
|
-
return
|
|
79
|
+
let t = Array.isArray(M(e, r)) ? M(e, r) : [];
|
|
80
|
+
return me(e, r, t.map((e) => a.has(e[i]) ? o(e) : e));
|
|
80
81
|
};
|
|
81
82
|
}
|
|
82
83
|
return (e) => {
|
|
83
|
-
let t = Array.isArray(
|
|
84
|
-
return
|
|
84
|
+
let t = Array.isArray(M(e, r)) ? M(e, r) : [];
|
|
85
|
+
return me(e, r, t.filter((e) => !a.has(e[i])));
|
|
85
86
|
};
|
|
86
|
-
},
|
|
87
|
-
if (e.path !== void 0) return
|
|
87
|
+
}, _e = (e, t, n) => {
|
|
88
|
+
if (e.path !== void 0) return ge(e, t, n);
|
|
88
89
|
switch (e.op) {
|
|
89
90
|
case "insert": {
|
|
90
91
|
let r = e.shape ? {
|
|
@@ -102,7 +103,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
102
103
|
};
|
|
103
104
|
}
|
|
104
105
|
case "update": {
|
|
105
|
-
let n =
|
|
106
|
+
let n = he(e, t);
|
|
106
107
|
if (n === null) return null;
|
|
107
108
|
let r = e.shape, i = r ? (e) => ({
|
|
108
109
|
...r(t, e),
|
|
@@ -119,30 +120,30 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
119
120
|
});
|
|
120
121
|
}
|
|
121
122
|
case "delete": {
|
|
122
|
-
let n =
|
|
123
|
+
let n = he(e, t);
|
|
123
124
|
return n === null ? null : (e) => (Array.isArray(e) ? e : []).filter((e) => !n.has(e.id));
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
|
-
},
|
|
127
|
+
}, ve = 5e3, ye = class {
|
|
127
128
|
entries = /* @__PURE__ */ new Map();
|
|
128
129
|
inactiveTtlMs;
|
|
129
130
|
onChangeHook;
|
|
130
131
|
errorBus;
|
|
131
132
|
constructor(e = {}) {
|
|
132
|
-
this.inactiveTtlMs = e.inactiveTtlMs ??
|
|
133
|
+
this.inactiveTtlMs = e.inactiveTtlMs ?? ve, this.onChangeHook = e.onChange, this.errorBus = e.errorBus;
|
|
133
134
|
}
|
|
134
135
|
subscribe(e, t, n, r, i = {}) {
|
|
135
|
-
let a =
|
|
136
|
+
let a = j(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
|
|
136
137
|
return s && s.evictionTimer !== null && (clearTimeout(s.evictionTimer), s.evictionTimer = null), s ? (s.fiber === null && (s.fetch = t, s.runtime = n, this.startFiber(s, t, n)), s.source === void 0 && i.source !== void 0 && (s.source = i.source)) : s = this.create(a, o, t, n, i.source), s.subscribers.add(r), {
|
|
137
138
|
getSnapshot: () => this.getSnapshot(a),
|
|
138
139
|
unsubscribe: () => this.unsubscribe(a, r)
|
|
139
140
|
};
|
|
140
141
|
}
|
|
141
142
|
update(e, t, n) {
|
|
142
|
-
let r =
|
|
143
|
+
let r = j(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
|
|
143
144
|
a ||= this.createStub(r, i);
|
|
144
145
|
let o = {
|
|
145
|
-
id:
|
|
146
|
+
id: pe(),
|
|
146
147
|
mutationId: n,
|
|
147
148
|
reducer: t
|
|
148
149
|
};
|
|
@@ -156,7 +157,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
156
157
|
for (let i of this.entries.values()) {
|
|
157
158
|
if (i.tag !== e) continue;
|
|
158
159
|
let a = {
|
|
159
|
-
id: `forTag-${++
|
|
160
|
+
id: `forTag-${++fe}`,
|
|
160
161
|
mutationId: n,
|
|
161
162
|
reducer: t
|
|
162
163
|
};
|
|
@@ -173,12 +174,12 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
173
174
|
confirmByMutation(e) {
|
|
174
175
|
let t = !1;
|
|
175
176
|
for (let n of this.entries.values()) for (let r of n.state.patches) r.mutationId === e && r.confirmed !== !0 && (r.confirmed = !0, t = !0);
|
|
176
|
-
t && setTimeout(() => this.resyncUnechoedMutation(e),
|
|
177
|
+
t && setTimeout(() => this.resyncUnechoedMutation(e), ue);
|
|
177
178
|
}
|
|
178
179
|
resyncUnechoedMutation(e) {
|
|
179
180
|
for (let t of this.entries.values()) {
|
|
180
181
|
if (!t.state.patches.some((t) => t.mutationId === e && t.confirmed === !0)) continue;
|
|
181
|
-
let n = t.tag ?? t.key, r = `optimistic patch for ${n} got no superseding server event within ${
|
|
182
|
+
let n = t.tag ?? t.key, r = `optimistic patch for ${n} got no superseding server event within ${ue}ms — the write is confirmed, so the preview is KEPT. Check reactivity for this query's source table.`;
|
|
182
183
|
this.errorBus?.emit({
|
|
183
184
|
source: "subscription",
|
|
184
185
|
tag: n,
|
|
@@ -191,7 +192,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
194
|
autoApply(e, t, n) {
|
|
194
|
-
let r = `optimistic-${n}-${++
|
|
195
|
+
let r = `optimistic-${n}-${++fe}`;
|
|
195
196
|
for (let i of e) for (let e of this.entries.values()) {
|
|
196
197
|
if (!(Array.isArray(e.source) ? e.source.includes(i.table) : e.source === i.table)) continue;
|
|
197
198
|
if (i.match !== void 0) {
|
|
@@ -204,7 +205,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
204
205
|
if (!n) continue;
|
|
205
206
|
}
|
|
206
207
|
if (e.computed && i.op === "insert" && i.path === void 0) continue;
|
|
207
|
-
let a =
|
|
208
|
+
let a = _e(i, t, r);
|
|
208
209
|
if (a === null) continue;
|
|
209
210
|
let o = {
|
|
210
211
|
id: `${r}-${e.key}`,
|
|
@@ -221,10 +222,10 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
221
222
|
n.state.patches = n.state.patches.filter((e) => e.id !== t), n.state.patches.length !== r && this.invalidate(n);
|
|
222
223
|
}
|
|
223
224
|
peek(e) {
|
|
224
|
-
return this.getSnapshot(
|
|
225
|
+
return this.getSnapshot(j(e));
|
|
225
226
|
}
|
|
226
227
|
getEntry(e) {
|
|
227
|
-
return this.entries.get(
|
|
228
|
+
return this.entries.get(j(e));
|
|
228
229
|
}
|
|
229
230
|
size() {
|
|
230
231
|
return this.entries.size;
|
|
@@ -243,7 +244,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
243
244
|
return e;
|
|
244
245
|
}
|
|
245
246
|
destroy(e) {
|
|
246
|
-
for (let t of this.entries.values()) t.evictionTimer !== null && clearTimeout(t.evictionTimer), t.fiber && e.runFork(
|
|
247
|
+
for (let t of this.entries.values()) t.evictionTimer !== null && clearTimeout(t.evictionTimer), t.fiber && e.runFork(w.interrupt(t.fiber));
|
|
247
248
|
this.entries.clear();
|
|
248
249
|
}
|
|
249
250
|
refreshAll(e) {
|
|
@@ -251,7 +252,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
251
252
|
}
|
|
252
253
|
reissue(e, t, n = !0) {
|
|
253
254
|
if (!e.fetch) return;
|
|
254
|
-
e.fiber && t.runFork(
|
|
255
|
+
e.fiber && t.runFork(w.interrupt(e.fiber)), e.fiber = null;
|
|
255
256
|
let r = e.state.patches, i = e.state.base, a = e.state.baseRevision;
|
|
256
257
|
e.state = this.freshState(), e.state.patches = r, n || (e.state.base = i, e.state.baseRevision = a), this.startFiber(e, e.fetch, t);
|
|
257
258
|
}
|
|
@@ -323,24 +324,24 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
323
324
|
};
|
|
324
325
|
}
|
|
325
326
|
startFiber(e, t, n) {
|
|
326
|
-
let r = e.tag ?? e.key, i = t(), a =
|
|
327
|
+
let r = e.tag ?? e.key, i = t(), a = O.unwrapScoped(S.currentSpan.pipe(S.catchAll(() => S.succeed(void 0)), S.map((t) => (t && (e.traceId = t.traceId, A({
|
|
327
328
|
traceId: t.traceId,
|
|
328
329
|
spanId: t.spanId,
|
|
329
330
|
source: "subscription",
|
|
330
331
|
tag: r
|
|
331
|
-
})), i)))).pipe(
|
|
332
|
-
e.fiber = n.runFork(a.pipe(
|
|
332
|
+
})), i)))).pipe(O.withSpan(`client.subscription.${r}`, { attributes: { "rpc.tag": r } }));
|
|
333
|
+
e.fiber = n.runFork(a.pipe(O.runForEach((t) => S.sync(() => {
|
|
333
334
|
let n = e.state.base;
|
|
334
335
|
if (t._tag === "snapshot") e.state.base = t.data, e.state.baseRevision = t.revision, e.state.baseEmittedAt = void 0, e.state.baseError = void 0, t.computed === !0 && (e.computed = !0);
|
|
335
|
-
else if (t._tag === "error") e.state.baseError =
|
|
336
|
+
else if (t._tag === "error") e.state.baseError = y.fail(t.error), typeof t.revision == "number" && (e.state.baseRevision = t.revision);
|
|
336
337
|
else {
|
|
337
338
|
let n = e.state.base;
|
|
338
|
-
Array.isArray(n) && (e.state.base =
|
|
339
|
+
Array.isArray(n) && (e.state.base = te(n, t.patch)), e.state.baseRevision = t.revision, e.state.baseEmittedAt = t.emittedAt, e.state.baseError = void 0;
|
|
339
340
|
}
|
|
340
|
-
e.state.patches.some((e) => e.confirmed === !0) &&
|
|
341
|
+
e.state.patches.some((e) => e.confirmed === !0) && de(t, n, e.state.base) && (e.state.patches = e.state.patches.filter((e) => e.confirmed !== !0)), this.invalidate(e);
|
|
341
342
|
})))), e.fiber.addObserver((t) => {
|
|
342
|
-
if (
|
|
343
|
-
let n =
|
|
343
|
+
if (C.isFailure(t) && !C.isInterrupted(t) && (e.state.baseRevision === -1 && (e.state.baseError = t.cause, this.invalidate(e)), this.errorBus)) {
|
|
344
|
+
let n = y.squash(t.cause);
|
|
344
345
|
this.errorBus.emit({
|
|
345
346
|
source: "subscription",
|
|
346
347
|
tag: e.tag ?? e.key,
|
|
@@ -357,7 +358,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
357
358
|
}
|
|
358
359
|
getSnapshot(e) {
|
|
359
360
|
let t = this.entries.get(e);
|
|
360
|
-
if (!t) return
|
|
361
|
+
if (!t) return le;
|
|
361
362
|
if (t.state.cachedSnapshot !== null) return t.state.cachedSnapshot;
|
|
362
363
|
let n = t.state.base;
|
|
363
364
|
if (n !== void 0 && t.state.patches.length > 0) for (let e of t.state.patches) n = e.reducer(n);
|
|
@@ -377,17 +378,17 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
377
378
|
scheduleEviction(e) {
|
|
378
379
|
e.evictionTimer !== null && clearTimeout(e.evictionTimer), e.evictionTimer = setTimeout(() => {
|
|
379
380
|
let t = this.entries.get(e.key);
|
|
380
|
-
t && t.subscribers.size === 0 && (t.fiber &&
|
|
381
|
+
t && t.subscribers.size === 0 && (t.fiber && S.runFork(w.interrupt(t.fiber)), this.entries.delete(e.key));
|
|
381
382
|
}, this.inactiveTtlMs);
|
|
382
383
|
}
|
|
383
|
-
},
|
|
384
|
+
}, be = class extends ye {
|
|
384
385
|
subscribe(e, t, n, r, i = {}) {
|
|
385
386
|
return {
|
|
386
387
|
getSnapshot: () => this.peek(e),
|
|
387
388
|
unsubscribe: () => {}
|
|
388
389
|
};
|
|
389
390
|
}
|
|
390
|
-
},
|
|
391
|
+
}, xe = class {
|
|
391
392
|
#e = /* @__PURE__ */ new Set();
|
|
392
393
|
on(e) {
|
|
393
394
|
return this.#e.add(e), () => {
|
|
@@ -399,45 +400,45 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
399
400
|
t(e);
|
|
400
401
|
} catch {}
|
|
401
402
|
}
|
|
402
|
-
},
|
|
403
|
+
}, Se = l(null), Ce = () => {
|
|
403
404
|
throw Error("Voltro: rpc / cache calls are not invokable on a not-yet-resolved api — either during SSR, or in the client boot window before the api client resolves");
|
|
404
|
-
},
|
|
405
|
-
get: (e, t) =>
|
|
405
|
+
}, we = new Proxy(() => Ce(), {
|
|
406
|
+
get: (e, t) => we,
|
|
406
407
|
has: () => !0,
|
|
407
|
-
apply: () =>
|
|
408
|
-
}),
|
|
409
|
-
runtime: { runPromiseExit: () => Promise.resolve(
|
|
410
|
-
cache: new
|
|
411
|
-
client:
|
|
408
|
+
apply: () => Ce()
|
|
409
|
+
}), Te = {
|
|
410
|
+
runtime: { runPromiseExit: () => Promise.resolve(C.die(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR"))) },
|
|
411
|
+
cache: new be(),
|
|
412
|
+
client: we,
|
|
412
413
|
descriptors: {},
|
|
413
414
|
inspectBaseUrl: "",
|
|
414
|
-
errorBus: new
|
|
415
|
-
},
|
|
416
|
-
get: () =>
|
|
415
|
+
errorBus: new xe()
|
|
416
|
+
}, Ee = {
|
|
417
|
+
get: () => Te,
|
|
417
418
|
names: []
|
|
418
|
-
},
|
|
419
|
-
|
|
420
|
-
},
|
|
421
|
-
let e =
|
|
422
|
-
return e ? (
|
|
423
|
-
|
|
424
|
-
}, 0)),
|
|
425
|
-
},
|
|
419
|
+
}, N = !1, P = !1, F = null, De = () => {
|
|
420
|
+
N = !1, P = !1, F !== null && (clearTimeout(F), F = null);
|
|
421
|
+
}, Oe = () => {
|
|
422
|
+
let e = f(Se);
|
|
423
|
+
return e ? (P || (P = !0, F !== null && (clearTimeout(F), F = null)), e) : (typeof window < "u" && !N && !P && F === null && process.env.NODE_ENV !== "production" && (F = setTimeout(() => {
|
|
424
|
+
F = null, !(N || P) && (N = !0, console.warn("useFrameworkRuntimes: no <FrameworkRuntimesProvider> in the tree — returning a loading baseline (subscriptions read `undefined`, mutations are no-ops). If this is not an intentional lazy/conditional mount, mount your app via @voltro/web mount() or wrap the subtree in <VoltroRuntimeProvider>."));
|
|
425
|
+
}, 0)), Ee);
|
|
426
|
+
}, I = (e) => Oe().get(e), L = (e) => typeof e.runtime?.runFork != "function", ke = async (e) => {
|
|
426
427
|
let { name: t, wsUrl: n, group: r, headers: i, webSocketConstructor: a } = e;
|
|
427
|
-
class o extends
|
|
428
|
-
let s =
|
|
428
|
+
class o extends b.Tag(`@voltro/client/AppClient/${t}`)() {}
|
|
429
|
+
let s = T.succeed(ne.WebSocketConstructor, (e, t) => a(e, t)), c = k.layerProtocolSocket().pipe(T.provide(ie.layerJson), T.provide(ne.layerWebSocket(n)), T.provide(s)), l = typeof i == "function" ? await i() : i, u = T.scoped(o, k.make(r)).pipe(T.provide(c)), d = l ? T.locallyScoped(k.currentHeaders, re.fromInput(l)) : T.empty, f = E.make(T.merge(u, d));
|
|
429
430
|
try {
|
|
430
|
-
let e = await
|
|
431
|
+
let e = await f.runPromise(o), t = new xe();
|
|
431
432
|
return {
|
|
432
|
-
runtime:
|
|
433
|
+
runtime: f,
|
|
433
434
|
client: e,
|
|
434
|
-
cache: new
|
|
435
|
+
cache: new ye({ errorBus: t }),
|
|
435
436
|
errorBus: t
|
|
436
437
|
};
|
|
437
438
|
} catch (e) {
|
|
438
|
-
throw
|
|
439
|
+
throw f.dispose(), e;
|
|
439
440
|
}
|
|
440
|
-
},
|
|
441
|
+
}, Ae = (e) => Math.min(500 * 2 ** Math.min(e - 1, 4), 5e3), je = () => ({
|
|
441
442
|
resolved: null,
|
|
442
443
|
retryToken: 0,
|
|
443
444
|
failureCount: 0,
|
|
@@ -446,15 +447,15 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
446
447
|
everOpened: !1,
|
|
447
448
|
wedgeStop: null,
|
|
448
449
|
subjectMayHaveChanged: !1
|
|
449
|
-
}),
|
|
450
|
+
}), Me = (e) => {
|
|
450
451
|
e.wedgeStop !== null && (e.wedgeStop(), e.wedgeStop = null);
|
|
451
|
-
},
|
|
452
|
+
}, Ne = (e) => {
|
|
452
453
|
e.cache.destroy(e.runtime), e.runtime.dispose();
|
|
453
|
-
},
|
|
454
|
-
let t = e.apis, n = e.buildClient, r = e.onChange, i = e.retryDelayMs ??
|
|
454
|
+
}, Pe = (e) => {
|
|
455
|
+
let t = e.apis, n = e.buildClient, r = e.onChange, i = e.retryDelayMs ?? Ae, a = e.stableWindowMs ?? 5e3, o = e.scheduler?.setTimeout ?? ((e, t) => setTimeout(e, t)), s = e.scheduler?.clearTimeout ?? ((e) => {
|
|
455
456
|
clearTimeout(e);
|
|
456
457
|
}), c = e.scheduler?.queueMicrotask ?? queueMicrotask, l = e.onReconnecting, u = e.wedgeBackstop, d = /* @__PURE__ */ new Map();
|
|
457
|
-
for (let e of t) d.set(e.name,
|
|
458
|
+
for (let e of t) d.set(e.name, je());
|
|
458
459
|
let f = !1, p = /* @__PURE__ */ new Set(), m = (e, t) => {
|
|
459
460
|
let n = o(() => {
|
|
460
461
|
p.delete(n), e();
|
|
@@ -480,7 +481,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
480
481
|
if (!t) return;
|
|
481
482
|
let r = t.generation, i = () => {
|
|
482
483
|
if (f || t.generation !== r) return;
|
|
483
|
-
t.everOpened = !0,
|
|
484
|
+
t.everOpened = !0, Me(t), t.retryToken++;
|
|
484
485
|
let e = t.failureCount;
|
|
485
486
|
m(() => {
|
|
486
487
|
f || t.failureCount === e && (t.failureCount = 0);
|
|
@@ -491,11 +492,11 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
491
492
|
try {
|
|
492
493
|
let a = await n(e, r, i, o);
|
|
493
494
|
if (f || t.generation !== r) {
|
|
494
|
-
|
|
495
|
+
Ne(a);
|
|
495
496
|
return;
|
|
496
497
|
}
|
|
497
498
|
let s = t.resolved;
|
|
498
|
-
s && !t.subjectMayHaveChanged && a.cache.seedStaleFrom(s.cache), t.subjectMayHaveChanged = !1, t.resolved = a, t.reconnectStatusDispose &&= (t.reconnectStatusDispose(), null), h(), s &&
|
|
499
|
+
s && !t.subjectMayHaveChanged && a.cache.seedStaleFrom(s.cache), t.subjectMayHaveChanged = !1, t.resolved = a, t.reconnectStatusDispose &&= (t.reconnectStatusDispose(), null), h(), s && Ne(s);
|
|
499
500
|
} catch {
|
|
500
501
|
if (f || t.generation !== r) return;
|
|
501
502
|
g(e);
|
|
@@ -503,7 +504,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
503
504
|
}, v = (e) => {
|
|
504
505
|
if (!f) for (let n of t) {
|
|
505
506
|
let t = d.get(n.name);
|
|
506
|
-
t && (e && (t.subjectMayHaveChanged = !0), t.retryToken += 1, t.generation += 1, t.failureCount = 0,
|
|
507
|
+
t && (e && (t.subjectMayHaveChanged = !0), t.retryToken += 1, t.generation += 1, t.failureCount = 0, Me(t), _(n));
|
|
507
508
|
}
|
|
508
509
|
};
|
|
509
510
|
return t.length === 0 ? (r(/* @__PURE__ */ new Map(), !0), {
|
|
@@ -520,7 +521,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
520
521
|
f = !0;
|
|
521
522
|
for (let e of p) s(e);
|
|
522
523
|
p.clear();
|
|
523
|
-
for (let [, e] of d) e.resolved &&
|
|
524
|
+
for (let [, e] of d) e.resolved && Ne(e.resolved), e.reconnectStatusDispose && e.reconnectStatusDispose(), Me(e);
|
|
524
525
|
d.clear();
|
|
525
526
|
}
|
|
526
527
|
},
|
|
@@ -531,8 +532,8 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
531
532
|
v(!1);
|
|
532
533
|
}
|
|
533
534
|
});
|
|
534
|
-
},
|
|
535
|
-
let n =
|
|
535
|
+
}, Fe = ({ apis: e, children: t }) => {
|
|
536
|
+
let n = h(() => ({
|
|
536
537
|
get: (t) => {
|
|
537
538
|
let n = e.get(t);
|
|
538
539
|
if (!n) {
|
|
@@ -543,45 +544,45 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
543
544
|
},
|
|
544
545
|
names: Array.from(e.keys())
|
|
545
546
|
}), [e]);
|
|
546
|
-
return /* @__PURE__ */
|
|
547
|
+
return /* @__PURE__ */ ae(Se.Provider, {
|
|
547
548
|
value: n,
|
|
548
549
|
children: t
|
|
549
550
|
});
|
|
550
|
-
},
|
|
551
|
-
let e = globalThis, t = e[
|
|
551
|
+
}, Ie = Symbol.for("@voltro/client/storeStorageProvider"), Le = () => {
|
|
552
|
+
let e = globalThis, t = e[Ie];
|
|
552
553
|
if (t !== void 0) return t;
|
|
553
554
|
let n = {
|
|
554
555
|
provider: void 0,
|
|
555
556
|
used: !1
|
|
556
557
|
};
|
|
557
|
-
return e[
|
|
558
|
-
},
|
|
558
|
+
return e[Ie] = n, n;
|
|
559
|
+
}, Re = (e) => {
|
|
559
560
|
if (typeof window > "u") return null;
|
|
560
561
|
try {
|
|
561
562
|
return (e === "session" ? window.sessionStorage : window.localStorage) ?? null;
|
|
562
563
|
} catch {
|
|
563
564
|
return null;
|
|
564
565
|
}
|
|
565
|
-
},
|
|
566
|
-
let t =
|
|
566
|
+
}, ze = (e) => {
|
|
567
|
+
let t = Le();
|
|
567
568
|
t.used && e !== null && console.warn("[voltro] setStoreStorage() was called after a persisted store had already read. That store booted against the previous backing store and will not be re-read. Install storage before the first render — on React Native, after awaiting hydrate()."), t.provider = e ?? void 0;
|
|
568
|
-
},
|
|
569
|
-
let t =
|
|
570
|
-
return t.used = !0, (t.provider ??
|
|
571
|
-
},
|
|
572
|
-
let e =
|
|
569
|
+
}, Be = (e) => {
|
|
570
|
+
let t = Le();
|
|
571
|
+
return t.used = !0, (t.provider ?? Re)(e);
|
|
572
|
+
}, Ve = () => {
|
|
573
|
+
let e = Le();
|
|
573
574
|
e.provider = void 0, e.used = !1;
|
|
574
|
-
},
|
|
575
|
+
}, R = (e, t) => {
|
|
575
576
|
if (Object.is(e, t)) return !0;
|
|
576
577
|
if (typeof e != "object" || typeof t != "object" || e === null || t === null || Array.isArray(e) !== Array.isArray(t)) return !1;
|
|
577
578
|
let n = Object.keys(e), r = Object.keys(t);
|
|
578
579
|
if (n.length !== r.length) return !1;
|
|
579
580
|
for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || !Object.is(e[r], t[r])) return !1;
|
|
580
581
|
return !0;
|
|
581
|
-
},
|
|
582
|
-
|
|
583
|
-
},
|
|
584
|
-
let r =
|
|
582
|
+
}, He = 50, Ue = /* @__PURE__ */ new Set(), We = (e, t) => {
|
|
583
|
+
Ue.has(e) || (Ue.add(e), console.warn(t));
|
|
584
|
+
}, Ge = "\0global", Ke = null, qe = (e, t, n) => {
|
|
585
|
+
let r = Ke?.() ?? null;
|
|
585
586
|
if (r === null) return n;
|
|
586
587
|
let i = n;
|
|
587
588
|
for (let n of r.seeds) n.store === e && n.key === t && (i = {
|
|
@@ -589,9 +590,9 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
589
590
|
...n.value
|
|
590
591
|
});
|
|
591
592
|
return i;
|
|
592
|
-
},
|
|
593
|
+
}, Je = (e, t) => {
|
|
593
594
|
let n = e(), r = /* @__PURE__ */ new Set(), i = 0, a = 0, o, s, c = () => {
|
|
594
|
-
if (i >=
|
|
595
|
+
if (i >= He) throw i = 0, Error(`defineStore: notification depth exceeded ${He} — a subscriber writes a NEW value every time it is notified, so the store can never settle. Look for a listener calling set() with something derived from the current state without converging.`);
|
|
595
596
|
i += 1;
|
|
596
597
|
try {
|
|
597
598
|
for (let e of [...r]) e();
|
|
@@ -612,20 +613,20 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
612
613
|
if (typeof i?.then == "function") throw a === 1 && o !== void 0 && (n = o), --a, a === 0 && (o = void 0, s = void 0), Error(`defineStore: batch('${e}') was given an async function. A batch is synchronous — everything after the first await would land outside it. Await the work first, then batch the writes: \`const r = await load(); store.batch('${e}', () => { … })\`.`);
|
|
613
614
|
if (--a, a > 0) return;
|
|
614
615
|
let l = o, u = s;
|
|
615
|
-
o = void 0, s = void 0, !
|
|
616
|
+
o = void 0, s = void 0, !R(l, n) && (t(l, n, u), c());
|
|
616
617
|
},
|
|
617
618
|
set: (e, r) => {
|
|
618
619
|
let i = typeof e == "function" ? e(n) : {
|
|
619
620
|
...n,
|
|
620
621
|
...e
|
|
621
622
|
};
|
|
622
|
-
if (
|
|
623
|
+
if (R(i, n)) return;
|
|
623
624
|
let o = n;
|
|
624
625
|
n = i, !(a > 0) && (t(o, i, r), c());
|
|
625
626
|
},
|
|
626
627
|
reset: () => {
|
|
627
628
|
let r = e();
|
|
628
|
-
if (
|
|
629
|
+
if (R(r, n)) return;
|
|
629
630
|
let i = n;
|
|
630
631
|
n = r, !(a > 0) && (t(i, r, "reset"), c());
|
|
631
632
|
},
|
|
@@ -633,56 +634,56 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
633
634
|
r.delete(e);
|
|
634
635
|
})
|
|
635
636
|
};
|
|
636
|
-
},
|
|
637
|
-
|
|
638
|
-
}),
|
|
639
|
-
|
|
640
|
-
},
|
|
641
|
-
let n =
|
|
637
|
+
}, Ye = 200, z = [], Xe = /* @__PURE__ */ new Set(), Ze = [], Qe = () => Ze, $e = (e) => (Xe.add(e), () => {
|
|
638
|
+
Xe.delete(e);
|
|
639
|
+
}), et = () => {
|
|
640
|
+
z.length = 0, Ze = [];
|
|
641
|
+
}, tt = (e, t) => {
|
|
642
|
+
let n = z[e];
|
|
642
643
|
if (n === void 0) return !1;
|
|
643
|
-
let r =
|
|
644
|
+
let r = H.get(n.store);
|
|
644
645
|
if (r === void 0) return !1;
|
|
645
646
|
let i = t === "before" ? n.prev : n.next;
|
|
646
|
-
|
|
647
|
+
V = !0;
|
|
647
648
|
try {
|
|
648
649
|
r.set(() => i, n.key, `travel:${t}`);
|
|
649
650
|
} finally {
|
|
650
|
-
|
|
651
|
+
V = !1;
|
|
651
652
|
}
|
|
652
653
|
return !0;
|
|
653
|
-
},
|
|
654
|
-
|
|
655
|
-
for (let e of [...
|
|
656
|
-
},
|
|
657
|
-
|
|
658
|
-
})),
|
|
659
|
-
function
|
|
654
|
+
}, B = !1, V = !1, nt = (e) => {
|
|
655
|
+
z.push(e), z.length > Ye && z.shift(), Ze = [...z];
|
|
656
|
+
for (let e of [...Xe]) e();
|
|
657
|
+
}, H = /* @__PURE__ */ new Map(), rt = /* @__PURE__ */ new Map(), it = 0, at = !1, ot = /* @__PURE__ */ new Map(), st = () => (at || (at = !0, queueMicrotask(() => {
|
|
658
|
+
it += 1, at = !1;
|
|
659
|
+
})), it), ct = lt(((/* @__PURE__ */ Error()).stack ?? "").split("\n")[1] ?? "") ?? "";
|
|
660
|
+
function lt(e) {
|
|
660
661
|
let t = e.trim().replace(/^at\s+/, ""), n = /\(([^()]+)\)\s*$/.exec(t)?.[1] ?? t;
|
|
661
662
|
return n.length > 0 ? n : void 0;
|
|
662
663
|
}
|
|
663
|
-
var
|
|
664
|
+
var ut = () => {
|
|
664
665
|
let e = (/* @__PURE__ */ Error()).stack;
|
|
665
666
|
if (typeof e != "string") return "<unknown>";
|
|
666
667
|
for (let t of e.split("\n").slice(1)) {
|
|
667
|
-
let e =
|
|
668
|
+
let e = lt(t);
|
|
668
669
|
if (e === void 0) continue;
|
|
669
670
|
let n = e.replace(/:\d+:\d+$/, "");
|
|
670
|
-
if (
|
|
671
|
+
if (ct === "" || n !== ct.replace(/:\d+:\d+$/, "")) return n;
|
|
671
672
|
}
|
|
672
673
|
return "<unknown>";
|
|
673
|
-
},
|
|
674
|
-
let
|
|
675
|
-
if (
|
|
676
|
-
let t =
|
|
677
|
-
if (
|
|
678
|
-
throw Error(`defineStore: '${e}' is already defined. Store names are the devtools + seed key, so two stores sharing one name would silently share state. Rename one.\n first: ${t}\n second: ${
|
|
679
|
-
}
|
|
680
|
-
let
|
|
681
|
-
let e =
|
|
682
|
-
if (e === null ||
|
|
674
|
+
}, dt = () => [...H.values()], ft = (e, t, n) => {
|
|
675
|
+
let r = ut(), i = st(), a = H.get(e);
|
|
676
|
+
if (a !== void 0) {
|
|
677
|
+
let t = rt.get(e) ?? "<unknown>", n = ot.get(e) === i;
|
|
678
|
+
if (r !== "<unknown>" && r === t && !n) return a;
|
|
679
|
+
throw Error(`defineStore: '${e}' is already defined. Store names are the devtools + seed key, so two stores sharing one name would silently share state. Rename one.\n first: ${t}\n second: ${r}`);
|
|
680
|
+
}
|
|
681
|
+
let o = n?.persist, s = () => Be(o?.storage === "session" ? "session" : "local"), c = () => {
|
|
682
|
+
let e = s();
|
|
683
|
+
if (e === null || o === void 0) return;
|
|
683
684
|
let t;
|
|
684
685
|
try {
|
|
685
|
-
t = e.getItem(
|
|
686
|
+
t = e.getItem(o.key);
|
|
686
687
|
} catch {
|
|
687
688
|
return;
|
|
688
689
|
}
|
|
@@ -693,50 +694,50 @@ var at = () => {
|
|
|
693
694
|
} catch {
|
|
694
695
|
return;
|
|
695
696
|
}
|
|
696
|
-
return
|
|
697
|
-
},
|
|
698
|
-
let t =
|
|
699
|
-
if (t === null ||
|
|
700
|
-
let n =
|
|
697
|
+
return o.migrate ? o.migrate(n) : n;
|
|
698
|
+
}, l = (e) => {
|
|
699
|
+
let t = s();
|
|
700
|
+
if (t === null || o === void 0) return;
|
|
701
|
+
let n = o.pick ? o.pick(e) : e;
|
|
701
702
|
try {
|
|
702
|
-
t.setItem(
|
|
703
|
+
t.setItem(o.key, JSON.stringify(n));
|
|
703
704
|
} catch {}
|
|
704
|
-
},
|
|
705
|
-
let r = n ??
|
|
705
|
+
}, u = /* @__PURE__ */ new Map(), f = (n) => {
|
|
706
|
+
let r = n ?? Ge, i = u.get(r);
|
|
706
707
|
if (i === void 0) {
|
|
707
708
|
let a = n;
|
|
708
|
-
i =
|
|
709
|
+
i = Je(o !== void 0 && n === void 0 ? () => {
|
|
709
710
|
let e = t();
|
|
710
|
-
return
|
|
711
|
+
return m = e, {
|
|
711
712
|
...e,
|
|
712
|
-
...
|
|
713
|
+
...c() ?? {}
|
|
713
714
|
};
|
|
714
715
|
} : t, (t, n, r) => {
|
|
715
|
-
if (
|
|
716
|
-
let e =
|
|
716
|
+
if (o !== void 0 && a === void 0 && l(n), !B && !V) {
|
|
717
|
+
let e = _(a);
|
|
717
718
|
e.steps.length = e.cursor, e.steps.push({
|
|
718
719
|
prev: t,
|
|
719
720
|
next: n
|
|
720
721
|
}), e.steps.length > y && e.steps.shift(), e.cursor = e.steps.length;
|
|
721
722
|
}
|
|
722
|
-
|
|
723
|
+
nt({
|
|
723
724
|
store: e,
|
|
724
725
|
...a === void 0 ? {} : { key: a },
|
|
725
726
|
...r === void 0 ? {} : { label: r },
|
|
726
|
-
...
|
|
727
|
+
...B || V ? { isUndo: !0 } : {},
|
|
727
728
|
prev: t,
|
|
728
729
|
next: n,
|
|
729
730
|
at: Date.now()
|
|
730
731
|
});
|
|
731
|
-
}),
|
|
732
|
+
}), u.set(r, i);
|
|
732
733
|
}
|
|
733
734
|
return i;
|
|
734
|
-
},
|
|
735
|
-
let t = e ??
|
|
735
|
+
}, m, h = /* @__PURE__ */ new Map(), _ = (e) => {
|
|
736
|
+
let t = e ?? Ge, n = h.get(t);
|
|
736
737
|
return n === void 0 && (n = {
|
|
737
738
|
steps: [],
|
|
738
739
|
cursor: 0
|
|
739
|
-
},
|
|
740
|
+
}, h.set(t, n)), n;
|
|
740
741
|
}, y = 100, b = /* @__PURE__ */ new Map(), x = /* @__PURE__ */ new Map(), S = (e) => {
|
|
741
742
|
let t = x.get(e);
|
|
742
743
|
t !== void 0 && (clearTimeout(t), x.delete(e)), b.set(e, (b.get(e) ?? 0) + 1);
|
|
@@ -747,106 +748,106 @@ var at = () => {
|
|
|
747
748
|
return;
|
|
748
749
|
}
|
|
749
750
|
b.delete(e), x.set(e, setTimeout(() => {
|
|
750
|
-
x.delete(e), (b.get(e) ?? 0) === 0 &&
|
|
751
|
+
x.delete(e), (b.get(e) ?? 0) === 0 && u.delete(e);
|
|
751
752
|
}, 0));
|
|
752
753
|
}, w = {
|
|
753
754
|
name: e,
|
|
754
|
-
use: (t,
|
|
755
|
-
let
|
|
756
|
-
|
|
757
|
-
let
|
|
758
|
-
|
|
759
|
-
let
|
|
755
|
+
use: (t, n) => {
|
|
756
|
+
let r = f(n?.key), i = g(t);
|
|
757
|
+
i.current = t;
|
|
758
|
+
let a = g(n?.equals);
|
|
759
|
+
a.current = n?.equals;
|
|
760
|
+
let o = g({
|
|
760
761
|
state: void 0,
|
|
761
762
|
value: void 0,
|
|
762
763
|
has: !1
|
|
763
|
-
}),
|
|
764
|
-
let n =
|
|
764
|
+
}), s = d((t) => {
|
|
765
|
+
let n = o.current;
|
|
765
766
|
if (n.has && Object.is(n.state, t)) return n.value;
|
|
766
|
-
let r =
|
|
767
|
-
process.env.NODE_ENV !== "production" &&
|
|
768
|
-
let
|
|
769
|
-
return
|
|
767
|
+
let r = i.current(t), s = a.current, c = n.has && (s ? s(n.value, r) : Object.is(n.value, r));
|
|
768
|
+
process.env.NODE_ENV !== "production" && s === void 0 && n.has && !c && typeof r == "object" && r && R(n.value, r) && We(e, `[@voltro/client] ${e}.use(): the selector returns a NEW object each call, so the default identity check never sees it as unchanged and this component re-renders on EVERY store change.\n Pass \`{ equals: shallow }\` (exported from @voltro/client), or select a primitive.`);
|
|
769
|
+
let l = c ? n.value : r;
|
|
770
|
+
return o.current = {
|
|
770
771
|
state: t,
|
|
771
|
-
value:
|
|
772
|
+
value: l,
|
|
772
773
|
has: !0
|
|
773
|
-
},
|
|
774
|
-
}, []),
|
|
775
|
-
let t =
|
|
776
|
-
return
|
|
777
|
-
t(),
|
|
774
|
+
}, l;
|
|
775
|
+
}, []), c = n?.key, l = n?.retain === !0, u = d((e) => {
|
|
776
|
+
let t = r.subscribe(e);
|
|
777
|
+
return c !== void 0 && !l && S(c), () => {
|
|
778
|
+
t(), c !== void 0 && !l && C(c);
|
|
778
779
|
};
|
|
779
780
|
}, [
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
]),
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
]), y =
|
|
788
|
-
return
|
|
781
|
+
r,
|
|
782
|
+
c,
|
|
783
|
+
l
|
|
784
|
+
]), h = d(() => s(r.get()), [r, s]), _ = d(() => s(qe(e, n?.key, n?.key === void 0 && m !== void 0 ? m : r.get())), [
|
|
785
|
+
r,
|
|
786
|
+
n?.key,
|
|
787
|
+
s
|
|
788
|
+
]), y = v(u, h, _);
|
|
789
|
+
return p(y), y;
|
|
789
790
|
},
|
|
790
|
-
instance:
|
|
791
|
-
get: (e) =>
|
|
791
|
+
instance: f,
|
|
792
|
+
get: (e) => f(e).get(),
|
|
792
793
|
set: (e, t, n) => {
|
|
793
|
-
|
|
794
|
+
f(t).set(e, n);
|
|
794
795
|
},
|
|
795
796
|
batch: (e, t, n) => {
|
|
796
|
-
|
|
797
|
+
f(n).batch(e, t);
|
|
797
798
|
},
|
|
798
799
|
undo: (e) => {
|
|
799
|
-
let t =
|
|
800
|
+
let t = _(e);
|
|
800
801
|
if (t.cursor === 0) return !1;
|
|
801
|
-
--t.cursor,
|
|
802
|
+
--t.cursor, B = !0;
|
|
802
803
|
try {
|
|
803
|
-
|
|
804
|
+
f(e).set(() => t.steps[t.cursor].prev, "undo");
|
|
804
805
|
} finally {
|
|
805
|
-
|
|
806
|
+
B = !1;
|
|
806
807
|
}
|
|
807
808
|
return !0;
|
|
808
809
|
},
|
|
809
810
|
redo: (e) => {
|
|
810
|
-
let t =
|
|
811
|
+
let t = _(e);
|
|
811
812
|
if (t.cursor >= t.steps.length) return !1;
|
|
812
813
|
let n = t.steps[t.cursor];
|
|
813
|
-
t.cursor += 1,
|
|
814
|
+
t.cursor += 1, B = !0;
|
|
814
815
|
try {
|
|
815
|
-
|
|
816
|
+
f(e).set(() => n.next, "redo");
|
|
816
817
|
} finally {
|
|
817
|
-
|
|
818
|
+
B = !1;
|
|
818
819
|
}
|
|
819
820
|
return !0;
|
|
820
821
|
},
|
|
821
|
-
canUndo: (e) =>
|
|
822
|
+
canUndo: (e) => _(e).cursor > 0,
|
|
822
823
|
canRedo: (e) => {
|
|
823
|
-
let t =
|
|
824
|
+
let t = _(e);
|
|
824
825
|
return t.cursor < t.steps.length;
|
|
825
826
|
},
|
|
826
827
|
release: (e) => {
|
|
827
|
-
|
|
828
|
+
u.delete(e), h.delete(e);
|
|
828
829
|
},
|
|
829
|
-
keys: () => [...
|
|
830
|
+
keys: () => [...u.keys()].filter((e) => e !== Ge)
|
|
830
831
|
};
|
|
831
|
-
return
|
|
832
|
-
},
|
|
833
|
-
|
|
834
|
-
},
|
|
835
|
-
|
|
836
|
-
},
|
|
837
|
-
let r =
|
|
832
|
+
return H.set(e, w), rt.set(e, r), ot.set(e, i), w;
|
|
833
|
+
}, pt = () => {
|
|
834
|
+
H.clear(), rt.clear(), ot.clear(), Ue.clear();
|
|
835
|
+
}, mt = () => ({ seeds: [] }), ht = (e) => {
|
|
836
|
+
Ke = e;
|
|
837
|
+
}, gt = (e, t, n) => {
|
|
838
|
+
let r = Ke?.() ?? null;
|
|
838
839
|
if (r === null) throw Error(`seedStore('${e.name}') was called outside a server render. Seeding exists to put a value into the SSR hydration payload; on the client, set the store directly instead. (If this IS server code, the render did not install a seed bag — that is a framework bug.)`);
|
|
839
840
|
r.seeds.push({
|
|
840
841
|
store: e.name,
|
|
841
842
|
...n?.key === void 0 ? {} : { key: n.key },
|
|
842
843
|
value: t
|
|
843
844
|
});
|
|
844
|
-
},
|
|
845
|
+
}, _t = (e) => {
|
|
845
846
|
if (e !== void 0) for (let t of e) {
|
|
846
|
-
let e =
|
|
847
|
+
let e = H.get(t.store);
|
|
847
848
|
e !== void 0 && e.set(t.value, t.key);
|
|
848
849
|
}
|
|
849
|
-
},
|
|
850
|
+
}, U = (e, t) => {
|
|
850
851
|
let n = t.split("."), r = e;
|
|
851
852
|
for (let e = 0; e < n.length; e++) {
|
|
852
853
|
let i = n[e];
|
|
@@ -865,52 +866,52 @@ var at = () => {
|
|
|
865
866
|
}
|
|
866
867
|
if (typeof r != "function") throw Error(`@voltro/client: rpc tag ${JSON.stringify(t)} did not resolve to a callable method.`);
|
|
867
868
|
return r;
|
|
868
|
-
},
|
|
869
|
+
}, vt = Object.freeze({
|
|
869
870
|
data: void 0,
|
|
870
871
|
revision: -1,
|
|
871
872
|
emittedAt: void 0,
|
|
872
873
|
error: void 0,
|
|
873
874
|
pendingPatches: 0
|
|
874
|
-
}),
|
|
875
|
-
function
|
|
876
|
-
let
|
|
877
|
-
|
|
878
|
-
let
|
|
879
|
-
|
|
880
|
-
let
|
|
881
|
-
let e =
|
|
875
|
+
}), yt = () => vt;
|
|
876
|
+
function W(e, t, n = {}, r = {}) {
|
|
877
|
+
let i = r.skip === !0, { runtime: a, cache: o, client: s, descriptors: c } = I(e), l = c[t]?.source, u = g(n);
|
|
878
|
+
u.current = n;
|
|
879
|
+
let f = g(s);
|
|
880
|
+
f.current = s;
|
|
881
|
+
let p = h(() => JSON.stringify(Object.entries(n).sort(([e], [t]) => e.localeCompare(t))), [n]), m = h(() => {
|
|
882
|
+
let e = u.current;
|
|
882
883
|
return {
|
|
883
884
|
queryKey: [t, e],
|
|
884
|
-
fetch: () =>
|
|
885
|
+
fetch: () => U(f.current, t)(e)
|
|
885
886
|
};
|
|
886
|
-
}, [t,
|
|
887
|
-
|
|
888
|
-
c,
|
|
889
|
-
p,
|
|
887
|
+
}, [t, p]), _ = m.queryKey, y = d((e) => i ? () => {} : o.subscribe(m.queryKey, m.fetch, a, e, l === void 0 ? {} : { source: l }).unsubscribe, [
|
|
888
|
+
o,
|
|
890
889
|
a,
|
|
890
|
+
l,
|
|
891
|
+
i,
|
|
892
|
+
m
|
|
893
|
+
]), b = d(() => i ? vt : o.peek(_), [
|
|
894
|
+
o,
|
|
895
|
+
i,
|
|
891
896
|
_
|
|
892
|
-
]), b =
|
|
893
|
-
u,
|
|
894
|
-
a,
|
|
895
|
-
v
|
|
896
|
-
]), x = l(y, b, mt), S = x.data !== void 0, C = S && (Array.isArray(x.data) ? x.data.length === 0 : x.data === null), w = {
|
|
897
|
+
]), x = v(y, b, yt), S = x.data !== void 0, C = S && (Array.isArray(x.data) ? x.data.length === 0 : x.data === null), w = {
|
|
897
898
|
revision: x.revision,
|
|
898
899
|
emittedAt: x.emittedAt,
|
|
899
900
|
error: x.error,
|
|
900
901
|
pendingPatches: x.pendingPatches
|
|
901
902
|
};
|
|
902
|
-
if (
|
|
903
|
-
let e = Array.isArray(
|
|
903
|
+
if (r.initialSnapshot !== void 0) {
|
|
904
|
+
let e = Array.isArray(r.initialSnapshot) ? r.initialSnapshot.length === 0 : r.initialSnapshot === null;
|
|
904
905
|
return {
|
|
905
906
|
...w,
|
|
906
|
-
data: S ? x.data :
|
|
907
|
+
data: S ? x.data : r.initialSnapshot,
|
|
907
908
|
loading: !1,
|
|
908
|
-
idle:
|
|
909
|
+
idle: i,
|
|
909
910
|
isEmpty: S ? C : e,
|
|
910
911
|
failed: !1
|
|
911
912
|
};
|
|
912
913
|
}
|
|
913
|
-
return
|
|
914
|
+
return r.fallback === void 0 ? i ? {
|
|
914
915
|
...w,
|
|
915
916
|
data: void 0,
|
|
916
917
|
loading: !1,
|
|
@@ -941,38 +942,38 @@ function V(e, t, r = {}, i = {}) {
|
|
|
941
942
|
error: w.error
|
|
942
943
|
} : {
|
|
943
944
|
...w,
|
|
944
|
-
data: S ? x.data :
|
|
945
|
-
loading: !S && !
|
|
946
|
-
idle:
|
|
945
|
+
data: S ? x.data : r.fallback,
|
|
946
|
+
loading: !S && !i,
|
|
947
|
+
idle: i,
|
|
947
948
|
isEmpty: C,
|
|
948
949
|
failed: !S && w.error !== void 0
|
|
949
950
|
};
|
|
950
951
|
}
|
|
951
952
|
//#endregion
|
|
952
953
|
//#region src/runRpc.ts
|
|
953
|
-
var
|
|
954
|
+
var G = async (e, t) => {
|
|
954
955
|
let n = await e.runPromiseExit(t);
|
|
955
|
-
if (
|
|
956
|
-
throw
|
|
957
|
-
},
|
|
958
|
-
|
|
959
|
-
},
|
|
960
|
-
|
|
961
|
-
for (let e of
|
|
956
|
+
if (C.isSuccess(n)) return n.value;
|
|
957
|
+
throw y.squash(n.cause);
|
|
958
|
+
}, bt = 100, K = [], xt = /* @__PURE__ */ new Set(), St = [], Ct = () => {
|
|
959
|
+
St = K.slice();
|
|
960
|
+
}, wt = () => {
|
|
961
|
+
Ct();
|
|
962
|
+
for (let e of xt) try {
|
|
962
963
|
e();
|
|
963
964
|
} catch {}
|
|
964
|
-
},
|
|
965
|
+
}, Tt = (e) => {
|
|
965
966
|
let t = {
|
|
966
967
|
...e,
|
|
967
968
|
status: "pending",
|
|
968
969
|
startedAt: Date.now()
|
|
969
970
|
};
|
|
970
|
-
|
|
971
|
-
},
|
|
972
|
-
let n =
|
|
971
|
+
K.unshift(t), K.length > bt && (K.length = bt), wt();
|
|
972
|
+
}, q = (e, t) => {
|
|
973
|
+
let n = K.findIndex((t) => t.id === e);
|
|
973
974
|
if (n === -1) return;
|
|
974
|
-
let r =
|
|
975
|
-
|
|
975
|
+
let r = K[n], i = Date.now();
|
|
976
|
+
K[n] = t.status === "success" ? {
|
|
976
977
|
...r,
|
|
977
978
|
status: "success",
|
|
978
979
|
output: t.output,
|
|
@@ -984,12 +985,12 @@ var H = async (e, t) => {
|
|
|
984
985
|
error: t.error,
|
|
985
986
|
settledAt: i,
|
|
986
987
|
durationMs: i - r.startedAt
|
|
987
|
-
},
|
|
988
|
-
},
|
|
989
|
-
|
|
990
|
-
}),
|
|
991
|
-
|
|
992
|
-
},
|
|
988
|
+
}, wt();
|
|
989
|
+
}, Et = () => St, Dt = (e) => (xt.add(e), () => {
|
|
990
|
+
xt.delete(e);
|
|
991
|
+
}), Ot = () => {
|
|
992
|
+
K.length !== 0 && (K.length = 0, wt());
|
|
993
|
+
}, kt = (e, t) => {
|
|
993
994
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
994
995
|
try {
|
|
995
996
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -999,107 +1000,107 @@ var H = async (e, t) => {
|
|
|
999
1000
|
});
|
|
1000
1001
|
} catch {}
|
|
1001
1002
|
return e;
|
|
1002
|
-
},
|
|
1003
|
-
|
|
1004
|
-
},
|
|
1003
|
+
}, J, At = (e) => {
|
|
1004
|
+
J = e;
|
|
1005
|
+
}, jt = () => J, Mt = (e, t, n) => typeof e == "function" ? e(t, n) : e, Nt = 0, Pt = () => `mut_${++Nt}`, Ft = 0, It = () => {
|
|
1005
1006
|
let e = typeof crypto < "u" ? crypto : void 0;
|
|
1006
|
-
return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${
|
|
1007
|
-
},
|
|
1007
|
+
return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${Ft += 1}`;
|
|
1008
|
+
}, Lt = (e, t) => e.pipe(S.locallyWith(k.currentHeaders, (e) => re.set(e, "idempotency-key", t))), Rt = (e, t) => ({
|
|
1008
1009
|
update: (n, r) => {
|
|
1009
1010
|
e.update(n, r, t);
|
|
1010
1011
|
},
|
|
1011
1012
|
forTag: (n, r) => e.forTag(n, r, t)
|
|
1012
|
-
}),
|
|
1013
|
-
let { runtime:
|
|
1013
|
+
}), Y = (e, t) => {
|
|
1014
|
+
let { runtime: n, cache: r, client: i, descriptors: a, errorBus: o } = I(e), s = a[t], c = s?.targets;
|
|
1014
1015
|
if (process.env.NODE_ENV !== "production") {
|
|
1015
|
-
let n =
|
|
1016
|
+
let n = s?.kind;
|
|
1016
1017
|
n !== void 0 && n !== "mutation" && console.error(`[@voltro/client] useMutation('${e}', '${t}') targets a ${n}, not a mutation. Use ${n === "action" ? "useAction" : n === "workflow" ? "useWorkflow" : `the ${n} hook`} instead.`);
|
|
1017
1018
|
}
|
|
1018
|
-
let [
|
|
1019
|
-
let
|
|
1020
|
-
|
|
1021
|
-
let t =
|
|
1022
|
-
t !== void 0 &&
|
|
1019
|
+
let [l, u] = _(!1), [f, p] = _(void 0), [m, v] = _(void 0), y = g(null), b = g(!1), x = d(async (a, s) => {
|
|
1020
|
+
let l = s?.onError !== void 0 || s?.notify?.error !== void 0, d = (e) => {
|
|
1021
|
+
s?.onError?.(e, a);
|
|
1022
|
+
let t = Mt(s?.notify?.error, e, a);
|
|
1023
|
+
t !== void 0 && J?.error(t);
|
|
1023
1024
|
};
|
|
1024
|
-
|
|
1025
|
-
let
|
|
1026
|
-
|
|
1027
|
-
id:
|
|
1025
|
+
u(!0), p(void 0);
|
|
1026
|
+
let f = Pt(), m = s?.idempotencyKey ?? It();
|
|
1027
|
+
Tt({
|
|
1028
|
+
id: f,
|
|
1028
1029
|
apiName: e,
|
|
1029
1030
|
tag: t,
|
|
1030
|
-
input:
|
|
1031
|
+
input: a
|
|
1031
1032
|
});
|
|
1032
|
-
let
|
|
1033
|
-
if (
|
|
1034
|
-
|
|
1033
|
+
let h = y.current, g = b.current;
|
|
1034
|
+
if (h) try {
|
|
1035
|
+
h(Rt(r, f), a);
|
|
1035
1036
|
} catch (e) {
|
|
1036
|
-
if (
|
|
1037
|
+
if (p(e), u(!1), r.revertByMutation(f), q(f, {
|
|
1037
1038
|
status: "error",
|
|
1038
1039
|
error: e
|
|
1039
|
-
}),
|
|
1040
|
+
}), l) return d(e);
|
|
1040
1041
|
throw e;
|
|
1041
1042
|
}
|
|
1042
|
-
else !g &&
|
|
1043
|
-
let
|
|
1043
|
+
else !g && c && c.length > 0 && r.autoApply(c, a, f);
|
|
1044
|
+
let _;
|
|
1044
1045
|
try {
|
|
1045
|
-
let
|
|
1046
|
-
|
|
1046
|
+
let o = U(i, t), c = S.currentSpan.pipe(S.tap((e) => S.sync(() => {
|
|
1047
|
+
_ = e.traceId, A({
|
|
1047
1048
|
traceId: e.traceId,
|
|
1048
1049
|
spanId: e.spanId,
|
|
1049
1050
|
source: "mutation",
|
|
1050
1051
|
tag: t
|
|
1051
1052
|
});
|
|
1052
|
-
})),
|
|
1053
|
+
})), S.catchAll(() => S.void), S.zipRight(Lt(o(a), m))).pipe(S.withSpan(`client.mutation.${t}`, { attributes: {
|
|
1053
1054
|
"voltro.api": e,
|
|
1054
|
-
"voltro.mutationId":
|
|
1055
|
+
"voltro.mutationId": f,
|
|
1055
1056
|
"rpc.tag": t
|
|
1056
|
-
} })),
|
|
1057
|
-
|
|
1057
|
+
} })), l = await G(n, c);
|
|
1058
|
+
v(l), q(f, {
|
|
1058
1059
|
status: "success",
|
|
1059
|
-
output:
|
|
1060
|
-
}),
|
|
1061
|
-
let
|
|
1062
|
-
return
|
|
1060
|
+
output: l
|
|
1061
|
+
}), r.confirmByMutation(f), s?.onSuccess?.(l, a);
|
|
1062
|
+
let u = Mt(s?.notify?.success, l, a);
|
|
1063
|
+
return u !== void 0 && J?.success(u), l;
|
|
1063
1064
|
} catch (e) {
|
|
1064
|
-
let n =
|
|
1065
|
-
if (
|
|
1065
|
+
let n = kt(e, _);
|
|
1066
|
+
if (p(n), q(f, {
|
|
1066
1067
|
status: "error",
|
|
1067
1068
|
error: n
|
|
1068
|
-
}),
|
|
1069
|
+
}), r.revertByMutation(f), o.emit({
|
|
1069
1070
|
source: "mutation",
|
|
1070
1071
|
tag: t,
|
|
1071
1072
|
error: n,
|
|
1072
|
-
...
|
|
1073
|
-
}),
|
|
1073
|
+
..._ === void 0 ? {} : { traceId: _ }
|
|
1074
|
+
}), l) return d(n);
|
|
1074
1075
|
throw n;
|
|
1075
1076
|
} finally {
|
|
1076
|
-
|
|
1077
|
+
u(!1);
|
|
1077
1078
|
}
|
|
1078
1079
|
}, [
|
|
1080
|
+
n,
|
|
1079
1081
|
r,
|
|
1080
1082
|
i,
|
|
1081
|
-
a,
|
|
1082
1083
|
e,
|
|
1083
1084
|
t,
|
|
1084
|
-
|
|
1085
|
+
c
|
|
1085
1086
|
]);
|
|
1086
|
-
return
|
|
1087
|
+
return h(() => {
|
|
1087
1088
|
let e = {
|
|
1088
|
-
mutate:
|
|
1089
|
-
pending:
|
|
1090
|
-
error:
|
|
1091
|
-
data:
|
|
1092
|
-
withOptimistic: (t) => (
|
|
1093
|
-
withoutOptimistic: () => (
|
|
1089
|
+
mutate: x,
|
|
1090
|
+
pending: l,
|
|
1091
|
+
error: f,
|
|
1092
|
+
data: m,
|
|
1093
|
+
withOptimistic: (t) => (y.current = t, e),
|
|
1094
|
+
withoutOptimistic: () => (b.current = !0, e)
|
|
1094
1095
|
};
|
|
1095
1096
|
return e;
|
|
1096
1097
|
}, [
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1098
|
+
x,
|
|
1099
|
+
l,
|
|
1100
|
+
f,
|
|
1101
|
+
m
|
|
1101
1102
|
]);
|
|
1102
|
-
},
|
|
1103
|
+
}, zt = (e, t) => {
|
|
1103
1104
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
1104
1105
|
try {
|
|
1105
1106
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -1109,228 +1110,228 @@ var H = async (e, t) => {
|
|
|
1109
1110
|
});
|
|
1110
1111
|
} catch {}
|
|
1111
1112
|
return e;
|
|
1112
|
-
},
|
|
1113
|
-
if (!
|
|
1114
|
-
let r = Date.now() +
|
|
1115
|
-
for (; Date.now() < r;) if (await new Promise((e) => setTimeout(e, 16)), !
|
|
1116
|
-
throw Error(`Voltro: the api "${t}" did not resolve within ${
|
|
1117
|
-
},
|
|
1118
|
-
let
|
|
1119
|
-
if (
|
|
1120
|
-
let n =
|
|
1113
|
+
}, Bt = (e, t, n) => typeof e == "function" ? e(t, n) : e, Vt = 0, Ht = () => `act_${++Vt}`, Ut = 15e3, Wt = async (e, t, n) => {
|
|
1114
|
+
if (!L(e.current)) return e.current;
|
|
1115
|
+
let r = Date.now() + Ut;
|
|
1116
|
+
for (; Date.now() < r;) if (await new Promise((e) => setTimeout(e, 16)), !L(e.current)) return e.current;
|
|
1117
|
+
throw Error(`Voltro: the api "${t}" did not resolve within ${Ut}ms, so ${n} was never sent. This is not the boot window — that is waited out. Check that "${t}" is a configured api name and that its client could connect.`);
|
|
1118
|
+
}, X = (e, t) => {
|
|
1119
|
+
let n = I(e), { descriptors: r, errorBus: i } = n, a = g(n);
|
|
1120
|
+
if (a.current = n, process.env.NODE_ENV !== "production") {
|
|
1121
|
+
let n = r[t]?.kind;
|
|
1121
1122
|
n !== void 0 && n !== "action" && console.error(`[@voltro/client] useAction('${e}', '${t}') targets a ${n}, not an action. Use ${n === "mutation" ? "useMutation" : n === "workflow" ? "useWorkflow" : `the ${n} hook`} instead.`);
|
|
1122
1123
|
}
|
|
1123
|
-
let [
|
|
1124
|
-
let
|
|
1125
|
-
|
|
1126
|
-
let
|
|
1127
|
-
|
|
1128
|
-
id:
|
|
1124
|
+
let [o, s] = _(!1), [c, l] = _(void 0), [u, f] = _(void 0), p = d(async (n, r) => {
|
|
1125
|
+
let o = r?.onError !== void 0 || r?.notify?.error !== void 0;
|
|
1126
|
+
s(!0), l(void 0);
|
|
1127
|
+
let c = Ht(), u = r?.idempotencyKey ?? It();
|
|
1128
|
+
Tt({
|
|
1129
|
+
id: c,
|
|
1129
1130
|
apiName: e,
|
|
1130
1131
|
tag: t,
|
|
1131
1132
|
input: n
|
|
1132
1133
|
});
|
|
1133
|
-
let
|
|
1134
|
+
let d;
|
|
1134
1135
|
try {
|
|
1135
|
-
let { runtime: i, client:
|
|
1136
|
-
|
|
1136
|
+
let { runtime: i, client: o } = await Wt(a, e, t), s = U(o, t), l = await G(i, S.currentSpan.pipe(S.tap((e) => S.sync(() => {
|
|
1137
|
+
d = e.traceId, A({
|
|
1137
1138
|
traceId: e.traceId,
|
|
1138
1139
|
spanId: e.spanId,
|
|
1139
1140
|
source: "action",
|
|
1140
1141
|
tag: t
|
|
1141
1142
|
});
|
|
1142
|
-
})),
|
|
1143
|
+
})), S.catchAll(() => S.void), S.zipRight(Lt(s(n), u))).pipe(S.withSpan(`client.action.${t}`, { attributes: {
|
|
1143
1144
|
"voltro.api": e,
|
|
1144
|
-
"voltro.actionId":
|
|
1145
|
+
"voltro.actionId": c,
|
|
1145
1146
|
"rpc.tag": t
|
|
1146
1147
|
} })));
|
|
1147
|
-
|
|
1148
|
+
f(l), q(c, {
|
|
1148
1149
|
status: "success",
|
|
1149
|
-
output:
|
|
1150
|
-
}), r?.onSuccess?.(
|
|
1151
|
-
let
|
|
1152
|
-
return
|
|
1150
|
+
output: l
|
|
1151
|
+
}), r?.onSuccess?.(l, n);
|
|
1152
|
+
let p = Bt(r?.notify?.success, l, n);
|
|
1153
|
+
return p !== void 0 && jt()?.success(p), l;
|
|
1153
1154
|
} catch (e) {
|
|
1154
|
-
let
|
|
1155
|
-
if (
|
|
1155
|
+
let a = zt(e, d);
|
|
1156
|
+
if (l(a), q(c, {
|
|
1156
1157
|
status: "error",
|
|
1157
|
-
error:
|
|
1158
|
-
}),
|
|
1158
|
+
error: a
|
|
1159
|
+
}), i.emit({
|
|
1159
1160
|
source: "action",
|
|
1160
1161
|
tag: t,
|
|
1161
|
-
error:
|
|
1162
|
-
...
|
|
1163
|
-
}),
|
|
1164
|
-
r?.onError?.(
|
|
1165
|
-
let e =
|
|
1166
|
-
e !== void 0 &&
|
|
1162
|
+
error: a,
|
|
1163
|
+
...d === void 0 ? {} : { traceId: d }
|
|
1164
|
+
}), o) {
|
|
1165
|
+
r?.onError?.(a, n);
|
|
1166
|
+
let e = Bt(r?.notify?.error, a, n);
|
|
1167
|
+
e !== void 0 && jt()?.error(e);
|
|
1167
1168
|
return;
|
|
1168
1169
|
}
|
|
1169
|
-
throw
|
|
1170
|
+
throw a;
|
|
1170
1171
|
} finally {
|
|
1171
|
-
|
|
1172
|
+
s(!1);
|
|
1172
1173
|
}
|
|
1173
1174
|
}, [
|
|
1174
1175
|
e,
|
|
1175
1176
|
t,
|
|
1176
|
-
|
|
1177
|
+
i
|
|
1177
1178
|
]);
|
|
1178
|
-
return
|
|
1179
|
-
run:
|
|
1180
|
-
pending:
|
|
1181
|
-
error:
|
|
1182
|
-
lastResult:
|
|
1179
|
+
return h(() => ({
|
|
1180
|
+
run: p,
|
|
1181
|
+
pending: o,
|
|
1182
|
+
error: c,
|
|
1183
|
+
lastResult: u
|
|
1183
1184
|
}), [
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1185
|
+
p,
|
|
1186
|
+
o,
|
|
1187
|
+
c,
|
|
1188
|
+
u
|
|
1188
1189
|
]);
|
|
1189
|
-
},
|
|
1190
|
-
useSubscription: (t, n, r) =>
|
|
1191
|
-
useMutation: (t) =>
|
|
1192
|
-
useAction: (t) =>
|
|
1193
|
-
}),
|
|
1194
|
-
|
|
1195
|
-
},
|
|
1196
|
-
let i =
|
|
1190
|
+
}, Gt = W, Kt = (e) => ({
|
|
1191
|
+
useSubscription: (t, n, r) => Gt(e, t, n, r),
|
|
1192
|
+
useMutation: (t) => Y(e, t),
|
|
1193
|
+
useAction: (t) => X(e, t)
|
|
1194
|
+
}), qt = () => ({ seeds: [] }), Z = null, Jt = (e) => {
|
|
1195
|
+
Z = e;
|
|
1196
|
+
}, Q = /* @__PURE__ */ new Map(), Yt = (e, t) => `${e}\u0000${t}`, Xt = (e, t, n, r) => {
|
|
1197
|
+
let i = Z?.() ?? null;
|
|
1197
1198
|
if (i === null) throw Error(`seedPreloadedSubscription('${e}', '${t}') was called outside a server render. Preload seeds exist to put a subscription's first value into the SSR hydration payload; on the client the live subscription already provides it. (If this IS server code, the render did not install a seed bag — that is a framework bug.)`);
|
|
1198
1199
|
i.seeds.push({
|
|
1199
1200
|
api: e,
|
|
1200
|
-
key:
|
|
1201
|
+
key: j([t, n]),
|
|
1201
1202
|
value: r
|
|
1202
1203
|
});
|
|
1203
|
-
},
|
|
1204
|
-
let r =
|
|
1204
|
+
}, Zt = (e, t, n) => {
|
|
1205
|
+
let r = Z?.() ?? null;
|
|
1205
1206
|
r !== null && r.seeds.push({
|
|
1206
1207
|
api: e,
|
|
1207
|
-
key:
|
|
1208
|
+
key: j([t, n]),
|
|
1208
1209
|
value: void 0,
|
|
1209
1210
|
failed: !0
|
|
1210
1211
|
});
|
|
1211
|
-
},
|
|
1212
|
-
if (e !== void 0) for (let t of e)
|
|
1212
|
+
}, Qt = (e) => {
|
|
1213
|
+
if (e !== void 0) for (let t of e) Q.set(Yt(t.api, t.key), {
|
|
1213
1214
|
value: t.value,
|
|
1214
1215
|
failed: t.failed === !0
|
|
1215
1216
|
});
|
|
1216
|
-
},
|
|
1217
|
-
let r =
|
|
1217
|
+
}, $t = (e, t, n) => {
|
|
1218
|
+
let r = j([t, n]), i = Z?.() ?? null;
|
|
1218
1219
|
if (i !== null) {
|
|
1219
1220
|
for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? void 0 : t.value;
|
|
1220
1221
|
return;
|
|
1221
1222
|
}
|
|
1222
|
-
let a =
|
|
1223
|
+
let a = Q.get(Yt(e, r));
|
|
1223
1224
|
return a === void 0 || a.failed ? void 0 : a.value;
|
|
1224
|
-
},
|
|
1225
|
-
let r =
|
|
1225
|
+
}, en = (e, t, n) => {
|
|
1226
|
+
let r = j([t, n]), i = Z?.() ?? null;
|
|
1226
1227
|
if (i !== null) {
|
|
1227
1228
|
for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? "failed" : "seeded";
|
|
1228
1229
|
return "absent";
|
|
1229
1230
|
}
|
|
1230
|
-
let a =
|
|
1231
|
+
let a = Q.get(Yt(e, r));
|
|
1231
1232
|
return a === void 0 ? "absent" : a.failed ? "failed" : "seeded";
|
|
1232
|
-
},
|
|
1233
|
-
|
|
1233
|
+
}, tn = () => {
|
|
1234
|
+
Q.clear();
|
|
1234
1235
|
};
|
|
1235
1236
|
//#endregion
|
|
1236
1237
|
//#region src/usePreloadedSubscription.ts
|
|
1237
|
-
function
|
|
1238
|
-
let i =
|
|
1238
|
+
function nn(e, t, n = {}, r = {}) {
|
|
1239
|
+
let i = $t(e, t, n), a = W(e, t, n, i === void 0 ? r : {
|
|
1239
1240
|
...r,
|
|
1240
1241
|
initialSnapshot: i
|
|
1241
1242
|
});
|
|
1242
|
-
return
|
|
1243
|
+
return en(e, t, n) === "failed" ? {
|
|
1243
1244
|
...a,
|
|
1244
1245
|
preloadFailed: !0
|
|
1245
1246
|
} : a;
|
|
1246
1247
|
}
|
|
1247
1248
|
//#endregion
|
|
1248
1249
|
//#region src/useEvent.ts
|
|
1249
|
-
var
|
|
1250
|
+
var rn = {
|
|
1250
1251
|
status: "idle",
|
|
1251
1252
|
missed: 0,
|
|
1252
1253
|
lastMiss: void 0
|
|
1253
|
-
},
|
|
1254
|
+
}, an = class {
|
|
1254
1255
|
_tag = "EventStreamClosed";
|
|
1255
1256
|
};
|
|
1256
|
-
function
|
|
1257
|
-
let { skip:
|
|
1258
|
-
|
|
1259
|
-
let
|
|
1260
|
-
|
|
1261
|
-
let
|
|
1262
|
-
|
|
1263
|
-
let
|
|
1264
|
-
|
|
1265
|
-
let
|
|
1266
|
-
|
|
1267
|
-
let
|
|
1268
|
-
|
|
1269
|
-
let
|
|
1270
|
-
e <= 0 || (
|
|
1257
|
+
function on(e, t, n, r = {}) {
|
|
1258
|
+
let { skip: i = !1, apiName: a = "app", onMissed: o } = r, s = I(a), { runtime: c, client: l } = s, [u, f] = _(rn), p = g(n);
|
|
1259
|
+
p.current = n;
|
|
1260
|
+
let h = g(o);
|
|
1261
|
+
h.current = o;
|
|
1262
|
+
let v = g(l);
|
|
1263
|
+
v.current = l;
|
|
1264
|
+
let y = g(c);
|
|
1265
|
+
y.current = c;
|
|
1266
|
+
let b = g(/* @__PURE__ */ new Map()), x = t === null ? null : JSON.stringify(Object.entries(t).sort(([e], [t]) => e < t ? -1 : 1)), C = g(t);
|
|
1267
|
+
C.current = t;
|
|
1268
|
+
let w = g(null);
|
|
1269
|
+
w.current !== x && (w.current = x, b.current = /* @__PURE__ */ new Map());
|
|
1270
|
+
let T = d((e, t) => {
|
|
1271
|
+
e <= 0 || (f((n) => ({
|
|
1271
1272
|
...n,
|
|
1272
1273
|
missed: n.missed + e,
|
|
1273
1274
|
lastMiss: {
|
|
1274
1275
|
count: e,
|
|
1275
1276
|
reason: t
|
|
1276
1277
|
}
|
|
1277
|
-
})),
|
|
1278
|
+
})), h.current?.({
|
|
1278
1279
|
count: e,
|
|
1279
1280
|
reason: t
|
|
1280
1281
|
}));
|
|
1281
|
-
}, []), E = !
|
|
1282
|
-
return
|
|
1282
|
+
}, []), E = !i && x !== null && !L(s);
|
|
1283
|
+
return m(() => {
|
|
1283
1284
|
if (!E) {
|
|
1284
|
-
|
|
1285
|
+
f(rn);
|
|
1285
1286
|
return;
|
|
1286
1287
|
}
|
|
1287
|
-
|
|
1288
|
+
f((e) => ({
|
|
1288
1289
|
...e,
|
|
1289
1290
|
status: "connecting"
|
|
1290
1291
|
}));
|
|
1291
|
-
let t = 0, n =
|
|
1292
|
-
let t = [...
|
|
1292
|
+
let t = 0, n = S.sync(() => {
|
|
1293
|
+
let t = [...b.current].map(([e, t]) => ({
|
|
1293
1294
|
origin: e,
|
|
1294
1295
|
n: t
|
|
1295
1296
|
}));
|
|
1296
|
-
return
|
|
1297
|
-
key:
|
|
1297
|
+
return U(v.current, e.name)({
|
|
1298
|
+
key: C.current,
|
|
1298
1299
|
...t.length > 0 ? { resume: t } : {}
|
|
1299
1300
|
});
|
|
1300
|
-
}), r =
|
|
1301
|
+
}), r = O.unwrap(n).pipe(O.tap(() => S.sync(() => {
|
|
1301
1302
|
t = 0;
|
|
1302
|
-
})),
|
|
1303
|
-
t += 1,
|
|
1303
|
+
})), O.concat(O.fail(new an())), O.retry(D.exponential("250 millis", 2).pipe(D.either(D.spaced("30 seconds")), D.jittered, D.tapOutput(() => S.sync(() => {
|
|
1304
|
+
t += 1, f((e) => ({
|
|
1304
1305
|
...e,
|
|
1305
1306
|
status: "connecting"
|
|
1306
1307
|
}));
|
|
1307
|
-
}))))), i =
|
|
1308
|
+
}))))), i = y.current.runFork(O.runForEach(r, (e) => S.sync(() => {
|
|
1308
1309
|
if (e._tag === "attached") {
|
|
1309
|
-
|
|
1310
|
+
f((e) => ({
|
|
1310
1311
|
...e,
|
|
1311
1312
|
status: "live"
|
|
1312
1313
|
}));
|
|
1313
1314
|
return;
|
|
1314
1315
|
}
|
|
1315
1316
|
if (e._tag === "gap") {
|
|
1316
|
-
|
|
1317
|
+
T(e.missed, e.reason);
|
|
1317
1318
|
return;
|
|
1318
1319
|
}
|
|
1319
|
-
|
|
1320
|
+
b.current.set(e.origin, Math.max(b.current.get(e.origin) ?? 0, e.n)), p.current(e.payload);
|
|
1320
1321
|
})));
|
|
1321
1322
|
return () => {
|
|
1322
|
-
|
|
1323
|
+
y.current.runFork(i.interruptAsFork(i.id()));
|
|
1323
1324
|
};
|
|
1324
1325
|
}, [
|
|
1325
1326
|
E,
|
|
1326
|
-
|
|
1327
|
+
x,
|
|
1327
1328
|
e.name,
|
|
1328
|
-
|
|
1329
|
-
]), E ?
|
|
1329
|
+
T
|
|
1330
|
+
]), E ? u : rn;
|
|
1330
1331
|
}
|
|
1331
1332
|
//#endregion
|
|
1332
1333
|
//#region src/sequence.ts
|
|
1333
|
-
var
|
|
1334
|
+
var sn = () => {
|
|
1334
1335
|
let e = (t) => ({
|
|
1335
1336
|
steps: t,
|
|
1336
1337
|
step: ((n, r, i) => e([...t, {
|
|
@@ -1342,7 +1343,7 @@ var tn = () => {
|
|
|
1342
1343
|
}]))
|
|
1343
1344
|
});
|
|
1344
1345
|
return e([]);
|
|
1345
|
-
},
|
|
1346
|
+
}, cn = async (e, t = {}) => {
|
|
1346
1347
|
let n = {}, r = [];
|
|
1347
1348
|
for (let i of e.steps) {
|
|
1348
1349
|
if (i.when !== void 0 && !i.when(n)) {
|
|
@@ -1402,26 +1403,26 @@ var tn = () => {
|
|
|
1402
1403
|
ok: !0,
|
|
1403
1404
|
data: n
|
|
1404
1405
|
};
|
|
1405
|
-
},
|
|
1406
|
-
let [t,
|
|
1407
|
-
return
|
|
1408
|
-
run:
|
|
1409
|
-
|
|
1406
|
+
}, ln = (e = {}) => {
|
|
1407
|
+
let [t, n] = _(!1), [r, i] = _(void 0), [a, o] = _(void 0), s = g(e);
|
|
1408
|
+
return s.current = e, {
|
|
1409
|
+
run: d(async (e, t = {}) => {
|
|
1410
|
+
n(!0), i(void 0), o(void 0);
|
|
1410
1411
|
try {
|
|
1411
|
-
let n = await
|
|
1412
|
-
...
|
|
1412
|
+
let n = await cn(e, {
|
|
1413
|
+
...s.current,
|
|
1413
1414
|
...t
|
|
1414
1415
|
});
|
|
1415
|
-
return n.ok || (
|
|
1416
|
+
return n.ok || (i(n.error), o(n.failedStep)), n;
|
|
1416
1417
|
} finally {
|
|
1417
|
-
|
|
1418
|
+
n(!1);
|
|
1418
1419
|
}
|
|
1419
1420
|
}, []),
|
|
1420
1421
|
pending: t,
|
|
1421
|
-
error:
|
|
1422
|
-
failedStep:
|
|
1422
|
+
error: r,
|
|
1423
|
+
failedStep: a
|
|
1423
1424
|
};
|
|
1424
|
-
},
|
|
1425
|
+
}, un = "storage.mintUploadTicket", dn = "storage.mintPresignedUpload", fn = "storage.finalizeUpload", pn = "storage.beginResumableUpload", mn = "storage.beginMultipartUpload", hn = "storage.signMultipartPart", gn = "storage.completeMultipartUpload", _n = "storage.abortMultipartUpload", vn = (e, t, n, r) => new Promise((i, a) => {
|
|
1425
1426
|
let o = new XMLHttpRequest();
|
|
1426
1427
|
if (o.open("PUT", e), o.upload.onprogress = (e) => {
|
|
1427
1428
|
e.lengthComputable && n(e.loaded / e.total);
|
|
@@ -1435,7 +1436,7 @@ var tn = () => {
|
|
|
1435
1436
|
return;
|
|
1436
1437
|
}
|
|
1437
1438
|
r.addEventListener("abort", () => o.abort(), { once: !0 }), o.send(t);
|
|
1438
|
-
}),
|
|
1439
|
+
}), yn = (e, t, n, r, i, a) => new Promise((o, s) => {
|
|
1439
1440
|
let c = new XMLHttpRequest();
|
|
1440
1441
|
if (c.open("POST", e), c.setRequestHeader("content-type", t), c.upload.onprogress = (e) => {
|
|
1441
1442
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1453,7 +1454,7 @@ var tn = () => {
|
|
|
1453
1454
|
return;
|
|
1454
1455
|
}
|
|
1455
1456
|
i.addEventListener("abort", () => c.abort(), { once: !0 }), c.send(n);
|
|
1456
|
-
}),
|
|
1457
|
+
}), bn = (e, t, n, r, i) => new Promise((a, o) => {
|
|
1457
1458
|
let s = new XMLHttpRequest();
|
|
1458
1459
|
if (s.open("PUT", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
1459
1460
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1464,7 +1465,7 @@ var tn = () => {
|
|
|
1464
1465
|
return;
|
|
1465
1466
|
}
|
|
1466
1467
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
1467
|
-
}),
|
|
1468
|
+
}), xn = (e, t, n, r, i) => new Promise((a, o) => {
|
|
1468
1469
|
let s = new XMLHttpRequest();
|
|
1469
1470
|
if (s.open("POST", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
1470
1471
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1480,18 +1481,18 @@ var tn = () => {
|
|
|
1480
1481
|
return;
|
|
1481
1482
|
}
|
|
1482
1483
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
1483
|
-
}),
|
|
1484
|
-
let { runtime:
|
|
1485
|
-
|
|
1486
|
-
}, []), v =
|
|
1487
|
-
|
|
1488
|
-
}, []), y =
|
|
1489
|
-
let s = Math.max(0,
|
|
1484
|
+
}), Sn = (e, t = {}) => {
|
|
1485
|
+
let { runtime: n, client: r, inspectBaseUrl: i, errorBus: a } = I(e), [o, s] = _(0), [c, l] = _("idle"), [u, f] = _(void 0), p = g(null), m = d(() => {
|
|
1486
|
+
s(0), l("idle"), f(void 0);
|
|
1487
|
+
}, []), v = d(() => {
|
|
1488
|
+
p.current?.abort();
|
|
1489
|
+
}, []), y = d((e) => /^https?:\/\//.test(e) ? e : `${i}${e}`, [i]), b = d(async (e, i, a, o) => {
|
|
1490
|
+
let s = Math.max(0, i.retries ?? t.retries ?? 1), c = (e instanceof File, e.type || "application/octet-stream"), l = e instanceof File ? e.name : "blob", u = i.visibility ?? t.visibility, d = i.key ?? t.key, f = i.folder ?? t.folder, p = i.tags ?? t.tags, m = {
|
|
1490
1491
|
...u ? { visibility: u } : {},
|
|
1491
1492
|
...f ? { folder: f } : {},
|
|
1492
1493
|
...p ? { tags: p } : {},
|
|
1493
|
-
...
|
|
1494
|
-
...
|
|
1494
|
+
...i.alt ? { alt: i.alt } : {},
|
|
1495
|
+
...i.caption ? { caption: i.caption } : {}
|
|
1495
1496
|
}, h = (e) => ({
|
|
1496
1497
|
id: e.id,
|
|
1497
1498
|
url: y(e.url),
|
|
@@ -1501,39 +1502,39 @@ var tn = () => {
|
|
|
1501
1502
|
...e.width === void 0 ? {} : { width: e.width },
|
|
1502
1503
|
...e.height === void 0 ? {} : { height: e.height }
|
|
1503
1504
|
}), g = async () => {
|
|
1504
|
-
let s =
|
|
1505
|
+
let s = i.mintTag ?? t.mintTag ?? un, l = U(r, s), u = await G(n, l({
|
|
1505
1506
|
contentType: c,
|
|
1506
1507
|
...m,
|
|
1507
1508
|
...d ? { key: d } : {}
|
|
1508
|
-
})), f = await
|
|
1509
|
+
})), f = await xn(y(u.uploadUrl), c, e, o, a);
|
|
1509
1510
|
return h(f);
|
|
1510
1511
|
}, _ = async () => {
|
|
1511
|
-
let s =
|
|
1512
|
+
let s = i.presignMintTag ?? t.presignMintTag ?? dn, l = i.finalizeTag ?? t.finalizeTag ?? fn, u;
|
|
1512
1513
|
try {
|
|
1513
|
-
let e =
|
|
1514
|
-
u = await
|
|
1514
|
+
let e = U(r, s);
|
|
1515
|
+
u = await G(n, e({
|
|
1515
1516
|
contentType: c,
|
|
1516
1517
|
...m
|
|
1517
1518
|
}));
|
|
1518
1519
|
} catch {
|
|
1519
1520
|
return null;
|
|
1520
1521
|
}
|
|
1521
|
-
await
|
|
1522
|
-
let d =
|
|
1522
|
+
await bn(u.uploadUrl, c, e, o, a);
|
|
1523
|
+
let d = U(r, l), f = await G(n, d({ finalizeToken: u.finalizeToken }));
|
|
1523
1524
|
return h(f);
|
|
1524
1525
|
}, v = async () => {
|
|
1525
|
-
let s =
|
|
1526
|
+
let s = i.beginResumableTag ?? t.beginResumableTag ?? pn, l = U(r, s), u = e.size, d = i.chunkSize ?? t.chunkSize, f = await G(n, l({
|
|
1526
1527
|
contentType: c,
|
|
1527
1528
|
size: u,
|
|
1528
1529
|
...m,
|
|
1529
1530
|
...d ? { chunkSize: d } : {}
|
|
1530
|
-
})), p = y(f.uploadUrl), g = Math.max(1, f.chunkSize), _ = Math.max(1, Math.ceil(u / g)), v = Math.max(0,
|
|
1531
|
+
})), p = y(f.uploadUrl), g = Math.max(1, f.chunkSize), _ = Math.max(1, Math.ceil(u / g)), v = Math.max(0, i.retries ?? t.retries ?? 1), b = 0, x = null;
|
|
1531
1532
|
for (let t = 0; t < _; t++) {
|
|
1532
1533
|
let n = t * g, r = Math.min(u, n + g), i = e.slice(n, r), s = t === _ - 1, l = r - n, d = 0;
|
|
1533
1534
|
for (;;) {
|
|
1534
1535
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1535
1536
|
try {
|
|
1536
|
-
let e = await
|
|
1537
|
+
let e = await yn(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
|
|
1537
1538
|
s && (x = e);
|
|
1538
1539
|
break;
|
|
1539
1540
|
} catch (e) {
|
|
@@ -1545,10 +1546,10 @@ var tn = () => {
|
|
|
1545
1546
|
if (!x) throw Error("resumable upload produced no final reply");
|
|
1546
1547
|
return h(x);
|
|
1547
1548
|
}, b = async () => {
|
|
1548
|
-
let s =
|
|
1549
|
+
let s = i.multipartBeginTag ?? t.multipartBeginTag ?? mn, u = i.multipartSignTag ?? t.multipartSignTag ?? hn, d = i.multipartCompleteTag ?? t.multipartCompleteTag ?? gn, f = i.multipartAbortTag ?? t.multipartAbortTag ?? _n, p = e.size, h = i.chunkSize ?? t.chunkSize, g;
|
|
1549
1550
|
try {
|
|
1550
|
-
let e =
|
|
1551
|
-
g = await
|
|
1551
|
+
let e = U(r, s);
|
|
1552
|
+
g = await G(n, e({
|
|
1552
1553
|
contentType: c,
|
|
1553
1554
|
size: p,
|
|
1554
1555
|
...m,
|
|
@@ -1557,17 +1558,17 @@ var tn = () => {
|
|
|
1557
1558
|
} catch {
|
|
1558
1559
|
return null;
|
|
1559
1560
|
}
|
|
1560
|
-
let _ =
|
|
1561
|
+
let _ = U(r, u), v = U(r, d), b = U(r, f), x = Math.max(1, g.partSize), S = Math.max(1, Math.ceil(p / x)), C = Math.max(0, i.retries ?? t.retries ?? 1), w = [], T = 0;
|
|
1561
1562
|
try {
|
|
1562
1563
|
for (let t = 0; t < S; t++) {
|
|
1563
|
-
let
|
|
1564
|
+
let r = t * x, i = Math.min(p, r + x), s = e.slice(r, i), c = t + 1, l = i - r, u = 0;
|
|
1564
1565
|
for (;;) {
|
|
1565
1566
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1566
1567
|
try {
|
|
1567
|
-
let { url: e } = await
|
|
1568
|
+
let { url: e } = await G(n, _({
|
|
1568
1569
|
multipartToken: g.multipartToken,
|
|
1569
1570
|
partNumber: c
|
|
1570
|
-
})), t = await
|
|
1571
|
+
})), t = await vn(e, s, (e) => o((T + e * l) / p), a);
|
|
1571
1572
|
w.push({
|
|
1572
1573
|
partNumber: c,
|
|
1573
1574
|
etag: t
|
|
@@ -1579,7 +1580,7 @@ var tn = () => {
|
|
|
1579
1580
|
}
|
|
1580
1581
|
T += l, o(T / p);
|
|
1581
1582
|
}
|
|
1582
|
-
let t = await
|
|
1583
|
+
let t = await G(n, v({
|
|
1583
1584
|
multipartToken: g.multipartToken,
|
|
1584
1585
|
parts: w
|
|
1585
1586
|
}));
|
|
@@ -1592,14 +1593,14 @@ var tn = () => {
|
|
|
1592
1593
|
};
|
|
1593
1594
|
} catch (e) {
|
|
1594
1595
|
try {
|
|
1595
|
-
await
|
|
1596
|
+
await G(n, b({ multipartToken: g.multipartToken }));
|
|
1596
1597
|
} catch {}
|
|
1597
1598
|
throw e;
|
|
1598
1599
|
}
|
|
1599
1600
|
};
|
|
1600
|
-
if ((
|
|
1601
|
-
if ((
|
|
1602
|
-
let x = (
|
|
1601
|
+
if ((i.prefer ?? t.prefer) === "multipart") return await b() || await v();
|
|
1602
|
+
if ((i.prefer ?? t.prefer) === "resumable") return await v();
|
|
1603
|
+
let x = (i.prefer ?? t.prefer) === "presign", S;
|
|
1603
1604
|
for (let e = 0; e <= s; e++) {
|
|
1604
1605
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1605
1606
|
try {
|
|
@@ -1614,8 +1615,8 @@ var tn = () => {
|
|
|
1614
1615
|
}
|
|
1615
1616
|
throw S;
|
|
1616
1617
|
}, [
|
|
1618
|
+
n,
|
|
1617
1619
|
r,
|
|
1618
|
-
i,
|
|
1619
1620
|
y,
|
|
1620
1621
|
t.mintTag,
|
|
1621
1622
|
t.presignMintTag,
|
|
@@ -1632,283 +1633,283 @@ var tn = () => {
|
|
|
1632
1633
|
t.folder,
|
|
1633
1634
|
t.tags,
|
|
1634
1635
|
t.retries
|
|
1635
|
-
]), x =
|
|
1636
|
+
]), x = d(async (e, n = {}) => {
|
|
1636
1637
|
let r = new AbortController();
|
|
1637
|
-
|
|
1638
|
+
p.current = r, l("uploading"), f(void 0), s(0);
|
|
1638
1639
|
try {
|
|
1639
|
-
let t = await b(e, n, r.signal,
|
|
1640
|
-
return
|
|
1640
|
+
let t = await b(e, n, r.signal, s);
|
|
1641
|
+
return s(1), l("success"), t;
|
|
1641
1642
|
} catch (e) {
|
|
1642
|
-
throw
|
|
1643
|
+
throw l("error"), f(e), e instanceof DOMException && e.name === "AbortError" || a.emit({
|
|
1643
1644
|
source: "action",
|
|
1644
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
1645
|
+
tag: n.mintTag ?? t.mintTag ?? un,
|
|
1645
1646
|
error: e
|
|
1646
1647
|
}), e;
|
|
1647
1648
|
}
|
|
1648
1649
|
}, [
|
|
1649
1650
|
b,
|
|
1650
|
-
|
|
1651
|
+
a,
|
|
1651
1652
|
t.mintTag
|
|
1652
|
-
]), S =
|
|
1653
|
+
]), S = d(async (e, n = {}) => {
|
|
1653
1654
|
if (e.length === 0) return [];
|
|
1654
1655
|
let r = new AbortController();
|
|
1655
|
-
|
|
1656
|
-
let i = Math.max(1, n.concurrency ?? t.concurrency ?? 3),
|
|
1656
|
+
p.current = r, l("uploading"), f(void 0), s(0);
|
|
1657
|
+
let i = Math.max(1, n.concurrency ?? t.concurrency ?? 3), o = Array(e.length), c = Array(e.length).fill(0), u = () => s(c.reduce((e, t) => e + t, 0) / e.length), d = 0, m = async () => {
|
|
1657
1658
|
for (;;) {
|
|
1658
|
-
let t =
|
|
1659
|
+
let t = d++;
|
|
1659
1660
|
if (t >= e.length) return;
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
}),
|
|
1661
|
+
o[t] = await b(e[t], n, r.signal, (e) => {
|
|
1662
|
+
c[t] = e, u();
|
|
1663
|
+
}), c[t] = 1, u();
|
|
1663
1664
|
}
|
|
1664
1665
|
};
|
|
1665
1666
|
try {
|
|
1666
|
-
return await Promise.all(Array.from({ length: Math.min(i, e.length) }, () =>
|
|
1667
|
+
return await Promise.all(Array.from({ length: Math.min(i, e.length) }, () => m())), s(1), l("success"), o;
|
|
1667
1668
|
} catch (e) {
|
|
1668
|
-
throw r.abort(),
|
|
1669
|
+
throw r.abort(), l("error"), f(e), e instanceof DOMException && e.name === "AbortError" || a.emit({
|
|
1669
1670
|
source: "action",
|
|
1670
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
1671
|
+
tag: n.mintTag ?? t.mintTag ?? un,
|
|
1671
1672
|
error: e
|
|
1672
1673
|
}), e;
|
|
1673
1674
|
}
|
|
1674
1675
|
}, [
|
|
1675
1676
|
b,
|
|
1676
|
-
|
|
1677
|
+
a,
|
|
1677
1678
|
t.concurrency,
|
|
1678
1679
|
t.mintTag
|
|
1679
|
-
]), C =
|
|
1680
|
+
]), C = d((e, t = {}) => {
|
|
1680
1681
|
e.preventDefault();
|
|
1681
1682
|
let n = e.dataTransfer ? Array.from(e.dataTransfer.files) : [];
|
|
1682
1683
|
return n.length ? S(n, t) : Promise.resolve([]);
|
|
1683
|
-
}, [S]), w =
|
|
1684
|
+
}, [S]), w = d((e, t = {}) => {
|
|
1684
1685
|
let n = e.clipboardData ? Array.from(e.clipboardData.files) : [];
|
|
1685
1686
|
return n.length ? S(n, t) : Promise.resolve([]);
|
|
1686
|
-
}, [S]), T =
|
|
1687
|
+
}, [S]), T = h(() => ({
|
|
1687
1688
|
onDragOver: (e) => e.preventDefault(),
|
|
1688
1689
|
onDrop: (e) => {
|
|
1689
1690
|
C(e);
|
|
1690
1691
|
}
|
|
1691
1692
|
}), [C]);
|
|
1692
|
-
return
|
|
1693
|
+
return h(() => ({
|
|
1693
1694
|
upload: x,
|
|
1694
1695
|
uploadMany: S,
|
|
1695
|
-
progress:
|
|
1696
|
-
status:
|
|
1697
|
-
error:
|
|
1696
|
+
progress: o,
|
|
1697
|
+
status: c,
|
|
1698
|
+
error: u,
|
|
1698
1699
|
cancel: v,
|
|
1699
|
-
reset:
|
|
1700
|
+
reset: m,
|
|
1700
1701
|
onDrop: C,
|
|
1701
1702
|
onPaste: w,
|
|
1702
1703
|
dropzoneProps: T
|
|
1703
1704
|
}), [
|
|
1704
1705
|
x,
|
|
1705
1706
|
S,
|
|
1707
|
+
o,
|
|
1708
|
+
c,
|
|
1706
1709
|
u,
|
|
1707
|
-
f,
|
|
1708
|
-
m,
|
|
1709
1710
|
v,
|
|
1710
|
-
|
|
1711
|
+
m,
|
|
1711
1712
|
C,
|
|
1712
1713
|
w,
|
|
1713
1714
|
T
|
|
1714
1715
|
]);
|
|
1715
|
-
},
|
|
1716
|
-
let t =
|
|
1717
|
-
|
|
1716
|
+
}, $ = async (e) => {
|
|
1717
|
+
let t = U(e.client, e.tag), n = S.currentSpan.pipe(S.tap((t) => S.sync(() => {
|
|
1718
|
+
A({
|
|
1718
1719
|
traceId: t.traceId,
|
|
1719
1720
|
spanId: t.spanId,
|
|
1720
1721
|
source: "mutation",
|
|
1721
1722
|
tag: e.tag
|
|
1722
1723
|
});
|
|
1723
|
-
})),
|
|
1724
|
+
})), S.catchAll(() => S.void), S.zipRight(t(e.input)), S.withSpan(`${e.spanPrefix}.${e.tag}`, { attributes: {
|
|
1724
1725
|
"voltro.api": e.apiName,
|
|
1725
1726
|
"rpc.tag": e.tag
|
|
1726
1727
|
} }));
|
|
1727
|
-
return
|
|
1728
|
-
},
|
|
1729
|
-
let { runtime:
|
|
1728
|
+
return G(e.runtime, n);
|
|
1729
|
+
}, Cn = (e, t) => {
|
|
1730
|
+
let { runtime: n, client: r, descriptors: i } = I(e);
|
|
1730
1731
|
if (process.env.NODE_ENV !== "production") {
|
|
1731
|
-
let n =
|
|
1732
|
+
let n = i[t]?.kind;
|
|
1732
1733
|
n !== void 0 && n !== "workflow" && console.error(`[@voltro/client] useWorkflow('${e}', '${t}') targets a ${n}, not a workflow. Use ${n === "mutation" ? "useMutation" : n === "action" ? "useAction" : `the ${n} hook`} instead.`);
|
|
1733
1734
|
}
|
|
1734
|
-
let [
|
|
1735
|
-
|
|
1735
|
+
let [a, o] = _(!1), [s, c] = _(void 0), [l, u] = _(void 0), f = d(async (i) => {
|
|
1736
|
+
o(!0), c(void 0);
|
|
1736
1737
|
try {
|
|
1737
|
-
let a = await
|
|
1738
|
+
let a = await $({
|
|
1738
1739
|
apiName: e,
|
|
1739
|
-
runtime:
|
|
1740
|
-
client:
|
|
1740
|
+
runtime: n,
|
|
1741
|
+
client: r,
|
|
1741
1742
|
tag: t,
|
|
1742
|
-
input:
|
|
1743
|
+
input: i,
|
|
1743
1744
|
spanPrefix: "client.workflow.start"
|
|
1744
1745
|
});
|
|
1745
|
-
return
|
|
1746
|
+
return u(a), a;
|
|
1746
1747
|
} catch (e) {
|
|
1747
|
-
throw
|
|
1748
|
+
throw c(e), e;
|
|
1748
1749
|
} finally {
|
|
1749
|
-
|
|
1750
|
+
o(!1);
|
|
1750
1751
|
}
|
|
1751
1752
|
}, [
|
|
1752
1753
|
e,
|
|
1754
|
+
n,
|
|
1753
1755
|
r,
|
|
1754
|
-
i,
|
|
1755
1756
|
t
|
|
1756
|
-
]),
|
|
1757
|
-
await
|
|
1757
|
+
]), p = d(async (t) => {
|
|
1758
|
+
await $({
|
|
1758
1759
|
apiName: e,
|
|
1759
|
-
runtime:
|
|
1760
|
-
client:
|
|
1760
|
+
runtime: n,
|
|
1761
|
+
client: r,
|
|
1761
1762
|
tag: "__voltro.workflow.cancel",
|
|
1762
1763
|
input: t,
|
|
1763
1764
|
spanPrefix: "client.workflow.cancel"
|
|
1764
1765
|
});
|
|
1765
1766
|
}, [
|
|
1766
1767
|
e,
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
]),
|
|
1770
|
-
await
|
|
1768
|
+
n,
|
|
1769
|
+
r
|
|
1770
|
+
]), m = d(async (t) => {
|
|
1771
|
+
await $({
|
|
1771
1772
|
apiName: e,
|
|
1772
|
-
runtime:
|
|
1773
|
-
client:
|
|
1773
|
+
runtime: n,
|
|
1774
|
+
client: r,
|
|
1774
1775
|
tag: "__voltro.workflow.resume",
|
|
1775
1776
|
input: t,
|
|
1776
1777
|
spanPrefix: "client.workflow.resume"
|
|
1777
1778
|
});
|
|
1778
1779
|
}, [
|
|
1779
1780
|
e,
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
]),
|
|
1781
|
+
n,
|
|
1782
|
+
r
|
|
1783
|
+
]), g = d(async (t, i, a) => $({
|
|
1783
1784
|
apiName: e,
|
|
1784
|
-
runtime:
|
|
1785
|
-
client:
|
|
1785
|
+
runtime: n,
|
|
1786
|
+
client: r,
|
|
1786
1787
|
tag: "__voltro.workflow.signal",
|
|
1787
1788
|
input: {
|
|
1788
1789
|
id: t.id,
|
|
1789
|
-
signalName:
|
|
1790
|
+
signalName: i,
|
|
1790
1791
|
...a === void 0 ? {} : { payload: a }
|
|
1791
1792
|
},
|
|
1792
1793
|
spanPrefix: "client.workflow.signal"
|
|
1793
1794
|
}), [
|
|
1794
1795
|
e,
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
]), v =
|
|
1796
|
+
n,
|
|
1797
|
+
r
|
|
1798
|
+
]), v = d(async (t, i, a, o) => $({
|
|
1798
1799
|
apiName: e,
|
|
1799
|
-
runtime:
|
|
1800
|
-
client:
|
|
1800
|
+
runtime: n,
|
|
1801
|
+
client: r,
|
|
1801
1802
|
tag: "__voltro.workflow.update",
|
|
1802
1803
|
input: {
|
|
1803
1804
|
id: t.id,
|
|
1804
|
-
updateName:
|
|
1805
|
+
updateName: i,
|
|
1805
1806
|
...a === void 0 ? {} : { payload: a },
|
|
1806
1807
|
...o?.timeoutMs === void 0 ? {} : { timeoutMs: o.timeoutMs }
|
|
1807
1808
|
},
|
|
1808
1809
|
spanPrefix: "client.workflow.update"
|
|
1809
1810
|
}), [
|
|
1810
1811
|
e,
|
|
1811
|
-
|
|
1812
|
-
|
|
1812
|
+
n,
|
|
1813
|
+
r
|
|
1813
1814
|
]);
|
|
1814
|
-
return
|
|
1815
|
-
start:
|
|
1816
|
-
cancel:
|
|
1817
|
-
resume:
|
|
1818
|
-
signal:
|
|
1815
|
+
return h(() => ({
|
|
1816
|
+
start: f,
|
|
1817
|
+
cancel: p,
|
|
1818
|
+
resume: m,
|
|
1819
|
+
signal: g,
|
|
1819
1820
|
update: v,
|
|
1820
|
-
pending:
|
|
1821
|
-
error:
|
|
1822
|
-
data:
|
|
1821
|
+
pending: a,
|
|
1822
|
+
error: s,
|
|
1823
|
+
data: l
|
|
1823
1824
|
}), [
|
|
1825
|
+
f,
|
|
1826
|
+
p,
|
|
1824
1827
|
m,
|
|
1825
|
-
h,
|
|
1826
1828
|
g,
|
|
1827
|
-
_,
|
|
1828
1829
|
v,
|
|
1830
|
+
a,
|
|
1829
1831
|
s,
|
|
1830
|
-
|
|
1831
|
-
f
|
|
1832
|
+
l
|
|
1832
1833
|
]);
|
|
1833
|
-
},
|
|
1834
|
-
let { runtime: t, client:
|
|
1835
|
-
|
|
1834
|
+
}, wn = (e) => {
|
|
1835
|
+
let { runtime: t, client: n } = I(e), [r, i] = _(!1), [a, o] = _(void 0), [s, c] = _(void 0), l = d(async (r, a, s) => {
|
|
1836
|
+
i(!0), o(void 0);
|
|
1836
1837
|
try {
|
|
1837
|
-
let
|
|
1838
|
+
let i = await $({
|
|
1838
1839
|
apiName: e,
|
|
1839
1840
|
runtime: t,
|
|
1840
|
-
client:
|
|
1841
|
+
client: n,
|
|
1841
1842
|
tag: "__voltro.workflow.signal",
|
|
1842
1843
|
input: {
|
|
1843
|
-
id:
|
|
1844
|
-
signalName:
|
|
1845
|
-
...
|
|
1844
|
+
id: r.id,
|
|
1845
|
+
signalName: a,
|
|
1846
|
+
...s === void 0 ? {} : { payload: s }
|
|
1846
1847
|
},
|
|
1847
1848
|
spanPrefix: "client.workflow.signal"
|
|
1848
1849
|
});
|
|
1849
|
-
return
|
|
1850
|
+
return c(i), i;
|
|
1850
1851
|
} catch (e) {
|
|
1851
|
-
throw
|
|
1852
|
+
throw o(e), e;
|
|
1852
1853
|
} finally {
|
|
1853
|
-
|
|
1854
|
+
i(!1);
|
|
1854
1855
|
}
|
|
1855
1856
|
}, [
|
|
1856
1857
|
e,
|
|
1857
1858
|
t,
|
|
1858
|
-
|
|
1859
|
+
n
|
|
1859
1860
|
]);
|
|
1860
|
-
return
|
|
1861
|
-
signal:
|
|
1862
|
-
pending:
|
|
1863
|
-
error:
|
|
1864
|
-
data:
|
|
1861
|
+
return h(() => ({
|
|
1862
|
+
signal: l,
|
|
1863
|
+
pending: r,
|
|
1864
|
+
error: a,
|
|
1865
|
+
data: s
|
|
1865
1866
|
}), [
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1867
|
+
l,
|
|
1868
|
+
r,
|
|
1869
|
+
a,
|
|
1870
|
+
s
|
|
1870
1871
|
]);
|
|
1871
|
-
},
|
|
1872
|
-
let { runtime: t, client:
|
|
1873
|
-
|
|
1872
|
+
}, Tn = (e) => {
|
|
1873
|
+
let { runtime: t, client: n } = I(e), [r, i] = _(!1), [a, o] = _(void 0), [s, c] = _(void 0), l = d(async (r, a, s, l) => {
|
|
1874
|
+
i(!0), o(void 0);
|
|
1874
1875
|
try {
|
|
1875
|
-
let
|
|
1876
|
+
let i = await $({
|
|
1876
1877
|
apiName: e,
|
|
1877
1878
|
runtime: t,
|
|
1878
|
-
client:
|
|
1879
|
+
client: n,
|
|
1879
1880
|
tag: "__voltro.workflow.update",
|
|
1880
1881
|
input: {
|
|
1881
|
-
id:
|
|
1882
|
-
updateName:
|
|
1883
|
-
...
|
|
1884
|
-
...
|
|
1882
|
+
id: r.id,
|
|
1883
|
+
updateName: a,
|
|
1884
|
+
...s === void 0 ? {} : { payload: s },
|
|
1885
|
+
...l?.timeoutMs === void 0 ? {} : { timeoutMs: l.timeoutMs }
|
|
1885
1886
|
},
|
|
1886
1887
|
spanPrefix: "client.workflow.update"
|
|
1887
1888
|
});
|
|
1888
|
-
return
|
|
1889
|
+
return c(i), i;
|
|
1889
1890
|
} catch (e) {
|
|
1890
|
-
throw
|
|
1891
|
+
throw o(e), e;
|
|
1891
1892
|
} finally {
|
|
1892
|
-
|
|
1893
|
+
i(!1);
|
|
1893
1894
|
}
|
|
1894
1895
|
}, [
|
|
1895
1896
|
e,
|
|
1896
1897
|
t,
|
|
1897
|
-
|
|
1898
|
+
n
|
|
1898
1899
|
]);
|
|
1899
|
-
return
|
|
1900
|
-
update:
|
|
1901
|
-
pending:
|
|
1902
|
-
error:
|
|
1903
|
-
data:
|
|
1900
|
+
return h(() => ({
|
|
1901
|
+
update: l,
|
|
1902
|
+
pending: r,
|
|
1903
|
+
error: a,
|
|
1904
|
+
data: s
|
|
1904
1905
|
}), [
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1906
|
+
l,
|
|
1907
|
+
r,
|
|
1908
|
+
a,
|
|
1909
|
+
s
|
|
1909
1910
|
]);
|
|
1910
|
-
},
|
|
1911
|
-
let n =
|
|
1911
|
+
}, En = (e, t) => {
|
|
1912
|
+
let n = W(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
|
|
1912
1913
|
return n.loading || n.idle || n.failed ? {
|
|
1913
1914
|
...n,
|
|
1914
1915
|
run: void 0
|
|
@@ -1916,8 +1917,8 @@ var tn = () => {
|
|
|
1916
1917
|
...n,
|
|
1917
1918
|
run: n.data[0]
|
|
1918
1919
|
};
|
|
1919
|
-
},
|
|
1920
|
-
let r =
|
|
1920
|
+
}, Dn = (e, t = {}, n = {}) => {
|
|
1921
|
+
let r = W(e, "__voltro.workflow.runs", t, n);
|
|
1921
1922
|
return r.loading || r.idle || r.failed ? {
|
|
1922
1923
|
...r,
|
|
1923
1924
|
runs: []
|
|
@@ -1925,8 +1926,8 @@ var tn = () => {
|
|
|
1925
1926
|
...r,
|
|
1926
1927
|
runs: r.data
|
|
1927
1928
|
};
|
|
1928
|
-
},
|
|
1929
|
-
let n =
|
|
1929
|
+
}, On = (e, t) => {
|
|
1930
|
+
let n = W(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1930
1931
|
return n.loading || n.idle || n.failed ? {
|
|
1931
1932
|
...n,
|
|
1932
1933
|
steps: []
|
|
@@ -1934,8 +1935,8 @@ var tn = () => {
|
|
|
1934
1935
|
...n,
|
|
1935
1936
|
steps: n.data
|
|
1936
1937
|
};
|
|
1937
|
-
},
|
|
1938
|
-
let n =
|
|
1938
|
+
}, kn = (e, t) => {
|
|
1939
|
+
let n = W(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1939
1940
|
return n.loading || n.idle || n.failed ? {
|
|
1940
1941
|
...n,
|
|
1941
1942
|
events: []
|
|
@@ -1943,8 +1944,8 @@ var tn = () => {
|
|
|
1943
1944
|
...n,
|
|
1944
1945
|
events: n.data
|
|
1945
1946
|
};
|
|
1946
|
-
},
|
|
1947
|
-
let r =
|
|
1947
|
+
}, An = kn, jn = (e, t = {}, n = {}) => {
|
|
1948
|
+
let r = W(e, "__voltro.workflow.domainEvents", t, n);
|
|
1948
1949
|
return r.loading || r.idle || r.failed ? {
|
|
1949
1950
|
...r,
|
|
1950
1951
|
events: []
|
|
@@ -1952,8 +1953,8 @@ var tn = () => {
|
|
|
1952
1953
|
...r,
|
|
1953
1954
|
events: r.data
|
|
1954
1955
|
};
|
|
1955
|
-
},
|
|
1956
|
-
let n =
|
|
1956
|
+
}, Mn = (e, t) => {
|
|
1957
|
+
let n = W(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
|
|
1957
1958
|
return n.loading || n.idle || n.failed ? {
|
|
1958
1959
|
...n,
|
|
1959
1960
|
deliveries: []
|
|
@@ -1961,42 +1962,42 @@ var tn = () => {
|
|
|
1961
1962
|
...n,
|
|
1962
1963
|
deliveries: n.data
|
|
1963
1964
|
};
|
|
1964
|
-
},
|
|
1965
|
+
}, Nn = (e, t) => {
|
|
1965
1966
|
let n = e.payload;
|
|
1966
1967
|
if (!n || typeof n != "object") return;
|
|
1967
1968
|
let r = n[t];
|
|
1968
1969
|
return typeof r == "string" ? r : void 0;
|
|
1969
|
-
},
|
|
1970
|
+
}, Pn = (e) => {
|
|
1970
1971
|
let t = e.payload;
|
|
1971
1972
|
if (!t || typeof t != "object") return;
|
|
1972
1973
|
let n = t.updateId;
|
|
1973
1974
|
return typeof n == "string" ? n : void 0;
|
|
1974
|
-
},
|
|
1975
|
+
}, Fn = (e) => {
|
|
1975
1976
|
let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
1976
1977
|
for (let r of e) if (r.eventType === "signal-received") {
|
|
1977
|
-
let e =
|
|
1978
|
+
let e = Nn(r, "signalName");
|
|
1978
1979
|
e && t.add(e);
|
|
1979
1980
|
} else if (r.eventType === "update-completed" || r.eventType === "update-failed") {
|
|
1980
|
-
let e =
|
|
1981
|
+
let e = Pn(r);
|
|
1981
1982
|
e && n.add(e);
|
|
1982
1983
|
}
|
|
1983
1984
|
for (let r = e.length - 1; r >= 0; --r) {
|
|
1984
1985
|
let i = e[r];
|
|
1985
1986
|
if (i.eventType === "signal-awaited") {
|
|
1986
|
-
let e =
|
|
1987
|
+
let e = Nn(i, "signalName");
|
|
1987
1988
|
if (e && !t.has(e)) return {
|
|
1988
1989
|
name: e,
|
|
1989
1990
|
kind: "signal"
|
|
1990
1991
|
};
|
|
1991
1992
|
} else if (i.eventType === "update-requested") {
|
|
1992
|
-
let e =
|
|
1993
|
+
let e = Pn(i), t = Nn(i, "updateName");
|
|
1993
1994
|
if (t && (!e || !n.has(e))) return {
|
|
1994
1995
|
name: t,
|
|
1995
1996
|
kind: "update"
|
|
1996
1997
|
};
|
|
1997
1998
|
}
|
|
1998
1999
|
}
|
|
1999
|
-
},
|
|
2000
|
+
}, In = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), Ln = (e, t) => {
|
|
2000
2001
|
if (!e || e.status !== "failed") return;
|
|
2001
2002
|
let n = t.find((e) => e.status === "failed");
|
|
2002
2003
|
return {
|
|
@@ -2004,182 +2005,182 @@ var tn = () => {
|
|
|
2004
2005
|
message: e.errorMessage,
|
|
2005
2006
|
step: n?.stepName
|
|
2006
2007
|
};
|
|
2007
|
-
},
|
|
2008
|
-
let
|
|
2009
|
-
if (!
|
|
2010
|
-
await
|
|
2011
|
-
workflowName:
|
|
2012
|
-
executionId:
|
|
2008
|
+
}, Rn = (e, t) => {
|
|
2009
|
+
let n = En(e, t), r = On(e, t), i = kn(e, t), a = Cn(e, n.run?.tag ?? ""), o = n.run, s = r.steps, c = i.events, l = d(async () => {
|
|
2010
|
+
if (!o) throw Error("useWorkflowRunState: no run loaded — cannot cancel");
|
|
2011
|
+
await a.cancel({
|
|
2012
|
+
workflowName: o.tag,
|
|
2013
|
+
executionId: o.executionId
|
|
2013
2014
|
});
|
|
2014
|
-
}, [
|
|
2015
|
-
if (!
|
|
2016
|
-
await
|
|
2017
|
-
workflowName:
|
|
2018
|
-
executionId:
|
|
2015
|
+
}, [a, o]), u = d(async () => {
|
|
2016
|
+
if (!o) throw Error("useWorkflowRunState: no run loaded — cannot resume");
|
|
2017
|
+
await a.resume({
|
|
2018
|
+
workflowName: o.tag,
|
|
2019
|
+
executionId: o.executionId
|
|
2019
2020
|
});
|
|
2020
|
-
}, [
|
|
2021
|
+
}, [a, o]), f = d((e, n) => {
|
|
2021
2022
|
if (t === void 0) throw Error("useWorkflowRunState: no run id — cannot signal");
|
|
2022
|
-
return
|
|
2023
|
-
}, [
|
|
2023
|
+
return a.signal({ id: t }, e, n);
|
|
2024
|
+
}, [a, t]), p = d((e, n, r) => {
|
|
2024
2025
|
if (t === void 0) throw Error("useWorkflowRunState: no run id — cannot update");
|
|
2025
|
-
return
|
|
2026
|
-
}, [
|
|
2027
|
-
return
|
|
2028
|
-
run:
|
|
2029
|
-
status:
|
|
2030
|
-
steps:
|
|
2031
|
-
events:
|
|
2032
|
-
currentStep:
|
|
2033
|
-
waitingFor:
|
|
2034
|
-
error:
|
|
2035
|
-
traceId:
|
|
2036
|
-
loading:
|
|
2037
|
-
cancel:
|
|
2038
|
-
resume:
|
|
2039
|
-
signal:
|
|
2040
|
-
update:
|
|
2026
|
+
return a.update({ id: t }, e, n, r);
|
|
2027
|
+
}, [a, t]);
|
|
2028
|
+
return h(() => ({
|
|
2029
|
+
run: o,
|
|
2030
|
+
status: o?.status,
|
|
2031
|
+
steps: s,
|
|
2032
|
+
events: c,
|
|
2033
|
+
currentStep: In(s),
|
|
2034
|
+
waitingFor: o?.status === "suspended" ? Fn(c) : void 0,
|
|
2035
|
+
error: Ln(o, s),
|
|
2036
|
+
traceId: o?.traceId,
|
|
2037
|
+
loading: n.data === void 0,
|
|
2038
|
+
cancel: l,
|
|
2039
|
+
resume: u,
|
|
2040
|
+
signal: f,
|
|
2041
|
+
update: p
|
|
2041
2042
|
}), [
|
|
2043
|
+
o,
|
|
2044
|
+
s,
|
|
2042
2045
|
c,
|
|
2046
|
+
n.data,
|
|
2043
2047
|
l,
|
|
2044
2048
|
u,
|
|
2045
|
-
r.data,
|
|
2046
|
-
d,
|
|
2047
2049
|
f,
|
|
2048
|
-
p
|
|
2049
|
-
m
|
|
2050
|
+
p
|
|
2050
2051
|
]);
|
|
2051
|
-
},
|
|
2052
|
-
let { runtime:
|
|
2053
|
-
let e =
|
|
2054
|
-
e && (
|
|
2055
|
-
}, [
|
|
2052
|
+
}, zn = (e, t) => {
|
|
2053
|
+
let { runtime: n, client: r } = I(e), [i, a] = _([]), [o, s] = _("idle"), [c, l] = _(void 0), u = g(null), f = d(() => {
|
|
2054
|
+
let e = u.current;
|
|
2055
|
+
e && (u.current = null, n.runFork(w.interrupt(e)), s((e) => e === "streaming" ? "idle" : e));
|
|
2056
|
+
}, [n]);
|
|
2056
2057
|
return {
|
|
2057
|
-
events:
|
|
2058
|
-
status:
|
|
2059
|
-
error:
|
|
2060
|
-
start:
|
|
2061
|
-
let
|
|
2062
|
-
|
|
2063
|
-
let
|
|
2058
|
+
events: i,
|
|
2059
|
+
status: o,
|
|
2060
|
+
error: c,
|
|
2061
|
+
start: d((e = {}) => {
|
|
2062
|
+
let i = u.current;
|
|
2063
|
+
i && n.runFork(w.interrupt(i)), a([]), l(void 0), s("streaming");
|
|
2064
|
+
let o = U(r, t)(e), c = O.runForEach(o, (e) => S.sync(() => a((t) => [...t, e]))).pipe(S.matchCause({
|
|
2064
2065
|
onSuccess: () => {
|
|
2065
|
-
|
|
2066
|
+
s("done");
|
|
2066
2067
|
},
|
|
2067
2068
|
onFailure: (e) => {
|
|
2068
|
-
|
|
2069
|
+
y.isInterruptedOnly(e) || (l(y.squash(e)), s("error"));
|
|
2069
2070
|
}
|
|
2070
2071
|
}));
|
|
2071
|
-
|
|
2072
|
+
u.current = n.runFork(c);
|
|
2072
2073
|
}, [
|
|
2074
|
+
n,
|
|
2073
2075
|
r,
|
|
2074
|
-
i,
|
|
2075
2076
|
t
|
|
2076
2077
|
]),
|
|
2077
|
-
cancel:
|
|
2078
|
+
cancel: f
|
|
2078
2079
|
};
|
|
2079
|
-
},
|
|
2080
|
-
let i = 0, a = !1, o = (e) =>
|
|
2080
|
+
}, Bn = (e, t, n, r) => {
|
|
2081
|
+
let i = 0, a = !1, o = (e) => S.sync(() => {
|
|
2081
2082
|
e.seq <= i || (i = e.seq, n.onEvent(e.event), r.isTerminal(e.event) && (a = !0));
|
|
2082
2083
|
}), s = (e, t, a) => {
|
|
2083
2084
|
let o = i > t ? 0 : e + 1;
|
|
2084
|
-
if (o > r.maxReconnects) return
|
|
2085
|
+
if (o > r.maxReconnects) return S.sync(() => {
|
|
2085
2086
|
n.onError(a ?? /* @__PURE__ */ Error("stream connection lost")), n.onStatus("error");
|
|
2086
2087
|
});
|
|
2087
2088
|
let s = Math.min(r.maxBackoffMs, r.backoffMs * 2 ** Math.max(0, o - 1));
|
|
2088
|
-
return
|
|
2089
|
+
return S.sync(() => {
|
|
2089
2090
|
n.onStatus("reconnecting"), n.onReconnect();
|
|
2090
|
-
}).pipe(
|
|
2091
|
-
}, c = (r) =>
|
|
2091
|
+
}).pipe(S.zipRight(S.sleep(x.millis(s))), S.zipRight(S.sync(() => n.onStatus("streaming"))), S.zipRight(c(o)));
|
|
2092
|
+
}, c = (r) => S.suspend(() => {
|
|
2092
2093
|
let c = i, l = e({
|
|
2093
2094
|
...t,
|
|
2094
2095
|
fromSeq: c
|
|
2095
2096
|
});
|
|
2096
|
-
return
|
|
2097
|
-
onSuccess: () => a ?
|
|
2098
|
-
onFailure: (e) =>
|
|
2097
|
+
return O.runForEach(l, o).pipe(S.matchCauseEffect({
|
|
2098
|
+
onSuccess: () => a ? S.sync(() => n.onStatus("done")) : s(r, c, void 0),
|
|
2099
|
+
onFailure: (e) => y.isInterruptedOnly(e) ? S.void : a ? S.sync(() => n.onStatus("done")) : s(r, c, y.squash(e))
|
|
2099
2100
|
}));
|
|
2100
2101
|
});
|
|
2101
2102
|
return c(0);
|
|
2102
|
-
},
|
|
2103
|
+
}, Vn = (e) => {
|
|
2103
2104
|
let t = e?._tag;
|
|
2104
2105
|
return t === "done" || t === "error";
|
|
2105
|
-
},
|
|
2106
|
-
let { runtime:
|
|
2107
|
-
maxReconnects:
|
|
2108
|
-
backoffMs:
|
|
2109
|
-
maxBackoffMs:
|
|
2110
|
-
isTerminal:
|
|
2111
|
-
},
|
|
2112
|
-
let e =
|
|
2113
|
-
e && (
|
|
2114
|
-
}, [
|
|
2106
|
+
}, Hn = (e, t, n = {}) => {
|
|
2107
|
+
let { runtime: r, client: i } = I(e), [a, o] = _([]), [s, c] = _("idle"), [l, u] = _(0), [f, p] = _(void 0), m = g(null), h = {
|
|
2108
|
+
maxReconnects: n.maxReconnects ?? 6,
|
|
2109
|
+
backoffMs: n.backoffMs ?? 400,
|
|
2110
|
+
maxBackoffMs: n.maxBackoffMs ?? 8e3,
|
|
2111
|
+
isTerminal: n.isTerminal ?? Vn
|
|
2112
|
+
}, v = d(() => {
|
|
2113
|
+
let e = m.current;
|
|
2114
|
+
e && (m.current = null, r.runFork(w.interrupt(e)), c((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
|
|
2115
|
+
}, [r]);
|
|
2115
2116
|
return {
|
|
2116
|
-
events:
|
|
2117
|
-
status:
|
|
2118
|
-
reconnects:
|
|
2119
|
-
error:
|
|
2120
|
-
start:
|
|
2121
|
-
let n =
|
|
2122
|
-
n &&
|
|
2123
|
-
let
|
|
2124
|
-
onEvent: (e) =>
|
|
2125
|
-
onStatus:
|
|
2126
|
-
onReconnect: () =>
|
|
2127
|
-
onError:
|
|
2117
|
+
events: a,
|
|
2118
|
+
status: s,
|
|
2119
|
+
reconnects: l,
|
|
2120
|
+
error: f,
|
|
2121
|
+
start: d((e = {}) => {
|
|
2122
|
+
let n = m.current;
|
|
2123
|
+
n && r.runFork(w.interrupt(n)), o([]), p(void 0), u(0), c("streaming");
|
|
2124
|
+
let a = U(i, t), s = {
|
|
2125
|
+
onEvent: (e) => o((t) => [...t, e]),
|
|
2126
|
+
onStatus: c,
|
|
2127
|
+
onReconnect: () => u((e) => e + 1),
|
|
2128
|
+
onError: p
|
|
2128
2129
|
};
|
|
2129
|
-
|
|
2130
|
+
m.current = r.runFork(Bn(a, e, s, h));
|
|
2130
2131
|
}, [
|
|
2132
|
+
r,
|
|
2131
2133
|
i,
|
|
2132
|
-
a,
|
|
2133
2134
|
t,
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2135
|
+
h.maxReconnects,
|
|
2136
|
+
h.backoffMs,
|
|
2137
|
+
h.maxBackoffMs,
|
|
2138
|
+
h.isTerminal
|
|
2138
2139
|
]),
|
|
2139
|
-
cancel:
|
|
2140
|
+
cancel: v
|
|
2140
2141
|
};
|
|
2141
|
-
},
|
|
2142
|
+
}, Un = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), Wn = (e) => {
|
|
2142
2143
|
for (let t = e.length - 1; t >= 0; --t) {
|
|
2143
2144
|
let n = e[t];
|
|
2144
2145
|
if (n.role === "user" && n.content) return n.content;
|
|
2145
2146
|
}
|
|
2146
|
-
},
|
|
2147
|
-
let { threadId:
|
|
2148
|
-
threadId:
|
|
2149
|
-
order:
|
|
2147
|
+
}, Gn = (e, t, n) => {
|
|
2148
|
+
let { threadId: r } = n, i = W(e, `${t}.messages`, { threadId: r }), a = X(e, `${t}.send`), o = h(() => [...i.data ?? []].sort(Un), [i.data]), s = d((e, t = {}) => a.run({
|
|
2149
|
+
threadId: r,
|
|
2150
|
+
order: i.data?.length ?? 0,
|
|
2150
2151
|
prompt: e,
|
|
2151
2152
|
...t
|
|
2152
2153
|
}), [
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
]),
|
|
2157
|
-
let e =
|
|
2158
|
-
return e === void 0 ? void 0 :
|
|
2159
|
-
}, [
|
|
2160
|
-
return
|
|
2161
|
-
messages:
|
|
2162
|
-
streaming:
|
|
2163
|
-
loading:
|
|
2164
|
-
error:
|
|
2165
|
-
send:
|
|
2166
|
-
regenerate:
|
|
2167
|
-
sending:
|
|
2154
|
+
a,
|
|
2155
|
+
r,
|
|
2156
|
+
i.data
|
|
2157
|
+
]), c = d(() => {
|
|
2158
|
+
let e = Wn(o);
|
|
2159
|
+
return e === void 0 ? void 0 : s(e);
|
|
2160
|
+
}, [o, s]);
|
|
2161
|
+
return h(() => ({
|
|
2162
|
+
messages: o,
|
|
2163
|
+
streaming: o.some((e) => e.streaming),
|
|
2164
|
+
loading: i.data === void 0,
|
|
2165
|
+
error: i.error ?? a.error,
|
|
2166
|
+
send: s,
|
|
2167
|
+
regenerate: c,
|
|
2168
|
+
sending: a.pending
|
|
2168
2169
|
}), [
|
|
2169
|
-
|
|
2170
|
-
|
|
2170
|
+
o,
|
|
2171
|
+
i.data,
|
|
2172
|
+
i.error,
|
|
2171
2173
|
a.error,
|
|
2172
|
-
|
|
2173
|
-
s
|
|
2174
|
-
|
|
2175
|
-
u
|
|
2174
|
+
a.pending,
|
|
2175
|
+
s,
|
|
2176
|
+
c
|
|
2176
2177
|
]);
|
|
2177
|
-
},
|
|
2178
|
-
let { events:
|
|
2179
|
-
return
|
|
2180
|
-
if (
|
|
2181
|
-
let e =
|
|
2182
|
-
|
|
2178
|
+
}, Kn = (e, t) => {
|
|
2179
|
+
let { events: n, status: r, error: i, start: a, cancel: o } = zn(e, t), [s, c] = _([]), l = g(null), u = h(() => n.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [n]);
|
|
2180
|
+
return m(() => {
|
|
2181
|
+
if (r !== "done" || l.current === null) return;
|
|
2182
|
+
let e = l.current;
|
|
2183
|
+
l.current = null, c((t) => [
|
|
2183
2184
|
...t,
|
|
2184
2185
|
{
|
|
2185
2186
|
role: "user",
|
|
@@ -2187,48 +2188,48 @@ var tn = () => {
|
|
|
2187
2188
|
},
|
|
2188
2189
|
{
|
|
2189
2190
|
role: "assistant",
|
|
2190
|
-
content:
|
|
2191
|
+
content: u
|
|
2191
2192
|
}
|
|
2192
2193
|
]);
|
|
2193
|
-
}, [
|
|
2194
|
-
tokens:
|
|
2195
|
-
history:
|
|
2196
|
-
status:
|
|
2197
|
-
error:
|
|
2198
|
-
send:
|
|
2194
|
+
}, [r, u]), {
|
|
2195
|
+
tokens: u,
|
|
2196
|
+
history: s,
|
|
2197
|
+
status: r,
|
|
2198
|
+
error: i,
|
|
2199
|
+
send: d((e = {}) => {
|
|
2199
2200
|
let t = e.message;
|
|
2200
|
-
|
|
2201
|
-
}, [
|
|
2202
|
-
cancel:
|
|
2201
|
+
l.current = typeof t == "string" ? t : "", a(e);
|
|
2202
|
+
}, [a]),
|
|
2203
|
+
cancel: o
|
|
2203
2204
|
};
|
|
2204
|
-
},
|
|
2205
|
-
let
|
|
2206
|
-
let t = await
|
|
2207
|
-
return
|
|
2208
|
-
}, [
|
|
2209
|
-
return
|
|
2210
|
-
ask:
|
|
2211
|
-
answer:
|
|
2212
|
-
pending:
|
|
2213
|
-
error:
|
|
2214
|
-
reset:
|
|
2205
|
+
}, qn = (e, t) => {
|
|
2206
|
+
let n = X(e, t), [r, i] = _(void 0), a = d(async (e) => {
|
|
2207
|
+
let t = await n.run({ question: e });
|
|
2208
|
+
return i(t), t;
|
|
2209
|
+
}, [n]), o = d(() => i(void 0), []);
|
|
2210
|
+
return h(() => ({
|
|
2211
|
+
ask: a,
|
|
2212
|
+
answer: r,
|
|
2213
|
+
pending: n.pending,
|
|
2214
|
+
error: n.error,
|
|
2215
|
+
reset: o
|
|
2215
2216
|
}), [
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2217
|
+
a,
|
|
2218
|
+
r,
|
|
2219
|
+
n.pending,
|
|
2220
|
+
n.error,
|
|
2221
|
+
o
|
|
2221
2222
|
]);
|
|
2222
|
-
},
|
|
2223
|
-
let { cache: t, runtime:
|
|
2224
|
-
return
|
|
2225
|
-
t.refreshAll(
|
|
2226
|
-
}, [t,
|
|
2227
|
-
},
|
|
2223
|
+
}, Jn = (e) => {
|
|
2224
|
+
let { cache: t, runtime: n } = I(e);
|
|
2225
|
+
return d(() => {
|
|
2226
|
+
t.refreshAll(n);
|
|
2227
|
+
}, [t, n]);
|
|
2228
|
+
}, Yn = (e) => e?._tag === "Unauthenticated", Xn = (e, t, n = {}) => {
|
|
2228
2229
|
let r = n.cooldownMs ?? 15e3, i = n.maxConsecutive ?? 3, a = n.now ?? (() => Date.now()), o = -Infinity, s = 0;
|
|
2229
2230
|
return {
|
|
2230
2231
|
dispose: e.on((e) => {
|
|
2231
|
-
if (!
|
|
2232
|
+
if (!Yn(e.error) || s >= i) return;
|
|
2232
2233
|
let n = a();
|
|
2233
2234
|
n - o < r || (o = n, s += 1, t());
|
|
2234
2235
|
}),
|
|
@@ -2236,170 +2237,88 @@ var tn = () => {
|
|
|
2236
2237
|
s = 0;
|
|
2237
2238
|
}
|
|
2238
2239
|
};
|
|
2239
|
-
},
|
|
2240
|
-
for (let t of
|
|
2240
|
+
}, Zn = /* @__PURE__ */ new Set(), Qn = (e) => {
|
|
2241
|
+
for (let t of Zn) try {
|
|
2241
2242
|
t(e);
|
|
2242
2243
|
} catch {}
|
|
2243
|
-
},
|
|
2244
|
-
|
|
2245
|
-
}),
|
|
2246
|
-
|
|
2244
|
+
}, $n = (e) => (Zn.add(e), () => {
|
|
2245
|
+
Zn.delete(e);
|
|
2246
|
+
}), er = (e, t) => {
|
|
2247
|
+
Qn({
|
|
2247
2248
|
error: e,
|
|
2248
2249
|
source: "manual",
|
|
2249
2250
|
...t ? { context: t } : {}
|
|
2250
2251
|
});
|
|
2251
|
-
},
|
|
2252
|
-
let { errorBus: n } =
|
|
2253
|
-
|
|
2254
|
-
},
|
|
2255
|
-
let n = e;
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
if (i.length !== r.length) return i.length === 1 ? {
|
|
2287
|
-
node: Z(i[0], t),
|
|
2288
|
-
nullable: !0
|
|
2289
|
-
} : {
|
|
2290
|
-
node: {
|
|
2291
|
-
...e,
|
|
2292
|
-
[n]: i
|
|
2293
|
-
},
|
|
2294
|
-
nullable: !0
|
|
2295
|
-
};
|
|
2296
|
-
}
|
|
2297
|
-
return {
|
|
2298
|
-
node: e,
|
|
2299
|
-
nullable: !1
|
|
2300
|
-
};
|
|
2301
|
-
}, tr = (e) => e.map((e) => ({
|
|
2302
|
-
value: String(e),
|
|
2303
|
-
label: Qn(String(e))
|
|
2304
|
-
})), nr = (e) => {
|
|
2305
|
-
let t = e.enum;
|
|
2306
|
-
if (Array.isArray(t) && t.length > 0) return {
|
|
2307
|
-
widget: "select",
|
|
2308
|
-
options: tr(t)
|
|
2309
|
-
};
|
|
2310
|
-
let n = e.type, r = Array.isArray(n) ? n.find((e) => e !== "null") : n, i = e.format;
|
|
2311
|
-
switch (r) {
|
|
2312
|
-
case "string": return i === "date" ? { widget: "date" } : i === "date-time" ? { widget: "datetime" } : { widget: "text" };
|
|
2313
|
-
case "integer":
|
|
2314
|
-
case "number": return { widget: "number" };
|
|
2315
|
-
case "boolean": return { widget: "checkbox" };
|
|
2316
|
-
case "array": return { widget: "multi-select" };
|
|
2317
|
-
default: return { widget: "custom" };
|
|
2318
|
-
}
|
|
2319
|
-
}, rr = (e, t, n) => Object.entries(e).map(([e, r]) => {
|
|
2320
|
-
let { node: i, nullable: a } = er(Z(r, n), n), o = Z(i, n), { widget: s, options: c } = nr(o);
|
|
2321
|
-
return {
|
|
2322
|
-
name: e,
|
|
2323
|
-
label: Qn(e),
|
|
2324
|
-
widget: s,
|
|
2325
|
-
required: t.has(e),
|
|
2326
|
-
nullable: a,
|
|
2327
|
-
...c ? { options: c } : {},
|
|
2328
|
-
jsonSchema: o
|
|
2329
|
-
};
|
|
2330
|
-
}), ir = (e) => {
|
|
2331
|
-
try {
|
|
2332
|
-
return g.make(e);
|
|
2333
|
-
} catch {
|
|
2334
|
-
return;
|
|
2335
|
-
}
|
|
2336
|
-
}, Q = (e) => {
|
|
2337
|
-
let t = ir(e);
|
|
2338
|
-
if (t === void 0) return [];
|
|
2339
|
-
let n = t.$defs ?? {}, r = Z(t, n), i = r.properties;
|
|
2340
|
-
return i ? rr(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
|
|
2341
|
-
}, ar = (e) => {
|
|
2342
|
-
let t = ir(e);
|
|
2343
|
-
if (t === void 0) return [];
|
|
2344
|
-
let n = t.$defs ?? {}, r = Z(t, n);
|
|
2345
|
-
if (r.type !== "array") return [];
|
|
2346
|
-
let i = r.items;
|
|
2347
|
-
if (!i || typeof i != "object") return [];
|
|
2348
|
-
let a = Z(i, n), o = a.properties;
|
|
2349
|
-
return o ? rr(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
|
|
2350
|
-
}, or = (e, t) => {
|
|
2351
|
-
let n = b.decodeUnknownEither(e, { errors: "all" })(t);
|
|
2352
|
-
if (n._tag === "Right") return {
|
|
2353
|
-
valid: !0,
|
|
2354
|
-
errors: {}
|
|
2355
|
-
};
|
|
2356
|
-
let r = {};
|
|
2357
|
-
for (let e of E.formatErrorSync(n.left)) {
|
|
2358
|
-
let t = e.path.length === 0 ? "" : String(e.path[0]);
|
|
2359
|
-
t !== "" && !(t in r) && (r[t] = e.message);
|
|
2360
|
-
}
|
|
2361
|
-
return {
|
|
2362
|
-
valid: !1,
|
|
2363
|
-
errors: r
|
|
2364
|
-
};
|
|
2365
|
-
}, sr = (e, t, r) => {
|
|
2366
|
-
let i = N(e), a = K(e, t), l = r.schema ?? i.descriptors[t]?.input;
|
|
2367
|
-
process.env.NODE_ENV !== "production" && l === void 0 && console.error(`[@voltro/client] useFormBinding('${e}', '${t}'): no input schema. Pass options.schema, or mount the descriptor so its input reaches the client. Rendering no fields; submit skips client-side validation.`);
|
|
2368
|
-
let u = o(() => l ? Q(l) : [], [l]), d = s(r.defaults ?? {}), [f, p] = c(d.current), [m, h] = c({}), g = n((e, t) => {
|
|
2252
|
+
}, tr = (e, t) => {
|
|
2253
|
+
let { errorBus: n } = I(e);
|
|
2254
|
+
m(() => n.on(t), [n, t]);
|
|
2255
|
+
}, nr = (e, t) => {
|
|
2256
|
+
let n = globalThis, r = Symbol.for(`@voltro/web/context:${e}`), i = n[r];
|
|
2257
|
+
if (i) return i;
|
|
2258
|
+
let a = l(t);
|
|
2259
|
+
return n[r] = a, a;
|
|
2260
|
+
}, rr = nr("serverRequest", null), ir = () => f(rr), ar = ({ value: e, children: t }) => /* @__PURE__ */ ae(rr.Provider, {
|
|
2261
|
+
value: e,
|
|
2262
|
+
children: t
|
|
2263
|
+
}), or = (e) => {
|
|
2264
|
+
let t = ir();
|
|
2265
|
+
return h(() => {
|
|
2266
|
+
if (t !== null) return t.formFlash?.formKey === e ? t.formFlash : void 0;
|
|
2267
|
+
if (typeof document > "u") return;
|
|
2268
|
+
let n = document.getElementById(c);
|
|
2269
|
+
if (n !== null && n.textContent !== null && n.textContent !== "") try {
|
|
2270
|
+
let t = JSON.parse(n.textContent);
|
|
2271
|
+
return t.formKey === e ? t : void 0;
|
|
2272
|
+
} catch {
|
|
2273
|
+
return;
|
|
2274
|
+
}
|
|
2275
|
+
}, [t, e]);
|
|
2276
|
+
}, sr = (e, t, n) => {
|
|
2277
|
+
let i = I(e), a = Y(e, t), o = n.schema ?? i.descriptors[t]?.input;
|
|
2278
|
+
process.env.NODE_ENV !== "production" && o === void 0 && console.error(`[@voltro/client] useFormBinding('${e}', '${t}'): no input schema. Pass options.schema, or mount the descriptor so its input reaches the client. Rendering no fields; submit skips client-side validation.`);
|
|
2279
|
+
let c = h(() => o ? r(o) : [], [o]), l = g((() => {
|
|
2280
|
+
let e = { ...n.defaults ?? {} };
|
|
2281
|
+
if (o !== void 0) for (let t of r(o)) (t.widget === "checkbox" || t.widget === "switch") && !(t.name in e) && (e[t.name] = !1);
|
|
2282
|
+
return e;
|
|
2283
|
+
})()), u = g(n.flash), [f, p] = _(u.current === void 0 ? l.current : {
|
|
2284
|
+
...l.current,
|
|
2285
|
+
...u.current.values
|
|
2286
|
+
}), [m, v] = _(u.current?.errors ?? {}), [y, b] = _(u.current?.formError), x = d((e, t) => {
|
|
2369
2287
|
p((n) => ({
|
|
2370
2288
|
...n,
|
|
2371
2289
|
[e]: t
|
|
2372
2290
|
}));
|
|
2373
|
-
}, []),
|
|
2291
|
+
}, []), S = d((e) => {
|
|
2374
2292
|
p((t) => ({
|
|
2375
2293
|
...t,
|
|
2376
2294
|
...e
|
|
2377
2295
|
}));
|
|
2378
|
-
}, []),
|
|
2379
|
-
p(
|
|
2380
|
-
}, []),
|
|
2381
|
-
if (
|
|
2382
|
-
let e =
|
|
2383
|
-
if (
|
|
2296
|
+
}, []), C = d(() => {
|
|
2297
|
+
p(l.current), v({}), b(void 0);
|
|
2298
|
+
}, []), w = d(async () => {
|
|
2299
|
+
if (b(void 0), o !== void 0) {
|
|
2300
|
+
let e = s(o, f);
|
|
2301
|
+
if (v(e.errors), !e.valid) return;
|
|
2384
2302
|
}
|
|
2385
2303
|
return a.mutate(f);
|
|
2386
2304
|
}, [
|
|
2387
|
-
|
|
2305
|
+
o,
|
|
2388
2306
|
f,
|
|
2389
2307
|
a
|
|
2390
2308
|
]);
|
|
2391
2309
|
return {
|
|
2392
|
-
fields:
|
|
2310
|
+
fields: c,
|
|
2393
2311
|
values: f,
|
|
2394
2312
|
errors: m,
|
|
2395
|
-
isValid:
|
|
2313
|
+
isValid: h(() => o === void 0 || s(o, f).valid, [o, f]),
|
|
2396
2314
|
pending: a.pending,
|
|
2397
2315
|
submitError: a.error,
|
|
2316
|
+
formError: y,
|
|
2398
2317
|
data: a.data,
|
|
2399
|
-
setValue:
|
|
2400
|
-
setValues:
|
|
2401
|
-
reset:
|
|
2402
|
-
submit:
|
|
2318
|
+
setValue: x,
|
|
2319
|
+
setValues: S,
|
|
2320
|
+
reset: C,
|
|
2321
|
+
submit: w
|
|
2403
2322
|
};
|
|
2404
2323
|
}, cr = (e, t, n) => e.map((e) => {
|
|
2405
2324
|
let r = String(e[n] ?? ""), i = e[t];
|
|
@@ -2407,36 +2326,36 @@ var tn = () => {
|
|
|
2407
2326
|
value: r,
|
|
2408
2327
|
label: i == null ? r : String(i)
|
|
2409
2328
|
};
|
|
2410
|
-
}), lr = (e, t,
|
|
2411
|
-
let
|
|
2412
|
-
|
|
2413
|
-
if (
|
|
2414
|
-
let e = setTimeout(() =>
|
|
2329
|
+
}), lr = (e, t, n = {}) => {
|
|
2330
|
+
let r = n.debounceMs ?? 200, i = n.labelField ?? "name", a = n.valueField ?? "id", o = n.input ?? ((e) => ({ q: e })), [s, c] = _(n.initialTerm ?? ""), [l, u] = _(s);
|
|
2331
|
+
m(() => {
|
|
2332
|
+
if (s === l) return;
|
|
2333
|
+
let e = setTimeout(() => u(s), r);
|
|
2415
2334
|
return () => clearTimeout(e);
|
|
2416
2335
|
}, [
|
|
2417
|
-
d,
|
|
2418
|
-
p,
|
|
2419
|
-
i
|
|
2420
|
-
]);
|
|
2421
|
-
let h = r.skipUntilTerm === !0 && p.trim() === "", g = V(e, t, o(() => u(p), [u, p]), { skip: h }), _ = o(() => cr(g.data ?? [], s, l), [
|
|
2422
|
-
g.data,
|
|
2423
2336
|
s,
|
|
2424
|
-
l
|
|
2425
|
-
|
|
2337
|
+
l,
|
|
2338
|
+
r
|
|
2339
|
+
]);
|
|
2340
|
+
let f = n.skipUntilTerm === !0 && l.trim() === "", p = W(e, t, h(() => o(l), [o, l]), { skip: f }), g = h(() => cr(p.data ?? [], i, a), [
|
|
2341
|
+
p.data,
|
|
2342
|
+
i,
|
|
2343
|
+
a
|
|
2344
|
+
]), v = d((e) => c(e), []);
|
|
2426
2345
|
return {
|
|
2427
|
-
options:
|
|
2428
|
-
loading: !
|
|
2429
|
-
term:
|
|
2346
|
+
options: g,
|
|
2347
|
+
loading: !f && p.data === void 0,
|
|
2348
|
+
term: s,
|
|
2430
2349
|
search: v
|
|
2431
2350
|
};
|
|
2432
|
-
}, ur = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, dr = (e,
|
|
2433
|
-
let i =
|
|
2351
|
+
}, ur = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, dr = (e, n, r = {}) => {
|
|
2352
|
+
let i = I(e), [a, o] = _(r.pageSize), s = W(e, n, h(() => a === void 0 ? r.input ?? {} : {
|
|
2434
2353
|
...r.input,
|
|
2435
2354
|
limit: a
|
|
2436
|
-
}, [r.input, a])),
|
|
2437
|
-
r.pageSize !== void 0 &&
|
|
2438
|
-
}, [r.pageSize]),
|
|
2439
|
-
|
|
2355
|
+
}, [r.input, a])), c = i.descriptors[n]?.output, l = d(() => {
|
|
2356
|
+
r.pageSize !== void 0 && o((e) => (e ?? r.pageSize) + r.pageSize);
|
|
2357
|
+
}, [r.pageSize]), u = h(() => r.columns ?? (c === void 0 ? [] : t(c)), [r.columns, c]), [f, p] = _(r.initialSort), m = d((e) => {
|
|
2358
|
+
p((t) => t?.column === e ? {
|
|
2440
2359
|
column: e,
|
|
2441
2360
|
direction: t.direction === "asc" ? "desc" : "asc"
|
|
2442
2361
|
} : {
|
|
@@ -2445,19 +2364,19 @@ var tn = () => {
|
|
|
2445
2364
|
});
|
|
2446
2365
|
}, []);
|
|
2447
2366
|
return {
|
|
2448
|
-
columns:
|
|
2449
|
-
rows:
|
|
2450
|
-
let e =
|
|
2451
|
-
if (
|
|
2452
|
-
let t =
|
|
2453
|
-
return [...e].sort((e, n) => ur(e[
|
|
2454
|
-
}, [
|
|
2455
|
-
loading:
|
|
2456
|
-
error:
|
|
2457
|
-
sort:
|
|
2458
|
-
toggleSort:
|
|
2459
|
-
loadMore:
|
|
2460
|
-
hasMore: a !== void 0 && (
|
|
2367
|
+
columns: u,
|
|
2368
|
+
rows: h(() => {
|
|
2369
|
+
let e = s.data ?? [];
|
|
2370
|
+
if (f === void 0) return e;
|
|
2371
|
+
let t = f.direction === "asc" ? 1 : -1;
|
|
2372
|
+
return [...e].sort((e, n) => ur(e[f.column], n[f.column]) * t);
|
|
2373
|
+
}, [s.data, f]),
|
|
2374
|
+
loading: s.data === void 0,
|
|
2375
|
+
error: s.error,
|
|
2376
|
+
sort: f,
|
|
2377
|
+
toggleSort: m,
|
|
2378
|
+
loadMore: l,
|
|
2379
|
+
hasMore: a !== void 0 && (s.data?.length ?? 0) >= a
|
|
2461
2380
|
};
|
|
2462
2381
|
}, fr = (e, t, n, r) => {
|
|
2463
2382
|
let i = e.replace(/\/$/, ""), a = new URLSearchParams({
|
|
@@ -2466,14 +2385,14 @@ var tn = () => {
|
|
|
2466
2385
|
});
|
|
2467
2386
|
return r !== void 0 && a.set("column", r), `${i}/_voltro/inspect/provenance?${a.toString()}`;
|
|
2468
2387
|
}, pr = fr, mr = (e, t, n, r) => {
|
|
2469
|
-
let { inspectBaseUrl: i } =
|
|
2388
|
+
let { inspectBaseUrl: i } = I(e), [a, o] = _({
|
|
2470
2389
|
data: void 0,
|
|
2471
2390
|
loading: !0,
|
|
2472
2391
|
error: void 0
|
|
2473
2392
|
});
|
|
2474
|
-
return
|
|
2393
|
+
return m(() => {
|
|
2475
2394
|
let e = !1;
|
|
2476
|
-
|
|
2395
|
+
o({
|
|
2477
2396
|
data: void 0,
|
|
2478
2397
|
loading: !0,
|
|
2479
2398
|
error: void 0
|
|
@@ -2483,13 +2402,13 @@ var tn = () => {
|
|
|
2483
2402
|
if (!e.ok) throw Error(`provenance fetch failed: HTTP ${e.status}`);
|
|
2484
2403
|
return await e.json();
|
|
2485
2404
|
}).then((t) => {
|
|
2486
|
-
e ||
|
|
2405
|
+
e || o({
|
|
2487
2406
|
data: t,
|
|
2488
2407
|
loading: !1,
|
|
2489
2408
|
error: void 0
|
|
2490
2409
|
});
|
|
2491
2410
|
}).catch((t) => {
|
|
2492
|
-
e ||
|
|
2411
|
+
e || o({
|
|
2493
2412
|
data: void 0,
|
|
2494
2413
|
loading: !1,
|
|
2495
2414
|
error: t
|
|
@@ -2503,24 +2422,24 @@ var tn = () => {
|
|
|
2503
2422
|
t,
|
|
2504
2423
|
n,
|
|
2505
2424
|
r
|
|
2506
|
-
]),
|
|
2507
|
-
}, hr = "admin:full", gr = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), _r = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), vr =
|
|
2425
|
+
]), a;
|
|
2426
|
+
}, hr = "admin:full", gr = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), _r = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), vr = l({ scopes: [] });
|
|
2508
2427
|
function yr(e) {
|
|
2509
|
-
return
|
|
2428
|
+
return u(vr.Provider, { value: { scopes: e.scopes } }, e.children);
|
|
2510
2429
|
}
|
|
2511
|
-
var
|
|
2512
|
-
let { inspectBaseUrl: t } =
|
|
2430
|
+
var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes, e), Cr = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, wr = (e) => {
|
|
2431
|
+
let { inspectBaseUrl: t } = I(e), [n, r] = _({
|
|
2513
2432
|
manifest: void 0,
|
|
2514
2433
|
loading: !0,
|
|
2515
2434
|
error: void 0
|
|
2516
2435
|
});
|
|
2517
|
-
return
|
|
2436
|
+
return m(() => {
|
|
2518
2437
|
let e = !1;
|
|
2519
2438
|
return r({
|
|
2520
2439
|
manifest: void 0,
|
|
2521
2440
|
loading: !0,
|
|
2522
2441
|
error: void 0
|
|
2523
|
-
}), fetch(
|
|
2442
|
+
}), fetch(Cr(t ?? "")).then(async (e) => {
|
|
2524
2443
|
if (!e.ok) throw Error(`manifest fetch failed: HTTP ${e.status}`);
|
|
2525
2444
|
return await e.json();
|
|
2526
2445
|
}).then((t) => {
|
|
@@ -2539,7 +2458,7 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2539
2458
|
e = !0;
|
|
2540
2459
|
};
|
|
2541
2460
|
}, [e, t]), n;
|
|
2542
|
-
},
|
|
2461
|
+
}, Tr = (e, t) => t.scope.length === 0 || (t.mode === "any" ? t.scope.some((t) => e.includes(t)) : t.scope.every((t) => e.includes(t))), Er = (e, t) => {
|
|
2543
2462
|
if (e === void 0) return "unknown";
|
|
2544
2463
|
if (t.includes("admin:full") || e.length === 0) return "allowed";
|
|
2545
2464
|
let n = !1;
|
|
@@ -2548,7 +2467,7 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2548
2467
|
n = !0;
|
|
2549
2468
|
continue;
|
|
2550
2469
|
}
|
|
2551
|
-
if (!
|
|
2470
|
+
if (!Tr(t, r)) {
|
|
2552
2471
|
if (r.resourceScoped) {
|
|
2553
2472
|
n = !0;
|
|
2554
2473
|
continue;
|
|
@@ -2557,13 +2476,13 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2557
2476
|
}
|
|
2558
2477
|
}
|
|
2559
2478
|
return n ? "unknown" : "allowed";
|
|
2560
|
-
},
|
|
2479
|
+
}, Dr = (e) => (e ?? []).flatMap((e) => e.kind === "scope" ? [...e.scope] : []), Or = (e) => {
|
|
2561
2480
|
for (let t of e ?? []) if (t.kind === "open") return t.reason;
|
|
2562
|
-
},
|
|
2481
|
+
}, kr = (e) => Er(e, br().scopes), Ar = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, jr = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, Mr = (e) => e === void 0 ? {} : {
|
|
2563
2482
|
tag: e.tag,
|
|
2564
2483
|
...e.guards === void 0 ? {} : { guards: e.guards }
|
|
2565
|
-
},
|
|
2566
|
-
let n = e.procedures.find((e) => e.kind === "query" &&
|
|
2484
|
+
}, Nr = (e) => e.tables.filter((e) => !e.framework).map((t) => {
|
|
2485
|
+
let n = e.procedures.find((e) => e.kind === "query" && Ar(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && jr(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && jr(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && jr(e, t.name, "delete")), o = t.pkColumn ?? (t.columns.some((e) => e.name === "id") ? "id" : void 0);
|
|
2567
2486
|
return {
|
|
2568
2487
|
table: t.name,
|
|
2569
2488
|
columns: t.columns.filter((e) => e.serverOnly !== !0),
|
|
@@ -2572,75 +2491,75 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2572
2491
|
reactive: t.reactive,
|
|
2573
2492
|
...o === void 0 ? {} : { pkColumn: o },
|
|
2574
2493
|
editable: (t.editable ?? !0) && o !== void 0,
|
|
2575
|
-
list:
|
|
2576
|
-
create:
|
|
2577
|
-
update:
|
|
2578
|
-
delete:
|
|
2494
|
+
list: Mr(n),
|
|
2495
|
+
create: Mr(r),
|
|
2496
|
+
update: Mr(i),
|
|
2497
|
+
delete: Mr(a)
|
|
2579
2498
|
};
|
|
2580
|
-
}),
|
|
2581
|
-
let [t,
|
|
2582
|
-
|
|
2583
|
-
}, []),
|
|
2584
|
-
let
|
|
2585
|
-
|
|
2586
|
-
}, [t, e]),
|
|
2587
|
-
let t =
|
|
2588
|
-
t !== void 0 && (await e.onRedo(t.invocationId),
|
|
2589
|
-
}, [
|
|
2590
|
-
return
|
|
2499
|
+
}), Pr = (e) => {
|
|
2500
|
+
let [t, n] = _([]), [r, i] = _([]), a = d((e) => {
|
|
2501
|
+
n((t) => [...t, e]), i([]);
|
|
2502
|
+
}, []), o = d(async () => {
|
|
2503
|
+
let r = t[t.length - 1];
|
|
2504
|
+
r !== void 0 && r.blockedBy === void 0 && (await e.onUndo(r.invocationId), n((e) => e.slice(0, -1)), i((e) => [...e, r]));
|
|
2505
|
+
}, [t, e]), s = d(async () => {
|
|
2506
|
+
let t = r[r.length - 1];
|
|
2507
|
+
t !== void 0 && (await e.onRedo(t.invocationId), i((e) => e.slice(0, -1)), n((e) => [...e, t]));
|
|
2508
|
+
}, [r, e]);
|
|
2509
|
+
return h(() => {
|
|
2591
2510
|
let e = t[t.length - 1];
|
|
2592
2511
|
return {
|
|
2593
|
-
record:
|
|
2594
|
-
undo:
|
|
2595
|
-
redo:
|
|
2512
|
+
record: a,
|
|
2513
|
+
undo: o,
|
|
2514
|
+
redo: s,
|
|
2596
2515
|
canUndo: t.length > 0 && e?.blockedBy === void 0,
|
|
2597
|
-
canRedo:
|
|
2516
|
+
canRedo: r.length > 0,
|
|
2598
2517
|
stack: t,
|
|
2599
2518
|
nextBlockedBy: e?.blockedBy
|
|
2600
2519
|
};
|
|
2601
2520
|
}, [
|
|
2602
2521
|
t,
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2522
|
+
r,
|
|
2523
|
+
a,
|
|
2524
|
+
o,
|
|
2525
|
+
s
|
|
2607
2526
|
]);
|
|
2608
|
-
},
|
|
2609
|
-
let
|
|
2527
|
+
}, Fr = "__voltro.undo.log", Ir = "__voltro.undo.apply", Lr = "__voltro.undo.redo", Rr = (e, t) => {
|
|
2528
|
+
let n = t?.limit, { data: r } = W(e, Fr, n === void 0 ? {} : { limit: n }), i = Y(e, Ir), a = Y(e, Lr), o = r ?? [], s = o.find((e) => !e.undone && !e.crossesAction), c = o.find((e) => e.undone), l = d(async (e) => {
|
|
2529
|
+
await i.mutate({ invocationId: e });
|
|
2530
|
+
}, [i]), u = d(async (e) => {
|
|
2610
2531
|
await a.mutate({ invocationId: e });
|
|
2611
|
-
}, [a]),
|
|
2612
|
-
await
|
|
2613
|
-
}, [
|
|
2532
|
+
}, [a]), f = d(async () => {
|
|
2533
|
+
s && await l(s.id);
|
|
2534
|
+
}, [s, l]), p = d(async () => {
|
|
2614
2535
|
c && await u(c.id);
|
|
2615
|
-
}, [c, u])
|
|
2616
|
-
l && await d(l.id);
|
|
2617
|
-
}, [l, d]);
|
|
2536
|
+
}, [c, u]);
|
|
2618
2537
|
return {
|
|
2619
|
-
entries:
|
|
2620
|
-
loading:
|
|
2621
|
-
canUndo:
|
|
2622
|
-
canRedo:
|
|
2623
|
-
undo:
|
|
2624
|
-
redo:
|
|
2538
|
+
entries: o,
|
|
2539
|
+
loading: r === void 0,
|
|
2540
|
+
canUndo: s !== void 0,
|
|
2541
|
+
canRedo: c !== void 0,
|
|
2542
|
+
undo: l,
|
|
2543
|
+
redo: u,
|
|
2625
2544
|
undoLast: f,
|
|
2626
2545
|
redoLast: p
|
|
2627
2546
|
};
|
|
2628
|
-
},
|
|
2547
|
+
}, zr = (e, t) => ({
|
|
2629
2548
|
name: e,
|
|
2630
2549
|
map: t
|
|
2631
|
-
}),
|
|
2550
|
+
}), Br = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), Vr = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), Hr = (e, t, n) => {
|
|
2632
2551
|
let r = { ...t };
|
|
2633
2552
|
for (let [i, a] of Object.entries(e.map)) {
|
|
2634
|
-
if (
|
|
2553
|
+
if (Vr.has(i) || a === void 0) continue;
|
|
2635
2554
|
let e = t[i];
|
|
2636
2555
|
r[i] = (...r) => {
|
|
2637
|
-
let i =
|
|
2556
|
+
let i = Br(a, t);
|
|
2638
2557
|
if (i !== null && n(i), typeof e == "function") return e(...r);
|
|
2639
2558
|
};
|
|
2640
2559
|
}
|
|
2641
2560
|
return r;
|
|
2642
|
-
},
|
|
2643
|
-
let r =
|
|
2561
|
+
}, Ur = (e, t, n) => {
|
|
2562
|
+
let r = g({
|
|
2644
2563
|
spec: e,
|
|
2645
2564
|
props: t,
|
|
2646
2565
|
sink: n
|
|
@@ -2649,47 +2568,47 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2649
2568
|
spec: e,
|
|
2650
2569
|
props: t,
|
|
2651
2570
|
sink: n
|
|
2652
|
-
},
|
|
2653
|
-
let e = r.current, t =
|
|
2571
|
+
}, m(() => {
|
|
2572
|
+
let e = r.current, t = Br(e.spec.map.onMount, e.props);
|
|
2654
2573
|
return t !== null && e.sink(t), () => {
|
|
2655
|
-
let e = r.current, t =
|
|
2574
|
+
let e = r.current, t = Br(e.spec.map.onUnmount, e.props);
|
|
2656
2575
|
t !== null && e.sink(t);
|
|
2657
2576
|
};
|
|
2658
|
-
}, []),
|
|
2577
|
+
}, []), h(() => Hr(e, t, n), [
|
|
2659
2578
|
e,
|
|
2660
2579
|
t,
|
|
2661
2580
|
n
|
|
2662
2581
|
]);
|
|
2663
|
-
}, Ur = (e, t) => {
|
|
2664
|
-
let n = N(e).descriptors[t]?.input;
|
|
2665
|
-
return o(() => n === void 0 ? [] : Q(n), [n]);
|
|
2666
2582
|
}, Wr = (e, t) => {
|
|
2667
|
-
let n =
|
|
2668
|
-
return
|
|
2669
|
-
}, Gr = (e,
|
|
2583
|
+
let n = I(e).descriptors[t]?.input;
|
|
2584
|
+
return h(() => n === void 0 ? [] : r(n), [n]);
|
|
2585
|
+
}, Gr = (e, n) => {
|
|
2586
|
+
let r = I(e).descriptors[n]?.output;
|
|
2587
|
+
return h(() => r === void 0 ? [] : t(r), [r]);
|
|
2588
|
+
}, Kr = (e, t) => {
|
|
2670
2589
|
if (e === t) return !0;
|
|
2671
2590
|
if (e.length !== t.length) return !1;
|
|
2672
2591
|
for (let n = 0; n < e.length; n += 1) if (!Object.is(e[n], t[n])) return !1;
|
|
2673
2592
|
return !0;
|
|
2674
|
-
},
|
|
2675
|
-
let n =
|
|
2676
|
-
return (n.current === null || !
|
|
2593
|
+
}, qr = (e) => Object.keys(e).sort().map((t) => e[t]), Jr = (e, t) => {
|
|
2594
|
+
let n = g(null), r = qr(e);
|
|
2595
|
+
return (n.current === null || !Kr(n.current.key, r)) && (n.current = {
|
|
2677
2596
|
key: r,
|
|
2678
2597
|
value: t(e)
|
|
2679
2598
|
}), n.current.value;
|
|
2680
|
-
},
|
|
2681
|
-
let i =
|
|
2682
|
-
return
|
|
2599
|
+
}, Yr = (e, t, n, r = {}) => {
|
|
2600
|
+
let i = W(e, t, { ...n }, r);
|
|
2601
|
+
return h(() => ({
|
|
2683
2602
|
allowed: i.data?.allowed === !0,
|
|
2684
2603
|
pending: i.data === void 0
|
|
2685
2604
|
}), [i.data]);
|
|
2686
|
-
},
|
|
2687
|
-
let i =
|
|
2688
|
-
return
|
|
2605
|
+
}, Xr = (e, t, n, r = {}) => {
|
|
2606
|
+
let i = W(e, t, { ...n }, r);
|
|
2607
|
+
return h(() => ({
|
|
2689
2608
|
allowedIds: new Set(i.data?.allowedIds ?? []),
|
|
2690
2609
|
pending: i.data === void 0
|
|
2691
2610
|
}), [i.data]);
|
|
2692
|
-
},
|
|
2611
|
+
}, Zr = (e) => {
|
|
2693
2612
|
switch (e) {
|
|
2694
2613
|
case "select":
|
|
2695
2614
|
case "radio":
|
|
@@ -2705,49 +2624,49 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2705
2624
|
case "switch": return "boolean";
|
|
2706
2625
|
default: return null;
|
|
2707
2626
|
}
|
|
2708
|
-
},
|
|
2709
|
-
let t =
|
|
2627
|
+
}, Qr = (e) => r(e).map((e) => {
|
|
2628
|
+
let t = Zr(e.widget);
|
|
2710
2629
|
return t === null ? null : {
|
|
2711
2630
|
name: e.name,
|
|
2712
2631
|
label: e.label,
|
|
2713
2632
|
kind: t,
|
|
2714
2633
|
...e.options ? { options: e.options } : {}
|
|
2715
2634
|
};
|
|
2716
|
-
}).filter((e) => e !== null),
|
|
2635
|
+
}).filter((e) => e !== null), $r = (e) => {
|
|
2717
2636
|
let t = {};
|
|
2718
2637
|
for (let [n, r] of Object.entries(e)) r === void 0 || r === "" || Array.isArray(r) && r.length === 0 || (t[n] = r);
|
|
2719
2638
|
return t;
|
|
2720
|
-
},
|
|
2721
|
-
let
|
|
2722
|
-
|
|
2639
|
+
}, ei = (e, t, n = {}) => {
|
|
2640
|
+
let r = I(e).descriptors[t]?.input, i = h(() => r === void 0 ? [] : Qr(r), [r]), [a, o] = _(n.initial ?? {}), s = d((e, t) => {
|
|
2641
|
+
o((n) => $r({
|
|
2723
2642
|
...n,
|
|
2724
2643
|
[e]: t
|
|
2725
2644
|
}));
|
|
2726
|
-
}, []),
|
|
2645
|
+
}, []), c = d(() => o({}), []), l = W(e, t, h(() => $r(a), [a]));
|
|
2727
2646
|
return {
|
|
2728
|
-
filters:
|
|
2729
|
-
values:
|
|
2730
|
-
setFilter:
|
|
2731
|
-
clear:
|
|
2732
|
-
rows:
|
|
2733
|
-
count:
|
|
2734
|
-
loading:
|
|
2735
|
-
error:
|
|
2647
|
+
filters: i,
|
|
2648
|
+
values: a,
|
|
2649
|
+
setFilter: s,
|
|
2650
|
+
clear: c,
|
|
2651
|
+
rows: l.data ?? [],
|
|
2652
|
+
count: l.data?.length,
|
|
2653
|
+
loading: l.data === void 0,
|
|
2654
|
+
error: l.error
|
|
2736
2655
|
};
|
|
2737
|
-
},
|
|
2738
|
-
let r =
|
|
2656
|
+
}, ti = (e, t, n = {}) => {
|
|
2657
|
+
let r = W(e, t, n), i = r.data;
|
|
2739
2658
|
return {
|
|
2740
2659
|
record: Array.isArray(i) ? i[0] : i,
|
|
2741
2660
|
loading: i === void 0,
|
|
2742
2661
|
error: r.error
|
|
2743
2662
|
};
|
|
2744
|
-
},
|
|
2745
|
-
let [n, r] =
|
|
2746
|
-
return
|
|
2663
|
+
}, ni = (e, t = 300) => {
|
|
2664
|
+
let [n, r] = _(e);
|
|
2665
|
+
return m(() => {
|
|
2747
2666
|
let n = setTimeout(() => r(e), t);
|
|
2748
2667
|
return () => clearTimeout(n);
|
|
2749
2668
|
}, [e, t]), n;
|
|
2750
|
-
},
|
|
2669
|
+
}, ri = (e) => {
|
|
2751
2670
|
let { value: t, debouncedValue: n, data: r, interpret: i, skipEmpty: a = !0 } = e;
|
|
2752
2671
|
if (a && t.trim() === "") return {
|
|
2753
2672
|
status: "idle",
|
|
@@ -2765,39 +2684,39 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2765
2684
|
valid: o.valid,
|
|
2766
2685
|
message: o.message
|
|
2767
2686
|
};
|
|
2768
|
-
},
|
|
2769
|
-
let { input: i, interpret: a, debounceMs:
|
|
2770
|
-
return
|
|
2687
|
+
}, ii = (e, t, n, r) => {
|
|
2688
|
+
let { input: i, interpret: a, debounceMs: o = 300, skipEmpty: s = !0 } = r, c = ni(n, o), l = s && c.trim() === "", u = W(e, t, h(() => i ? i(c) : { value: c }, [i, c]), { skip: l });
|
|
2689
|
+
return ri({
|
|
2771
2690
|
value: n,
|
|
2772
|
-
debouncedValue:
|
|
2773
|
-
data:
|
|
2691
|
+
debouncedValue: c,
|
|
2692
|
+
data: l ? null : u.data,
|
|
2774
2693
|
interpret: a,
|
|
2775
|
-
skipEmpty:
|
|
2694
|
+
skipEmpty: s
|
|
2776
2695
|
});
|
|
2777
|
-
},
|
|
2696
|
+
}, ai = (e, t) => ({
|
|
2778
2697
|
name: e,
|
|
2779
2698
|
payload: t
|
|
2780
|
-
}),
|
|
2781
|
-
let n =
|
|
2699
|
+
}), oi = (e, t) => {
|
|
2700
|
+
let n = ee.decodeUnknownEither(e.payload, { errors: "all" })(t);
|
|
2782
2701
|
if (n._tag === "Right") return {
|
|
2783
2702
|
valid: !0,
|
|
2784
2703
|
errors: {}
|
|
2785
2704
|
};
|
|
2786
2705
|
let r = {};
|
|
2787
|
-
for (let e of
|
|
2706
|
+
for (let e of oe.formatErrorSync(n.left)) r[e.path.join(".") || "(root)"] = e.message;
|
|
2788
2707
|
return {
|
|
2789
2708
|
valid: !1,
|
|
2790
2709
|
errors: r
|
|
2791
2710
|
};
|
|
2792
|
-
},
|
|
2711
|
+
}, si = (e) => {
|
|
2793
2712
|
let t = new Map(e.map((e) => [e.name, e]));
|
|
2794
2713
|
return {
|
|
2795
2714
|
names: [...t.keys()].sort(),
|
|
2796
2715
|
get: (e) => t.get(e),
|
|
2797
2716
|
events: e
|
|
2798
2717
|
};
|
|
2799
|
-
},
|
|
2800
|
-
let n =
|
|
2718
|
+
}, ci = (e, t) => {
|
|
2719
|
+
let n = si(e);
|
|
2801
2720
|
return {
|
|
2802
2721
|
track: (e, r) => {
|
|
2803
2722
|
let i = n.get(e);
|
|
@@ -2806,7 +2725,7 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2806
2725
|
return;
|
|
2807
2726
|
}
|
|
2808
2727
|
if (process.env.NODE_ENV !== "production") {
|
|
2809
|
-
let t =
|
|
2728
|
+
let t = oi(i, r);
|
|
2810
2729
|
t.valid || console.error(`[@voltro/client] analytics.track('${e}'): payload failed its schema`, t.errors);
|
|
2811
2730
|
}
|
|
2812
2731
|
t({
|
|
@@ -2817,44 +2736,44 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2817
2736
|
names: n.names,
|
|
2818
2737
|
catalog: n
|
|
2819
2738
|
};
|
|
2820
|
-
},
|
|
2821
|
-
let
|
|
2739
|
+
}, li = (e, t) => {
|
|
2740
|
+
let n = X(e, t);
|
|
2822
2741
|
return {
|
|
2823
|
-
preview:
|
|
2824
|
-
diff:
|
|
2825
|
-
pending:
|
|
2826
|
-
error:
|
|
2742
|
+
preview: d((e) => n.run(e), [n]),
|
|
2743
|
+
diff: n.lastResult,
|
|
2744
|
+
pending: n.pending,
|
|
2745
|
+
error: n.error
|
|
2827
2746
|
};
|
|
2828
|
-
},
|
|
2747
|
+
}, ui = (e, t, n, r) => [...e, {
|
|
2829
2748
|
id: t,
|
|
2830
2749
|
tag: n,
|
|
2831
2750
|
input: r,
|
|
2832
2751
|
status: "pending",
|
|
2833
2752
|
attempts: 0
|
|
2834
|
-
}],
|
|
2753
|
+
}], di = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2835
2754
|
...e,
|
|
2836
2755
|
...n
|
|
2837
|
-
} : e),
|
|
2756
|
+
} : e), fi = (e, t) => di(e, t, { status: "sent" }), pi = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2838
2757
|
...e,
|
|
2839
2758
|
status: "failed",
|
|
2840
2759
|
error: n,
|
|
2841
2760
|
attempts: e.attempts + 1
|
|
2842
|
-
} : e),
|
|
2761
|
+
} : e), mi = (e, t, n) => di(e, t, {
|
|
2843
2762
|
status: "conflict",
|
|
2844
2763
|
error: n
|
|
2845
|
-
}),
|
|
2764
|
+
}), hi = (e) => e.filter((e) => e.status !== "sent"), gi = (e) => {
|
|
2846
2765
|
let t = [];
|
|
2847
2766
|
for (let n of e) {
|
|
2848
2767
|
if (n.status === "conflict") break;
|
|
2849
2768
|
(n.status === "pending" || n.status === "failed") && t.push(n);
|
|
2850
2769
|
}
|
|
2851
2770
|
return t;
|
|
2852
|
-
},
|
|
2771
|
+
}, _i = (e) => {
|
|
2853
2772
|
let t = e;
|
|
2854
2773
|
return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
|
|
2855
|
-
},
|
|
2856
|
-
let [t, n] =
|
|
2857
|
-
return
|
|
2774
|
+
}, vi = (e) => {
|
|
2775
|
+
let [t, n] = _(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
|
|
2776
|
+
return m(() => {
|
|
2858
2777
|
if (e !== void 0) {
|
|
2859
2778
|
n(e);
|
|
2860
2779
|
return;
|
|
@@ -2865,34 +2784,34 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2865
2784
|
window.removeEventListener("online", t), window.removeEventListener("offline", r);
|
|
2866
2785
|
};
|
|
2867
2786
|
}, [e]), t;
|
|
2868
|
-
},
|
|
2869
|
-
let { send: t, isConflict:
|
|
2870
|
-
|
|
2871
|
-
let
|
|
2872
|
-
let n =
|
|
2873
|
-
|
|
2874
|
-
}, [
|
|
2875
|
-
for (let e of
|
|
2876
|
-
await t(e),
|
|
2787
|
+
}, yi = (e) => {
|
|
2788
|
+
let { send: t, isConflict: n = _i, idFor: r } = e, [i, a] = _([]), o = vi(e.online), s = g(i);
|
|
2789
|
+
s.current = i;
|
|
2790
|
+
let c = g(0), l = d((e, t) => {
|
|
2791
|
+
let n = r?.() ?? `obx_${c.current++}_${e}`;
|
|
2792
|
+
a((r) => ui(r, n, e, t));
|
|
2793
|
+
}, [r]), u = d(async () => {
|
|
2794
|
+
for (let e of gi(s.current)) try {
|
|
2795
|
+
await t(e), a((t) => fi(t, e.id));
|
|
2877
2796
|
} catch (t) {
|
|
2878
|
-
if (
|
|
2879
|
-
|
|
2797
|
+
if (n(t)) {
|
|
2798
|
+
a((n) => mi(n, e.id, t));
|
|
2880
2799
|
break;
|
|
2881
2800
|
}
|
|
2882
|
-
|
|
2801
|
+
a((n) => pi(n, e.id, t));
|
|
2883
2802
|
}
|
|
2884
|
-
}, [t,
|
|
2885
|
-
return
|
|
2886
|
-
|
|
2887
|
-
}, [
|
|
2888
|
-
queue:
|
|
2889
|
-
enqueue:
|
|
2890
|
-
replay:
|
|
2891
|
-
online:
|
|
2892
|
-
pending:
|
|
2893
|
-
conflicts:
|
|
2803
|
+
}, [t, n]);
|
|
2804
|
+
return m(() => {
|
|
2805
|
+
o && u();
|
|
2806
|
+
}, [o, u]), {
|
|
2807
|
+
queue: i,
|
|
2808
|
+
enqueue: l,
|
|
2809
|
+
replay: u,
|
|
2810
|
+
online: o,
|
|
2811
|
+
pending: i.filter((e) => e.status === "pending" || e.status === "failed").length,
|
|
2812
|
+
conflicts: i.filter((e) => e.status === "conflict")
|
|
2894
2813
|
};
|
|
2895
|
-
},
|
|
2814
|
+
}, bi = (e) => {
|
|
2896
2815
|
let { scrollTop: t, viewportHeight: n, rowHeight: r, overscan: i = 5, total: a } = e, o = r > 0 ? r : 1, s = Math.max(0, Math.floor(t / o)), c = Math.ceil(n / o), l = Math.max(0, s - i), u = s + c + i, d = a === void 0 ? u : Math.min(u, a);
|
|
2897
2816
|
return {
|
|
2898
2817
|
startIndex: l,
|
|
@@ -2902,67 +2821,67 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2902
2821
|
topSpacer: l * r,
|
|
2903
2822
|
bottomSpacer: a === void 0 ? 0 : Math.max(0, (a - d) * r)
|
|
2904
2823
|
};
|
|
2905
|
-
},
|
|
2906
|
-
let { rowHeight:
|
|
2907
|
-
scrollTop:
|
|
2908
|
-
viewportHeight:
|
|
2909
|
-
rowHeight:
|
|
2910
|
-
...
|
|
2911
|
-
...
|
|
2824
|
+
}, xi = (e, t, n) => {
|
|
2825
|
+
let { rowHeight: r, viewportHeight: i, overscan: a, total: o, input: s } = n, [c, l] = _(0), u = h(() => bi({
|
|
2826
|
+
scrollTop: c,
|
|
2827
|
+
viewportHeight: i,
|
|
2828
|
+
rowHeight: r,
|
|
2829
|
+
...a === void 0 ? {} : { overscan: a },
|
|
2830
|
+
...o === void 0 ? {} : { total: o }
|
|
2912
2831
|
}), [
|
|
2913
|
-
|
|
2914
|
-
a,
|
|
2832
|
+
c,
|
|
2915
2833
|
i,
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2834
|
+
r,
|
|
2835
|
+
a,
|
|
2836
|
+
o
|
|
2837
|
+
]), f = W(e, t, h(() => ({
|
|
2838
|
+
...s,
|
|
2839
|
+
offset: u.offset,
|
|
2840
|
+
limit: u.limit
|
|
2922
2841
|
}), [
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
])),
|
|
2927
|
-
|
|
2842
|
+
s,
|
|
2843
|
+
u.offset,
|
|
2844
|
+
u.limit
|
|
2845
|
+
])), p = d((e) => {
|
|
2846
|
+
l(e.currentTarget.scrollTop);
|
|
2928
2847
|
}, []);
|
|
2929
2848
|
return {
|
|
2930
|
-
rows:
|
|
2931
|
-
window:
|
|
2932
|
-
onScroll:
|
|
2933
|
-
topSpacer:
|
|
2934
|
-
bottomSpacer:
|
|
2935
|
-
loading:
|
|
2936
|
-
error:
|
|
2849
|
+
rows: f.data ?? [],
|
|
2850
|
+
window: u,
|
|
2851
|
+
onScroll: p,
|
|
2852
|
+
topSpacer: u.topSpacer,
|
|
2853
|
+
bottomSpacer: u.bottomSpacer,
|
|
2854
|
+
loading: f.data === void 0,
|
|
2855
|
+
error: f.error
|
|
2937
2856
|
};
|
|
2938
|
-
},
|
|
2939
|
-
let { errorBus: t } =
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
}), []),
|
|
2857
|
+
}, Si = () => typeof navigator > "u" || navigator.onLine, Ci = (e) => {
|
|
2858
|
+
let { errorBus: t } = I(e), [n, r] = _(Si), [i, a] = _(0), [o, s] = _(void 0), c = g(!0);
|
|
2859
|
+
m(() => (c.current = !0, () => {
|
|
2860
|
+
c.current = !1;
|
|
2861
|
+
}), []), m(() => {
|
|
2943
2862
|
if (typeof window > "u") return;
|
|
2944
2863
|
let e = () => {
|
|
2945
|
-
|
|
2946
|
-
}, t = () =>
|
|
2864
|
+
r(!0), a(0);
|
|
2865
|
+
}, t = () => r(!1);
|
|
2947
2866
|
return window.addEventListener("online", e), window.addEventListener("offline", t), () => {
|
|
2948
2867
|
window.removeEventListener("online", e), window.removeEventListener("offline", t);
|
|
2949
2868
|
};
|
|
2950
|
-
}, []),
|
|
2869
|
+
}, []), m(() => {
|
|
2951
2870
|
if (t?.on) return t.on(() => {
|
|
2952
|
-
|
|
2871
|
+
c.current && (a((e) => e + 1), s(Date.now()));
|
|
2953
2872
|
});
|
|
2954
2873
|
}, [t]);
|
|
2955
|
-
let
|
|
2956
|
-
|
|
2874
|
+
let l = d(() => {
|
|
2875
|
+
a(0);
|
|
2957
2876
|
}, []);
|
|
2958
2877
|
return {
|
|
2959
|
-
status:
|
|
2960
|
-
online:
|
|
2961
|
-
failureCount:
|
|
2962
|
-
lastFailureAt:
|
|
2963
|
-
reportSuccess:
|
|
2878
|
+
status: n ? i > 0 ? "degraded" : "connected" : "offline",
|
|
2879
|
+
online: n,
|
|
2880
|
+
failureCount: i,
|
|
2881
|
+
lastFailureAt: o,
|
|
2882
|
+
reportSuccess: l
|
|
2964
2883
|
};
|
|
2965
|
-
},
|
|
2884
|
+
}, wi = "__voltro.connections.list", Ti = "__voltro.connections.start", Ei = "__voltro.connections.submitToken", Di = "__voltro.connections.disconnect", Oi = {
|
|
2966
2885
|
connectionId: "",
|
|
2967
2886
|
kind: "oauth2",
|
|
2968
2887
|
label: "",
|
|
@@ -2973,55 +2892,55 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2973
2892
|
expiresAt: null,
|
|
2974
2893
|
lastError: null,
|
|
2975
2894
|
connectedAt: null
|
|
2976
|
-
},
|
|
2895
|
+
}, ki = (e, t) => {
|
|
2977
2896
|
if (t === "redirect") {
|
|
2978
2897
|
globalThis.location.assign(e);
|
|
2979
2898
|
return;
|
|
2980
2899
|
}
|
|
2981
2900
|
globalThis.open(e, "voltro-connect", "width=620,height=760,menubar=no,toolbar=no") === null && globalThis.location.assign(e);
|
|
2982
|
-
},
|
|
2983
|
-
let { data: t } =
|
|
2901
|
+
}, Ai = (e) => {
|
|
2902
|
+
let { data: t } = W(e, wi, {}), n = X(e, Ti), r = Y(e, Ei), i = Y(e, Di), a = t ?? [], o = n.pending || r.pending || i.pending, s = d((e) => ({
|
|
2984
2903
|
...e,
|
|
2985
2904
|
connected: e.status === "connected",
|
|
2986
2905
|
needsAttention: e.status === "expired" || e.status === "revoked" || e.status === "error",
|
|
2987
|
-
pending:
|
|
2906
|
+
pending: o,
|
|
2988
2907
|
connect: async (t) => {
|
|
2989
2908
|
if (e.kind !== "oauth2") throw Error(`connection "${e.connectionId}" is a personal-access-token connection — call submitToken(token), not connect().`);
|
|
2990
|
-
let
|
|
2991
|
-
|
|
2909
|
+
let r = t?.redirectTo ?? `${globalThis.location.pathname}${globalThis.location.search}`;
|
|
2910
|
+
ki((await n.run({
|
|
2992
2911
|
connectionId: e.connectionId,
|
|
2993
|
-
redirectTo:
|
|
2912
|
+
redirectTo: r
|
|
2994
2913
|
})).authorizeUrl, t?.mode);
|
|
2995
2914
|
},
|
|
2996
2915
|
submitToken: async (t) => {
|
|
2997
2916
|
if (e.kind !== "pat") throw Error(`connection "${e.connectionId}" uses OAuth — call connect(), not submitToken().`);
|
|
2998
|
-
await
|
|
2917
|
+
await r.mutate({
|
|
2999
2918
|
connectionId: e.connectionId,
|
|
3000
2919
|
token: t
|
|
3001
2920
|
});
|
|
3002
2921
|
},
|
|
3003
2922
|
disconnect: async () => {
|
|
3004
|
-
await
|
|
2923
|
+
await i.mutate({ connectionId: e.connectionId });
|
|
3005
2924
|
}
|
|
3006
2925
|
}), [
|
|
3007
|
-
|
|
2926
|
+
o,
|
|
2927
|
+
n,
|
|
3008
2928
|
r,
|
|
3009
|
-
i
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
}, [o, c]);
|
|
2929
|
+
i
|
|
2930
|
+
]), c = d((e) => {
|
|
2931
|
+
let t = a.find((t) => t.connectionId === e);
|
|
2932
|
+
return t === void 0 ? void 0 : s(t);
|
|
2933
|
+
}, [a, s]);
|
|
3015
2934
|
return {
|
|
3016
|
-
connections:
|
|
2935
|
+
connections: a,
|
|
3017
2936
|
loading: t === void 0,
|
|
3018
|
-
get:
|
|
3019
|
-
pending:
|
|
2937
|
+
get: c,
|
|
2938
|
+
pending: o
|
|
3020
2939
|
};
|
|
3021
|
-
},
|
|
3022
|
-
let n =
|
|
3023
|
-
return
|
|
3024
|
-
...
|
|
2940
|
+
}, ji = (e, t) => {
|
|
2941
|
+
let n = Ai(e), r = n.get(t);
|
|
2942
|
+
return h(() => r === void 0 ? {
|
|
2943
|
+
...Oi,
|
|
3025
2944
|
connectionId: t,
|
|
3026
2945
|
label: t,
|
|
3027
2946
|
connected: !1,
|
|
@@ -3046,6 +2965,6 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
3046
2965
|
n.loading,
|
|
3047
2966
|
n.pending
|
|
3048
2967
|
]);
|
|
3049
|
-
},
|
|
2968
|
+
}, Mi = "framework-client";
|
|
3050
2969
|
//#endregion
|
|
3051
|
-
export { hr as ADMIN_SCOPE,
|
|
2970
|
+
export { hr as ADMIN_SCOPE, Mi as CLIENT_NAME, wi as CONNECTIONS_LIST_TAG, Di as CONNECTION_DISCONNECT_TAG, Ti as CONNECTION_START_TAG, Ei as CONNECTION_SUBMIT_TOKEN_TAG, c as FORM_FLASH_SCRIPT_ID, i as FORM_KEY_FIELD, o as FORM_PATH_PREFIX, n as FORM_REDIRECT_FIELD, Se as FrameworkRuntimesContext, Fe as FrameworkRuntimesProvider, be as LoadingSubscriptionCache, yr as PermissionProvider, xe as RpcErrorBus, rr as ServerRequestContext, ar as ServerRequestProvider, ye as SubscriptionCache, Ir as UNDO_APPLY_TAG, Fr as UNDO_LOG_TAG, Lr as UNDO_REDO_TAG, De as _resetFrameworkRuntimesWarning, Qt as applyPreloadSeeds, _t as applyStoreSeeds, ke as buildApiRuntime, gr as canCall, _r as canCallAny, Ot as clearMutations, hi as clearSent, et as clearStoreHistory, bi as computeWindow, ci as createAnalytics, Kt as createHooks, Er as decideAccess, ai as defineEvent, ft as defineStore, zr as defineTracking, dt as definedStores, Nr as deriveEntityAdmins, ui as enqueueEntry, si as eventCatalog, Qr as filtersFromSchema, e as formActionPath, a as formDataToInput, It as freshIdempotencyKey, jt as getMutationNotifier, Et as getMutations, nr as globalContext, Yn as isUnauthenticated, L as isUnresolvedApi, qt as makePreloadSeedBag, mt as makeStoreSeedBag, Cr as manifestUrl, mi as markConflict, pi as markFailed, fi as markSent, Or as openAccessReason, pr as provenanceUrl, Qn as publishClientError, A as publishClientTrace, en as readPreloadedSeedOutcome, $t as readPreloadedSnapshot, gi as replayable, er as reportClientError, Dr as requiredScopes, tn as resetPreloadSeeds, pt as resetStoreRegistryForTests, Ve as resetStoreStorageForTest, U as resolveByTag, Be as resolveStoreStorage, Br as resolveTrackingEvent, Bn as resumableConsumeProgram, cr as rowsToOptions, cn as runSequence, t as schemaToColumns, r as schemaToFields, Xt as seedPreloadedSubscription, Zt as seedPreloadedSubscriptionFailure, gt as seedStore, sn as sequence, At as setMutationNotifier, Jt as setPreloadSeedResolver, ht as setStoreSeedResolver, ze as setStoreStorage, q as settleMutation, R as shallow, Kr as shallowArrayEqual, qr as sourceValues, we as ssrClientProxy, Te as ssrStubHandle, j as stableKey, Pe as startApiSupervisor, Tt as startMutation, Qe as storeHistory, $n as subscribeClientErrors, ce as subscribeClientTraces, Dt as subscribeMutations, $e as subscribeStoreHistory, de as supersedesConfirmedPatches, tt as travelToStoreState, kr as useAccessDecision, X as useAction, Kn as useAgent, Gn as useAgentChat, zn as useAgentStream, ii as useAsyncValidation, xr as useCan, Sr as useCanAny, wr as useCapabilityManifest, ji as useConnection, Ci as useConnectionStatus, Ai as useConnections, qn as useDataCopilot, dr as useDataTable, ni as useDebounced, Jr as useDerived, on as useEvent, sr as useFormBinding, or as useFormFlash, Wr as useFormSkeleton, I as useFrameworkApi, Oe as useFrameworkRuntimes, Y as useMutation, tr as useOnRpcError, yi as useOutbox, br as usePermissions, nn as usePreloadedSubscription, li as usePreview, mr as useProvenance, lr as useQueryField, ei as useQueryFilters, ti as useRecord, Jn as useRefreshSubscriptions, Yr as useResourceCan, Xr as useResourceCans, Hn as useResumableAgentStream, ln as useSequence, ir as useServerRequest, W as useSubscription, Gr as useTableSkeleton, Ur as useTracking, Pr as useUndo, Rr as useUndoLog, Sn as useUpload, xi as useWindowedSubscription, Cn as useWorkflow, jn as useWorkflowDomainEvents, Mn as useWorkflowEventDeliveries, An as useWorkflowEvents, En as useWorkflowRun, kn as useWorkflowRunEvents, Rn as useWorkflowRunState, On as useWorkflowRunSteps, Dn as useWorkflowRuns, wn as useWorkflowSignal, Tn as useWorkflowUpdate, oi as validateEventPayload, s as validateFields, ri as validationStatus, Xn as wireAuthRefresh, Lt as withIdempotencyKey, Hr as wrapTrackedCallbacks };
|