@magicdoor/magic-use-case-solid 0.1.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 +99 -0
- package/LICENSE +202 -0
- package/README.md +33 -0
- package/dist/index.d.ts +173 -0
- package/dist/index.js +805 -0
- package/dist/server.js +1959 -0
- package/package.json +79 -0
package/dist/server.js
ADDED
|
@@ -0,0 +1,1959 @@
|
|
|
1
|
+
import { isServer, createComponent, useAssets, ssr, getRequestEvent } from 'solid-js/web';
|
|
2
|
+
import { createSignal, onCleanup, ErrorBoundary, Show } from 'solid-js';
|
|
3
|
+
import { createStore, reconcile } from 'solid-js/store';
|
|
4
|
+
|
|
5
|
+
// ../core/dist/index.js
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
9
|
+
var ConcreteEventEmitter = class {
|
|
10
|
+
constructor() {
|
|
11
|
+
__publicField(this, "events", {});
|
|
12
|
+
__publicField(this, "stateChange", "stateChange");
|
|
13
|
+
__publicField(this, "navigation", "navigation");
|
|
14
|
+
__publicField(this, "error", "error");
|
|
15
|
+
__publicField(this, "state");
|
|
16
|
+
}
|
|
17
|
+
registerForStateChange(handler) {
|
|
18
|
+
this.register(this.stateChange, handler);
|
|
19
|
+
if (this.state !== void 0) {
|
|
20
|
+
try {
|
|
21
|
+
handler(this.state);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
this.unregister(this.stateChange, handler);
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
unregisterFromStateChange(handler) {
|
|
29
|
+
this.unregister(this.stateChange, handler);
|
|
30
|
+
}
|
|
31
|
+
registerForNavigation(handler) {
|
|
32
|
+
this.register(this.navigation, handler);
|
|
33
|
+
}
|
|
34
|
+
unregisterFromNavigation(handler) {
|
|
35
|
+
this.unregister(this.navigation, handler);
|
|
36
|
+
}
|
|
37
|
+
registerForErrors(handler) {
|
|
38
|
+
this.register(this.error, handler);
|
|
39
|
+
}
|
|
40
|
+
unregisterFromErrors(handler) {
|
|
41
|
+
this.unregister(this.error, handler);
|
|
42
|
+
}
|
|
43
|
+
emitStateChange(data) {
|
|
44
|
+
this.state = data;
|
|
45
|
+
this.emit(this.stateChange, data);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Drops the retained state as well as notifying. Without clearing `state`,
|
|
49
|
+
* `registerForStateChange` would replay the pre-reset value to any presenter
|
|
50
|
+
* constructed afterwards.
|
|
51
|
+
*/
|
|
52
|
+
resetState() {
|
|
53
|
+
this.state = void 0;
|
|
54
|
+
this.emit(this.stateChange, void 0);
|
|
55
|
+
}
|
|
56
|
+
emitError(error) {
|
|
57
|
+
if (!this.events[this.error]?.length) {
|
|
58
|
+
console.error("Unhandled use case error:", error);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.emit(this.error, error);
|
|
62
|
+
}
|
|
63
|
+
emitNavigation(url) {
|
|
64
|
+
this.emit(this.navigation, url);
|
|
65
|
+
}
|
|
66
|
+
register(event, handler) {
|
|
67
|
+
if (!this.events[event]) {
|
|
68
|
+
this.events[event] = [];
|
|
69
|
+
}
|
|
70
|
+
this.events[event].push(handler);
|
|
71
|
+
}
|
|
72
|
+
unregister(event, handler) {
|
|
73
|
+
if (!this.events[event]) return;
|
|
74
|
+
this.events[event] = this.events[event].filter((h2) => h2 !== handler);
|
|
75
|
+
}
|
|
76
|
+
emit(event, data) {
|
|
77
|
+
if (!this.events[event]) return;
|
|
78
|
+
this.events[event].forEach((handler) => {
|
|
79
|
+
try {
|
|
80
|
+
handler(data);
|
|
81
|
+
} catch (error) {
|
|
82
|
+
console.error(`Error in ${event} handler:`, error);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
function createScope(initialState) {
|
|
88
|
+
const scope = {
|
|
89
|
+
state: initialState,
|
|
90
|
+
initialStatePromise: void 0,
|
|
91
|
+
runningUseCases: /* @__PURE__ */ new Map(),
|
|
92
|
+
emitter: new ConcreteEventEmitter(),
|
|
93
|
+
sources: /* @__PURE__ */ new Map(),
|
|
94
|
+
openMutationWindows: 0
|
|
95
|
+
};
|
|
96
|
+
return scope;
|
|
97
|
+
}
|
|
98
|
+
var browserScope = createScope();
|
|
99
|
+
var resolveScope = () => browserScope;
|
|
100
|
+
function currentScope() {
|
|
101
|
+
return resolveScope();
|
|
102
|
+
}
|
|
103
|
+
function setScopeResolver(resolver) {
|
|
104
|
+
resolveScope = resolver;
|
|
105
|
+
}
|
|
106
|
+
function onError(handler) {
|
|
107
|
+
const { emitter } = currentScope();
|
|
108
|
+
const wrapper = (data) => {
|
|
109
|
+
if (data instanceof Error) handler(data);
|
|
110
|
+
};
|
|
111
|
+
emitter.registerForErrors(wrapper);
|
|
112
|
+
return () => emitter.unregisterFromErrors(wrapper);
|
|
113
|
+
}
|
|
114
|
+
function onNavigation(handler) {
|
|
115
|
+
const { emitter } = currentScope();
|
|
116
|
+
const wrapper = (data) => {
|
|
117
|
+
if (typeof data === "string") handler(data);
|
|
118
|
+
};
|
|
119
|
+
emitter.registerForNavigation(wrapper);
|
|
120
|
+
return () => emitter.unregisterFromNavigation(wrapper);
|
|
121
|
+
}
|
|
122
|
+
function openMutationWindow() {
|
|
123
|
+
currentScope().openMutationWindows += 1;
|
|
124
|
+
}
|
|
125
|
+
function closeMutationWindow() {
|
|
126
|
+
const scope = currentScope();
|
|
127
|
+
scope.openMutationWindows = Math.max(0, scope.openMutationWindows - 1);
|
|
128
|
+
}
|
|
129
|
+
function isMutationWindowOpen() {
|
|
130
|
+
return currentScope().openMutationWindows > 0;
|
|
131
|
+
}
|
|
132
|
+
async function withMutationWindow(run) {
|
|
133
|
+
openMutationWindow();
|
|
134
|
+
try {
|
|
135
|
+
return await run();
|
|
136
|
+
} finally {
|
|
137
|
+
closeMutationWindow();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function assertMutationWindowOpen(operation) {
|
|
141
|
+
if (isMutationWindowOpen()) return;
|
|
142
|
+
throw new Error(
|
|
143
|
+
`[magic-use-case] ${operation} is only allowed inside a running use case.`
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
var mutatingMapMethods = /* @__PURE__ */ new Set(["set", "delete", "clear"]);
|
|
147
|
+
var mutatingSetMethods = /* @__PURE__ */ new Set(["add", "delete", "clear"]);
|
|
148
|
+
var mutatingArrayMethods = /* @__PURE__ */ new Set([
|
|
149
|
+
"push",
|
|
150
|
+
"pop",
|
|
151
|
+
"shift",
|
|
152
|
+
"unshift",
|
|
153
|
+
"splice",
|
|
154
|
+
"sort",
|
|
155
|
+
"reverse",
|
|
156
|
+
"fill",
|
|
157
|
+
"copyWithin"
|
|
158
|
+
]);
|
|
159
|
+
var iteratorKeys = /* @__PURE__ */ new Set(["values", "entries", Symbol.iterator]);
|
|
160
|
+
var READONLY = {
|
|
161
|
+
marker: /* @__PURE__ */ Symbol("readonly"),
|
|
162
|
+
cache: /* @__PURE__ */ new WeakMap(),
|
|
163
|
+
label: "readonly ",
|
|
164
|
+
allows: () => false,
|
|
165
|
+
reject(action) {
|
|
166
|
+
throw new Error(`Cannot ${action} on readonly object`);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
var USE_CASE = {
|
|
170
|
+
marker: /* @__PURE__ */ Symbol("useCaseWritable"),
|
|
171
|
+
cache: /* @__PURE__ */ new WeakMap(),
|
|
172
|
+
label: "",
|
|
173
|
+
allows: isMutationWindowOpen,
|
|
174
|
+
reject(action) {
|
|
175
|
+
throw new Error(
|
|
176
|
+
`[magic-use-case] Cannot ${action} outside a use case.
|
|
177
|
+
|
|
178
|
+
Application state may only be mutated from within a running use case, so that every change emits a state-change event and reaches the UI. Mutating it elsewhere would leave presenters showing stale data.
|
|
179
|
+
|
|
180
|
+
Move this write into a use case's runLogic().`
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
function isObject(value) {
|
|
185
|
+
return value !== null && typeof value === "object";
|
|
186
|
+
}
|
|
187
|
+
function mustReturnRaw(target, prop) {
|
|
188
|
+
const descriptor = Object.getOwnPropertyDescriptor(target, prop);
|
|
189
|
+
return descriptor !== void 0 && descriptor.configurable === false && descriptor.writable === false;
|
|
190
|
+
}
|
|
191
|
+
function wrap(value, policy) {
|
|
192
|
+
return isObject(value) ? proxyFor(value, policy) : value;
|
|
193
|
+
}
|
|
194
|
+
function createMapProxy(target, policy) {
|
|
195
|
+
return new Proxy(target, {
|
|
196
|
+
get(target2, prop, receiver) {
|
|
197
|
+
if (prop === policy.marker) return true;
|
|
198
|
+
if (typeof prop === "string" && mutatingMapMethods.has(prop)) {
|
|
199
|
+
if (!policy.allows()) return () => policy.reject(`call .${prop}() on ${policy.label}Map`);
|
|
200
|
+
const method = Reflect.get(target2, prop, target2);
|
|
201
|
+
return method.bind(target2);
|
|
202
|
+
}
|
|
203
|
+
if (prop === "get") {
|
|
204
|
+
return (key) => wrap(target2.get(key), policy);
|
|
205
|
+
}
|
|
206
|
+
if (prop === "forEach") {
|
|
207
|
+
return (cb) => target2.forEach((v2, k2) => cb(wrap(v2, policy), k2, receiver));
|
|
208
|
+
}
|
|
209
|
+
if (iteratorKeys.has(prop)) {
|
|
210
|
+
return function* () {
|
|
211
|
+
if (prop === "values") {
|
|
212
|
+
for (const v2 of target2.values()) yield wrap(v2, policy);
|
|
213
|
+
} else {
|
|
214
|
+
for (const [k2, v2] of target2.entries()) yield [k2, wrap(v2, policy)];
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
const value = Reflect.get(target2, prop, target2);
|
|
219
|
+
if (prop === "constructor" || typeof value !== "function") return value;
|
|
220
|
+
return value.bind(target2);
|
|
221
|
+
},
|
|
222
|
+
set(target2, prop, value) {
|
|
223
|
+
if (!policy.allows()) policy.reject(`set property '${String(prop)}'`);
|
|
224
|
+
return Reflect.set(target2, prop, value);
|
|
225
|
+
},
|
|
226
|
+
deleteProperty(target2, prop) {
|
|
227
|
+
if (!policy.allows()) policy.reject(`delete property '${String(prop)}'`);
|
|
228
|
+
return Reflect.deleteProperty(target2, prop);
|
|
229
|
+
},
|
|
230
|
+
defineProperty(target2, prop, attributes) {
|
|
231
|
+
if (!policy.allows()) policy.reject(`define property '${String(prop)}'`);
|
|
232
|
+
return Reflect.defineProperty(target2, prop, attributes);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
function createSetProxy(target, policy) {
|
|
237
|
+
return new Proxy(target, {
|
|
238
|
+
get(target2, prop, receiver) {
|
|
239
|
+
if (prop === policy.marker) return true;
|
|
240
|
+
if (typeof prop === "string" && mutatingSetMethods.has(prop)) {
|
|
241
|
+
if (!policy.allows()) return () => policy.reject(`call .${prop}() on ${policy.label}Set`);
|
|
242
|
+
const method = Reflect.get(target2, prop, target2);
|
|
243
|
+
return method.bind(target2);
|
|
244
|
+
}
|
|
245
|
+
if (iteratorKeys.has(prop)) {
|
|
246
|
+
return function* () {
|
|
247
|
+
for (const v2 of target2.values()) yield wrap(v2, policy);
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
if (prop === "forEach") {
|
|
251
|
+
return (cb) => target2.forEach((v2) => cb(wrap(v2, policy), wrap(v2, policy), receiver));
|
|
252
|
+
}
|
|
253
|
+
const value = Reflect.get(target2, prop, target2);
|
|
254
|
+
if (prop === "constructor" || typeof value !== "function") return value;
|
|
255
|
+
return value.bind(target2);
|
|
256
|
+
},
|
|
257
|
+
set(target2, prop, value) {
|
|
258
|
+
if (!policy.allows()) policy.reject(`set property '${String(prop)}'`);
|
|
259
|
+
return Reflect.set(target2, prop, value);
|
|
260
|
+
},
|
|
261
|
+
deleteProperty(target2, prop) {
|
|
262
|
+
if (!policy.allows()) policy.reject(`delete property '${String(prop)}'`);
|
|
263
|
+
return Reflect.deleteProperty(target2, prop);
|
|
264
|
+
},
|
|
265
|
+
defineProperty(target2, prop, attributes) {
|
|
266
|
+
if (!policy.allows()) policy.reject(`define property '${String(prop)}'`);
|
|
267
|
+
return Reflect.defineProperty(target2, prop, attributes);
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
function createObjectProxy(target, policy) {
|
|
272
|
+
return new Proxy(target, {
|
|
273
|
+
get(target2, prop) {
|
|
274
|
+
if (prop === policy.marker) return true;
|
|
275
|
+
if (Array.isArray(target2) && typeof prop === "string" && mutatingArrayMethods.has(prop)) {
|
|
276
|
+
if (!policy.allows()) return () => policy.reject(`call .${prop}() on ${policy.label}Array`);
|
|
277
|
+
const method = Reflect.get(target2, prop, target2);
|
|
278
|
+
return method.bind(target2);
|
|
279
|
+
}
|
|
280
|
+
const value = Reflect.get(target2, prop, target2);
|
|
281
|
+
if (typeof value === "function") return prop === "constructor" ? value : value.bind(target2);
|
|
282
|
+
if (!isObject(value) || mustReturnRaw(target2, prop)) return value;
|
|
283
|
+
return proxyFor(value, policy);
|
|
284
|
+
},
|
|
285
|
+
set(target2, prop, value) {
|
|
286
|
+
if (!policy.allows()) policy.reject(`set property '${String(prop)}'`);
|
|
287
|
+
return Reflect.set(target2, prop, value);
|
|
288
|
+
},
|
|
289
|
+
deleteProperty(target2, prop) {
|
|
290
|
+
if (!policy.allows()) policy.reject(`delete property '${String(prop)}'`);
|
|
291
|
+
return Reflect.deleteProperty(target2, prop);
|
|
292
|
+
},
|
|
293
|
+
defineProperty(target2, prop, attributes) {
|
|
294
|
+
if (!policy.allows()) policy.reject(`define property '${String(prop)}'`);
|
|
295
|
+
return Reflect.defineProperty(target2, prop, attributes);
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
function proxyFor(obj, policy) {
|
|
300
|
+
if (obj === null || typeof obj !== "object") return obj;
|
|
301
|
+
if (obj[policy.marker]) return obj;
|
|
302
|
+
const cached = policy.cache.get(obj);
|
|
303
|
+
if (cached) return cached;
|
|
304
|
+
let proxy;
|
|
305
|
+
if (obj instanceof Map) {
|
|
306
|
+
proxy = createMapProxy(obj, policy);
|
|
307
|
+
} else if (obj instanceof Set) {
|
|
308
|
+
proxy = createSetProxy(obj, policy);
|
|
309
|
+
} else {
|
|
310
|
+
proxy = createObjectProxy(obj, policy);
|
|
311
|
+
}
|
|
312
|
+
policy.cache.set(obj, proxy);
|
|
313
|
+
return proxy;
|
|
314
|
+
}
|
|
315
|
+
function deepReadonly(obj) {
|
|
316
|
+
return proxyFor(obj, READONLY);
|
|
317
|
+
}
|
|
318
|
+
function useCaseWritable(obj) {
|
|
319
|
+
return proxyFor(obj, USE_CASE);
|
|
320
|
+
}
|
|
321
|
+
function cloneCollection(value, seen) {
|
|
322
|
+
if (value instanceof Map) {
|
|
323
|
+
const copy = /* @__PURE__ */ new Map();
|
|
324
|
+
seen.set(value, copy);
|
|
325
|
+
for (const [k2, v2] of value.entries()) {
|
|
326
|
+
copy.set(deepClone(k2, seen), deepClone(v2, seen));
|
|
327
|
+
}
|
|
328
|
+
return copy;
|
|
329
|
+
}
|
|
330
|
+
if (value instanceof Set) {
|
|
331
|
+
const copy = /* @__PURE__ */ new Set();
|
|
332
|
+
seen.set(value, copy);
|
|
333
|
+
for (const v2 of value.values()) {
|
|
334
|
+
copy.add(deepClone(v2, seen));
|
|
335
|
+
}
|
|
336
|
+
return copy;
|
|
337
|
+
}
|
|
338
|
+
if (Array.isArray(value)) {
|
|
339
|
+
const copy = [];
|
|
340
|
+
seen.set(value, copy);
|
|
341
|
+
for (const v2 of value) copy.push(deepClone(v2, seen));
|
|
342
|
+
return copy;
|
|
343
|
+
}
|
|
344
|
+
return void 0;
|
|
345
|
+
}
|
|
346
|
+
function deepClone(value, seen = /* @__PURE__ */ new WeakMap()) {
|
|
347
|
+
if (value === null || typeof value !== "object") return value;
|
|
348
|
+
const asObject = value;
|
|
349
|
+
const existing = seen.get(asObject);
|
|
350
|
+
if (existing !== void 0) return existing;
|
|
351
|
+
if (value instanceof Date) return new Date(value.getTime());
|
|
352
|
+
if (value instanceof RegExp) return new RegExp(value.source, value.flags);
|
|
353
|
+
const collection = cloneCollection(asObject, seen);
|
|
354
|
+
if (collection !== void 0) return collection;
|
|
355
|
+
const copy = Object.create(Object.getPrototypeOf(asObject));
|
|
356
|
+
seen.set(asObject, copy);
|
|
357
|
+
for (const key of Reflect.ownKeys(asObject)) {
|
|
358
|
+
const descriptor = Object.getOwnPropertyDescriptor(asObject, key);
|
|
359
|
+
if (!descriptor) continue;
|
|
360
|
+
if ("value" in descriptor) {
|
|
361
|
+
Object.defineProperty(copy, key, {
|
|
362
|
+
...descriptor,
|
|
363
|
+
value: deepClone(descriptor.value, seen)
|
|
364
|
+
});
|
|
365
|
+
} else {
|
|
366
|
+
Object.defineProperty(copy, key, descriptor);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
if (Object.isFrozen(asObject)) Object.freeze(copy);
|
|
370
|
+
else if (Object.isSealed(asObject)) Object.seal(copy);
|
|
371
|
+
return copy;
|
|
372
|
+
}
|
|
373
|
+
var entryPoints = /* @__PURE__ */ new WeakSet();
|
|
374
|
+
function createUseCase(UseCaseClass, onProgress) {
|
|
375
|
+
const useCase = new UseCaseClass(onProgress);
|
|
376
|
+
entryPoints.add(useCase);
|
|
377
|
+
return useCase;
|
|
378
|
+
}
|
|
379
|
+
var UseCase = class {
|
|
380
|
+
constructor(onProgress) {
|
|
381
|
+
__publicField(this, "onProgress");
|
|
382
|
+
this.onProgress = onProgress;
|
|
383
|
+
}
|
|
384
|
+
/** Resolved per emit, so an execution always announces on the scope it is running in. */
|
|
385
|
+
get eventEmitter() {
|
|
386
|
+
return currentScope().emitter;
|
|
387
|
+
}
|
|
388
|
+
execute(params) {
|
|
389
|
+
return this.run(params, { hasCaller: !entryPoints.has(this) });
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Starts a use case that this one does not wait for. It runs on its own: the
|
|
393
|
+
* caller returns and announces its own changes immediately, and the detached
|
|
394
|
+
* run announces its own when it lands. Nobody is waiting on it, so its failure
|
|
395
|
+
* is reported rather than thrown.
|
|
396
|
+
*/
|
|
397
|
+
detach(UseCaseClass, params) {
|
|
398
|
+
void createUseCase(UseCaseClass).run(params, { hasCaller: false }).catch(() => void 0);
|
|
399
|
+
}
|
|
400
|
+
async run(params, run) {
|
|
401
|
+
const scope = currentScope();
|
|
402
|
+
if (scope.state === void 0) {
|
|
403
|
+
if (!scope.initialStatePromise) {
|
|
404
|
+
scope.initialStatePromise = this.initializeState().then((state) => {
|
|
405
|
+
scope.state = deepClone(state);
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
try {
|
|
409
|
+
await scope.initialStatePromise;
|
|
410
|
+
} catch (error) {
|
|
411
|
+
this.reportUnlessCallerWill(error, run);
|
|
412
|
+
throw error;
|
|
413
|
+
} finally {
|
|
414
|
+
scope.initialStatePromise = void 0;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
const classMap = scope.runningUseCases.get(this.constructor) ?? /* @__PURE__ */ new Map();
|
|
418
|
+
scope.runningUseCases.set(this.constructor, classMap);
|
|
419
|
+
const paramsKey = JSON.stringify(params);
|
|
420
|
+
if (classMap.has(paramsKey)) {
|
|
421
|
+
await classMap.get(paramsKey);
|
|
422
|
+
this.announceUnlessCallerWill(run);
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
const executionPromise = this.runWithUpdate(() => this.runLogic(params), run);
|
|
426
|
+
classMap.set(paramsKey, executionPromise);
|
|
427
|
+
try {
|
|
428
|
+
await executionPromise;
|
|
429
|
+
} finally {
|
|
430
|
+
classMap.delete(paramsKey);
|
|
431
|
+
if (classMap.size === 0) {
|
|
432
|
+
scope.runningUseCases.delete(this.constructor);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
getState() {
|
|
437
|
+
return useCaseWritable(currentScope().state);
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Clears application state so the next execution bootstraps it again.
|
|
441
|
+
*
|
|
442
|
+
* All four pieces of module state go together: the state itself, the
|
|
443
|
+
* emitter's retained copy, the in-flight dedup map, and any bootstrap in
|
|
444
|
+
* flight. Leaving any one behind resurrects the old state.
|
|
445
|
+
*/
|
|
446
|
+
resetAppState() {
|
|
447
|
+
assertMutationWindowOpen("Resetting application state");
|
|
448
|
+
const scope = currentScope();
|
|
449
|
+
scope.state = void 0;
|
|
450
|
+
scope.runningUseCases.clear();
|
|
451
|
+
scope.initialStatePromise = void 0;
|
|
452
|
+
this.eventEmitter.resetState();
|
|
453
|
+
}
|
|
454
|
+
navigate(url) {
|
|
455
|
+
this.eventEmitter.emitNavigation(url);
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Announces a failure the screen should hear about, for a use case that
|
|
459
|
+
* handles the failure rather than rethrowing it. Anything rethrown is
|
|
460
|
+
* reported on its way out and must not be reported here as well.
|
|
461
|
+
*/
|
|
462
|
+
report(error) {
|
|
463
|
+
this.eventEmitter.emitError(error);
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* A run announces its work unless somebody is waiting on it. A nested run
|
|
467
|
+
* stays silent and its caller announces everything written beneath it, once.
|
|
468
|
+
*
|
|
469
|
+
* Whether a run has a caller is known when it starts, which is what keeps an
|
|
470
|
+
* unrelated run finishing at the same moment from being swallowed: two flows
|
|
471
|
+
* a screen started independently each reach it on their own.
|
|
472
|
+
*/
|
|
473
|
+
async runWithUpdate(functionToRun, run) {
|
|
474
|
+
try {
|
|
475
|
+
await withMutationWindow(functionToRun);
|
|
476
|
+
} catch (error) {
|
|
477
|
+
this.reportUnlessCallerWill(error, run);
|
|
478
|
+
throw error;
|
|
479
|
+
} finally {
|
|
480
|
+
this.announceUnlessCallerWill(run);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
announceUnlessCallerWill(run) {
|
|
484
|
+
if (run.hasCaller) return;
|
|
485
|
+
this.eventEmitter.emitStateChange(deepReadonly(currentScope().state));
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Counting who is running cannot tell a caller from an unrelated run that
|
|
489
|
+
* happens to overlap, and guessing wrong loses the failure entirely. Whether
|
|
490
|
+
* this run has a caller is known when it starts, so that is what decides.
|
|
491
|
+
*/
|
|
492
|
+
reportUnlessCallerWill(error, run) {
|
|
493
|
+
if (run.hasCaller) return;
|
|
494
|
+
this.report(error instanceof Error ? error : new Error(String(error)));
|
|
495
|
+
}
|
|
496
|
+
};
|
|
497
|
+
function acquireSource(scope, presentation) {
|
|
498
|
+
const existing = scope.sources.get(presentation);
|
|
499
|
+
if (existing) {
|
|
500
|
+
existing.presenters += 1;
|
|
501
|
+
return existing;
|
|
502
|
+
}
|
|
503
|
+
const source = {
|
|
504
|
+
model: void 0,
|
|
505
|
+
listeners: /* @__PURE__ */ new Set(),
|
|
506
|
+
presenters: 1,
|
|
507
|
+
handler: (state) => {
|
|
508
|
+
if (state === void 0) {
|
|
509
|
+
source.model = void 0;
|
|
510
|
+
} else {
|
|
511
|
+
try {
|
|
512
|
+
source.model = presentation(state);
|
|
513
|
+
} catch (error) {
|
|
514
|
+
console.error("[magic-use-case] A presentation threw; its model is left empty.", error);
|
|
515
|
+
source.model = void 0;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
source.listeners.forEach((listener) => listener(source.model));
|
|
519
|
+
}
|
|
520
|
+
};
|
|
521
|
+
scope.sources.set(presentation, source);
|
|
522
|
+
scope.emitter.registerForStateChange(source.handler);
|
|
523
|
+
if (source.model === void 0 && scope.state !== void 0) {
|
|
524
|
+
source.handler(deepReadonly(scope.state));
|
|
525
|
+
}
|
|
526
|
+
return source;
|
|
527
|
+
}
|
|
528
|
+
function releaseSource(scope, presentation) {
|
|
529
|
+
const source = scope.sources.get(presentation);
|
|
530
|
+
if (!source) return;
|
|
531
|
+
source.presenters -= 1;
|
|
532
|
+
if (source.presenters > 0) return;
|
|
533
|
+
scope.emitter.unregisterFromStateChange(source.handler);
|
|
534
|
+
scope.sources.delete(presentation);
|
|
535
|
+
}
|
|
536
|
+
var Presenter = class {
|
|
537
|
+
constructor(presentation) {
|
|
538
|
+
__publicField(this, "model");
|
|
539
|
+
__publicField(this, "subscribers", /* @__PURE__ */ new Set());
|
|
540
|
+
__publicField(this, "presentation");
|
|
541
|
+
__publicField(this, "source");
|
|
542
|
+
__publicField(this, "onModel");
|
|
543
|
+
__publicField(this, "scope");
|
|
544
|
+
this.presentation = presentation;
|
|
545
|
+
this.onModel = (model) => {
|
|
546
|
+
this.model = model;
|
|
547
|
+
this.notifySubscribers();
|
|
548
|
+
};
|
|
549
|
+
this.scope = currentScope();
|
|
550
|
+
this.source = acquireSource(this.scope, presentation);
|
|
551
|
+
this.model = this.source.model;
|
|
552
|
+
this.source.listeners.add(this.onModel);
|
|
553
|
+
}
|
|
554
|
+
subscribe(listener) {
|
|
555
|
+
this.subscribers.add(listener);
|
|
556
|
+
listener(this.model);
|
|
557
|
+
}
|
|
558
|
+
unsubscribe(listener) {
|
|
559
|
+
this.subscribers.delete(listener);
|
|
560
|
+
}
|
|
561
|
+
notifySubscribers() {
|
|
562
|
+
this.subscribers.forEach((listener) => listener(this.model));
|
|
563
|
+
}
|
|
564
|
+
destroy() {
|
|
565
|
+
if (!this.source) return;
|
|
566
|
+
this.source.listeners.delete(this.onModel);
|
|
567
|
+
this.source = void 0;
|
|
568
|
+
releaseSource(this.scope, this.presentation);
|
|
569
|
+
this.subscribers.clear();
|
|
570
|
+
this.model = void 0;
|
|
571
|
+
}
|
|
572
|
+
};
|
|
573
|
+
var M = ((i) => (i[i.AggregateError = 1] = "AggregateError", i[i.ArrowFunction = 2] = "ArrowFunction", i[i.ErrorPrototypeStack = 4] = "ErrorPrototypeStack", i[i.ObjectAssign = 8] = "ObjectAssign", i[i.BigIntTypedArray = 16] = "BigIntTypedArray", i[i.RegExp = 32] = "RegExp", i))(M || {});
|
|
574
|
+
var v = Symbol.asyncIterator;
|
|
575
|
+
var dr = Symbol.hasInstance;
|
|
576
|
+
var R = Symbol.isConcatSpreadable;
|
|
577
|
+
var C = Symbol.iterator;
|
|
578
|
+
var gr = Symbol.match;
|
|
579
|
+
var yr = Symbol.matchAll;
|
|
580
|
+
var Nr = Symbol.replace;
|
|
581
|
+
var br = Symbol.search;
|
|
582
|
+
var vr = Symbol.species;
|
|
583
|
+
var Cr = Symbol.split;
|
|
584
|
+
var Ar = Symbol.toPrimitive;
|
|
585
|
+
var P = Symbol.toStringTag;
|
|
586
|
+
var Er = Symbol.unscopables;
|
|
587
|
+
var nt = { 0: "Symbol.asyncIterator", 1: "Symbol.hasInstance", 2: "Symbol.isConcatSpreadable", 3: "Symbol.iterator", 4: "Symbol.match", 5: "Symbol.matchAll", 6: "Symbol.replace", 7: "Symbol.search", 8: "Symbol.species", 9: "Symbol.split", 10: "Symbol.toPrimitive", 11: "Symbol.toStringTag", 12: "Symbol.unscopables" };
|
|
588
|
+
var Ce = { [v]: 0, [dr]: 1, [R]: 2, [C]: 3, [gr]: 4, [yr]: 5, [Nr]: 6, [br]: 7, [vr]: 8, [Cr]: 9, [Ar]: 10, [P]: 11, [Er]: 12 };
|
|
589
|
+
var at = { 2: "!0", 3: "!1", 1: "void 0", 0: "null", 4: "-0", 5: "1/0", 6: "-1/0", 7: "0/0" };
|
|
590
|
+
var o = void 0;
|
|
591
|
+
var Ae = { 0: "Error", 1: "EvalError", 2: "RangeError", 3: "ReferenceError", 4: "SyntaxError", 5: "TypeError", 6: "URIError" };
|
|
592
|
+
function c(e, r, t, n, a, s, i, u, l, g, S, d) {
|
|
593
|
+
return { t: e, i: r, s: t, c: n, m: a, p: s, e: i, a: u, f: l, b: g, o: S, l: d };
|
|
594
|
+
}
|
|
595
|
+
function B(e) {
|
|
596
|
+
return c(2, o, e, o, o, o, o, o, o, o, o, o);
|
|
597
|
+
}
|
|
598
|
+
var H = B(2);
|
|
599
|
+
var J = B(3);
|
|
600
|
+
var Ee = B(1);
|
|
601
|
+
var Ie = B(0);
|
|
602
|
+
var ut = B(4);
|
|
603
|
+
var lt = B(5);
|
|
604
|
+
var ct = B(6);
|
|
605
|
+
var ft = B(7);
|
|
606
|
+
function dn(e) {
|
|
607
|
+
switch (e) {
|
|
608
|
+
case '"':
|
|
609
|
+
return '\\"';
|
|
610
|
+
case "\\":
|
|
611
|
+
return "\\\\";
|
|
612
|
+
case `
|
|
613
|
+
`:
|
|
614
|
+
return "\\n";
|
|
615
|
+
case "\r":
|
|
616
|
+
return "\\r";
|
|
617
|
+
case "\b":
|
|
618
|
+
return "\\b";
|
|
619
|
+
case " ":
|
|
620
|
+
return "\\t";
|
|
621
|
+
case "\f":
|
|
622
|
+
return "\\f";
|
|
623
|
+
case "<":
|
|
624
|
+
return "\\x3C";
|
|
625
|
+
case "\u2028":
|
|
626
|
+
return "\\u2028";
|
|
627
|
+
case "\u2029":
|
|
628
|
+
return "\\u2029";
|
|
629
|
+
default:
|
|
630
|
+
return o;
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
function y(e) {
|
|
634
|
+
let r = "", t = 0, n;
|
|
635
|
+
for (let a = 0, s = e.length; a < s; a++) n = dn(e[a]), n && (r += e.slice(t, a) + n, t = a + 1);
|
|
636
|
+
return t === 0 ? r = e : r += e.slice(t), r;
|
|
637
|
+
}
|
|
638
|
+
function gn(e) {
|
|
639
|
+
switch (e) {
|
|
640
|
+
case "\\\\":
|
|
641
|
+
return "\\";
|
|
642
|
+
case '\\"':
|
|
643
|
+
return '"';
|
|
644
|
+
case "\\n":
|
|
645
|
+
return `
|
|
646
|
+
`;
|
|
647
|
+
case "\\r":
|
|
648
|
+
return "\r";
|
|
649
|
+
case "\\b":
|
|
650
|
+
return "\b";
|
|
651
|
+
case "\\t":
|
|
652
|
+
return " ";
|
|
653
|
+
case "\\f":
|
|
654
|
+
return "\f";
|
|
655
|
+
case "\\x3C":
|
|
656
|
+
return "<";
|
|
657
|
+
case "\\u2028":
|
|
658
|
+
return "\u2028";
|
|
659
|
+
case "\\u2029":
|
|
660
|
+
return "\u2029";
|
|
661
|
+
default:
|
|
662
|
+
return e;
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
function h(e) {
|
|
666
|
+
return e.replace(/(\\\\|\\"|\\n|\\r|\\b|\\t|\\f|\\u2028|\\u2029|\\x3C)/g, gn);
|
|
667
|
+
}
|
|
668
|
+
var L = "__SEROVAL_REFS__";
|
|
669
|
+
var le = "$R";
|
|
670
|
+
var Ir = /* @__PURE__ */ new Map();
|
|
671
|
+
var U = /* @__PURE__ */ new Map();
|
|
672
|
+
function Rr(e) {
|
|
673
|
+
return Ir.has(e);
|
|
674
|
+
}
|
|
675
|
+
function St(e) {
|
|
676
|
+
if (Rr(e)) return Ir.get(e);
|
|
677
|
+
throw new Pe(e);
|
|
678
|
+
}
|
|
679
|
+
typeof globalThis != "undefined" ? Object.defineProperty(globalThis, L, { value: U, configurable: true, writable: false, enumerable: false }) : typeof window != "undefined" ? Object.defineProperty(window, L, { value: U, configurable: true, writable: false, enumerable: false }) : typeof self != "undefined" ? Object.defineProperty(self, L, { value: U, configurable: true, writable: false, enumerable: false }) : typeof global != "undefined" && Object.defineProperty(global, L, { value: U, configurable: true, writable: false, enumerable: false });
|
|
680
|
+
function Te(e) {
|
|
681
|
+
return e instanceof EvalError ? 1 : e instanceof RangeError ? 2 : e instanceof ReferenceError ? 3 : e instanceof SyntaxError ? 4 : e instanceof TypeError ? 5 : e instanceof URIError ? 6 : 0;
|
|
682
|
+
}
|
|
683
|
+
function vn(e) {
|
|
684
|
+
let r = Ae[Te(e)];
|
|
685
|
+
return e.name !== r ? { name: e.name } : e.constructor.name !== r ? { name: e.constructor.name } : {};
|
|
686
|
+
}
|
|
687
|
+
function Z(e, r) {
|
|
688
|
+
let t = vn(e), n = Object.getOwnPropertyNames(e);
|
|
689
|
+
for (let a = 0, s = n.length, i; a < s; a++) i = n[a], i !== "name" && i !== "message" && (i === "stack" ? r & 4 && (t = t || {}, t[i] = e[i]) : (t = t || {}, t[i] = e[i]));
|
|
690
|
+
return t;
|
|
691
|
+
}
|
|
692
|
+
function Oe(e) {
|
|
693
|
+
return Object.isFrozen(e) ? 3 : Object.isSealed(e) ? 2 : Object.isExtensible(e) ? 0 : 1;
|
|
694
|
+
}
|
|
695
|
+
function we(e) {
|
|
696
|
+
switch (e) {
|
|
697
|
+
case Number.POSITIVE_INFINITY:
|
|
698
|
+
return lt;
|
|
699
|
+
case Number.NEGATIVE_INFINITY:
|
|
700
|
+
return ct;
|
|
701
|
+
}
|
|
702
|
+
return e !== e ? ft : Object.is(e, -0) ? ut : c(0, o, e, o, o, o, o, o, o, o, o, o);
|
|
703
|
+
}
|
|
704
|
+
function $(e) {
|
|
705
|
+
return c(1, o, y(e), o, o, o, o, o, o, o, o, o);
|
|
706
|
+
}
|
|
707
|
+
function he(e) {
|
|
708
|
+
return c(3, o, "" + e, o, o, o, o, o, o, o, o, o);
|
|
709
|
+
}
|
|
710
|
+
function dt(e) {
|
|
711
|
+
return c(4, e, o, o, o, o, o, o, o, o, o, o);
|
|
712
|
+
}
|
|
713
|
+
function ze(e, r) {
|
|
714
|
+
let t = r.valueOf();
|
|
715
|
+
return c(5, e, t !== t ? "" : r.toISOString(), o, o, o, o, o, o, o, o, o);
|
|
716
|
+
}
|
|
717
|
+
function _e(e, r) {
|
|
718
|
+
return c(6, e, o, y(r.source), r.flags, o, o, o, o, o, o, o);
|
|
719
|
+
}
|
|
720
|
+
function gt(e, r) {
|
|
721
|
+
return c(17, e, Ce[r], o, o, o, o, o, o, o, o, o);
|
|
722
|
+
}
|
|
723
|
+
function yt(e, r) {
|
|
724
|
+
return c(18, e, y(St(r)), o, o, o, o, o, o, o, o, o);
|
|
725
|
+
}
|
|
726
|
+
function ce(e, r, t) {
|
|
727
|
+
return c(25, e, t, y(r), o, o, o, o, o, o, o, o);
|
|
728
|
+
}
|
|
729
|
+
function ke(e, r, t) {
|
|
730
|
+
return c(9, e, o, o, o, o, o, t, o, o, Oe(r), o);
|
|
731
|
+
}
|
|
732
|
+
function De(e, r) {
|
|
733
|
+
return c(21, e, o, o, o, o, o, o, r, o, o, o);
|
|
734
|
+
}
|
|
735
|
+
function Fe(e, r, t) {
|
|
736
|
+
return c(15, e, o, r.constructor.name, o, o, o, o, t, r.byteOffset, o, r.length);
|
|
737
|
+
}
|
|
738
|
+
function Be(e, r, t) {
|
|
739
|
+
return c(16, e, o, r.constructor.name, o, o, o, o, t, r.byteOffset, o, r.length);
|
|
740
|
+
}
|
|
741
|
+
function Ve(e, r, t) {
|
|
742
|
+
return c(20, e, o, o, o, o, o, o, t, r.byteOffset, o, r.byteLength);
|
|
743
|
+
}
|
|
744
|
+
function Me(e, r, t) {
|
|
745
|
+
return c(13, e, Te(r), o, y(r.message), t, o, o, o, o, o, o);
|
|
746
|
+
}
|
|
747
|
+
function Le(e, r, t) {
|
|
748
|
+
return c(14, e, Te(r), o, y(r.message), t, o, o, o, o, o, o);
|
|
749
|
+
}
|
|
750
|
+
function Ue(e, r) {
|
|
751
|
+
return c(7, e, o, o, o, o, o, r, o, o, o, o);
|
|
752
|
+
}
|
|
753
|
+
function je(e, r) {
|
|
754
|
+
return c(28, o, o, o, o, o, o, [e, r], o, o, o, o);
|
|
755
|
+
}
|
|
756
|
+
function Ye(e, r) {
|
|
757
|
+
return c(30, o, o, o, o, o, o, [e, r], o, o, o, o);
|
|
758
|
+
}
|
|
759
|
+
function qe(e, r, t) {
|
|
760
|
+
return c(31, e, o, o, o, o, o, t, r, o, o, o);
|
|
761
|
+
}
|
|
762
|
+
function We(e, r) {
|
|
763
|
+
return c(32, e, o, o, o, o, o, o, r, o, o, o);
|
|
764
|
+
}
|
|
765
|
+
function Ke(e, r) {
|
|
766
|
+
return c(33, e, o, o, o, o, o, o, r, o, o, o);
|
|
767
|
+
}
|
|
768
|
+
function Ge(e, r) {
|
|
769
|
+
return c(34, e, o, o, o, o, o, o, r, o, o, o);
|
|
770
|
+
}
|
|
771
|
+
function He(e, r, t, n) {
|
|
772
|
+
return c(35, e, t, o, o, o, o, r, o, o, o, n);
|
|
773
|
+
}
|
|
774
|
+
var Cn = { parsing: 1, serialization: 2, deserialization: 3 };
|
|
775
|
+
function An(e) {
|
|
776
|
+
return `Seroval Error (step: ${Cn[e]})`;
|
|
777
|
+
}
|
|
778
|
+
var En = (e, r) => An(e);
|
|
779
|
+
var fe = class extends Error {
|
|
780
|
+
constructor(t, n) {
|
|
781
|
+
super(En(t, n));
|
|
782
|
+
this.cause = n;
|
|
783
|
+
}
|
|
784
|
+
};
|
|
785
|
+
var _ = class extends fe {
|
|
786
|
+
constructor(r) {
|
|
787
|
+
super("parsing", r);
|
|
788
|
+
}
|
|
789
|
+
};
|
|
790
|
+
function k(e) {
|
|
791
|
+
return `Seroval Error (specific: ${e})`;
|
|
792
|
+
}
|
|
793
|
+
var x = class extends Error {
|
|
794
|
+
constructor(t) {
|
|
795
|
+
super(k(1));
|
|
796
|
+
this.value = t;
|
|
797
|
+
}
|
|
798
|
+
};
|
|
799
|
+
var z = class extends Error {
|
|
800
|
+
constructor(r) {
|
|
801
|
+
super(k(2));
|
|
802
|
+
}
|
|
803
|
+
};
|
|
804
|
+
var X = class extends Error {
|
|
805
|
+
constructor(r) {
|
|
806
|
+
super(k(3));
|
|
807
|
+
}
|
|
808
|
+
};
|
|
809
|
+
var Pe = class extends Error {
|
|
810
|
+
constructor(t) {
|
|
811
|
+
super(k(5));
|
|
812
|
+
this.value = t;
|
|
813
|
+
}
|
|
814
|
+
};
|
|
815
|
+
var Q = class extends Error {
|
|
816
|
+
constructor(r) {
|
|
817
|
+
super(k(9));
|
|
818
|
+
}
|
|
819
|
+
};
|
|
820
|
+
var j = class {
|
|
821
|
+
constructor(r, t) {
|
|
822
|
+
this.value = r;
|
|
823
|
+
this.replacement = t;
|
|
824
|
+
}
|
|
825
|
+
};
|
|
826
|
+
var ee = () => {
|
|
827
|
+
let e = { p: 0, s: 0, f: 0 };
|
|
828
|
+
return e.p = new Promise((r, t) => {
|
|
829
|
+
e.s = r, e.f = t;
|
|
830
|
+
}), e;
|
|
831
|
+
};
|
|
832
|
+
var In = (e, r) => {
|
|
833
|
+
e.s(r), e.p.s = 1, e.p.v = r;
|
|
834
|
+
};
|
|
835
|
+
var Rn = (e, r) => {
|
|
836
|
+
e.f(r), e.p.s = 2, e.p.v = r;
|
|
837
|
+
};
|
|
838
|
+
var bt = ee.toString();
|
|
839
|
+
var vt = In.toString();
|
|
840
|
+
var Ct = Rn.toString();
|
|
841
|
+
var xr = () => {
|
|
842
|
+
let e = [], r = [], t = true, n = false, a = 0, s = (l, g, S) => {
|
|
843
|
+
for (S = 0; S < a; S++) r[S] && r[S][g](l);
|
|
844
|
+
}, i = (l, g, S, d) => {
|
|
845
|
+
for (g = 0, S = e.length; g < S; g++) d = e[g], !t && g === S - 1 ? l[n ? "return" : "throw"](d) : l.next(d);
|
|
846
|
+
}, u = (l, g) => (t && (g = a++, r[g] = l), i(l), () => {
|
|
847
|
+
t && (r[g] = r[a], r[a--] = void 0);
|
|
848
|
+
});
|
|
849
|
+
return { __SEROVAL_STREAM__: true, on: (l) => u(l), next: (l) => {
|
|
850
|
+
t && (e.push(l), s(l, "next"));
|
|
851
|
+
}, throw: (l) => {
|
|
852
|
+
t && (e.push(l), s(l, "throw"), t = false, n = false, r.length = 0);
|
|
853
|
+
}, return: (l) => {
|
|
854
|
+
t && (e.push(l), s(l, "return"), t = false, n = true, r.length = 0);
|
|
855
|
+
} };
|
|
856
|
+
};
|
|
857
|
+
var At = xr.toString();
|
|
858
|
+
var Tr = (e) => (r) => () => {
|
|
859
|
+
let t = 0, n = { [e]: () => n, next: () => {
|
|
860
|
+
if (t > r.d) return { done: true, value: void 0 };
|
|
861
|
+
let a = t++, s = r.v[a];
|
|
862
|
+
if (a === r.t) throw s;
|
|
863
|
+
return { done: a === r.d, value: s };
|
|
864
|
+
} };
|
|
865
|
+
return n;
|
|
866
|
+
};
|
|
867
|
+
var Et = Tr.toString();
|
|
868
|
+
var Or = (e, r) => (t) => () => {
|
|
869
|
+
let n = 0, a = -1, s = false, i = [], u = [], l = (S = 0, d = u.length) => {
|
|
870
|
+
for (; S < d; S++) u[S].s({ done: true, value: void 0 });
|
|
871
|
+
};
|
|
872
|
+
t.on({ next: (S) => {
|
|
873
|
+
let d = u.shift();
|
|
874
|
+
d && d.s({ done: false, value: S }), i.push(S);
|
|
875
|
+
}, throw: (S) => {
|
|
876
|
+
let d = u.shift();
|
|
877
|
+
d && d.f(S), l(), a = i.length, s = true, i.push(S);
|
|
878
|
+
}, return: (S) => {
|
|
879
|
+
let d = u.shift();
|
|
880
|
+
d && d.s({ done: true, value: S }), l(), a = i.length, i.push(S);
|
|
881
|
+
} });
|
|
882
|
+
let g = { [e]: () => g, next: () => {
|
|
883
|
+
if (a === -1) {
|
|
884
|
+
let K = n++;
|
|
885
|
+
if (K >= i.length) {
|
|
886
|
+
let tt = r();
|
|
887
|
+
return u.push(tt), tt.p;
|
|
888
|
+
}
|
|
889
|
+
return { done: false, value: i[K] };
|
|
890
|
+
}
|
|
891
|
+
if (n > a) return { done: true, value: void 0 };
|
|
892
|
+
let S = n++, d = i[S];
|
|
893
|
+
if (S !== a) return { done: false, value: d };
|
|
894
|
+
if (s) throw d;
|
|
895
|
+
return { done: true, value: d };
|
|
896
|
+
} };
|
|
897
|
+
return g;
|
|
898
|
+
};
|
|
899
|
+
var It = Or.toString();
|
|
900
|
+
var wr = (e) => {
|
|
901
|
+
let r = atob(e), t = r.length, n = new Uint8Array(t);
|
|
902
|
+
for (let a = 0; a < t; a++) n[a] = r.charCodeAt(a);
|
|
903
|
+
return n.buffer;
|
|
904
|
+
};
|
|
905
|
+
var Rt = wr.toString();
|
|
906
|
+
function $e(e) {
|
|
907
|
+
return "__SEROVAL_SEQUENCE__" in e;
|
|
908
|
+
}
|
|
909
|
+
function hr(e, r, t) {
|
|
910
|
+
return { __SEROVAL_SEQUENCE__: true, v: e, t: r, d: t };
|
|
911
|
+
}
|
|
912
|
+
function Xe(e) {
|
|
913
|
+
let r = [], t = -1, n = -1, a = e[C]();
|
|
914
|
+
for (; ; ) try {
|
|
915
|
+
let s = a.next();
|
|
916
|
+
if (r.push(s.value), s.done) {
|
|
917
|
+
n = r.length - 1;
|
|
918
|
+
break;
|
|
919
|
+
}
|
|
920
|
+
} catch (s) {
|
|
921
|
+
t = r.length, r.push(s);
|
|
922
|
+
}
|
|
923
|
+
return hr(r, t, n);
|
|
924
|
+
}
|
|
925
|
+
Tr(C);
|
|
926
|
+
var xt = {};
|
|
927
|
+
var Tt = {};
|
|
928
|
+
var Ot = { 0: {}, 1: {}, 2: {}, 3: {}, 4: {}, 5: {} };
|
|
929
|
+
var wt = { 0: "[]", 1: bt, 2: vt, 3: Ct, 4: At, 5: Rt };
|
|
930
|
+
function Qe(e) {
|
|
931
|
+
return "__SEROVAL_STREAM__" in e;
|
|
932
|
+
}
|
|
933
|
+
function re() {
|
|
934
|
+
return xr();
|
|
935
|
+
}
|
|
936
|
+
function er(e) {
|
|
937
|
+
let r = re(), t = e[v]();
|
|
938
|
+
async function n() {
|
|
939
|
+
try {
|
|
940
|
+
let a = await t.next();
|
|
941
|
+
a.done ? r.return(a.value) : (r.next(a.value), await n());
|
|
942
|
+
} catch (a) {
|
|
943
|
+
r.throw(a);
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
return n().catch(() => {
|
|
947
|
+
}), r;
|
|
948
|
+
}
|
|
949
|
+
Or(v, ee);
|
|
950
|
+
function me(e, r) {
|
|
951
|
+
return { plugins: r.plugins, mode: e, marked: /* @__PURE__ */ new Set(), features: 63 ^ (r.disabledFeatures || 0), refs: r.refs || /* @__PURE__ */ new Map(), depthLimit: r.depthLimit || 1e3 };
|
|
952
|
+
}
|
|
953
|
+
function pe(e, r) {
|
|
954
|
+
e.marked.add(r);
|
|
955
|
+
}
|
|
956
|
+
function _r(e, r) {
|
|
957
|
+
let t = e.refs.size;
|
|
958
|
+
return e.refs.set(r, t), t;
|
|
959
|
+
}
|
|
960
|
+
function rr(e, r) {
|
|
961
|
+
let t = e.refs.get(r);
|
|
962
|
+
return t != null ? (pe(e, t), { type: 1, value: dt(t) }) : { type: 0, value: _r(e, r) };
|
|
963
|
+
}
|
|
964
|
+
function Y(e, r) {
|
|
965
|
+
let t = rr(e, r);
|
|
966
|
+
return t.type === 1 ? t : Rr(r) ? { type: 2, value: yt(t.value, r) } : t;
|
|
967
|
+
}
|
|
968
|
+
function I(e, r) {
|
|
969
|
+
let t = Y(e, r);
|
|
970
|
+
if (t.type !== 0) return t.value;
|
|
971
|
+
if (r in Ce) return gt(t.value, r);
|
|
972
|
+
throw new x(r);
|
|
973
|
+
}
|
|
974
|
+
function D(e, r) {
|
|
975
|
+
let t = rr(e, Ot[r]);
|
|
976
|
+
return t.type === 1 ? t.value : c(26, t.value, r, o, o, o, o, o, o, o, o, o);
|
|
977
|
+
}
|
|
978
|
+
function tr(e) {
|
|
979
|
+
let r = rr(e, xt);
|
|
980
|
+
return r.type === 1 ? r.value : c(27, r.value, o, o, o, o, o, o, I(e, C), o, o, o);
|
|
981
|
+
}
|
|
982
|
+
function nr(e) {
|
|
983
|
+
let r = rr(e, Tt);
|
|
984
|
+
return r.type === 1 ? r.value : c(29, r.value, o, o, o, o, o, [D(e, 1), I(e, v)], o, o, o, o);
|
|
985
|
+
}
|
|
986
|
+
function or(e, r, t, n) {
|
|
987
|
+
return c(t ? 11 : 10, e, o, o, o, n, o, o, o, o, Oe(r), o);
|
|
988
|
+
}
|
|
989
|
+
function ar(e, r, t, n) {
|
|
990
|
+
return c(8, r, o, o, o, o, { k: t, v: n }, o, D(e, 0), o, o, o);
|
|
991
|
+
}
|
|
992
|
+
function _t(e, r, t) {
|
|
993
|
+
return c(22, r, t, o, o, o, o, o, D(e, 1), o, o, o);
|
|
994
|
+
}
|
|
995
|
+
function sr(e, r, t) {
|
|
996
|
+
let n = new Uint8Array(t), a = "";
|
|
997
|
+
for (let s = 0, i = n.length; s < i; s++) a += String.fromCharCode(n[s]);
|
|
998
|
+
return c(19, r, y(btoa(a)), o, o, o, o, o, D(e, 5), o, o, o);
|
|
999
|
+
}
|
|
1000
|
+
var oe = ((t) => (t[t.Vanilla = 1] = "Vanilla", t[t.Cross = 2] = "Cross", t))(oe || {});
|
|
1001
|
+
function Ft(e, r) {
|
|
1002
|
+
for (let t = 0, n = r.length; t < n; t++) {
|
|
1003
|
+
let a = r[t];
|
|
1004
|
+
e.has(a) || (e.add(a), a.extends && Ft(e, a.extends));
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
function A(e) {
|
|
1008
|
+
if (e) {
|
|
1009
|
+
let r = /* @__PURE__ */ new Set();
|
|
1010
|
+
return Ft(r, e), [...r];
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
function de(e) {
|
|
1014
|
+
switch (e) {
|
|
1015
|
+
case "constructor":
|
|
1016
|
+
case "__proto__":
|
|
1017
|
+
case "prototype":
|
|
1018
|
+
case "__defineGetter__":
|
|
1019
|
+
case "__defineSetter__":
|
|
1020
|
+
case "__lookupGetter__":
|
|
1021
|
+
case "__lookupSetter__":
|
|
1022
|
+
return false;
|
|
1023
|
+
default:
|
|
1024
|
+
return true;
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
var Ro = () => T;
|
|
1028
|
+
var Po = Ro.toString();
|
|
1029
|
+
var Ht = /=>/.test(Po);
|
|
1030
|
+
function ur(e, r) {
|
|
1031
|
+
return Ht ? (e.length === 1 ? e[0] : "(" + e.join(",") + ")") + "=>" + (r.startsWith("{") ? "(" + r + ")" : r) : "function(" + e.join(",") + "){return " + r + "}";
|
|
1032
|
+
}
|
|
1033
|
+
function Jt(e, r) {
|
|
1034
|
+
return Ht ? (e.length === 1 ? e[0] : "(" + e.join(",") + ")") + "=>{" + r + "}" : "function(" + e.join(",") + "){" + r + "}";
|
|
1035
|
+
}
|
|
1036
|
+
var Xt = "hjkmoquxzABCDEFGHIJKLNPQRTUVWXYZ$_";
|
|
1037
|
+
var Zt = Xt.length;
|
|
1038
|
+
var Qt = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_";
|
|
1039
|
+
var $t = Qt.length;
|
|
1040
|
+
function Mr(e) {
|
|
1041
|
+
let r = e % Zt, t = Xt[r];
|
|
1042
|
+
for (e = (e - r) / Zt; e > 0; ) r = e % $t, t += Qt[r], e = (e - r) / $t;
|
|
1043
|
+
return t;
|
|
1044
|
+
}
|
|
1045
|
+
var xo = /^[$A-Z_][0-9A-Z_$]*$/i;
|
|
1046
|
+
function Lr(e) {
|
|
1047
|
+
let r = e[0];
|
|
1048
|
+
return (r === "$" || r === "_" || r >= "A" && r <= "Z" || r >= "a" && r <= "z") && xo.test(e);
|
|
1049
|
+
}
|
|
1050
|
+
function Ne(e) {
|
|
1051
|
+
switch (e.t) {
|
|
1052
|
+
case 0:
|
|
1053
|
+
return e.s + "=" + e.v;
|
|
1054
|
+
case 2:
|
|
1055
|
+
return e.s + ".set(" + e.k + "," + e.v + ")";
|
|
1056
|
+
case 1:
|
|
1057
|
+
return e.s + ".add(" + e.v + ")";
|
|
1058
|
+
case 3:
|
|
1059
|
+
return e.s + ".delete(" + e.k + ")";
|
|
1060
|
+
case 4:
|
|
1061
|
+
return "Object.defineProperty(" + e.s + ',"__proto__",{value:' + e.k + ",configurable:!0,enumerable:!0,writable:!0})";
|
|
1062
|
+
}
|
|
1063
|
+
}
|
|
1064
|
+
function To(e) {
|
|
1065
|
+
let r = [], t = e[0];
|
|
1066
|
+
for (let n = 1, a = e.length, s, i = t; n < a; n++) s = e[n], s.t === 0 && s.v === i.v ? t = { t: 0, s: s.s, k: o, v: Ne(t) } : s.t === 2 && s.s === i.s ? t = { t: 2, s: Ne(t), k: s.k, v: s.v } : s.t === 1 && s.s === i.s ? t = { t: 1, s: Ne(t), k: o, v: s.v } : s.t === 3 && s.s === i.s ? t = { t: 3, s: Ne(t), k: s.k, v: o } : (r.push(t), t = s), i = s;
|
|
1067
|
+
return r.push(t), r;
|
|
1068
|
+
}
|
|
1069
|
+
function sn(e) {
|
|
1070
|
+
if (e.length) {
|
|
1071
|
+
let r = "", t = To(e);
|
|
1072
|
+
for (let n = 0, a = t.length; n < a; n++) r += Ne(t[n]) + ",";
|
|
1073
|
+
return r;
|
|
1074
|
+
}
|
|
1075
|
+
return o;
|
|
1076
|
+
}
|
|
1077
|
+
var Oo = "Object.create(null)";
|
|
1078
|
+
var wo = "new Set";
|
|
1079
|
+
var ho = "new Map";
|
|
1080
|
+
var zo = "Promise.resolve";
|
|
1081
|
+
var _o = "Promise.reject";
|
|
1082
|
+
var ko = { 3: "Object.freeze", 2: "Object.seal", 1: "Object.preventExtensions", 0: o };
|
|
1083
|
+
function un(e, r) {
|
|
1084
|
+
return { mode: e, plugins: r.plugins, features: r.features, marked: new Set(r.markedRefs), stack: [], flags: [], assignments: [] };
|
|
1085
|
+
}
|
|
1086
|
+
function Do() {
|
|
1087
|
+
return { valid: /* @__PURE__ */ new Map(), vars: [] };
|
|
1088
|
+
}
|
|
1089
|
+
function lr(e) {
|
|
1090
|
+
return { mode: 1, base: un(1, e), state: Do(), child: o };
|
|
1091
|
+
}
|
|
1092
|
+
var Ur = class {
|
|
1093
|
+
constructor(r) {
|
|
1094
|
+
this._p = r;
|
|
1095
|
+
}
|
|
1096
|
+
serialize(r) {
|
|
1097
|
+
return f(this._p, r);
|
|
1098
|
+
}
|
|
1099
|
+
};
|
|
1100
|
+
function Fo(e, r) {
|
|
1101
|
+
let t = e.valid.get(r);
|
|
1102
|
+
t == null && (t = e.valid.size, e.valid.set(r, t));
|
|
1103
|
+
let n = e.vars[t];
|
|
1104
|
+
return n == null && (n = Mr(t), e.vars[t] = n), n;
|
|
1105
|
+
}
|
|
1106
|
+
function Bo(e) {
|
|
1107
|
+
return le + "[" + e + "]";
|
|
1108
|
+
}
|
|
1109
|
+
function m(e, r) {
|
|
1110
|
+
return e.mode === 1 ? Fo(e.state, r) : Bo(r);
|
|
1111
|
+
}
|
|
1112
|
+
function w(e, r) {
|
|
1113
|
+
e.marked.add(r);
|
|
1114
|
+
}
|
|
1115
|
+
function jr(e, r) {
|
|
1116
|
+
return e.marked.has(r);
|
|
1117
|
+
}
|
|
1118
|
+
function qr(e, r, t) {
|
|
1119
|
+
r !== 0 && (w(e.base, t), e.base.flags.push({ type: r, value: m(e, t) }));
|
|
1120
|
+
}
|
|
1121
|
+
function Vo(e) {
|
|
1122
|
+
let r = "";
|
|
1123
|
+
for (let t = 0, n = e.flags, a = n.length; t < a; t++) {
|
|
1124
|
+
let s = n[t];
|
|
1125
|
+
r += ko[s.type] + "(" + s.value + "),";
|
|
1126
|
+
}
|
|
1127
|
+
return r;
|
|
1128
|
+
}
|
|
1129
|
+
function ln(e) {
|
|
1130
|
+
let r = sn(e.assignments), t = Vo(e);
|
|
1131
|
+
return r ? t ? r + t : r : t;
|
|
1132
|
+
}
|
|
1133
|
+
function Wr(e, r, t) {
|
|
1134
|
+
e.assignments.push({ t: 0, s: r, k: o, v: t });
|
|
1135
|
+
}
|
|
1136
|
+
function Mo(e, r, t) {
|
|
1137
|
+
e.base.assignments.push({ t: 1, s: m(e, r), k: o, v: t });
|
|
1138
|
+
}
|
|
1139
|
+
function ye(e, r, t, n) {
|
|
1140
|
+
e.base.assignments.push({ t: 2, s: m(e, r), k: t, v: n });
|
|
1141
|
+
}
|
|
1142
|
+
function en(e, r, t) {
|
|
1143
|
+
e.base.assignments.push({ t: 3, s: m(e, r), k: t, v: o });
|
|
1144
|
+
}
|
|
1145
|
+
function be(e, r, t, n) {
|
|
1146
|
+
Wr(e.base, m(e, r) + "[" + t + "]", n);
|
|
1147
|
+
}
|
|
1148
|
+
function Yr(e, r, t, n) {
|
|
1149
|
+
if (!de(t)) {
|
|
1150
|
+
e.base.assignments.push({ t: 4, s: m(e, r), k: n, v: o });
|
|
1151
|
+
return;
|
|
1152
|
+
}
|
|
1153
|
+
Wr(e.base, m(e, r) + "." + t, n);
|
|
1154
|
+
}
|
|
1155
|
+
function Lo(e, r, t, n) {
|
|
1156
|
+
Wr(e.base, m(e, r) + ".v[" + t + "]", n);
|
|
1157
|
+
}
|
|
1158
|
+
function F(e, r) {
|
|
1159
|
+
return r.t === 4 && e.stack.includes(r.i);
|
|
1160
|
+
}
|
|
1161
|
+
function ae(e, r, t) {
|
|
1162
|
+
return e.mode === 1 && !jr(e.base, r) ? t : m(e, r) + "=" + t;
|
|
1163
|
+
}
|
|
1164
|
+
function Uo(e) {
|
|
1165
|
+
return L + '.get("' + e.s + '")';
|
|
1166
|
+
}
|
|
1167
|
+
function rn(e, r, t, n) {
|
|
1168
|
+
return t ? F(e.base, t) ? (w(e.base, r), be(e, r, n, m(e, t.i)), "") : f(e, t) : "";
|
|
1169
|
+
}
|
|
1170
|
+
function jo(e, r) {
|
|
1171
|
+
let t = r.i, n = r.a, a = n.length;
|
|
1172
|
+
if (a > 0) {
|
|
1173
|
+
e.base.stack.push(t);
|
|
1174
|
+
let s = rn(e, t, n[0], 0), i = s === "";
|
|
1175
|
+
for (let u = 1, l; u < a; u++) l = rn(e, t, n[u], u), s += "," + l, i = l === "";
|
|
1176
|
+
return e.base.stack.pop(), qr(e, r.o, r.i), "[" + s + (i ? ",]" : "]");
|
|
1177
|
+
}
|
|
1178
|
+
return "[]";
|
|
1179
|
+
}
|
|
1180
|
+
function tn(e, r, t, n) {
|
|
1181
|
+
if (typeof t == "string") {
|
|
1182
|
+
let a = Number(t), s = a >= 0 && a.toString() === t || Lr(t);
|
|
1183
|
+
if (F(e.base, n)) {
|
|
1184
|
+
let i = m(e, n.i);
|
|
1185
|
+
return w(e.base, r.i), s && a !== a ? Yr(e, r.i, t, i) : be(e, r.i, s ? t : '"' + t + '"', i), "";
|
|
1186
|
+
}
|
|
1187
|
+
return de(t) ? (s ? t : '"' + t + '"') + ":" + f(e, n) : '["' + t + '"]:' + f(e, n);
|
|
1188
|
+
}
|
|
1189
|
+
return "[" + f(e, t) + "]:" + f(e, n);
|
|
1190
|
+
}
|
|
1191
|
+
function cn(e, r, t) {
|
|
1192
|
+
let n = t.k, a = n.length;
|
|
1193
|
+
if (a > 0) {
|
|
1194
|
+
let s = t.v;
|
|
1195
|
+
e.base.stack.push(r.i);
|
|
1196
|
+
let i = tn(e, r, n[0], s[0]);
|
|
1197
|
+
for (let u = 1, l = i; u < a; u++) l = tn(e, r, n[u], s[u]), i += (l && i && ",") + l;
|
|
1198
|
+
return e.base.stack.pop(), "{" + i + "}";
|
|
1199
|
+
}
|
|
1200
|
+
return "{}";
|
|
1201
|
+
}
|
|
1202
|
+
function Yo(e, r) {
|
|
1203
|
+
return qr(e, r.o, r.i), cn(e, r, r.p);
|
|
1204
|
+
}
|
|
1205
|
+
function qo(e, r, t, n) {
|
|
1206
|
+
let a = cn(e, r, t);
|
|
1207
|
+
return a !== "{}" ? "Object.assign(" + n + "," + a + ")" : n;
|
|
1208
|
+
}
|
|
1209
|
+
function Wo(e, r, t, n, a) {
|
|
1210
|
+
let s = e.base, i = f(e, a), u = Number(n), l = u >= 0 && u.toString() === n || Lr(n);
|
|
1211
|
+
if (F(s, a)) l && u !== u ? Yr(e, r.i, n, i) : be(e, r.i, l ? n : '"' + n + '"', i);
|
|
1212
|
+
else {
|
|
1213
|
+
let g = s.assignments;
|
|
1214
|
+
s.assignments = t, l && u !== u ? Yr(e, r.i, n, i) : be(e, r.i, l ? n : '"' + n + '"', i), s.assignments = g;
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
function Ko(e, r, t, n, a) {
|
|
1218
|
+
if (typeof n == "string") Wo(e, r, t, n, a);
|
|
1219
|
+
else {
|
|
1220
|
+
let s = e.base, i = s.stack;
|
|
1221
|
+
s.stack = [];
|
|
1222
|
+
let u = f(e, a);
|
|
1223
|
+
s.stack = i;
|
|
1224
|
+
let l = s.assignments;
|
|
1225
|
+
s.assignments = t, be(e, r.i, f(e, n), u), s.assignments = l;
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1228
|
+
function Go(e, r, t) {
|
|
1229
|
+
let n = t.k, a = n.length;
|
|
1230
|
+
if (a > 0) {
|
|
1231
|
+
let s = [], i = t.v;
|
|
1232
|
+
e.base.stack.push(r.i);
|
|
1233
|
+
for (let u = 0; u < a; u++) Ko(e, r, s, n[u], i[u]);
|
|
1234
|
+
return e.base.stack.pop(), sn(s);
|
|
1235
|
+
}
|
|
1236
|
+
return o;
|
|
1237
|
+
}
|
|
1238
|
+
function Kr(e, r, t) {
|
|
1239
|
+
if (r.p) {
|
|
1240
|
+
let n = e.base;
|
|
1241
|
+
if (n.features & 8) t = qo(e, r, r.p, t);
|
|
1242
|
+
else {
|
|
1243
|
+
w(n, r.i);
|
|
1244
|
+
let a = Go(e, r, r.p);
|
|
1245
|
+
if (a) return "(" + ae(e, r.i, t) + "," + a + m(e, r.i) + ")";
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
return t;
|
|
1249
|
+
}
|
|
1250
|
+
function Ho(e, r) {
|
|
1251
|
+
return qr(e, r.o, r.i), Kr(e, r, Oo);
|
|
1252
|
+
}
|
|
1253
|
+
function Jo(e) {
|
|
1254
|
+
return 'new Date("' + e.s + '")';
|
|
1255
|
+
}
|
|
1256
|
+
function Zo(e, r) {
|
|
1257
|
+
if (e.base.features & 32) return "/" + h(r.c) + "/" + r.m;
|
|
1258
|
+
throw new z(r);
|
|
1259
|
+
}
|
|
1260
|
+
function nn(e, r, t) {
|
|
1261
|
+
let n = e.base;
|
|
1262
|
+
return F(n, t) ? (w(n, r), Mo(e, r, m(e, t.i)), "") : f(e, t);
|
|
1263
|
+
}
|
|
1264
|
+
function $o(e, r) {
|
|
1265
|
+
let t = wo, n = r.a, a = n.length, s = r.i;
|
|
1266
|
+
if (a > 0) {
|
|
1267
|
+
e.base.stack.push(s);
|
|
1268
|
+
let i = nn(e, s, n[0]);
|
|
1269
|
+
for (let u = 1, l = i; u < a; u++) l = nn(e, s, n[u]), i += (l && i && ",") + l;
|
|
1270
|
+
e.base.stack.pop(), i && (t += "([" + i + "])");
|
|
1271
|
+
}
|
|
1272
|
+
return t;
|
|
1273
|
+
}
|
|
1274
|
+
function on(e, r, t, n, a) {
|
|
1275
|
+
let s = e.base;
|
|
1276
|
+
if (F(s, t)) {
|
|
1277
|
+
let i = m(e, t.i);
|
|
1278
|
+
if (w(s, r), F(s, n)) {
|
|
1279
|
+
let l = m(e, n.i);
|
|
1280
|
+
return ye(e, r, i, l), "";
|
|
1281
|
+
}
|
|
1282
|
+
if (n.t !== 4 && n.i != null && jr(s, n.i)) {
|
|
1283
|
+
let l = "(" + f(e, n) + ",[" + a + "," + a + "])";
|
|
1284
|
+
return ye(e, r, i, m(e, n.i)), en(e, r, a), l;
|
|
1285
|
+
}
|
|
1286
|
+
let u = s.stack;
|
|
1287
|
+
return s.stack = [], ye(e, r, i, f(e, n)), s.stack = u, "";
|
|
1288
|
+
}
|
|
1289
|
+
if (F(s, n)) {
|
|
1290
|
+
let i = m(e, n.i);
|
|
1291
|
+
if (w(s, r), t.t !== 4 && t.i != null && jr(s, t.i)) {
|
|
1292
|
+
let l = "(" + f(e, t) + ",[" + a + "," + a + "])";
|
|
1293
|
+
return ye(e, r, m(e, t.i), i), en(e, r, a), l;
|
|
1294
|
+
}
|
|
1295
|
+
let u = s.stack;
|
|
1296
|
+
return s.stack = [], ye(e, r, f(e, t), i), s.stack = u, "";
|
|
1297
|
+
}
|
|
1298
|
+
return "[" + f(e, t) + "," + f(e, n) + "]";
|
|
1299
|
+
}
|
|
1300
|
+
function Xo(e, r) {
|
|
1301
|
+
let t = ho, n = r.e.k, a = n.length, s = r.i, i = r.f, u = m(e, i.i), l = e.base;
|
|
1302
|
+
if (a > 0) {
|
|
1303
|
+
let g = r.e.v;
|
|
1304
|
+
l.stack.push(s);
|
|
1305
|
+
let S = on(e, s, n[0], g[0], u);
|
|
1306
|
+
for (let d = 1, K = S; d < a; d++) K = on(e, s, n[d], g[d], u), S += (K && S && ",") + K;
|
|
1307
|
+
l.stack.pop(), S && (t += "([" + S + "])");
|
|
1308
|
+
}
|
|
1309
|
+
return i.t === 26 && (w(l, i.i), t = "(" + f(e, i) + "," + t + ")"), t;
|
|
1310
|
+
}
|
|
1311
|
+
function Qo(e, r) {
|
|
1312
|
+
return q(e, r.f) + '("' + r.s + '")';
|
|
1313
|
+
}
|
|
1314
|
+
function ea(e, r) {
|
|
1315
|
+
return "new " + r.c + "(" + f(e, r.f) + "," + r.b + "," + r.l + ")";
|
|
1316
|
+
}
|
|
1317
|
+
function ra(e, r) {
|
|
1318
|
+
return "new DataView(" + f(e, r.f) + "," + r.b + "," + r.l + ")";
|
|
1319
|
+
}
|
|
1320
|
+
function ta(e, r) {
|
|
1321
|
+
let t = r.i;
|
|
1322
|
+
e.base.stack.push(t);
|
|
1323
|
+
let n = Kr(e, r, 'new AggregateError([],"' + r.m + '")');
|
|
1324
|
+
return e.base.stack.pop(), n;
|
|
1325
|
+
}
|
|
1326
|
+
function na(e, r) {
|
|
1327
|
+
return Kr(e, r, "new " + Ae[r.s] + '("' + r.m + '")');
|
|
1328
|
+
}
|
|
1329
|
+
function oa(e, r) {
|
|
1330
|
+
let t, n = r.f, a = r.i, s = r.s ? zo : _o, i = e.base;
|
|
1331
|
+
if (F(i, n)) {
|
|
1332
|
+
let u = m(e, n.i);
|
|
1333
|
+
t = s + (r.s ? "().then(" + ur([], u) + ")" : "().catch(" + Jt([], "throw " + u) + ")");
|
|
1334
|
+
} else {
|
|
1335
|
+
i.stack.push(a);
|
|
1336
|
+
let u = f(e, n);
|
|
1337
|
+
i.stack.pop(), t = s + "(" + u + ")";
|
|
1338
|
+
}
|
|
1339
|
+
return t;
|
|
1340
|
+
}
|
|
1341
|
+
function aa(e, r) {
|
|
1342
|
+
return "Object(" + f(e, r.f) + ")";
|
|
1343
|
+
}
|
|
1344
|
+
function q(e, r) {
|
|
1345
|
+
let t = f(e, r);
|
|
1346
|
+
return r.t === 4 ? t : "(" + t + ")";
|
|
1347
|
+
}
|
|
1348
|
+
function sa(e, r) {
|
|
1349
|
+
if (e.mode === 1) throw new z(r);
|
|
1350
|
+
return "(" + ae(e, r.s, q(e, r.f) + "()") + ").p";
|
|
1351
|
+
}
|
|
1352
|
+
function ia(e, r) {
|
|
1353
|
+
if (e.mode === 1) throw new z(r);
|
|
1354
|
+
return q(e, r.a[0]) + "(" + m(e, r.i) + "," + f(e, r.a[1]) + ")";
|
|
1355
|
+
}
|
|
1356
|
+
function ua(e, r) {
|
|
1357
|
+
if (e.mode === 1) throw new z(r);
|
|
1358
|
+
return q(e, r.a[0]) + "(" + m(e, r.i) + "," + f(e, r.a[1]) + ")";
|
|
1359
|
+
}
|
|
1360
|
+
function la(e, r) {
|
|
1361
|
+
let t = e.base.plugins;
|
|
1362
|
+
if (t) for (let n = 0, a = t.length; n < a; n++) {
|
|
1363
|
+
let s = t[n];
|
|
1364
|
+
if (s.tag === r.c) return e.child == null && (e.child = new Ur(e)), s.serialize(r.s, e.child, { id: r.i });
|
|
1365
|
+
}
|
|
1366
|
+
throw new X(r.c);
|
|
1367
|
+
}
|
|
1368
|
+
function ca(e, r) {
|
|
1369
|
+
let t = "", n = false;
|
|
1370
|
+
return r.f.t !== 4 && (w(e.base, r.f.i), t = "(" + f(e, r.f) + ",", n = true), t += ae(e, r.i, "(" + Et + ")(" + m(e, r.f.i) + ")"), n && (t += ")"), t;
|
|
1371
|
+
}
|
|
1372
|
+
function fa(e, r) {
|
|
1373
|
+
return q(e, r.a[0]) + "(" + f(e, r.a[1]) + ")";
|
|
1374
|
+
}
|
|
1375
|
+
function Sa(e, r) {
|
|
1376
|
+
let t = r.a[0], n = r.a[1], a = e.base, s = "";
|
|
1377
|
+
t.t !== 4 && (w(a, t.i), s += "(" + f(e, t)), n.t !== 4 && (w(a, n.i), s += (s ? "," : "(") + f(e, n)), s && (s += ",");
|
|
1378
|
+
let i = ae(e, r.i, "(" + It + ")(" + m(e, n.i) + "," + m(e, t.i) + ")");
|
|
1379
|
+
return s ? s + i + ")" : i;
|
|
1380
|
+
}
|
|
1381
|
+
function ma(e, r) {
|
|
1382
|
+
return q(e, r.a[0]) + "(" + f(e, r.a[1]) + ")";
|
|
1383
|
+
}
|
|
1384
|
+
function pa(e, r) {
|
|
1385
|
+
let t = ae(e, r.i, q(e, r.f) + "()"), n = r.a.length;
|
|
1386
|
+
if (n) {
|
|
1387
|
+
let a = f(e, r.a[0]);
|
|
1388
|
+
for (let s = 1; s < n; s++) a += "," + f(e, r.a[s]);
|
|
1389
|
+
return "(" + t + "," + a + "," + m(e, r.i) + ")";
|
|
1390
|
+
}
|
|
1391
|
+
return t;
|
|
1392
|
+
}
|
|
1393
|
+
function da(e, r) {
|
|
1394
|
+
return m(e, r.i) + ".next(" + f(e, r.f) + ")";
|
|
1395
|
+
}
|
|
1396
|
+
function ga(e, r) {
|
|
1397
|
+
return m(e, r.i) + ".throw(" + f(e, r.f) + ")";
|
|
1398
|
+
}
|
|
1399
|
+
function ya(e, r) {
|
|
1400
|
+
return m(e, r.i) + ".return(" + f(e, r.f) + ")";
|
|
1401
|
+
}
|
|
1402
|
+
function an(e, r, t, n) {
|
|
1403
|
+
let a = e.base;
|
|
1404
|
+
return F(a, n) ? (w(a, r), Lo(e, r, t, m(e, n.i)), "") : f(e, n);
|
|
1405
|
+
}
|
|
1406
|
+
function Na(e, r) {
|
|
1407
|
+
let t = r.a, n = t.length, a = r.i;
|
|
1408
|
+
if (n > 0) {
|
|
1409
|
+
e.base.stack.push(a);
|
|
1410
|
+
let s = an(e, a, 0, t[0]);
|
|
1411
|
+
for (let i = 1, u = s; i < n; i++) u = an(e, a, i, t[i]), s += (u && s && ",") + u;
|
|
1412
|
+
if (e.base.stack.pop(), s) return "{__SEROVAL_SEQUENCE__:!0,v:[" + s + "],t:" + r.s + ",d:" + r.l + "}";
|
|
1413
|
+
}
|
|
1414
|
+
return "{__SEROVAL_SEQUENCE__:!0,v:[],t:-1,d:0}";
|
|
1415
|
+
}
|
|
1416
|
+
function ba(e, r) {
|
|
1417
|
+
switch (r.t) {
|
|
1418
|
+
case 17:
|
|
1419
|
+
return nt[r.s];
|
|
1420
|
+
case 18:
|
|
1421
|
+
return Uo(r);
|
|
1422
|
+
case 9:
|
|
1423
|
+
return jo(e, r);
|
|
1424
|
+
case 10:
|
|
1425
|
+
return Yo(e, r);
|
|
1426
|
+
case 11:
|
|
1427
|
+
return Ho(e, r);
|
|
1428
|
+
case 5:
|
|
1429
|
+
return Jo(r);
|
|
1430
|
+
case 6:
|
|
1431
|
+
return Zo(e, r);
|
|
1432
|
+
case 7:
|
|
1433
|
+
return $o(e, r);
|
|
1434
|
+
case 8:
|
|
1435
|
+
return Xo(e, r);
|
|
1436
|
+
case 19:
|
|
1437
|
+
return Qo(e, r);
|
|
1438
|
+
case 16:
|
|
1439
|
+
case 15:
|
|
1440
|
+
return ea(e, r);
|
|
1441
|
+
case 20:
|
|
1442
|
+
return ra(e, r);
|
|
1443
|
+
case 14:
|
|
1444
|
+
return ta(e, r);
|
|
1445
|
+
case 13:
|
|
1446
|
+
return na(e, r);
|
|
1447
|
+
case 12:
|
|
1448
|
+
return oa(e, r);
|
|
1449
|
+
case 21:
|
|
1450
|
+
return aa(e, r);
|
|
1451
|
+
case 22:
|
|
1452
|
+
return sa(e, r);
|
|
1453
|
+
case 25:
|
|
1454
|
+
return la(e, r);
|
|
1455
|
+
case 26:
|
|
1456
|
+
return wt[r.s];
|
|
1457
|
+
case 35:
|
|
1458
|
+
return Na(e, r);
|
|
1459
|
+
default:
|
|
1460
|
+
throw new z(r);
|
|
1461
|
+
}
|
|
1462
|
+
}
|
|
1463
|
+
function f(e, r) {
|
|
1464
|
+
switch (r.t) {
|
|
1465
|
+
case 2:
|
|
1466
|
+
return at[r.s];
|
|
1467
|
+
case 0:
|
|
1468
|
+
return "" + r.s;
|
|
1469
|
+
case 1:
|
|
1470
|
+
return '"' + r.s + '"';
|
|
1471
|
+
case 3:
|
|
1472
|
+
return r.s + "n";
|
|
1473
|
+
case 4:
|
|
1474
|
+
return m(e, r.i);
|
|
1475
|
+
case 23:
|
|
1476
|
+
return ia(e, r);
|
|
1477
|
+
case 24:
|
|
1478
|
+
return ua(e, r);
|
|
1479
|
+
case 27:
|
|
1480
|
+
return ca(e, r);
|
|
1481
|
+
case 28:
|
|
1482
|
+
return fa(e, r);
|
|
1483
|
+
case 29:
|
|
1484
|
+
return Sa(e, r);
|
|
1485
|
+
case 30:
|
|
1486
|
+
return ma(e, r);
|
|
1487
|
+
case 31:
|
|
1488
|
+
return pa(e, r);
|
|
1489
|
+
case 32:
|
|
1490
|
+
return da(e, r);
|
|
1491
|
+
case 33:
|
|
1492
|
+
return ga(e, r);
|
|
1493
|
+
case 34:
|
|
1494
|
+
return ya(e, r);
|
|
1495
|
+
default:
|
|
1496
|
+
return ae(e, r.i, ba(e, r));
|
|
1497
|
+
}
|
|
1498
|
+
}
|
|
1499
|
+
function fr(e, r) {
|
|
1500
|
+
let t = f(e, r);
|
|
1501
|
+
if (r.i != null && e.state.vars.length) {
|
|
1502
|
+
let n = ln(e.base), a = t;
|
|
1503
|
+
if (n) {
|
|
1504
|
+
let s = m(e, r.i);
|
|
1505
|
+
a = t + "," + n + s, t.startsWith(s + "=") || (a = s + "=" + a), a = "(" + a + ")";
|
|
1506
|
+
}
|
|
1507
|
+
return "(" + ur(e.state.vars, a) + ")()";
|
|
1508
|
+
}
|
|
1509
|
+
return r.t === 10 ? "(" + t + ")" : t;
|
|
1510
|
+
}
|
|
1511
|
+
function ie(e, r) {
|
|
1512
|
+
return { type: 1, base: me(e, r), child: o };
|
|
1513
|
+
}
|
|
1514
|
+
var Hr = class {
|
|
1515
|
+
constructor(r, t) {
|
|
1516
|
+
this._p = r;
|
|
1517
|
+
this.depth = t;
|
|
1518
|
+
}
|
|
1519
|
+
parse(r) {
|
|
1520
|
+
return E(this._p, this.depth, r);
|
|
1521
|
+
}
|
|
1522
|
+
};
|
|
1523
|
+
var Jr = class {
|
|
1524
|
+
constructor(r, t) {
|
|
1525
|
+
this._p = r;
|
|
1526
|
+
this.depth = t;
|
|
1527
|
+
}
|
|
1528
|
+
parse(r) {
|
|
1529
|
+
return E(this._p, this.depth, r);
|
|
1530
|
+
}
|
|
1531
|
+
parseWithError(r) {
|
|
1532
|
+
return W(this._p, this.depth, r);
|
|
1533
|
+
}
|
|
1534
|
+
isAlive() {
|
|
1535
|
+
return this._p.state.alive;
|
|
1536
|
+
}
|
|
1537
|
+
pushPendingState() {
|
|
1538
|
+
et(this._p);
|
|
1539
|
+
}
|
|
1540
|
+
popPendingState() {
|
|
1541
|
+
ve(this._p);
|
|
1542
|
+
}
|
|
1543
|
+
onParse(r) {
|
|
1544
|
+
se(this._p, r);
|
|
1545
|
+
}
|
|
1546
|
+
onError(r) {
|
|
1547
|
+
Xr(this._p, r);
|
|
1548
|
+
}
|
|
1549
|
+
addCleanup(r) {
|
|
1550
|
+
this._p.state.cleanups.push(r);
|
|
1551
|
+
}
|
|
1552
|
+
};
|
|
1553
|
+
function Ca(e, r, t) {
|
|
1554
|
+
let n = [];
|
|
1555
|
+
for (let a = 0, s = t.length; a < s; a++) a in t ? n[a] = E(e, r, t[a]) : n[a] = 0;
|
|
1556
|
+
return n;
|
|
1557
|
+
}
|
|
1558
|
+
function Aa(e, r, t, n) {
|
|
1559
|
+
return ke(t, n, Ca(e, r, n));
|
|
1560
|
+
}
|
|
1561
|
+
function $r(e, r, t) {
|
|
1562
|
+
let n = Object.entries(t), a = [], s = [];
|
|
1563
|
+
for (let i = 0, u = n.length; i < u; i++) a.push(y(n[i][0])), s.push(E(e, r, n[i][1]));
|
|
1564
|
+
return C in t && (a.push(I(e.base, C)), s.push(je(tr(e.base), E(e, r, Xe(t))))), v in t && (a.push(I(e.base, v)), s.push(Ye(nr(e.base), E(e, r, e.type === 1 ? re() : er(t))))), P in t && (a.push(I(e.base, P)), s.push($(t[P]))), R in t && (a.push(I(e.base, R)), s.push(t[R] ? H : J)), { k: a, v: s };
|
|
1565
|
+
}
|
|
1566
|
+
function Gr(e, r, t, n, a) {
|
|
1567
|
+
return or(t, n, a, $r(e, r, n));
|
|
1568
|
+
}
|
|
1569
|
+
function Ea(e, r, t, n) {
|
|
1570
|
+
return De(t, E(e, r, n.valueOf()));
|
|
1571
|
+
}
|
|
1572
|
+
function Ia(e, r, t, n) {
|
|
1573
|
+
return Fe(t, n, E(e, r, n.buffer));
|
|
1574
|
+
}
|
|
1575
|
+
function Ra(e, r, t, n) {
|
|
1576
|
+
return Be(t, n, E(e, r, n.buffer));
|
|
1577
|
+
}
|
|
1578
|
+
function Pa(e, r, t, n) {
|
|
1579
|
+
return Ve(t, n, E(e, r, n.buffer));
|
|
1580
|
+
}
|
|
1581
|
+
function fn(e, r, t, n) {
|
|
1582
|
+
let a = Z(n, e.base.features);
|
|
1583
|
+
return Me(t, n, a ? $r(e, r, a) : o);
|
|
1584
|
+
}
|
|
1585
|
+
function xa(e, r, t, n) {
|
|
1586
|
+
let a = Z(n, e.base.features);
|
|
1587
|
+
return Le(t, n, a ? $r(e, r, a) : o);
|
|
1588
|
+
}
|
|
1589
|
+
function Ta(e, r, t, n) {
|
|
1590
|
+
let a = [], s = [];
|
|
1591
|
+
for (let [i, u] of n.entries()) a.push(E(e, r, i)), s.push(E(e, r, u));
|
|
1592
|
+
return ar(e.base, t, a, s);
|
|
1593
|
+
}
|
|
1594
|
+
function Oa(e, r, t, n) {
|
|
1595
|
+
let a = [];
|
|
1596
|
+
for (let s of n.keys()) a.push(E(e, r, s));
|
|
1597
|
+
return Ue(t, a);
|
|
1598
|
+
}
|
|
1599
|
+
function wa(e, r, t, n) {
|
|
1600
|
+
let a = qe(t, D(e.base, 4), []);
|
|
1601
|
+
return e.type === 1 || (et(e), n.on({ next: (s) => {
|
|
1602
|
+
if (e.state.alive) {
|
|
1603
|
+
let i = W(e, r, s);
|
|
1604
|
+
i && se(e, We(t, i));
|
|
1605
|
+
}
|
|
1606
|
+
}, throw: (s) => {
|
|
1607
|
+
if (e.state.alive) {
|
|
1608
|
+
let i = W(e, r, s);
|
|
1609
|
+
i && se(e, Ke(t, i));
|
|
1610
|
+
}
|
|
1611
|
+
ve(e);
|
|
1612
|
+
}, return: (s) => {
|
|
1613
|
+
if (e.state.alive) {
|
|
1614
|
+
let i = W(e, r, s);
|
|
1615
|
+
i && se(e, Ge(t, i));
|
|
1616
|
+
}
|
|
1617
|
+
ve(e);
|
|
1618
|
+
} })), a;
|
|
1619
|
+
}
|
|
1620
|
+
function ha(e, r, t) {
|
|
1621
|
+
if (this.state.alive) {
|
|
1622
|
+
let n = W(this, r, t);
|
|
1623
|
+
n && se(this, c(23, e, o, o, o, o, o, [D(this.base, 2), n], o, o, o, o)), ve(this);
|
|
1624
|
+
}
|
|
1625
|
+
}
|
|
1626
|
+
function za(e, r, t) {
|
|
1627
|
+
if (this.state.alive) {
|
|
1628
|
+
let n = W(this, r, t);
|
|
1629
|
+
n && se(this, c(24, e, o, o, o, o, o, [D(this.base, 3), n], o, o, o, o));
|
|
1630
|
+
}
|
|
1631
|
+
ve(this);
|
|
1632
|
+
}
|
|
1633
|
+
function _a(e, r, t, n) {
|
|
1634
|
+
let a = _r(e.base, {});
|
|
1635
|
+
return e.type === 2 && (et(e), n.then(ha.bind(e, a, r), za.bind(e, a, r))), _t(e.base, t, a);
|
|
1636
|
+
}
|
|
1637
|
+
function ka(e, r, t, n, a) {
|
|
1638
|
+
for (let s = 0, i = a.length; s < i; s++) {
|
|
1639
|
+
let u = a[s];
|
|
1640
|
+
if (u.parse.sync && u.test(n)) return ce(t, u.tag, u.parse.sync(n, new Hr(e, r), { id: t }));
|
|
1641
|
+
}
|
|
1642
|
+
return o;
|
|
1643
|
+
}
|
|
1644
|
+
function Da(e, r, t, n, a) {
|
|
1645
|
+
for (let s = 0, i = a.length; s < i; s++) {
|
|
1646
|
+
let u = a[s];
|
|
1647
|
+
if (u.parse.stream && u.test(n)) return ce(t, u.tag, u.parse.stream(n, new Jr(e, r), { id: t }));
|
|
1648
|
+
}
|
|
1649
|
+
return o;
|
|
1650
|
+
}
|
|
1651
|
+
function Sn(e, r, t, n) {
|
|
1652
|
+
let a = e.base.plugins;
|
|
1653
|
+
return a ? e.type === 1 ? ka(e, r, t, n, a) : Da(e, r, t, n, a) : o;
|
|
1654
|
+
}
|
|
1655
|
+
function Fa(e, r, t, n) {
|
|
1656
|
+
let a = [];
|
|
1657
|
+
for (let s = 0, i = n.v.length; s < i; s++) a[s] = E(e, r, n.v[s]);
|
|
1658
|
+
return He(t, a, n.t, n.d);
|
|
1659
|
+
}
|
|
1660
|
+
function Ba(e, r, t, n, a) {
|
|
1661
|
+
switch (a) {
|
|
1662
|
+
case Object:
|
|
1663
|
+
return Gr(e, r, t, n, false);
|
|
1664
|
+
case o:
|
|
1665
|
+
return Gr(e, r, t, n, true);
|
|
1666
|
+
case Date:
|
|
1667
|
+
return ze(t, n);
|
|
1668
|
+
case Error:
|
|
1669
|
+
case EvalError:
|
|
1670
|
+
case RangeError:
|
|
1671
|
+
case ReferenceError:
|
|
1672
|
+
case SyntaxError:
|
|
1673
|
+
case TypeError:
|
|
1674
|
+
case URIError:
|
|
1675
|
+
return fn(e, r, t, n);
|
|
1676
|
+
case Number:
|
|
1677
|
+
case Boolean:
|
|
1678
|
+
case String:
|
|
1679
|
+
case BigInt:
|
|
1680
|
+
return Ea(e, r, t, n);
|
|
1681
|
+
case ArrayBuffer:
|
|
1682
|
+
return sr(e.base, t, n);
|
|
1683
|
+
case Int8Array:
|
|
1684
|
+
case Int16Array:
|
|
1685
|
+
case Int32Array:
|
|
1686
|
+
case Uint8Array:
|
|
1687
|
+
case Uint16Array:
|
|
1688
|
+
case Uint32Array:
|
|
1689
|
+
case Uint8ClampedArray:
|
|
1690
|
+
case Float32Array:
|
|
1691
|
+
case Float64Array:
|
|
1692
|
+
return Ia(e, r, t, n);
|
|
1693
|
+
case DataView:
|
|
1694
|
+
return Pa(e, r, t, n);
|
|
1695
|
+
case Map:
|
|
1696
|
+
return Ta(e, r, t, n);
|
|
1697
|
+
case Set:
|
|
1698
|
+
return Oa(e, r, t, n);
|
|
1699
|
+
}
|
|
1700
|
+
if (a === Promise || n instanceof Promise) return _a(e, r, t, n);
|
|
1701
|
+
let s = e.base.features;
|
|
1702
|
+
if (s & 32 && a === RegExp) return _e(t, n);
|
|
1703
|
+
if (s & 16) switch (a) {
|
|
1704
|
+
case BigInt64Array:
|
|
1705
|
+
case BigUint64Array:
|
|
1706
|
+
return Ra(e, r, t, n);
|
|
1707
|
+
}
|
|
1708
|
+
if (s & 1 && typeof AggregateError != "undefined" && (a === AggregateError || n instanceof AggregateError)) return xa(e, r, t, n);
|
|
1709
|
+
if (n instanceof Error) return fn(e, r, t, n);
|
|
1710
|
+
if (C in n || v in n) return Gr(e, r, t, n, !!a);
|
|
1711
|
+
throw new x(n);
|
|
1712
|
+
}
|
|
1713
|
+
function Va(e, r, t, n) {
|
|
1714
|
+
if (Array.isArray(n)) return Aa(e, r, t, n);
|
|
1715
|
+
if (Qe(n)) return wa(e, r, t, n);
|
|
1716
|
+
if ($e(n)) return Fa(e, r, t, n);
|
|
1717
|
+
let a = n.constructor;
|
|
1718
|
+
if (a === j) return E(e, r, n.replacement);
|
|
1719
|
+
let s = Sn(e, r, t, n);
|
|
1720
|
+
return s || Ba(e, r, t, n, a);
|
|
1721
|
+
}
|
|
1722
|
+
function Ma(e, r, t) {
|
|
1723
|
+
let n = Y(e.base, t);
|
|
1724
|
+
if (n.type !== 0) return n.value;
|
|
1725
|
+
let a = Sn(e, r, n.value, t);
|
|
1726
|
+
if (a) return a;
|
|
1727
|
+
throw new x(t);
|
|
1728
|
+
}
|
|
1729
|
+
function E(e, r, t) {
|
|
1730
|
+
if (r >= e.base.depthLimit) throw new Q(e.base.depthLimit);
|
|
1731
|
+
switch (typeof t) {
|
|
1732
|
+
case "boolean":
|
|
1733
|
+
return t ? H : J;
|
|
1734
|
+
case "undefined":
|
|
1735
|
+
return Ee;
|
|
1736
|
+
case "string":
|
|
1737
|
+
return $(t);
|
|
1738
|
+
case "number":
|
|
1739
|
+
return we(t);
|
|
1740
|
+
case "bigint":
|
|
1741
|
+
return he(t);
|
|
1742
|
+
case "object": {
|
|
1743
|
+
if (t) {
|
|
1744
|
+
let n = Y(e.base, t);
|
|
1745
|
+
return n.type === 0 ? Va(e, r + 1, n.value, t) : n.value;
|
|
1746
|
+
}
|
|
1747
|
+
return Ie;
|
|
1748
|
+
}
|
|
1749
|
+
case "symbol":
|
|
1750
|
+
return I(e.base, t);
|
|
1751
|
+
case "function":
|
|
1752
|
+
return Ma(e, r, t);
|
|
1753
|
+
default:
|
|
1754
|
+
throw new x(t);
|
|
1755
|
+
}
|
|
1756
|
+
}
|
|
1757
|
+
function ue(e, r) {
|
|
1758
|
+
try {
|
|
1759
|
+
return E(e, 0, r);
|
|
1760
|
+
} catch (t) {
|
|
1761
|
+
throw t instanceof _ ? t : new _(t);
|
|
1762
|
+
}
|
|
1763
|
+
}
|
|
1764
|
+
function se(e, r) {
|
|
1765
|
+
e.state.initial ? e.state.buffer.push(r) : Qr(e, r, false);
|
|
1766
|
+
}
|
|
1767
|
+
function Xr(e, r) {
|
|
1768
|
+
if (e.state.onError) e.state.onError(r);
|
|
1769
|
+
else throw r instanceof _ ? r : new _(r);
|
|
1770
|
+
}
|
|
1771
|
+
function mn(e) {
|
|
1772
|
+
e.state.onDone && e.state.onDone();
|
|
1773
|
+
for (let r = 0, t = e.state.cleanups.length; r < t; r++) e.state.cleanups[r]();
|
|
1774
|
+
}
|
|
1775
|
+
function Qr(e, r, t) {
|
|
1776
|
+
try {
|
|
1777
|
+
e.state.onParse(r, t);
|
|
1778
|
+
} catch (n) {
|
|
1779
|
+
Xr(e, n);
|
|
1780
|
+
}
|
|
1781
|
+
}
|
|
1782
|
+
function et(e) {
|
|
1783
|
+
e.state.pending++;
|
|
1784
|
+
}
|
|
1785
|
+
function ve(e) {
|
|
1786
|
+
--e.state.pending <= 0 && mn(e);
|
|
1787
|
+
}
|
|
1788
|
+
function W(e, r, t) {
|
|
1789
|
+
try {
|
|
1790
|
+
return E(e, r, t);
|
|
1791
|
+
} catch (n) {
|
|
1792
|
+
return Xr(e, n), o;
|
|
1793
|
+
}
|
|
1794
|
+
}
|
|
1795
|
+
function Eu(e, r = {}) {
|
|
1796
|
+
let t = A(r.plugins), n = ie(1, { plugins: t, disabledFeatures: r.disabledFeatures }), a = ue(n, e), s = lr({ plugins: t, features: n.base.features, markedRefs: n.base.marked });
|
|
1797
|
+
return fr(s, a);
|
|
1798
|
+
}
|
|
1799
|
+
var STATE_GLOBAL = "__MAGIC_USE_CASE_STATE__";
|
|
1800
|
+
function transferredState() {
|
|
1801
|
+
return globalThis[STATE_GLOBAL];
|
|
1802
|
+
}
|
|
1803
|
+
function serializedStateScript() {
|
|
1804
|
+
const { state } = currentScope();
|
|
1805
|
+
if (state === void 0) {
|
|
1806
|
+
return "";
|
|
1807
|
+
}
|
|
1808
|
+
return `<script>window.${STATE_GLOBAL}=${serializedOrExplained(state)}</script>`;
|
|
1809
|
+
}
|
|
1810
|
+
function serializedOrExplained(state) {
|
|
1811
|
+
try {
|
|
1812
|
+
return Eu(state);
|
|
1813
|
+
} catch (error) {
|
|
1814
|
+
throw new Error(
|
|
1815
|
+
`[magic-use-case] Application state cannot be handed to the browser.
|
|
1816
|
+
|
|
1817
|
+
Everything in it has to be data \u2014 objects, arrays, sets, maps, dates and primitives. A class instance cannot cross, because its prototype cannot: the browser would receive the fields and none of the behavior.
|
|
1818
|
+
|
|
1819
|
+
The serializer refused: ${String(error)}`
|
|
1820
|
+
);
|
|
1821
|
+
}
|
|
1822
|
+
}
|
|
1823
|
+
function adoptSerializedState() {
|
|
1824
|
+
const state = transferredState();
|
|
1825
|
+
if (state === void 0) {
|
|
1826
|
+
return false;
|
|
1827
|
+
}
|
|
1828
|
+
const scope = createScope(state);
|
|
1829
|
+
setScopeResolver(() => scope);
|
|
1830
|
+
return true;
|
|
1831
|
+
}
|
|
1832
|
+
function createReconciledStore(initialData) {
|
|
1833
|
+
const [store, setStore] = createStore(initialData);
|
|
1834
|
+
const updateStore = (data) => {
|
|
1835
|
+
if (typeof data === "function") {
|
|
1836
|
+
const newData = data(store);
|
|
1837
|
+
setStore(reconcile(newData));
|
|
1838
|
+
} else {
|
|
1839
|
+
setStore(reconcile(data));
|
|
1840
|
+
}
|
|
1841
|
+
};
|
|
1842
|
+
return [store, updateStore];
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
// src/hooks/usePresenter.ts
|
|
1846
|
+
function usePresenter(presentation) {
|
|
1847
|
+
const [model, setModel] = createReconciledStore({ value: void 0 });
|
|
1848
|
+
const presenter = new Presenter(presentation);
|
|
1849
|
+
const updateModel = (newModel) => {
|
|
1850
|
+
setModel({ value: newModel });
|
|
1851
|
+
};
|
|
1852
|
+
presenter.subscribe(updateModel);
|
|
1853
|
+
onCleanup(() => {
|
|
1854
|
+
presenter.unsubscribe(updateModel);
|
|
1855
|
+
presenter.destroy();
|
|
1856
|
+
});
|
|
1857
|
+
return {
|
|
1858
|
+
model: () => {
|
|
1859
|
+
const current = model.value;
|
|
1860
|
+
return current === void 0 ? void 0 : deepReadonly(current);
|
|
1861
|
+
}
|
|
1862
|
+
};
|
|
1863
|
+
}
|
|
1864
|
+
var scopes = /* @__PURE__ */ new WeakMap();
|
|
1865
|
+
function resolveServerScope() {
|
|
1866
|
+
const event = getRequestEvent();
|
|
1867
|
+
if (!event) {
|
|
1868
|
+
throw new Error(
|
|
1869
|
+
"[magic-use-case] No request scope is available.\n\nOn a server, application state belongs to the request being served, so that concurrent requests never share it. This ran on a server but outside a request, so there is no request to resolve a scope from \u2014 and falling back to a shared one would serve a user another user's data."
|
|
1870
|
+
);
|
|
1871
|
+
}
|
|
1872
|
+
const existing = scopes.get(event);
|
|
1873
|
+
if (existing) {
|
|
1874
|
+
return existing;
|
|
1875
|
+
}
|
|
1876
|
+
const scope = createScope();
|
|
1877
|
+
scopes.set(event, scope);
|
|
1878
|
+
return scope;
|
|
1879
|
+
}
|
|
1880
|
+
function useUseCase(UseCaseClass) {
|
|
1881
|
+
const [isLoading, setIsLoading] = createSignal(false);
|
|
1882
|
+
const [progress, setProgress] = createSignal(0);
|
|
1883
|
+
const [didSucceed, setDidSucceed] = createSignal(false);
|
|
1884
|
+
const useCase = createUseCase(UseCaseClass, setProgress);
|
|
1885
|
+
const execute = async (params) => {
|
|
1886
|
+
setIsLoading(true);
|
|
1887
|
+
setDidSucceed(false);
|
|
1888
|
+
try {
|
|
1889
|
+
await useCase.execute(params);
|
|
1890
|
+
setDidSucceed(true);
|
|
1891
|
+
} catch {
|
|
1892
|
+
setDidSucceed(false);
|
|
1893
|
+
} finally {
|
|
1894
|
+
setIsLoading(false);
|
|
1895
|
+
}
|
|
1896
|
+
};
|
|
1897
|
+
return { execute, isLoading, didSucceed, progress };
|
|
1898
|
+
}
|
|
1899
|
+
var ErrorHandler = (props) => {
|
|
1900
|
+
const [error, setError] = createSignal(void 0);
|
|
1901
|
+
const reportError = (error2) => {
|
|
1902
|
+
const shouldReport = props.onWillReportError(error2);
|
|
1903
|
+
if (shouldReport) {
|
|
1904
|
+
setError(error2);
|
|
1905
|
+
props.onDidReportError?.(error2);
|
|
1906
|
+
}
|
|
1907
|
+
};
|
|
1908
|
+
const clearError = () => {
|
|
1909
|
+
setError(void 0);
|
|
1910
|
+
};
|
|
1911
|
+
const unsubscribe = onError(reportError);
|
|
1912
|
+
onCleanup(unsubscribe);
|
|
1913
|
+
return createComponent(ErrorBoundary, {
|
|
1914
|
+
fallback: (error2, reset) => props.renderErrorDialog({
|
|
1915
|
+
error: error2,
|
|
1916
|
+
onClose: reset
|
|
1917
|
+
}),
|
|
1918
|
+
get children() {
|
|
1919
|
+
return [props.children, createComponent(Show, {
|
|
1920
|
+
get when() {
|
|
1921
|
+
return error();
|
|
1922
|
+
},
|
|
1923
|
+
get children() {
|
|
1924
|
+
return props.renderErrorDialog({
|
|
1925
|
+
error: error(),
|
|
1926
|
+
onClose: clearError
|
|
1927
|
+
});
|
|
1928
|
+
}
|
|
1929
|
+
})];
|
|
1930
|
+
}
|
|
1931
|
+
});
|
|
1932
|
+
};
|
|
1933
|
+
var Navigator = (props) => {
|
|
1934
|
+
const unsubscribe = onNavigation((url) => {
|
|
1935
|
+
if (url) {
|
|
1936
|
+
props.onNavigate?.(url);
|
|
1937
|
+
}
|
|
1938
|
+
});
|
|
1939
|
+
onCleanup(unsubscribe);
|
|
1940
|
+
return null;
|
|
1941
|
+
};
|
|
1942
|
+
|
|
1943
|
+
// src/index.ts
|
|
1944
|
+
if (isServer) {
|
|
1945
|
+
setScopeResolver(resolveServerScope);
|
|
1946
|
+
} else {
|
|
1947
|
+
adoptSerializedState();
|
|
1948
|
+
}
|
|
1949
|
+
function usePresenter2(presentation) {
|
|
1950
|
+
return usePresenter(presentation);
|
|
1951
|
+
}
|
|
1952
|
+
var StateTransfer = () => {
|
|
1953
|
+
if (isServer) {
|
|
1954
|
+
useAssets(() => ssr(serializedStateScript()));
|
|
1955
|
+
}
|
|
1956
|
+
return null;
|
|
1957
|
+
};
|
|
1958
|
+
|
|
1959
|
+
export { ErrorHandler, Navigator, Presenter, StateTransfer, UseCase, createScope, onError, onNavigation, setScopeResolver, usePresenter2 as usePresenter, useUseCase };
|