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