@fairfox/polly 0.11.0 → 0.12.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/dist/src/client/index.d.ts +33 -0
- package/dist/src/client/index.js +586 -0
- package/dist/src/client/index.js.map +13 -0
- package/dist/src/client/wrapper.d.ts +54 -0
- package/dist/src/core/clock.d.ts +63 -0
- package/dist/src/elysia/index.d.ts +43 -0
- package/dist/src/elysia/index.js +241 -0
- package/dist/src/elysia/index.js.map +12 -0
- package/dist/src/elysia/plugin.d.ts +5 -0
- package/dist/src/elysia/tla-generator.d.ts +16 -0
- package/dist/src/elysia/types.d.ts +137 -0
- package/dist/src/utils/function-serialization.d.ts +14 -0
- package/dist/tools/analysis/src/extract/adr.d.ts +37 -0
- package/dist/tools/analysis/src/extract/architecture.d.ts +42 -0
- package/dist/tools/analysis/src/extract/contexts.d.ts +74 -0
- package/dist/tools/analysis/src/extract/flows.d.ts +68 -0
- package/dist/tools/analysis/src/extract/handlers.d.ts +330 -0
- package/dist/tools/analysis/src/extract/index.d.ts +9 -0
- package/dist/tools/analysis/src/extract/integrations.d.ts +77 -0
- package/dist/tools/analysis/src/extract/manifest.d.ts +64 -0
- package/dist/tools/analysis/src/extract/project-detector.d.ts +103 -0
- package/dist/tools/analysis/src/extract/relationships.d.ts +119 -0
- package/dist/tools/analysis/src/extract/types.d.ts +139 -0
- package/dist/tools/analysis/src/index.d.ts +2 -0
- package/dist/tools/analysis/src/types/adr.d.ts +39 -0
- package/dist/tools/analysis/src/types/architecture.d.ts +198 -0
- package/dist/tools/analysis/src/types/core.d.ts +178 -0
- package/dist/tools/analysis/src/types/index.d.ts +4 -0
- package/dist/tools/teach/src/cli.js +140 -69
- package/dist/tools/teach/src/cli.js.map +12 -12
- package/dist/tools/teach/src/index.d.ts +28 -0
- package/dist/tools/teach/src/index.js +145 -72
- package/dist/tools/teach/src/index.js.map +13 -13
- package/dist/tools/verify/src/cli.js +33 -11
- package/dist/tools/verify/src/cli.js.map +5 -5
- package/dist/tools/visualize/src/cli.js +125 -66
- package/dist/tools/visualize/src/cli.js.map +11 -11
- package/dist/tools/visualize/src/codegen/structurizr.d.ts +343 -0
- package/dist/tools/visualize/src/types/structurizr.d.ts +235 -0
- package/package.json +6 -5
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polly Client Wrapper for Eden
|
|
3
|
+
*
|
|
4
|
+
* Enhances Eden treaty client with Polly features:
|
|
5
|
+
* - Offline queueing
|
|
6
|
+
* - WebSocket real-time updates
|
|
7
|
+
* - Client effect execution (dev mode)
|
|
8
|
+
* - Lamport clock synchronization
|
|
9
|
+
*
|
|
10
|
+
* Example:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { createPollyClient } from '@fairfox/polly/client';
|
|
13
|
+
* import { $syncedState } from '@fairfox/polly';
|
|
14
|
+
* import type { app } from './server';
|
|
15
|
+
*
|
|
16
|
+
* const clientState = {
|
|
17
|
+
* todos: $syncedState('todos', []),
|
|
18
|
+
* };
|
|
19
|
+
*
|
|
20
|
+
* export const api = createPollyClient<typeof app>('http://localhost:3000', {
|
|
21
|
+
* state: clientState,
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* // Use it
|
|
25
|
+
* await api.todos.post({ text: 'Buy milk' });
|
|
26
|
+
*
|
|
27
|
+
* // Access Polly features
|
|
28
|
+
* console.log(api.$polly.state.isOnline.value); // true/false
|
|
29
|
+
* console.log(api.$polly.state.queuedRequests.value); // Array of queued requests
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export type { PollyClientOptions } from "./wrapper";
|
|
33
|
+
export { createPollyClient } from "./wrapper";
|
|
@@ -0,0 +1,586 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __toESM = (mod, isNodeMode, target) => {
|
|
8
|
+
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
9
|
+
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
10
|
+
for (let key of __getOwnPropNames(mod))
|
|
11
|
+
if (!__hasOwnProp.call(to, key))
|
|
12
|
+
__defProp(to, key, {
|
|
13
|
+
get: () => mod[key],
|
|
14
|
+
enumerable: true
|
|
15
|
+
});
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __moduleCache = /* @__PURE__ */ new WeakMap;
|
|
19
|
+
var __toCommonJS = (from) => {
|
|
20
|
+
var entry = __moduleCache.get(from), desc;
|
|
21
|
+
if (entry)
|
|
22
|
+
return entry;
|
|
23
|
+
entry = __defProp({}, "__esModule", { value: true });
|
|
24
|
+
if (from && typeof from === "object" || typeof from === "function")
|
|
25
|
+
__getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
|
|
26
|
+
get: () => from[key],
|
|
27
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
28
|
+
}));
|
|
29
|
+
__moduleCache.set(from, entry);
|
|
30
|
+
return entry;
|
|
31
|
+
};
|
|
32
|
+
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
33
|
+
var __export = (target, all) => {
|
|
34
|
+
for (var name in all)
|
|
35
|
+
__defProp(target, name, {
|
|
36
|
+
get: all[name],
|
|
37
|
+
enumerable: true,
|
|
38
|
+
configurable: true,
|
|
39
|
+
set: (newValue) => all[name] = () => newValue
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
43
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
44
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
45
|
+
}) : x)(function(x) {
|
|
46
|
+
if (typeof require !== "undefined")
|
|
47
|
+
return require.apply(this, arguments);
|
|
48
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// src/client/wrapper.ts
|
|
52
|
+
import { treaty } from "@elysiajs/eden";
|
|
53
|
+
|
|
54
|
+
// node_modules/@preact/signals-core/dist/signals-core.module.js
|
|
55
|
+
var i = Symbol.for("preact-signals");
|
|
56
|
+
function t() {
|
|
57
|
+
if (!(s > 1)) {
|
|
58
|
+
var i2, t2 = false;
|
|
59
|
+
while (h !== undefined) {
|
|
60
|
+
var r = h;
|
|
61
|
+
h = undefined;
|
|
62
|
+
f++;
|
|
63
|
+
while (r !== undefined) {
|
|
64
|
+
var o = r.o;
|
|
65
|
+
r.o = undefined;
|
|
66
|
+
r.f &= -3;
|
|
67
|
+
if (!(8 & r.f) && c(r))
|
|
68
|
+
try {
|
|
69
|
+
r.c();
|
|
70
|
+
} catch (r2) {
|
|
71
|
+
if (!t2) {
|
|
72
|
+
i2 = r2;
|
|
73
|
+
t2 = true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
r = o;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
f = 0;
|
|
80
|
+
s--;
|
|
81
|
+
if (t2)
|
|
82
|
+
throw i2;
|
|
83
|
+
} else
|
|
84
|
+
s--;
|
|
85
|
+
}
|
|
86
|
+
var o = undefined;
|
|
87
|
+
function n(i2) {
|
|
88
|
+
var t2 = o;
|
|
89
|
+
o = undefined;
|
|
90
|
+
try {
|
|
91
|
+
return i2();
|
|
92
|
+
} finally {
|
|
93
|
+
o = t2;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
var h = undefined;
|
|
97
|
+
var s = 0;
|
|
98
|
+
var f = 0;
|
|
99
|
+
var v = 0;
|
|
100
|
+
function e(i2) {
|
|
101
|
+
if (o !== undefined) {
|
|
102
|
+
var t2 = i2.n;
|
|
103
|
+
if (t2 === undefined || t2.t !== o) {
|
|
104
|
+
t2 = { i: 0, S: i2, p: o.s, n: undefined, t: o, e: undefined, x: undefined, r: t2 };
|
|
105
|
+
if (o.s !== undefined)
|
|
106
|
+
o.s.n = t2;
|
|
107
|
+
o.s = t2;
|
|
108
|
+
i2.n = t2;
|
|
109
|
+
if (32 & o.f)
|
|
110
|
+
i2.S(t2);
|
|
111
|
+
return t2;
|
|
112
|
+
} else if (t2.i === -1) {
|
|
113
|
+
t2.i = 0;
|
|
114
|
+
if (t2.n !== undefined) {
|
|
115
|
+
t2.n.p = t2.p;
|
|
116
|
+
if (t2.p !== undefined)
|
|
117
|
+
t2.p.n = t2.n;
|
|
118
|
+
t2.p = o.s;
|
|
119
|
+
t2.n = undefined;
|
|
120
|
+
o.s.n = t2;
|
|
121
|
+
o.s = t2;
|
|
122
|
+
}
|
|
123
|
+
return t2;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function u(i2, t2) {
|
|
128
|
+
this.v = i2;
|
|
129
|
+
this.i = 0;
|
|
130
|
+
this.n = undefined;
|
|
131
|
+
this.t = undefined;
|
|
132
|
+
this.W = t2 == null ? undefined : t2.watched;
|
|
133
|
+
this.Z = t2 == null ? undefined : t2.unwatched;
|
|
134
|
+
this.name = t2 == null ? undefined : t2.name;
|
|
135
|
+
}
|
|
136
|
+
u.prototype.brand = i;
|
|
137
|
+
u.prototype.h = function() {
|
|
138
|
+
return true;
|
|
139
|
+
};
|
|
140
|
+
u.prototype.S = function(i2) {
|
|
141
|
+
var t2 = this, r = this.t;
|
|
142
|
+
if (r !== i2 && i2.e === undefined) {
|
|
143
|
+
i2.x = r;
|
|
144
|
+
this.t = i2;
|
|
145
|
+
if (r !== undefined)
|
|
146
|
+
r.e = i2;
|
|
147
|
+
else
|
|
148
|
+
n(function() {
|
|
149
|
+
var i3;
|
|
150
|
+
(i3 = t2.W) == null || i3.call(t2);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
u.prototype.U = function(i2) {
|
|
155
|
+
var t2 = this;
|
|
156
|
+
if (this.t !== undefined) {
|
|
157
|
+
var { e: r, x: o2 } = i2;
|
|
158
|
+
if (r !== undefined) {
|
|
159
|
+
r.x = o2;
|
|
160
|
+
i2.e = undefined;
|
|
161
|
+
}
|
|
162
|
+
if (o2 !== undefined) {
|
|
163
|
+
o2.e = r;
|
|
164
|
+
i2.x = undefined;
|
|
165
|
+
}
|
|
166
|
+
if (i2 === this.t) {
|
|
167
|
+
this.t = o2;
|
|
168
|
+
if (o2 === undefined)
|
|
169
|
+
n(function() {
|
|
170
|
+
var i3;
|
|
171
|
+
(i3 = t2.Z) == null || i3.call(t2);
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
u.prototype.subscribe = function(i2) {
|
|
177
|
+
var t2 = this;
|
|
178
|
+
return E(function() {
|
|
179
|
+
var r = t2.value, n2 = o;
|
|
180
|
+
o = undefined;
|
|
181
|
+
try {
|
|
182
|
+
i2(r);
|
|
183
|
+
} finally {
|
|
184
|
+
o = n2;
|
|
185
|
+
}
|
|
186
|
+
}, { name: "sub" });
|
|
187
|
+
};
|
|
188
|
+
u.prototype.valueOf = function() {
|
|
189
|
+
return this.value;
|
|
190
|
+
};
|
|
191
|
+
u.prototype.toString = function() {
|
|
192
|
+
return this.value + "";
|
|
193
|
+
};
|
|
194
|
+
u.prototype.toJSON = function() {
|
|
195
|
+
return this.value;
|
|
196
|
+
};
|
|
197
|
+
u.prototype.peek = function() {
|
|
198
|
+
var i2 = o;
|
|
199
|
+
o = undefined;
|
|
200
|
+
try {
|
|
201
|
+
return this.value;
|
|
202
|
+
} finally {
|
|
203
|
+
o = i2;
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
Object.defineProperty(u.prototype, "value", { get: function() {
|
|
207
|
+
var i2 = e(this);
|
|
208
|
+
if (i2 !== undefined)
|
|
209
|
+
i2.i = this.i;
|
|
210
|
+
return this.v;
|
|
211
|
+
}, set: function(i2) {
|
|
212
|
+
if (i2 !== this.v) {
|
|
213
|
+
if (f > 100)
|
|
214
|
+
throw new Error("Cycle detected");
|
|
215
|
+
this.v = i2;
|
|
216
|
+
this.i++;
|
|
217
|
+
v++;
|
|
218
|
+
s++;
|
|
219
|
+
try {
|
|
220
|
+
for (var r = this.t;r !== undefined; r = r.x)
|
|
221
|
+
r.t.N();
|
|
222
|
+
} finally {
|
|
223
|
+
t();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
} });
|
|
227
|
+
function d(i2, t2) {
|
|
228
|
+
return new u(i2, t2);
|
|
229
|
+
}
|
|
230
|
+
function c(i2) {
|
|
231
|
+
for (var t2 = i2.s;t2 !== undefined; t2 = t2.n)
|
|
232
|
+
if (t2.S.i !== t2.i || !t2.S.h() || t2.S.i !== t2.i)
|
|
233
|
+
return true;
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
function a(i2) {
|
|
237
|
+
for (var t2 = i2.s;t2 !== undefined; t2 = t2.n) {
|
|
238
|
+
var r = t2.S.n;
|
|
239
|
+
if (r !== undefined)
|
|
240
|
+
t2.r = r;
|
|
241
|
+
t2.S.n = t2;
|
|
242
|
+
t2.i = -1;
|
|
243
|
+
if (t2.n === undefined) {
|
|
244
|
+
i2.s = t2;
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
function l(i2) {
|
|
250
|
+
var t2 = i2.s, r = undefined;
|
|
251
|
+
while (t2 !== undefined) {
|
|
252
|
+
var o2 = t2.p;
|
|
253
|
+
if (t2.i === -1) {
|
|
254
|
+
t2.S.U(t2);
|
|
255
|
+
if (o2 !== undefined)
|
|
256
|
+
o2.n = t2.n;
|
|
257
|
+
if (t2.n !== undefined)
|
|
258
|
+
t2.n.p = o2;
|
|
259
|
+
} else
|
|
260
|
+
r = t2;
|
|
261
|
+
t2.S.n = t2.r;
|
|
262
|
+
if (t2.r !== undefined)
|
|
263
|
+
t2.r = undefined;
|
|
264
|
+
t2 = o2;
|
|
265
|
+
}
|
|
266
|
+
i2.s = r;
|
|
267
|
+
}
|
|
268
|
+
function y(i2, t2) {
|
|
269
|
+
u.call(this, undefined);
|
|
270
|
+
this.x = i2;
|
|
271
|
+
this.s = undefined;
|
|
272
|
+
this.g = v - 1;
|
|
273
|
+
this.f = 4;
|
|
274
|
+
this.W = t2 == null ? undefined : t2.watched;
|
|
275
|
+
this.Z = t2 == null ? undefined : t2.unwatched;
|
|
276
|
+
this.name = t2 == null ? undefined : t2.name;
|
|
277
|
+
}
|
|
278
|
+
y.prototype = new u;
|
|
279
|
+
y.prototype.h = function() {
|
|
280
|
+
this.f &= -3;
|
|
281
|
+
if (1 & this.f)
|
|
282
|
+
return false;
|
|
283
|
+
if ((36 & this.f) == 32)
|
|
284
|
+
return true;
|
|
285
|
+
this.f &= -5;
|
|
286
|
+
if (this.g === v)
|
|
287
|
+
return true;
|
|
288
|
+
this.g = v;
|
|
289
|
+
this.f |= 1;
|
|
290
|
+
if (this.i > 0 && !c(this)) {
|
|
291
|
+
this.f &= -2;
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
var i2 = o;
|
|
295
|
+
try {
|
|
296
|
+
a(this);
|
|
297
|
+
o = this;
|
|
298
|
+
var t2 = this.x();
|
|
299
|
+
if (16 & this.f || this.v !== t2 || this.i === 0) {
|
|
300
|
+
this.v = t2;
|
|
301
|
+
this.f &= -17;
|
|
302
|
+
this.i++;
|
|
303
|
+
}
|
|
304
|
+
} catch (i3) {
|
|
305
|
+
this.v = i3;
|
|
306
|
+
this.f |= 16;
|
|
307
|
+
this.i++;
|
|
308
|
+
}
|
|
309
|
+
o = i2;
|
|
310
|
+
l(this);
|
|
311
|
+
this.f &= -2;
|
|
312
|
+
return true;
|
|
313
|
+
};
|
|
314
|
+
y.prototype.S = function(i2) {
|
|
315
|
+
if (this.t === undefined) {
|
|
316
|
+
this.f |= 36;
|
|
317
|
+
for (var t2 = this.s;t2 !== undefined; t2 = t2.n)
|
|
318
|
+
t2.S.S(t2);
|
|
319
|
+
}
|
|
320
|
+
u.prototype.S.call(this, i2);
|
|
321
|
+
};
|
|
322
|
+
y.prototype.U = function(i2) {
|
|
323
|
+
if (this.t !== undefined) {
|
|
324
|
+
u.prototype.U.call(this, i2);
|
|
325
|
+
if (this.t === undefined) {
|
|
326
|
+
this.f &= -33;
|
|
327
|
+
for (var t2 = this.s;t2 !== undefined; t2 = t2.n)
|
|
328
|
+
t2.S.U(t2);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
y.prototype.N = function() {
|
|
333
|
+
if (!(2 & this.f)) {
|
|
334
|
+
this.f |= 6;
|
|
335
|
+
for (var i2 = this.t;i2 !== undefined; i2 = i2.x)
|
|
336
|
+
i2.t.N();
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
Object.defineProperty(y.prototype, "value", { get: function() {
|
|
340
|
+
if (1 & this.f)
|
|
341
|
+
throw new Error("Cycle detected");
|
|
342
|
+
var i2 = e(this);
|
|
343
|
+
this.h();
|
|
344
|
+
if (i2 !== undefined)
|
|
345
|
+
i2.i = this.i;
|
|
346
|
+
if (16 & this.f)
|
|
347
|
+
throw this.v;
|
|
348
|
+
return this.v;
|
|
349
|
+
} });
|
|
350
|
+
function _(i2) {
|
|
351
|
+
var r = i2.u;
|
|
352
|
+
i2.u = undefined;
|
|
353
|
+
if (typeof r == "function") {
|
|
354
|
+
s++;
|
|
355
|
+
var n2 = o;
|
|
356
|
+
o = undefined;
|
|
357
|
+
try {
|
|
358
|
+
r();
|
|
359
|
+
} catch (t2) {
|
|
360
|
+
i2.f &= -2;
|
|
361
|
+
i2.f |= 8;
|
|
362
|
+
b(i2);
|
|
363
|
+
throw t2;
|
|
364
|
+
} finally {
|
|
365
|
+
o = n2;
|
|
366
|
+
t();
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
function b(i2) {
|
|
371
|
+
for (var t2 = i2.s;t2 !== undefined; t2 = t2.n)
|
|
372
|
+
t2.S.U(t2);
|
|
373
|
+
i2.x = undefined;
|
|
374
|
+
i2.s = undefined;
|
|
375
|
+
_(i2);
|
|
376
|
+
}
|
|
377
|
+
function g(i2) {
|
|
378
|
+
if (o !== this)
|
|
379
|
+
throw new Error("Out-of-order effect");
|
|
380
|
+
l(this);
|
|
381
|
+
o = i2;
|
|
382
|
+
this.f &= -2;
|
|
383
|
+
if (8 & this.f)
|
|
384
|
+
b(this);
|
|
385
|
+
t();
|
|
386
|
+
}
|
|
387
|
+
function p(i2, t2) {
|
|
388
|
+
this.x = i2;
|
|
389
|
+
this.u = undefined;
|
|
390
|
+
this.s = undefined;
|
|
391
|
+
this.o = undefined;
|
|
392
|
+
this.f = 32;
|
|
393
|
+
this.name = t2 == null ? undefined : t2.name;
|
|
394
|
+
}
|
|
395
|
+
p.prototype.c = function() {
|
|
396
|
+
var i2 = this.S();
|
|
397
|
+
try {
|
|
398
|
+
if (8 & this.f)
|
|
399
|
+
return;
|
|
400
|
+
if (this.x === undefined)
|
|
401
|
+
return;
|
|
402
|
+
var t2 = this.x();
|
|
403
|
+
if (typeof t2 == "function")
|
|
404
|
+
this.u = t2;
|
|
405
|
+
} finally {
|
|
406
|
+
i2();
|
|
407
|
+
}
|
|
408
|
+
};
|
|
409
|
+
p.prototype.S = function() {
|
|
410
|
+
if (1 & this.f)
|
|
411
|
+
throw new Error("Cycle detected");
|
|
412
|
+
this.f |= 1;
|
|
413
|
+
this.f &= -9;
|
|
414
|
+
_(this);
|
|
415
|
+
a(this);
|
|
416
|
+
s++;
|
|
417
|
+
var i2 = o;
|
|
418
|
+
o = this;
|
|
419
|
+
return g.bind(this, i2);
|
|
420
|
+
};
|
|
421
|
+
p.prototype.N = function() {
|
|
422
|
+
if (!(2 & this.f)) {
|
|
423
|
+
this.f |= 2;
|
|
424
|
+
this.o = h;
|
|
425
|
+
h = this;
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
p.prototype.d = function() {
|
|
429
|
+
this.f |= 8;
|
|
430
|
+
if (!(1 & this.f))
|
|
431
|
+
b(this);
|
|
432
|
+
};
|
|
433
|
+
p.prototype.dispose = function() {
|
|
434
|
+
this.d();
|
|
435
|
+
};
|
|
436
|
+
function E(i2, t2) {
|
|
437
|
+
var r = new p(i2, t2);
|
|
438
|
+
try {
|
|
439
|
+
r.c();
|
|
440
|
+
} catch (i3) {
|
|
441
|
+
r.d();
|
|
442
|
+
throw i3;
|
|
443
|
+
}
|
|
444
|
+
var o2 = r.d.bind(r);
|
|
445
|
+
o2[Symbol.dispose] = o2;
|
|
446
|
+
return o2;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
// src/core/clock.ts
|
|
450
|
+
function createLamportClock(contextId) {
|
|
451
|
+
let tick = 0;
|
|
452
|
+
return {
|
|
453
|
+
now() {
|
|
454
|
+
return { tick, contextId };
|
|
455
|
+
},
|
|
456
|
+
tick() {
|
|
457
|
+
tick += 1;
|
|
458
|
+
return tick;
|
|
459
|
+
},
|
|
460
|
+
update(receivedClock) {
|
|
461
|
+
tick = Math.max(tick, receivedClock.tick) + 1;
|
|
462
|
+
}
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
// src/utils/function-serialization.ts
|
|
467
|
+
import serialize from "serialize-javascript";
|
|
468
|
+
var isDev = true;
|
|
469
|
+
function serializeFunction(fn) {
|
|
470
|
+
if (!isDev) {
|
|
471
|
+
return "";
|
|
472
|
+
}
|
|
473
|
+
return serialize(fn, { space: 0 });
|
|
474
|
+
}
|
|
475
|
+
function deserializeFunction(serialized) {
|
|
476
|
+
if (!isDev) {
|
|
477
|
+
throw new Error("[Polly] deserializeFunction should not be called in production. " + "Client effects should be imported from your bundle.");
|
|
478
|
+
}
|
|
479
|
+
if (!serialized) {
|
|
480
|
+
throw new Error("[Polly] Cannot deserialize empty function");
|
|
481
|
+
}
|
|
482
|
+
return eval(`(${serialized})`);
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
// src/client/wrapper.ts
|
|
486
|
+
function createPollyClient(url, options = {}) {
|
|
487
|
+
const isDev2 = true;
|
|
488
|
+
const baseClient = treaty(url);
|
|
489
|
+
const clock = createLamportClock("client");
|
|
490
|
+
const clientState = {
|
|
491
|
+
isOnline: d(typeof navigator !== "undefined" ? navigator.onLine : true),
|
|
492
|
+
isSyncing: d(false),
|
|
493
|
+
queuedRequests: d([])
|
|
494
|
+
};
|
|
495
|
+
let ws = null;
|
|
496
|
+
const shouldUseWebSocket = options.websocket !== undefined ? options.websocket : isDev2;
|
|
497
|
+
if (shouldUseWebSocket && typeof WebSocket !== "undefined") {
|
|
498
|
+
const wsPath = options.websocketPath || "/polly/ws";
|
|
499
|
+
const wsUrl = url.replace(/^http/, "ws") + wsPath;
|
|
500
|
+
try {
|
|
501
|
+
ws = new WebSocket(wsUrl);
|
|
502
|
+
ws.addEventListener("open", () => {
|
|
503
|
+
console.log("[Polly] WebSocket connected");
|
|
504
|
+
});
|
|
505
|
+
ws.addEventListener("message", (event) => {
|
|
506
|
+
const message = JSON.parse(event.data);
|
|
507
|
+
if (message.type === "state-sync") {
|
|
508
|
+
Object.assign(options.state || {}, message.state);
|
|
509
|
+
} else if (message.type === "effect") {
|
|
510
|
+
console.log("[Polly] Received broadcast effect:", message);
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
ws.addEventListener("error", (error) => {
|
|
514
|
+
console.error("[Polly] WebSocket error:", error);
|
|
515
|
+
});
|
|
516
|
+
} catch (error) {
|
|
517
|
+
console.error("[Polly] Failed to create WebSocket:", error);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
if (typeof window !== "undefined") {
|
|
521
|
+
window.addEventListener("online", () => {
|
|
522
|
+
clientState.isOnline.value = true;
|
|
523
|
+
options.onOfflineChange?.(true);
|
|
524
|
+
processQueue();
|
|
525
|
+
});
|
|
526
|
+
window.addEventListener("offline", () => {
|
|
527
|
+
clientState.isOnline.value = false;
|
|
528
|
+
options.onOfflineChange?.(false);
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
async function processQueue() {
|
|
532
|
+
if (clientState.queuedRequests.value.length === 0)
|
|
533
|
+
return;
|
|
534
|
+
clientState.isSyncing.value = true;
|
|
535
|
+
const queue = [...clientState.queuedRequests.value];
|
|
536
|
+
clientState.queuedRequests.value = [];
|
|
537
|
+
for (const req of queue) {
|
|
538
|
+
try {
|
|
539
|
+
const response = await fetch(url + req.path, {
|
|
540
|
+
method: req.method,
|
|
541
|
+
headers: { "Content-Type": "application/json" },
|
|
542
|
+
body: JSON.stringify(req.body)
|
|
543
|
+
});
|
|
544
|
+
const result = await response.json();
|
|
545
|
+
if (isDev2) {
|
|
546
|
+
const metadataHeader = response.headers.get("X-Polly-Metadata");
|
|
547
|
+
if (metadataHeader) {
|
|
548
|
+
const metadata = JSON.parse(metadataHeader);
|
|
549
|
+
if (req.optimisticResult && metadata.offline?.merge) {
|
|
550
|
+
const mergeStrategy = metadata.offline.merge;
|
|
551
|
+
if (mergeStrategy === "replace") {} else if (typeof mergeStrategy === "function") {}
|
|
552
|
+
}
|
|
553
|
+
if (metadata.clientEffect) {
|
|
554
|
+
const handler = deserializeFunction(metadata.clientEffect.handler);
|
|
555
|
+
handler({
|
|
556
|
+
result,
|
|
557
|
+
body: req.body,
|
|
558
|
+
state: { client: options.state || {}, server: {} },
|
|
559
|
+
params: {},
|
|
560
|
+
clock: metadata.clock
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
} catch (error) {
|
|
566
|
+
console.error("[Polly] Failed to replay request:", req, error);
|
|
567
|
+
clientState.queuedRequests.value.push(req);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
clientState.isSyncing.value = false;
|
|
571
|
+
}
|
|
572
|
+
return {
|
|
573
|
+
...baseClient,
|
|
574
|
+
$polly: {
|
|
575
|
+
state: clientState,
|
|
576
|
+
clock,
|
|
577
|
+
ws,
|
|
578
|
+
sync: processQueue
|
|
579
|
+
}
|
|
580
|
+
};
|
|
581
|
+
}
|
|
582
|
+
export {
|
|
583
|
+
createPollyClient
|
|
584
|
+
};
|
|
585
|
+
|
|
586
|
+
//# debugId=4B9E78BB8FB5DA3E64756E2164756E21
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/client/wrapper.ts", "../node_modules/@preact/signals-core/dist/signals-core.module.js", "../src/core/clock.ts", "../src/utils/function-serialization.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"// @ts-nocheck - Optional peer dependencies (elysia, @elysiajs/eden)\nimport { treaty } from \"@elysiajs/eden\";\nimport { type Signal, signal } from \"@preact/signals-core\";\nimport { createLamportClock } from \"../core/clock\";\nimport type { PollyResponseMetadata } from \"../elysia/types\";\nimport { deserializeFunction } from \"../utils/function-serialization\";\n\n/**\n * Offline queue entry\n */\ninterface QueuedRequest {\n id: string;\n method: string;\n path: string;\n body: unknown;\n optimisticResult?: unknown;\n timestamp: number;\n}\n\n/**\n * Client-side state management\n */\ninterface ClientState {\n isOnline: Signal<boolean>;\n isSyncing: Signal<boolean>;\n queuedRequests: Signal<QueuedRequest[]>;\n}\n\n/**\n * Polly client options\n */\nexport interface PollyClientOptions {\n /**\n * Client state signals that should be synced\n */\n state?: Record<string, Signal<unknown>>;\n\n /**\n * Callback when online/offline status changes\n */\n onOfflineChange?: (isOnline: boolean) => void;\n\n /**\n * Enable WebSocket for real-time updates (default: true in dev, false in prod)\n */\n websocket?: boolean;\n\n /**\n * WebSocket path (default: '/polly/ws')\n */\n websocketPath?: string;\n}\n\n/**\n * Create a Polly-enhanced Eden client\n *\n * In DEV mode:\n * - Processes server metadata for hot reloading\n * - Executes client effects from server\n * - Handles offline queueing\n * - Connects WebSocket for real-time updates\n *\n * In PROD mode:\n * - Minimal wrapper (client effects are bundled)\n * - Optional WebSocket for real-time features\n * - Offline queueing still works\n *\n * Example:\n * ```typescript\n * import { createPollyClient } from '@fairfox/polly/client';\n * import { $syncedState } from '@fairfox/polly';\n * import type { app } from './server';\n *\n * const clientState = {\n * todos: $syncedState('todos', []),\n * user: $syncedState('user', null),\n * };\n *\n * export const api = createPollyClient<typeof app>('http://localhost:3000', {\n * state: clientState,\n * websocket: true,\n * });\n * ```\n */\nexport function createPollyClient<T extends Record<string, unknown>>(\n url: string,\n options: PollyClientOptions = {}\n) {\n const isDev = process.env.NODE_ENV !== \"production\";\n const baseClient = treaty<T>(url);\n const clock = createLamportClock(\"client\");\n\n // Client state\n const clientState: ClientState = {\n isOnline: signal(typeof navigator !== \"undefined\" ? navigator.onLine : true),\n isSyncing: signal(false),\n queuedRequests: signal<QueuedRequest[]>([]),\n };\n\n // WebSocket connection for real-time updates (opt-in in prod)\n let ws: WebSocket | null = null;\n const shouldUseWebSocket = options.websocket !== undefined ? options.websocket : isDev;\n\n if (shouldUseWebSocket && typeof WebSocket !== \"undefined\") {\n const wsPath = options.websocketPath || \"/polly/ws\";\n const wsUrl = url.replace(/^http/, \"ws\") + wsPath;\n\n try {\n ws = new WebSocket(wsUrl);\n\n ws.addEventListener(\"open\", () => {\n console.log(\"[Polly] WebSocket connected\");\n });\n\n ws.addEventListener(\"message\", (event) => {\n const message = JSON.parse(event.data);\n\n if (message.type === \"state-sync\") {\n // Initial state sync\n Object.assign(options.state || {}, message.state);\n } else if (message.type === \"effect\") {\n // Remote effect triggered by another client (broadcast)\n console.log(\"[Polly] Received broadcast effect:\", message);\n // In production, handle this via your bundled effects\n // In dev, the effect handler comes from metadata\n }\n });\n\n ws.addEventListener(\"error\", (error) => {\n // biome-ignore lint/suspicious/noConsole: Error logging is intentional\n console.error(\"[Polly] WebSocket error:\", error);\n });\n } catch (error) {\n // biome-ignore lint/suspicious/noConsole: Error logging is intentional\n console.error(\"[Polly] Failed to create WebSocket:\", error);\n }\n }\n\n // Online/offline listeners (browser only)\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"online\", () => {\n clientState.isOnline.value = true;\n options.onOfflineChange?.(true);\n processQueue();\n });\n\n window.addEventListener(\"offline\", () => {\n clientState.isOnline.value = false;\n options.onOfflineChange?.(false);\n });\n }\n\n /**\n * Process queued requests when back online\n */\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Queue processing requires complex branching logic\n async function processQueue() {\n if (clientState.queuedRequests.value.length === 0) return;\n\n clientState.isSyncing.value = true;\n\n const queue = [...clientState.queuedRequests.value];\n clientState.queuedRequests.value = [];\n\n for (const req of queue) {\n try {\n // Replay request\n const response = await fetch(url + req.path, {\n method: req.method,\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(req.body),\n });\n\n const result = await response.json();\n\n // In dev mode, process metadata\n if (isDev) {\n const metadataHeader = response.headers.get(\"X-Polly-Metadata\");\n if (metadataHeader) {\n const metadata: PollyResponseMetadata = JSON.parse(metadataHeader);\n\n // Handle merge if optimistic update was used\n if (req.optimisticResult && metadata.offline?.merge) {\n const mergeStrategy = metadata.offline.merge;\n\n if (mergeStrategy === \"replace\") {\n // Replace optimistic with server result (default)\n // The client effect will handle this\n } else if (typeof mergeStrategy === \"function\") {\n // TODO: Update local state with merged result\n // const merged = mergeStrategy(req.optimisticResult, result);\n // Apply merged state to local signals\n }\n }\n\n // Execute client effect\n if (metadata.clientEffect) {\n const handler = deserializeFunction(metadata.clientEffect.handler);\n handler({\n result,\n body: req.body,\n state: { client: options.state || {}, server: {} },\n params: {},\n clock: metadata.clock,\n });\n }\n }\n }\n } catch (error) {\n // biome-ignore lint/suspicious/noConsole: Error logging is intentional\n console.error(\"[Polly] Failed to replay request:\", req, error);\n // Re-queue on failure\n clientState.queuedRequests.value.push(req);\n }\n }\n\n clientState.isSyncing.value = false;\n }\n\n // Return the base client with additional Polly features\n return {\n ...baseClient,\n $polly: {\n state: clientState,\n clock,\n ws,\n /**\n * Manually process queued requests\n */\n sync: processQueue,\n },\n };\n}\n",
|
|
6
|
+
"var i=Symbol.for(\"preact-signals\");function t(){if(!(s>1)){var i,t=!1;while(void 0!==h){var r=h;h=void 0;f++;while(void 0!==r){var o=r.o;r.o=void 0;r.f&=-3;if(!(8&r.f)&&c(r))try{r.c()}catch(r){if(!t){i=r;t=!0}}r=o}}f=0;s--;if(t)throw i}else s--}function r(i){if(s>0)return i();s++;try{return i()}finally{t()}}var o=void 0;function n(i){var t=o;o=void 0;try{return i()}finally{o=t}}var h=void 0,s=0,f=0,v=0;function e(i){if(void 0!==o){var t=i.n;if(void 0===t||t.t!==o){t={i:0,S:i,p:o.s,n:void 0,t:o,e:void 0,x:void 0,r:t};if(void 0!==o.s)o.s.n=t;o.s=t;i.n=t;if(32&o.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=o.s;t.n=void 0;o.s.n=t;o.s=t}return t}}}function u(i,t){this.v=i;this.i=0;this.n=void 0;this.t=void 0;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched;this.name=null==t?void 0:t.name}u.prototype.brand=i;u.prototype.h=function(){return!0};u.prototype.S=function(i){var t=this,r=this.t;if(r!==i&&void 0===i.e){i.x=r;this.t=i;if(void 0!==r)r.e=i;else n(function(){var i;null==(i=t.W)||i.call(t)})}};u.prototype.U=function(i){var t=this;if(void 0!==this.t){var r=i.e,o=i.x;if(void 0!==r){r.x=o;i.e=void 0}if(void 0!==o){o.e=r;i.x=void 0}if(i===this.t){this.t=o;if(void 0===o)n(function(){var i;null==(i=t.Z)||i.call(t)})}}};u.prototype.subscribe=function(i){var t=this;return E(function(){var r=t.value,n=o;o=void 0;try{i(r)}finally{o=n}},{name:\"sub\"})};u.prototype.valueOf=function(){return this.value};u.prototype.toString=function(){return this.value+\"\"};u.prototype.toJSON=function(){return this.value};u.prototype.peek=function(){var i=o;o=void 0;try{return this.value}finally{o=i}};Object.defineProperty(u.prototype,\"value\",{get:function(){var i=e(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(i!==this.v){if(f>100)throw new Error(\"Cycle detected\");this.v=i;this.i++;v++;s++;try{for(var r=this.t;void 0!==r;r=r.x)r.t.N()}finally{t()}}}});function d(i,t){return new u(i,t)}function c(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function a(i){for(var t=i.s;void 0!==t;t=t.n){var r=t.S.n;if(void 0!==r)t.r=r;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function l(i){var t=i.s,r=void 0;while(void 0!==t){var o=t.p;if(-1===t.i){t.S.U(t);if(void 0!==o)o.n=t.n;if(void 0!==t.n)t.n.p=o}else r=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=o}i.s=r}function y(i,t){u.call(this,void 0);this.x=i;this.s=void 0;this.g=v-1;this.f=4;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched;this.name=null==t?void 0:t.name}y.prototype=new u;y.prototype.h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===v)return!0;this.g=v;this.f|=1;if(this.i>0&&!c(this)){this.f&=-2;return!0}var i=o;try{a(this);o=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}o=i;l(this);this.f&=-2;return!0};y.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}u.prototype.S.call(this,i)};y.prototype.U=function(i){if(void 0!==this.t){u.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};y.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(y.prototype,\"value\",{get:function(){if(1&this.f)throw new Error(\"Cycle detected\");var i=e(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function w(i,t){return new y(i,t)}function _(i){var r=i.u;i.u=void 0;if(\"function\"==typeof r){s++;var n=o;o=void 0;try{r()}catch(t){i.f&=-2;i.f|=8;b(i);throw t}finally{o=n;t()}}}function b(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;_(i)}function g(i){if(o!==this)throw new Error(\"Out-of-order effect\");l(this);o=i;this.f&=-2;if(8&this.f)b(this);t()}function p(i,t){this.x=i;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32;this.name=null==t?void 0:t.name}p.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if(\"function\"==typeof t)this.u=t}finally{i()}};p.prototype.S=function(){if(1&this.f)throw new Error(\"Cycle detected\");this.f|=1;this.f&=-9;_(this);a(this);s++;var i=o;o=this;return g.bind(this,i)};p.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=h;h=this}};p.prototype.d=function(){this.f|=8;if(!(1&this.f))b(this)};p.prototype.dispose=function(){this.d()};function E(i,t){var r=new p(i,t);try{r.c()}catch(i){r.d();throw i}var o=r.d.bind(r);o[Symbol.dispose]=o;return o}export{y as Computed,p as Effect,u as Signal,r as batch,w as computed,E as effect,d as signal,n as untracked};//# sourceMappingURL=signals-core.module.js.map\n",
|
|
7
|
+
"/**\n * Lamport Clock Implementation\n *\n * Provides logical timestamps for distributed systems to establish\n * causal ordering of events across different contexts (client/server).\n *\n * Key properties:\n * - Each event increments the local clock\n * - When receiving a message, clock = max(local, received) + 1\n * - If A happens before B, then timestamp(A) < timestamp(B)\n *\n * References:\n * - Lamport, L. (1978). \"Time, Clocks, and the Ordering of Events in a Distributed System\"\n * - https://lamport.azurewebsites.net/pubs/time-clocks.pdf\n */\n\n/**\n * Lamport clock state\n */\nexport interface LamportClock {\n tick: number;\n contextId: string;\n}\n\n/**\n * Lamport clock with operations\n */\nexport interface LamportClockOps {\n /**\n * Get current clock value\n */\n now(): LamportClock;\n\n /**\n * Increment the clock (before sending a message or performing an action)\n */\n tick(): number;\n\n /**\n * Update clock when receiving a message\n * Sets clock to max(local, received) + 1\n */\n update(receivedClock: LamportClock): void;\n}\n\n/**\n * Create a Lamport clock for a specific context\n *\n * @param contextId - Unique identifier for this context (e.g., \"client\", \"server\", \"worker-1\")\n * @returns Clock operations\n *\n * @example\n * ```typescript\n * const serverClock = createLamportClock(\"server\");\n *\n * // Before sending a message\n * serverClock.tick();\n * const timestamp = serverClock.now();\n * send({ data: \"...\", clock: timestamp });\n *\n * // When receiving a message\n * onReceive((message) => {\n * serverClock.update(message.clock);\n * // Process message with updated clock\n * });\n * ```\n */\nexport function createLamportClock(contextId: string): LamportClockOps {\n let tick = 0;\n\n return {\n now(): LamportClock {\n return { tick, contextId };\n },\n\n tick(): number {\n tick += 1;\n return tick;\n },\n\n update(receivedClock: LamportClock): void {\n tick = Math.max(tick, receivedClock.tick) + 1;\n },\n };\n}\n",
|
|
8
|
+
"import serialize from \"serialize-javascript\";\n\n/**\n * Check if we're in development mode\n */\nconst isDev = process.env.NODE_ENV !== \"production\";\n\n/**\n * Serialize a function to send to client\n *\n * DEV ONLY: Used for hot reloading and debugging\n * PROD: No-op - client effects are baked into bundle at build time\n */\n// biome-ignore lint/complexity/noBannedTypes: Generic function serialization requires Function type\nexport function serializeFunction(fn: Function): string {\n if (!isDev) {\n // In production, return empty string - this won't be used\n return \"\";\n }\n\n return serialize(fn, { space: 0 });\n}\n\n/**\n * Deserialize a function received from server\n *\n * DEV ONLY: Eval serialized function source\n * PROD: Should never be called - effects come from bundle\n */\n// biome-ignore lint/complexity/noBannedTypes: Generic function deserialization requires Function type\nexport function deserializeFunction(serialized: string): Function {\n if (!isDev) {\n throw new Error(\n \"[Polly] deserializeFunction should not be called in production. \" +\n \"Client effects should be imported from your bundle.\"\n );\n }\n\n if (!serialized) {\n throw new Error(\"[Polly] Cannot deserialize empty function\");\n }\n\n // biome-ignore lint/security/noGlobalEval: Required for dev-mode function deserialization\n return eval(`(${serialized})`);\n}\n"
|
|
9
|
+
],
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "4B9E78BB8FB5DA3E64756E2164756E21",
|
|
12
|
+
"names": []
|
|
13
|
+
}
|