@picked/client 0.0.1-dev.1778468342672 → 0.0.1-dev.1778730134956

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 (42) hide show
  1. package/dist/{api-BFD1TEJW.js → api-B-CbCRqb.js} +1 -1
  2. package/dist/{api-D_w_sQ8k.cjs → api-CPRRXVw6.cjs} +1 -1
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/plugins/create-experience/index.js +1 -1
  5. package/dist/cjs/plugins/dom-observer/index.js +1 -0
  6. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  7. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  8. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  10. package/dist/cjs/server/index.js +1 -1
  11. package/dist/docs/workspaces.mdx +1 -1
  12. package/dist/dom-C3C6Fmwz.cjs +1 -0
  13. package/dist/dom-DGePXPpM.js +84 -0
  14. package/dist/esm/index.js +330 -314
  15. package/dist/esm/plugins/create-experience/index.js +1 -1
  16. package/dist/esm/plugins/dom-observer/index.js +87 -0
  17. package/dist/esm/plugins/dynamic-experiences/index.js +1 -1
  18. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  19. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  20. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  21. package/dist/esm/server/index.js +1 -1
  22. package/dist/experience-instance-BOhvCj_F.js +430 -0
  23. package/dist/experience-instance-D8yKenBU.cjs +1 -0
  24. package/dist/types/entities/experience-instance/experience-instance.d.ts +12 -0
  25. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  26. package/dist/types/entities/history/history.d.ts +3 -0
  27. package/dist/types/entities/history/history.d.ts.map +1 -1
  28. package/dist/types/entities/response/response.d.ts +1 -0
  29. package/dist/types/entities/response/response.d.ts.map +1 -1
  30. package/dist/types/picked.d.ts +4 -0
  31. package/dist/types/picked.d.ts.map +1 -1
  32. package/dist/types/plugins/dom-observer/index.d.ts +3 -0
  33. package/dist/types/plugins/dom-observer/index.d.ts.map +1 -0
  34. package/dist/types/plugins/dom-observer/plugin.d.ts +50 -0
  35. package/dist/types/plugins/dom-observer/plugin.d.ts.map +1 -0
  36. package/package.json +11 -1
  37. package/dist/experience-instance-BrLWgVAN.js +0 -501
  38. package/dist/experience-instance-Ct3ogC7n.cjs +0 -1
  39. /package/dist/{id-Bv44ilEo.cjs → id-Cg7fVl1O.cjs} +0 -0
  40. /package/dist/{id-CRqy981z.js → id-n2yrHvNo.js} +0 -0
  41. /package/dist/{storage-B6lQtc4-.cjs → storage-BXSlLTRa.cjs} +0 -0
  42. /package/dist/{storage-6Xk0uAxB.js → storage-hOHCCXvP.js} +0 -0
package/dist/esm/index.js CHANGED
@@ -2,15 +2,16 @@ 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, i as _, r as v, s as y, t as b } from "../dom-DGePXPpM.js";
6
+ import { i as x, n as S, r as C } from "../experience-instance-BOhvCj_F.js";
7
+ import { i as w, n as T, r as E, t as D } from "../storage-hOHCCXvP.js";
8
+ import { n as O, r as ee } from "../api-B-CbCRqb.js";
9
+ import { t as te } from "../id-n2yrHvNo.js";
10
+ 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";
11
+ import { createFactory as L, invoke as R } from "@withease/factories";
11
12
  //#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) {
13
+ var z = M("experience"), ne = L(({ client: e, experience: r }) => {
14
+ let i = z.store(r), a = j(i, { merge(e, t) {
14
15
  return {
15
16
  ...e,
16
17
  ...t.experience
@@ -20,24 +21,24 @@ var R = j("experience"), re = I(({ client: e, experience: r }) => {
20
21
  decisionLogic: e.condition,
21
22
  targetSelectors: e.targets,
22
23
  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);
24
+ })), 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) => {
25
+ let r = e.nodes.filter(x).map((e) => t[e.stepId]).filter((e) => e !== void 0), i = e.nodes.filter(C).map((e) => n[e.conditionId]).filter((e) => e !== void 0);
25
26
  return {
26
27
  steps: r,
27
28
  nodes: e.nodes,
28
29
  edges: e.edges,
29
30
  conditions: i
30
31
  };
31
- }), l = r.actions ?? [], u, d = O({
32
+ }), l = r.actions ?? [], u, d = k({
32
33
  source: o,
33
34
  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) => {
35
+ let i = _(t.targetSelectors, r.id);
36
+ i.forEach(({ elements: e }) => e.forEach((e) => y(e, r.id))), b(i, r.id, r.key).forEach((t) => {
36
37
  n ? e.experienceInstances.spawn(u, t, n) : e.experienceInstances.spawn(u, t);
37
38
  });
38
39
  }
39
- }), f = O({
40
- source: k({
40
+ }), f = k({
41
+ source: A({
41
42
  preconditionPassed: e.preconditionPassedStore,
42
43
  isUser: e.session.store.map((e) => e.isUser, { skipVoid: !1 }),
43
44
  config: o
@@ -45,9 +46,9 @@ var R = j("experience"), re = I(({ client: e, experience: r }) => {
45
46
  effect: async ({ preconditionPassed: i, isUser: a, config: o }) => {
46
47
  if (!i || !a) return !1;
47
48
  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
+ return c.length === 0 || _(c, r.id).length < 1 ? !1 : s === void 0 ? !0 : t(s) ? await n(e, s) === !0 : !0;
49
50
  }
50
- }), p = M(async () => {
51
+ }), p = N(async () => {
51
52
  if (!e.contentLoader) return !0;
52
53
  try {
53
54
  await e.contentLoader({
@@ -58,26 +59,26 @@ var R = j("experience"), re = I(({ client: e, experience: r }) => {
58
59
  `${r.id}`;
59
60
  }
60
61
  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({
62
+ }), m = P(), h = P(), g = z.createStore(void 0, { skipVoid: !1 }).on(m, (e, t) => t).on(h, (e, t) => t);
63
+ return I({
63
64
  clock: m,
64
65
  target: f
65
- }), F({
66
+ }), I({
66
67
  clock: f.doneData,
67
- source: _,
68
+ source: g,
68
69
  filter: (e, t) => t,
69
70
  fn: (e) => e,
70
71
  target: d
71
- }), F({
72
+ }), I({
72
73
  clock: f.doneData,
73
74
  filter: Boolean,
74
75
  target: p
75
- }), F({
76
+ }), I({
76
77
  clock: h,
77
- source: _,
78
+ source: g,
78
79
  fn: (e) => e,
79
80
  target: d
80
- }), F({
81
+ }), I({
81
82
  clock: h,
82
83
  target: p
83
84
  }), u = {
@@ -96,22 +97,22 @@ var R = j("experience"), re = I(({ client: e, experience: r }) => {
96
97
  prepareExperienceContentFx: p
97
98
  }, u;
98
99
  });
99
- function ie(e) {
100
- return L(re, e);
100
+ function re(e) {
101
+ return R(ne, e);
101
102
  }
102
- var ae = I(({ client: e }) => {
103
- let t = R.store({}), n = A(t, { register(e, t) {
103
+ var ie = L(({ client: e }) => {
104
+ let t = z.store({}), n = j(t, { register(e, t) {
104
105
  return {
105
106
  ...e,
106
107
  [t.id]: t
107
108
  };
108
- } }), r = N(), i = M((t) => {
109
- n.register(ie({
109
+ } }), r = P(), i = N((t) => {
110
+ n.register(re({
110
111
  client: e,
111
112
  experience: t
112
113
  }));
113
114
  });
114
- F({
115
+ I({
115
116
  clock: r,
116
117
  source: t,
117
118
  filter: (e, t) => e[t.id] !== void 0,
@@ -124,7 +125,7 @@ var ae = I(({ client: e }) => {
124
125
  experience: t,
125
126
  strategy: "override"
126
127
  });
127
- }), F({
128
+ }), I({
128
129
  clock: r,
129
130
  source: t,
130
131
  filter: (e, t) => e[t.id] === void 0,
@@ -138,7 +139,7 @@ var ae = I(({ client: e }) => {
138
139
  function s(e) {
139
140
  return t.map((t) => Object.values(t).find((t) => t.key === e) ?? t[e], { skipVoid: !1 });
140
141
  }
141
- let c = O({
142
+ let c = k({
142
143
  source: t,
143
144
  effect: (e, t) => {
144
145
  let n = "key" in t ? Object.values(e).find((e) => e.key === t.key) : e[t.id];
@@ -156,7 +157,7 @@ var ae = I(({ client: e }) => {
156
157
  getById: o,
157
158
  getByKey: s,
158
159
  launch: c,
159
- open: O({
160
+ open: k({
160
161
  source: {
161
162
  experiences: t,
162
163
  instances: e.experienceInstances.listStore
@@ -183,7 +184,7 @@ var ae = I(({ client: e }) => {
183
184
  }
184
185
  }),
185
186
  listStore: a,
186
- initialiseExperiencesFx: O({
187
+ initialiseExperiencesFx: k({
187
188
  source: a,
188
189
  effect: (e) => {
189
190
  for (let t of e) t.initialiseRequested(void 0);
@@ -191,20 +192,20 @@ var ae = I(({ client: e }) => {
191
192
  })
192
193
  };
193
194
  });
194
- function oe(e) {
195
- return L(ae, e);
195
+ function ae(e) {
196
+ return R(ie, e);
196
197
  }
197
- var se = async (e) => {
198
+ var oe = async (e) => {
198
199
  await e.experiences.initialiseExperiencesFx();
199
200
  };
200
201
  //#endregion
201
202
  //#region src/entities/plugin/plugin.ts
202
- function ce(e) {
203
- return M(async () => {
203
+ function se(e) {
204
+ return N(async () => {
204
205
  await e();
205
206
  });
206
207
  }
207
- var le = (e, t, n) => {
208
+ var ce = (e, t, n) => {
208
209
  let r = t.name, i = t.setup(e);
209
210
  if (i) {
210
211
  let e = n[r] ?? {};
@@ -213,29 +214,29 @@ var le = (e, t, n) => {
213
214
  ...i
214
215
  });
215
216
  }
216
- }, ue = j("component"), de = I(({ client: e, component: t, name: n }) => ({
217
+ }, le = M("component"), ue = L(({ client: e, component: t, name: n }) => ({
217
218
  name: n,
218
219
  component: t,
219
220
  frameworkStore: e.frameworks.getByName(t.frameworkName)
220
221
  }));
221
- function fe(e) {
222
- return L(de, e);
222
+ function de(e) {
223
+ return R(ue, e);
223
224
  }
224
- var pe = I(({ client: e }) => {
225
- let t = ue.store({}), n = A(t, { register(e, t) {
225
+ var fe = L(({ client: e }) => {
226
+ let t = le.store({}), n = j(t, { register(e, t) {
226
227
  return {
227
228
  ...e,
228
229
  [t.name]: t
229
230
  };
230
- } }), i = N();
231
- F({
231
+ } }), i = P();
232
+ I({
232
233
  clock: i,
233
234
  source: t,
234
235
  filter: (e, { name: t }) => e[t] !== void 0,
235
236
  fn: (e, { name: t }) => `Component '${t}' already registered. Registering again will override the previous registration.`
236
- }).watch((e) => /* @__PURE__ */ r("warn", e)), F({
237
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
237
238
  clock: i,
238
- fn: ({ name: t, component: n }) => fe({
239
+ fn: ({ name: t, component: n }) => de({
239
240
  client: e,
240
241
  name: t,
241
242
  component: n
@@ -252,27 +253,27 @@ var pe = I(({ client: e }) => {
252
253
  listStore: a
253
254
  };
254
255
  });
255
- function me(e) {
256
- return L(pe, e);
256
+ function pe(e) {
257
+ return R(fe, e);
257
258
  }
258
- var z = (e, t, n) => {
259
+ var B = (e, t, n) => {
259
260
  n.register({
260
261
  name: e,
261
262
  component: t
262
263
  });
263
- }, he = j("framework"), ge = I((e) => {
264
- let t = he.store({}), n = A(t, { register(e, t) {
264
+ }, me = M("framework"), he = L((e) => {
265
+ let t = me.store({}), n = j(t, { register(e, t) {
265
266
  return {
266
267
  ...e,
267
268
  [t.name]: t.framework
268
269
  };
269
- } }), i = N();
270
- F({
270
+ } }), i = P();
271
+ I({
271
272
  clock: i,
272
273
  source: t,
273
274
  filter: (e, { name: t }) => e[t] !== void 0,
274
275
  fn: (e, { name: t }) => `Framework '${t}' already registered. Registering again will override the previous registration.`
275
- }).watch((e) => /* @__PURE__ */ r("warn", e)), F({
276
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
276
277
  clock: i,
277
278
  target: n.register
278
279
  });
@@ -286,106 +287,106 @@ var z = (e, t, n) => {
286
287
  listStore: a
287
288
  };
288
289
  });
289
- function _e(e) {
290
- return L(ge, e);
290
+ function ge(e) {
291
+ return R(he, e);
291
292
  }
292
- var ve = (e, t) => {
293
+ var _e = (e, t) => {
293
294
  t.register({
294
295
  name: e.name,
295
296
  framework: e
296
297
  });
297
- }, ye = I(({ client: e }) => {
298
+ }, ve = L(({ client: e }) => {
298
299
  let t = "window" in globalThis, n = {
299
300
  location: t ? globalThis.location : void 0,
300
301
  document: t ? globalThis.document : void 0,
301
302
  sessionStorage: t ? globalThis.sessionStorage : void 0,
302
303
  localStorage: t ? globalThis.localStorage : void 0
303
304
  };
304
- return k(e.responses.listStore, e.fields.listStore, (t, r) => Object.freeze({
305
+ return A(e.responses.listStore, e.fields.listStore, (t, r) => Object.freeze({
305
306
  client: e,
306
307
  responses: t,
307
308
  fields: r,
308
309
  ...n
309
310
  }));
310
311
  });
311
- function be(e) {
312
- return L(ye, e);
312
+ function ye(e) {
313
+ return R(ve, e);
313
314
  }
314
315
  //#endregion
315
316
  //#region src/logic-engine.ts
316
- function xe(e) {
317
+ function be(e) {
317
318
  return typeof e == "number" && !isNaN(e);
318
319
  }
319
- function B(e) {
320
+ function V(e) {
320
321
  return typeof e == "string";
321
322
  }
322
- function V(e) {
323
+ function H(e) {
323
324
  return Array.isArray(e);
324
325
  }
325
- function H(e) {
326
+ function U(e) {
326
327
  return e instanceof Promise;
327
328
  }
328
- function U(e) {
329
+ function W(e) {
329
330
  return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
330
331
  }
331
- function W(e) {
332
- if (xe(e)) return e;
332
+ function G(e) {
333
+ if (be(e)) return e;
333
334
  let t = parseFloat(`${e}`);
334
335
  return isNaN(t) ? 0 : t;
335
336
  }
336
- function G(e) {
337
+ function K(e) {
337
338
  return `${e}`;
338
339
  }
339
- var Se = {
340
+ var xe = {
340
341
  "==": (e, t) => e == t,
341
342
  "===": (e, t) => e === t,
342
343
  "!=": (e, t) => e != t,
343
344
  "!==": (e, t) => e !== t,
344
- ">": (e, t) => W(e) > W(t),
345
- ">=": (e, t) => W(e) >= W(t),
345
+ ">": (e, t) => G(e) > G(t),
346
+ ">=": (e, t) => G(e) >= G(t),
346
347
  "<": (e, t, n) => {
347
- let r = W(e), i = W(t);
348
+ let r = G(e), i = G(t);
348
349
  if (n === void 0) return r < i;
349
- let a = W(n);
350
+ let a = G(n);
350
351
  return r < i && i < a;
351
352
  },
352
353
  "<=": (e, t, n) => {
353
- let r = W(e), i = W(t);
354
+ let r = G(e), i = G(t);
354
355
  if (n === void 0) return r <= i;
355
- let a = W(n);
356
+ let a = G(n);
356
357
  return r <= i && i <= a;
357
358
  },
358
- "!!": async (e) => await q(e),
359
- "!": async (e) => !await q(e),
360
- "%": (e, t) => W(e) % W(t),
359
+ "!!": async (e) => await J(e),
360
+ "!": async (e) => !await J(e),
361
+ "%": (e, t) => G(e) % G(t),
361
362
  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(""),
363
+ in: (e, t) => t ? V(t) ? t.indexOf(K(e)) !== -1 : H(t) ? t.includes(e) : !1 : !1,
364
+ cat: (...e) => e.map(K).join(""),
364
365
  substr: (e, t, n) => {
365
- let r = G(e), i = W(t);
366
+ let r = K(e), i = G(t);
366
367
  if (n === void 0) return r.substr(i);
367
- let a = W(n);
368
+ let a = G(n);
368
369
  if (a < 0) {
369
370
  let e = r.substr(i);
370
371
  return e.substr(0, e.length + a);
371
372
  }
372
373
  return r.substr(i, a);
373
374
  },
374
- "+": (...e) => e.reduce((e, t) => W(e) + W(t), 0),
375
- "*": (...e) => e.reduce((e, t) => W(e) * W(t), 1),
375
+ "+": (...e) => e.reduce((e, t) => G(e) + G(t), 0),
376
+ "*": (...e) => e.reduce((e, t) => G(e) * G(t), 1),
376
377
  "-": (e, t) => {
377
- let n = W(e);
378
- return t === void 0 ? -n : n - W(t);
378
+ let n = G(e);
379
+ return t === void 0 ? -n : n - G(t);
379
380
  },
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]), []),
381
+ "/": (e, t) => G(e) / G(t),
382
+ min: (...e) => Math.min(...e.map(G)),
383
+ max: (...e) => Math.max(...e.map(G)),
384
+ merge: (...e) => e.reduce((e, t) => H(t) ? e.concat(t) : e.concat([t]), []),
384
385
  var(e, t) {
385
386
  let n = arguments.length > 1 ? t : null;
386
387
  if (e === "" || e === "." || e == null) return this;
387
388
  if (typeof e == "number" && Array.isArray(this)) return e >= 0 && e < this.length ? this[e] : n;
388
- let r = G(e);
389
+ let r = K(e);
389
390
  if (r === "" || r === ".") return this;
390
391
  let i = r.split("."), a = this;
391
392
  for (let e of i) {
@@ -398,116 +399,116 @@ var Se = {
398
399
  return a === void 0 ? n : a;
399
400
  },
400
401
  async missing(...e) {
401
- let t = V(e[0]) ? e[0] : e, n = [];
402
+ let t = H(e[0]) ? e[0] : e, n = [];
402
403
  for (let e of t) {
403
- let t = await K({ var: e }, this);
404
+ let t = await q({ var: e }, this);
404
405
  (t === null || t === "") && n.push(`${e}`);
405
406
  }
406
407
  return n;
407
408
  },
408
409
  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;
410
+ let n = await q({ missing: t }, this);
411
+ if (!H(n) || !H(t)) return [];
412
+ let r = n.filter(V);
413
+ return t.filter(V).length - r.length >= G(e) ? [] : r;
413
414
  },
414
415
  invoke(...e) {
415
416
  let [t, ...n] = e;
416
417
  return typeof t == "function" ? Reflect.apply(t, null, n) : null;
417
418
  },
418
- startsWith: (e, t) => B(e) && B(t) && e.startsWith(t),
419
- endsWith: (e, t) => B(e) && B(t) && e.endsWith(t),
419
+ startsWith: (e, t) => V(e) && V(t) && e.startsWith(t),
420
+ endsWith: (e, t) => V(e) && V(t) && e.endsWith(t),
420
421
  regexp_matches(e, t) {
421
422
  let n = e, r = "";
422
- if (V(e)) {
423
+ if (H(e)) {
423
424
  let [t, i] = e;
424
425
  n = t, r = i;
425
426
  }
426
- return !B(n) || !B(r) ? !1 : new RegExp(n, r).test(G(t));
427
+ return !V(n) || !V(r) ? !1 : new RegExp(n, r).test(K(t));
427
428
  },
428
429
  throw(e) {
429
- throw Error(G(e));
430
+ throw Error(K(e));
430
431
  }
431
432
  };
432
- async function K(e, t) {
433
+ async function q(e, t) {
433
434
  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) {
435
+ if (U(e)) return q(await e, t);
436
+ if (H(e)) return Promise.all(e.map((e) => q(e, t)));
437
+ if (!W(e)) return e;
438
+ let n = Se(e), r = n ? e[n] ?? [] : [];
439
+ switch (H(r) || (r = [r]), n) {
439
440
  case "if":
440
441
  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;
442
+ for (let e = 0; e < r.length - 1; e += 2) if (await J(await q(r[e], t))) return q(r[e + 1], t);
443
+ return r.length % 2 == 1 ? q(r[r.length - 1], t) : null;
443
444
  case "and": {
444
445
  let e = null;
445
- for (let n of r) if (e = await K(n, t), !await q(e)) return e;
446
+ for (let n of r) if (e = await q(n, t), !await J(e)) return e;
446
447
  return e;
447
448
  }
448
449
  case "or": {
449
450
  let e = null;
450
- for (let n of r) if (e = await K(n, t), await q(e)) return e;
451
+ for (let n of r) if (e = await q(n, t), await J(e)) return e;
451
452
  return e;
452
453
  }
453
454
  case "map": {
454
- let e = await K(r[0], t);
455
- return V(e) ? await Promise.all(e.map((e) => K(r[1], e))) : [];
455
+ let e = await q(r[0], t);
456
+ return H(e) ? await Promise.all(e.map((e) => q(r[1], e))) : [];
456
457
  }
457
458
  case "filter": {
458
- let e = await K(r[0], t);
459
- return V(e) ? (await Promise.all(e.map(async (e) => ({
459
+ let e = await q(r[0], t);
460
+ return H(e) ? (await Promise.all(e.map(async (e) => ({
460
461
  item: e,
461
- shouldInclude: await q(await K(r[1], e))
462
+ shouldInclude: await J(await q(r[1], e))
462
463
  })))).filter(({ shouldInclude: e }) => e).map(({ item: e }) => e) : [];
463
464
  }
464
465
  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, {
466
+ let e = await q(r[0], t);
467
+ if (!H(e)) return r.length > 2 ? await q(r[2], t) : null;
468
+ let n = r[1], i = r.length > 2 ? await q(r[2], t) : null;
469
+ for (let t of e) i = await q(n, {
469
470
  current: t,
470
471
  accumulator: i
471
472
  });
472
473
  return i;
473
474
  }
474
475
  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;
476
+ let e = await q(r[0], t);
477
+ if (!H(e) || e.length === 0) return !1;
478
+ for (let t of e) if (!await J(await q(r[1], t))) return !1;
478
479
  return !0;
479
480
  }
480
481
  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;
482
+ let e = await q(r[0], t);
483
+ if (!H(e)) return !1;
484
+ for (let t of e) if (await J(await q(r[1], t))) return !0;
484
485
  return !1;
485
486
  }
486
487
  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;
488
+ let e = await q(r[0], t);
489
+ if (!H(e)) return !0;
490
+ for (let t of e) if (await J(await q(r[1], t))) return !1;
490
491
  return !0;
491
492
  }
492
493
  case "catch": try {
493
- return await K(r[0], t);
494
+ return await q(r[0], t);
494
495
  } catch (e) {
495
- return U(e) ? await K(e, t) : r[1] ? await K(r[1], e) : e instanceof Error ? e.message : e;
496
+ return W(e) ? await q(e, t) : r[1] ? await q(r[1], e) : e instanceof Error ? e.message : e;
496
497
  }
497
498
  }
498
- let i = await Promise.all(r.map((e) => K(e, t))), a = n ? Se[n] : void 0;
499
+ let i = await Promise.all(r.map((e) => q(e, t))), a = n ? xe[n] : void 0;
499
500
  if (!a) throw Error(`Unrecognized operation ${n}`);
500
501
  return a.apply(t, i);
501
502
  }
502
- async function q(e) {
503
- return H(e) ? q(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
503
+ async function J(e) {
504
+ return U(e) ? J(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
504
505
  }
505
- function Ce(e) {
506
+ function Se(e) {
506
507
  return Object.keys(e)[0];
507
508
  }
508
509
  //#endregion
509
510
  //#region src/lifecycle/rules-logic.ts
510
- var we = I(({ client: e }) => O({
511
+ var Ce = L(({ client: e }) => k({
511
512
  source: {
512
513
  stateSnapshot: e.stateSnapshotStore,
513
514
  predicates: e.predicates.listStore,
@@ -526,7 +527,7 @@ var we = I(({ client: e }) => O({
526
527
  let { bucket: e } = await t.getBucket();
527
528
  return e;
528
529
  }, e), {});
529
- return await K(a, {
530
+ return await q(a, {
530
531
  responses: i,
531
532
  location: typeof e.location == "object" ? {
532
533
  hash: e.location.hash,
@@ -546,137 +547,137 @@ var we = I(({ client: e }) => O({
546
547
  });
547
548
  }
548
549
  }));
549
- function Te(e) {
550
- return L(we, e);
550
+ function we(e) {
551
+ return R(Ce, e);
551
552
  }
552
553
  //#endregion
553
554
  //#region src/ping.ts
554
- var Ee = 6e3, De = E("last_ping", "global"), Oe = async (e) => {
555
+ var Te = 6e3, Ee = D("last_ping", "global"), De = async (e) => {
555
556
  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;
557
+ let t = Date.now(), n = T.get(Ee), r = 0;
558
+ if (n.isSet() && (r = n.json() ?? 0), r && t - r < Te) return !0;
558
559
  let i = {
559
560
  projectId: e.projectId,
560
561
  path: window.location.pathname
561
562
  }, a = {}, o = document.getElementById("picked_script")?.dataset.verceltoken;
562
563
  o && (a["x-vercel-protection-bypass"] = o);
563
- let s = (await D(e.apiUrl, "ping", i, a)).ok;
564
+ let s = (await O(e.apiUrl, "ping", i, a)).ok;
564
565
  return s && n.set(t), s;
565
566
  } catch {
566
567
  return !1;
567
568
  }
568
- }, J = j("lifecycle"), ke = I(({ client: e }) => {
569
- let t = J.store(!1), r = P(void 0, {
569
+ }, Y = M("lifecycle"), Oe = L(({ client: e }) => {
570
+ let t = Y.store(!1), r = F(void 0, {
570
571
  skipVoid: !1,
571
- domain: J
572
- }), i = P(void 0, {
572
+ domain: Y
573
+ }), i = F(void 0, {
573
574
  skipVoid: !1,
574
- domain: J
575
- }), a = J.store("idle"), o = J.store([]), s = P(void 0, {
575
+ domain: Y
576
+ }), a = Y.store("idle"), o = Y.store([]), s = F(void 0, {
576
577
  skipVoid: !1,
577
- domain: J
578
- }), c = P(void 0, {
578
+ domain: Y
579
+ }), c = F(void 0, {
579
580
  skipVoid: !1,
580
- domain: J
581
- }), l = N(), u = N(), d = N(), p = N(), m = N(), h = N();
581
+ domain: Y
582
+ }), l = P(), u = P(), d = P(), p = P(), m = P(), h = P();
582
583
  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 () => {
586
- await ee();
587
- }), v = M(async () => {
588
- await se(e);
589
- }), y = O({ effect: v }), b = O({
584
+ let g = N(() => {
585
+ De(e);
586
+ }), _ = N(async () => {
587
+ await v();
588
+ }), y = N(async () => {
589
+ await oe(e);
590
+ }), b = k({ effect: y }), x = k({
590
591
  source: o,
591
592
  effect: async (e) => {
592
593
  for (let t of e) await t();
593
594
  }
594
- }), x = O({
595
+ }), S = k({
595
596
  source: s,
596
597
  effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
597
- }), S = O({
598
+ }), C = k({
598
599
  source: c,
599
600
  effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
600
- }), C = F({
601
+ }), w = I({
601
602
  clock: l,
602
603
  filter: () => f()
603
604
  });
604
- F({
605
- clock: C,
605
+ I({
606
+ clock: w,
606
607
  fn: () => "starting",
607
608
  target: a
608
- }), F({
609
- clock: C,
609
+ }), I({
610
+ clock: w,
610
611
  target: g
611
- }), F({
612
- clock: C,
613
- target: b
614
- }), F({
615
- clock: C,
616
- target: _
617
- }), F({
618
- clock: b.done,
612
+ }), I({
613
+ clock: w,
619
614
  target: x
620
- }), F({
621
- clock: x.doneData,
622
- target: r
623
- }), F({
615
+ }), I({
616
+ clock: w,
617
+ target: _
618
+ }), I({
619
+ clock: x.done,
620
+ target: S
621
+ }), I({
624
622
  clock: S.doneData,
623
+ target: r
624
+ }), I({
625
+ clock: C.doneData,
625
626
  target: i
626
- }), F({
627
- clock: x.doneData,
628
- filter: (e) => e,
629
- target: S
630
- }), F({
627
+ }), I({
631
628
  clock: S.doneData,
629
+ filter: (e) => e,
630
+ target: C
631
+ }), I({
632
+ clock: C.doneData,
632
633
  target: e.session.setIsUser
633
- }), F({
634
- clock: S.doneData,
634
+ }), I({
635
+ clock: C.doneData,
635
636
  fn: (e) => ({
636
637
  type: "user_decide",
637
638
  value: e
638
639
  }),
639
640
  target: e.eventBus
640
- }), F({
641
- clock: x.doneData,
641
+ }), I({
642
+ clock: S.doneData,
642
643
  filter: (e) => !e,
643
644
  fn: () => void 0,
644
645
  target: d
645
- }), F({
646
- clock: S.doneData,
646
+ }), I({
647
+ clock: C.doneData,
647
648
  fn: () => void 0,
648
649
  target: d
649
- }), F({
650
+ }), I({
650
651
  clock: d,
651
652
  fn: () => ({ type: "initialize" }),
652
653
  target: e.eventBus
653
654
  });
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({
655
+ let T = F(!1).on(_.done, () => !0), E = F(!1).on(d, () => !0), D = F(!1).on(b.done, () => !0), O = A(r, i, (e, t) => e === !0 && t === !0);
656
+ return I({
656
657
  clock: d,
657
- source: D,
658
+ source: O,
658
659
  filter: (e) => e,
659
660
  fn: () => void 0,
660
- target: v
661
- }), F({
662
- clock: k(w, T, D, (e, t, n) => e && t && n),
661
+ target: y
662
+ }), I({
663
+ clock: A(T, E, O, (e, t, n) => e && t && n),
663
664
  filter: (e) => e,
664
665
  fn: () => void 0,
665
- target: y
666
- }), F({
667
- clock: k(w, T, D, E, (e, t, n, r) => e && t && (!n || r)),
666
+ target: b
667
+ }), I({
668
+ clock: A(T, E, O, D, (e, t, n, r) => e && t && (!n || r)),
668
669
  filter: (e) => e,
669
670
  fn: () => void 0,
670
671
  target: u
671
- }), F({
672
+ }), I({
672
673
  clock: u,
673
674
  fn: () => "ready",
674
675
  target: a
675
- }), F({
676
+ }), I({
676
677
  clock: u,
677
678
  fn: () => ({ type: "ready" }),
678
679
  target: e.eventBus
679
- }), F({
680
+ }), I({
680
681
  clock: u,
681
682
  source: e.session.store,
682
683
  fn: ({ id: e, isUser: t, identifiers: n }) => ({
@@ -686,13 +687,13 @@ var Ee = 6e3, De = E("last_ping", "global"), Oe = async (e) => {
686
687
  identifiers: n
687
688
  }),
688
689
  target: e.eventBus
689
- }), F({
690
+ }), I({
690
691
  clock: [
691
- b.fail,
692
692
  x.fail,
693
693
  S.fail,
694
- v.fail,
694
+ C.fail,
695
695
  y.fail,
696
+ b.fail,
696
697
  _.fail
697
698
  ],
698
699
  fn: () => "failed",
@@ -708,13 +709,13 @@ var Ee = 6e3, De = E("last_ping", "global"), Oe = async (e) => {
708
709
  setCondition: h
709
710
  };
710
711
  });
711
- function Ae(e) {
712
- return L(ke, e);
712
+ function ke(e) {
713
+ return R(Oe, e);
713
714
  }
714
715
  //#endregion
715
716
  //#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) {
717
+ var Ae = M("predicate"), je = L(({ client: e }) => {
718
+ let t = Ae.store({}), n = j(t, { register(e, t) {
718
719
  return {
719
720
  ...e,
720
721
  [t.name]: {
@@ -722,13 +723,13 @@ var je = j("predicate"), Me = I(({ client: e }) => {
722
723
  predicate: t.predicate
723
724
  }
724
725
  };
725
- } }), i = N();
726
- F({
726
+ } }), i = P();
727
+ I({
727
728
  clock: i,
728
729
  source: t,
729
730
  filter: (e, { name: t }) => e[t] !== void 0,
730
731
  fn: (e, { name: t }) => `Predicate '${t}' already registered. Registering again will override the previous registration.`
731
- }).watch((e) => /* @__PURE__ */ r("warn", e)), F({
732
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
732
733
  clock: i,
733
734
  fn: ({ name: e, predicate: t }) => Object.freeze({
734
735
  name: e,
@@ -741,7 +742,7 @@ var je = j("predicate"), Me = I(({ client: e }) => {
741
742
  return t.map((t) => t[e]?.predicate, { skipVoid: !1 });
742
743
  }
743
744
  function s(t) {
744
- let n = P(() => void 0, { skipVoid: !1 }), r = O({
745
+ let n = F(() => void 0, { skipVoid: !1 }), r = k({
745
746
  source: {
746
747
  predicate: o(t),
747
748
  snapshot: e.stateSnapshotStore
@@ -753,13 +754,13 @@ var je = j("predicate"), Me = I(({ client: e }) => {
753
754
  });
754
755
  }
755
756
  });
756
- return F({
757
+ return I({
757
758
  source: {
758
759
  responses: e.responses.listStore,
759
760
  fields: e.fields.listStore
760
761
  },
761
762
  target: r
762
- }), F({
763
+ }), I({
763
764
  clock: r.doneData,
764
765
  filter: (e) => e !== void 0,
765
766
  target: n
@@ -772,27 +773,27 @@ var je = j("predicate"), Me = I(({ client: e }) => {
772
773
  getEvokablePredicate: s
773
774
  };
774
775
  });
775
- function Ne(e) {
776
- return L(Me, e);
776
+ function Me(e) {
777
+ return R(je, e);
777
778
  }
778
- var Pe = (e, t, n) => {
779
+ var Ne = (e, t, n) => {
779
780
  n.register({
780
781
  name: e,
781
782
  predicate: t
782
783
  });
783
- }, Y = j("feature"), Fe = I(({ client: e }) => {
784
- let t = Y.store({}), n = Y.store([]), i = A(t, { register(e, t) {
784
+ }, Pe = M("feature"), Fe = L(({ client: e }) => {
785
+ let t = Pe.store({}), n = Pe.store([]), i = j(t, { register(e, t) {
785
786
  return {
786
787
  ...e,
787
788
  [t.id]: t.feature
788
789
  };
789
- } }), a = N();
790
- F({
790
+ } }), a = P();
791
+ I({
791
792
  clock: a,
792
793
  source: t,
793
794
  filter: (e, { id: t }) => e[t] !== void 0,
794
795
  fn: (e, { id: t }) => `Feature '${t}' already registered. Registering again will override the previous registration.`
795
- }).watch((e) => /* @__PURE__ */ r("warn", e)), F({
796
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
796
797
  clock: a,
797
798
  fn: ({ id: e, feature: t }) => Object.freeze({
798
799
  id: e,
@@ -806,19 +807,19 @@ var Pe = (e, t, n) => {
806
807
  }),
807
808
  target: i.register
808
809
  });
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();
810
+ let o = N(async ({ id: e, key: t, storage: n = "local" }) => {
811
+ let r = D(`feature:${e}:${t}`, "global"), i = (n === "session" ? E : T).get(r).boolean();
811
812
  return i === null ? null : {
812
813
  id: e,
813
814
  key: t,
814
815
  bucket: i,
815
816
  storage: n
816
817
  };
817
- }), s = M((e) => {
818
+ }), s = N((e) => {
818
819
  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({
820
+ let t = D(`feature:${e.id}:${e.key}`, "global");
821
+ (e.storage === "session" ? E : T).set(t, e.bucket);
822
+ }), c = /* @__PURE__ */ new Map(), l = k({
822
823
  source: {
823
824
  allFeaturesStore: t,
824
825
  resolvedFeaturesStore: n
@@ -849,7 +850,7 @@ var Pe = (e, t, n) => {
849
850
  };
850
851
  }
851
852
  });
852
- F({
853
+ I({
853
854
  clock: i.register,
854
855
  fn: (e) => {
855
856
  let { id: t, feature: n } = e;
@@ -860,7 +861,7 @@ var Pe = (e, t, n) => {
860
861
  };
861
862
  },
862
863
  target: o
863
- }), F({
864
+ }), I({
864
865
  source: t,
865
866
  clock: l.doneData,
866
867
  fn: (e, t) => {
@@ -874,7 +875,7 @@ var Pe = (e, t, n) => {
874
875
  },
875
876
  target: s
876
877
  });
877
- let u = k({
878
+ let u = A({
878
879
  allFeaturesStore: t,
879
880
  resolvedFeaturesStore: n
880
881
  }).map(({ allFeaturesStore: e, resolvedFeaturesStore: t }) => Object.values(e).map((e) => {
@@ -896,7 +897,7 @@ var Pe = (e, t, n) => {
896
897
  isResolved: !1
897
898
  };
898
899
  }));
899
- F({
900
+ I({
900
901
  clock: l.doneData,
901
902
  source: { resolvedFeatures: n },
902
903
  filter: ({ resolvedFeatures: e }, { id: t, key: n }) => !e.some((e) => e.id === t && e.key === n),
@@ -905,7 +906,7 @@ var Pe = (e, t, n) => {
905
906
  type: "feature_decide",
906
907
  feature: e
907
908
  }))
908
- }), F({
909
+ }), I({
909
910
  clock: [o.doneData, l.doneData],
910
911
  source: n,
911
912
  fn: (e, t) => !t || e.some((e) => e.id === t.id && e.key === t.key) ? e : [...e, t],
@@ -918,17 +919,17 @@ var Pe = (e, t, n) => {
918
919
  return t.map((t) => t[e], { skipVoid: !1 });
919
920
  }
920
921
  function p(e) {
921
- let t = P(async () => void 0, { skipVoid: !1 }), r = O({
922
+ let t = F(async () => void 0, { skipVoid: !1 }), r = k({
922
923
  source: d(e),
923
924
  effect: async (e) => {
924
925
  if (e) return async () => (await e.getBucket()).bucket;
925
926
  }
926
927
  });
927
- return F({
928
+ return I({
928
929
  source: n,
929
930
  filter: (t) => t.some((t) => t.id === e),
930
931
  target: r
931
- }), F({
932
+ }), I({
932
933
  clock: r.doneData,
933
934
  filter: (e) => e !== void 0,
934
935
  target: t
@@ -943,33 +944,33 @@ var Pe = (e, t, n) => {
943
944
  };
944
945
  });
945
946
  function Ie(e) {
946
- return L(Fe, e);
947
+ return R(Fe, e);
947
948
  }
948
949
  var Le = (e, t, n) => {
949
950
  n.register({
950
951
  id: e,
951
952
  feature: t
952
953
  });
953
- }, X = j("history");
954
+ }, X = M("history");
954
955
  function Re(e, t) {
955
956
  return {
956
- id: ne(`history-entry-${Date.now()}-${Math.random()}}`),
957
+ id: te(`history-entry-${Date.now()}-${Math.random()}}`),
957
958
  node: t,
958
959
  at: Date.now(),
959
960
  experienceId: e
960
961
  };
961
962
  }
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) {
963
+ var ze = L(() => {
964
+ let e = X.store({ entries: [] }), t = X.event(), n = X.event(), r = X.event(), i = X.event(), a = X.event();
965
+ 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), e.on(a, (e, { experienceId: t }) => ({ entries: e.entries.filter((e) => e.experienceId !== t) }));
966
+ function o(e, t) {
966
967
  let n = {
967
968
  lastStepIndex: -1,
968
969
  secondLastStepIndex: -1
969
970
  };
970
971
  for (let r = e.length - 1; r >= 0; r--) {
971
972
  let i = e[r], a = i?.node;
972
- if (!(!a || !v(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
973
+ if (!(!a || !x(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
973
974
  else {
974
975
  n.secondLastStepIndex = r;
975
976
  break;
@@ -978,7 +979,7 @@ var ze = I(() => {
978
979
  return n;
979
980
  }
980
981
  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
+ let { secondLastStepIndex: n } = o(e.entries, t.experienceId), r = n === -1 ? e.entries : e.entries.slice(0, n + 1);
982
983
  return {
983
984
  ...e,
984
985
  entries: r
@@ -988,23 +989,24 @@ var ze = I(() => {
988
989
  replace: n,
989
990
  back: r,
990
991
  restore: i,
992
+ resetExperience: a,
991
993
  entriesStore: e.map((e) => e.entries)
992
994
  };
993
995
  });
994
996
  function Be() {
995
- return L(ze);
997
+ return R(ze);
996
998
  }
997
999
  //#endregion
998
1000
  //#region src/utils/events.ts
999
1001
  var Ve = 0, He = (e) => {
1000
- let t = P([]);
1002
+ let t = F([]);
1001
1003
  return t.on(e, (e, t) => [...e, {
1002
1004
  id: Ve++,
1003
1005
  at: /* @__PURE__ */ new Date(),
1004
1006
  payload: t
1005
1007
  }]), t;
1006
- }, Ue = j("field"), We = I(() => {
1007
- let e = Ue.store({}), t = A(e, {
1008
+ }, Ue = M("field"), We = L(() => {
1009
+ let e = Ue.store({}), t = j(e, {
1008
1010
  register(e, t) {
1009
1011
  return {
1010
1012
  ...e,
@@ -1053,12 +1055,12 @@ var Ve = 0, He = (e) => {
1053
1055
  };
1054
1056
  });
1055
1057
  function Ge() {
1056
- return L(We);
1058
+ return R(We);
1057
1059
  }
1058
1060
  //#endregion
1059
1061
  //#region src/entities/step/step.ts
1060
- var Ke = j("step"), qe = I(() => {
1061
- let e = Ke.store({}), t = A(e, { register(e, t) {
1062
+ var Ke = M("step"), qe = L(() => {
1063
+ let e = Ke.store({}), t = j(e, { register(e, t) {
1062
1064
  return {
1063
1065
  ...e,
1064
1066
  [t.step.id]: t.step
@@ -1083,15 +1085,15 @@ var Ke = j("step"), qe = I(() => {
1083
1085
  };
1084
1086
  });
1085
1087
  function Je() {
1086
- return L(qe);
1088
+ return R(qe);
1087
1089
  }
1088
1090
  function Ye(e, t) {
1089
1091
  t.register(e);
1090
1092
  }
1091
1093
  //#endregion
1092
1094
  //#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
+ var Xe = M("content"), Ze = L(() => {
1096
+ let e = Xe.store({}), t = j(e, { register(e, t) {
1095
1097
  return {
1096
1098
  ...e,
1097
1099
  [t.content.id]: t.content
@@ -1112,15 +1114,15 @@ var Xe = j("content"), Ze = I(() => {
1112
1114
  };
1113
1115
  });
1114
1116
  function Qe() {
1115
- return L(Ze);
1117
+ return R(Ze);
1116
1118
  }
1117
1119
  function $e(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 et = M("action"), tt = L(({ client: e }) => {
1125
+ let t = et.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
@@ -1179,7 +1181,7 @@ var et = j("action"), tt = I(({ client: e }) => {
1179
1181
  };
1180
1182
  });
1181
1183
  function nt(e) {
1182
- return L(tt, e);
1184
+ return R(tt, e);
1183
1185
  }
1184
1186
  var rt = (e, t, n) => {
1185
1187
  n.register({
@@ -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 dt = M("response"), ft = L(({ client: e }) => {
1257
+ let t = dt.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
@@ -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,16 +1373,30 @@ 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
+ 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
+ });
1383
+ let v = k({
1384
+ source: e.experiences.listStore,
1385
+ effect: (e, t) => {
1386
+ let n = e.find((e) => e.id === t);
1387
+ if (!n) return;
1388
+ let { steps: r } = n.treeStore.getState(), a = r.flatMap((e) => e.fieldKeys);
1389
+ for (let e of a) i(e);
1390
+ }
1391
+ });
1392
+ function y(e) {
1393
+ v(e);
1394
+ }
1395
+ return {
1381
1396
  register: o,
1382
1397
  clearAll: r,
1383
1398
  clear: i,
1399
+ clearByExperience: y,
1384
1400
  commit: d,
1385
1401
  getResponsesToCommit: l,
1386
1402
  listStore: p,
@@ -1391,12 +1407,12 @@ var dt = j("response"), ft = I(({ client: e }) => {
1391
1407
  };
1392
1408
  });
1393
1409
  function pt(e) {
1394
- return L(ft, e);
1410
+ return R(ft, e);
1395
1411
  }
1396
1412
  //#endregion
1397
1413
  //#region src/entities/condition/condition.ts
1398
- var mt = j("condition"), ht = I(() => {
1399
- let e = mt.store({}), t = A(e, { register(e, t) {
1414
+ var mt = M("condition"), ht = L(() => {
1415
+ let e = mt.store({}), t = j(e, { register(e, t) {
1400
1416
  return {
1401
1417
  ...e,
1402
1418
  [t.condition.id]: t.condition
@@ -1421,7 +1437,7 @@ var mt = j("condition"), ht = I(() => {
1421
1437
  };
1422
1438
  });
1423
1439
  function gt() {
1424
- return L(ht);
1440
+ return R(ht);
1425
1441
  }
1426
1442
  //#endregion
1427
1443
  //#region src/utils/api-url.ts
@@ -1448,23 +1464,23 @@ function vt() {
1448
1464
  let n = r.replace("picked-", "");
1449
1465
  t[n] = e.getAll(r);
1450
1466
  }
1451
- let r = E("s");
1452
- if (n.size > 0) T.set(r, t);
1467
+ let r = D("s");
1468
+ if (n.size > 0) E.set(r, t);
1453
1469
  else {
1454
- let e = T.get(r);
1470
+ let e = E.get(r);
1455
1471
  if (e) return e.json() || {};
1456
1472
  }
1457
1473
  return t;
1458
1474
  }
1459
1475
  //#endregion
1460
1476
  //#region src/entities/session/session.ts
1461
- var yt = E("session", "global");
1477
+ var yt = D("session", "global");
1462
1478
  function bt() {
1463
1479
  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
1480
  }
1465
1481
  function xt() {
1466
1482
  if (!u()) return null;
1467
- let e = w.get(yt);
1483
+ let e = T.get(yt);
1468
1484
  if (!e.isSet()) return null;
1469
1485
  try {
1470
1486
  return e.json();
@@ -1472,10 +1488,10 @@ function xt() {
1472
1488
  return null;
1473
1489
  }
1474
1490
  }
1475
- var St = I(() => {
1491
+ var St = L(() => {
1476
1492
  let e = xt(), t = { id: e?.id ?? bt() };
1477
1493
  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, {
1494
+ let n = F(t), r = j(n, {
1479
1495
  setIsUser: (e, t) => ({
1480
1496
  ...e,
1481
1497
  isUser: t
@@ -1496,13 +1512,13 @@ var St = I(() => {
1496
1512
  return e.isUser !== void 0 && (i.isUser = e.isUser), Object.keys(r).length > 0 && (i.identifiers = r), i;
1497
1513
  }
1498
1514
  });
1499
- return F({
1515
+ return I({
1500
1516
  source: n,
1501
- target: O({
1517
+ target: k({
1502
1518
  source: n,
1503
1519
  effect: (e) => {
1504
1520
  if (u()) try {
1505
- w.get(yt).set(e);
1521
+ T.get(yt).set(e);
1506
1522
  } catch {}
1507
1523
  }
1508
1524
  })
@@ -1514,7 +1530,7 @@ var St = I(() => {
1514
1530
  };
1515
1531
  });
1516
1532
  function Ct() {
1517
- return L(St, void 0);
1533
+ return R(St, void 0);
1518
1534
  }
1519
1535
  //#endregion
1520
1536
  //#region src/utils/picked-config.ts
@@ -1604,7 +1620,7 @@ var Nt = class {
1604
1620
  dataSource = null;
1605
1621
  contentLoader;
1606
1622
  plugins = {};
1607
- eventBus = N();
1623
+ eventBus = P();
1608
1624
  events;
1609
1625
  projectId;
1610
1626
  apiUrl;
@@ -1613,11 +1629,11 @@ var Nt = class {
1613
1629
  session = Ct();
1614
1630
  searchParams = vt();
1615
1631
  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 });
1632
+ components = pe({ client: this });
1633
+ experienceInstances = S({ client: this });
1634
+ experiences = ae({ client: this });
1635
+ frameworks = ge({ client: this });
1636
+ predicates = Me({ client: this });
1621
1637
  features = Ie({ client: this });
1622
1638
  conditions = gt();
1623
1639
  fields = Ge();
@@ -1625,15 +1641,15 @@ var Nt = class {
1625
1641
  steps = Je();
1626
1642
  contents = Qe();
1627
1643
  actions = nt({ client: this });
1628
- stateSnapshotStore = be({ client: this });
1629
- evaluateRuleLogicFx = Te({ client: this });
1644
+ stateSnapshotStore = ye({ client: this });
1645
+ evaluateRuleLogicFx = we({ client: this });
1630
1646
  start;
1631
1647
  readyStore;
1632
1648
  preconditionPassedStore;
1633
1649
  conditionPassedStore;
1634
1650
  lifecycleStageStore;
1635
- lifecycle = Ae({ client: this });
1636
- renderStringFx = O({
1651
+ lifecycle = ke({ client: this });
1652
+ renderStringFx = k({
1637
1653
  source: this.responses.listStore,
1638
1654
  effect: (e, { template: t, context: n }) => {
1639
1655
  let r = {};
@@ -1647,17 +1663,17 @@ var Nt = class {
1647
1663
  constructor(e) {
1648
1664
  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({
1649
1665
  type: "load",
1650
- version: te()
1666
+ version: ee()
1651
1667
  });
1652
1668
  }
1653
1669
  registerFramework = (e) => {
1654
- ve(e, this.frameworks);
1670
+ _e(e, this.frameworks);
1655
1671
  };
1656
1672
  registerComponent = (e, t) => {
1657
- z(e, t, this.components);
1673
+ B(e, t, this.components);
1658
1674
  };
1659
1675
  registerPlugin = (e) => {
1660
- le(this, e, this.plugins);
1676
+ ce(this, e, this.plugins);
1661
1677
  let t = this.plugins[e.name];
1662
1678
  t?.onStart && this.lifecycle.registerPluginStartHook(t.onStart);
1663
1679
  };
@@ -1665,7 +1681,7 @@ var Nt = class {
1665
1681
  Le(e, t, this.features);
1666
1682
  };
1667
1683
  registerPredicate = (e, t) => {
1668
- Pe(e, t, this.predicates);
1684
+ Ne(e, t, this.predicates);
1669
1685
  };
1670
1686
  registerCondition = (e) => {
1671
1687
  this.conditions.register(e);
@@ -1683,7 +1699,7 @@ var Nt = class {
1683
1699
  rt(e, t, this.actions);
1684
1700
  };
1685
1701
  registerExperience = (e) => {
1686
- e.component && z(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1702
+ e.component && B(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1687
1703
  };
1688
1704
  launchExperienceById = async (e, t) => {
1689
1705
  this.experiences.launch({
@@ -1784,4 +1800,4 @@ var It = (e) => {
1784
1800
  return d(t), t;
1785
1801
  };
1786
1802
  //#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 };
1803
+ export { Nt as Picked, It as createClient, se as createPluginEffect, D as createStorageKey, n as evaluateRuleLogic, wt as getPickedConfig, Ft as isLazyLoader, g as isPickedRoot, Pt as lazyComponent, T as localStore, E as sessionStore, w 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 };