@voltro/client 0.37.0 → 0.39.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 +316 -0
- package/THIRD-PARTY-NOTICES.md +1 -1
- package/dist/index.d.ts +301 -4
- package/dist/index.js +539 -383
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -22,21 +22,29 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
22
22
|
emittedAt: void 0,
|
|
23
23
|
error: void 0,
|
|
24
24
|
pendingPatches: 0
|
|
25
|
-
}), ae = 5e3, oe =
|
|
25
|
+
}), ae = 5e3, oe = (e, t, n) => {
|
|
26
|
+
if (e._tag === "error") return !1;
|
|
27
|
+
if (e._tag === "delta") return !0;
|
|
28
|
+
try {
|
|
29
|
+
return JSON.stringify(t) !== JSON.stringify(n);
|
|
30
|
+
} catch {
|
|
31
|
+
return !1;
|
|
32
|
+
}
|
|
33
|
+
}, se = 0, ce = () => `patch_${++se}`, k = (e, t) => {
|
|
26
34
|
let n = e;
|
|
27
35
|
for (let e of t.split(".")) {
|
|
28
36
|
if (typeof n != "object" || !n) return;
|
|
29
37
|
n = n[e];
|
|
30
38
|
}
|
|
31
39
|
return n;
|
|
32
|
-
},
|
|
40
|
+
}, le = (e, t, n) => {
|
|
33
41
|
let r = t.split("."), i = (e) => typeof e == "object" && e && !Array.isArray(e) ? { ...e } : {}, a = i(e), o = a;
|
|
34
42
|
for (let e = 0; e < r.length - 1; e += 1) o[r[e]] = i(o[r[e]]), o = o[r[e]];
|
|
35
43
|
return o[r[r.length - 1]] = n, a;
|
|
36
|
-
},
|
|
44
|
+
}, ue = (e, t) => {
|
|
37
45
|
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];
|
|
38
46
|
return i.length === 0 ? null : new Set(i);
|
|
39
|
-
},
|
|
47
|
+
}, de = (e, t, n) => {
|
|
40
48
|
let r = e.path, i = e.by ?? "id";
|
|
41
49
|
if (e.op === "insert") {
|
|
42
50
|
let a = e.shapeItem ?? e.shape, o = a ? {
|
|
@@ -50,10 +58,10 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
50
58
|
}, s = e.order ?? "append";
|
|
51
59
|
return (e) => {
|
|
52
60
|
let t = Array.isArray(k(e, r)) ? k(e, r) : [];
|
|
53
|
-
return
|
|
61
|
+
return le(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
|
|
54
62
|
};
|
|
55
63
|
}
|
|
56
|
-
let a =
|
|
64
|
+
let a = ue(e, t);
|
|
57
65
|
if (a === null) return null;
|
|
58
66
|
if (e.op === "update") {
|
|
59
67
|
let n = e.shapeItem ?? e.shape, o = n ? (e) => ({
|
|
@@ -68,15 +76,15 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
68
76
|
});
|
|
69
77
|
return (e) => {
|
|
70
78
|
let t = Array.isArray(k(e, r)) ? k(e, r) : [];
|
|
71
|
-
return
|
|
79
|
+
return le(e, r, t.map((e) => a.has(e[i]) ? o(e) : e));
|
|
72
80
|
};
|
|
73
81
|
}
|
|
74
82
|
return (e) => {
|
|
75
83
|
let t = Array.isArray(k(e, r)) ? k(e, r) : [];
|
|
76
|
-
return
|
|
84
|
+
return le(e, r, t.filter((e) => !a.has(e[i])));
|
|
77
85
|
};
|
|
78
|
-
},
|
|
79
|
-
if (e.path !== void 0) return
|
|
86
|
+
}, fe = (e, t, n) => {
|
|
87
|
+
if (e.path !== void 0) return de(e, t, n);
|
|
80
88
|
switch (e.op) {
|
|
81
89
|
case "insert": {
|
|
82
90
|
let r = e.shape ? {
|
|
@@ -94,7 +102,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
94
102
|
};
|
|
95
103
|
}
|
|
96
104
|
case "update": {
|
|
97
|
-
let n =
|
|
105
|
+
let n = ue(e, t);
|
|
98
106
|
if (n === null) return null;
|
|
99
107
|
let r = e.shape, i = r ? (e) => ({
|
|
100
108
|
...r(t, e),
|
|
@@ -111,21 +119,21 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
111
119
|
});
|
|
112
120
|
}
|
|
113
121
|
case "delete": {
|
|
114
|
-
let n =
|
|
122
|
+
let n = ue(e, t);
|
|
115
123
|
return n === null ? null : (e) => (Array.isArray(e) ? e : []).filter((e) => !n.has(e.id));
|
|
116
124
|
}
|
|
117
125
|
}
|
|
118
|
-
},
|
|
126
|
+
}, pe = 5e3, me = class {
|
|
119
127
|
entries = /* @__PURE__ */ new Map();
|
|
120
128
|
inactiveTtlMs;
|
|
121
129
|
onChangeHook;
|
|
122
130
|
errorBus;
|
|
123
131
|
constructor(e = {}) {
|
|
124
|
-
this.inactiveTtlMs = e.inactiveTtlMs ??
|
|
132
|
+
this.inactiveTtlMs = e.inactiveTtlMs ?? pe, this.onChangeHook = e.onChange, this.errorBus = e.errorBus;
|
|
125
133
|
}
|
|
126
134
|
subscribe(e, t, n, r, i = {}) {
|
|
127
135
|
let a = O(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
|
|
128
|
-
return s && s.evictionTimer !== null && (clearTimeout(s.evictionTimer), s.evictionTimer = null), s ? (s.fiber === null && (s.fetch = t, 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), {
|
|
136
|
+
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), {
|
|
129
137
|
getSnapshot: () => this.getSnapshot(a),
|
|
130
138
|
unsubscribe: () => this.unsubscribe(a, r)
|
|
131
139
|
};
|
|
@@ -134,7 +142,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
134
142
|
let r = O(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
|
|
135
143
|
a ||= this.createStub(r, i);
|
|
136
144
|
let o = {
|
|
137
|
-
id:
|
|
145
|
+
id: ce(),
|
|
138
146
|
mutationId: n,
|
|
139
147
|
reducer: t
|
|
140
148
|
};
|
|
@@ -148,7 +156,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
148
156
|
for (let i of this.entries.values()) {
|
|
149
157
|
if (i.tag !== e) continue;
|
|
150
158
|
let a = {
|
|
151
|
-
id: `forTag-${++
|
|
159
|
+
id: `forTag-${++se}`,
|
|
152
160
|
mutationId: n,
|
|
153
161
|
reducer: t
|
|
154
162
|
};
|
|
@@ -165,10 +173,25 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
165
173
|
confirmByMutation(e) {
|
|
166
174
|
let t = !1;
|
|
167
175
|
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);
|
|
168
|
-
t && setTimeout(() => this.
|
|
176
|
+
t && setTimeout(() => this.resyncUnechoedMutation(e), ae);
|
|
177
|
+
}
|
|
178
|
+
resyncUnechoedMutation(e) {
|
|
179
|
+
for (let t of this.entries.values()) {
|
|
180
|
+
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 ${ae}ms — the write is confirmed, so the preview is KEPT. Check reactivity for this query's source table.`;
|
|
182
|
+
this.errorBus?.emit({
|
|
183
|
+
source: "subscription",
|
|
184
|
+
tag: n,
|
|
185
|
+
error: Error(r),
|
|
186
|
+
...t.traceId === void 0 ? {} : { traceId: t.traceId }
|
|
187
|
+
}), console.warn(`[voltro] ${r}`, {
|
|
188
|
+
mutationId: e,
|
|
189
|
+
tag: n
|
|
190
|
+
}), t.fetch !== null && t.runtime !== null && this.reissue(t, t.runtime, !1);
|
|
191
|
+
}
|
|
169
192
|
}
|
|
170
193
|
autoApply(e, t, n) {
|
|
171
|
-
let r = `optimistic-${n}-${++
|
|
194
|
+
let r = `optimistic-${n}-${++se}`;
|
|
172
195
|
for (let i of e) for (let e of this.entries.values()) {
|
|
173
196
|
if (!(Array.isArray(e.source) ? e.source.includes(i.table) : e.source === i.table)) continue;
|
|
174
197
|
if (i.match !== void 0) {
|
|
@@ -181,7 +204,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
181
204
|
if (!n) continue;
|
|
182
205
|
}
|
|
183
206
|
if (e.computed && i.op === "insert" && i.path === void 0) continue;
|
|
184
|
-
let a =
|
|
207
|
+
let a = fe(i, t, r);
|
|
185
208
|
if (a === null) continue;
|
|
186
209
|
let o = {
|
|
187
210
|
id: `${r}-${e.key}`,
|
|
@@ -224,12 +247,13 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
224
247
|
this.entries.clear();
|
|
225
248
|
}
|
|
226
249
|
refreshAll(e) {
|
|
227
|
-
for (let t of this.entries.values())
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
250
|
+
for (let t of this.entries.values()) t.fetch && this.reissue(t, e);
|
|
251
|
+
}
|
|
252
|
+
reissue(e, t, n = !0) {
|
|
253
|
+
if (!e.fetch) return;
|
|
254
|
+
e.fiber && t.runFork(h.interrupt(e.fiber)), e.fiber = null;
|
|
255
|
+
let r = e.state.patches, i = e.state.base, a = e.state.baseRevision;
|
|
256
|
+
e.state = this.freshState(), e.state.patches = r, n || (e.state.base = i, e.state.baseRevision = a), this.startFiber(e, e.fetch, t);
|
|
233
257
|
}
|
|
234
258
|
seedStaleFrom(e) {
|
|
235
259
|
let t = 0;
|
|
@@ -251,7 +275,8 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
251
275
|
evictionTimer: null,
|
|
252
276
|
source: n.source,
|
|
253
277
|
computed: n.computed,
|
|
254
|
-
fetch: null
|
|
278
|
+
fetch: null,
|
|
279
|
+
runtime: null
|
|
255
280
|
};
|
|
256
281
|
this.entries.set(e.key, e), this.scheduleEviction(e), t += 1;
|
|
257
282
|
}
|
|
@@ -267,7 +292,8 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
267
292
|
evictionTimer: null,
|
|
268
293
|
source: i,
|
|
269
294
|
computed: !1,
|
|
270
|
-
fetch: n
|
|
295
|
+
fetch: n,
|
|
296
|
+
runtime: r
|
|
271
297
|
};
|
|
272
298
|
return this.entries.set(e, a), this.startFiber(a, n, r), a;
|
|
273
299
|
}
|
|
@@ -281,7 +307,8 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
281
307
|
evictionTimer: null,
|
|
282
308
|
source: void 0,
|
|
283
309
|
computed: !1,
|
|
284
|
-
fetch: null
|
|
310
|
+
fetch: null,
|
|
311
|
+
runtime: null
|
|
285
312
|
};
|
|
286
313
|
return this.entries.set(e, n), n;
|
|
287
314
|
}
|
|
@@ -303,13 +330,14 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
303
330
|
tag: r
|
|
304
331
|
})), i)))).pipe(x.withSpan(`client.subscription.${r}`, { attributes: { "rpc.tag": r } }));
|
|
305
332
|
e.fiber = n.runFork(a.pipe(x.runForEach((t) => p.sync(() => {
|
|
333
|
+
let n = e.state.base;
|
|
306
334
|
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);
|
|
307
335
|
else if (t._tag === "error") e.state.baseError = u.fail(t.error), typeof t.revision == "number" && (e.state.baseRevision = t.revision);
|
|
308
336
|
else {
|
|
309
337
|
let n = e.state.base;
|
|
310
338
|
Array.isArray(n) && (e.state.base = S(n, t.patch)), e.state.baseRevision = t.revision, e.state.baseEmittedAt = t.emittedAt, e.state.baseError = void 0;
|
|
311
339
|
}
|
|
312
|
-
e.state.patches.some((e) => e.confirmed === !0) && (e.state.patches = e.state.patches.filter((e) => e.confirmed !== !0)), this.invalidate(e);
|
|
340
|
+
e.state.patches.some((e) => e.confirmed === !0) && oe(t, n, e.state.base) && (e.state.patches = e.state.patches.filter((e) => e.confirmed !== !0)), this.invalidate(e);
|
|
313
341
|
})))), e.fiber.addObserver((t) => {
|
|
314
342
|
if (m.isFailure(t) && !m.isInterrupted(t) && (e.state.baseRevision === -1 && (e.state.baseError = t.cause, this.invalidate(e)), this.errorBus)) {
|
|
315
343
|
let n = u.squash(t.cause);
|
|
@@ -352,14 +380,14 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
352
380
|
t && t.subscribers.size === 0 && (t.fiber && p.runFork(h.interrupt(t.fiber)), this.entries.delete(e.key));
|
|
353
381
|
}, this.inactiveTtlMs);
|
|
354
382
|
}
|
|
355
|
-
},
|
|
383
|
+
}, he = class extends me {
|
|
356
384
|
subscribe(e, t, n, r, i = {}) {
|
|
357
385
|
return {
|
|
358
386
|
getSnapshot: () => this.peek(e),
|
|
359
387
|
unsubscribe: () => {}
|
|
360
388
|
};
|
|
361
389
|
}
|
|
362
|
-
},
|
|
390
|
+
}, ge = class {
|
|
363
391
|
#e = /* @__PURE__ */ new Set();
|
|
364
392
|
on(e) {
|
|
365
393
|
return this.#e.add(e), () => {
|
|
@@ -371,45 +399,133 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
371
399
|
t(e);
|
|
372
400
|
} catch {}
|
|
373
401
|
}
|
|
374
|
-
},
|
|
402
|
+
}, _e = e(null), ve = () => {
|
|
375
403
|
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");
|
|
376
|
-
},
|
|
377
|
-
get: (e, t) =>
|
|
404
|
+
}, ye = new Proxy(() => ve(), {
|
|
405
|
+
get: (e, t) => ye,
|
|
378
406
|
has: () => !0,
|
|
379
|
-
apply: () =>
|
|
380
|
-
}),
|
|
407
|
+
apply: () => ve()
|
|
408
|
+
}), be = {
|
|
381
409
|
runtime: { runPromiseExit: () => Promise.resolve(m.die(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR"))) },
|
|
382
|
-
cache: new
|
|
383
|
-
client:
|
|
410
|
+
cache: new he(),
|
|
411
|
+
client: ye,
|
|
384
412
|
descriptors: {},
|
|
385
413
|
inspectBaseUrl: "",
|
|
386
|
-
errorBus: new
|
|
387
|
-
},
|
|
388
|
-
get: () =>
|
|
414
|
+
errorBus: new ge()
|
|
415
|
+
}, xe = {
|
|
416
|
+
get: () => be,
|
|
389
417
|
names: []
|
|
390
|
-
}, A = !1, j = !1, M = null,
|
|
418
|
+
}, A = !1, j = !1, M = null, Se = () => {
|
|
391
419
|
A = !1, j = !1, M !== null && (clearTimeout(M), M = null);
|
|
392
|
-
},
|
|
393
|
-
let e = r(
|
|
420
|
+
}, Ce = () => {
|
|
421
|
+
let e = r(_e);
|
|
394
422
|
return e ? (j || (j = !0, M !== null && (clearTimeout(M), M = null)), e) : (typeof window < "u" && !A && !j && M === null && process.env.NODE_ENV !== "production" && (M = setTimeout(() => {
|
|
395
423
|
M = null, !(A || j) && (A = !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>."));
|
|
396
|
-
}, 0)),
|
|
397
|
-
}, N = (e) =>
|
|
424
|
+
}, 0)), xe);
|
|
425
|
+
}, N = (e) => Ce().get(e), P = (e) => typeof e.runtime?.runFork != "function", we = async (e) => {
|
|
398
426
|
let { name: t, wsUrl: n, group: r, headers: i, webSocketConstructor: a } = e;
|
|
399
427
|
class o extends d.Tag(`@voltro/client/AppClient/${t}`)() {}
|
|
400
428
|
let s = _.succeed(C.WebSocketConstructor, (e, t) => a(e, t)), c = T.layerProtocolSocket().pipe(_.provide(ee.layerJson), _.provide(C.layerWebSocket(n)), _.provide(s)), l = typeof i == "function" ? await i() : i, u = _.scoped(o, T.make(r)).pipe(_.provide(c)), f = l ? _.locallyScoped(T.currentHeaders, w.fromInput(l)) : _.empty, p = v.make(_.merge(u, f));
|
|
401
429
|
try {
|
|
402
|
-
let e = await p.runPromise(o), t = new
|
|
430
|
+
let e = await p.runPromise(o), t = new ge();
|
|
403
431
|
return {
|
|
404
432
|
runtime: p,
|
|
405
433
|
client: e,
|
|
406
|
-
cache: new
|
|
434
|
+
cache: new me({ errorBus: t }),
|
|
407
435
|
errorBus: t
|
|
408
436
|
};
|
|
409
437
|
} catch (e) {
|
|
410
438
|
throw p.dispose(), e;
|
|
411
439
|
}
|
|
412
|
-
},
|
|
440
|
+
}, Te = (e) => Math.min(500 * 2 ** Math.min(e - 1, 4), 5e3), Ee = () => ({
|
|
441
|
+
resolved: null,
|
|
442
|
+
retryToken: 0,
|
|
443
|
+
failureCount: 0,
|
|
444
|
+
generation: 0,
|
|
445
|
+
reconnectStatusDispose: null,
|
|
446
|
+
everOpened: !1,
|
|
447
|
+
wedgeStop: null,
|
|
448
|
+
subjectMayHaveChanged: !1
|
|
449
|
+
}), De = (e) => {
|
|
450
|
+
e.wedgeStop !== null && (e.wedgeStop(), e.wedgeStop = null);
|
|
451
|
+
}, Oe = (e) => {
|
|
452
|
+
e.cache.destroy(e.runtime), e.runtime.dispose();
|
|
453
|
+
}, ke = (e) => {
|
|
454
|
+
let t = e.apis, n = e.buildClient, r = e.onChange, i = e.retryDelayMs ?? Te, a = e.stableWindowMs ?? 5e3, o = e.scheduler?.setTimeout ?? ((e, t) => setTimeout(e, t)), s = e.scheduler?.clearTimeout ?? ((e) => {
|
|
455
|
+
clearTimeout(e);
|
|
456
|
+
}), 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, Ee());
|
|
458
|
+
let f = !1, p = /* @__PURE__ */ new Set(), m = (e, t) => {
|
|
459
|
+
let n = o(() => {
|
|
460
|
+
p.delete(n), e();
|
|
461
|
+
}, t);
|
|
462
|
+
return p.add(n), n;
|
|
463
|
+
}, h = () => {
|
|
464
|
+
if (f) return;
|
|
465
|
+
let e = /* @__PURE__ */ new Map();
|
|
466
|
+
for (let [t, n] of d) n.resolved && e.set(t, n.resolved);
|
|
467
|
+
r(e, t.every((t) => e.has(t.name)));
|
|
468
|
+
}, g = (e) => {
|
|
469
|
+
if (f) return;
|
|
470
|
+
let t = d.get(e.name);
|
|
471
|
+
if (!t) return;
|
|
472
|
+
t.failureCount += 1;
|
|
473
|
+
let n = i(t.failureCount), r = ++t.retryToken;
|
|
474
|
+
!t.reconnectStatusDispose && l && (t.reconnectStatusDispose = l(e.name)), u && t.everOpened && t.failureCount >= u.afterFailures && t.wedgeStop === null && (t.wedgeStop = u.arm(e.name)), m(() => {
|
|
475
|
+
f || t.retryToken === r && (t.generation += 1, _(e));
|
|
476
|
+
}, n);
|
|
477
|
+
}, _ = async (e) => {
|
|
478
|
+
if (f) return;
|
|
479
|
+
let t = d.get(e.name);
|
|
480
|
+
if (!t) return;
|
|
481
|
+
let r = t.generation, i = () => {
|
|
482
|
+
if (f || t.generation !== r) return;
|
|
483
|
+
t.everOpened = !0, De(t), t.retryToken++;
|
|
484
|
+
let e = t.failureCount;
|
|
485
|
+
m(() => {
|
|
486
|
+
f || t.failureCount === e && (t.failureCount = 0);
|
|
487
|
+
}, a);
|
|
488
|
+
}, o = (n) => {
|
|
489
|
+
f || t.generation !== r || g(e);
|
|
490
|
+
};
|
|
491
|
+
try {
|
|
492
|
+
let a = await n(e, r, i, o);
|
|
493
|
+
if (f || t.generation !== r) {
|
|
494
|
+
Oe(a);
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
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 && Oe(s);
|
|
499
|
+
} catch {
|
|
500
|
+
if (f || t.generation !== r) return;
|
|
501
|
+
g(e);
|
|
502
|
+
}
|
|
503
|
+
};
|
|
504
|
+
return t.length === 0 ? (r(/* @__PURE__ */ new Map(), !0), {
|
|
505
|
+
dispose: () => {
|
|
506
|
+
f = !0;
|
|
507
|
+
},
|
|
508
|
+
reconnect: () => {}
|
|
509
|
+
}) : (c(() => {
|
|
510
|
+
if (!f) for (let e of t) _(e);
|
|
511
|
+
}), {
|
|
512
|
+
dispose: () => {
|
|
513
|
+
if (!f) {
|
|
514
|
+
f = !0;
|
|
515
|
+
for (let e of p) s(e);
|
|
516
|
+
p.clear();
|
|
517
|
+
for (let [, e] of d) e.resolved && Oe(e.resolved), e.reconnectStatusDispose && e.reconnectStatusDispose(), De(e);
|
|
518
|
+
d.clear();
|
|
519
|
+
}
|
|
520
|
+
},
|
|
521
|
+
reconnect: () => {
|
|
522
|
+
if (!f) for (let e of t) {
|
|
523
|
+
let t = d.get(e.name);
|
|
524
|
+
t && (t.subjectMayHaveChanged = !0, t.retryToken += 1, t.generation += 1, t.failureCount = 0, De(t), _(e));
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
});
|
|
528
|
+
}, Ae = ({ apis: e, children: t }) => {
|
|
413
529
|
let n = o(() => ({
|
|
414
530
|
get: (t) => {
|
|
415
531
|
let n = e.get(t);
|
|
@@ -421,10 +537,34 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
421
537
|
},
|
|
422
538
|
names: Array.from(e.keys())
|
|
423
539
|
}), [e]);
|
|
424
|
-
return /* @__PURE__ */ te(
|
|
540
|
+
return /* @__PURE__ */ te(_e.Provider, {
|
|
425
541
|
value: n,
|
|
426
542
|
children: t
|
|
427
543
|
});
|
|
544
|
+
}, je = Symbol.for("@voltro/client/storeStorageProvider"), Me = () => {
|
|
545
|
+
let e = globalThis, t = e[je];
|
|
546
|
+
if (t !== void 0) return t;
|
|
547
|
+
let n = {
|
|
548
|
+
provider: void 0,
|
|
549
|
+
used: !1
|
|
550
|
+
};
|
|
551
|
+
return e[je] = n, n;
|
|
552
|
+
}, Ne = (e) => {
|
|
553
|
+
if (typeof window > "u") return null;
|
|
554
|
+
try {
|
|
555
|
+
return (e === "session" ? window.sessionStorage : window.localStorage) ?? null;
|
|
556
|
+
} catch {
|
|
557
|
+
return null;
|
|
558
|
+
}
|
|
559
|
+
}, Pe = (e) => {
|
|
560
|
+
let t = Me();
|
|
561
|
+
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;
|
|
562
|
+
}, Fe = (e) => {
|
|
563
|
+
let t = Me();
|
|
564
|
+
return t.used = !0, (t.provider ?? Ne)(e);
|
|
565
|
+
}, Ie = () => {
|
|
566
|
+
let e = Me();
|
|
567
|
+
e.provider = void 0, e.used = !1;
|
|
428
568
|
}, F = (e, t) => {
|
|
429
569
|
if (Object.is(e, t)) return !0;
|
|
430
570
|
if (typeof e != "object" || typeof t != "object" || e === null || t === null || Array.isArray(e) !== Array.isArray(t)) return !1;
|
|
@@ -432,20 +572,20 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
432
572
|
if (n.length !== r.length) return !1;
|
|
433
573
|
for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || !Object.is(e[r], t[r])) return !1;
|
|
434
574
|
return !0;
|
|
435
|
-
},
|
|
436
|
-
|
|
437
|
-
},
|
|
438
|
-
let r =
|
|
575
|
+
}, Le = 50, Re = /* @__PURE__ */ new Set(), ze = (e, t) => {
|
|
576
|
+
Re.has(e) || (Re.add(e), console.warn(t));
|
|
577
|
+
}, Be = "\0global", Ve = null, He = (e, t, n) => {
|
|
578
|
+
let r = Ve?.() ?? null;
|
|
439
579
|
if (r === null) return n;
|
|
440
580
|
let i = n;
|
|
441
|
-
for (let n of r.seeds) n.store
|
|
581
|
+
for (let n of r.seeds) n.store === e && n.key === t && (i = {
|
|
442
582
|
...i,
|
|
443
583
|
...n.value
|
|
444
584
|
});
|
|
445
585
|
return i;
|
|
446
|
-
},
|
|
586
|
+
}, Ue = (e, t) => {
|
|
447
587
|
let n = e(), r = /* @__PURE__ */ new Set(), i = 0, a = 0, o, s, c = () => {
|
|
448
|
-
if (i >=
|
|
588
|
+
if (i >= Le) throw i = 0, Error(`defineStore: notification depth exceeded ${Le} — 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.`);
|
|
449
589
|
i += 1;
|
|
450
590
|
try {
|
|
451
591
|
for (let e of [...r]) e();
|
|
@@ -487,11 +627,11 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
487
627
|
r.delete(e);
|
|
488
628
|
})
|
|
489
629
|
};
|
|
490
|
-
},
|
|
491
|
-
|
|
492
|
-
}),
|
|
493
|
-
I.length = 0,
|
|
494
|
-
},
|
|
630
|
+
}, We = 200, I = [], Ge = /* @__PURE__ */ new Set(), Ke = [], qe = () => Ke, Je = (e) => (Ge.add(e), () => {
|
|
631
|
+
Ge.delete(e);
|
|
632
|
+
}), Ye = () => {
|
|
633
|
+
I.length = 0, Ke = [];
|
|
634
|
+
}, Xe = (e, t) => {
|
|
495
635
|
let n = I[e];
|
|
496
636
|
if (n === void 0) return !1;
|
|
497
637
|
let r = z.get(n.store);
|
|
@@ -504,41 +644,34 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
504
644
|
R = !1;
|
|
505
645
|
}
|
|
506
646
|
return !0;
|
|
507
|
-
}, L = !1, R = !1,
|
|
508
|
-
I.push(e), I.length >
|
|
509
|
-
for (let e of [...
|
|
510
|
-
}, z = /* @__PURE__ */ new Map(),
|
|
511
|
-
|
|
512
|
-
})),
|
|
513
|
-
function
|
|
647
|
+
}, L = !1, R = !1, Ze = (e) => {
|
|
648
|
+
I.push(e), I.length > We && I.shift(), Ke = [...I];
|
|
649
|
+
for (let e of [...Ge]) e();
|
|
650
|
+
}, z = /* @__PURE__ */ new Map(), Qe = /* @__PURE__ */ new Map(), $e = 0, et = !1, tt = /* @__PURE__ */ new Map(), nt = () => (et || (et = !0, queueMicrotask(() => {
|
|
651
|
+
$e += 1, et = !1;
|
|
652
|
+
})), $e), rt = it(((/* @__PURE__ */ Error()).stack ?? "").split("\n")[1] ?? "") ?? "";
|
|
653
|
+
function it(e) {
|
|
514
654
|
let t = e.trim().replace(/^at\s+/, ""), n = /\(([^()]+)\)\s*$/.exec(t)?.[1] ?? t;
|
|
515
655
|
return n.length > 0 ? n : void 0;
|
|
516
656
|
}
|
|
517
|
-
var
|
|
657
|
+
var at = () => {
|
|
518
658
|
let e = (/* @__PURE__ */ Error()).stack;
|
|
519
659
|
if (typeof e != "string") return "<unknown>";
|
|
520
660
|
for (let t of e.split("\n").slice(1)) {
|
|
521
|
-
let e =
|
|
661
|
+
let e = it(t);
|
|
522
662
|
if (e === void 0) continue;
|
|
523
663
|
let n = e.replace(/:\d+:\d+$/, "");
|
|
524
|
-
if (
|
|
664
|
+
if (rt === "" || n !== rt.replace(/:\d+:\d+$/, "")) return n;
|
|
525
665
|
}
|
|
526
666
|
return "<unknown>";
|
|
527
|
-
},
|
|
528
|
-
let a =
|
|
667
|
+
}, ot = () => [...z.values()], st = (e, t, r) => {
|
|
668
|
+
let a = at(), o = nt(), c = z.get(e);
|
|
529
669
|
if (c !== void 0) {
|
|
530
|
-
let t =
|
|
670
|
+
let t = Qe.get(e) ?? "<unknown>", n = tt.get(e) === o;
|
|
531
671
|
if (a !== "<unknown>" && a === t && !n) return c;
|
|
532
672
|
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: ${a}`);
|
|
533
673
|
}
|
|
534
|
-
let u = r?.persist, d = () => {
|
|
535
|
-
if (typeof window > "u") return null;
|
|
536
|
-
try {
|
|
537
|
-
return (u?.storage === "session" ? window.sessionStorage : window.localStorage) ?? null;
|
|
538
|
-
} catch {
|
|
539
|
-
return null;
|
|
540
|
-
}
|
|
541
|
-
}, f = () => {
|
|
674
|
+
let u = r?.persist, d = () => Fe(u?.storage === "session" ? "session" : "local"), f = () => {
|
|
542
675
|
let e = d();
|
|
543
676
|
if (e === null || u === void 0) return;
|
|
544
677
|
let t;
|
|
@@ -563,10 +696,10 @@ var qe = () => {
|
|
|
563
696
|
t.setItem(u.key, JSON.stringify(n));
|
|
564
697
|
} catch {}
|
|
565
698
|
}, m = /* @__PURE__ */ new Map(), h = (n) => {
|
|
566
|
-
let r = n ??
|
|
699
|
+
let r = n ?? Be, i = m.get(r);
|
|
567
700
|
if (i === void 0) {
|
|
568
701
|
let a = n;
|
|
569
|
-
i =
|
|
702
|
+
i = Ue(u !== void 0 && n === void 0 ? () => {
|
|
570
703
|
let e = t();
|
|
571
704
|
return g = e, {
|
|
572
705
|
...e,
|
|
@@ -580,7 +713,7 @@ var qe = () => {
|
|
|
580
713
|
next: n
|
|
581
714
|
}), e.steps.length > y && e.steps.shift(), e.cursor = e.steps.length;
|
|
582
715
|
}
|
|
583
|
-
|
|
716
|
+
Ze({
|
|
584
717
|
store: e,
|
|
585
718
|
...a === void 0 ? {} : { key: a },
|
|
586
719
|
...r === void 0 ? {} : { label: r },
|
|
@@ -593,7 +726,7 @@ var qe = () => {
|
|
|
593
726
|
}
|
|
594
727
|
return i;
|
|
595
728
|
}, g, _ = /* @__PURE__ */ new Map(), v = (e) => {
|
|
596
|
-
let t = e ??
|
|
729
|
+
let t = e ?? Be, n = _.get(t);
|
|
597
730
|
return n === void 0 && (n = {
|
|
598
731
|
steps: [],
|
|
599
732
|
cursor: 0
|
|
@@ -625,14 +758,14 @@ var qe = () => {
|
|
|
625
758
|
let n = u.current;
|
|
626
759
|
if (n.has && Object.is(n.state, t)) return n.value;
|
|
627
760
|
let r = o.current(t), i = c.current, a = n.has && (i ? i(n.value, r) : Object.is(n.value, r));
|
|
628
|
-
process.env.NODE_ENV !== "production" && i === void 0 && n.has && !a && typeof r == "object" && r && F(n.value, r) &&
|
|
761
|
+
process.env.NODE_ENV !== "production" && i === void 0 && n.has && !a && typeof r == "object" && r && F(n.value, r) && ze(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.`);
|
|
629
762
|
let s = a ? n.value : r;
|
|
630
763
|
return u.current = {
|
|
631
764
|
state: t,
|
|
632
765
|
value: s,
|
|
633
766
|
has: !0
|
|
634
767
|
}, s;
|
|
635
|
-
}, []), f = r?.key, p = r?.retain === !0, m =
|
|
768
|
+
}, []), f = r?.key, p = r?.retain === !0, m = n((e) => {
|
|
636
769
|
let t = a.subscribe(e);
|
|
637
770
|
return f !== void 0 && !p && S(f), () => {
|
|
638
771
|
t(), f !== void 0 && !p && C(f);
|
|
@@ -641,12 +774,12 @@ var qe = () => {
|
|
|
641
774
|
a,
|
|
642
775
|
f,
|
|
643
776
|
p
|
|
644
|
-
]), n(() => d(a.get()), [a, d]), n(() => d(
|
|
777
|
+
]), _ = n(() => d(a.get()), [a, d]), v = n(() => d(He(e, r?.key, r?.key === void 0 && g !== void 0 ? g : a.get())), [
|
|
645
778
|
a,
|
|
646
779
|
r?.key,
|
|
647
780
|
d
|
|
648
|
-
]));
|
|
649
|
-
return i(
|
|
781
|
+
]), y = l(m, _, v);
|
|
782
|
+
return i(y), y;
|
|
650
783
|
},
|
|
651
784
|
instance: h,
|
|
652
785
|
get: (e) => h(e).get(),
|
|
@@ -687,22 +820,22 @@ var qe = () => {
|
|
|
687
820
|
release: (e) => {
|
|
688
821
|
m.delete(e), _.delete(e);
|
|
689
822
|
},
|
|
690
|
-
keys: () => [...m.keys()].filter((e) => e !==
|
|
823
|
+
keys: () => [...m.keys()].filter((e) => e !== Be)
|
|
691
824
|
};
|
|
692
|
-
return z.set(e, w),
|
|
693
|
-
},
|
|
694
|
-
z.clear(),
|
|
695
|
-
},
|
|
696
|
-
|
|
697
|
-
},
|
|
698
|
-
let r =
|
|
825
|
+
return z.set(e, w), Qe.set(e, a), tt.set(e, o), w;
|
|
826
|
+
}, ct = () => {
|
|
827
|
+
z.clear(), Qe.clear(), tt.clear(), Re.clear();
|
|
828
|
+
}, lt = () => ({ seeds: [] }), ut = (e) => {
|
|
829
|
+
Ve = e;
|
|
830
|
+
}, dt = (e, t, n) => {
|
|
831
|
+
let r = Ve?.() ?? null;
|
|
699
832
|
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.)`);
|
|
700
833
|
r.seeds.push({
|
|
701
834
|
store: e.name,
|
|
702
835
|
...n?.key === void 0 ? {} : { key: n.key },
|
|
703
836
|
value: t
|
|
704
837
|
});
|
|
705
|
-
},
|
|
838
|
+
}, ft = (e) => {
|
|
706
839
|
if (e !== void 0) for (let t of e) {
|
|
707
840
|
let e = z.get(t.store);
|
|
708
841
|
e !== void 0 && e.set(t.value, t.key);
|
|
@@ -726,74 +859,74 @@ var qe = () => {
|
|
|
726
859
|
}
|
|
727
860
|
if (typeof r != "function") throw Error(`@voltro/client: rpc tag ${JSON.stringify(t)} did not resolve to a callable method.`);
|
|
728
861
|
return r;
|
|
729
|
-
},
|
|
862
|
+
}, pt = Object.freeze({
|
|
730
863
|
data: void 0,
|
|
731
864
|
revision: -1,
|
|
732
865
|
emittedAt: void 0,
|
|
733
866
|
error: void 0,
|
|
734
867
|
pendingPatches: 0
|
|
735
|
-
}),
|
|
868
|
+
}), mt = () => pt;
|
|
736
869
|
function V(e, t, r = {}, i = {}) {
|
|
737
870
|
let a = i.skip === !0, { runtime: c, cache: u, client: d, descriptors: f } = N(e), p = f[t]?.source, m = s(r);
|
|
738
871
|
m.current = r;
|
|
739
872
|
let h = s(d);
|
|
740
873
|
h.current = d;
|
|
741
|
-
let g = o(() => {
|
|
874
|
+
let g = o(() => JSON.stringify(Object.entries(r).sort(([e], [t]) => e.localeCompare(t))), [r]), _ = o(() => {
|
|
742
875
|
let e = m.current;
|
|
743
876
|
return {
|
|
744
877
|
queryKey: [t, e],
|
|
745
878
|
fetch: () => B(h.current, t)(e)
|
|
746
879
|
};
|
|
747
|
-
}, [t,
|
|
880
|
+
}, [t, g]), v = _.queryKey, y = n((e) => a ? () => {} : u.subscribe(_.queryKey, _.fetch, c, e, p === void 0 ? {} : { source: p }).unsubscribe, [
|
|
748
881
|
u,
|
|
749
882
|
c,
|
|
750
883
|
p,
|
|
751
884
|
a,
|
|
752
|
-
|
|
753
|
-
]), n(() => a ?
|
|
885
|
+
_
|
|
886
|
+
]), b = n(() => a ? pt : u.peek(v), [
|
|
754
887
|
u,
|
|
755
888
|
a,
|
|
756
|
-
|
|
757
|
-
]),
|
|
758
|
-
revision:
|
|
759
|
-
emittedAt:
|
|
760
|
-
error:
|
|
761
|
-
pendingPatches:
|
|
889
|
+
v
|
|
890
|
+
]), x = l(y, b, mt), S = x.data !== void 0, C = S && (Array.isArray(x.data) ? x.data.length === 0 : x.data === null), w = {
|
|
891
|
+
revision: x.revision,
|
|
892
|
+
emittedAt: x.emittedAt,
|
|
893
|
+
error: x.error,
|
|
894
|
+
pendingPatches: x.pendingPatches
|
|
762
895
|
};
|
|
763
896
|
if (i.initialSnapshot !== void 0) {
|
|
764
897
|
let e = Array.isArray(i.initialSnapshot) ? i.initialSnapshot.length === 0 : i.initialSnapshot === null;
|
|
765
898
|
return {
|
|
766
|
-
...
|
|
767
|
-
data:
|
|
899
|
+
...w,
|
|
900
|
+
data: S ? x.data : i.initialSnapshot,
|
|
768
901
|
loading: !1,
|
|
769
902
|
idle: a,
|
|
770
|
-
isEmpty:
|
|
903
|
+
isEmpty: S ? C : e
|
|
771
904
|
};
|
|
772
905
|
}
|
|
773
906
|
return i.fallback === void 0 ? a ? {
|
|
774
|
-
...
|
|
907
|
+
...w,
|
|
775
908
|
data: void 0,
|
|
776
909
|
loading: !1,
|
|
777
910
|
isEmpty: !1,
|
|
778
911
|
idle: !0
|
|
779
|
-
} :
|
|
780
|
-
...
|
|
781
|
-
data:
|
|
912
|
+
} : S ? {
|
|
913
|
+
...w,
|
|
914
|
+
data: x.data,
|
|
782
915
|
loading: !1,
|
|
783
|
-
isEmpty:
|
|
916
|
+
isEmpty: C,
|
|
784
917
|
idle: !1
|
|
785
918
|
} : {
|
|
786
|
-
...
|
|
919
|
+
...w,
|
|
787
920
|
data: void 0,
|
|
788
921
|
loading: !0,
|
|
789
922
|
isEmpty: !1,
|
|
790
923
|
idle: !1
|
|
791
924
|
} : {
|
|
792
|
-
...
|
|
793
|
-
data:
|
|
794
|
-
loading: !
|
|
925
|
+
...w,
|
|
926
|
+
data: S ? x.data : i.fallback,
|
|
927
|
+
loading: !S && !a,
|
|
795
928
|
idle: a,
|
|
796
|
-
isEmpty:
|
|
929
|
+
isEmpty: C
|
|
797
930
|
};
|
|
798
931
|
}
|
|
799
932
|
//#endregion
|
|
@@ -802,20 +935,20 @@ var H = async (e, t) => {
|
|
|
802
935
|
let n = await e.runPromiseExit(t);
|
|
803
936
|
if (m.isSuccess(n)) return n.value;
|
|
804
937
|
throw u.squash(n.cause);
|
|
805
|
-
},
|
|
806
|
-
|
|
807
|
-
},
|
|
808
|
-
|
|
809
|
-
for (let e of
|
|
938
|
+
}, ht = 100, U = [], gt = /* @__PURE__ */ new Set(), _t = [], vt = () => {
|
|
939
|
+
_t = U.slice();
|
|
940
|
+
}, yt = () => {
|
|
941
|
+
vt();
|
|
942
|
+
for (let e of gt) try {
|
|
810
943
|
e();
|
|
811
944
|
} catch {}
|
|
812
|
-
},
|
|
945
|
+
}, bt = (e) => {
|
|
813
946
|
let t = {
|
|
814
947
|
...e,
|
|
815
948
|
status: "pending",
|
|
816
949
|
startedAt: Date.now()
|
|
817
950
|
};
|
|
818
|
-
U.unshift(t), U.length >
|
|
951
|
+
U.unshift(t), U.length > ht && (U.length = ht), yt();
|
|
819
952
|
}, W = (e, t) => {
|
|
820
953
|
let n = U.findIndex((t) => t.id === e);
|
|
821
954
|
if (n === -1) return;
|
|
@@ -832,12 +965,12 @@ var H = async (e, t) => {
|
|
|
832
965
|
error: t.error,
|
|
833
966
|
settledAt: i,
|
|
834
967
|
durationMs: i - r.startedAt
|
|
835
|
-
},
|
|
836
|
-
},
|
|
837
|
-
|
|
838
|
-
}),
|
|
839
|
-
U.length !== 0 && (U.length = 0,
|
|
840
|
-
},
|
|
968
|
+
}, yt();
|
|
969
|
+
}, xt = () => _t, St = (e) => (gt.add(e), () => {
|
|
970
|
+
gt.delete(e);
|
|
971
|
+
}), Ct = () => {
|
|
972
|
+
U.length !== 0 && (U.length = 0, yt());
|
|
973
|
+
}, wt = (e, t) => {
|
|
841
974
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
842
975
|
try {
|
|
843
976
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -847,12 +980,12 @@ var H = async (e, t) => {
|
|
|
847
980
|
});
|
|
848
981
|
} catch {}
|
|
849
982
|
return e;
|
|
850
|
-
}, G,
|
|
983
|
+
}, G, Tt = (e) => {
|
|
851
984
|
G = e;
|
|
852
|
-
},
|
|
985
|
+
}, Et = () => G, Dt = (e, t, n) => typeof e == "function" ? e(t, n) : e, Ot = 0, kt = () => `mut_${++Ot}`, At = 0, jt = () => {
|
|
853
986
|
let e = typeof crypto < "u" ? crypto : void 0;
|
|
854
|
-
return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${
|
|
855
|
-
},
|
|
987
|
+
return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${At += 1}`;
|
|
988
|
+
}, Mt = (e, t) => e.pipe(p.locallyWith(T.currentHeaders, (e) => w.set(e, "idempotency-key", t))), Nt = (e, t) => ({
|
|
856
989
|
update: (n, r) => {
|
|
857
990
|
e.update(n, r, t);
|
|
858
991
|
},
|
|
@@ -866,12 +999,12 @@ var H = async (e, t) => {
|
|
|
866
999
|
let [m, h] = c(!1), [g, _] = c(void 0), [v, y] = c(void 0), b = s(null), x = s(!1), S = n(async (n, o) => {
|
|
867
1000
|
let s = o?.onError !== void 0 || o?.notify?.error !== void 0, c = (e) => {
|
|
868
1001
|
o?.onError?.(e, n);
|
|
869
|
-
let t =
|
|
1002
|
+
let t = Dt(o?.notify?.error, e, n);
|
|
870
1003
|
t !== void 0 && G?.error(t);
|
|
871
1004
|
};
|
|
872
1005
|
h(!0), _(void 0);
|
|
873
|
-
let l =
|
|
874
|
-
|
|
1006
|
+
let l = kt(), d = o?.idempotencyKey ?? jt();
|
|
1007
|
+
bt({
|
|
875
1008
|
id: l,
|
|
876
1009
|
apiName: e,
|
|
877
1010
|
tag: t,
|
|
@@ -879,7 +1012,7 @@ var H = async (e, t) => {
|
|
|
879
1012
|
});
|
|
880
1013
|
let m = b.current, g = x.current;
|
|
881
1014
|
if (m) try {
|
|
882
|
-
m(
|
|
1015
|
+
m(Nt(i, l), n);
|
|
883
1016
|
} catch (e) {
|
|
884
1017
|
if (_(e), h(!1), i.revertByMutation(l), W(l, {
|
|
885
1018
|
status: "error",
|
|
@@ -897,7 +1030,7 @@ var H = async (e, t) => {
|
|
|
897
1030
|
source: "mutation",
|
|
898
1031
|
tag: t
|
|
899
1032
|
});
|
|
900
|
-
})), p.catchAll(() => p.void), p.zipRight(
|
|
1033
|
+
})), p.catchAll(() => p.void), p.zipRight(Mt(s(n), d))).pipe(p.withSpan(`client.mutation.${t}`, { attributes: {
|
|
901
1034
|
"voltro.api": e,
|
|
902
1035
|
"voltro.mutationId": l,
|
|
903
1036
|
"rpc.tag": t
|
|
@@ -906,10 +1039,10 @@ var H = async (e, t) => {
|
|
|
906
1039
|
status: "success",
|
|
907
1040
|
output: u
|
|
908
1041
|
}), i.confirmByMutation(l), o?.onSuccess?.(u, n);
|
|
909
|
-
let f =
|
|
1042
|
+
let f = Dt(o?.notify?.success, u, n);
|
|
910
1043
|
return f !== void 0 && G?.success(f), u;
|
|
911
1044
|
} catch (e) {
|
|
912
|
-
let n =
|
|
1045
|
+
let n = wt(e, v);
|
|
913
1046
|
if (_(n), W(l, {
|
|
914
1047
|
status: "error",
|
|
915
1048
|
error: n
|
|
@@ -947,7 +1080,7 @@ var H = async (e, t) => {
|
|
|
947
1080
|
g,
|
|
948
1081
|
v
|
|
949
1082
|
]);
|
|
950
|
-
},
|
|
1083
|
+
}, Pt = (e, t) => {
|
|
951
1084
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
952
1085
|
try {
|
|
953
1086
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -957,11 +1090,11 @@ var H = async (e, t) => {
|
|
|
957
1090
|
});
|
|
958
1091
|
} catch {}
|
|
959
1092
|
return e;
|
|
960
|
-
},
|
|
1093
|
+
}, Ft = (e, t, n) => typeof e == "function" ? e(t, n) : e, It = 0, Lt = () => `act_${++It}`, Rt = 15e3, zt = async (e, t, n) => {
|
|
961
1094
|
if (!P(e.current)) return e.current;
|
|
962
|
-
let r = Date.now() +
|
|
1095
|
+
let r = Date.now() + Rt;
|
|
963
1096
|
for (; Date.now() < r;) if (await new Promise((e) => setTimeout(e, 16)), !P(e.current)) return e.current;
|
|
964
|
-
throw Error(`Voltro: the api "${t}" did not resolve within ${
|
|
1097
|
+
throw Error(`Voltro: the api "${t}" did not resolve within ${Rt}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.`);
|
|
965
1098
|
}, q = (e, t) => {
|
|
966
1099
|
let r = N(e), { descriptors: i, errorBus: a } = r, l = s(r);
|
|
967
1100
|
if (l.current = r, process.env.NODE_ENV !== "production") {
|
|
@@ -971,8 +1104,8 @@ var H = async (e, t) => {
|
|
|
971
1104
|
let [u, d] = c(!1), [f, m] = c(void 0), [h, g] = c(void 0), _ = n(async (n, r) => {
|
|
972
1105
|
let i = r?.onError !== void 0 || r?.notify?.error !== void 0;
|
|
973
1106
|
d(!0), m(void 0);
|
|
974
|
-
let o =
|
|
975
|
-
|
|
1107
|
+
let o = Lt(), s = r?.idempotencyKey ?? jt();
|
|
1108
|
+
bt({
|
|
976
1109
|
id: o,
|
|
977
1110
|
apiName: e,
|
|
978
1111
|
tag: t,
|
|
@@ -980,14 +1113,14 @@ var H = async (e, t) => {
|
|
|
980
1113
|
});
|
|
981
1114
|
let c;
|
|
982
1115
|
try {
|
|
983
|
-
let { runtime: i, client: a } = await
|
|
1116
|
+
let { runtime: i, client: a } = await zt(l, e, t), u = B(a, t), d = await H(i, p.currentSpan.pipe(p.tap((e) => p.sync(() => {
|
|
984
1117
|
c = e.traceId, D({
|
|
985
1118
|
traceId: e.traceId,
|
|
986
1119
|
spanId: e.spanId,
|
|
987
1120
|
source: "action",
|
|
988
1121
|
tag: t
|
|
989
1122
|
});
|
|
990
|
-
})), p.catchAll(() => p.void), p.zipRight(
|
|
1123
|
+
})), p.catchAll(() => p.void), p.zipRight(Mt(u(n), s))).pipe(p.withSpan(`client.action.${t}`, { attributes: {
|
|
991
1124
|
"voltro.api": e,
|
|
992
1125
|
"voltro.actionId": o,
|
|
993
1126
|
"rpc.tag": t
|
|
@@ -996,10 +1129,10 @@ var H = async (e, t) => {
|
|
|
996
1129
|
status: "success",
|
|
997
1130
|
output: d
|
|
998
1131
|
}), r?.onSuccess?.(d, n);
|
|
999
|
-
let f =
|
|
1000
|
-
return f !== void 0 &&
|
|
1132
|
+
let f = Ft(r?.notify?.success, d, n);
|
|
1133
|
+
return f !== void 0 && Et()?.success(f), d;
|
|
1001
1134
|
} catch (e) {
|
|
1002
|
-
let s =
|
|
1135
|
+
let s = Pt(e, c);
|
|
1003
1136
|
if (m(s), W(o, {
|
|
1004
1137
|
status: "error",
|
|
1005
1138
|
error: s
|
|
@@ -1010,8 +1143,8 @@ var H = async (e, t) => {
|
|
|
1010
1143
|
...c === void 0 ? {} : { traceId: c }
|
|
1011
1144
|
}), i) {
|
|
1012
1145
|
r?.onError?.(s, n);
|
|
1013
|
-
let e =
|
|
1014
|
-
e !== void 0 &&
|
|
1146
|
+
let e = Ft(r?.notify?.error, s, n);
|
|
1147
|
+
e !== void 0 && Et()?.error(e);
|
|
1015
1148
|
return;
|
|
1016
1149
|
}
|
|
1017
1150
|
throw s;
|
|
@@ -1034,52 +1167,75 @@ var H = async (e, t) => {
|
|
|
1034
1167
|
f,
|
|
1035
1168
|
h
|
|
1036
1169
|
]);
|
|
1037
|
-
},
|
|
1038
|
-
useSubscription: (t, n, r) =>
|
|
1170
|
+
}, Bt = V, Vt = (e) => ({
|
|
1171
|
+
useSubscription: (t, n, r) => Bt(e, t, n, r),
|
|
1039
1172
|
useMutation: (t) => K(e, t),
|
|
1040
1173
|
useAction: (t) => q(e, t)
|
|
1041
|
-
}),
|
|
1042
|
-
|
|
1043
|
-
},
|
|
1044
|
-
let i =
|
|
1174
|
+
}), Ht = () => ({ seeds: [] }), J = null, Ut = (e) => {
|
|
1175
|
+
J = e;
|
|
1176
|
+
}, Y = /* @__PURE__ */ new Map(), Wt = (e, t) => `${e}\u0000${t}`, Gt = (e, t, n, r) => {
|
|
1177
|
+
let i = J?.() ?? null;
|
|
1045
1178
|
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.)`);
|
|
1046
1179
|
i.seeds.push({
|
|
1047
1180
|
api: e,
|
|
1048
1181
|
key: O([t, n]),
|
|
1049
1182
|
value: r
|
|
1050
1183
|
});
|
|
1051
|
-
},
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1184
|
+
}, Kt = (e, t, n) => {
|
|
1185
|
+
let r = J?.() ?? null;
|
|
1186
|
+
r !== null && r.seeds.push({
|
|
1187
|
+
api: e,
|
|
1188
|
+
key: O([t, n]),
|
|
1189
|
+
value: void 0,
|
|
1190
|
+
failed: !0
|
|
1191
|
+
});
|
|
1192
|
+
}, qt = (e) => {
|
|
1193
|
+
if (e !== void 0) for (let t of e) Y.set(Wt(t.api, t.key), {
|
|
1194
|
+
value: t.value,
|
|
1195
|
+
failed: t.failed === !0
|
|
1196
|
+
});
|
|
1197
|
+
}, Jt = (e, t, n) => {
|
|
1198
|
+
let r = O([t, n]), i = J?.() ?? null;
|
|
1055
1199
|
if (i !== null) {
|
|
1056
|
-
for (let t of i.seeds) if (t.api === e && t.key === r) return t.value;
|
|
1200
|
+
for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? void 0 : t.value;
|
|
1057
1201
|
return;
|
|
1058
1202
|
}
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1203
|
+
let a = Y.get(Wt(e, r));
|
|
1204
|
+
return a === void 0 || a.failed ? void 0 : a.value;
|
|
1205
|
+
}, Yt = (e, t, n) => {
|
|
1206
|
+
let r = O([t, n]), i = J?.() ?? null;
|
|
1207
|
+
if (i !== null) {
|
|
1208
|
+
for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? "failed" : "seeded";
|
|
1209
|
+
return "absent";
|
|
1210
|
+
}
|
|
1211
|
+
let a = Y.get(Wt(e, r));
|
|
1212
|
+
return a === void 0 ? "absent" : a.failed ? "failed" : "seeded";
|
|
1213
|
+
}, Xt = () => {
|
|
1214
|
+
Y.clear();
|
|
1062
1215
|
};
|
|
1063
1216
|
//#endregion
|
|
1064
1217
|
//#region src/usePreloadedSubscription.ts
|
|
1065
|
-
function
|
|
1066
|
-
let i =
|
|
1067
|
-
return V(e, t, n, i === void 0 ? r : {
|
|
1218
|
+
function Zt(e, t, n = {}, r = {}) {
|
|
1219
|
+
let i = Jt(e, t, n), a = V(e, t, n, i === void 0 ? r : {
|
|
1068
1220
|
...r,
|
|
1069
1221
|
initialSnapshot: i
|
|
1070
1222
|
});
|
|
1223
|
+
return Yt(e, t, n) === "failed" ? {
|
|
1224
|
+
...a,
|
|
1225
|
+
preloadFailed: !0
|
|
1226
|
+
} : a;
|
|
1071
1227
|
}
|
|
1072
1228
|
//#endregion
|
|
1073
1229
|
//#region src/useEvent.ts
|
|
1074
|
-
var
|
|
1230
|
+
var Qt = {
|
|
1075
1231
|
status: "idle",
|
|
1076
1232
|
missed: 0,
|
|
1077
1233
|
lastMiss: void 0
|
|
1078
|
-
},
|
|
1234
|
+
}, $t = class {
|
|
1079
1235
|
_tag = "EventStreamClosed";
|
|
1080
1236
|
};
|
|
1081
|
-
function
|
|
1082
|
-
let { skip: o = !1, apiName: l = "app", onMissed: u } = i, d = N(l), { runtime: f, client: m } = d, [h, g] = c(
|
|
1237
|
+
function en(e, t, r, i = {}) {
|
|
1238
|
+
let { skip: o = !1, apiName: l = "app", onMissed: u } = i, d = N(l), { runtime: f, client: m } = d, [h, g] = c(Qt), _ = s(r);
|
|
1083
1239
|
_.current = r;
|
|
1084
1240
|
let v = s(u);
|
|
1085
1241
|
v.current = u;
|
|
@@ -1106,7 +1262,7 @@ function Ht(e, t, r, i = {}) {
|
|
|
1106
1262
|
}, []), E = !o && w !== null && !P(d);
|
|
1107
1263
|
return a(() => {
|
|
1108
1264
|
if (!E) {
|
|
1109
|
-
g(
|
|
1265
|
+
g(Qt);
|
|
1110
1266
|
return;
|
|
1111
1267
|
}
|
|
1112
1268
|
g((e) => ({
|
|
@@ -1124,7 +1280,7 @@ function Ht(e, t, r, i = {}) {
|
|
|
1124
1280
|
});
|
|
1125
1281
|
}), r = x.unwrap(n).pipe(x.tap(() => p.sync(() => {
|
|
1126
1282
|
t = 0;
|
|
1127
|
-
})), x.concat(x.fail(new
|
|
1283
|
+
})), x.concat(x.fail(new $t())), x.retry(y.exponential("250 millis", 2).pipe(y.either(y.spaced("30 seconds")), y.jittered, y.tapOutput(() => p.sync(() => {
|
|
1128
1284
|
t += 1, g((e) => ({
|
|
1129
1285
|
...e,
|
|
1130
1286
|
status: "connecting"
|
|
@@ -1151,11 +1307,11 @@ function Ht(e, t, r, i = {}) {
|
|
|
1151
1307
|
w,
|
|
1152
1308
|
e.name,
|
|
1153
1309
|
te
|
|
1154
|
-
]), E ? h :
|
|
1310
|
+
]), E ? h : Qt;
|
|
1155
1311
|
}
|
|
1156
1312
|
//#endregion
|
|
1157
1313
|
//#region src/sequence.ts
|
|
1158
|
-
var
|
|
1314
|
+
var tn = () => {
|
|
1159
1315
|
let e = (t) => ({
|
|
1160
1316
|
steps: t,
|
|
1161
1317
|
step: ((n, r, i) => e([...t, {
|
|
@@ -1167,7 +1323,7 @@ var Ut = () => {
|
|
|
1167
1323
|
}]))
|
|
1168
1324
|
});
|
|
1169
1325
|
return e([]);
|
|
1170
|
-
},
|
|
1326
|
+
}, nn = async (e, t = {}) => {
|
|
1171
1327
|
let n = {}, r = [];
|
|
1172
1328
|
for (let i of e.steps) {
|
|
1173
1329
|
if (i.when !== void 0 && !i.when(n)) {
|
|
@@ -1227,13 +1383,13 @@ var Ut = () => {
|
|
|
1227
1383
|
ok: !0,
|
|
1228
1384
|
data: n
|
|
1229
1385
|
};
|
|
1230
|
-
},
|
|
1386
|
+
}, rn = (e = {}) => {
|
|
1231
1387
|
let [t, r] = c(!1), [i, a] = c(void 0), [o, l] = c(void 0), u = s(e);
|
|
1232
1388
|
return u.current = e, {
|
|
1233
1389
|
run: n(async (e, t = {}) => {
|
|
1234
1390
|
r(!0), a(void 0), l(void 0);
|
|
1235
1391
|
try {
|
|
1236
|
-
let n = await
|
|
1392
|
+
let n = await nn(e, {
|
|
1237
1393
|
...u.current,
|
|
1238
1394
|
...t
|
|
1239
1395
|
});
|
|
@@ -1246,7 +1402,7 @@ var Ut = () => {
|
|
|
1246
1402
|
error: i,
|
|
1247
1403
|
failedStep: o
|
|
1248
1404
|
};
|
|
1249
|
-
},
|
|
1405
|
+
}, an = "storage.mintUploadTicket", on = "storage.mintPresignedUpload", sn = "storage.finalizeUpload", cn = "storage.beginResumableUpload", ln = "storage.beginMultipartUpload", un = "storage.signMultipartPart", dn = "storage.completeMultipartUpload", fn = "storage.abortMultipartUpload", pn = (e, t, n, r) => new Promise((i, a) => {
|
|
1250
1406
|
let o = new XMLHttpRequest();
|
|
1251
1407
|
if (o.open("PUT", e), o.upload.onprogress = (e) => {
|
|
1252
1408
|
e.lengthComputable && n(e.loaded / e.total);
|
|
@@ -1260,7 +1416,7 @@ var Ut = () => {
|
|
|
1260
1416
|
return;
|
|
1261
1417
|
}
|
|
1262
1418
|
r.addEventListener("abort", () => o.abort(), { once: !0 }), o.send(t);
|
|
1263
|
-
}),
|
|
1419
|
+
}), mn = (e, t, n, r, i, a) => new Promise((o, s) => {
|
|
1264
1420
|
let c = new XMLHttpRequest();
|
|
1265
1421
|
if (c.open("POST", e), c.setRequestHeader("content-type", t), c.upload.onprogress = (e) => {
|
|
1266
1422
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1278,7 +1434,7 @@ var Ut = () => {
|
|
|
1278
1434
|
return;
|
|
1279
1435
|
}
|
|
1280
1436
|
i.addEventListener("abort", () => c.abort(), { once: !0 }), c.send(n);
|
|
1281
|
-
}),
|
|
1437
|
+
}), hn = (e, t, n, r, i) => new Promise((a, o) => {
|
|
1282
1438
|
let s = new XMLHttpRequest();
|
|
1283
1439
|
if (s.open("PUT", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
1284
1440
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1289,7 +1445,7 @@ var Ut = () => {
|
|
|
1289
1445
|
return;
|
|
1290
1446
|
}
|
|
1291
1447
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
1292
|
-
}),
|
|
1448
|
+
}), gn = (e, t, n, r, i) => new Promise((a, o) => {
|
|
1293
1449
|
let s = new XMLHttpRequest();
|
|
1294
1450
|
if (s.open("POST", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
1295
1451
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1305,13 +1461,13 @@ var Ut = () => {
|
|
|
1305
1461
|
return;
|
|
1306
1462
|
}
|
|
1307
1463
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
1308
|
-
}),
|
|
1464
|
+
}), _n = (e, t = {}) => {
|
|
1309
1465
|
let { runtime: r, client: i, inspectBaseUrl: a, errorBus: l } = N(e), [u, d] = c(0), [f, p] = c("idle"), [m, h] = c(void 0), g = s(null), _ = n(() => {
|
|
1310
1466
|
d(0), p("idle"), h(void 0);
|
|
1311
1467
|
}, []), v = n(() => {
|
|
1312
1468
|
g.current?.abort();
|
|
1313
1469
|
}, []), y = n((e) => /^https?:\/\//.test(e) ? e : `${a}${e}`, [a]), b = n(async (e, n, a, o) => {
|
|
1314
|
-
let s = Math.max(0, n.retries ?? t.retries ?? 1), c = (e instanceof File, e.type
|
|
1470
|
+
let s = Math.max(0, n.retries ?? t.retries ?? 1), c = (e instanceof File, e.type || "application/octet-stream"), l = e instanceof File ? e.name : "blob", u = n.visibility ?? t.visibility, d = n.key ?? t.key, f = n.folder ?? t.folder, p = n.tags ?? t.tags, m = {
|
|
1315
1471
|
...u ? { visibility: u } : {},
|
|
1316
1472
|
...f ? { folder: f } : {},
|
|
1317
1473
|
...p ? { tags: p } : {},
|
|
@@ -1326,14 +1482,14 @@ var Ut = () => {
|
|
|
1326
1482
|
...e.width === void 0 ? {} : { width: e.width },
|
|
1327
1483
|
...e.height === void 0 ? {} : { height: e.height }
|
|
1328
1484
|
}), g = async () => {
|
|
1329
|
-
let s = n.mintTag ?? t.mintTag ??
|
|
1485
|
+
let s = n.mintTag ?? t.mintTag ?? an, l = B(i, s), u = await H(r, l({
|
|
1330
1486
|
contentType: c,
|
|
1331
1487
|
...m,
|
|
1332
1488
|
...d ? { key: d } : {}
|
|
1333
|
-
})), f = await
|
|
1489
|
+
})), f = await gn(y(u.uploadUrl), c, e, o, a);
|
|
1334
1490
|
return h(f);
|
|
1335
1491
|
}, _ = async () => {
|
|
1336
|
-
let s = n.presignMintTag ?? t.presignMintTag ??
|
|
1492
|
+
let s = n.presignMintTag ?? t.presignMintTag ?? on, l = n.finalizeTag ?? t.finalizeTag ?? sn, u;
|
|
1337
1493
|
try {
|
|
1338
1494
|
let e = B(i, s);
|
|
1339
1495
|
u = await H(r, e({
|
|
@@ -1343,11 +1499,11 @@ var Ut = () => {
|
|
|
1343
1499
|
} catch {
|
|
1344
1500
|
return null;
|
|
1345
1501
|
}
|
|
1346
|
-
await
|
|
1502
|
+
await hn(u.uploadUrl, c, e, o, a);
|
|
1347
1503
|
let d = B(i, l), f = await H(r, d({ finalizeToken: u.finalizeToken }));
|
|
1348
1504
|
return h(f);
|
|
1349
1505
|
}, v = async () => {
|
|
1350
|
-
let s = n.beginResumableTag ?? t.beginResumableTag ??
|
|
1506
|
+
let s = n.beginResumableTag ?? t.beginResumableTag ?? cn, l = B(i, s), u = e.size, d = n.chunkSize ?? t.chunkSize, f = await H(r, l({
|
|
1351
1507
|
contentType: c,
|
|
1352
1508
|
size: u,
|
|
1353
1509
|
...m,
|
|
@@ -1358,7 +1514,7 @@ var Ut = () => {
|
|
|
1358
1514
|
for (;;) {
|
|
1359
1515
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1360
1516
|
try {
|
|
1361
|
-
let e = await
|
|
1517
|
+
let e = await mn(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
|
|
1362
1518
|
s && (x = e);
|
|
1363
1519
|
break;
|
|
1364
1520
|
} catch (e) {
|
|
@@ -1370,7 +1526,7 @@ var Ut = () => {
|
|
|
1370
1526
|
if (!x) throw Error("resumable upload produced no final reply");
|
|
1371
1527
|
return h(x);
|
|
1372
1528
|
}, b = async () => {
|
|
1373
|
-
let s = n.multipartBeginTag ?? t.multipartBeginTag ??
|
|
1529
|
+
let s = n.multipartBeginTag ?? t.multipartBeginTag ?? ln, u = n.multipartSignTag ?? t.multipartSignTag ?? un, d = n.multipartCompleteTag ?? t.multipartCompleteTag ?? dn, f = n.multipartAbortTag ?? t.multipartAbortTag ?? fn, p = e.size, h = n.chunkSize ?? t.chunkSize, g;
|
|
1374
1530
|
try {
|
|
1375
1531
|
let e = B(i, s);
|
|
1376
1532
|
g = await H(r, e({
|
|
@@ -1392,7 +1548,7 @@ var Ut = () => {
|
|
|
1392
1548
|
let { url: e } = await H(r, _({
|
|
1393
1549
|
multipartToken: g.multipartToken,
|
|
1394
1550
|
partNumber: c
|
|
1395
|
-
})), t = await
|
|
1551
|
+
})), t = await pn(e, s, (e) => o((T + e * l) / p), a);
|
|
1396
1552
|
w.push({
|
|
1397
1553
|
partNumber: c,
|
|
1398
1554
|
etag: t
|
|
@@ -1466,7 +1622,7 @@ var Ut = () => {
|
|
|
1466
1622
|
} catch (e) {
|
|
1467
1623
|
throw p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
|
|
1468
1624
|
source: "action",
|
|
1469
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
1625
|
+
tag: n.mintTag ?? t.mintTag ?? an,
|
|
1470
1626
|
error: e
|
|
1471
1627
|
}), e;
|
|
1472
1628
|
}
|
|
@@ -1492,7 +1648,7 @@ var Ut = () => {
|
|
|
1492
1648
|
} catch (e) {
|
|
1493
1649
|
throw r.abort(), p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
|
|
1494
1650
|
source: "action",
|
|
1495
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
1651
|
+
tag: n.mintTag ?? t.mintTag ?? an,
|
|
1496
1652
|
error: e
|
|
1497
1653
|
}), e;
|
|
1498
1654
|
}
|
|
@@ -1537,7 +1693,7 @@ var Ut = () => {
|
|
|
1537
1693
|
w,
|
|
1538
1694
|
T
|
|
1539
1695
|
]);
|
|
1540
|
-
},
|
|
1696
|
+
}, X = async (e) => {
|
|
1541
1697
|
let t = B(e.client, e.tag), n = p.currentSpan.pipe(p.tap((t) => p.sync(() => {
|
|
1542
1698
|
D({
|
|
1543
1699
|
traceId: t.traceId,
|
|
@@ -1550,7 +1706,7 @@ var Ut = () => {
|
|
|
1550
1706
|
"rpc.tag": e.tag
|
|
1551
1707
|
} }));
|
|
1552
1708
|
return H(e.runtime, n);
|
|
1553
|
-
},
|
|
1709
|
+
}, vn = (e, t) => {
|
|
1554
1710
|
let { runtime: r, client: i, descriptors: a } = N(e);
|
|
1555
1711
|
if (process.env.NODE_ENV !== "production") {
|
|
1556
1712
|
let n = a[t]?.kind;
|
|
@@ -1559,7 +1715,7 @@ var Ut = () => {
|
|
|
1559
1715
|
let [s, l] = c(!1), [u, d] = c(void 0), [f, p] = c(void 0), m = n(async (n) => {
|
|
1560
1716
|
l(!0), d(void 0);
|
|
1561
1717
|
try {
|
|
1562
|
-
let a = await
|
|
1718
|
+
let a = await X({
|
|
1563
1719
|
apiName: e,
|
|
1564
1720
|
runtime: r,
|
|
1565
1721
|
client: i,
|
|
@@ -1579,7 +1735,7 @@ var Ut = () => {
|
|
|
1579
1735
|
i,
|
|
1580
1736
|
t
|
|
1581
1737
|
]), h = n(async (t) => {
|
|
1582
|
-
await
|
|
1738
|
+
await X({
|
|
1583
1739
|
apiName: e,
|
|
1584
1740
|
runtime: r,
|
|
1585
1741
|
client: i,
|
|
@@ -1592,7 +1748,7 @@ var Ut = () => {
|
|
|
1592
1748
|
r,
|
|
1593
1749
|
i
|
|
1594
1750
|
]), g = n(async (t) => {
|
|
1595
|
-
await
|
|
1751
|
+
await X({
|
|
1596
1752
|
apiName: e,
|
|
1597
1753
|
runtime: r,
|
|
1598
1754
|
client: i,
|
|
@@ -1604,7 +1760,7 @@ var Ut = () => {
|
|
|
1604
1760
|
e,
|
|
1605
1761
|
r,
|
|
1606
1762
|
i
|
|
1607
|
-
]), _ = n(async (t, n, a) =>
|
|
1763
|
+
]), _ = n(async (t, n, a) => X({
|
|
1608
1764
|
apiName: e,
|
|
1609
1765
|
runtime: r,
|
|
1610
1766
|
client: i,
|
|
@@ -1619,7 +1775,7 @@ var Ut = () => {
|
|
|
1619
1775
|
e,
|
|
1620
1776
|
r,
|
|
1621
1777
|
i
|
|
1622
|
-
]), v = n(async (t, n, a, o) =>
|
|
1778
|
+
]), v = n(async (t, n, a, o) => X({
|
|
1623
1779
|
apiName: e,
|
|
1624
1780
|
runtime: r,
|
|
1625
1781
|
client: i,
|
|
@@ -1655,11 +1811,11 @@ var Ut = () => {
|
|
|
1655
1811
|
u,
|
|
1656
1812
|
f
|
|
1657
1813
|
]);
|
|
1658
|
-
},
|
|
1814
|
+
}, yn = (e) => {
|
|
1659
1815
|
let { runtime: t, client: r } = N(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o) => {
|
|
1660
1816
|
a(!0), l(void 0);
|
|
1661
1817
|
try {
|
|
1662
|
-
let a = await
|
|
1818
|
+
let a = await X({
|
|
1663
1819
|
apiName: e,
|
|
1664
1820
|
runtime: t,
|
|
1665
1821
|
client: r,
|
|
@@ -1693,11 +1849,11 @@ var Ut = () => {
|
|
|
1693
1849
|
s,
|
|
1694
1850
|
u
|
|
1695
1851
|
]);
|
|
1696
|
-
},
|
|
1852
|
+
}, bn = (e) => {
|
|
1697
1853
|
let { runtime: t, client: r } = N(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o, s) => {
|
|
1698
1854
|
a(!0), l(void 0);
|
|
1699
1855
|
try {
|
|
1700
|
-
let a = await
|
|
1856
|
+
let a = await X({
|
|
1701
1857
|
apiName: e,
|
|
1702
1858
|
runtime: t,
|
|
1703
1859
|
client: r,
|
|
@@ -1732,7 +1888,7 @@ var Ut = () => {
|
|
|
1732
1888
|
s,
|
|
1733
1889
|
u
|
|
1734
1890
|
]);
|
|
1735
|
-
},
|
|
1891
|
+
}, xn = (e, t) => {
|
|
1736
1892
|
let n = V(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
|
|
1737
1893
|
return n.loading || n.idle ? {
|
|
1738
1894
|
...n,
|
|
@@ -1741,7 +1897,7 @@ var Ut = () => {
|
|
|
1741
1897
|
...n,
|
|
1742
1898
|
run: n.data[0]
|
|
1743
1899
|
};
|
|
1744
|
-
},
|
|
1900
|
+
}, Sn = (e, t = {}, n = {}) => {
|
|
1745
1901
|
let r = V(e, "__voltro.workflow.runs", t, n);
|
|
1746
1902
|
return r.loading || r.idle ? {
|
|
1747
1903
|
...r,
|
|
@@ -1750,7 +1906,7 @@ var Ut = () => {
|
|
|
1750
1906
|
...r,
|
|
1751
1907
|
runs: r.data
|
|
1752
1908
|
};
|
|
1753
|
-
},
|
|
1909
|
+
}, Cn = (e, t) => {
|
|
1754
1910
|
let n = V(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1755
1911
|
return n.loading || n.idle ? {
|
|
1756
1912
|
...n,
|
|
@@ -1759,7 +1915,7 @@ var Ut = () => {
|
|
|
1759
1915
|
...n,
|
|
1760
1916
|
steps: n.data
|
|
1761
1917
|
};
|
|
1762
|
-
},
|
|
1918
|
+
}, wn = (e, t) => {
|
|
1763
1919
|
let n = V(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1764
1920
|
return n.loading || n.idle ? {
|
|
1765
1921
|
...n,
|
|
@@ -1768,7 +1924,7 @@ var Ut = () => {
|
|
|
1768
1924
|
...n,
|
|
1769
1925
|
events: n.data
|
|
1770
1926
|
};
|
|
1771
|
-
},
|
|
1927
|
+
}, Tn = wn, En = (e, t = {}, n = {}) => {
|
|
1772
1928
|
let r = V(e, "__voltro.workflow.domainEvents", t, n);
|
|
1773
1929
|
return r.loading || r.idle ? {
|
|
1774
1930
|
...r,
|
|
@@ -1777,7 +1933,7 @@ var Ut = () => {
|
|
|
1777
1933
|
...r,
|
|
1778
1934
|
events: r.data
|
|
1779
1935
|
};
|
|
1780
|
-
},
|
|
1936
|
+
}, Dn = (e, t) => {
|
|
1781
1937
|
let n = V(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
|
|
1782
1938
|
return n.loading || n.idle ? {
|
|
1783
1939
|
...n,
|
|
@@ -1786,42 +1942,42 @@ var Ut = () => {
|
|
|
1786
1942
|
...n,
|
|
1787
1943
|
deliveries: n.data
|
|
1788
1944
|
};
|
|
1789
|
-
},
|
|
1945
|
+
}, On = (e, t) => {
|
|
1790
1946
|
let n = e.payload;
|
|
1791
1947
|
if (!n || typeof n != "object") return;
|
|
1792
1948
|
let r = n[t];
|
|
1793
1949
|
return typeof r == "string" ? r : void 0;
|
|
1794
|
-
},
|
|
1950
|
+
}, kn = (e) => {
|
|
1795
1951
|
let t = e.payload;
|
|
1796
1952
|
if (!t || typeof t != "object") return;
|
|
1797
1953
|
let n = t.updateId;
|
|
1798
1954
|
return typeof n == "string" ? n : void 0;
|
|
1799
|
-
},
|
|
1955
|
+
}, An = (e) => {
|
|
1800
1956
|
let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
1801
1957
|
for (let r of e) if (r.eventType === "signal-received") {
|
|
1802
|
-
let e =
|
|
1958
|
+
let e = On(r, "signalName");
|
|
1803
1959
|
e && t.add(e);
|
|
1804
1960
|
} else if (r.eventType === "update-completed" || r.eventType === "update-failed") {
|
|
1805
|
-
let e =
|
|
1961
|
+
let e = kn(r);
|
|
1806
1962
|
e && n.add(e);
|
|
1807
1963
|
}
|
|
1808
1964
|
for (let r = e.length - 1; r >= 0; --r) {
|
|
1809
1965
|
let i = e[r];
|
|
1810
1966
|
if (i.eventType === "signal-awaited") {
|
|
1811
|
-
let e =
|
|
1967
|
+
let e = On(i, "signalName");
|
|
1812
1968
|
if (e && !t.has(e)) return {
|
|
1813
1969
|
name: e,
|
|
1814
1970
|
kind: "signal"
|
|
1815
1971
|
};
|
|
1816
1972
|
} else if (i.eventType === "update-requested") {
|
|
1817
|
-
let e =
|
|
1973
|
+
let e = kn(i), t = On(i, "updateName");
|
|
1818
1974
|
if (t && (!e || !n.has(e))) return {
|
|
1819
1975
|
name: t,
|
|
1820
1976
|
kind: "update"
|
|
1821
1977
|
};
|
|
1822
1978
|
}
|
|
1823
1979
|
}
|
|
1824
|
-
},
|
|
1980
|
+
}, jn = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), Mn = (e, t) => {
|
|
1825
1981
|
if (!e || e.status !== "failed") return;
|
|
1826
1982
|
let n = t.find((e) => e.status === "failed");
|
|
1827
1983
|
return {
|
|
@@ -1829,8 +1985,8 @@ var Ut = () => {
|
|
|
1829
1985
|
message: e.errorMessage,
|
|
1830
1986
|
step: n?.stepName
|
|
1831
1987
|
};
|
|
1832
|
-
},
|
|
1833
|
-
let r =
|
|
1988
|
+
}, Nn = (e, t) => {
|
|
1989
|
+
let r = xn(e, t), i = Cn(e, t), a = wn(e, t), s = vn(e, r.run?.tag ?? ""), c = r.run, l = i.steps, u = a.events, d = n(async () => {
|
|
1834
1990
|
if (!c) throw Error("useWorkflowRunState: no run loaded — cannot cancel");
|
|
1835
1991
|
await s.cancel({
|
|
1836
1992
|
workflowName: c.tag,
|
|
@@ -1854,9 +2010,9 @@ var Ut = () => {
|
|
|
1854
2010
|
status: c?.status,
|
|
1855
2011
|
steps: l,
|
|
1856
2012
|
events: u,
|
|
1857
|
-
currentStep:
|
|
1858
|
-
waitingFor: c?.status === "suspended" ?
|
|
1859
|
-
error:
|
|
2013
|
+
currentStep: jn(l),
|
|
2014
|
+
waitingFor: c?.status === "suspended" ? An(u) : void 0,
|
|
2015
|
+
error: Mn(c, l),
|
|
1860
2016
|
traceId: c?.traceId,
|
|
1861
2017
|
loading: r.data === void 0,
|
|
1862
2018
|
cancel: d,
|
|
@@ -1873,7 +2029,7 @@ var Ut = () => {
|
|
|
1873
2029
|
p,
|
|
1874
2030
|
m
|
|
1875
2031
|
]);
|
|
1876
|
-
},
|
|
2032
|
+
}, Pn = (e, t) => {
|
|
1877
2033
|
let { runtime: r, client: i } = N(e), [a, o] = c([]), [l, d] = c("idle"), [f, m] = c(void 0), g = s(null), _ = n(() => {
|
|
1878
2034
|
let e = g.current;
|
|
1879
2035
|
e && (g.current = null, r.runFork(h.interrupt(e)), d((e) => e === "streaming" ? "idle" : e));
|
|
@@ -1901,7 +2057,7 @@ var Ut = () => {
|
|
|
1901
2057
|
]),
|
|
1902
2058
|
cancel: _
|
|
1903
2059
|
};
|
|
1904
|
-
},
|
|
2060
|
+
}, Fn = (e, t, n, r) => {
|
|
1905
2061
|
let i = 0, a = !1, o = (e) => p.sync(() => {
|
|
1906
2062
|
e.seq <= i || (i = e.seq, n.onEvent(e.event), r.isTerminal(e.event) && (a = !0));
|
|
1907
2063
|
}), s = (e, t, a) => {
|
|
@@ -1924,15 +2080,15 @@ var Ut = () => {
|
|
|
1924
2080
|
}));
|
|
1925
2081
|
});
|
|
1926
2082
|
return c(0);
|
|
1927
|
-
},
|
|
2083
|
+
}, In = (e) => {
|
|
1928
2084
|
let t = e?._tag;
|
|
1929
2085
|
return t === "done" || t === "error";
|
|
1930
|
-
},
|
|
2086
|
+
}, Ln = (e, t, r = {}) => {
|
|
1931
2087
|
let { runtime: i, client: a } = N(e), [o, l] = c([]), [u, d] = c("idle"), [f, p] = c(0), [m, g] = c(void 0), _ = s(null), v = {
|
|
1932
2088
|
maxReconnects: r.maxReconnects ?? 6,
|
|
1933
2089
|
backoffMs: r.backoffMs ?? 400,
|
|
1934
2090
|
maxBackoffMs: r.maxBackoffMs ?? 8e3,
|
|
1935
|
-
isTerminal: r.isTerminal ??
|
|
2091
|
+
isTerminal: r.isTerminal ?? In
|
|
1936
2092
|
}, y = n(() => {
|
|
1937
2093
|
let e = _.current;
|
|
1938
2094
|
e && (_.current = null, i.runFork(h.interrupt(e)), d((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
|
|
@@ -1951,7 +2107,7 @@ var Ut = () => {
|
|
|
1951
2107
|
onReconnect: () => p((e) => e + 1),
|
|
1952
2108
|
onError: g
|
|
1953
2109
|
};
|
|
1954
|
-
_.current = i.runFork(
|
|
2110
|
+
_.current = i.runFork(Fn(r, e, o, v));
|
|
1955
2111
|
}, [
|
|
1956
2112
|
i,
|
|
1957
2113
|
a,
|
|
@@ -1963,13 +2119,13 @@ var Ut = () => {
|
|
|
1963
2119
|
]),
|
|
1964
2120
|
cancel: y
|
|
1965
2121
|
};
|
|
1966
|
-
},
|
|
2122
|
+
}, Rn = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), zn = (e) => {
|
|
1967
2123
|
for (let t = e.length - 1; t >= 0; --t) {
|
|
1968
2124
|
let n = e[t];
|
|
1969
2125
|
if (n.role === "user" && n.content) return n.content;
|
|
1970
2126
|
}
|
|
1971
|
-
},
|
|
1972
|
-
let { threadId: i } = r, a = V(e, `${t}.messages`, { threadId: i }), s = q(e, `${t}.send`), c = o(() => [...a.data ?? []].sort(
|
|
2127
|
+
}, Bn = (e, t, r) => {
|
|
2128
|
+
let { threadId: i } = r, a = V(e, `${t}.messages`, { threadId: i }), s = q(e, `${t}.send`), c = o(() => [...a.data ?? []].sort(Rn), [a.data]), l = n((e, t = {}) => s.run({
|
|
1973
2129
|
threadId: i,
|
|
1974
2130
|
order: a.data?.length ?? 0,
|
|
1975
2131
|
prompt: e,
|
|
@@ -1979,7 +2135,7 @@ var Ut = () => {
|
|
|
1979
2135
|
i,
|
|
1980
2136
|
a.data
|
|
1981
2137
|
]), u = n(() => {
|
|
1982
|
-
let e =
|
|
2138
|
+
let e = zn(c);
|
|
1983
2139
|
return e === void 0 ? void 0 : l(e);
|
|
1984
2140
|
}, [c, l]);
|
|
1985
2141
|
return o(() => ({
|
|
@@ -1999,8 +2155,8 @@ var Ut = () => {
|
|
|
1999
2155
|
l,
|
|
2000
2156
|
u
|
|
2001
2157
|
]);
|
|
2002
|
-
},
|
|
2003
|
-
let { events: r, status: i, error: l, start: u, cancel: d } =
|
|
2158
|
+
}, Vn = (e, t) => {
|
|
2159
|
+
let { events: r, status: i, error: l, start: u, cancel: d } = Pn(e, t), [f, p] = c([]), m = s(null), h = o(() => r.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [r]);
|
|
2004
2160
|
return a(() => {
|
|
2005
2161
|
if (i !== "done" || m.current === null) return;
|
|
2006
2162
|
let e = m.current;
|
|
@@ -2026,7 +2182,7 @@ var Ut = () => {
|
|
|
2026
2182
|
}, [u]),
|
|
2027
2183
|
cancel: d
|
|
2028
2184
|
};
|
|
2029
|
-
},
|
|
2185
|
+
}, Hn = (e, t) => {
|
|
2030
2186
|
let r = q(e, t), [i, a] = c(void 0), s = n(async (e) => {
|
|
2031
2187
|
let t = await r.run({ question: e });
|
|
2032
2188
|
return a(t), t;
|
|
@@ -2044,43 +2200,43 @@ var Ut = () => {
|
|
|
2044
2200
|
r.error,
|
|
2045
2201
|
l
|
|
2046
2202
|
]);
|
|
2047
|
-
},
|
|
2203
|
+
}, Un = (e) => {
|
|
2048
2204
|
let { cache: t, runtime: r } = N(e);
|
|
2049
2205
|
return n(() => {
|
|
2050
2206
|
t.refreshAll(r);
|
|
2051
2207
|
}, [t, r]);
|
|
2052
|
-
},
|
|
2053
|
-
for (let t of
|
|
2208
|
+
}, Wn = /* @__PURE__ */ new Set(), Gn = (e) => {
|
|
2209
|
+
for (let t of Wn) try {
|
|
2054
2210
|
t(e);
|
|
2055
2211
|
} catch {}
|
|
2056
|
-
},
|
|
2057
|
-
|
|
2058
|
-
}),
|
|
2059
|
-
|
|
2212
|
+
}, Kn = (e) => (Wn.add(e), () => {
|
|
2213
|
+
Wn.delete(e);
|
|
2214
|
+
}), qn = (e, t) => {
|
|
2215
|
+
Gn({
|
|
2060
2216
|
error: e,
|
|
2061
2217
|
source: "manual",
|
|
2062
2218
|
...t ? { context: t } : {}
|
|
2063
2219
|
});
|
|
2064
|
-
},
|
|
2220
|
+
}, Jn = (e, t) => {
|
|
2065
2221
|
let { errorBus: n } = N(e);
|
|
2066
2222
|
a(() => n.on(t), [n, t]);
|
|
2067
|
-
},
|
|
2223
|
+
}, Yn = "#/$defs/", Xn = (e) => e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().replace(/^./, (e) => e.toUpperCase()), Z = (e, t) => {
|
|
2068
2224
|
let n = e;
|
|
2069
2225
|
for (let e = 0; e < 8; e += 1) {
|
|
2070
2226
|
let e = n.$ref;
|
|
2071
|
-
if (typeof e != "string" || !e.startsWith(
|
|
2227
|
+
if (typeof e != "string" || !e.startsWith(Yn)) return n;
|
|
2072
2228
|
let r = t[e.slice(8)];
|
|
2073
2229
|
if (!r || typeof r != "object") return n;
|
|
2074
2230
|
n = r;
|
|
2075
2231
|
}
|
|
2076
2232
|
return n;
|
|
2077
|
-
},
|
|
2233
|
+
}, Zn = (e) => {
|
|
2078
2234
|
if (!e || typeof e != "object") return !1;
|
|
2079
2235
|
let t = e;
|
|
2080
2236
|
if (t.type === "null" || t.const === null) return !0;
|
|
2081
2237
|
let n = t.enum;
|
|
2082
2238
|
return Array.isArray(n) && n.length === 1 && n[0] === null;
|
|
2083
|
-
},
|
|
2239
|
+
}, Qn = (e, t) => {
|
|
2084
2240
|
let n = e.type;
|
|
2085
2241
|
if (Array.isArray(n) && n.includes("null")) {
|
|
2086
2242
|
let t = n.filter((e) => e !== "null");
|
|
@@ -2095,9 +2251,9 @@ var Ut = () => {
|
|
|
2095
2251
|
for (let n of ["anyOf", "oneOf"]) {
|
|
2096
2252
|
let r = e[n];
|
|
2097
2253
|
if (!Array.isArray(r)) continue;
|
|
2098
|
-
let i = r.filter((e) => !
|
|
2254
|
+
let i = r.filter((e) => !Zn(e));
|
|
2099
2255
|
if (i.length !== r.length) return i.length === 1 ? {
|
|
2100
|
-
node:
|
|
2256
|
+
node: Z(i[0], t),
|
|
2101
2257
|
nullable: !0
|
|
2102
2258
|
} : {
|
|
2103
2259
|
node: {
|
|
@@ -2111,14 +2267,14 @@ var Ut = () => {
|
|
|
2111
2267
|
node: e,
|
|
2112
2268
|
nullable: !1
|
|
2113
2269
|
};
|
|
2114
|
-
},
|
|
2270
|
+
}, $n = (e) => e.map((e) => ({
|
|
2115
2271
|
value: String(e),
|
|
2116
|
-
label:
|
|
2117
|
-
})),
|
|
2272
|
+
label: Xn(String(e))
|
|
2273
|
+
})), er = (e) => {
|
|
2118
2274
|
let t = e.enum;
|
|
2119
2275
|
if (Array.isArray(t) && t.length > 0) return {
|
|
2120
2276
|
widget: "select",
|
|
2121
|
-
options:
|
|
2277
|
+
options: $n(t)
|
|
2122
2278
|
};
|
|
2123
2279
|
let n = e.type, r = Array.isArray(n) ? n.find((e) => e !== "null") : n, i = e.format;
|
|
2124
2280
|
switch (r) {
|
|
@@ -2129,38 +2285,38 @@ var Ut = () => {
|
|
|
2129
2285
|
case "array": return { widget: "multi-select" };
|
|
2130
2286
|
default: return { widget: "custom" };
|
|
2131
2287
|
}
|
|
2132
|
-
},
|
|
2133
|
-
let { node: i, nullable: a } =
|
|
2288
|
+
}, tr = (e, t, n) => Object.entries(e).map(([e, r]) => {
|
|
2289
|
+
let { node: i, nullable: a } = Qn(Z(r, n), n), o = Z(i, n), { widget: s, options: c } = er(o);
|
|
2134
2290
|
return {
|
|
2135
2291
|
name: e,
|
|
2136
|
-
label:
|
|
2292
|
+
label: Xn(e),
|
|
2137
2293
|
widget: s,
|
|
2138
2294
|
required: t.has(e),
|
|
2139
2295
|
nullable: a,
|
|
2140
2296
|
...c ? { options: c } : {},
|
|
2141
2297
|
jsonSchema: o
|
|
2142
2298
|
};
|
|
2143
|
-
}),
|
|
2299
|
+
}), nr = (e) => {
|
|
2144
2300
|
try {
|
|
2145
2301
|
return g.make(e);
|
|
2146
2302
|
} catch {
|
|
2147
2303
|
return;
|
|
2148
2304
|
}
|
|
2149
|
-
},
|
|
2150
|
-
let t =
|
|
2305
|
+
}, Q = (e) => {
|
|
2306
|
+
let t = nr(e);
|
|
2151
2307
|
if (t === void 0) return [];
|
|
2152
|
-
let n = t.$defs ?? {}, r =
|
|
2153
|
-
return i ?
|
|
2154
|
-
},
|
|
2155
|
-
let t =
|
|
2308
|
+
let n = t.$defs ?? {}, r = Z(t, n), i = r.properties;
|
|
2309
|
+
return i ? tr(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
|
|
2310
|
+
}, rr = (e) => {
|
|
2311
|
+
let t = nr(e);
|
|
2156
2312
|
if (t === void 0) return [];
|
|
2157
|
-
let n = t.$defs ?? {}, r =
|
|
2313
|
+
let n = t.$defs ?? {}, r = Z(t, n);
|
|
2158
2314
|
if (r.type !== "array") return [];
|
|
2159
2315
|
let i = r.items;
|
|
2160
2316
|
if (!i || typeof i != "object") return [];
|
|
2161
|
-
let a =
|
|
2162
|
-
return o ?
|
|
2163
|
-
},
|
|
2317
|
+
let a = Z(i, n), o = a.properties;
|
|
2318
|
+
return o ? tr(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
|
|
2319
|
+
}, ir = (e, t) => {
|
|
2164
2320
|
let n = b.decodeUnknownEither(e, { errors: "all" })(t);
|
|
2165
2321
|
if (n._tag === "Right") return {
|
|
2166
2322
|
valid: !0,
|
|
@@ -2175,10 +2331,10 @@ var Ut = () => {
|
|
|
2175
2331
|
valid: !1,
|
|
2176
2332
|
errors: r
|
|
2177
2333
|
};
|
|
2178
|
-
},
|
|
2334
|
+
}, ar = (e, t, r) => {
|
|
2179
2335
|
let i = N(e), a = K(e, t), l = r.schema ?? i.descriptors[t]?.input;
|
|
2180
2336
|
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.`);
|
|
2181
|
-
let u = o(() => l ?
|
|
2337
|
+
let u = o(() => l ? Q(l) : [], [l]), d = s(r.defaults ?? {}), [f, p] = c(d.current), [m, h] = c({}), g = n((e, t) => {
|
|
2182
2338
|
p((n) => ({
|
|
2183
2339
|
...n,
|
|
2184
2340
|
[e]: t
|
|
@@ -2192,7 +2348,7 @@ var Ut = () => {
|
|
|
2192
2348
|
p(d.current), h({});
|
|
2193
2349
|
}, []), y = n(async () => {
|
|
2194
2350
|
if (l !== void 0) {
|
|
2195
|
-
let e =
|
|
2351
|
+
let e = ir(l, f);
|
|
2196
2352
|
if (h(e.errors), !e.valid) return;
|
|
2197
2353
|
}
|
|
2198
2354
|
return a.mutate(f);
|
|
@@ -2205,7 +2361,7 @@ var Ut = () => {
|
|
|
2205
2361
|
fields: u,
|
|
2206
2362
|
values: f,
|
|
2207
2363
|
errors: m,
|
|
2208
|
-
isValid: o(() => l === void 0 ||
|
|
2364
|
+
isValid: o(() => l === void 0 || ir(l, f).valid, [l, f]),
|
|
2209
2365
|
pending: a.pending,
|
|
2210
2366
|
submitError: a.error,
|
|
2211
2367
|
data: a.data,
|
|
@@ -2214,13 +2370,13 @@ var Ut = () => {
|
|
|
2214
2370
|
reset: v,
|
|
2215
2371
|
submit: y
|
|
2216
2372
|
};
|
|
2217
|
-
},
|
|
2373
|
+
}, or = (e, t, n) => e.map((e) => {
|
|
2218
2374
|
let r = String(e[n] ?? ""), i = e[t];
|
|
2219
2375
|
return {
|
|
2220
2376
|
value: r,
|
|
2221
2377
|
label: i == null ? r : String(i)
|
|
2222
2378
|
};
|
|
2223
|
-
}),
|
|
2379
|
+
}), sr = (e, t, r = {}) => {
|
|
2224
2380
|
let i = r.debounceMs ?? 200, s = r.labelField ?? "name", l = r.valueField ?? "id", u = r.input ?? ((e) => ({ q: e })), [d, f] = c(r.initialTerm ?? ""), [p, m] = c(d);
|
|
2225
2381
|
a(() => {
|
|
2226
2382
|
if (d === p) return;
|
|
@@ -2231,7 +2387,7 @@ var Ut = () => {
|
|
|
2231
2387
|
p,
|
|
2232
2388
|
i
|
|
2233
2389
|
]);
|
|
2234
|
-
let h = r.skipUntilTerm === !0 && p.trim() === "", g = V(e, t, o(() => u(p), [u, p]), { skip: h }), _ = o(() =>
|
|
2390
|
+
let h = r.skipUntilTerm === !0 && p.trim() === "", g = V(e, t, o(() => u(p), [u, p]), { skip: h }), _ = o(() => or(g.data ?? [], s, l), [
|
|
2235
2391
|
g.data,
|
|
2236
2392
|
s,
|
|
2237
2393
|
l
|
|
@@ -2242,13 +2398,13 @@ var Ut = () => {
|
|
|
2242
2398
|
term: d,
|
|
2243
2399
|
search: v
|
|
2244
2400
|
};
|
|
2245
|
-
},
|
|
2401
|
+
}, cr = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, lr = (e, t, r = {}) => {
|
|
2246
2402
|
let i = N(e), [a, s] = c(r.pageSize), l = V(e, t, o(() => a === void 0 ? r.input ?? {} : {
|
|
2247
2403
|
...r.input,
|
|
2248
2404
|
limit: a
|
|
2249
2405
|
}, [r.input, a])), u = i.descriptors[t]?.output, d = n(() => {
|
|
2250
2406
|
r.pageSize !== void 0 && s((e) => (e ?? r.pageSize) + r.pageSize);
|
|
2251
|
-
}, [r.pageSize]), f = o(() => r.columns ?? (u === void 0 ? [] :
|
|
2407
|
+
}, [r.pageSize]), f = o(() => r.columns ?? (u === void 0 ? [] : rr(u)), [r.columns, u]), [p, m] = c(r.initialSort), h = n((e) => {
|
|
2252
2408
|
m((t) => t?.column === e ? {
|
|
2253
2409
|
column: e,
|
|
2254
2410
|
direction: t.direction === "asc" ? "desc" : "asc"
|
|
@@ -2263,7 +2419,7 @@ var Ut = () => {
|
|
|
2263
2419
|
let e = l.data ?? [];
|
|
2264
2420
|
if (p === void 0) return e;
|
|
2265
2421
|
let t = p.direction === "asc" ? 1 : -1;
|
|
2266
|
-
return [...e].sort((e, n) =>
|
|
2422
|
+
return [...e].sort((e, n) => cr(e[p.column], n[p.column]) * t);
|
|
2267
2423
|
}, [l.data, p]),
|
|
2268
2424
|
loading: l.data === void 0,
|
|
2269
2425
|
error: l.error,
|
|
@@ -2272,13 +2428,13 @@ var Ut = () => {
|
|
|
2272
2428
|
loadMore: d,
|
|
2273
2429
|
hasMore: a !== void 0 && (l.data?.length ?? 0) >= a
|
|
2274
2430
|
};
|
|
2275
|
-
},
|
|
2431
|
+
}, ur = (e, t, n, r) => {
|
|
2276
2432
|
let i = e.replace(/\/$/, ""), a = new URLSearchParams({
|
|
2277
2433
|
table: t,
|
|
2278
2434
|
id: n
|
|
2279
2435
|
});
|
|
2280
2436
|
return r !== void 0 && a.set("column", r), `${i}/_voltro/inspect/provenance?${a.toString()}`;
|
|
2281
|
-
},
|
|
2437
|
+
}, dr = ur, fr = (e, t, n, r) => {
|
|
2282
2438
|
let { inspectBaseUrl: i } = N(e), [o, s] = c({
|
|
2283
2439
|
data: void 0,
|
|
2284
2440
|
loading: !0,
|
|
@@ -2291,7 +2447,7 @@ var Ut = () => {
|
|
|
2291
2447
|
loading: !0,
|
|
2292
2448
|
error: void 0
|
|
2293
2449
|
});
|
|
2294
|
-
let a =
|
|
2450
|
+
let a = ur(i ?? "", t, n, r);
|
|
2295
2451
|
return fetch(a).then(async (e) => {
|
|
2296
2452
|
if (!e.ok) throw Error(`provenance fetch failed: HTTP ${e.status}`);
|
|
2297
2453
|
return await e.json();
|
|
@@ -2317,11 +2473,11 @@ var Ut = () => {
|
|
|
2317
2473
|
n,
|
|
2318
2474
|
r
|
|
2319
2475
|
]), o;
|
|
2320
|
-
},
|
|
2321
|
-
function
|
|
2322
|
-
return t(
|
|
2476
|
+
}, pr = "admin:full", mr = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), hr = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), gr = e({ scopes: [] });
|
|
2477
|
+
function _r(e) {
|
|
2478
|
+
return t(gr.Provider, { value: { scopes: e.scopes } }, e.children);
|
|
2323
2479
|
}
|
|
2324
|
-
var
|
|
2480
|
+
var $ = () => r(gr), vr = (e) => mr($().scopes, e), yr = (e) => hr($().scopes, e), br = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, xr = (e) => {
|
|
2325
2481
|
let { inspectBaseUrl: t } = N(e), [n, r] = c({
|
|
2326
2482
|
manifest: void 0,
|
|
2327
2483
|
loading: !0,
|
|
@@ -2333,7 +2489,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2333
2489
|
manifest: void 0,
|
|
2334
2490
|
loading: !0,
|
|
2335
2491
|
error: void 0
|
|
2336
|
-
}), fetch(
|
|
2492
|
+
}), fetch(br(t ?? "")).then(async (e) => {
|
|
2337
2493
|
if (!e.ok) throw Error(`manifest fetch failed: HTTP ${e.status}`);
|
|
2338
2494
|
return await e.json();
|
|
2339
2495
|
}).then((t) => {
|
|
@@ -2352,7 +2508,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2352
2508
|
e = !0;
|
|
2353
2509
|
};
|
|
2354
2510
|
}, [e, t]), n;
|
|
2355
|
-
},
|
|
2511
|
+
}, Sr = (e, t) => t.scope.length === 0 || (t.mode === "any" ? t.scope.some((t) => e.includes(t)) : t.scope.every((t) => e.includes(t))), Cr = (e, t) => {
|
|
2356
2512
|
if (e === void 0) return "unknown";
|
|
2357
2513
|
if (t.includes("admin:full") || e.length === 0) return "allowed";
|
|
2358
2514
|
let n = !1;
|
|
@@ -2361,7 +2517,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2361
2517
|
n = !0;
|
|
2362
2518
|
continue;
|
|
2363
2519
|
}
|
|
2364
|
-
if (!
|
|
2520
|
+
if (!Sr(t, r)) {
|
|
2365
2521
|
if (r.resourceScoped) {
|
|
2366
2522
|
n = !0;
|
|
2367
2523
|
continue;
|
|
@@ -2370,13 +2526,13 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2370
2526
|
}
|
|
2371
2527
|
}
|
|
2372
2528
|
return n ? "unknown" : "allowed";
|
|
2373
|
-
},
|
|
2529
|
+
}, wr = (e) => (e ?? []).flatMap((e) => e.kind === "scope" ? [...e.scope] : []), Tr = (e) => {
|
|
2374
2530
|
for (let t of e ?? []) if (t.kind === "open") return t.reason;
|
|
2375
|
-
},
|
|
2531
|
+
}, Er = (e) => Cr(e, $().scopes), Dr = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, Or = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, kr = (e) => e === void 0 ? {} : {
|
|
2376
2532
|
tag: e.tag,
|
|
2377
2533
|
...e.guards === void 0 ? {} : { guards: e.guards }
|
|
2378
|
-
},
|
|
2379
|
-
let n = e.procedures.find((e) => e.kind === "query" &&
|
|
2534
|
+
}, Ar = (e) => e.tables.filter((e) => !e.framework).map((t) => {
|
|
2535
|
+
let n = e.procedures.find((e) => e.kind === "query" && Dr(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && Or(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && Or(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && Or(e, t.name, "delete")), o = t.pkColumn ?? (t.columns.some((e) => e.name === "id") ? "id" : void 0);
|
|
2380
2536
|
return {
|
|
2381
2537
|
table: t.name,
|
|
2382
2538
|
columns: t.columns.filter((e) => e.serverOnly !== !0),
|
|
@@ -2385,17 +2541,17 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2385
2541
|
reactive: t.reactive,
|
|
2386
2542
|
...o === void 0 ? {} : { pkColumn: o },
|
|
2387
2543
|
editable: (t.editable ?? !0) && o !== void 0,
|
|
2388
|
-
list:
|
|
2389
|
-
create:
|
|
2390
|
-
update:
|
|
2391
|
-
delete:
|
|
2544
|
+
list: kr(n),
|
|
2545
|
+
create: kr(r),
|
|
2546
|
+
update: kr(i),
|
|
2547
|
+
delete: kr(a)
|
|
2392
2548
|
};
|
|
2393
|
-
}),
|
|
2549
|
+
}), jr = (e) => {
|
|
2394
2550
|
let [t, r] = c([]), [i, a] = c([]), s = n((e) => {
|
|
2395
2551
|
r((t) => [...t, e]), a([]);
|
|
2396
2552
|
}, []), l = n(async () => {
|
|
2397
2553
|
let n = t[t.length - 1];
|
|
2398
|
-
n
|
|
2554
|
+
n !== void 0 && n.blockedBy === void 0 && (await e.onUndo(n.invocationId), r((e) => e.slice(0, -1)), a((e) => [...e, n]));
|
|
2399
2555
|
}, [t, e]), u = n(async () => {
|
|
2400
2556
|
let t = i[i.length - 1];
|
|
2401
2557
|
t !== void 0 && (await e.onRedo(t.invocationId), a((e) => e.slice(0, -1)), r((e) => [...e, t]));
|
|
@@ -2418,8 +2574,8 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2418
2574
|
l,
|
|
2419
2575
|
u
|
|
2420
2576
|
]);
|
|
2421
|
-
},
|
|
2422
|
-
let r = t?.limit, { data: i } = V(e,
|
|
2577
|
+
}, Mr = "__voltro.undo.log", Nr = "__voltro.undo.apply", Pr = "__voltro.undo.redo", Fr = (e, t) => {
|
|
2578
|
+
let r = t?.limit, { data: i } = V(e, Mr, r === void 0 ? {} : { limit: r }), a = K(e, Nr), o = K(e, Pr), s = i ?? [], c = s.find((e) => !e.undone && !e.crossesAction), l = s.find((e) => e.undone), u = n(async (e) => {
|
|
2423
2579
|
await a.mutate({ invocationId: e });
|
|
2424
2580
|
}, [a]), d = n(async (e) => {
|
|
2425
2581
|
await o.mutate({ invocationId: e });
|
|
@@ -2438,21 +2594,21 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2438
2594
|
undoLast: f,
|
|
2439
2595
|
redoLast: p
|
|
2440
2596
|
};
|
|
2441
|
-
},
|
|
2597
|
+
}, Ir = (e, t) => ({
|
|
2442
2598
|
name: e,
|
|
2443
2599
|
map: t
|
|
2444
|
-
}),
|
|
2600
|
+
}), Lr = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), Rr = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), zr = (e, t, n) => {
|
|
2445
2601
|
let r = { ...t };
|
|
2446
2602
|
for (let [i, a] of Object.entries(e.map)) {
|
|
2447
|
-
if (
|
|
2603
|
+
if (Rr.has(i) || a === void 0) continue;
|
|
2448
2604
|
let e = t[i];
|
|
2449
2605
|
r[i] = (...r) => {
|
|
2450
|
-
let i =
|
|
2606
|
+
let i = Lr(a, t);
|
|
2451
2607
|
if (i !== null && n(i), typeof e == "function") return e(...r);
|
|
2452
2608
|
};
|
|
2453
2609
|
}
|
|
2454
2610
|
return r;
|
|
2455
|
-
},
|
|
2611
|
+
}, Br = (e, t, n) => {
|
|
2456
2612
|
let r = s({
|
|
2457
2613
|
spec: e,
|
|
2458
2614
|
props: t,
|
|
@@ -2463,46 +2619,46 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2463
2619
|
props: t,
|
|
2464
2620
|
sink: n
|
|
2465
2621
|
}, a(() => {
|
|
2466
|
-
let e = r.current, t =
|
|
2622
|
+
let e = r.current, t = Lr(e.spec.map.onMount, e.props);
|
|
2467
2623
|
return t !== null && e.sink(t), () => {
|
|
2468
|
-
let e = r.current, t =
|
|
2624
|
+
let e = r.current, t = Lr(e.spec.map.onUnmount, e.props);
|
|
2469
2625
|
t !== null && e.sink(t);
|
|
2470
2626
|
};
|
|
2471
|
-
}, []), o(() =>
|
|
2627
|
+
}, []), o(() => zr(e, t, n), [
|
|
2472
2628
|
e,
|
|
2473
2629
|
t,
|
|
2474
2630
|
n
|
|
2475
2631
|
]);
|
|
2476
|
-
},
|
|
2632
|
+
}, Vr = (e, t) => {
|
|
2477
2633
|
let n = N(e).descriptors[t]?.input;
|
|
2478
|
-
return o(() => n === void 0 ? [] :
|
|
2479
|
-
},
|
|
2634
|
+
return o(() => n === void 0 ? [] : Q(n), [n]);
|
|
2635
|
+
}, Hr = (e, t) => {
|
|
2480
2636
|
let n = N(e).descriptors[t]?.output;
|
|
2481
|
-
return o(() => n === void 0 ? [] :
|
|
2482
|
-
},
|
|
2637
|
+
return o(() => n === void 0 ? [] : rr(n), [n]);
|
|
2638
|
+
}, Ur = (e, t) => {
|
|
2483
2639
|
if (e === t) return !0;
|
|
2484
2640
|
if (e.length !== t.length) return !1;
|
|
2485
2641
|
for (let n = 0; n < e.length; n += 1) if (!Object.is(e[n], t[n])) return !1;
|
|
2486
2642
|
return !0;
|
|
2487
|
-
},
|
|
2488
|
-
let n = s(null), r =
|
|
2489
|
-
return (n.current === null || !
|
|
2643
|
+
}, Wr = (e) => Object.keys(e).sort().map((t) => e[t]), Gr = (e, t) => {
|
|
2644
|
+
let n = s(null), r = Wr(e);
|
|
2645
|
+
return (n.current === null || !Ur(n.current.key, r)) && (n.current = {
|
|
2490
2646
|
key: r,
|
|
2491
2647
|
value: t(e)
|
|
2492
2648
|
}), n.current.value;
|
|
2493
|
-
},
|
|
2649
|
+
}, Kr = (e, t, n, r = {}) => {
|
|
2494
2650
|
let i = V(e, t, { ...n }, r);
|
|
2495
2651
|
return o(() => ({
|
|
2496
2652
|
allowed: i.data?.allowed === !0,
|
|
2497
2653
|
pending: i.data === void 0
|
|
2498
2654
|
}), [i.data]);
|
|
2499
|
-
},
|
|
2655
|
+
}, qr = (e, t, n, r = {}) => {
|
|
2500
2656
|
let i = V(e, t, { ...n }, r);
|
|
2501
2657
|
return o(() => ({
|
|
2502
2658
|
allowedIds: new Set(i.data?.allowedIds ?? []),
|
|
2503
2659
|
pending: i.data === void 0
|
|
2504
2660
|
}), [i.data]);
|
|
2505
|
-
},
|
|
2661
|
+
}, Jr = (e) => {
|
|
2506
2662
|
switch (e) {
|
|
2507
2663
|
case "select":
|
|
2508
2664
|
case "radio":
|
|
@@ -2518,25 +2674,25 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2518
2674
|
case "switch": return "boolean";
|
|
2519
2675
|
default: return null;
|
|
2520
2676
|
}
|
|
2521
|
-
},
|
|
2522
|
-
let t =
|
|
2677
|
+
}, Yr = (e) => Q(e).map((e) => {
|
|
2678
|
+
let t = Jr(e.widget);
|
|
2523
2679
|
return t === null ? null : {
|
|
2524
2680
|
name: e.name,
|
|
2525
2681
|
label: e.label,
|
|
2526
2682
|
kind: t,
|
|
2527
2683
|
...e.options ? { options: e.options } : {}
|
|
2528
2684
|
};
|
|
2529
|
-
}).filter((e) => e !== null),
|
|
2685
|
+
}).filter((e) => e !== null), Xr = (e) => {
|
|
2530
2686
|
let t = {};
|
|
2531
2687
|
for (let [n, r] of Object.entries(e)) r === void 0 || r === "" || Array.isArray(r) && r.length === 0 || (t[n] = r);
|
|
2532
2688
|
return t;
|
|
2533
|
-
},
|
|
2534
|
-
let i = N(e).descriptors[t]?.input, a = o(() => i === void 0 ? [] :
|
|
2535
|
-
l((n) =>
|
|
2689
|
+
}, Zr = (e, t, r = {}) => {
|
|
2690
|
+
let i = N(e).descriptors[t]?.input, a = o(() => i === void 0 ? [] : Yr(i), [i]), [s, l] = c(r.initial ?? {}), u = n((e, t) => {
|
|
2691
|
+
l((n) => Xr({
|
|
2536
2692
|
...n,
|
|
2537
2693
|
[e]: t
|
|
2538
2694
|
}));
|
|
2539
|
-
}, []), d = n(() => l({}), []), f = V(e, t, o(() =>
|
|
2695
|
+
}, []), d = n(() => l({}), []), f = V(e, t, o(() => Xr(s), [s]));
|
|
2540
2696
|
return {
|
|
2541
2697
|
filters: a,
|
|
2542
2698
|
values: s,
|
|
@@ -2547,20 +2703,20 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2547
2703
|
loading: f.data === void 0,
|
|
2548
2704
|
error: f.error
|
|
2549
2705
|
};
|
|
2550
|
-
},
|
|
2706
|
+
}, Qr = (e, t, n = {}) => {
|
|
2551
2707
|
let r = V(e, t, n), i = r.data;
|
|
2552
2708
|
return {
|
|
2553
2709
|
record: Array.isArray(i) ? i[0] : i,
|
|
2554
2710
|
loading: i === void 0,
|
|
2555
2711
|
error: r.error
|
|
2556
2712
|
};
|
|
2557
|
-
},
|
|
2713
|
+
}, $r = (e, t = 300) => {
|
|
2558
2714
|
let [n, r] = c(e);
|
|
2559
2715
|
return a(() => {
|
|
2560
2716
|
let n = setTimeout(() => r(e), t);
|
|
2561
2717
|
return () => clearTimeout(n);
|
|
2562
2718
|
}, [e, t]), n;
|
|
2563
|
-
},
|
|
2719
|
+
}, ei = (e) => {
|
|
2564
2720
|
let { value: t, debouncedValue: n, data: r, interpret: i, skipEmpty: a = !0 } = e;
|
|
2565
2721
|
if (a && t.trim() === "") return {
|
|
2566
2722
|
status: "idle",
|
|
@@ -2578,19 +2734,19 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2578
2734
|
valid: o.valid,
|
|
2579
2735
|
message: o.message
|
|
2580
2736
|
};
|
|
2581
|
-
},
|
|
2582
|
-
let { input: i, interpret: a, debounceMs: s = 300, skipEmpty: c = !0 } = r, l =
|
|
2583
|
-
return
|
|
2737
|
+
}, ti = (e, t, n, r) => {
|
|
2738
|
+
let { input: i, interpret: a, debounceMs: s = 300, skipEmpty: c = !0 } = r, l = $r(n, s), u = c && l.trim() === "", d = V(e, t, o(() => i ? i(l) : { value: l }, [i, l]), { skip: u });
|
|
2739
|
+
return ei({
|
|
2584
2740
|
value: n,
|
|
2585
2741
|
debouncedValue: l,
|
|
2586
2742
|
data: u ? null : d.data,
|
|
2587
2743
|
interpret: a,
|
|
2588
2744
|
skipEmpty: c
|
|
2589
2745
|
});
|
|
2590
|
-
},
|
|
2746
|
+
}, ni = (e, t) => ({
|
|
2591
2747
|
name: e,
|
|
2592
2748
|
payload: t
|
|
2593
|
-
}),
|
|
2749
|
+
}), ri = (e, t) => {
|
|
2594
2750
|
let n = b.decodeUnknownEither(e.payload, { errors: "all" })(t);
|
|
2595
2751
|
if (n._tag === "Right") return {
|
|
2596
2752
|
valid: !0,
|
|
@@ -2602,15 +2758,15 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2602
2758
|
valid: !1,
|
|
2603
2759
|
errors: r
|
|
2604
2760
|
};
|
|
2605
|
-
},
|
|
2761
|
+
}, ii = (e) => {
|
|
2606
2762
|
let t = new Map(e.map((e) => [e.name, e]));
|
|
2607
2763
|
return {
|
|
2608
2764
|
names: [...t.keys()].sort(),
|
|
2609
2765
|
get: (e) => t.get(e),
|
|
2610
2766
|
events: e
|
|
2611
2767
|
};
|
|
2612
|
-
},
|
|
2613
|
-
let n =
|
|
2768
|
+
}, ai = (e, t) => {
|
|
2769
|
+
let n = ii(e);
|
|
2614
2770
|
return {
|
|
2615
2771
|
track: (e, r) => {
|
|
2616
2772
|
let i = n.get(e);
|
|
@@ -2619,7 +2775,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2619
2775
|
return;
|
|
2620
2776
|
}
|
|
2621
2777
|
if (process.env.NODE_ENV !== "production") {
|
|
2622
|
-
let t =
|
|
2778
|
+
let t = ri(i, r);
|
|
2623
2779
|
t.valid || console.error(`[@voltro/client] analytics.track('${e}'): payload failed its schema`, t.errors);
|
|
2624
2780
|
}
|
|
2625
2781
|
t({
|
|
@@ -2630,7 +2786,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2630
2786
|
names: n.names,
|
|
2631
2787
|
catalog: n
|
|
2632
2788
|
};
|
|
2633
|
-
},
|
|
2789
|
+
}, oi = (e, t) => {
|
|
2634
2790
|
let r = q(e, t);
|
|
2635
2791
|
return {
|
|
2636
2792
|
preview: n((e) => r.run(e), [r]),
|
|
@@ -2638,34 +2794,34 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2638
2794
|
pending: r.pending,
|
|
2639
2795
|
error: r.error
|
|
2640
2796
|
};
|
|
2641
|
-
},
|
|
2797
|
+
}, si = (e, t, n, r) => [...e, {
|
|
2642
2798
|
id: t,
|
|
2643
2799
|
tag: n,
|
|
2644
2800
|
input: r,
|
|
2645
2801
|
status: "pending",
|
|
2646
2802
|
attempts: 0
|
|
2647
|
-
}],
|
|
2803
|
+
}], ci = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2648
2804
|
...e,
|
|
2649
2805
|
...n
|
|
2650
|
-
} : e),
|
|
2806
|
+
} : e), li = (e, t) => ci(e, t, { status: "sent" }), ui = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2651
2807
|
...e,
|
|
2652
2808
|
status: "failed",
|
|
2653
2809
|
error: n,
|
|
2654
2810
|
attempts: e.attempts + 1
|
|
2655
|
-
} : e),
|
|
2811
|
+
} : e), di = (e, t, n) => ci(e, t, {
|
|
2656
2812
|
status: "conflict",
|
|
2657
2813
|
error: n
|
|
2658
|
-
}),
|
|
2814
|
+
}), fi = (e) => e.filter((e) => e.status !== "sent"), pi = (e) => {
|
|
2659
2815
|
let t = [];
|
|
2660
2816
|
for (let n of e) {
|
|
2661
2817
|
if (n.status === "conflict") break;
|
|
2662
2818
|
(n.status === "pending" || n.status === "failed") && t.push(n);
|
|
2663
2819
|
}
|
|
2664
2820
|
return t;
|
|
2665
|
-
},
|
|
2821
|
+
}, mi = (e) => {
|
|
2666
2822
|
let t = e;
|
|
2667
2823
|
return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
|
|
2668
|
-
},
|
|
2824
|
+
}, hi = (e) => {
|
|
2669
2825
|
let [t, n] = c(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
|
|
2670
2826
|
return a(() => {
|
|
2671
2827
|
if (e !== void 0) {
|
|
@@ -2678,21 +2834,21 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2678
2834
|
window.removeEventListener("online", t), window.removeEventListener("offline", r);
|
|
2679
2835
|
};
|
|
2680
2836
|
}, [e]), t;
|
|
2681
|
-
},
|
|
2682
|
-
let { send: t, isConflict: r =
|
|
2837
|
+
}, gi = (e) => {
|
|
2838
|
+
let { send: t, isConflict: r = mi, idFor: i } = e, [o, l] = c([]), u = hi(e.online), d = s(o);
|
|
2683
2839
|
d.current = o;
|
|
2684
2840
|
let f = s(0), p = n((e, t) => {
|
|
2685
2841
|
let n = i?.() ?? `obx_${f.current++}_${e}`;
|
|
2686
|
-
l((r) =>
|
|
2842
|
+
l((r) => si(r, n, e, t));
|
|
2687
2843
|
}, [i]), m = n(async () => {
|
|
2688
|
-
for (let e of
|
|
2689
|
-
await t(e), l((t) =>
|
|
2844
|
+
for (let e of pi(d.current)) try {
|
|
2845
|
+
await t(e), l((t) => li(t, e.id));
|
|
2690
2846
|
} catch (t) {
|
|
2691
2847
|
if (r(t)) {
|
|
2692
|
-
l((n) =>
|
|
2848
|
+
l((n) => di(n, e.id, t));
|
|
2693
2849
|
break;
|
|
2694
2850
|
}
|
|
2695
|
-
l((n) =>
|
|
2851
|
+
l((n) => ui(n, e.id, t));
|
|
2696
2852
|
}
|
|
2697
2853
|
}, [t, r]);
|
|
2698
2854
|
return a(() => {
|
|
@@ -2705,7 +2861,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2705
2861
|
pending: o.filter((e) => e.status === "pending" || e.status === "failed").length,
|
|
2706
2862
|
conflicts: o.filter((e) => e.status === "conflict")
|
|
2707
2863
|
};
|
|
2708
|
-
},
|
|
2864
|
+
}, _i = (e) => {
|
|
2709
2865
|
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);
|
|
2710
2866
|
return {
|
|
2711
2867
|
startIndex: l,
|
|
@@ -2715,8 +2871,8 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2715
2871
|
topSpacer: l * r,
|
|
2716
2872
|
bottomSpacer: a === void 0 ? 0 : Math.max(0, (a - d) * r)
|
|
2717
2873
|
};
|
|
2718
|
-
},
|
|
2719
|
-
let { rowHeight: i, viewportHeight: a, overscan: s, total: l, input: u } = r, [d, f] = c(0), p = o(() =>
|
|
2874
|
+
}, vi = (e, t, r) => {
|
|
2875
|
+
let { rowHeight: i, viewportHeight: a, overscan: s, total: l, input: u } = r, [d, f] = c(0), p = o(() => _i({
|
|
2720
2876
|
scrollTop: d,
|
|
2721
2877
|
viewportHeight: a,
|
|
2722
2878
|
rowHeight: i,
|
|
@@ -2748,8 +2904,8 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2748
2904
|
loading: m.data === void 0,
|
|
2749
2905
|
error: m.error
|
|
2750
2906
|
};
|
|
2751
|
-
},
|
|
2752
|
-
let { errorBus: t } = N(e), [r, i] = c(
|
|
2907
|
+
}, yi = () => typeof navigator > "u" || navigator.onLine, bi = (e) => {
|
|
2908
|
+
let { errorBus: t } = N(e), [r, i] = c(yi), [o, l] = c(0), [u, d] = c(void 0), f = s(!0);
|
|
2753
2909
|
a(() => (f.current = !0, () => {
|
|
2754
2910
|
f.current = !1;
|
|
2755
2911
|
}), []), a(() => {
|
|
@@ -2775,7 +2931,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2775
2931
|
lastFailureAt: u,
|
|
2776
2932
|
reportSuccess: p
|
|
2777
2933
|
};
|
|
2778
|
-
},
|
|
2934
|
+
}, xi = "__voltro.connections.list", Si = "__voltro.connections.start", Ci = "__voltro.connections.submitToken", wi = "__voltro.connections.disconnect", Ti = {
|
|
2779
2935
|
connectionId: "",
|
|
2780
2936
|
kind: "oauth2",
|
|
2781
2937
|
label: "",
|
|
@@ -2786,14 +2942,14 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2786
2942
|
expiresAt: null,
|
|
2787
2943
|
lastError: null,
|
|
2788
2944
|
connectedAt: null
|
|
2789
|
-
},
|
|
2945
|
+
}, Ei = (e, t) => {
|
|
2790
2946
|
if (t === "redirect") {
|
|
2791
2947
|
globalThis.location.assign(e);
|
|
2792
2948
|
return;
|
|
2793
2949
|
}
|
|
2794
2950
|
globalThis.open(e, "voltro-connect", "width=620,height=760,menubar=no,toolbar=no") === null && globalThis.location.assign(e);
|
|
2795
|
-
},
|
|
2796
|
-
let { data: t } = V(e,
|
|
2951
|
+
}, Di = (e) => {
|
|
2952
|
+
let { data: t } = V(e, xi, {}), r = q(e, Si), i = K(e, Ci), a = K(e, wi), o = t ?? [], s = r.pending || i.pending || a.pending, c = n((e) => ({
|
|
2797
2953
|
...e,
|
|
2798
2954
|
connected: e.status === "connected",
|
|
2799
2955
|
needsAttention: e.status === "expired" || e.status === "revoked" || e.status === "error",
|
|
@@ -2801,7 +2957,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2801
2957
|
connect: async (t) => {
|
|
2802
2958
|
if (e.kind !== "oauth2") throw Error(`connection "${e.connectionId}" is a personal-access-token connection — call submitToken(token), not connect().`);
|
|
2803
2959
|
let n = t?.redirectTo ?? `${globalThis.location.pathname}${globalThis.location.search}`;
|
|
2804
|
-
|
|
2960
|
+
Ei((await r.run({
|
|
2805
2961
|
connectionId: e.connectionId,
|
|
2806
2962
|
redirectTo: n
|
|
2807
2963
|
})).authorizeUrl, t?.mode);
|
|
@@ -2831,10 +2987,10 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2831
2987
|
get: l,
|
|
2832
2988
|
pending: s
|
|
2833
2989
|
};
|
|
2834
|
-
},
|
|
2835
|
-
let n =
|
|
2990
|
+
}, Oi = (e, t) => {
|
|
2991
|
+
let n = Di(e), r = n.get(t);
|
|
2836
2992
|
return o(() => r === void 0 ? {
|
|
2837
|
-
...
|
|
2993
|
+
...Ti,
|
|
2838
2994
|
connectionId: t,
|
|
2839
2995
|
label: t,
|
|
2840
2996
|
connected: !1,
|
|
@@ -2859,6 +3015,6 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
|
|
|
2859
3015
|
n.loading,
|
|
2860
3016
|
n.pending
|
|
2861
3017
|
]);
|
|
2862
|
-
},
|
|
3018
|
+
}, ki = "framework-client";
|
|
2863
3019
|
//#endregion
|
|
2864
|
-
export {
|
|
3020
|
+
export { pr as ADMIN_SCOPE, ki as CLIENT_NAME, xi as CONNECTIONS_LIST_TAG, wi as CONNECTION_DISCONNECT_TAG, Si as CONNECTION_START_TAG, Ci as CONNECTION_SUBMIT_TOKEN_TAG, _e as FrameworkRuntimesContext, Ae as FrameworkRuntimesProvider, he as LoadingSubscriptionCache, _r as PermissionProvider, ge as RpcErrorBus, me as SubscriptionCache, Nr as UNDO_APPLY_TAG, Mr as UNDO_LOG_TAG, Pr as UNDO_REDO_TAG, Se as _resetFrameworkRuntimesWarning, qt as applyPreloadSeeds, ft as applyStoreSeeds, we as buildApiRuntime, mr as canCall, hr as canCallAny, Ct as clearMutations, fi as clearSent, Ye as clearStoreHistory, _i as computeWindow, ai as createAnalytics, Vt as createHooks, Cr as decideAccess, ni as defineEvent, st as defineStore, Ir as defineTracking, ot as definedStores, Ar as deriveEntityAdmins, si as enqueueEntry, ii as eventCatalog, Yr as filtersFromSchema, jt as freshIdempotencyKey, Et as getMutationNotifier, xt as getMutations, P as isUnresolvedApi, Ht as makePreloadSeedBag, lt as makeStoreSeedBag, br as manifestUrl, di as markConflict, ui as markFailed, li as markSent, Tr as openAccessReason, dr as provenanceUrl, Gn as publishClientError, D as publishClientTrace, Yt as readPreloadedSeedOutcome, Jt as readPreloadedSnapshot, pi as replayable, qn as reportClientError, wr as requiredScopes, Xt as resetPreloadSeeds, ct as resetStoreRegistryForTests, Ie as resetStoreStorageForTest, B as resolveByTag, Fe as resolveStoreStorage, Lr as resolveTrackingEvent, Fn as resumableConsumeProgram, or as rowsToOptions, nn as runSequence, rr as schemaToColumns, Q as schemaToFields, Gt as seedPreloadedSubscription, Kt as seedPreloadedSubscriptionFailure, dt as seedStore, tn as sequence, Tt as setMutationNotifier, Ut as setPreloadSeedResolver, ut as setStoreSeedResolver, Pe as setStoreStorage, W as settleMutation, F as shallow, Ur as shallowArrayEqual, Wr as sourceValues, ye as ssrClientProxy, be as ssrStubHandle, O as stableKey, ke as startApiSupervisor, bt as startMutation, qe as storeHistory, Kn as subscribeClientErrors, re as subscribeClientTraces, St as subscribeMutations, Je as subscribeStoreHistory, oe as supersedesConfirmedPatches, Xe as travelToStoreState, Er as useAccessDecision, q as useAction, Vn as useAgent, Bn as useAgentChat, Pn as useAgentStream, ti as useAsyncValidation, vr as useCan, yr as useCanAny, xr as useCapabilityManifest, Oi as useConnection, bi as useConnectionStatus, Di as useConnections, Hn as useDataCopilot, lr as useDataTable, $r as useDebounced, Gr as useDerived, en as useEvent, ar as useFormBinding, Vr as useFormSkeleton, N as useFrameworkApi, Ce as useFrameworkRuntimes, K as useMutation, Jn as useOnRpcError, gi as useOutbox, $ as usePermissions, Zt as usePreloadedSubscription, oi as usePreview, fr as useProvenance, sr as useQueryField, Zr as useQueryFilters, Qr as useRecord, Un as useRefreshSubscriptions, Kr as useResourceCan, qr as useResourceCans, Ln as useResumableAgentStream, rn as useSequence, V as useSubscription, Hr as useTableSkeleton, Br as useTracking, jr as useUndo, Fr as useUndoLog, _n as useUpload, vi as useWindowedSubscription, vn as useWorkflow, En as useWorkflowDomainEvents, Dn as useWorkflowEventDeliveries, Tn as useWorkflowEvents, xn as useWorkflowRun, wn as useWorkflowRunEvents, Nn as useWorkflowRunState, Cn as useWorkflowRunSteps, Sn as useWorkflowRuns, yn as useWorkflowSignal, bn as useWorkflowUpdate, ri as validateEventPayload, ir as validateFields, ei as validationStatus, Mt as withIdempotencyKey, zr as wrapTrackedCallbacks };
|