@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.
Files changed (38) hide show
  1. package/dist/{api-BFD1TEJW.js → api-Bzb9pR2r.js} +1 -1
  2. package/dist/{api-D_w_sQ8k.cjs → api-XV6bcv_D.cjs} +1 -1
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  5. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  6. package/dist/cjs/server/index.js +1 -1
  7. package/dist/esm/index.js +445 -449
  8. package/dist/esm/plugins/dynamic-experiences/index.js +38 -109
  9. package/dist/esm/plugins/history-browser-storage/index.js +52 -13
  10. package/dist/esm/server/index.js +1 -1
  11. package/dist/experience-instance-B16NqD7y.cjs +1 -0
  12. package/dist/{experience-instance-BrLWgVAN.js → experience-instance-CZC0uPuv.js} +215 -203
  13. package/dist/types/entities/experience/experience.d.ts +2 -22
  14. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  15. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  16. package/dist/types/entities/history/history.d.ts +28 -16
  17. package/dist/types/entities/history/history.d.ts.map +1 -1
  18. package/dist/types/entities/step/step.d.ts +2 -17
  19. package/dist/types/entities/step/step.d.ts.map +1 -1
  20. package/dist/types/index.d.ts +0 -2
  21. package/dist/types/index.d.ts.map +1 -1
  22. package/dist/types/lifecycle/state-snapshot.d.ts.map +1 -1
  23. package/dist/types/picked.d.ts +8 -53
  24. package/dist/types/picked.d.ts.map +1 -1
  25. package/dist/types/plugins/dynamic-experiences/index.d.ts +1 -2
  26. package/dist/types/plugins/dynamic-experiences/index.d.ts.map +1 -1
  27. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +1 -18
  28. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  29. package/dist/types/plugins/dynamic-experiences/types.d.ts +1 -63
  30. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  31. package/dist/types/plugins/history-browser-storage/plugin.d.ts +16 -0
  32. package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
  33. package/dist/types/utils/dom.d.ts +27 -0
  34. package/dist/types/utils/dom.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/dist/experience-instance-Ct3ogC7n.cjs +0 -1
  37. package/dist/types/entities/content/content.d.ts +0 -37
  38. 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 _, i as v, l as y, n as b, o as ee, r as x, s as S } from "../experience-instance-BrLWgVAN.js";
6
- import { i as C, n as w, r as T, t as E } from "../storage-6Xk0uAxB.js";
7
- import { n as D, r as te } from "../api-BFD1TEJW.js";
8
- import { t as ne } from "../id-CRqy981z.js";
9
- import { attach as O, combine as k, createApi as A, createDomain as j, createEffect as M, createEvent as N, createStore as P, sample as F } from "effector";
10
- import { createFactory as I, invoke as L } from "@withease/factories";
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 R = j("experience"), re = I(({ client: e, experience: r }) => {
13
- let i = R.store(r), a = A(i, { merge(e, t) {
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 = k(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 = k(i, e.steps.indexStore, e.conditions.indexStore, (e, t, n) => {
24
- let r = e.nodes.filter(v).map((e) => t[e.stepId]).filter((e) => e !== void 0), i = e.nodes.filter(x).map((e) => n[e.conditionId]).filter((e) => e !== void 0);
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 = O({
51
+ }), l = r.actions ?? [], u, d = k({
32
52
  source: o,
33
53
  effect: (t, n) => {
34
- let i = S(t.targetSelectors, r.id);
35
- i.forEach(({ elements: e }) => e.forEach((e) => y(e, r.id))), g(i, r.id, r.key).forEach((t) => {
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 = O({
40
- source: k({
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 || S(c, r.id).length < 1 ? !1 : s === void 0 ? !0 : t(s) ? await n(e, s) === !0 : !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
- return !0;
61
- }), m = N(), h = N(), _ = R.createStore(void 0, { skipVoid: !1 }).on(m, (e, t) => t).on(h, (e, t) => t);
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 ie(e) {
100
- return L(re, e);
84
+ function se(e) {
85
+ return R(oe, e);
101
86
  }
102
- var ae = I(({ client: e }) => {
103
- let t = R.store({}), n = A(t, { register(e, 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 = N(), i = M((t) => {
109
- n.register(ie({
93
+ } }), r = P(), i = N((t) => {
94
+ n.register(se({
110
95
  client: e,
111
96
  experience: t
112
97
  }));
113
98
  });
114
- F({
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
- }), F({
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 = O({
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 ? n.initialiseDirectly(r) : n.initialiseRequested(r);
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: O({
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?.id);
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: O({
175
+ initialiseExperiencesFx: k({
187
176
  source: a,
188
- effect: (e) => {
189
- for (let t of e) t.initialiseRequested(void 0);
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 oe(e) {
195
- return L(ae, e);
187
+ function le(e) {
188
+ return R(ce, e);
196
189
  }
197
- var se = async (e) => {
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 ce(e) {
203
- return M(async () => {
195
+ function de(e) {
196
+ return N(async () => {
204
197
  await e();
205
198
  });
206
199
  }
207
- var le = (e, t, n) => {
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
- }, ue = j("component"), de = I(({ client: e, component: t, name: n }) => ({
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 fe(e) {
222
- return L(de, e);
214
+ function he(e) {
215
+ return R(me, e);
223
216
  }
224
- var pe = I(({ client: e }) => {
225
- let t = ue.store({}), n = A(t, { register(e, 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 = N();
231
- F({
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)), F({
229
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
237
230
  clock: i,
238
- fn: ({ name: t, component: n }) => fe({
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 me(e) {
256
- return L(pe, e);
248
+ function _e(e) {
249
+ return R(ge, e);
257
250
  }
258
- var z = (e, t, n) => {
251
+ var B = (e, t, n) => {
259
252
  n.register({
260
253
  name: e,
261
254
  component: t
262
255
  });
263
- }, he = j("framework"), ge = I((e) => {
264
- let t = he.store({}), n = A(t, { register(e, 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 = N();
270
- F({
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)), F({
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 _e(e) {
290
- return L(ge, e);
282
+ function be(e) {
283
+ return R(ye, e);
291
284
  }
292
- var ve = (e, t) => {
285
+ var xe = (e, t) => {
293
286
  t.register({
294
287
  name: e.name,
295
288
  framework: e
296
289
  });
297
- }, ye = I(({ client: e }) => {
298
- let t = "window" in globalThis, n = {
299
- location: t ? globalThis.location : void 0,
300
- document: t ? globalThis.document : void 0,
301
- sessionStorage: t ? globalThis.sessionStorage : void 0,
302
- localStorage: t ? globalThis.localStorage : void 0
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 k(e.responses.listStore, e.fields.listStore, (t, r) => Object.freeze({
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 be(e) {
312
- return L(ye, e);
304
+ function Ce(e) {
305
+ return R(Se, e);
313
306
  }
314
307
  //#endregion
315
308
  //#region src/logic-engine.ts
316
- function xe(e) {
309
+ function we(e) {
317
310
  return typeof e == "number" && !isNaN(e);
318
311
  }
319
- function B(e) {
312
+ function V(e) {
320
313
  return typeof e == "string";
321
314
  }
322
- function V(e) {
315
+ function H(e) {
323
316
  return Array.isArray(e);
324
317
  }
325
- function H(e) {
318
+ function U(e) {
326
319
  return e instanceof Promise;
327
320
  }
328
- function U(e) {
321
+ function W(e) {
329
322
  return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
330
323
  }
331
- function W(e) {
332
- if (xe(e)) return e;
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 G(e) {
329
+ function K(e) {
337
330
  return `${e}`;
338
331
  }
339
- var Se = {
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) => W(e) > W(t),
345
- ">=": (e, t) => W(e) >= W(t),
337
+ ">": (e, t) => G(e) > G(t),
338
+ ">=": (e, t) => G(e) >= G(t),
346
339
  "<": (e, t, n) => {
347
- let r = W(e), i = W(t);
340
+ let r = G(e), i = G(t);
348
341
  if (n === void 0) return r < i;
349
- let a = W(n);
342
+ let a = G(n);
350
343
  return r < i && i < a;
351
344
  },
352
345
  "<=": (e, t, n) => {
353
- let r = W(e), i = W(t);
346
+ let r = G(e), i = G(t);
354
347
  if (n === void 0) return r <= i;
355
- let a = W(n);
348
+ let a = G(n);
356
349
  return r <= i && i <= a;
357
350
  },
358
- "!!": async (e) => await q(e),
359
- "!": async (e) => !await q(e),
360
- "%": (e, t) => W(e) % W(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 ? B(t) ? t.indexOf(G(e)) !== -1 : V(t) ? t.includes(e) : !1 : !1,
363
- cat: (...e) => e.map(G).join(""),
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 = G(e), i = W(t);
358
+ let r = K(e), i = G(t);
366
359
  if (n === void 0) return r.substr(i);
367
- let a = W(n);
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) => W(e) + W(t), 0),
375
- "*": (...e) => e.reduce((e, t) => W(e) * W(t), 1),
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 = W(e);
378
- return t === void 0 ? -n : n - W(t);
370
+ let n = G(e);
371
+ return t === void 0 ? -n : n - G(t);
379
372
  },
380
- "/": (e, t) => W(e) / W(t),
381
- min: (...e) => Math.min(...e.map(W)),
382
- max: (...e) => Math.max(...e.map(W)),
383
- merge: (...e) => e.reduce((e, t) => V(t) ? e.concat(t) : e.concat([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 = G(e);
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 = V(e[0]) ? e[0] : e, n = [];
394
+ let t = H(e[0]) ? e[0] : e, n = [];
402
395
  for (let e of t) {
403
- let t = await K({ var: e }, this);
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 K({ missing: t }, this);
410
- if (!V(n) || !V(t)) return [];
411
- let r = n.filter(B);
412
- return t.filter(B).length - r.length >= W(e) ? [] : r;
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) => B(e) && B(t) && e.startsWith(t),
419
- endsWith: (e, t) => B(e) && B(t) && e.endsWith(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 (V(e)) {
415
+ if (H(e)) {
423
416
  let [t, i] = e;
424
417
  n = t, r = i;
425
418
  }
426
- return !B(n) || !B(r) ? !1 : new RegExp(n, r).test(G(t));
419
+ return !V(n) || !V(r) ? !1 : new RegExp(n, r).test(K(t));
427
420
  },
428
421
  throw(e) {
429
- throw Error(G(e));
422
+ throw Error(K(e));
430
423
  }
431
424
  };
432
- async function K(e, t) {
425
+ async function q(e, t) {
433
426
  if (!e) return e;
434
- if (H(e)) return K(await e, t);
435
- if (V(e)) return Promise.all(e.map((e) => K(e, t)));
436
- if (!U(e)) return e;
437
- let n = Ce(e), r = n ? e[n] ?? [] : [];
438
- switch (V(r) || (r = [r]), n) {
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 q(await K(r[e], t))) return K(r[e + 1], t);
442
- return r.length % 2 == 1 ? K(r[r.length - 1], t) : null;
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 K(n, t), !await q(e)) return e;
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 K(n, t), await q(e)) return e;
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 K(r[0], t);
455
- return V(e) ? await Promise.all(e.map((e) => K(r[1], e))) : [];
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 K(r[0], t);
459
- return V(e) ? (await Promise.all(e.map(async (e) => ({
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 q(await K(r[1], e))
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 K(r[0], t);
466
- if (!V(e)) return r.length > 2 ? await K(r[2], t) : null;
467
- let n = r[1], i = r.length > 2 ? await K(r[2], t) : null;
468
- for (let t of e) i = await K(n, {
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 K(r[0], t);
476
- if (!V(e) || e.length === 0) return !1;
477
- for (let t of e) if (!await q(await K(r[1], t))) return !1;
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 K(r[0], t);
482
- if (!V(e)) return !1;
483
- for (let t of e) if (await q(await K(r[1], t))) return !0;
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 K(r[0], t);
488
- if (!V(e)) return !0;
489
- for (let t of e) if (await q(await K(r[1], t))) return !1;
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 K(r[0], t);
486
+ return await q(r[0], t);
494
487
  } catch (e) {
495
- return U(e) ? await K(e, t) : r[1] ? await K(r[1], e) : e instanceof Error ? e.message : e;
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) => K(e, t))), a = n ? Se[n] : void 0;
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 q(e) {
503
- return H(e) ? q(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
495
+ async function J(e) {
496
+ return U(e) ? J(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
504
497
  }
505
- function Ce(e) {
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 we = I(({ client: e }) => O({
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 K(a, {
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 Te(e) {
550
- return L(we, e);
542
+ function Oe(e) {
543
+ return R(De, e);
551
544
  }
552
545
  //#endregion
553
546
  //#region src/ping.ts
554
- var Ee = 6e3, De = E("last_ping", "global"), Oe = async (e) => {
547
+ var ke = 6e3, Ae = O("last_ping", "global"), je = async (e) => {
555
548
  try {
556
- let t = Date.now(), n = w.get(De), r = 0;
557
- if (n.isSet() && (r = n.json() ?? 0), r && t - r < Ee) return !0;
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 D(e.apiUrl, "ping", i, a)).ok;
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
- }, J = j("lifecycle"), ke = I(({ client: e }) => {
569
- let t = J.store(!1), r = P(void 0, {
561
+ }, Y = M("lifecycle"), Me = L(({ client: e }) => {
562
+ let t = Y.store(!1), r = F(void 0, {
570
563
  skipVoid: !1,
571
- domain: J
572
- }), i = P(void 0, {
564
+ domain: Y
565
+ }), i = F(void 0, {
573
566
  skipVoid: !1,
574
- domain: J
575
- }), a = J.store("idle"), o = J.store([]), s = P(void 0, {
567
+ domain: Y
568
+ }), a = Y.store("idle"), o = Y.store([]), s = F(void 0, {
576
569
  skipVoid: !1,
577
- domain: J
578
- }), c = P(void 0, {
570
+ domain: Y
571
+ }), c = F(void 0, {
579
572
  skipVoid: !1,
580
- domain: J
581
- }), l = N(), u = N(), d = N(), p = N(), m = N(), h = N();
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 = M(() => {
584
- Oe(e);
585
- }), _ = M(async () => {
576
+ let g = N(() => {
577
+ je(e);
578
+ }), _ = N(async () => {
586
579
  await ee();
587
- }), v = M(async () => {
588
- await se(e);
589
- }), y = O({ effect: v }), b = O({
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 = O({
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 = O({
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 = F({
593
+ }), C = I({
601
594
  clock: l,
602
595
  filter: () => f()
603
596
  });
604
- F({
597
+ I({
605
598
  clock: C,
606
599
  fn: () => "starting",
607
600
  target: a
608
- }), F({
601
+ }), I({
609
602
  clock: C,
610
603
  target: g
611
- }), F({
604
+ }), I({
612
605
  clock: C,
613
606
  target: b
614
- }), F({
607
+ }), I({
615
608
  clock: C,
616
609
  target: _
617
- }), F({
610
+ }), I({
618
611
  clock: b.done,
619
612
  target: x
620
- }), F({
613
+ }), I({
621
614
  clock: x.doneData,
622
615
  target: r
623
- }), F({
616
+ }), I({
624
617
  clock: S.doneData,
625
618
  target: i
626
- }), F({
619
+ }), I({
627
620
  clock: x.doneData,
628
621
  filter: (e) => e,
629
622
  target: S
630
- }), F({
623
+ }), I({
631
624
  clock: S.doneData,
632
625
  target: e.session.setIsUser
633
- }), F({
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
- }), F({
633
+ }), I({
641
634
  clock: x.doneData,
642
635
  filter: (e) => !e,
643
636
  fn: () => void 0,
644
637
  target: d
645
- }), F({
638
+ }), I({
646
639
  clock: S.doneData,
647
640
  fn: () => void 0,
648
641
  target: d
649
- }), F({
642
+ }), I({
650
643
  clock: d,
651
644
  fn: () => ({ type: "initialize" }),
652
645
  target: e.eventBus
653
646
  });
654
- let w = P(!1).on(_.done, () => !0), T = P(!1).on(d, () => !0), E = P(!1).on(y.done, () => !0), D = k(r, i, (e, t) => e === !0 && t === !0);
655
- return F({
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
- }), F({
662
- clock: k(w, T, D, (e, t, n) => e && t && n),
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
- }), F({
667
- clock: k(w, T, D, E, (e, t, n, r) => e && t && (!n || r)),
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
- }), F({
664
+ }), I({
672
665
  clock: u,
673
666
  fn: () => "ready",
674
667
  target: a
675
- }), F({
668
+ }), I({
676
669
  clock: u,
677
670
  fn: () => ({ type: "ready" }),
678
671
  target: e.eventBus
679
- }), F({
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
- }), F({
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 Ae(e) {
712
- return L(ke, e);
704
+ function Ne(e) {
705
+ return R(Me, e);
713
706
  }
714
707
  //#endregion
715
708
  //#region src/entities/predicate/predicate.ts
716
- var je = j("predicate"), Me = I(({ client: e }) => {
717
- let t = je.store({}), n = A(t, { register(e, 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 = N();
726
- F({
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)), F({
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 = P(() => void 0, { skipVoid: !1 }), r = O({
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 F({
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
- }), F({
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 Ne(e) {
776
- return L(Me, e);
768
+ function Ie(e) {
769
+ return R(Fe, e);
777
770
  }
778
- var Pe = (e, t, n) => {
771
+ var Le = (e, t, n) => {
779
772
  n.register({
780
773
  name: e,
781
774
  predicate: t
782
775
  });
783
- }, Y = j("feature"), Fe = I(({ client: e }) => {
784
- let t = Y.store({}), n = Y.store([]), i = A(t, { register(e, 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 = N();
790
- F({
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)), F({
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 = M(async ({ id: e, key: t, storage: n = "local" }) => {
810
- let r = E(`feature:${e}:${t}`, "global"), i = (n === "session" ? T : w).get(r).boolean();
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 = M((e) => {
810
+ }), s = N((e) => {
818
811
  if (!e) return null;
819
- let t = E(`feature:${e.id}:${e.key}`, "global");
820
- (e.storage === "session" ? T : w).set(t, e.bucket);
821
- }), c = /* @__PURE__ */ new Map(), l = O({
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
- F({
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
- }), F({
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 = k({
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
- F({
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
- }), F({
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 = P(async () => void 0, { skipVoid: !1 }), r = O({
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 F({
920
+ return I({
928
921
  source: n,
929
922
  filter: (t) => t.some((t) => t.id === e),
930
923
  target: r
931
- }), F({
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 Ie(e) {
946
- return L(Fe, e);
938
+ function Be(e) {
939
+ return R(ze, e);
947
940
  }
948
- var Le = (e, t, n) => {
941
+ var Ve = (e, t, n) => {
949
942
  n.register({
950
943
  id: e,
951
944
  feature: t
952
945
  });
953
- }, X = j("history");
954
- function Re(e, t) {
946
+ }, X = M("history");
947
+ function He(e, t, n) {
955
948
  return {
956
- id: ne(`history-entry-${Date.now()}-${Math.random()}}`),
957
- node: t,
949
+ id: re("history-entry"),
950
+ node: n,
958
951
  at: Date.now(),
959
- experienceId: e
952
+ instanceId: e,
953
+ experienceId: t
960
954
  };
961
955
  }
962
- var ze = I(() => {
963
- let e = X.store({ entries: [] }), t = X.event(), n = X.event(), r = X.event(), i = X.event();
964
- e.on(t, (e, t) => ({ entries: [...e.entries, Re(t.experienceId, t.node)] })), e.on(n, (e, t) => ({ entries: [...e.entries.slice(0, -1), Re(t.experienceId, t.node)] })), e.on(i, (e, t) => t);
965
- function a(e, t) {
966
- let n = {
967
- lastStepIndex: -1,
968
- secondLastStepIndex: -1
969
- };
970
- for (let r = e.length - 1; r >= 0; r--) {
971
- let i = e[r], a = i?.node;
972
- if (!(!a || !v(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
973
- else {
974
- n.secondLastStepIndex = r;
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 e.on(r, (e, t) => {
981
- let { secondLastStepIndex: n } = a(e.entries, t.experienceId), r = n === -1 ? e.entries : e.entries.slice(0, n + 1);
982
- return {
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
- entries: r
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
- restore: i,
991
- entriesStore: e.map((e) => e.entries)
1019
+ restoreSnapshots: i,
1020
+ seedInstanceFromSnapshot: a,
1021
+ entriesStore: e,
1022
+ snapshotStore: s
992
1023
  };
993
1024
  });
994
- function Be() {
995
- return L(ze);
1025
+ function Ge() {
1026
+ return R(We);
996
1027
  }
997
1028
  //#endregion
998
1029
  //#region src/utils/events.ts
999
- var Ve = 0, He = (e) => {
1000
- let t = P([]);
1030
+ var Ke = 0, qe = (e) => {
1031
+ let t = F([]);
1001
1032
  return t.on(e, (e, t) => [...e, {
1002
- id: Ve++,
1033
+ id: Ke++,
1003
1034
  at: /* @__PURE__ */ new Date(),
1004
1035
  payload: t
1005
1036
  }]), t;
1006
- }, Ue = j("field"), We = I(() => {
1007
- let e = Ue.store({}), t = A(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 Ge() {
1056
- return L(We);
1086
+ function Xe() {
1087
+ return R(Ye);
1057
1088
  }
1058
1089
  //#endregion
1059
1090
  //#region src/entities/step/step.ts
1060
- var Ke = j("step"), qe = I(() => {
1061
- let e = Ke.store({}), t = A(e, { register(e, t) {
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 Je() {
1086
- return L(qe);
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 $e(e, t) {
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 et = j("action"), tt = I(({ client: e }) => {
1123
- let t = et.store({}), n = A(t, { register(e, 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 = N();
1132
- F({
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)), F({
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 = P(() => void 0, { skipVoid: !1 }), i = n ? { experience: n.experience } : null, a = O({
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 F({
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
- }), F({
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 nt(e) {
1182
- return L(tt, e);
1183
+ function rt(e) {
1184
+ return R(nt, e);
1183
1185
  }
1184
- var rt = (e, t, n) => {
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 it(e) {
1205
+ function at(e) {
1204
1206
  return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
1205
1207
  }
1206
- function at(e) {
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 ot(e, t) {
1215
+ function st(e, t) {
1214
1216
  return t.find((t) => t.key === e) ?? null;
1215
1217
  }
1216
- function st(e, t) {
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 ct(e, t) {
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 (!at(n)) return Z(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
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.") : at(t) ? null : Z(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
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 lt(e, t) {
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) => !it(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(", ")}`);
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 ut(t, n, r, i) {
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 dt = j("response"), ft = I(({ client: e }) => {
1255
- let t = dt.store({}), r = N(), i = N(), a = A(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 = O({
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 = ot(t, e);
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 = st(o, n), l = await ut(s, o, c, a);
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 = ct(o, c);
1311
+ let u = lt(o, c);
1310
1312
  if (u) {
1311
1313
  r.push(u);
1312
1314
  return;
1313
1315
  }
1314
- let d = lt(o, c);
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 = O({
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 k({
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 F({
1376
+ return I({
1375
1377
  clock: r,
1376
1378
  target: a.clearAll
1377
- }), F({
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 pt(e) {
1394
- return L(ft, e);
1395
+ function mt(e) {
1396
+ return R(pt, e);
1395
1397
  }
1396
1398
  //#endregion
1397
1399
  //#region src/entities/condition/condition.ts
1398
- var mt = j("condition"), ht = I(() => {
1399
- let e = mt.store({}), t = A(e, { register(e, t) {
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 gt() {
1424
- return L(ht);
1425
+ function _t() {
1426
+ return R(gt);
1425
1427
  }
1426
1428
  //#endregion
1427
1429
  //#region src/utils/api-url.ts
1428
- function _t() {
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 vt() {
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 = E("s");
1452
- if (n.size > 0) T.set(r, t);
1453
+ let r = O("s");
1454
+ if (n.size > 0) D.set(r, t);
1453
1455
  else {
1454
- let e = T.get(r);
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 yt = E("session", "global");
1462
- function bt() {
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 xt() {
1467
+ function St() {
1466
1468
  if (!u()) return null;
1467
- let e = w.get(yt);
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 St = I(() => {
1476
- let e = xt(), t = { id: e?.id ?? bt() };
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 = P(t), r = A(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 F({
1501
+ return I({
1500
1502
  source: n,
1501
- target: O({
1503
+ target: k({
1502
1504
  source: n,
1503
1505
  effect: (e) => {
1504
1506
  if (u()) try {
1505
- w.get(yt).set(e);
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 Ct() {
1517
- return L(St, void 0);
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 wt()?.projectId;
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 Dt(e) {
1534
+ function Ot(e) {
1533
1535
  if (e.projectId) return e.projectId;
1534
- let t = Tt();
1536
+ let t = Et();
1535
1537
  if (t) return t;
1536
- let n = Et();
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 Ot = {
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 kt(e) {
1568
+ function At(e) {
1567
1569
  return typeof e == "object" && !!e;
1568
1570
  }
1569
- function At(e, t) {
1571
+ function jt(e, t) {
1570
1572
  let n = t;
1571
- for (let t of e.split(".")) if (kt(n) && t in n) n = n[t];
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 jt(e, t) {
1576
- let n = e.split("|").map((e) => e.trim()), r = At(n.shift() ?? "", t);
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 = Ot[i];
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 Mt(e, t) {
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 += jt(i.trim(), t);
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 Nt = class {
1603
+ var Pt = class {
1602
1604
  static logger = r;
1603
1605
  options;
1604
- dataSource = null;
1605
- contentLoader;
1606
1606
  plugins = {};
1607
- eventBus = N();
1607
+ eventBus = P();
1608
1608
  events;
1609
1609
  projectId;
1610
1610
  apiUrl;
1611
1611
  dashboardUrl;
1612
1612
  documentationSiteUrl;
1613
- session = Ct();
1614
- searchParams = vt();
1615
- history = Be();
1616
- components = me({ client: this });
1617
- experienceInstances = b({ client: this });
1618
- experiences = oe({ client: this });
1619
- frameworks = _e({ client: this });
1620
- predicates = Ne({ client: this });
1621
- features = Ie({ client: this });
1622
- conditions = gt();
1623
- fields = Ge();
1624
- responses = pt({ client: this });
1625
- steps = Je();
1626
- contents = Qe();
1627
- actions = nt({ client: this });
1628
- stateSnapshotStore = be({ client: this });
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 = Ae({ client: this });
1636
- renderStringFx = O({
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 Mt(t, {
1640
+ return Nt(t, {
1642
1641
  ...n,
1643
1642
  responses: r
1644
1643
  });
1645
1644
  }
1646
1645
  });
1647
1646
  constructor(e) {
1648
- this.events = He(this.eventBus), this.projectId = Dt(e), this.options = Object.freeze(e), this.apiUrl = e.apiUrl || _t(), 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({
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: te()
1649
+ version: ne()
1651
1650
  });
1652
1651
  }
1653
1652
  registerFramework = (e) => {
1654
- ve(e, this.frameworks);
1653
+ xe(e, this.frameworks);
1655
1654
  };
1656
1655
  registerComponent = (e, t) => {
1657
- z(e, t, this.components);
1656
+ B(e, t, this.components);
1658
1657
  };
1659
1658
  registerPlugin = (e) => {
1660
- le(this, e, this.plugins);
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
- Le(e, t, this.features);
1664
+ Ve(e, t, this.features);
1666
1665
  };
1667
1666
  registerPredicate = (e, t) => {
1668
- Pe(e, t, this.predicates);
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
- Ye(e, this.steps);
1678
- };
1679
- registerContent = (e) => {
1680
- $e(e, this.contents);
1676
+ et(e, this.steps);
1681
1677
  };
1682
1678
  registerAction = (e, t) => {
1683
- rt(e, t, this.actions);
1679
+ it(e, t, this.actions);
1684
1680
  };
1685
1681
  registerExperience = (e) => {
1686
- e.component && z(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
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 Pt(e) {
1767
+ function Ft(e) {
1772
1768
  return {
1773
1769
  $$type: "lazy-component",
1774
1770
  load: e
1775
1771
  };
1776
1772
  }
1777
- function Ft(e) {
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 It = (e) => {
1783
- let t = new Nt(e);
1778
+ var Lt = (e) => {
1779
+ let t = new Pt(e);
1784
1780
  return d(t), t;
1785
1781
  };
1786
1782
  //#endregion
1787
- export { Nt as Picked, It as createClient, ce as createPluginEffect, E as createStorageKey, n as evaluateRuleLogic, wt as getPickedConfig, Ft as isLazyLoader, _ as isPickedRoot, Pt as lazyComponent, w as localStore, T as sessionStore, C 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 };
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 };