@picked/client 0.0.1-dev.1774995194828 → 0.0.1-dev.1775010167310

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 (49) hide show
  1. package/dist/{api-DKdPkjZ7.js → api-CdDIclD7.js} +1 -1
  2. package/dist/{api-DzKTxrba.cjs → api-mBsio6Uq.cjs} +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/dynamic-experiences/index.js +1 -1
  7. package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
  8. package/dist/cjs/plugins/web-components/index.js +1 -1
  9. package/dist/cjs/server/index.js +1 -1
  10. package/dist/esm/form/index.js +1 -1
  11. package/dist/esm/index.js +147 -131
  12. package/dist/esm/plugins/create-experience/index.js +11 -11
  13. package/dist/esm/plugins/dynamic-experiences/index.js +1 -1
  14. package/dist/esm/plugins/responses-indexeddb/index.js +1 -1
  15. package/dist/esm/plugins/web-components/index.js +1 -1
  16. package/dist/esm/server/index.js +1 -1
  17. package/dist/{experience-instance-C35Ocv25.js → experience-instance-BPwTGdYw.js} +25 -25
  18. package/dist/experience-instance-XXqzrfa-.cjs +1 -0
  19. package/dist/types/entities/condition/condition.d.ts +5 -1
  20. package/dist/types/entities/condition/condition.d.ts.map +1 -1
  21. package/dist/types/entities/experience/experience.d.ts +60 -6
  22. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  23. package/dist/types/entities/experience-instance/experience-instance.d.ts +1 -2
  24. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  25. package/dist/types/entities/field/field.d.ts +3 -3
  26. package/dist/types/entities/field/field.d.ts.map +1 -1
  27. package/dist/types/entities/response/response.d.ts.map +1 -1
  28. package/dist/types/entities/step/step.d.ts +5 -2
  29. package/dist/types/entities/step/step.d.ts.map +1 -1
  30. package/dist/types/form/create-field-evaluator.d.ts +1 -1
  31. package/dist/types/form/create-field-evaluator.d.ts.map +1 -1
  32. package/dist/types/picked.d.ts +90 -11
  33. package/dist/types/picked.d.ts.map +1 -1
  34. package/dist/types/plugins/create-experience/create-experience.d.ts +2 -2
  35. package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
  36. package/dist/types/plugins/create-experience/serialization.d.ts +0 -1
  37. package/dist/types/plugins/create-experience/serialization.d.ts.map +1 -1
  38. package/dist/types/utils/indexed-db.d.ts +0 -52
  39. package/dist/types/utils/indexed-db.d.ts.map +1 -1
  40. package/dist/types/utils/node-tree/get-next-node-from-condition.d.ts +13 -0
  41. package/dist/types/utils/node-tree/get-next-node-from-condition.d.ts.map +1 -1
  42. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts +6 -10
  43. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts.map +1 -1
  44. package/dist/types/utils/nodes.d.ts +0 -50
  45. package/dist/types/utils/nodes.d.ts.map +1 -1
  46. package/dist/types/utils/state-snaphot.d.ts +1 -1
  47. package/dist/types/utils/state-snaphot.d.ts.map +1 -1
  48. package/package.json +1 -1
  49. package/dist/experience-instance-WjxPNSjH.cjs +0 -1
package/dist/esm/index.js CHANGED
@@ -2,15 +2,15 @@ import { n as e, t } from "../rules-logic-BIkBWZmf.js";
2
2
  import { t as n } from "../object-C82v79xc.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 ee, i as _, l as te, n as ne, o as re, r as ie, s as v } from "../experience-instance-C35Ocv25.js";
6
- import { i as ae, n as y, r as b, t as x } from "../storage-6Xk0uAxB.js";
7
- import { n as oe, r as se } from "../api-DKdPkjZ7.js";
8
- import { t as ce } from "../id-CRqy981z.js";
9
- import { attach as S, combine as C, createApi as w, createDomain as T, createEffect as E, createEvent as D, createStore as O, sample as k } from "effector";
10
- import { createFactory as A, invoke as j } from "@withease/factories";
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-BPwTGdYw.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-CdDIclD7.js";
8
+ import { t as se } from "../id-CRqy981z.js";
9
+ 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
+ import { createFactory as j, invoke as M } from "@withease/factories";
11
11
  //#region src/entities/experience/experience.ts
12
- var M = T("experience"), le = A(({ client: e, experience: t }) => {
13
- let n = M.store(t), r = w(n, { merge(e, t) {
12
+ var N = E("experience"), ce = j(({ client: e, experience: t }) => {
13
+ let n = N.store(t), r = T(n, { merge(e, t) {
14
14
  return {
15
15
  ...e,
16
16
  ...t.experience
@@ -20,8 +20,8 @@ var M = T("experience"), le = A(({ client: e, experience: t }) => {
20
20
  decisionLogic: e.condition,
21
21
  targetSelectors: e.targets,
22
22
  initializeOpenLogic: e.initializeOpen
23
- })), a = C(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 = C(n, e.steps.listStore, e.conditions.listStore, (e, t, n) => {
24
- let r = e.nodes.filter(_).map((e) => t.find((t) => t.id === e.stepId)).filter((e) => e !== void 0), i = e.nodes.filter(ie).map((e) => n.find((t) => t.id === e.conditionId)).filter((e) => e !== void 0);
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
25
  return {
26
26
  steps: r,
27
27
  nodes: e.nodes,
@@ -40,11 +40,11 @@ var M = T("experience"), le = A(({ client: e, experience: t }) => {
40
40
  merge: r.merge
41
41
  };
42
42
  });
43
- function ue(e) {
44
- return j(le, e);
43
+ function le(e) {
44
+ return M(ce, e);
45
45
  }
46
- var de = A(({ client: e }) => {
47
- let t = M.store({}), n = w(t, { register(e, t) {
46
+ var ue = j(({ client: e }) => {
47
+ let t = N.store({}), n = T(t, { register(e, t) {
48
48
  return {
49
49
  ...e,
50
50
  [t.id]: t
@@ -59,7 +59,7 @@ var de = A(({ client: e }) => {
59
59
  });
60
60
  return;
61
61
  }
62
- let a = ue({
62
+ let a = le({
63
63
  client: e,
64
64
  experience: r
65
65
  });
@@ -67,9 +67,12 @@ var de = A(({ client: e }) => {
67
67
  }
68
68
  let i = t.map((e) => Object.values(e));
69
69
  function a(e) {
70
+ return t.map((t) => t[e], { skipVoid: !1 });
71
+ }
72
+ function o(e) {
70
73
  return t.map((t) => Object.values(t).find((t) => t.key === e) ?? t[e], { skipVoid: !1 });
71
74
  }
72
- let o = S({
75
+ let s = C({
73
76
  source: t,
74
77
  effect: async (t, n) => {
75
78
  let r = "key" in n ? Object.values(t).find((e) => e.key === n.key) : t[n.id];
@@ -79,18 +82,19 @@ var de = A(({ client: e }) => {
79
82
  }
80
83
  let { options: i } = n;
81
84
  if (i?.bypassCondition) {
82
- N(e, r, i);
85
+ P(e, r, i);
83
86
  return;
84
87
  }
85
- await F(e, r) && N(e, r, i);
88
+ await I(e, r) && P(e, r, i);
86
89
  }
87
90
  });
88
91
  return {
89
92
  register: r,
90
93
  get: a,
91
94
  getById: a,
92
- launch: o,
93
- open: S({
95
+ getByKey: o,
96
+ launch: s,
97
+ open: C({
94
98
  source: {
95
99
  experiences: t,
96
100
  instances: e.experienceInstances.listStore
@@ -98,7 +102,7 @@ var de = A(({ client: e }) => {
98
102
  effect: ({ experiences: e, instances: t }, n) => {
99
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);
100
104
  if (i.length > 0) for (let e of i) e.open();
101
- else o("key" in n ? {
105
+ else s("key" in n ? {
102
106
  key: n.key,
103
107
  options: {
104
108
  ...n.options,
@@ -116,23 +120,23 @@ var de = A(({ client: e }) => {
116
120
  listStore: i
117
121
  };
118
122
  });
119
- function fe(e) {
120
- return j(de, e);
123
+ function de(e) {
124
+ return M(ue, e);
121
125
  }
122
- var N = (e, t, n) => {
123
- let { targetSelectors: r } = t.configStore.getState(), i = v(r, t.id);
124
- i.forEach(({ elements: e }) => e.forEach((e) => te(e, t.id))), g(i, t.id).forEach((r) => {
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).forEach((r) => {
125
129
  n ? e.experienceInstances.spawn(t, r, n) : e.experienceInstances.spawn(t, r);
126
130
  });
127
- }, P = async (e) => {
131
+ }, F = async (e) => {
128
132
  await Promise.all(e.experiences.listStore.getState().map(async (t) => {
129
- await F(e, t) && N(e, t);
133
+ await I(e, t) && P(e, t);
130
134
  }));
131
- }, F = async (n, r) => {
135
+ }, I = async (n, r) => {
132
136
  if (!n.preconditionPassed || !n.session?.isUser) return !1;
133
137
  let { decisionLogic: i, targetSelectors: a } = r.configStore.getState();
134
- return v(a, r.id).length < 1 || a.length === 0 ? !1 : i === void 0 ? !0 : e(i) ? await t(n, i) === !0 : !0;
135
- }, I = (e, t, n) => {
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) => {
136
140
  let r = t.name, i = t.setup(e);
137
141
  if (i) {
138
142
  let e = n[r] ?? {};
@@ -141,16 +145,16 @@ var N = (e, t, n) => {
141
145
  ...i
142
146
  });
143
147
  }
144
- }, L = T("component"), R = A(({ client: e, component: t, name: n }) => ({
148
+ }, L = E("component"), R = j(({ client: e, component: t, name: n }) => ({
145
149
  name: n,
146
150
  component: t,
147
151
  frameworkStore: e.frameworks.getByName(t.frameworkName)
148
152
  }));
149
153
  function z(e) {
150
- return j(R, e);
154
+ return M(R, e);
151
155
  }
152
- var B = A(({ client: e }) => {
153
- let t = L.store({}), n = w(t, { register(e, t) {
156
+ var B = j(({ client: e }) => {
157
+ let t = L.store({}), n = T(t, { register(e, t) {
154
158
  return {
155
159
  ...e,
156
160
  [t.name]: t
@@ -176,12 +180,12 @@ var B = A(({ client: e }) => {
176
180
  };
177
181
  });
178
182
  function V(e) {
179
- return j(B, e);
183
+ return M(B, e);
180
184
  }
181
185
  var H = (e, t, n) => {
182
186
  n.register(e, t);
183
- }, pe = T("framework"), me = A(({ client: e }) => {
184
- let t = pe.store({}), n = w(t, { register(e, t) {
187
+ }, pe = E("framework"), me = j(({ client: e }) => {
188
+ let t = pe.store({}), n = T(t, { register(e, t) {
185
189
  return {
186
190
  ...e,
187
191
  [t.name]: t.framework
@@ -204,20 +208,20 @@ var H = (e, t, n) => {
204
208
  };
205
209
  });
206
210
  function he(e) {
207
- return j(me, e);
211
+ return M(me, e);
208
212
  }
209
213
  var ge = (e, t) => {
210
214
  t.register(e.name, e);
211
- }, _e = 6e3, ve = x("last_ping", "global"), ye = async (e) => {
215
+ }, _e = 6e3, ve = S("last_ping", "global"), ye = async (e) => {
212
216
  try {
213
- let t = Date.now(), n = y.get(ve), r = 0;
217
+ let t = Date.now(), n = b.get(ve), r = 0;
214
218
  if (n.isSet() && (r = n.json() ?? 0), r && t - r < _e) return !0;
215
219
  let i = {
216
220
  projectId: e.projectId,
217
221
  path: window.location.pathname
218
222
  }, a = {}, o = document.getElementById("picked_script")?.dataset.verceltoken;
219
223
  o && (a["x-vercel-protection-bypass"] = o);
220
- let s = (await oe(e.apiUrl, "ping", i, a)).ok;
224
+ let s = (await ae(e.apiUrl, "ping", i, a)).ok;
221
225
  return s && n.set(t), s;
222
226
  } catch {
223
227
  return !1;
@@ -239,8 +243,8 @@ function U(e) {
239
243
  }
240
244
  //#endregion
241
245
  //#region src/entities/predicate/predicate.ts
242
- var be = T("predicate"), xe = A(({ client: e }) => {
243
- let t = be.store({}), n = w(t, { register(e, t) {
246
+ var be = E("predicate"), xe = j(({ client: e }) => {
247
+ let t = be.store({}), n = T(t, { register(e, t) {
244
248
  return {
245
249
  ...e,
246
250
  [t.name]: {
@@ -260,7 +264,7 @@ var be = T("predicate"), xe = A(({ client: e }) => {
260
264
  return t.map((t) => t[e]?.predicate, { skipVoid: !1 });
261
265
  }
262
266
  function o(t) {
263
- let n = O(() => void 0, { skipVoid: !1 }), r = E(async () => {
267
+ let n = k(() => void 0, { skipVoid: !1 }), r = D(async () => {
264
268
  let n = a(t).getState();
265
269
  if (!n) return;
266
270
  let r = U(e);
@@ -269,13 +273,13 @@ var be = T("predicate"), xe = A(({ client: e }) => {
269
273
  args: e
270
274
  });
271
275
  });
272
- return k({
276
+ return A({
273
277
  source: {
274
278
  responses: e.responses.listStore,
275
279
  fields: e.fields.listStore
276
280
  },
277
281
  target: r
278
- }), k({
282
+ }), A({
279
283
  clock: r.doneData,
280
284
  filter: (e) => e !== void 0,
281
285
  target: n
@@ -289,12 +293,12 @@ var be = T("predicate"), xe = A(({ client: e }) => {
289
293
  };
290
294
  });
291
295
  function Se(e) {
292
- return j(xe, e);
296
+ return M(xe, e);
293
297
  }
294
298
  var Ce = (e, t, n) => {
295
299
  n.register(e, t);
296
- }, W = T("feature"), we = A(({ client: e }) => {
297
- let t = W.store({}), n = W.store([]), r = w(t, { register(e, t) {
300
+ }, W = E("feature"), we = j(({ client: e }) => {
301
+ let t = W.store({}), n = W.store([]), r = T(t, { register(e, t) {
298
302
  return {
299
303
  ...e,
300
304
  [t.id]: t.feature
@@ -314,19 +318,19 @@ var Ce = (e, t, n) => {
314
318
  feature: i
315
319
  }));
316
320
  }
317
- let a = E(async ({ id: e, key: t, storage: n = "local" }) => {
318
- let r = x(`feature:${e}:${t}`, "global"), i = (n === "session" ? b : y).get(r).boolean();
321
+ 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();
319
323
  return i === null ? null : {
320
324
  id: e,
321
325
  key: t,
322
326
  bucket: i,
323
327
  storage: n
324
328
  };
325
- }), o = E((e) => {
329
+ }), o = D((e) => {
326
330
  if (!e) return null;
327
- let t = x(`feature:${e.id}:${e.key}`, "global");
328
- (e.storage === "session" ? b : y).set(t, e.bucket);
329
- }), s = /* @__PURE__ */ new Map(), c = S({
331
+ let t = S(`feature:${e.id}:${e.key}`, "global");
332
+ (e.storage === "session" ? x : b).set(t, e.bucket);
333
+ }), s = /* @__PURE__ */ new Map(), c = C({
330
334
  source: {
331
335
  allFeaturesStore: t,
332
336
  resolvedFeaturesStore: n
@@ -357,7 +361,7 @@ var Ce = (e, t, n) => {
357
361
  };
358
362
  }
359
363
  });
360
- k({
364
+ A({
361
365
  clock: r.register,
362
366
  fn: (e) => {
363
367
  let { id: t, feature: n } = e;
@@ -368,7 +372,7 @@ var Ce = (e, t, n) => {
368
372
  };
369
373
  },
370
374
  target: a
371
- }), k({
375
+ }), A({
372
376
  source: t,
373
377
  clock: c.doneData,
374
378
  fn: (e, t) => {
@@ -382,7 +386,7 @@ var Ce = (e, t, n) => {
382
386
  },
383
387
  target: o
384
388
  });
385
- let l = C({
389
+ let l = w({
386
390
  allFeaturesStore: t,
387
391
  resolvedFeaturesStore: n
388
392
  }).map(({ allFeaturesStore: e, resolvedFeaturesStore: t }) => Object.values(e).map((e) => {
@@ -404,7 +408,7 @@ var Ce = (e, t, n) => {
404
408
  isResolved: !1
405
409
  };
406
410
  }));
407
- k({
411
+ A({
408
412
  clock: c.doneData,
409
413
  source: { resolvedFeatures: n },
410
414
  filter: ({ resolvedFeatures: e }, { id: t, key: n }) => !e.some((e) => e.id === t && e.key === n),
@@ -413,7 +417,7 @@ var Ce = (e, t, n) => {
413
417
  type: "feature_decide",
414
418
  feature: e
415
419
  }))
416
- }), k({
420
+ }), A({
417
421
  clock: [a.doneData, c.doneData],
418
422
  source: n,
419
423
  fn: (e, t) => !t || e.some((e) => e.id === t.id && e.key === t.key) ? e : [...e, t],
@@ -426,15 +430,15 @@ var Ce = (e, t, n) => {
426
430
  return t.map((t) => t[e], { skipVoid: !1 });
427
431
  }
428
432
  function f(e) {
429
- let t = O(async () => void 0, { skipVoid: !1 }), r = E(async () => {
433
+ let t = k(async () => void 0, { skipVoid: !1 }), r = D(async () => {
430
434
  let t = u(e).getState();
431
435
  if (t) return async () => (await t.getBucket()).bucket;
432
436
  });
433
- return k({
437
+ return A({
434
438
  source: n,
435
439
  filter: (t) => t.some((t) => t.id === e),
436
440
  target: r
437
- }), k({
441
+ }), A({
438
442
  clock: r.doneData,
439
443
  filter: (e) => e !== void 0,
440
444
  target: t
@@ -449,20 +453,20 @@ var Ce = (e, t, n) => {
449
453
  };
450
454
  });
451
455
  function Te(e) {
452
- return j(we, e);
456
+ return M(we, e);
453
457
  }
454
458
  var Ee = (e, t, n) => {
455
459
  n.register(e, t);
456
- }, G = T("history");
460
+ }, G = E("history");
457
461
  function K(e, t) {
458
462
  return {
459
- id: ce(`history-entry-${Date.now()}-${Math.random()}}`),
463
+ id: se(`history-entry-${Date.now()}-${Math.random()}}`),
460
464
  node: t,
461
465
  at: Date.now(),
462
466
  experienceId: e
463
467
  };
464
468
  }
465
- var De = A(() => {
469
+ var De = j(() => {
466
470
  let e = G.store({ entries: [] }), t = G.event(), n = G.event(), r = G.event(), i = G.event();
467
471
  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);
468
472
  function a(e, t) {
@@ -472,7 +476,7 @@ var De = A(() => {
472
476
  };
473
477
  for (let r = e.length - 1; r >= 0; r--) {
474
478
  let i = e[r], a = i?.node;
475
- if (!(!a || !_(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
479
+ if (!(!a || !v(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
476
480
  else {
477
481
  n.secondLastStepIndex = r;
478
482
  break;
@@ -495,13 +499,13 @@ var De = A(() => {
495
499
  };
496
500
  });
497
501
  function Oe() {
498
- return j(De);
502
+ return M(De);
499
503
  }
500
504
  //#endregion
501
505
  //#region src/utils/events.ts
502
506
  var ke = 0, Ae = (e) => {
503
- let t = O([]);
504
- return k({
507
+ let t = k([]);
508
+ return A({
505
509
  clock: e,
506
510
  source: t,
507
511
  fn: (e, t) => [...e, {
@@ -511,8 +515,8 @@ var ke = 0, Ae = (e) => {
511
515
  }],
512
516
  target: t
513
517
  }), t;
514
- }, je = T("field"), Me = A(() => {
515
- let e = je.store({}), t = w(e, {
518
+ }, je = E("field"), Me = j(() => {
519
+ let e = je.store({}), t = T(e, {
516
520
  register(e, t) {
517
521
  return {
518
522
  ...e,
@@ -539,27 +543,30 @@ var ke = 0, Ae = (e) => {
539
543
  }
540
544
  let i = e.map((e) => Object.values(e));
541
545
  function a(t) {
542
- return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null, { skipVoid: !1 });
546
+ return e.map((e) => e[t] ?? null, { skipVoid: !1 });
543
547
  }
544
548
  function o(t) {
549
+ return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null, { skipVoid: !1 });
550
+ }
551
+ function s(t) {
545
552
  return e.map((e) => Object.values(e).find((e) => e.name === t) ?? null, { skipVoid: !1 });
546
553
  }
547
554
  return {
548
555
  register: n,
549
556
  update: r,
550
557
  getById: a,
551
- get: a,
558
+ getByKey: o,
552
559
  listStore: i,
553
- getByName: o
560
+ getByName: s
554
561
  };
555
562
  });
556
563
  function Ne() {
557
- return j(Me);
564
+ return M(Me);
558
565
  }
559
566
  //#endregion
560
567
  //#region src/entities/step/step.ts
561
- var Pe = T("step"), Fe = A(() => {
562
- let e = Pe.store({}), t = w(e, { register(e, t) {
568
+ var Pe = E("step"), Fe = j(() => {
569
+ let e = Pe.store({}), t = T(e, { register(e, t) {
563
570
  return {
564
571
  ...e,
565
572
  [t.step.id]: t.step
@@ -570,25 +577,29 @@ var Pe = T("step"), Fe = A(() => {
570
577
  }
571
578
  let r = e.map((e) => Object.values(e));
572
579
  function i(t) {
580
+ return e.map((e) => e[t] ?? null, { skipVoid: !1 });
581
+ }
582
+ function a(t) {
573
583
  return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null, { skipVoid: !1 });
574
584
  }
575
585
  return {
576
586
  register: n,
577
- get: i,
578
587
  getById: i,
579
- listStore: r
588
+ getByKey: a,
589
+ listStore: r,
590
+ indexStore: e
580
591
  };
581
592
  });
582
593
  function Ie() {
583
- return j(Fe);
594
+ return M(Fe);
584
595
  }
585
596
  function Le(e, t) {
586
597
  t.register(e);
587
598
  }
588
599
  //#endregion
589
600
  //#region src/entities/action/action.ts
590
- var Re = T("action"), ze = A(() => {
591
- let e = Re.store({}), t = w(e, { register(e, t) {
601
+ var Re = E("action"), ze = j(() => {
602
+ let e = Re.store({}), t = T(e, { register(e, t) {
592
603
  return {
593
604
  ...e,
594
605
  [t.name]: {
@@ -621,7 +632,7 @@ var Re = T("action"), ze = A(() => {
621
632
  };
622
633
  });
623
634
  function Be() {
624
- return j(ze);
635
+ return M(ze);
625
636
  }
626
637
  var Ve = (e, t, n) => {
627
638
  n.register(e, t);
@@ -690,8 +701,8 @@ async function qe(e, t, r, i) {
690
701
  }
691
702
  //#endregion
692
703
  //#region src/entities/response/response.ts
693
- var Je = T("response"), Ye = A(({ client: e }) => {
694
- let n = Je.store({}), r = D(), i = D(), a = w(n, {
704
+ var Je = E("response"), Ye = j(({ client: e }) => {
705
+ let n = Je.store({}), r = O(), i = O(), a = T(n, {
695
706
  register(e, t) {
696
707
  return {
697
708
  ...e,
@@ -720,7 +731,7 @@ var Je = T("response"), Ye = A(({ client: e }) => {
720
731
  });
721
732
  } else a.registerBatch(e);
722
733
  }
723
- let s = (n, r) => t(e, n, r), c = S({
734
+ let s = (n, r) => t(e, n, r), c = C({
724
735
  source: {
725
736
  allFields: e.fields.listStore,
726
737
  existingResponses: n
@@ -778,7 +789,7 @@ var Je = T("response"), Ye = A(({ client: e }) => {
778
789
  async function l(e) {
779
790
  return c(e);
780
791
  }
781
- let u = S({
792
+ let u = C({
782
793
  source: n,
783
794
  effect: async (e, t) => {
784
795
  let { responsesToCommit: n, validationErrors: r } = await c(t);
@@ -792,9 +803,9 @@ var Je = T("response"), Ye = A(({ client: e }) => {
792
803
  fieldKey: e,
793
804
  value: t
794
805
  })));
795
- function m(t) {
796
- return C({
797
- f: e.fields.getById(t),
806
+ function m(e) {
807
+ return w({
808
+ f: e,
798
809
  s: n
799
810
  }, ({ f: e, s: t }) => {
800
811
  let n = e ? t[e.key] ?? null : null;
@@ -802,27 +813,18 @@ var Je = T("response"), Ye = A(({ client: e }) => {
802
813
  });
803
814
  }
804
815
  function h(t) {
805
- return C({
806
- f: e.fields.get(t),
807
- s: n
808
- }, ({ f: e, s: t }) => {
809
- let n = e ? t[e.key] ?? null : null;
810
- return n === null ? e?.defaultValue !== void 0 && e.defaultValue !== null ? e.defaultValue : null : n;
811
- });
816
+ return m(e.fields.getById(t));
812
817
  }
813
818
  function g(t) {
814
- return C({
815
- f: e.fields.getByName(t),
816
- s: n
817
- }, ({ f: e, s: t }) => {
818
- let n = e ? t[e.key] ?? null : null;
819
- return n === null ? e?.defaultValue !== void 0 && e.defaultValue !== null ? e.defaultValue : null : n;
820
- });
819
+ return m(e.fields.getByKey(t));
820
+ }
821
+ function _(t) {
822
+ return m(e.fields.getByName(t));
821
823
  }
822
- return k({
824
+ return A({
823
825
  clock: r,
824
826
  target: a.clearAll
825
- }), k({
827
+ }), A({
826
828
  clock: i,
827
829
  target: a.clear
828
830
  }), {
@@ -833,18 +835,18 @@ var Je = T("response"), Ye = A(({ client: e }) => {
833
835
  getResponsesToCommit: l,
834
836
  listStore: p,
835
837
  getAllStore: f,
836
- getByFieldId: m,
837
- getByFieldKey: h,
838
- getByFieldName: g
838
+ getByFieldId: h,
839
+ getByFieldKey: g,
840
+ getByFieldName: _
839
841
  };
840
842
  });
841
843
  function Xe(e) {
842
- return j(Ye, e);
844
+ return M(Ye, e);
843
845
  }
844
846
  //#endregion
845
847
  //#region src/entities/condition/condition.ts
846
- var Ze = T("condition"), Qe = A(() => {
847
- let e = Ze.store({}), t = w(e, { register(e, t) {
848
+ var Ze = E("condition"), Qe = j(() => {
849
+ let e = Ze.store({}), t = T(e, { register(e, t) {
848
850
  return {
849
851
  ...e,
850
852
  [t.condition.id]: t.condition
@@ -855,16 +857,21 @@ var Ze = T("condition"), Qe = A(() => {
855
857
  }
856
858
  let r = e.map((e) => Object.values(e));
857
859
  function i(t) {
858
- return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null);
860
+ return e.map((e) => e[t] ?? null, { skipVoid: !1 });
861
+ }
862
+ function a(t) {
863
+ return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null, { skipVoid: !1 });
859
864
  }
860
865
  return {
861
866
  register: n,
862
- get: i,
863
- listStore: r
867
+ getById: i,
868
+ getByKey: a,
869
+ listStore: r,
870
+ indexStore: e
864
871
  };
865
872
  });
866
873
  function $e() {
867
- return j(Qe);
874
+ return M(Qe);
868
875
  }
869
876
  //#endregion
870
877
  //#region src/utils/api-url.ts
@@ -891,10 +898,10 @@ function tt() {
891
898
  let n = r.replace("picked-", "");
892
899
  t[n] = e.getAll(r);
893
900
  }
894
- let r = x("s");
895
- if (n.size > 0) b.set(r, t);
901
+ let r = S("s");
902
+ if (n.size > 0) x.set(r, t);
896
903
  else {
897
- let e = b.get(r);
904
+ let e = x.get(r);
898
905
  if (e) return e.json() || {};
899
906
  }
900
907
  return t;
@@ -904,8 +911,8 @@ function tt() {
904
911
  function nt() {
905
912
  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)}`;
906
913
  }
907
- var rt = x("session", "global"), it = () => {
908
- let e = y.get(rt), t;
914
+ var rt = S("session", "global"), it = () => {
915
+ let e = b.get(rt), t;
909
916
  e.isSet() && (t = e.json());
910
917
  let n = (t) => e.set({
911
918
  id: t.id,
@@ -1032,7 +1039,7 @@ var $ = class {
1032
1039
  isReady = !1;
1033
1040
  plugins = {};
1034
1041
  pluginStartHooks = [];
1035
- eventBus = D();
1042
+ eventBus = O();
1036
1043
  events;
1037
1044
  organizationId;
1038
1045
  projectId;
@@ -1046,8 +1053,8 @@ var $ = class {
1046
1053
  searchParams = tt();
1047
1054
  history = Oe();
1048
1055
  components = V({ client: this });
1049
- experienceInstances = ne({ client: this });
1050
- experiences = fe({ client: this });
1056
+ experienceInstances = te({ client: this });
1057
+ experiences = de({ client: this });
1051
1058
  frameworks = he({ client: this });
1052
1059
  predicates = Se({ client: this });
1053
1060
  features = Te({ client: this });
@@ -1061,7 +1068,7 @@ var $ = class {
1061
1068
  let { organizationId: t, projectId: n } = st(e);
1062
1069
  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({
1063
1070
  type: "load",
1064
- version: se()
1071
+ version: oe()
1065
1072
  });
1066
1073
  }
1067
1074
  start = () => {
@@ -1080,7 +1087,7 @@ var $ = class {
1080
1087
  value: e
1081
1088
  });
1082
1089
  }
1083
- if (this.eventBus({ type: "initialize" }), n && P(this), await re(), n && P(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session) {
1090
+ if (this.eventBus({ type: "initialize" }), n && F(this), await ne(), n && F(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session) {
1084
1091
  let { id: e, isUser: t, identifiers: n } = this.session;
1085
1092
  this.eventBus({
1086
1093
  type: "session",
@@ -1098,7 +1105,7 @@ var $ = class {
1098
1105
  H(e, t, this.components);
1099
1106
  };
1100
1107
  registerPlugin = (e) => {
1101
- I(this, e, this.plugins);
1108
+ fe(this, e, this.plugins);
1102
1109
  let t = this.plugins[e.name];
1103
1110
  t?.onStart && this.pluginStartHooks.push(t.onStart);
1104
1111
  };
@@ -1125,12 +1132,21 @@ var $ = class {
1125
1132
  };
1126
1133
  getStateSnapshot = () => U(this);
1127
1134
  launchExperienceById = async (e, t) => {
1135
+ this.experiences.launch({
1136
+ id: e,
1137
+ options: t
1138
+ });
1139
+ };
1140
+ launchExperienceByKey = async (e, t) => {
1128
1141
  this.experiences.launch({
1129
1142
  key: e,
1130
1143
  options: t
1131
1144
  });
1132
1145
  };
1133
1146
  openExperienceById = async (e) => {
1147
+ this.experiences.open({ id: e });
1148
+ };
1149
+ openExperienceByKey = async (e) => {
1134
1150
  this.experiences.open({ key: e });
1135
1151
  };
1136
1152
  async runPluginStartHooks() {
@@ -1227,4 +1243,4 @@ var ht = (e) => {
1227
1243
  return d(t), t;
1228
1244
  };
1229
1245
  //#endregion
1230
- export { $ as Picked, ht as createClient, x as createStorageKey, t as evaluateRuleLogic, Z as getPickedConfig, mt as isLazyLoader, ee as isPickedRoot, pt as lazyComponent, y as localStore, b as sessionStore, ae 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 };
1246
+ 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 };