@picked/client 0.0.1-dev.1778467244607 → 0.0.1-dev.1778561735098
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/{api-DWGhvwuG.js → api-Bzb9pR2r.js} +1 -1
- package/dist/{api-CF5VqlzY.cjs → api-XV6bcv_D.cjs} +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/esm/index.js +440 -380
- package/dist/esm/plugins/dynamic-experiences/index.js +1 -1
- package/dist/esm/plugins/history-browser-storage/index.js +52 -13
- package/dist/esm/server/index.js +1 -1
- package/dist/experience-instance-B16NqD7y.cjs +1 -0
- package/dist/{experience-instance-BrLWgVAN.js → experience-instance-CZC0uPuv.js} +215 -203
- package/dist/types/entities/experience/experience.d.ts +2 -2
- package/dist/types/entities/experience/experience.d.ts.map +1 -1
- package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
- package/dist/types/entities/history/history.d.ts +28 -16
- package/dist/types/entities/history/history.d.ts.map +1 -1
- package/dist/types/picked.d.ts +8 -14
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/plugins/history-browser-storage/plugin.d.ts +16 -0
- package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
- package/dist/types/utils/dom.d.ts +27 -0
- package/dist/types/utils/dom.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/experience-instance-Ct3ogC7n.cjs +0 -1
package/dist/esm/index.js
CHANGED
|
@@ -2,15 +2,35 @@ import { t as e } from "../object-DvUDOytC.js";
|
|
|
2
2
|
import { n as t, t as n } from "../rules-logic-D_CVBuv7.js";
|
|
3
3
|
import { t as r } from "../logger-6z_gb4rA.js";
|
|
4
4
|
import { a as i, c as a, d as o, i as s, l as c, n as l, o as u, p as d, r as f, s as p, t as m, u as h } from "../supports-0XIfd4-R.js";
|
|
5
|
-
import { a as g, c as _,
|
|
6
|
-
import { i as
|
|
7
|
-
import { n as
|
|
8
|
-
import { t as
|
|
9
|
-
import { attach as
|
|
10
|
-
import { createFactory as
|
|
5
|
+
import { a as g, c as _, d as v, i as y, l as b, n as x, o as ee, r as S, s as C, u as w } from "../experience-instance-CZC0uPuv.js";
|
|
6
|
+
import { i as T, n as E, r as D, t as O } from "../storage-6Xk0uAxB.js";
|
|
7
|
+
import { n as te, r as ne } from "../api-Bzb9pR2r.js";
|
|
8
|
+
import { t as re } from "../id-CRqy981z.js";
|
|
9
|
+
import { attach as k, combine as A, createApi as j, createDomain as M, createEffect as N, createEvent as P, createStore as F, sample as I } from "effector";
|
|
10
|
+
import { createFactory as L, invoke as R } from "@withease/factories";
|
|
11
11
|
//#region src/entities/experience/experience.ts
|
|
12
|
-
var
|
|
13
|
-
|
|
12
|
+
var z = M("experience");
|
|
13
|
+
function ie(e, t) {
|
|
14
|
+
let n = /* @__PURE__ */ new Map();
|
|
15
|
+
for (let r of e) if (r.placement === "replace") for (let e of r.elements) {
|
|
16
|
+
let i = _(e, t);
|
|
17
|
+
if (i) {
|
|
18
|
+
n.set(r.selector, i);
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
for (let [e, r] of n) `${e}${r}${t}`;
|
|
23
|
+
}
|
|
24
|
+
function ae(e, t, n) {
|
|
25
|
+
let r = new Set(t.filter((e) => e.elements.length > 0).map((e) => e.selector));
|
|
26
|
+
for (let t of e) {
|
|
27
|
+
if (t.placement !== "replace" || r.has(t.selector)) continue;
|
|
28
|
+
let e = C(t.selector);
|
|
29
|
+
!e || e === n || `${t.selector}${e}${n}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
var oe = L(({ client: e, experience: r }) => {
|
|
33
|
+
let i = z.store(r), a = j(i, { merge(e, t) {
|
|
14
34
|
return {
|
|
15
35
|
...e,
|
|
16
36
|
...t.experience
|
|
@@ -20,24 +40,24 @@ var re = j("experience"), ie = I(({ client: e, experience: r }) => {
|
|
|
20
40
|
decisionLogic: e.condition,
|
|
21
41
|
targetSelectors: e.targets,
|
|
22
42
|
initializeOpenLogic: e.initializeOpen
|
|
23
|
-
})), s =
|
|
24
|
-
let r = e.nodes.filter(
|
|
43
|
+
})), s = A(i, e.components.listStore, (e, t) => (e.componentName ? t.find((t) => t.name === e.componentName) : void 0) || t.find((t) => t.name === `experience:${e.id}`) || t.find((e) => e.name === "experience"), { skipVoid: !1 }), c = A(i, e.steps.indexStore, e.conditions.indexStore, (e, t, n) => {
|
|
44
|
+
let r = e.nodes.filter(y).map((e) => t[e.stepId]).filter((e) => e !== void 0), i = e.nodes.filter(S).map((e) => n[e.conditionId]).filter((e) => e !== void 0);
|
|
25
45
|
return {
|
|
26
46
|
steps: r,
|
|
27
47
|
nodes: e.nodes,
|
|
28
48
|
edges: e.edges,
|
|
29
49
|
conditions: i
|
|
30
50
|
};
|
|
31
|
-
}), l = r.actions ?? [], u, d =
|
|
51
|
+
}), l = r.actions ?? [], u, d = k({
|
|
32
52
|
source: o,
|
|
33
53
|
effect: (t, n) => {
|
|
34
|
-
let i =
|
|
35
|
-
i.forEach(({ elements: e }) => e.forEach((e) =>
|
|
54
|
+
let i = b(t.targetSelectors, r.id);
|
|
55
|
+
i.forEach(({ elements: e }) => e.forEach((e) => v(e, r.id))), ie(i, r.id), g(i, r.id, r.key).forEach((t) => {
|
|
36
56
|
n ? e.experienceInstances.spawn(u, t, n) : e.experienceInstances.spawn(u, t);
|
|
37
|
-
});
|
|
57
|
+
}), ae(t.targetSelectors, i, r.id);
|
|
38
58
|
}
|
|
39
|
-
}), f =
|
|
40
|
-
source:
|
|
59
|
+
}), f = k({
|
|
60
|
+
source: A({
|
|
41
61
|
preconditionPassed: e.preconditionPassedStore,
|
|
42
62
|
isUser: e.session.store.map((e) => e.isUser, { skipVoid: !1 }),
|
|
43
63
|
config: o
|
|
@@ -45,7 +65,7 @@ var re = j("experience"), ie = I(({ client: e, experience: r }) => {
|
|
|
45
65
|
effect: async ({ preconditionPassed: i, isUser: a, config: o }) => {
|
|
46
66
|
if (!i || !a) return !1;
|
|
47
67
|
let { decisionLogic: s, targetSelectors: c } = o;
|
|
48
|
-
return c.length === 0 ||
|
|
68
|
+
return c.length === 0 || b(c, r.id).length < 1 ? !1 : s === void 0 ? !0 : t(s) ? await n(e, s) === !0 : !0;
|
|
49
69
|
}
|
|
50
70
|
});
|
|
51
71
|
return u = {
|
|
@@ -61,22 +81,22 @@ var re = j("experience"), ie = I(({ client: e, experience: r }) => {
|
|
|
61
81
|
shouldInitialiseFx: f
|
|
62
82
|
}, u;
|
|
63
83
|
});
|
|
64
|
-
function
|
|
65
|
-
return
|
|
84
|
+
function se(e) {
|
|
85
|
+
return R(oe, e);
|
|
66
86
|
}
|
|
67
|
-
var
|
|
68
|
-
let t =
|
|
87
|
+
var ce = L(({ client: e }) => {
|
|
88
|
+
let t = z.store({}), n = j(t, { register(e, t) {
|
|
69
89
|
return {
|
|
70
90
|
...e,
|
|
71
91
|
[t.id]: t
|
|
72
92
|
};
|
|
73
|
-
} }), r =
|
|
74
|
-
n.register(
|
|
93
|
+
} }), r = P(), i = N((t) => {
|
|
94
|
+
n.register(se({
|
|
75
95
|
client: e,
|
|
76
96
|
experience: t
|
|
77
97
|
}));
|
|
78
98
|
});
|
|
79
|
-
|
|
99
|
+
I({
|
|
80
100
|
clock: r,
|
|
81
101
|
source: t,
|
|
82
102
|
filter: (e, t) => e[t.id] !== void 0,
|
|
@@ -89,7 +109,7 @@ var oe = I(({ client: e }) => {
|
|
|
89
109
|
experience: t,
|
|
90
110
|
strategy: "override"
|
|
91
111
|
});
|
|
92
|
-
}),
|
|
112
|
+
}), I({
|
|
93
113
|
clock: r,
|
|
94
114
|
source: t,
|
|
95
115
|
filter: (e, t) => e[t.id] === void 0,
|
|
@@ -103,7 +123,7 @@ var oe = I(({ client: e }) => {
|
|
|
103
123
|
function s(e) {
|
|
104
124
|
return t.map((t) => Object.values(t).find((t) => t.key === e) ?? t[e], { skipVoid: !1 });
|
|
105
125
|
}
|
|
106
|
-
let c =
|
|
126
|
+
let c = k({
|
|
107
127
|
source: t,
|
|
108
128
|
effect: async (e, t) => {
|
|
109
129
|
let n = "key" in t ? Object.values(e).find((e) => e.key === t.key) : e[t.id];
|
|
@@ -125,7 +145,7 @@ var oe = I(({ client: e }) => {
|
|
|
125
145
|
getById: o,
|
|
126
146
|
getByKey: s,
|
|
127
147
|
launch: c,
|
|
128
|
-
open:
|
|
148
|
+
open: k({
|
|
129
149
|
source: {
|
|
130
150
|
experiences: t,
|
|
131
151
|
instances: e.experienceInstances.listStore
|
|
@@ -152,30 +172,32 @@ var oe = I(({ client: e }) => {
|
|
|
152
172
|
}
|
|
153
173
|
}),
|
|
154
174
|
listStore: a,
|
|
155
|
-
initialiseExperiencesFx:
|
|
175
|
+
initialiseExperiencesFx: k({
|
|
156
176
|
source: a,
|
|
157
177
|
effect: async (e) => {
|
|
158
|
-
|
|
159
|
-
await
|
|
160
|
-
}
|
|
178
|
+
for (let t of e) try {
|
|
179
|
+
await t.shouldInitialiseFx() && await t.initialiseFx(void 0);
|
|
180
|
+
} catch {
|
|
181
|
+
`${t.id}`;
|
|
182
|
+
}
|
|
161
183
|
}
|
|
162
184
|
})
|
|
163
185
|
};
|
|
164
186
|
});
|
|
165
|
-
function
|
|
166
|
-
return
|
|
187
|
+
function le(e) {
|
|
188
|
+
return R(ce, e);
|
|
167
189
|
}
|
|
168
|
-
var
|
|
190
|
+
var ue = async (e) => {
|
|
169
191
|
await e.experiences.initialiseExperiencesFx();
|
|
170
192
|
};
|
|
171
193
|
//#endregion
|
|
172
194
|
//#region src/entities/plugin/plugin.ts
|
|
173
|
-
function
|
|
174
|
-
return
|
|
195
|
+
function de(e) {
|
|
196
|
+
return N(async () => {
|
|
175
197
|
await e();
|
|
176
198
|
});
|
|
177
199
|
}
|
|
178
|
-
var
|
|
200
|
+
var fe = (e, t, n) => {
|
|
179
201
|
let r = t.name, i = t.setup(e);
|
|
180
202
|
if (i) {
|
|
181
203
|
let e = n[r] ?? {};
|
|
@@ -184,29 +206,29 @@ var ue = (e, t, n) => {
|
|
|
184
206
|
...i
|
|
185
207
|
});
|
|
186
208
|
}
|
|
187
|
-
},
|
|
209
|
+
}, pe = M("component"), me = L(({ client: e, component: t, name: n }) => ({
|
|
188
210
|
name: n,
|
|
189
211
|
component: t,
|
|
190
212
|
frameworkStore: e.frameworks.getByName(t.frameworkName)
|
|
191
213
|
}));
|
|
192
|
-
function
|
|
193
|
-
return
|
|
214
|
+
function he(e) {
|
|
215
|
+
return R(me, e);
|
|
194
216
|
}
|
|
195
|
-
var
|
|
196
|
-
let t =
|
|
217
|
+
var ge = L(({ client: e }) => {
|
|
218
|
+
let t = pe.store({}), n = j(t, { register(e, t) {
|
|
197
219
|
return {
|
|
198
220
|
...e,
|
|
199
221
|
[t.name]: t
|
|
200
222
|
};
|
|
201
|
-
} }), i =
|
|
202
|
-
|
|
223
|
+
} }), i = P();
|
|
224
|
+
I({
|
|
203
225
|
clock: i,
|
|
204
226
|
source: t,
|
|
205
227
|
filter: (e, { name: t }) => e[t] !== void 0,
|
|
206
228
|
fn: (e, { name: t }) => `Component '${t}' already registered. Registering again will override the previous registration.`
|
|
207
|
-
}).watch((e) => /* @__PURE__ */ r("warn", e)),
|
|
229
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), I({
|
|
208
230
|
clock: i,
|
|
209
|
-
fn: ({ name: t, component: n }) =>
|
|
231
|
+
fn: ({ name: t, component: n }) => he({
|
|
210
232
|
client: e,
|
|
211
233
|
name: t,
|
|
212
234
|
component: n
|
|
@@ -223,27 +245,27 @@ var me = I(({ client: e }) => {
|
|
|
223
245
|
listStore: a
|
|
224
246
|
};
|
|
225
247
|
});
|
|
226
|
-
function
|
|
227
|
-
return
|
|
248
|
+
function _e(e) {
|
|
249
|
+
return R(ge, e);
|
|
228
250
|
}
|
|
229
|
-
var
|
|
251
|
+
var B = (e, t, n) => {
|
|
230
252
|
n.register({
|
|
231
253
|
name: e,
|
|
232
254
|
component: t
|
|
233
255
|
});
|
|
234
|
-
},
|
|
235
|
-
let t =
|
|
256
|
+
}, ve = M("framework"), ye = L((e) => {
|
|
257
|
+
let t = ve.store({}), n = j(t, { register(e, t) {
|
|
236
258
|
return {
|
|
237
259
|
...e,
|
|
238
260
|
[t.name]: t.framework
|
|
239
261
|
};
|
|
240
|
-
} }), i =
|
|
241
|
-
|
|
262
|
+
} }), i = P();
|
|
263
|
+
I({
|
|
242
264
|
clock: i,
|
|
243
265
|
source: t,
|
|
244
266
|
filter: (e, { name: t }) => e[t] !== void 0,
|
|
245
267
|
fn: (e, { name: t }) => `Framework '${t}' already registered. Registering again will override the previous registration.`
|
|
246
|
-
}).watch((e) => /* @__PURE__ */ r("warn", e)),
|
|
268
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), I({
|
|
247
269
|
clock: i,
|
|
248
270
|
target: n.register
|
|
249
271
|
});
|
|
@@ -257,106 +279,106 @@ var ge = (e, t, n) => {
|
|
|
257
279
|
listStore: a
|
|
258
280
|
};
|
|
259
281
|
});
|
|
260
|
-
function
|
|
261
|
-
return
|
|
282
|
+
function be(e) {
|
|
283
|
+
return R(ye, e);
|
|
262
284
|
}
|
|
263
|
-
var
|
|
285
|
+
var xe = (e, t) => {
|
|
264
286
|
t.register({
|
|
265
287
|
name: e.name,
|
|
266
288
|
framework: e
|
|
267
289
|
});
|
|
268
|
-
},
|
|
290
|
+
}, Se = L(({ client: e }) => {
|
|
269
291
|
let t = typeof window < "u", n = {
|
|
270
292
|
location: t ? window.location : void 0,
|
|
271
293
|
document: t ? window.document : void 0,
|
|
272
294
|
sessionStorage: t ? window.sessionStorage : void 0,
|
|
273
295
|
localStorage: t ? window.localStorage : void 0
|
|
274
296
|
};
|
|
275
|
-
return
|
|
297
|
+
return A(e.responses.listStore, e.fields.listStore, (t, r) => Object.freeze({
|
|
276
298
|
client: e,
|
|
277
299
|
responses: t,
|
|
278
300
|
fields: r,
|
|
279
301
|
...n
|
|
280
302
|
}));
|
|
281
303
|
});
|
|
282
|
-
function
|
|
283
|
-
return
|
|
304
|
+
function Ce(e) {
|
|
305
|
+
return R(Se, e);
|
|
284
306
|
}
|
|
285
307
|
//#endregion
|
|
286
308
|
//#region src/logic-engine.ts
|
|
287
|
-
function
|
|
309
|
+
function we(e) {
|
|
288
310
|
return typeof e == "number" && !isNaN(e);
|
|
289
311
|
}
|
|
290
|
-
function
|
|
312
|
+
function V(e) {
|
|
291
313
|
return typeof e == "string";
|
|
292
314
|
}
|
|
293
|
-
function
|
|
315
|
+
function H(e) {
|
|
294
316
|
return Array.isArray(e);
|
|
295
317
|
}
|
|
296
|
-
function
|
|
318
|
+
function U(e) {
|
|
297
319
|
return e instanceof Promise;
|
|
298
320
|
}
|
|
299
|
-
function
|
|
321
|
+
function W(e) {
|
|
300
322
|
return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
|
|
301
323
|
}
|
|
302
|
-
function
|
|
303
|
-
if (
|
|
324
|
+
function G(e) {
|
|
325
|
+
if (we(e)) return e;
|
|
304
326
|
let t = parseFloat(`${e}`);
|
|
305
327
|
return isNaN(t) ? 0 : t;
|
|
306
328
|
}
|
|
307
|
-
function
|
|
329
|
+
function K(e) {
|
|
308
330
|
return `${e}`;
|
|
309
331
|
}
|
|
310
|
-
var
|
|
332
|
+
var Te = {
|
|
311
333
|
"==": (e, t) => e == t,
|
|
312
334
|
"===": (e, t) => e === t,
|
|
313
335
|
"!=": (e, t) => e != t,
|
|
314
336
|
"!==": (e, t) => e !== t,
|
|
315
|
-
">": (e, t) =>
|
|
316
|
-
">=": (e, t) =>
|
|
337
|
+
">": (e, t) => G(e) > G(t),
|
|
338
|
+
">=": (e, t) => G(e) >= G(t),
|
|
317
339
|
"<": (e, t, n) => {
|
|
318
|
-
let r =
|
|
340
|
+
let r = G(e), i = G(t);
|
|
319
341
|
if (n === void 0) return r < i;
|
|
320
|
-
let a =
|
|
342
|
+
let a = G(n);
|
|
321
343
|
return r < i && i < a;
|
|
322
344
|
},
|
|
323
345
|
"<=": (e, t, n) => {
|
|
324
|
-
let r =
|
|
346
|
+
let r = G(e), i = G(t);
|
|
325
347
|
if (n === void 0) return r <= i;
|
|
326
|
-
let a =
|
|
348
|
+
let a = G(n);
|
|
327
349
|
return r <= i && i <= a;
|
|
328
350
|
},
|
|
329
|
-
"!!": async (e) => await
|
|
330
|
-
"!": async (e) => !await
|
|
331
|
-
"%": (e, t) =>
|
|
351
|
+
"!!": async (e) => await J(e),
|
|
352
|
+
"!": async (e) => !await J(e),
|
|
353
|
+
"%": (e, t) => G(e) % G(t),
|
|
332
354
|
log: (e) => (console.log(e), e),
|
|
333
|
-
in: (e, t) => t ?
|
|
334
|
-
cat: (...e) => e.map(
|
|
355
|
+
in: (e, t) => t ? V(t) ? t.indexOf(K(e)) !== -1 : H(t) ? t.includes(e) : !1 : !1,
|
|
356
|
+
cat: (...e) => e.map(K).join(""),
|
|
335
357
|
substr: (e, t, n) => {
|
|
336
|
-
let r =
|
|
358
|
+
let r = K(e), i = G(t);
|
|
337
359
|
if (n === void 0) return r.substr(i);
|
|
338
|
-
let a =
|
|
360
|
+
let a = G(n);
|
|
339
361
|
if (a < 0) {
|
|
340
362
|
let e = r.substr(i);
|
|
341
363
|
return e.substr(0, e.length + a);
|
|
342
364
|
}
|
|
343
365
|
return r.substr(i, a);
|
|
344
366
|
},
|
|
345
|
-
"+": (...e) => e.reduce((e, t) =>
|
|
346
|
-
"*": (...e) => e.reduce((e, t) =>
|
|
367
|
+
"+": (...e) => e.reduce((e, t) => G(e) + G(t), 0),
|
|
368
|
+
"*": (...e) => e.reduce((e, t) => G(e) * G(t), 1),
|
|
347
369
|
"-": (e, t) => {
|
|
348
|
-
let n =
|
|
349
|
-
return t === void 0 ? -n : n -
|
|
370
|
+
let n = G(e);
|
|
371
|
+
return t === void 0 ? -n : n - G(t);
|
|
350
372
|
},
|
|
351
|
-
"/": (e, t) =>
|
|
352
|
-
min: (...e) => Math.min(...e.map(
|
|
353
|
-
max: (...e) => Math.max(...e.map(
|
|
354
|
-
merge: (...e) => e.reduce((e, t) =>
|
|
373
|
+
"/": (e, t) => G(e) / G(t),
|
|
374
|
+
min: (...e) => Math.min(...e.map(G)),
|
|
375
|
+
max: (...e) => Math.max(...e.map(G)),
|
|
376
|
+
merge: (...e) => e.reduce((e, t) => H(t) ? e.concat(t) : e.concat([t]), []),
|
|
355
377
|
var(e, t) {
|
|
356
378
|
let n = arguments.length > 1 ? t : null;
|
|
357
379
|
if (e === "" || e === "." || e == null) return this;
|
|
358
380
|
if (typeof e == "number" && Array.isArray(this)) return e >= 0 && e < this.length ? this[e] : n;
|
|
359
|
-
let r =
|
|
381
|
+
let r = K(e);
|
|
360
382
|
if (r === "" || r === ".") return this;
|
|
361
383
|
let i = r.split("."), a = this;
|
|
362
384
|
for (let e of i) {
|
|
@@ -369,116 +391,116 @@ var we = {
|
|
|
369
391
|
return a === void 0 ? n : a;
|
|
370
392
|
},
|
|
371
393
|
async missing(...e) {
|
|
372
|
-
let t =
|
|
394
|
+
let t = H(e[0]) ? e[0] : e, n = [];
|
|
373
395
|
for (let e of t) {
|
|
374
|
-
let t = await
|
|
396
|
+
let t = await q({ var: e }, this);
|
|
375
397
|
(t === null || t === "") && n.push(`${e}`);
|
|
376
398
|
}
|
|
377
399
|
return n;
|
|
378
400
|
},
|
|
379
401
|
async missing_some(e, t) {
|
|
380
|
-
let n = await
|
|
381
|
-
if (!
|
|
382
|
-
let r = n.filter(
|
|
383
|
-
return t.filter(
|
|
402
|
+
let n = await q({ missing: t }, this);
|
|
403
|
+
if (!H(n) || !H(t)) return [];
|
|
404
|
+
let r = n.filter(V);
|
|
405
|
+
return t.filter(V).length - r.length >= G(e) ? [] : r;
|
|
384
406
|
},
|
|
385
407
|
invoke(...e) {
|
|
386
408
|
let [t, ...n] = e;
|
|
387
409
|
return typeof t == "function" ? Reflect.apply(t, null, n) : null;
|
|
388
410
|
},
|
|
389
|
-
startsWith: (e, t) =>
|
|
390
|
-
endsWith: (e, t) =>
|
|
411
|
+
startsWith: (e, t) => V(e) && V(t) && e.startsWith(t),
|
|
412
|
+
endsWith: (e, t) => V(e) && V(t) && e.endsWith(t),
|
|
391
413
|
regexp_matches(e, t) {
|
|
392
414
|
let n = e, r = "";
|
|
393
|
-
if (
|
|
415
|
+
if (H(e)) {
|
|
394
416
|
let [t, i] = e;
|
|
395
417
|
n = t, r = i;
|
|
396
418
|
}
|
|
397
|
-
return !
|
|
419
|
+
return !V(n) || !V(r) ? !1 : new RegExp(n, r).test(K(t));
|
|
398
420
|
},
|
|
399
421
|
throw(e) {
|
|
400
|
-
throw Error(
|
|
422
|
+
throw Error(K(e));
|
|
401
423
|
}
|
|
402
424
|
};
|
|
403
|
-
async function
|
|
425
|
+
async function q(e, t) {
|
|
404
426
|
if (!e) return e;
|
|
405
|
-
if (
|
|
406
|
-
if (
|
|
407
|
-
if (!
|
|
408
|
-
let n =
|
|
409
|
-
switch (
|
|
427
|
+
if (U(e)) return q(await e, t);
|
|
428
|
+
if (H(e)) return Promise.all(e.map((e) => q(e, t)));
|
|
429
|
+
if (!W(e)) return e;
|
|
430
|
+
let n = Ee(e), r = n ? e[n] ?? [] : [];
|
|
431
|
+
switch (H(r) || (r = [r]), n) {
|
|
410
432
|
case "if":
|
|
411
433
|
case "?:":
|
|
412
|
-
for (let e = 0; e < r.length - 1; e += 2) if (await
|
|
413
|
-
return r.length % 2 == 1 ?
|
|
434
|
+
for (let e = 0; e < r.length - 1; e += 2) if (await J(await q(r[e], t))) return q(r[e + 1], t);
|
|
435
|
+
return r.length % 2 == 1 ? q(r[r.length - 1], t) : null;
|
|
414
436
|
case "and": {
|
|
415
437
|
let e = null;
|
|
416
|
-
for (let n of r) if (e = await
|
|
438
|
+
for (let n of r) if (e = await q(n, t), !await J(e)) return e;
|
|
417
439
|
return e;
|
|
418
440
|
}
|
|
419
441
|
case "or": {
|
|
420
442
|
let e = null;
|
|
421
|
-
for (let n of r) if (e = await
|
|
443
|
+
for (let n of r) if (e = await q(n, t), await J(e)) return e;
|
|
422
444
|
return e;
|
|
423
445
|
}
|
|
424
446
|
case "map": {
|
|
425
|
-
let e = await
|
|
426
|
-
return
|
|
447
|
+
let e = await q(r[0], t);
|
|
448
|
+
return H(e) ? await Promise.all(e.map((e) => q(r[1], e))) : [];
|
|
427
449
|
}
|
|
428
450
|
case "filter": {
|
|
429
|
-
let e = await
|
|
430
|
-
return
|
|
451
|
+
let e = await q(r[0], t);
|
|
452
|
+
return H(e) ? (await Promise.all(e.map(async (e) => ({
|
|
431
453
|
item: e,
|
|
432
|
-
shouldInclude: await
|
|
454
|
+
shouldInclude: await J(await q(r[1], e))
|
|
433
455
|
})))).filter(({ shouldInclude: e }) => e).map(({ item: e }) => e) : [];
|
|
434
456
|
}
|
|
435
457
|
case "reduce": {
|
|
436
|
-
let e = await
|
|
437
|
-
if (!
|
|
438
|
-
let n = r[1], i = r.length > 2 ? await
|
|
439
|
-
for (let t of e) i = await
|
|
458
|
+
let e = await q(r[0], t);
|
|
459
|
+
if (!H(e)) return r.length > 2 ? await q(r[2], t) : null;
|
|
460
|
+
let n = r[1], i = r.length > 2 ? await q(r[2], t) : null;
|
|
461
|
+
for (let t of e) i = await q(n, {
|
|
440
462
|
current: t,
|
|
441
463
|
accumulator: i
|
|
442
464
|
});
|
|
443
465
|
return i;
|
|
444
466
|
}
|
|
445
467
|
case "all": {
|
|
446
|
-
let e = await
|
|
447
|
-
if (!
|
|
448
|
-
for (let t of e) if (!await
|
|
468
|
+
let e = await q(r[0], t);
|
|
469
|
+
if (!H(e) || e.length === 0) return !1;
|
|
470
|
+
for (let t of e) if (!await J(await q(r[1], t))) return !1;
|
|
449
471
|
return !0;
|
|
450
472
|
}
|
|
451
473
|
case "some": {
|
|
452
|
-
let e = await
|
|
453
|
-
if (!
|
|
454
|
-
for (let t of e) if (await
|
|
474
|
+
let e = await q(r[0], t);
|
|
475
|
+
if (!H(e)) return !1;
|
|
476
|
+
for (let t of e) if (await J(await q(r[1], t))) return !0;
|
|
455
477
|
return !1;
|
|
456
478
|
}
|
|
457
479
|
case "none": {
|
|
458
|
-
let e = await
|
|
459
|
-
if (!
|
|
460
|
-
for (let t of e) if (await
|
|
480
|
+
let e = await q(r[0], t);
|
|
481
|
+
if (!H(e)) return !0;
|
|
482
|
+
for (let t of e) if (await J(await q(r[1], t))) return !1;
|
|
461
483
|
return !0;
|
|
462
484
|
}
|
|
463
485
|
case "catch": try {
|
|
464
|
-
return await
|
|
486
|
+
return await q(r[0], t);
|
|
465
487
|
} catch (e) {
|
|
466
|
-
return
|
|
488
|
+
return W(e) ? await q(e, t) : r[1] ? await q(r[1], e) : e instanceof Error ? e.message : e;
|
|
467
489
|
}
|
|
468
490
|
}
|
|
469
|
-
let i = await Promise.all(r.map((e) =>
|
|
491
|
+
let i = await Promise.all(r.map((e) => q(e, t))), a = n ? Te[n] : void 0;
|
|
470
492
|
if (!a) throw Error(`Unrecognized operation ${n}`);
|
|
471
493
|
return a.apply(t, i);
|
|
472
494
|
}
|
|
473
|
-
async function
|
|
474
|
-
return
|
|
495
|
+
async function J(e) {
|
|
496
|
+
return U(e) ? J(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
|
|
475
497
|
}
|
|
476
|
-
function
|
|
498
|
+
function Ee(e) {
|
|
477
499
|
return Object.keys(e)[0];
|
|
478
500
|
}
|
|
479
501
|
//#endregion
|
|
480
502
|
//#region src/lifecycle/rules-logic.ts
|
|
481
|
-
var
|
|
503
|
+
var De = L(({ client: e }) => k({
|
|
482
504
|
source: {
|
|
483
505
|
stateSnapshot: e.stateSnapshotStore,
|
|
484
506
|
predicates: e.predicates.listStore,
|
|
@@ -497,7 +519,7 @@ var Ee = I(({ client: e }) => O({
|
|
|
497
519
|
let { bucket: e } = await t.getBucket();
|
|
498
520
|
return e;
|
|
499
521
|
}, e), {});
|
|
500
|
-
return await
|
|
522
|
+
return await q(a, {
|
|
501
523
|
responses: i,
|
|
502
524
|
location: typeof e.location == "object" ? {
|
|
503
525
|
hash: e.location.hash,
|
|
@@ -517,137 +539,137 @@ var Ee = I(({ client: e }) => O({
|
|
|
517
539
|
});
|
|
518
540
|
}
|
|
519
541
|
}));
|
|
520
|
-
function
|
|
521
|
-
return
|
|
542
|
+
function Oe(e) {
|
|
543
|
+
return R(De, e);
|
|
522
544
|
}
|
|
523
545
|
//#endregion
|
|
524
546
|
//#region src/ping.ts
|
|
525
|
-
var
|
|
547
|
+
var ke = 6e3, Ae = O("last_ping", "global"), je = async (e) => {
|
|
526
548
|
try {
|
|
527
|
-
let t = Date.now(), n =
|
|
528
|
-
if (n.isSet() && (r = n.json() ?? 0), r && t - r <
|
|
549
|
+
let t = Date.now(), n = E.get(Ae), r = 0;
|
|
550
|
+
if (n.isSet() && (r = n.json() ?? 0), r && t - r < ke) return !0;
|
|
529
551
|
let i = {
|
|
530
552
|
projectId: e.projectId,
|
|
531
553
|
path: window.location.pathname
|
|
532
554
|
}, a = {}, o = document.getElementById("picked_script")?.dataset.verceltoken;
|
|
533
555
|
o && (a["x-vercel-protection-bypass"] = o);
|
|
534
|
-
let s = (await
|
|
556
|
+
let s = (await te(e.apiUrl, "ping", i, a)).ok;
|
|
535
557
|
return s && n.set(t), s;
|
|
536
558
|
} catch {
|
|
537
559
|
return !1;
|
|
538
560
|
}
|
|
539
|
-
},
|
|
540
|
-
let t =
|
|
561
|
+
}, Y = M("lifecycle"), Me = L(({ client: e }) => {
|
|
562
|
+
let t = Y.store(!1), r = F(void 0, {
|
|
541
563
|
skipVoid: !1,
|
|
542
|
-
domain:
|
|
543
|
-
}), i =
|
|
564
|
+
domain: Y
|
|
565
|
+
}), i = F(void 0, {
|
|
544
566
|
skipVoid: !1,
|
|
545
|
-
domain:
|
|
546
|
-
}), a =
|
|
567
|
+
domain: Y
|
|
568
|
+
}), a = Y.store("idle"), o = Y.store([]), s = F(void 0, {
|
|
547
569
|
skipVoid: !1,
|
|
548
|
-
domain:
|
|
549
|
-
}), c =
|
|
570
|
+
domain: Y
|
|
571
|
+
}), c = F(void 0, {
|
|
550
572
|
skipVoid: !1,
|
|
551
|
-
domain:
|
|
552
|
-
}), l =
|
|
573
|
+
domain: Y
|
|
574
|
+
}), l = P(), u = P(), d = P(), p = P(), m = P(), h = P();
|
|
553
575
|
o.on(p, (e, t) => [...e, t]), s.on(m, (e, t) => t), c.on(h, (e, t) => t), t.on(u, () => !0);
|
|
554
|
-
let g =
|
|
555
|
-
|
|
556
|
-
}), _ =
|
|
576
|
+
let g = N(() => {
|
|
577
|
+
je(e);
|
|
578
|
+
}), _ = N(async () => {
|
|
557
579
|
await ee();
|
|
558
|
-
}), v =
|
|
559
|
-
await
|
|
560
|
-
}), y =
|
|
580
|
+
}), v = N(async () => {
|
|
581
|
+
await ue(e);
|
|
582
|
+
}), y = k({ effect: v }), b = k({
|
|
561
583
|
source: o,
|
|
562
584
|
effect: async (e) => {
|
|
563
585
|
for (let t of e) await t();
|
|
564
586
|
}
|
|
565
|
-
}), x =
|
|
587
|
+
}), x = k({
|
|
566
588
|
source: s,
|
|
567
589
|
effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
|
|
568
|
-
}), S =
|
|
590
|
+
}), S = k({
|
|
569
591
|
source: c,
|
|
570
592
|
effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
|
|
571
|
-
}), C =
|
|
593
|
+
}), C = I({
|
|
572
594
|
clock: l,
|
|
573
595
|
filter: () => f()
|
|
574
596
|
});
|
|
575
|
-
|
|
597
|
+
I({
|
|
576
598
|
clock: C,
|
|
577
599
|
fn: () => "starting",
|
|
578
600
|
target: a
|
|
579
|
-
}),
|
|
601
|
+
}), I({
|
|
580
602
|
clock: C,
|
|
581
603
|
target: g
|
|
582
|
-
}),
|
|
604
|
+
}), I({
|
|
583
605
|
clock: C,
|
|
584
606
|
target: b
|
|
585
|
-
}),
|
|
607
|
+
}), I({
|
|
586
608
|
clock: C,
|
|
587
609
|
target: _
|
|
588
|
-
}),
|
|
610
|
+
}), I({
|
|
589
611
|
clock: b.done,
|
|
590
612
|
target: x
|
|
591
|
-
}),
|
|
613
|
+
}), I({
|
|
592
614
|
clock: x.doneData,
|
|
593
615
|
target: r
|
|
594
|
-
}),
|
|
616
|
+
}), I({
|
|
595
617
|
clock: S.doneData,
|
|
596
618
|
target: i
|
|
597
|
-
}),
|
|
619
|
+
}), I({
|
|
598
620
|
clock: x.doneData,
|
|
599
621
|
filter: (e) => e,
|
|
600
622
|
target: S
|
|
601
|
-
}),
|
|
623
|
+
}), I({
|
|
602
624
|
clock: S.doneData,
|
|
603
625
|
target: e.session.setIsUser
|
|
604
|
-
}),
|
|
626
|
+
}), I({
|
|
605
627
|
clock: S.doneData,
|
|
606
628
|
fn: (e) => ({
|
|
607
629
|
type: "user_decide",
|
|
608
630
|
value: e
|
|
609
631
|
}),
|
|
610
632
|
target: e.eventBus
|
|
611
|
-
}),
|
|
633
|
+
}), I({
|
|
612
634
|
clock: x.doneData,
|
|
613
635
|
filter: (e) => !e,
|
|
614
636
|
fn: () => void 0,
|
|
615
637
|
target: d
|
|
616
|
-
}),
|
|
638
|
+
}), I({
|
|
617
639
|
clock: S.doneData,
|
|
618
640
|
fn: () => void 0,
|
|
619
641
|
target: d
|
|
620
|
-
}),
|
|
642
|
+
}), I({
|
|
621
643
|
clock: d,
|
|
622
644
|
fn: () => ({ type: "initialize" }),
|
|
623
645
|
target: e.eventBus
|
|
624
646
|
});
|
|
625
|
-
let w =
|
|
626
|
-
return
|
|
647
|
+
let w = F(!1).on(_.done, () => !0), T = F(!1).on(d, () => !0), E = F(!1).on(y.done, () => !0), D = A(r, i, (e, t) => e === !0 && t === !0);
|
|
648
|
+
return I({
|
|
627
649
|
clock: d,
|
|
628
650
|
source: D,
|
|
629
651
|
filter: (e) => e,
|
|
630
652
|
fn: () => void 0,
|
|
631
653
|
target: v
|
|
632
|
-
}),
|
|
633
|
-
clock:
|
|
654
|
+
}), I({
|
|
655
|
+
clock: A(w, T, D, (e, t, n) => e && t && n),
|
|
634
656
|
filter: (e) => e,
|
|
635
657
|
fn: () => void 0,
|
|
636
658
|
target: y
|
|
637
|
-
}),
|
|
638
|
-
clock:
|
|
659
|
+
}), I({
|
|
660
|
+
clock: A(w, T, D, E, (e, t, n, r) => e && t && (!n || r)),
|
|
639
661
|
filter: (e) => e,
|
|
640
662
|
fn: () => void 0,
|
|
641
663
|
target: u
|
|
642
|
-
}),
|
|
664
|
+
}), I({
|
|
643
665
|
clock: u,
|
|
644
666
|
fn: () => "ready",
|
|
645
667
|
target: a
|
|
646
|
-
}),
|
|
668
|
+
}), I({
|
|
647
669
|
clock: u,
|
|
648
670
|
fn: () => ({ type: "ready" }),
|
|
649
671
|
target: e.eventBus
|
|
650
|
-
}),
|
|
672
|
+
}), I({
|
|
651
673
|
clock: u,
|
|
652
674
|
source: e.session.store,
|
|
653
675
|
fn: ({ id: e, isUser: t, identifiers: n }) => ({
|
|
@@ -657,7 +679,7 @@ var Oe = 6e3, ke = E("last_ping", "global"), Ae = async (e) => {
|
|
|
657
679
|
identifiers: n
|
|
658
680
|
}),
|
|
659
681
|
target: e.eventBus
|
|
660
|
-
}),
|
|
682
|
+
}), I({
|
|
661
683
|
clock: [
|
|
662
684
|
b.fail,
|
|
663
685
|
x.fail,
|
|
@@ -679,13 +701,13 @@ var Oe = 6e3, ke = E("last_ping", "global"), Ae = async (e) => {
|
|
|
679
701
|
setCondition: h
|
|
680
702
|
};
|
|
681
703
|
});
|
|
682
|
-
function
|
|
683
|
-
return
|
|
704
|
+
function Ne(e) {
|
|
705
|
+
return R(Me, e);
|
|
684
706
|
}
|
|
685
707
|
//#endregion
|
|
686
708
|
//#region src/entities/predicate/predicate.ts
|
|
687
|
-
var
|
|
688
|
-
let t =
|
|
709
|
+
var Pe = M("predicate"), Fe = L(({ client: e }) => {
|
|
710
|
+
let t = Pe.store({}), n = j(t, { register(e, t) {
|
|
689
711
|
return {
|
|
690
712
|
...e,
|
|
691
713
|
[t.name]: {
|
|
@@ -693,13 +715,13 @@ var Ne = j("predicate"), Pe = I(({ client: e }) => {
|
|
|
693
715
|
predicate: t.predicate
|
|
694
716
|
}
|
|
695
717
|
};
|
|
696
|
-
} }), i =
|
|
697
|
-
|
|
718
|
+
} }), i = P();
|
|
719
|
+
I({
|
|
698
720
|
clock: i,
|
|
699
721
|
source: t,
|
|
700
722
|
filter: (e, { name: t }) => e[t] !== void 0,
|
|
701
723
|
fn: (e, { name: t }) => `Predicate '${t}' already registered. Registering again will override the previous registration.`
|
|
702
|
-
}).watch((e) => /* @__PURE__ */ r("warn", e)),
|
|
724
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), I({
|
|
703
725
|
clock: i,
|
|
704
726
|
fn: ({ name: e, predicate: t }) => Object.freeze({
|
|
705
727
|
name: e,
|
|
@@ -712,7 +734,7 @@ var Ne = j("predicate"), Pe = I(({ client: e }) => {
|
|
|
712
734
|
return t.map((t) => t[e]?.predicate, { skipVoid: !1 });
|
|
713
735
|
}
|
|
714
736
|
function s(t) {
|
|
715
|
-
let n =
|
|
737
|
+
let n = F(() => void 0, { skipVoid: !1 }), r = k({
|
|
716
738
|
source: {
|
|
717
739
|
predicate: o(t),
|
|
718
740
|
snapshot: e.stateSnapshotStore
|
|
@@ -724,13 +746,13 @@ var Ne = j("predicate"), Pe = I(({ client: e }) => {
|
|
|
724
746
|
});
|
|
725
747
|
}
|
|
726
748
|
});
|
|
727
|
-
return
|
|
749
|
+
return I({
|
|
728
750
|
source: {
|
|
729
751
|
responses: e.responses.listStore,
|
|
730
752
|
fields: e.fields.listStore
|
|
731
753
|
},
|
|
732
754
|
target: r
|
|
733
|
-
}),
|
|
755
|
+
}), I({
|
|
734
756
|
clock: r.doneData,
|
|
735
757
|
filter: (e) => e !== void 0,
|
|
736
758
|
target: n
|
|
@@ -743,27 +765,27 @@ var Ne = j("predicate"), Pe = I(({ client: e }) => {
|
|
|
743
765
|
getEvokablePredicate: s
|
|
744
766
|
};
|
|
745
767
|
});
|
|
746
|
-
function
|
|
747
|
-
return
|
|
768
|
+
function Ie(e) {
|
|
769
|
+
return R(Fe, e);
|
|
748
770
|
}
|
|
749
|
-
var
|
|
771
|
+
var Le = (e, t, n) => {
|
|
750
772
|
n.register({
|
|
751
773
|
name: e,
|
|
752
774
|
predicate: t
|
|
753
775
|
});
|
|
754
|
-
},
|
|
755
|
-
let t =
|
|
776
|
+
}, Re = M("feature"), ze = L(({ client: e }) => {
|
|
777
|
+
let t = Re.store({}), n = Re.store([]), i = j(t, { register(e, t) {
|
|
756
778
|
return {
|
|
757
779
|
...e,
|
|
758
780
|
[t.id]: t.feature
|
|
759
781
|
};
|
|
760
|
-
} }), a =
|
|
761
|
-
|
|
782
|
+
} }), a = P();
|
|
783
|
+
I({
|
|
762
784
|
clock: a,
|
|
763
785
|
source: t,
|
|
764
786
|
filter: (e, { id: t }) => e[t] !== void 0,
|
|
765
787
|
fn: (e, { id: t }) => `Feature '${t}' already registered. Registering again will override the previous registration.`
|
|
766
|
-
}).watch((e) => /* @__PURE__ */ r("warn", e)),
|
|
788
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), I({
|
|
767
789
|
clock: a,
|
|
768
790
|
fn: ({ id: e, feature: t }) => Object.freeze({
|
|
769
791
|
id: e,
|
|
@@ -777,19 +799,19 @@ var Ie = (e, t, n) => {
|
|
|
777
799
|
}),
|
|
778
800
|
target: i.register
|
|
779
801
|
});
|
|
780
|
-
let o =
|
|
781
|
-
let r =
|
|
802
|
+
let o = N(async ({ id: e, key: t, storage: n = "local" }) => {
|
|
803
|
+
let r = O(`feature:${e}:${t}`, "global"), i = (n === "session" ? D : E).get(r).boolean();
|
|
782
804
|
return i === null ? null : {
|
|
783
805
|
id: e,
|
|
784
806
|
key: t,
|
|
785
807
|
bucket: i,
|
|
786
808
|
storage: n
|
|
787
809
|
};
|
|
788
|
-
}), s =
|
|
810
|
+
}), s = N((e) => {
|
|
789
811
|
if (!e) return null;
|
|
790
|
-
let t =
|
|
791
|
-
(e.storage === "session" ?
|
|
792
|
-
}), c = /* @__PURE__ */ new Map(), l =
|
|
812
|
+
let t = O(`feature:${e.id}:${e.key}`, "global");
|
|
813
|
+
(e.storage === "session" ? D : E).set(t, e.bucket);
|
|
814
|
+
}), c = /* @__PURE__ */ new Map(), l = k({
|
|
793
815
|
source: {
|
|
794
816
|
allFeaturesStore: t,
|
|
795
817
|
resolvedFeaturesStore: n
|
|
@@ -820,7 +842,7 @@ var Ie = (e, t, n) => {
|
|
|
820
842
|
};
|
|
821
843
|
}
|
|
822
844
|
});
|
|
823
|
-
|
|
845
|
+
I({
|
|
824
846
|
clock: i.register,
|
|
825
847
|
fn: (e) => {
|
|
826
848
|
let { id: t, feature: n } = e;
|
|
@@ -831,7 +853,7 @@ var Ie = (e, t, n) => {
|
|
|
831
853
|
};
|
|
832
854
|
},
|
|
833
855
|
target: o
|
|
834
|
-
}),
|
|
856
|
+
}), I({
|
|
835
857
|
source: t,
|
|
836
858
|
clock: l.doneData,
|
|
837
859
|
fn: (e, t) => {
|
|
@@ -845,7 +867,7 @@ var Ie = (e, t, n) => {
|
|
|
845
867
|
},
|
|
846
868
|
target: s
|
|
847
869
|
});
|
|
848
|
-
let u =
|
|
870
|
+
let u = A({
|
|
849
871
|
allFeaturesStore: t,
|
|
850
872
|
resolvedFeaturesStore: n
|
|
851
873
|
}).map(({ allFeaturesStore: e, resolvedFeaturesStore: t }) => Object.values(e).map((e) => {
|
|
@@ -867,7 +889,7 @@ var Ie = (e, t, n) => {
|
|
|
867
889
|
isResolved: !1
|
|
868
890
|
};
|
|
869
891
|
}));
|
|
870
|
-
|
|
892
|
+
I({
|
|
871
893
|
clock: l.doneData,
|
|
872
894
|
source: { resolvedFeatures: n },
|
|
873
895
|
filter: ({ resolvedFeatures: e }, { id: t, key: n }) => !e.some((e) => e.id === t && e.key === n),
|
|
@@ -876,7 +898,7 @@ var Ie = (e, t, n) => {
|
|
|
876
898
|
type: "feature_decide",
|
|
877
899
|
feature: e
|
|
878
900
|
}))
|
|
879
|
-
}),
|
|
901
|
+
}), I({
|
|
880
902
|
clock: [o.doneData, l.doneData],
|
|
881
903
|
source: n,
|
|
882
904
|
fn: (e, t) => !t || e.some((e) => e.id === t.id && e.key === t.key) ? e : [...e, t],
|
|
@@ -889,17 +911,17 @@ var Ie = (e, t, n) => {
|
|
|
889
911
|
return t.map((t) => t[e], { skipVoid: !1 });
|
|
890
912
|
}
|
|
891
913
|
function p(e) {
|
|
892
|
-
let t =
|
|
914
|
+
let t = F(async () => void 0, { skipVoid: !1 }), r = k({
|
|
893
915
|
source: d(e),
|
|
894
916
|
effect: async (e) => {
|
|
895
917
|
if (e) return async () => (await e.getBucket()).bucket;
|
|
896
918
|
}
|
|
897
919
|
});
|
|
898
|
-
return
|
|
920
|
+
return I({
|
|
899
921
|
source: n,
|
|
900
922
|
filter: (t) => t.some((t) => t.id === e),
|
|
901
923
|
target: r
|
|
902
|
-
}),
|
|
924
|
+
}), I({
|
|
903
925
|
clock: r.doneData,
|
|
904
926
|
filter: (e) => e !== void 0,
|
|
905
927
|
target: t
|
|
@@ -913,69 +935,107 @@ var Ie = (e, t, n) => {
|
|
|
913
935
|
getEvokableFeature: p
|
|
914
936
|
};
|
|
915
937
|
});
|
|
916
|
-
function
|
|
917
|
-
return
|
|
938
|
+
function Be(e) {
|
|
939
|
+
return R(ze, e);
|
|
918
940
|
}
|
|
919
|
-
var
|
|
941
|
+
var Ve = (e, t, n) => {
|
|
920
942
|
n.register({
|
|
921
943
|
id: e,
|
|
922
944
|
feature: t
|
|
923
945
|
});
|
|
924
|
-
},
|
|
925
|
-
function
|
|
946
|
+
}, X = M("history");
|
|
947
|
+
function He(e, t, n) {
|
|
926
948
|
return {
|
|
927
|
-
id:
|
|
928
|
-
node:
|
|
949
|
+
id: re("history-entry"),
|
|
950
|
+
node: n,
|
|
929
951
|
at: Date.now(),
|
|
930
|
-
|
|
952
|
+
instanceId: e,
|
|
953
|
+
experienceId: t
|
|
931
954
|
};
|
|
932
955
|
}
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
956
|
+
function Ue(e) {
|
|
957
|
+
for (let t = e.length - 1; t >= 0; t--) {
|
|
958
|
+
let n = e[t];
|
|
959
|
+
if (n && y(n.node)) return e.slice(0, t + 1);
|
|
960
|
+
}
|
|
961
|
+
return [];
|
|
962
|
+
}
|
|
963
|
+
var We = L(() => {
|
|
964
|
+
let e = X.store([]), t = X.event(), n = X.event(), r = X.event(), i = X.event(), a = X.event(), o = X.event();
|
|
965
|
+
e.on(t, (e, t) => [...e, He(t.instanceId, t.experienceId, t.node)]), e.on(n, (e, t) => {
|
|
966
|
+
let n = He(t.instanceId, t.experienceId, t.node), r = -1;
|
|
967
|
+
for (let n = e.length - 1; n >= 0; n--) if (e[n]?.instanceId === t.instanceId) {
|
|
968
|
+
r = n;
|
|
969
|
+
break;
|
|
970
|
+
}
|
|
971
|
+
return r === -1 ? [...e, n] : [
|
|
972
|
+
...e.slice(0, r),
|
|
973
|
+
n,
|
|
974
|
+
...e.slice(r + 1)
|
|
975
|
+
];
|
|
976
|
+
}), e.on(r, (e, { instanceId: t }) => {
|
|
977
|
+
let n = 0, r = -1;
|
|
978
|
+
for (let i = e.length - 1; i >= 0; i--) {
|
|
979
|
+
let a = e[i];
|
|
980
|
+
if (!(a?.instanceId !== t || !y(a.node)) && (n += 1, n === 2)) {
|
|
981
|
+
r = i;
|
|
946
982
|
break;
|
|
947
983
|
}
|
|
948
984
|
}
|
|
985
|
+
return r === -1 ? e : e.filter((e, n) => e.instanceId !== t || n <= r);
|
|
986
|
+
}), e.on(i, (e, { snapshots: t }) => {
|
|
987
|
+
let n = new Set(e.map((e) => e.experienceId)), r = [];
|
|
988
|
+
for (let e of Object.keys(t)) {
|
|
989
|
+
if (n.has(e)) continue;
|
|
990
|
+
let i = t[e];
|
|
991
|
+
i && r.push(...i);
|
|
992
|
+
}
|
|
993
|
+
return r.length === 0 ? e : [...e, ...r];
|
|
994
|
+
}), e.on(o, (e, t) => [...e, ...t]);
|
|
995
|
+
let s = e.map((e) => {
|
|
996
|
+
let t = /* @__PURE__ */ new Map();
|
|
997
|
+
for (let n of e) t.set(n.experienceId, n.instanceId);
|
|
998
|
+
let n = {};
|
|
999
|
+
for (let r of e) {
|
|
1000
|
+
if (t.get(r.experienceId) !== r.instanceId) continue;
|
|
1001
|
+
let e = n[r.experienceId] ?? [];
|
|
1002
|
+
e.push(r), n[r.experienceId] = e;
|
|
1003
|
+
}
|
|
949
1004
|
return n;
|
|
950
|
-
}
|
|
951
|
-
return
|
|
952
|
-
|
|
953
|
-
|
|
1005
|
+
});
|
|
1006
|
+
return I({
|
|
1007
|
+
clock: a,
|
|
1008
|
+
source: s,
|
|
1009
|
+
fn: (e, { instanceId: t, experienceId: n }) => Ue(e[n] ?? []).map((e) => ({
|
|
954
1010
|
...e,
|
|
955
|
-
|
|
956
|
-
|
|
1011
|
+
id: re("history-entry"),
|
|
1012
|
+
instanceId: t
|
|
1013
|
+
})),
|
|
1014
|
+
target: o
|
|
957
1015
|
}), {
|
|
958
1016
|
push: t,
|
|
959
1017
|
replace: n,
|
|
960
1018
|
back: r,
|
|
961
|
-
|
|
962
|
-
|
|
1019
|
+
restoreSnapshots: i,
|
|
1020
|
+
seedInstanceFromSnapshot: a,
|
|
1021
|
+
entriesStore: e,
|
|
1022
|
+
snapshotStore: s
|
|
963
1023
|
};
|
|
964
1024
|
});
|
|
965
|
-
function
|
|
966
|
-
return
|
|
1025
|
+
function Ge() {
|
|
1026
|
+
return R(We);
|
|
967
1027
|
}
|
|
968
1028
|
//#endregion
|
|
969
1029
|
//#region src/utils/events.ts
|
|
970
|
-
var
|
|
971
|
-
let t =
|
|
1030
|
+
var Ke = 0, qe = (e) => {
|
|
1031
|
+
let t = F([]);
|
|
972
1032
|
return t.on(e, (e, t) => [...e, {
|
|
973
|
-
id:
|
|
1033
|
+
id: Ke++,
|
|
974
1034
|
at: /* @__PURE__ */ new Date(),
|
|
975
1035
|
payload: t
|
|
976
1036
|
}]), t;
|
|
977
|
-
},
|
|
978
|
-
let e =
|
|
1037
|
+
}, Je = M("field"), Ye = L(() => {
|
|
1038
|
+
let e = Je.store({}), t = j(e, {
|
|
979
1039
|
register(e, t) {
|
|
980
1040
|
return {
|
|
981
1041
|
...e,
|
|
@@ -1023,13 +1083,13 @@ var Ue = 0, We = (e) => {
|
|
|
1023
1083
|
getByName: c
|
|
1024
1084
|
};
|
|
1025
1085
|
});
|
|
1026
|
-
function
|
|
1027
|
-
return
|
|
1086
|
+
function Xe() {
|
|
1087
|
+
return R(Ye);
|
|
1028
1088
|
}
|
|
1029
1089
|
//#endregion
|
|
1030
1090
|
//#region src/entities/step/step.ts
|
|
1031
|
-
var
|
|
1032
|
-
let e =
|
|
1091
|
+
var Ze = M("step"), Qe = L(() => {
|
|
1092
|
+
let e = Ze.store({}), t = j(e, { register(e, t) {
|
|
1033
1093
|
return {
|
|
1034
1094
|
...e,
|
|
1035
1095
|
[t.step.id]: t.step
|
|
@@ -1053,16 +1113,16 @@ var Je = j("step"), Ye = I(() => {
|
|
|
1053
1113
|
indexStore: e
|
|
1054
1114
|
};
|
|
1055
1115
|
});
|
|
1056
|
-
function
|
|
1057
|
-
return
|
|
1116
|
+
function $e() {
|
|
1117
|
+
return R(Qe);
|
|
1058
1118
|
}
|
|
1059
|
-
function
|
|
1119
|
+
function et(e, t) {
|
|
1060
1120
|
t.register(e);
|
|
1061
1121
|
}
|
|
1062
1122
|
//#endregion
|
|
1063
1123
|
//#region src/entities/action/action.ts
|
|
1064
|
-
var
|
|
1065
|
-
let t =
|
|
1124
|
+
var tt = M("action"), nt = L(({ client: e }) => {
|
|
1125
|
+
let t = tt.store({}), n = j(t, { register(e, t) {
|
|
1066
1126
|
return {
|
|
1067
1127
|
...e,
|
|
1068
1128
|
[t.key]: {
|
|
@@ -1070,13 +1130,13 @@ var Qe = j("action"), $e = I(({ client: e }) => {
|
|
|
1070
1130
|
action: t.action
|
|
1071
1131
|
}
|
|
1072
1132
|
};
|
|
1073
|
-
} }), i =
|
|
1074
|
-
|
|
1133
|
+
} }), i = P();
|
|
1134
|
+
I({
|
|
1075
1135
|
clock: i,
|
|
1076
1136
|
source: t,
|
|
1077
1137
|
filter: (e, { key: t }) => e[t] !== void 0,
|
|
1078
1138
|
fn: (e, { key: t }) => `Action '${t}' already registered. Registering again will override the previous registration.`
|
|
1079
|
-
}).watch((e) => /* @__PURE__ */ r("warn", e)),
|
|
1139
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), I({
|
|
1080
1140
|
clock: i,
|
|
1081
1141
|
fn: ({ key: e, action: t }) => Object.freeze({
|
|
1082
1142
|
key: e,
|
|
@@ -1089,7 +1149,7 @@ var Qe = j("action"), $e = I(({ client: e }) => {
|
|
|
1089
1149
|
return t.map((t) => t[e]?.action, { skipVoid: !1 });
|
|
1090
1150
|
}
|
|
1091
1151
|
function s(t, n) {
|
|
1092
|
-
let r =
|
|
1152
|
+
let r = F(() => void 0, { skipVoid: !1 }), i = n ? { experience: n.experience } : null, a = k({
|
|
1093
1153
|
source: {
|
|
1094
1154
|
action: o(t),
|
|
1095
1155
|
snapshot: e.stateSnapshotStore
|
|
@@ -1101,13 +1161,13 @@ var Qe = j("action"), $e = I(({ client: e }) => {
|
|
|
1101
1161
|
}, i);
|
|
1102
1162
|
}
|
|
1103
1163
|
});
|
|
1104
|
-
return
|
|
1164
|
+
return I({
|
|
1105
1165
|
source: {
|
|
1106
1166
|
responses: e.responses.listStore,
|
|
1107
1167
|
fields: e.fields.listStore
|
|
1108
1168
|
},
|
|
1109
1169
|
target: a
|
|
1110
|
-
}),
|
|
1170
|
+
}), I({
|
|
1111
1171
|
clock: a.doneData,
|
|
1112
1172
|
filter: (e) => e !== void 0,
|
|
1113
1173
|
target: r
|
|
@@ -1120,10 +1180,10 @@ var Qe = j("action"), $e = I(({ client: e }) => {
|
|
|
1120
1180
|
getEvokableAction: s
|
|
1121
1181
|
};
|
|
1122
1182
|
});
|
|
1123
|
-
function
|
|
1124
|
-
return
|
|
1183
|
+
function rt(e) {
|
|
1184
|
+
return R(nt, e);
|
|
1125
1185
|
}
|
|
1126
|
-
var
|
|
1186
|
+
var it = (e, t, n) => {
|
|
1127
1187
|
n.register({
|
|
1128
1188
|
key: e,
|
|
1129
1189
|
action: t
|
|
@@ -1131,7 +1191,7 @@ var tt = (e, t, n) => {
|
|
|
1131
1191
|
};
|
|
1132
1192
|
//#endregion
|
|
1133
1193
|
//#region src/entities/response/response-validation.ts
|
|
1134
|
-
function
|
|
1194
|
+
function Z(e, t, n, r) {
|
|
1135
1195
|
return {
|
|
1136
1196
|
fieldKey: e.key,
|
|
1137
1197
|
userMessage: n,
|
|
@@ -1139,62 +1199,62 @@ function Y(e, t, n, r) {
|
|
|
1139
1199
|
value: t
|
|
1140
1200
|
};
|
|
1141
1201
|
}
|
|
1142
|
-
function
|
|
1202
|
+
function Q(e) {
|
|
1143
1203
|
return e === null || e === "" || Array.isArray(e) && !e.length;
|
|
1144
1204
|
}
|
|
1145
|
-
function
|
|
1205
|
+
function at(e) {
|
|
1146
1206
|
return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
|
|
1147
1207
|
}
|
|
1148
|
-
function
|
|
1208
|
+
function ot(e) {
|
|
1149
1209
|
try {
|
|
1150
1210
|
return JSON.stringify(e), !0;
|
|
1151
1211
|
} catch {
|
|
1152
1212
|
return !1;
|
|
1153
1213
|
}
|
|
1154
1214
|
}
|
|
1155
|
-
function
|
|
1215
|
+
function st(e, t) {
|
|
1156
1216
|
return t.find((t) => t.key === e) ?? null;
|
|
1157
1217
|
}
|
|
1158
|
-
function
|
|
1218
|
+
function ct(e, t) {
|
|
1159
1219
|
return e.multiple && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") ? [t] : t;
|
|
1160
1220
|
}
|
|
1161
|
-
function
|
|
1162
|
-
if (e.type !== "object" ||
|
|
1221
|
+
function lt(e, t) {
|
|
1222
|
+
if (e.type !== "object" || Q(t)) return null;
|
|
1163
1223
|
if (e.multiple) {
|
|
1164
|
-
if (!Array.isArray(t)) return
|
|
1224
|
+
if (!Array.isArray(t)) return Z(e, t, "This field expects multiple values", "Field expects an array of objects.");
|
|
1165
1225
|
for (let n of t) {
|
|
1166
|
-
if (typeof n != "object" || !n) return
|
|
1167
|
-
if (!
|
|
1226
|
+
if (typeof n != "object" || !n) return Z(e, t, "This field expects object values", "Field expects an array of objects, but received non-object value.");
|
|
1227
|
+
if (!ot(n)) return Z(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
|
|
1168
1228
|
}
|
|
1169
1229
|
return null;
|
|
1170
1230
|
}
|
|
1171
|
-
return Array.isArray(t) ?
|
|
1231
|
+
return Array.isArray(t) ? Z(e, t, "This field expects a single value", "Field expects a single object, not an array.") : typeof t != "object" || !t ? Z(e, t, "This field expects an object value", "Field expects an object value.") : ot(t) ? null : Z(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
|
|
1172
1232
|
}
|
|
1173
|
-
function
|
|
1174
|
-
if (
|
|
1233
|
+
function ut(e, t) {
|
|
1234
|
+
if (Q(t) || !Array.isArray(e.options) || e.options.length === 0) return null;
|
|
1175
1235
|
let n = Array.isArray(t) ? t : [t];
|
|
1176
1236
|
if (e.type === "object") {
|
|
1177
1237
|
let r = new Set(e.options.map((e) => JSON.stringify(e.value)));
|
|
1178
|
-
return n.every((e) => r.has(JSON.stringify(e))) ? null :
|
|
1238
|
+
return n.every((e) => r.has(JSON.stringify(e))) ? null : Z(e, t, "This field expects a valid option", "Field expects a valid option from the defined choices.");
|
|
1179
1239
|
}
|
|
1180
1240
|
let r = e.options.map((e) => e.value);
|
|
1181
|
-
return n.every((e) => !
|
|
1241
|
+
return n.every((e) => !at(e) || e === null ? !1 : r.includes(e)) ? null : Z(e, t, "This field expects a valid option", `Field expects a valid option. Valid options are: ${r.join(", ")}`);
|
|
1182
1242
|
}
|
|
1183
|
-
async function
|
|
1184
|
-
if (n.validation && !e(n.validation) && !
|
|
1243
|
+
async function dt(t, n, r, i) {
|
|
1244
|
+
if (n.validation && !e(n.validation) && !Q(r)) {
|
|
1185
1245
|
let e = i ? {
|
|
1186
1246
|
$input: r,
|
|
1187
1247
|
responses: i
|
|
1188
1248
|
} : { $input: r }, a = await t(n.validation, e);
|
|
1189
|
-
if (typeof a == "string") return
|
|
1190
|
-
if (a === !1) return
|
|
1249
|
+
if (typeof a == "string") return Z(n, r, a, `Field validation resulted in an error: ${a}.`);
|
|
1250
|
+
if (a === !1) return Z(n, r, "This field is invalid", "Field validation resulted in an unspecified error.");
|
|
1191
1251
|
}
|
|
1192
|
-
return n.required &&
|
|
1252
|
+
return n.required && Q(r) ? Z(n, r, "This field is required", "Field is required.") : !n.multiple && Array.isArray(r) && r.length > 1 ? Z(n, r, "This field expects a single response", "Field expects a single response.") : null;
|
|
1193
1253
|
}
|
|
1194
1254
|
//#endregion
|
|
1195
1255
|
//#region src/entities/response/response.ts
|
|
1196
|
-
var
|
|
1197
|
-
let t =
|
|
1256
|
+
var ft = M("response"), pt = L(({ client: e }) => {
|
|
1257
|
+
let t = ft.store({}), r = P(), i = P(), a = j(t, {
|
|
1198
1258
|
register(e, t) {
|
|
1199
1259
|
return {
|
|
1200
1260
|
...e,
|
|
@@ -1223,7 +1283,7 @@ var ct = j("response"), lt = I(({ client: e }) => {
|
|
|
1223
1283
|
});
|
|
1224
1284
|
} else a.registerBatch(e);
|
|
1225
1285
|
}
|
|
1226
|
-
let s = (t, r) => n(e, t, r), c =
|
|
1286
|
+
let s = (t, r) => n(e, t, r), c = k({
|
|
1227
1287
|
source: {
|
|
1228
1288
|
allFields: e.fields.listStore,
|
|
1229
1289
|
existingResponses: t
|
|
@@ -1233,7 +1293,7 @@ var ct = j("response"), lt = I(({ client: e }) => {
|
|
|
1233
1293
|
...t,
|
|
1234
1294
|
...n
|
|
1235
1295
|
}, o = Object.entries(n), c = await Promise.allSettled(o.map(async ([t, n]) => {
|
|
1236
|
-
let o =
|
|
1296
|
+
let o = st(t, e);
|
|
1237
1297
|
if (!o) {
|
|
1238
1298
|
r.push({
|
|
1239
1299
|
fieldKey: t,
|
|
@@ -1243,17 +1303,17 @@ var ct = j("response"), lt = I(({ client: e }) => {
|
|
|
1243
1303
|
});
|
|
1244
1304
|
return;
|
|
1245
1305
|
}
|
|
1246
|
-
let c =
|
|
1306
|
+
let c = ct(o, n), l = await dt(s, o, c, a);
|
|
1247
1307
|
if (l) {
|
|
1248
1308
|
r.push(l);
|
|
1249
1309
|
return;
|
|
1250
1310
|
}
|
|
1251
|
-
let u =
|
|
1311
|
+
let u = lt(o, c);
|
|
1252
1312
|
if (u) {
|
|
1253
1313
|
r.push(u);
|
|
1254
1314
|
return;
|
|
1255
1315
|
}
|
|
1256
|
-
let d =
|
|
1316
|
+
let d = ut(o, c);
|
|
1257
1317
|
if (d) {
|
|
1258
1318
|
r.push(d);
|
|
1259
1319
|
return;
|
|
@@ -1281,7 +1341,7 @@ var ct = j("response"), lt = I(({ client: e }) => {
|
|
|
1281
1341
|
async function l(e) {
|
|
1282
1342
|
return c(e);
|
|
1283
1343
|
}
|
|
1284
|
-
let u =
|
|
1344
|
+
let u = k({
|
|
1285
1345
|
source: t,
|
|
1286
1346
|
effect: async (e, t) => {
|
|
1287
1347
|
let { responsesToCommit: n, validationErrors: r } = await c(t);
|
|
@@ -1296,7 +1356,7 @@ var ct = j("response"), lt = I(({ client: e }) => {
|
|
|
1296
1356
|
value: t
|
|
1297
1357
|
})));
|
|
1298
1358
|
function m(e) {
|
|
1299
|
-
return
|
|
1359
|
+
return A({
|
|
1300
1360
|
f: e,
|
|
1301
1361
|
s: t
|
|
1302
1362
|
}, ({ f: e, s: t }) => {
|
|
@@ -1313,10 +1373,10 @@ var ct = j("response"), lt = I(({ client: e }) => {
|
|
|
1313
1373
|
function _(t) {
|
|
1314
1374
|
return m(e.fields.getByName(t));
|
|
1315
1375
|
}
|
|
1316
|
-
return
|
|
1376
|
+
return I({
|
|
1317
1377
|
clock: r,
|
|
1318
1378
|
target: a.clearAll
|
|
1319
|
-
}),
|
|
1379
|
+
}), I({
|
|
1320
1380
|
clock: i,
|
|
1321
1381
|
target: a.clear
|
|
1322
1382
|
}), {
|
|
@@ -1332,13 +1392,13 @@ var ct = j("response"), lt = I(({ client: e }) => {
|
|
|
1332
1392
|
getByFieldName: _
|
|
1333
1393
|
};
|
|
1334
1394
|
});
|
|
1335
|
-
function
|
|
1336
|
-
return
|
|
1395
|
+
function mt(e) {
|
|
1396
|
+
return R(pt, e);
|
|
1337
1397
|
}
|
|
1338
1398
|
//#endregion
|
|
1339
1399
|
//#region src/entities/condition/condition.ts
|
|
1340
|
-
var
|
|
1341
|
-
let e =
|
|
1400
|
+
var ht = M("condition"), gt = L(() => {
|
|
1401
|
+
let e = ht.store({}), t = j(e, { register(e, t) {
|
|
1342
1402
|
return {
|
|
1343
1403
|
...e,
|
|
1344
1404
|
[t.condition.id]: t.condition
|
|
@@ -1362,12 +1422,12 @@ var dt = j("condition"), ft = I(() => {
|
|
|
1362
1422
|
indexStore: e
|
|
1363
1423
|
};
|
|
1364
1424
|
});
|
|
1365
|
-
function
|
|
1366
|
-
return
|
|
1425
|
+
function _t() {
|
|
1426
|
+
return R(gt);
|
|
1367
1427
|
}
|
|
1368
1428
|
//#endregion
|
|
1369
1429
|
//#region src/utils/api-url.ts
|
|
1370
|
-
function
|
|
1430
|
+
function vt() {
|
|
1371
1431
|
if (f()) {
|
|
1372
1432
|
let e = [
|
|
1373
1433
|
document.currentScript,
|
|
@@ -1382,7 +1442,7 @@ function mt() {
|
|
|
1382
1442
|
}
|
|
1383
1443
|
//#endregion
|
|
1384
1444
|
//#region src/utils/search-params.ts
|
|
1385
|
-
function
|
|
1445
|
+
function yt() {
|
|
1386
1446
|
if (!o()) return {};
|
|
1387
1447
|
let e = new URLSearchParams(window.location.search), t = {}, n = /* @__PURE__ */ new Set();
|
|
1388
1448
|
for (let [t] of e.entries()) t.startsWith("picked-") && n.add(t);
|
|
@@ -1390,23 +1450,23 @@ function ht() {
|
|
|
1390
1450
|
let n = r.replace("picked-", "");
|
|
1391
1451
|
t[n] = e.getAll(r);
|
|
1392
1452
|
}
|
|
1393
|
-
let r =
|
|
1394
|
-
if (n.size > 0)
|
|
1453
|
+
let r = O("s");
|
|
1454
|
+
if (n.size > 0) D.set(r, t);
|
|
1395
1455
|
else {
|
|
1396
|
-
let e =
|
|
1456
|
+
let e = D.get(r);
|
|
1397
1457
|
if (e) return e.json() || {};
|
|
1398
1458
|
}
|
|
1399
1459
|
return t;
|
|
1400
1460
|
}
|
|
1401
1461
|
//#endregion
|
|
1402
1462
|
//#region src/entities/session/session.ts
|
|
1403
|
-
var
|
|
1404
|
-
function
|
|
1463
|
+
var bt = O("session", "global");
|
|
1464
|
+
function xt() {
|
|
1405
1465
|
return l() ? crypto.randomUUID() : `${Date.now().toString(36)}-${Math.random().toString(36).substring(2, 15)}-${Math.random().toString(36).substring(2, 15)}-${Math.random().toString(36).substring(2, 15)}`;
|
|
1406
1466
|
}
|
|
1407
|
-
function
|
|
1467
|
+
function St() {
|
|
1408
1468
|
if (!u()) return null;
|
|
1409
|
-
let e =
|
|
1469
|
+
let e = E.get(bt);
|
|
1410
1470
|
if (!e.isSet()) return null;
|
|
1411
1471
|
try {
|
|
1412
1472
|
return e.json();
|
|
@@ -1414,10 +1474,10 @@ function _t() {
|
|
|
1414
1474
|
return null;
|
|
1415
1475
|
}
|
|
1416
1476
|
}
|
|
1417
|
-
var
|
|
1418
|
-
let e =
|
|
1477
|
+
var Ct = L(() => {
|
|
1478
|
+
let e = St(), t = { id: e?.id ?? xt() };
|
|
1419
1479
|
e?.isUser !== void 0 && (t.isUser = e.isUser), e?.identifiers && Object.keys(e.identifiers).length > 0 && (t.identifiers = e.identifiers);
|
|
1420
|
-
let n =
|
|
1480
|
+
let n = F(t), r = j(n, {
|
|
1421
1481
|
setIsUser: (e, t) => ({
|
|
1422
1482
|
...e,
|
|
1423
1483
|
isUser: t
|
|
@@ -1438,13 +1498,13 @@ var vt = I(() => {
|
|
|
1438
1498
|
return e.isUser !== void 0 && (i.isUser = e.isUser), Object.keys(r).length > 0 && (i.identifiers = r), i;
|
|
1439
1499
|
}
|
|
1440
1500
|
});
|
|
1441
|
-
return
|
|
1501
|
+
return I({
|
|
1442
1502
|
source: n,
|
|
1443
|
-
target:
|
|
1503
|
+
target: k({
|
|
1444
1504
|
source: n,
|
|
1445
1505
|
effect: (e) => {
|
|
1446
1506
|
if (u()) try {
|
|
1447
|
-
|
|
1507
|
+
E.get(bt).set(e);
|
|
1448
1508
|
} catch {}
|
|
1449
1509
|
}
|
|
1450
1510
|
})
|
|
@@ -1455,27 +1515,27 @@ var vt = I(() => {
|
|
|
1455
1515
|
removeIdentifier: r.removeIdentifier
|
|
1456
1516
|
};
|
|
1457
1517
|
});
|
|
1458
|
-
function
|
|
1459
|
-
return
|
|
1518
|
+
function wt() {
|
|
1519
|
+
return R(Ct, void 0);
|
|
1460
1520
|
}
|
|
1461
1521
|
//#endregion
|
|
1462
1522
|
//#region src/utils/picked-config.ts
|
|
1463
|
-
function
|
|
1523
|
+
function Tt() {
|
|
1464
1524
|
if (o()) return globalThis.window.pickedConfig;
|
|
1465
1525
|
}
|
|
1466
|
-
function
|
|
1467
|
-
if (o()) return
|
|
1526
|
+
function Et() {
|
|
1527
|
+
if (o()) return Tt()?.projectId;
|
|
1468
1528
|
}
|
|
1469
|
-
function
|
|
1529
|
+
function Dt() {
|
|
1470
1530
|
if (!f()) return;
|
|
1471
1531
|
let e = document.getElementById("picked_script") || document.querySelector("script#picked") || document.getElementById("cvly");
|
|
1472
1532
|
if (e) return e.dataset.projectid || e.getAttribute("project-id") || void 0;
|
|
1473
1533
|
}
|
|
1474
|
-
function
|
|
1534
|
+
function Ot(e) {
|
|
1475
1535
|
if (e.projectId) return e.projectId;
|
|
1476
|
-
let t =
|
|
1536
|
+
let t = Et();
|
|
1477
1537
|
if (t) return t;
|
|
1478
|
-
let n =
|
|
1538
|
+
let n = Dt();
|
|
1479
1539
|
if (n) return n;
|
|
1480
1540
|
throw Error("projectId is required. You can provide it via one of:\n (1) createClient({ projectId }) options;\n (2) window.pickedConfig = { projectId };\n (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes a data-projectid (or project-id) attribute.");
|
|
1481
1541
|
}
|
|
@@ -1484,7 +1544,7 @@ function Ct(e) {
|
|
|
1484
1544
|
function $(e) {
|
|
1485
1545
|
return e == null || e === "" || Number.isNaN(e);
|
|
1486
1546
|
}
|
|
1487
|
-
var
|
|
1547
|
+
var kt = {
|
|
1488
1548
|
default: (e, t) => $(e) ? String(t ?? "") : String(e),
|
|
1489
1549
|
append: (e, t) => t && !$(e) ? `${e} ${t}` : e,
|
|
1490
1550
|
prepend: (e, t) => t && !$(e) ? `${t} ${e}` : e,
|
|
@@ -1505,24 +1565,24 @@ var wt = {
|
|
|
1505
1565
|
return e instanceof Set ? t.format(Array.from(e).map(String)) : e;
|
|
1506
1566
|
}
|
|
1507
1567
|
};
|
|
1508
|
-
function
|
|
1568
|
+
function At(e) {
|
|
1509
1569
|
return typeof e == "object" && !!e;
|
|
1510
1570
|
}
|
|
1511
|
-
function
|
|
1571
|
+
function jt(e, t) {
|
|
1512
1572
|
let n = t;
|
|
1513
|
-
for (let t of e.split(".")) if (
|
|
1573
|
+
for (let t of e.split(".")) if (At(n) && t in n) n = n[t];
|
|
1514
1574
|
else return;
|
|
1515
1575
|
return typeof n == "function" ? n() : n;
|
|
1516
1576
|
}
|
|
1517
|
-
function
|
|
1518
|
-
let n = e.split("|").map((e) => e.trim()), r =
|
|
1577
|
+
function Mt(e, t) {
|
|
1578
|
+
let n = e.split("|").map((e) => e.trim()), r = jt(n.shift() ?? "", t);
|
|
1519
1579
|
for (let e of n) {
|
|
1520
|
-
let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o =
|
|
1580
|
+
let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = kt[i];
|
|
1521
1581
|
o && (r = o(r, a));
|
|
1522
1582
|
}
|
|
1523
1583
|
return $(r) ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
|
|
1524
1584
|
}
|
|
1525
|
-
function
|
|
1585
|
+
function Nt(e, t) {
|
|
1526
1586
|
let n = "", r = 0;
|
|
1527
1587
|
for (; r < e.length;) if (e[r] === "{" && e[r + 1] === "{") {
|
|
1528
1588
|
r += 2;
|
|
@@ -1534,77 +1594,77 @@ function Ot(e, t) {
|
|
|
1534
1594
|
}
|
|
1535
1595
|
i += e[r++];
|
|
1536
1596
|
}
|
|
1537
|
-
n +=
|
|
1597
|
+
n += Mt(i.trim(), t);
|
|
1538
1598
|
} else n += e[r++];
|
|
1539
1599
|
return n;
|
|
1540
1600
|
}
|
|
1541
1601
|
//#endregion
|
|
1542
1602
|
//#region src/picked.ts
|
|
1543
|
-
var
|
|
1603
|
+
var Pt = class {
|
|
1544
1604
|
static logger = r;
|
|
1545
1605
|
options;
|
|
1546
1606
|
plugins = {};
|
|
1547
|
-
eventBus =
|
|
1607
|
+
eventBus = P();
|
|
1548
1608
|
events;
|
|
1549
1609
|
projectId;
|
|
1550
1610
|
apiUrl;
|
|
1551
1611
|
dashboardUrl;
|
|
1552
1612
|
documentationSiteUrl;
|
|
1553
|
-
session =
|
|
1554
|
-
searchParams =
|
|
1555
|
-
history =
|
|
1556
|
-
components =
|
|
1557
|
-
experienceInstances =
|
|
1558
|
-
experiences =
|
|
1559
|
-
frameworks =
|
|
1560
|
-
predicates =
|
|
1561
|
-
features =
|
|
1562
|
-
conditions =
|
|
1563
|
-
fields =
|
|
1564
|
-
responses =
|
|
1565
|
-
steps =
|
|
1566
|
-
actions =
|
|
1567
|
-
stateSnapshotStore =
|
|
1568
|
-
evaluateRuleLogicFx =
|
|
1613
|
+
session = wt();
|
|
1614
|
+
searchParams = yt();
|
|
1615
|
+
history = Ge();
|
|
1616
|
+
components = _e({ client: this });
|
|
1617
|
+
experienceInstances = x({ client: this });
|
|
1618
|
+
experiences = le({ client: this });
|
|
1619
|
+
frameworks = be({ client: this });
|
|
1620
|
+
predicates = Ie({ client: this });
|
|
1621
|
+
features = Be({ client: this });
|
|
1622
|
+
conditions = _t();
|
|
1623
|
+
fields = Xe();
|
|
1624
|
+
responses = mt({ client: this });
|
|
1625
|
+
steps = $e();
|
|
1626
|
+
actions = rt({ client: this });
|
|
1627
|
+
stateSnapshotStore = Ce({ client: this });
|
|
1628
|
+
evaluateRuleLogicFx = Oe({ client: this });
|
|
1569
1629
|
start;
|
|
1570
1630
|
readyStore;
|
|
1571
1631
|
preconditionPassedStore;
|
|
1572
1632
|
conditionPassedStore;
|
|
1573
1633
|
lifecycleStageStore;
|
|
1574
|
-
lifecycle =
|
|
1575
|
-
renderStringFx =
|
|
1634
|
+
lifecycle = Ne({ client: this });
|
|
1635
|
+
renderStringFx = k({
|
|
1576
1636
|
source: this.responses.listStore,
|
|
1577
1637
|
effect: (e, { template: t, context: n }) => {
|
|
1578
1638
|
let r = {};
|
|
1579
1639
|
for (let t of e) r[t.fieldKey] = t.value;
|
|
1580
|
-
return
|
|
1640
|
+
return Nt(t, {
|
|
1581
1641
|
...n,
|
|
1582
1642
|
responses: r
|
|
1583
1643
|
});
|
|
1584
1644
|
}
|
|
1585
1645
|
});
|
|
1586
1646
|
constructor(e) {
|
|
1587
|
-
this.events =
|
|
1647
|
+
this.events = qe(this.eventBus), this.projectId = Ot(e), this.options = Object.freeze(e), this.apiUrl = e.apiUrl || vt(), this.dashboardUrl = e.dashboardUrl ?? "https://dashboard.picked.app", this.documentationSiteUrl = e.documentationSiteUrl ?? "https://docs.picked.app", this.start = this.lifecycle.start, this.readyStore = this.lifecycle.readyStore, this.preconditionPassedStore = this.lifecycle.preconditionPassedStore, this.conditionPassedStore = this.lifecycle.conditionPassedStore, this.lifecycleStageStore = this.lifecycle.lifecycleStageStore, this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.setupComponents(), this.lifecycle.setPrecondition(e.precondition), this.lifecycle.setCondition(e.condition), this.eventBus({
|
|
1588
1648
|
type: "load",
|
|
1589
|
-
version:
|
|
1649
|
+
version: ne()
|
|
1590
1650
|
});
|
|
1591
1651
|
}
|
|
1592
1652
|
registerFramework = (e) => {
|
|
1593
|
-
|
|
1653
|
+
xe(e, this.frameworks);
|
|
1594
1654
|
};
|
|
1595
1655
|
registerComponent = (e, t) => {
|
|
1596
|
-
|
|
1656
|
+
B(e, t, this.components);
|
|
1597
1657
|
};
|
|
1598
1658
|
registerPlugin = (e) => {
|
|
1599
|
-
|
|
1659
|
+
fe(this, e, this.plugins);
|
|
1600
1660
|
let t = this.plugins[e.name];
|
|
1601
1661
|
t?.onStart && this.lifecycle.registerPluginStartHook(t.onStart);
|
|
1602
1662
|
};
|
|
1603
1663
|
registerFeature = (e, t) => {
|
|
1604
|
-
|
|
1664
|
+
Ve(e, t, this.features);
|
|
1605
1665
|
};
|
|
1606
1666
|
registerPredicate = (e, t) => {
|
|
1607
|
-
|
|
1667
|
+
Le(e, t, this.predicates);
|
|
1608
1668
|
};
|
|
1609
1669
|
registerCondition = (e) => {
|
|
1610
1670
|
this.conditions.register(e);
|
|
@@ -1613,13 +1673,13 @@ var kt = class {
|
|
|
1613
1673
|
this.fields.register(e);
|
|
1614
1674
|
};
|
|
1615
1675
|
registerStep = (e) => {
|
|
1616
|
-
|
|
1676
|
+
et(e, this.steps);
|
|
1617
1677
|
};
|
|
1618
1678
|
registerAction = (e, t) => {
|
|
1619
|
-
|
|
1679
|
+
it(e, t, this.actions);
|
|
1620
1680
|
};
|
|
1621
1681
|
registerExperience = (e) => {
|
|
1622
|
-
e.component &&
|
|
1682
|
+
e.component && B(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
|
|
1623
1683
|
};
|
|
1624
1684
|
launchExperienceById = async (e, t) => {
|
|
1625
1685
|
this.experiences.launch({
|
|
@@ -1704,20 +1764,20 @@ var kt = class {
|
|
|
1704
1764
|
};
|
|
1705
1765
|
//#endregion
|
|
1706
1766
|
//#region src/entities/component/lazyComponent.ts
|
|
1707
|
-
function
|
|
1767
|
+
function Ft(e) {
|
|
1708
1768
|
return {
|
|
1709
1769
|
$$type: "lazy-component",
|
|
1710
1770
|
load: e
|
|
1711
1771
|
};
|
|
1712
1772
|
}
|
|
1713
|
-
function
|
|
1773
|
+
function It(e) {
|
|
1714
1774
|
return typeof e == "object" && !!e && "$$type" in e && e.$$type === "lazy-component";
|
|
1715
1775
|
}
|
|
1716
1776
|
//#endregion
|
|
1717
1777
|
//#region src/exports.ts
|
|
1718
|
-
var
|
|
1719
|
-
let t = new
|
|
1778
|
+
var Lt = (e) => {
|
|
1779
|
+
let t = new Pt(e);
|
|
1720
1780
|
return d(t), t;
|
|
1721
1781
|
};
|
|
1722
1782
|
//#endregion
|
|
1723
|
-
export {
|
|
1783
|
+
export { Pt as Picked, Lt as createClient, de as createPluginEffect, O as createStorageKey, n as evaluateRuleLogic, Tt as getPickedConfig, It as isLazyLoader, w as isPickedRoot, Ft as lazyComponent, E as localStore, D as sessionStore, T as subscribe, m as supportsCookies, l as supportsCryptoRandomUUID, f as supportsDocument, s as supportsHistory, i as supportsIntersectionObserver, u as supportsLocalStorage, p as supportsLocation, a as supportsSessionStorage, c as supportsShadowRoot, h as supportsWebComponents, o as supportsWindow };
|