@picked/client 0.0.1-dev.1777602638912 → 0.0.1-dev.1777611471601

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 (39) hide show
  1. package/dist/{api-AgvW9_WG.cjs → api-CP_eIRW2.cjs} +1 -1
  2. package/dist/{api-5yb5p-eh.js → api-UYfzBUGT.js} +1 -1
  3. package/dist/cjs/form/index.js +1 -1
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/plugins/create-experience/index.js +1 -1
  6. package/dist/cjs/plugins/dom-observer/index.js +1 -0
  7. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  8. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  10. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  11. package/dist/cjs/server/index.js +1 -1
  12. package/dist/esm/form/index.js +16 -31
  13. package/dist/esm/index.js +169 -294
  14. package/dist/esm/plugins/create-experience/index.js +1 -1
  15. package/dist/esm/plugins/dom-observer/index.js +58 -0
  16. package/dist/esm/plugins/dynamic-experiences/index.js +1 -1
  17. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  18. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  19. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  20. package/dist/esm/server/index.js +1 -1
  21. package/dist/experience-BhteyYBl.cjs +1 -0
  22. package/dist/experience-CoMdlvyn.js +136 -0
  23. package/dist/experience-instance-CZDcicPj.cjs +1 -0
  24. package/dist/experience-instance-IkIw31Cg.js +387 -0
  25. package/dist/nodes-ChVU1VZO.js +101 -0
  26. package/dist/nodes-DDDs-rC2.cjs +1 -0
  27. package/dist/types/form/create-form.d.ts +0 -32
  28. package/dist/types/form/create-form.d.ts.map +1 -1
  29. package/dist/types/plugins/dom-observer/index.d.ts +3 -0
  30. package/dist/types/plugins/dom-observer/index.d.ts.map +1 -0
  31. package/dist/types/plugins/dom-observer/plugin.d.ts +37 -0
  32. package/dist/types/plugins/dom-observer/plugin.d.ts.map +1 -0
  33. package/package.json +11 -1
  34. package/dist/experience-instance-DC2gKwA6.cjs +0 -1
  35. package/dist/experience-instance-DJaNc5Ob.js +0 -486
  36. /package/dist/{id-CRqy981z.js → id-B-N2zNbS.js} +0 -0
  37. /package/dist/{id-Bv44ilEo.cjs → id-Bbodazn8.cjs} +0 -0
  38. /package/dist/{storage-B6lQtc4-.cjs → storage-BXSlLTRa.cjs} +0 -0
  39. /package/dist/{storage-6Xk0uAxB.js → storage-hOHCCXvP.js} +0 -0
package/dist/esm/index.js CHANGED
@@ -1,142 +1,17 @@
1
- import { n as e, t } from "../rules-logic-BTIxfrJJ.js";
2
- import { t as n } from "../object-C82v79xc.js";
3
- import { t as r } from "../logger-6z_gb4rA.js";
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 ee, n as te, o as ne, r as re, s as y } from "../experience-instance-DJaNc5Ob.js";
6
- import { i as ie, n as b, r as x, t as S } from "../storage-6Xk0uAxB.js";
7
- import { n as ae, r as oe } from "../api-5yb5p-eh.js";
8
- import { t as se } from "../id-CRqy981z.js";
1
+ import { t as e } from "../rules-logic-BTIxfrJJ.js";
2
+ import { t } from "../object-C82v79xc.js";
3
+ import { t as n } from "../logger-6z_gb4rA.js";
4
+ import { a as r, c as i, d as a, i as o, l as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m } from "../supports-0XIfd4-R.js";
5
+ import { a as h, c as g, u as _ } from "../nodes-ChVU1VZO.js";
6
+ import { n as v, t as ee } from "../experience-CoMdlvyn.js";
7
+ import { i as te, n as y, r as b, t as x } from "../storage-hOHCCXvP.js";
8
+ import { n as ne, r as re } from "../api-UYfzBUGT.js";
9
+ import { n as ie } from "../experience-instance-IkIw31Cg.js";
10
+ import { t as S } from "../id-B-N2zNbS.js";
9
11
  import { attach as C, combine as w, createApi as T, createDomain as E, createEffect as D, createEvent as O, createStore as k, sample as A } from "effector";
10
12
  import { createFactory as j, invoke as M } from "@withease/factories";
11
- //#region src/entities/experience/experience.ts
12
- var N = E("experience"), ce = j(({ client: e, experience: t }) => {
13
- let n = N.store(t), r = T(n, { merge(e, t) {
14
- return {
15
- ...e,
16
- ...t.experience
17
- };
18
- } }), i = n.map((e) => ({
19
- name: e.name,
20
- decisionLogic: e.condition,
21
- targetSelectors: e.targets,
22
- initializeOpenLogic: e.initializeOpen
23
- })), a = w(n, 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 }), o = w(n, 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(re).map((e) => n[e.conditionId]).filter((e) => e !== void 0);
25
- return {
26
- steps: r,
27
- nodes: e.nodes,
28
- edges: e.edges,
29
- conditions: i
30
- };
31
- }), s = t.actions ?? [];
32
- return {
33
- id: t.id,
34
- key: t.key,
35
- name: t.name,
36
- configStore: i,
37
- treeStore: o,
38
- componentStore: a,
39
- actions: s,
40
- merge: r.merge
41
- };
42
- });
43
- function le(e) {
44
- return M(ce, e);
45
- }
46
- var ue = j(({ client: e }) => {
47
- let t = N.store({}), n = T(t, { register(e, t) {
48
- return {
49
- ...e,
50
- [t.id]: t
51
- };
52
- } });
53
- function r(r) {
54
- let i = t.getState()[r.id];
55
- if (i) {
56
- i.merge({
57
- experience: r,
58
- strategy: "override"
59
- });
60
- return;
61
- }
62
- let a = le({
63
- client: e,
64
- experience: r
65
- });
66
- n.register(a);
67
- }
68
- let i = t.map((e) => Object.values(e));
69
- function a(e) {
70
- return t.map((t) => t[e], { skipVoid: !1 });
71
- }
72
- function o(e) {
73
- return t.map((t) => Object.values(t).find((t) => t.key === e) ?? t[e], { skipVoid: !1 });
74
- }
75
- let s = C({
76
- source: t,
77
- effect: async (t, n) => {
78
- let r = "key" in n ? Object.values(t).find((e) => e.key === n.key) : t[n.id];
79
- if (!r) {
80
- "key" in n ? `${n.key}` : `${n.id}`;
81
- return;
82
- }
83
- let { options: i } = n;
84
- if (i?.bypassCondition) {
85
- P(e, r, i);
86
- return;
87
- }
88
- await I(e, r) && P(e, r, i);
89
- }
90
- });
91
- return {
92
- register: r,
93
- get: a,
94
- getById: a,
95
- getByKey: o,
96
- launch: s,
97
- open: C({
98
- source: {
99
- experiences: t,
100
- instances: e.experienceInstances.listStore
101
- },
102
- effect: ({ experiences: e, instances: t }, n) => {
103
- 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);
104
- if (i.length > 0) for (let e of i) e.open();
105
- else s("key" in n ? {
106
- key: n.key,
107
- options: {
108
- ...n.options,
109
- initialiseOpen: !0
110
- }
111
- } : {
112
- id: n.id,
113
- options: {
114
- ...n.options,
115
- initialiseOpen: !0
116
- }
117
- });
118
- }
119
- }),
120
- listStore: i
121
- };
122
- });
123
- function de(e) {
124
- return M(ue, e);
125
- }
126
- var P = (e, t, n) => {
127
- let { targetSelectors: r } = t.configStore.getState(), i = y(r, t.id);
128
- i.forEach(({ elements: e }) => e.forEach((e) => ee(e, t.id))), g(i, t.id, t.key).forEach((r) => {
129
- n ? e.experienceInstances.spawn(t, r, n) : e.experienceInstances.spawn(t, r);
130
- });
131
- }, F = async (e) => {
132
- await Promise.all(e.experiences.listStore.getState().map(async (t) => {
133
- await I(e, t) && P(e, t);
134
- }));
135
- }, I = async (n, r) => {
136
- if (!n.preconditionPassed || !n.session?.isUser) return !1;
137
- let { decisionLogic: i, targetSelectors: a } = r.configStore.getState();
138
- return y(a, r.id).length < 1 || a.length === 0 ? !1 : i === void 0 ? !0 : e(i) ? await t(n, i) === !0 : !0;
139
- }, fe = (e, t, n) => {
13
+ //#region src/entities/plugin/plugin.ts
14
+ var ae = (e, t, n) => {
140
15
  let r = t.name, i = t.setup(e);
141
16
  if (i) {
142
17
  let e = n[r] ?? {};
@@ -145,16 +20,16 @@ var P = (e, t, n) => {
145
20
  ...i
146
21
  });
147
22
  }
148
- }, L = E("component"), R = j(({ client: e, component: t, name: n }) => ({
23
+ }, oe = E("component"), se = j(({ client: e, component: t, name: n }) => ({
149
24
  name: n,
150
25
  component: t,
151
26
  frameworkStore: e.frameworks.getByName(t.frameworkName)
152
27
  }));
153
- function z(e) {
154
- return M(R, e);
28
+ function ce(e) {
29
+ return M(se, e);
155
30
  }
156
- var B = j(({ client: e }) => {
157
- let t = L.store({}), n = T(t, { register(e, t) {
31
+ var le = j(({ client: e }) => {
32
+ let t = oe.store({}), n = T(t, { register(e, t) {
158
33
  return {
159
34
  ...e,
160
35
  [t.name]: t
@@ -162,7 +37,7 @@ var B = j(({ client: e }) => {
162
37
  } });
163
38
  function r(r, i) {
164
39
  t.getState()[r] && `${r}`;
165
- let a = z({
40
+ let a = ce({
166
41
  client: e,
167
42
  name: r,
168
43
  component: i
@@ -179,13 +54,13 @@ var B = j(({ client: e }) => {
179
54
  listStore: i
180
55
  };
181
56
  });
182
- function V(e) {
183
- return M(B, e);
57
+ function ue(e) {
58
+ return M(le, e);
184
59
  }
185
- var H = (e, t, n) => {
60
+ var N = (e, t, n) => {
186
61
  n.register(e, t);
187
- }, pe = E("framework"), me = j(({ client: e }) => {
188
- let t = pe.store({}), n = T(t, { register(e, t) {
62
+ }, P = E("framework"), F = j(({ client: e }) => {
63
+ let t = P.store({}), n = T(t, { register(e, t) {
189
64
  return {
190
65
  ...e,
191
66
  [t.name]: t.framework
@@ -207,21 +82,21 @@ var H = (e, t, n) => {
207
82
  listStore: i
208
83
  };
209
84
  });
210
- function he(e) {
211
- return M(me, e);
85
+ function I(e) {
86
+ return M(F, e);
212
87
  }
213
- var ge = (e, t) => {
88
+ var L = (e, t) => {
214
89
  t.register(e.name, e);
215
- }, _e = 6e3, ve = S("last_ping", "global"), ye = async (e) => {
90
+ }, R = 6e3, z = x("last_ping", "global"), B = async (e) => {
216
91
  try {
217
- let t = Date.now(), n = b.get(ve), r = 0;
218
- if (n.isSet() && (r = n.json() ?? 0), r && t - r < _e) return !0;
92
+ let t = Date.now(), n = y.get(z), r = 0;
93
+ if (n.isSet() && (r = n.json() ?? 0), r && t - r < R) return !0;
219
94
  let i = {
220
95
  projectId: e.projectId,
221
96
  path: window.location.pathname
222
97
  }, a = {}, o = document.getElementById("picked_script")?.dataset.verceltoken;
223
98
  o && (a["x-vercel-protection-bypass"] = o);
224
- let s = (await ae(e.apiUrl, "ping", i, a)).ok;
99
+ let s = (await ne(e.apiUrl, "ping", i, a)).ok;
225
100
  return s && n.set(t), s;
226
101
  } catch {
227
102
  return !1;
@@ -229,7 +104,7 @@ var ge = (e, t) => {
229
104
  };
230
105
  //#endregion
231
106
  //#region src/utils/state-snaphot.ts
232
- function U(e) {
107
+ function V(e) {
233
108
  let t = typeof window < "u", n = {
234
109
  client: e,
235
110
  responses: e.responses.listStore.getState(),
@@ -243,8 +118,8 @@ function U(e) {
243
118
  }
244
119
  //#endregion
245
120
  //#region src/entities/predicate/predicate.ts
246
- var be = E("predicate"), xe = j(({ client: e }) => {
247
- let t = be.store({}), n = T(t, { register(e, t) {
121
+ var H = E("predicate"), U = j(({ client: e }) => {
122
+ let t = H.store({}), n = T(t, { register(e, t) {
248
123
  return {
249
124
  ...e,
250
125
  [t.name]: {
@@ -267,7 +142,7 @@ var be = E("predicate"), xe = j(({ client: e }) => {
267
142
  let n = k(() => void 0, { skipVoid: !1 }), r = D(async () => {
268
143
  let n = a(t).getState();
269
144
  if (!n) return;
270
- let r = U(e);
145
+ let r = V(e);
271
146
  return (...e) => n({
272
147
  ...r,
273
148
  args: e
@@ -292,12 +167,12 @@ var be = E("predicate"), xe = j(({ client: e }) => {
292
167
  getEvokablePredicate: o
293
168
  };
294
169
  });
295
- function Se(e) {
296
- return M(xe, e);
170
+ function de(e) {
171
+ return M(U, e);
297
172
  }
298
- var Ce = (e, t, n) => {
173
+ var fe = (e, t, n) => {
299
174
  n.register(e, t);
300
- }, W = E("feature"), we = j(({ client: e }) => {
175
+ }, W = E("feature"), pe = j(({ client: e }) => {
301
176
  let t = W.store({}), n = W.store([]), r = T(t, { register(e, t) {
302
177
  return {
303
178
  ...e,
@@ -319,7 +194,7 @@ var Ce = (e, t, n) => {
319
194
  }));
320
195
  }
321
196
  let a = D(async ({ id: e, key: t, storage: n = "local" }) => {
322
- let r = S(`feature:${e}:${t}`, "global"), i = (n === "session" ? x : b).get(r).boolean();
197
+ let r = x(`feature:${e}:${t}`, "global"), i = (n === "session" ? b : y).get(r).boolean();
323
198
  return i === null ? null : {
324
199
  id: e,
325
200
  key: t,
@@ -328,8 +203,8 @@ var Ce = (e, t, n) => {
328
203
  };
329
204
  }), o = D((e) => {
330
205
  if (!e) return null;
331
- let t = S(`feature:${e.id}:${e.key}`, "global");
332
- (e.storage === "session" ? x : b).set(t, e.bucket);
206
+ let t = x(`feature:${e.id}:${e.key}`, "global");
207
+ (e.storage === "session" ? b : y).set(t, e.bucket);
333
208
  }), s = /* @__PURE__ */ new Map(), c = C({
334
209
  source: {
335
210
  allFeaturesStore: t,
@@ -452,21 +327,21 @@ var Ce = (e, t, n) => {
452
327
  getEvokableFeature: f
453
328
  };
454
329
  });
455
- function Te(e) {
456
- return M(we, e);
330
+ function me(e) {
331
+ return M(pe, e);
457
332
  }
458
- var Ee = (e, t, n) => {
333
+ var he = (e, t, n) => {
459
334
  n.register(e, t);
460
335
  }, G = E("history");
461
336
  function K(e, t) {
462
337
  return {
463
- id: se(`history-entry-${Date.now()}-${Math.random()}}`),
338
+ id: S(`history-entry-${Date.now()}-${Math.random()}}`),
464
339
  node: t,
465
340
  at: Date.now(),
466
341
  experienceId: e
467
342
  };
468
343
  }
469
- var De = j(() => {
344
+ var ge = j(() => {
470
345
  let e = G.store({ entries: [] }), t = G.event(), n = G.event(), r = G.event(), i = G.event();
471
346
  e.on(t, (e, t) => ({ entries: [...e.entries, K(t.experienceId, t.node)] })), e.on(n, (e, t) => ({ entries: [...e.entries.slice(0, -1), K(t.experienceId, t.node)] })), e.on(i, (e, t) => t);
472
347
  function a(e, t) {
@@ -476,7 +351,7 @@ var De = j(() => {
476
351
  };
477
352
  for (let r = e.length - 1; r >= 0; r--) {
478
353
  let i = e[r], a = i?.node;
479
- if (!(!a || !v(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
354
+ if (!(!a || !h(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
480
355
  else {
481
356
  n.secondLastStepIndex = r;
482
357
  break;
@@ -498,25 +373,25 @@ var De = j(() => {
498
373
  entriesStore: e.map((e) => e.entries)
499
374
  };
500
375
  });
501
- function Oe() {
502
- return M(De);
376
+ function _e() {
377
+ return M(ge);
503
378
  }
504
379
  //#endregion
505
380
  //#region src/utils/events.ts
506
- var ke = 0, Ae = (e) => {
381
+ var ve = 0, ye = (e) => {
507
382
  let t = k([]);
508
383
  return A({
509
384
  clock: e,
510
385
  source: t,
511
386
  fn: (e, t) => [...e, {
512
- id: ke++,
387
+ id: ve++,
513
388
  at: /* @__PURE__ */ new Date(),
514
389
  payload: t
515
390
  }],
516
391
  target: t
517
392
  }), t;
518
- }, je = E("field"), Me = j(() => {
519
- let e = je.store({}), t = T(e, {
393
+ }, be = E("field"), xe = j(() => {
394
+ let e = be.store({}), t = T(e, {
520
395
  register(e, t) {
521
396
  return {
522
397
  ...e,
@@ -560,13 +435,13 @@ var ke = 0, Ae = (e) => {
560
435
  getByName: s
561
436
  };
562
437
  });
563
- function Ne() {
564
- return M(Me);
438
+ function Se() {
439
+ return M(xe);
565
440
  }
566
441
  //#endregion
567
442
  //#region src/entities/step/step.ts
568
- var Pe = E("step"), Fe = j(() => {
569
- let e = Pe.store({}), t = T(e, { register(e, t) {
443
+ var Ce = E("step"), we = j(() => {
444
+ let e = Ce.store({}), t = T(e, { register(e, t) {
570
445
  return {
571
446
  ...e,
572
447
  [t.step.id]: t.step
@@ -590,16 +465,16 @@ var Pe = E("step"), Fe = j(() => {
590
465
  indexStore: e
591
466
  };
592
467
  });
593
- function Ie() {
594
- return M(Fe);
468
+ function Te() {
469
+ return M(we);
595
470
  }
596
- function Le(e, t) {
471
+ function Ee(e, t) {
597
472
  t.register(e);
598
473
  }
599
474
  //#endregion
600
475
  //#region src/entities/action/action.ts
601
- var Re = E("action"), ze = j(({ client: e }) => {
602
- let t = Re.store({}), n = T(t, { register(e, t) {
476
+ var De = E("action"), Oe = j(({ client: e }) => {
477
+ let t = De.store({}), n = T(t, { register(e, t) {
603
478
  return {
604
479
  ...e,
605
480
  [t.key]: {
@@ -622,7 +497,7 @@ var Re = E("action"), ze = j(({ client: e }) => {
622
497
  let r = k(() => void 0, { skipVoid: !1 }), i = n ? { experience: n.experience } : null, o = D(async () => {
623
498
  let n = a(t).getState();
624
499
  if (!n) return;
625
- let r = U(e);
500
+ let r = V(e);
626
501
  return (...e) => n({
627
502
  ...r,
628
503
  args: e
@@ -647,10 +522,10 @@ var Re = E("action"), ze = j(({ client: e }) => {
647
522
  getEvokableAction: o
648
523
  };
649
524
  });
650
- function Be(e) {
651
- return M(ze, e);
525
+ function ke(e) {
526
+ return M(Oe, e);
652
527
  }
653
- var Ve = (e, t, n) => {
528
+ var Ae = (e, t, n) => {
654
529
  n.register(e, t);
655
530
  };
656
531
  //#endregion
@@ -666,7 +541,7 @@ function q(e, t, n, r) {
666
541
  function J(e) {
667
542
  return e === null || e === "" || Array.isArray(e) && !e.length;
668
543
  }
669
- function He(e) {
544
+ function je(e) {
670
545
  return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
671
546
  }
672
547
  function Y(e) {
@@ -676,13 +551,13 @@ function Y(e) {
676
551
  return !1;
677
552
  }
678
553
  }
679
- function Ue(e, t) {
554
+ function Me(e, t) {
680
555
  return t.find((t) => t.key === e) ?? null;
681
556
  }
682
- function We(e, t) {
557
+ function Ne(e, t) {
683
558
  return e.multiple && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") ? [t] : t;
684
559
  }
685
- function Ge(e, t) {
560
+ function Pe(e, t) {
686
561
  if (e.type !== "object" || J(t)) return null;
687
562
  if (e.multiple) {
688
563
  if (!Array.isArray(t)) return q(e, t, "This field expects multiple values", "Field expects an array of objects.");
@@ -694,7 +569,7 @@ function Ge(e, t) {
694
569
  }
695
570
  return Array.isArray(t) ? q(e, t, "This field expects a single value", "Field expects a single object, not an array.") : typeof t != "object" || !t ? q(e, t, "This field expects an object value", "Field expects an object value.") : Y(t) ? null : q(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
696
571
  }
697
- function Ke(e, t) {
572
+ function Fe(e, t) {
698
573
  if (J(t) || !Array.isArray(e.options) || e.options.length === 0) return null;
699
574
  let n = Array.isArray(t) ? t : [t];
700
575
  if (e.type === "object") {
@@ -702,23 +577,23 @@ function Ke(e, t) {
702
577
  return n.every((e) => r.has(JSON.stringify(e))) ? null : q(e, t, "This field expects a valid option", "Field expects a valid option from the defined choices.");
703
578
  }
704
579
  let r = e.options.map((e) => e.value);
705
- return n.every((e) => !He(e) || e === null ? !1 : r.includes(e)) ? null : q(e, t, "This field expects a valid option", `Field expects a valid option. Valid options are: ${r.join(", ")}`);
580
+ return n.every((e) => !je(e) || e === null ? !1 : r.includes(e)) ? null : q(e, t, "This field expects a valid option", `Field expects a valid option. Valid options are: ${r.join(", ")}`);
706
581
  }
707
- async function qe(e, t, r, i) {
708
- if (t.validation && !n(t.validation) && !J(r)) {
709
- let n = i ? {
582
+ async function Ie(e, n, r, i) {
583
+ if (n.validation && !t(n.validation) && !J(r)) {
584
+ let t = i ? {
710
585
  $input: r,
711
586
  responses: i
712
- } : { $input: r }, a = await e(t.validation, n);
713
- if (typeof a == "string") return q(t, r, a, `Field validation resulted in an error: ${a}.`);
714
- if (a === !1) return q(t, r, "This field is invalid", "Field validation resulted in an unspecified error.");
587
+ } : { $input: r }, a = await e(n.validation, t);
588
+ if (typeof a == "string") return q(n, r, a, `Field validation resulted in an error: ${a}.`);
589
+ if (a === !1) return q(n, r, "This field is invalid", "Field validation resulted in an unspecified error.");
715
590
  }
716
- return t.required && J(r) ? q(t, r, "This field is required", "Field is required.") : !t.multiple && Array.isArray(r) && r.length > 1 ? q(t, r, "This field expects a single response", "Field expects a single response.") : null;
591
+ return n.required && J(r) ? q(n, r, "This field is required", "Field is required.") : !n.multiple && Array.isArray(r) && r.length > 1 ? q(n, r, "This field expects a single response", "Field expects a single response.") : null;
717
592
  }
718
593
  //#endregion
719
594
  //#region src/entities/response/response.ts
720
- var Je = E("response"), Ye = j(({ client: e }) => {
721
- let n = Je.store({}), r = O(), i = O(), a = T(n, {
595
+ var Le = E("response"), Re = j(({ client: t }) => {
596
+ let n = Le.store({}), r = O(), i = O(), a = T(n, {
722
597
  register(e, t) {
723
598
  return {
724
599
  ...e,
@@ -747,9 +622,9 @@ var Je = E("response"), Ye = j(({ client: e }) => {
747
622
  });
748
623
  } else a.registerBatch(e);
749
624
  }
750
- let s = (n, r) => t(e, n, r), c = C({
625
+ let s = (n, r) => e(t, n, r), c = C({
751
626
  source: {
752
- allFields: e.fields.listStore,
627
+ allFields: t.fields.listStore,
753
628
  existingResponses: n
754
629
  },
755
630
  effect: async ({ allFields: e, existingResponses: t }, n) => {
@@ -757,7 +632,7 @@ var Je = E("response"), Ye = j(({ client: e }) => {
757
632
  ...t,
758
633
  ...n
759
634
  }, o = Object.entries(n), c = await Promise.allSettled(o.map(async ([t, n]) => {
760
- let o = Ue(t, e);
635
+ let o = Me(t, e);
761
636
  if (!o) {
762
637
  r.push({
763
638
  fieldKey: t,
@@ -767,17 +642,17 @@ var Je = E("response"), Ye = j(({ client: e }) => {
767
642
  });
768
643
  return;
769
644
  }
770
- let c = We(o, n), l = await qe(s, o, c, a);
645
+ let c = Ne(o, n), l = await Ie(s, o, c, a);
771
646
  if (l) {
772
647
  r.push(l);
773
648
  return;
774
649
  }
775
- let u = Ge(o, c);
650
+ let u = Pe(o, c);
776
651
  if (u) {
777
652
  r.push(u);
778
653
  return;
779
654
  }
780
- let d = Ke(o, c);
655
+ let d = Fe(o, c);
781
656
  if (d) {
782
657
  r.push(d);
783
658
  return;
@@ -828,14 +703,14 @@ var Je = E("response"), Ye = j(({ client: e }) => {
828
703
  return n === null ? e?.defaultValue !== void 0 && e.defaultValue !== null ? e.defaultValue : null : n;
829
704
  });
830
705
  }
831
- function h(t) {
832
- return m(e.fields.getById(t));
706
+ function h(e) {
707
+ return m(t.fields.getById(e));
833
708
  }
834
- function g(t) {
835
- return m(e.fields.getByKey(t));
709
+ function g(e) {
710
+ return m(t.fields.getByKey(e));
836
711
  }
837
- function _(t) {
838
- return m(e.fields.getByName(t));
712
+ function _(e) {
713
+ return m(t.fields.getByName(e));
839
714
  }
840
715
  return A({
841
716
  clock: r,
@@ -856,13 +731,13 @@ var Je = E("response"), Ye = j(({ client: e }) => {
856
731
  getByFieldName: _
857
732
  };
858
733
  });
859
- function Xe(e) {
860
- return M(Ye, e);
734
+ function ze(e) {
735
+ return M(Re, e);
861
736
  }
862
737
  //#endregion
863
738
  //#region src/entities/condition/condition.ts
864
- var Ze = E("condition"), Qe = j(() => {
865
- let e = Ze.store({}), t = T(e, { register(e, t) {
739
+ var Be = E("condition"), Ve = j(() => {
740
+ let e = Be.store({}), t = T(e, { register(e, t) {
866
741
  return {
867
742
  ...e,
868
743
  [t.condition.id]: t.condition
@@ -886,13 +761,13 @@ var Ze = E("condition"), Qe = j(() => {
886
761
  indexStore: e
887
762
  };
888
763
  });
889
- function $e() {
890
- return M(Qe);
764
+ function He() {
765
+ return M(Ve);
891
766
  }
892
767
  //#endregion
893
768
  //#region src/utils/api-url.ts
894
- function et() {
895
- if (f()) {
769
+ function Ue() {
770
+ if (d()) {
896
771
  let e = [
897
772
  document.currentScript,
898
773
  document.getElementById("picked_script"),
@@ -906,36 +781,36 @@ function et() {
906
781
  }
907
782
  //#endregion
908
783
  //#region src/utils/search-params.ts
909
- function tt() {
910
- if (!o()) return {};
784
+ function We() {
785
+ if (!a()) return {};
911
786
  let e = new URLSearchParams(window.location.search), t = {}, n = /* @__PURE__ */ new Set();
912
787
  for (let [t] of e.entries()) t.startsWith("picked-") && n.add(t);
913
788
  for (let r of n) {
914
789
  let n = r.replace("picked-", "");
915
790
  t[n] = e.getAll(r);
916
791
  }
917
- let r = S("s");
918
- if (n.size > 0) x.set(r, t);
792
+ let r = x("s");
793
+ if (n.size > 0) b.set(r, t);
919
794
  else {
920
- let e = x.get(r);
795
+ let e = b.get(r);
921
796
  if (e) return e.json() || {};
922
797
  }
923
798
  return t;
924
799
  }
925
800
  //#endregion
926
801
  //#region src/utils/user-session.ts
927
- function nt() {
928
- 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)}`;
802
+ function Ge() {
803
+ return c() ? 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)}`;
929
804
  }
930
- var rt = S("session", "global"), it = () => {
931
- let e = b.get(rt), t;
805
+ var Ke = x("session", "global"), qe = () => {
806
+ let e = y.get(Ke), t;
932
807
  e.isSet() && (t = e.json());
933
808
  let n = (t) => e.set({
934
809
  id: t.id,
935
810
  isUser: t.isUser,
936
811
  identifiers: t.identifiers
937
812
  }), r = {
938
- id: t?.id ?? nt(),
813
+ id: t?.id ?? Ge(),
939
814
  isUser: t?.isUser ?? void 0,
940
815
  identifiers: t?.identifiers ?? void 0,
941
816
  setIsUser(e) {
@@ -952,22 +827,22 @@ var rt = S("session", "global"), it = () => {
952
827
  }
953
828
  };
954
829
  return n(r), r;
955
- }, X = () => u() ? it() : null;
830
+ }, Je = () => l() ? qe() : null;
956
831
  //#endregion
957
832
  //#region src/utils/picked-config.ts
958
- function Z() {
959
- if (o()) return globalThis.window.pickedConfig;
833
+ function X() {
834
+ if (a()) return globalThis.window.pickedConfig;
960
835
  }
961
- function at() {
962
- if (!o()) return;
963
- let e = Z(), t = e?.organizationId, n = e?.projectId;
836
+ function Ye() {
837
+ if (!a()) return;
838
+ let e = X(), t = e?.organizationId, n = e?.projectId;
964
839
  return t && n ? {
965
840
  organizationId: t,
966
841
  projectId: n
967
842
  } : void 0;
968
843
  }
969
- function ot() {
970
- if (!f()) return;
844
+ function Xe() {
845
+ if (!d()) return;
971
846
  let e = document.getElementById("picked_script") || document.querySelector("script#picked") || document.getElementById("cvly");
972
847
  if (!e) return;
973
848
  let t = e.dataset.organizationid || e.getAttribute("organization-id"), n = e.dataset.projectid || e.getAttribute("project-id");
@@ -976,15 +851,15 @@ function ot() {
976
851
  projectId: n
977
852
  } : void 0;
978
853
  }
979
- function st(e) {
854
+ function Z(e) {
980
855
  let { organizationId: t, projectId: n } = e;
981
856
  if (t && n) return {
982
857
  organizationId: t,
983
858
  projectId: n
984
859
  };
985
- let r = at();
860
+ let r = Ye();
986
861
  if (r) return r;
987
- let i = ot();
862
+ let i = Xe();
988
863
  if (i) return i;
989
864
  throw Error("organizationId and projectId are required. You can provide them via one of:\n (1) createClient({ organizationId, projectId }) options;\n (2) window.pickedConfig = { organizationId, projectId };\n (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes data-organizationid/data-projectid (or organization-id/project-id) attributes.");
990
865
  }
@@ -993,7 +868,7 @@ function st(e) {
993
868
  function Q(e) {
994
869
  return e == null || e === "" || Number.isNaN(e);
995
870
  }
996
- var ct = {
871
+ var Ze = {
997
872
  default: (e, t) => Q(e) ? String(t ?? "") : String(e),
998
873
  append: (e, t) => t && !Q(e) ? `${e} ${t}` : e,
999
874
  prepend: (e, t) => t && !Q(e) ? `${t} ${e}` : e,
@@ -1014,24 +889,24 @@ var ct = {
1014
889
  return e instanceof Set ? t.format(Array.from(e).map(String)) : e;
1015
890
  }
1016
891
  };
1017
- function lt(e) {
892
+ function Qe(e) {
1018
893
  return typeof e == "object" && !!e;
1019
894
  }
1020
- function ut(e, t) {
895
+ function $e(e, t) {
1021
896
  let n = t;
1022
- for (let t of e.split(".")) if (lt(n) && t in n) n = n[t];
897
+ for (let t of e.split(".")) if (Qe(n) && t in n) n = n[t];
1023
898
  else return;
1024
899
  return typeof n == "function" ? n() : n;
1025
900
  }
1026
- function dt(e, t) {
1027
- let n = e.split("|").map((e) => e.trim()), r = ut(n.shift() ?? "", t);
901
+ function et(e, t) {
902
+ let n = e.split("|").map((e) => e.trim()), r = $e(n.shift() ?? "", t);
1028
903
  for (let e of n) {
1029
- let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = ct[i];
904
+ let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = Ze[i];
1030
905
  o && (r = o(r, a));
1031
906
  }
1032
907
  return Q(r) ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
1033
908
  }
1034
- function ft(e, t) {
909
+ function tt(e, t) {
1035
910
  let n = "", r = 0;
1036
911
  for (; r < e.length;) if (e[r] === "{" && e[r + 1] === "{") {
1037
912
  r += 2;
@@ -1043,14 +918,14 @@ function ft(e, t) {
1043
918
  }
1044
919
  i += e[r++];
1045
920
  }
1046
- n += dt(i.trim(), t);
921
+ n += et(i.trim(), t);
1047
922
  } else n += e[r++];
1048
923
  return n;
1049
924
  }
1050
925
  //#endregion
1051
926
  //#region src/picked.ts
1052
927
  var $ = class {
1053
- static logger = r;
928
+ static logger = n;
1054
929
  options;
1055
930
  isReady = !1;
1056
931
  plugins = {};
@@ -1066,30 +941,30 @@ var $ = class {
1066
941
  precondition;
1067
942
  condition;
1068
943
  preconditionPassed;
1069
- searchParams = tt();
1070
- history = Oe();
1071
- components = V({ client: this });
1072
- experienceInstances = te({ client: this });
1073
- experiences = de({ client: this });
1074
- frameworks = he({ client: this });
1075
- predicates = Se({ client: this });
1076
- features = Te({ client: this });
1077
- conditions = $e();
1078
- fields = Ne();
1079
- responses = Xe({ client: this });
1080
- steps = Ie();
1081
- actions = Be({ client: this });
944
+ searchParams = We();
945
+ history = _e();
946
+ components = ue({ client: this });
947
+ experienceInstances = ie({ client: this });
948
+ experiences = ee({ client: this });
949
+ frameworks = I({ client: this });
950
+ predicates = de({ client: this });
951
+ features = me({ client: this });
952
+ conditions = He();
953
+ fields = Se();
954
+ responses = ze({ client: this });
955
+ steps = Te();
956
+ actions = ke({ client: this });
1082
957
  constructor(e) {
1083
- this.events = Ae(this.eventBus);
1084
- let { organizationId: t, projectId: n } = st(e);
1085
- this.organizationId = t, this.projectId = n, this.options = Object.freeze(e), this.apiUrl = e.apiUrl || et(), this.dashboardUrl = e.dashboardUrl ?? "https://dashboard.picked.app", this.documentationSiteUrl = e.documentationSiteUrl ?? "https://docs.picked.app", this.session = X(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.setupComponents(), this.precondition = e.precondition, this.condition = e.condition, this.eventBus({
958
+ this.events = ye(this.eventBus);
959
+ let { organizationId: t, projectId: n } = Z(e);
960
+ this.organizationId = t, this.projectId = n, this.options = Object.freeze(e), this.apiUrl = e.apiUrl || Ue(), this.dashboardUrl = e.dashboardUrl ?? "https://dashboard.picked.app", this.documentationSiteUrl = e.documentationSiteUrl ?? "https://docs.picked.app", this.session = Je(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.setupComponents(), this.precondition = e.precondition, this.condition = e.condition, this.eventBus({
1086
961
  type: "load",
1087
- version: oe()
962
+ version: re()
1088
963
  });
1089
964
  }
1090
965
  start = () => {
1091
- ye(this), (async () => {
1092
- if (!f()) return;
966
+ B(this), (async () => {
967
+ if (!d()) return;
1093
968
  await this.runPluginStartHooks();
1094
969
  let e = await this.evaluateGate(this.precondition);
1095
970
  this.preconditionPassed = e;
@@ -1103,7 +978,7 @@ var $ = class {
1103
978
  value: e
1104
979
  });
1105
980
  }
1106
- if (this.eventBus({ type: "initialize" }), n && F(this), await ne(), n && F(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session) {
981
+ if (this.eventBus({ type: "initialize" }), n && v(this), await g(), n && v(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session) {
1107
982
  let { id: e, isUser: t, identifiers: n } = this.session;
1108
983
  this.eventBus({
1109
984
  type: "session",
@@ -1115,21 +990,21 @@ var $ = class {
1115
990
  })();
1116
991
  };
1117
992
  registerFramework = (e) => {
1118
- ge(e, this.frameworks);
993
+ L(e, this.frameworks);
1119
994
  };
1120
995
  registerComponent = (e, t) => {
1121
- H(e, t, this.components);
996
+ N(e, t, this.components);
1122
997
  };
1123
998
  registerPlugin = (e) => {
1124
- fe(this, e, this.plugins);
999
+ ae(this, e, this.plugins);
1125
1000
  let t = this.plugins[e.name];
1126
1001
  t?.onStart && this.pluginStartHooks.push(t.onStart);
1127
1002
  };
1128
1003
  registerFeature = (e, t) => {
1129
- Ee(e, t, this.features);
1004
+ he(e, t, this.features);
1130
1005
  };
1131
1006
  registerPredicate = (e, t) => {
1132
- Ce(e, t, this.predicates);
1007
+ fe(e, t, this.predicates);
1133
1008
  };
1134
1009
  registerCondition = (e) => {
1135
1010
  this.conditions.register(e);
@@ -1138,15 +1013,15 @@ var $ = class {
1138
1013
  this.fields.register(e);
1139
1014
  };
1140
1015
  registerStep = (e) => {
1141
- Le(e, this.steps);
1016
+ Ee(e, this.steps);
1142
1017
  };
1143
1018
  registerAction = (e, t) => {
1144
- Ve(e, t, this.actions);
1019
+ Ae(e, t, this.actions);
1145
1020
  };
1146
1021
  registerExperience = (e) => {
1147
- e.component && H(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1022
+ e.component && N(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1148
1023
  };
1149
- getStateSnapshot = () => U(this);
1024
+ getStateSnapshot = () => V(this);
1150
1025
  launchExperienceById = async (e, t) => {
1151
1026
  this.experiences.launch({
1152
1027
  id: e,
@@ -1168,8 +1043,8 @@ var $ = class {
1168
1043
  async runPluginStartHooks() {
1169
1044
  for (let e of this.pluginStartHooks) await e();
1170
1045
  }
1171
- async evaluateGate(e) {
1172
- return e === void 0 ? !0 : typeof e == "boolean" ? e : await t(this, e) === !0;
1046
+ async evaluateGate(t) {
1047
+ return t === void 0 ? !0 : typeof t == "boolean" ? t : await e(this, t) === !0;
1173
1048
  }
1174
1049
  setupPlugins() {
1175
1050
  this.options.plugins?.forEach((e) => {
@@ -1235,7 +1110,7 @@ var $ = class {
1235
1110
  getPluginConfig = (e) => this.plugins[e] ?? {};
1236
1111
  renderString = (e, t) => {
1237
1112
  let n = this.responses.listStore.getState().reduce((e, t) => (e[t.fieldKey] = t.value, e), {});
1238
- return ft(e, {
1113
+ return tt(e, {
1239
1114
  ...t,
1240
1115
  responses: n
1241
1116
  });
@@ -1243,20 +1118,20 @@ var $ = class {
1243
1118
  };
1244
1119
  //#endregion
1245
1120
  //#region src/entities/component/lazyComponent.ts
1246
- function pt(e) {
1121
+ function nt(e) {
1247
1122
  return {
1248
1123
  $$type: "lazy-component",
1249
1124
  load: e
1250
1125
  };
1251
1126
  }
1252
- function mt(e) {
1127
+ function rt(e) {
1253
1128
  return typeof e == "object" && !!e && "$$type" in e && e.$$type === "lazy-component";
1254
1129
  }
1255
1130
  //#endregion
1256
1131
  //#region src/exports.ts
1257
- var ht = (e) => {
1132
+ var it = (e) => {
1258
1133
  let t = new $(e);
1259
- return d(t), t;
1134
+ return u(t), t;
1260
1135
  };
1261
1136
  //#endregion
1262
- export { $ as Picked, ht as createClient, S as createStorageKey, t as evaluateRuleLogic, Z as getPickedConfig, mt as isLazyLoader, _ as isPickedRoot, pt as lazyComponent, b as localStore, x as sessionStore, ie 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 };
1137
+ export { $ as Picked, it as createClient, x as createStorageKey, e as evaluateRuleLogic, X as getPickedConfig, rt as isLazyLoader, _ as isPickedRoot, nt as lazyComponent, y as localStore, b as sessionStore, te as subscribe, p as supportsCookies, c as supportsCryptoRandomUUID, d as supportsDocument, o as supportsHistory, r as supportsIntersectionObserver, l as supportsLocalStorage, f as supportsLocation, i as supportsSessionStorage, s as supportsShadowRoot, m as supportsWebComponents, a as supportsWindow };