@picked/client 0.0.1-dev.1774950356669 → 0.0.1-dev.1775004084041

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 (45) hide show
  1. package/dist/{api-BHJlUOFk.js → api-CWdYRdXN.js} +1 -1
  2. package/dist/{api-QaRyNOq-.cjs → api-CaQ00bOF.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 +173 -154
  12. package/dist/esm/plugins/create-experience/index.js +2 -1
  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-eacAapPl.cjs → experience-instance-BSYR-Hla.cjs} +1 -1
  18. package/dist/{experience-instance-Bl0OlS-y.js → experience-instance-CvpIiEca.js} +22 -18
  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 +28 -48
  22. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  23. package/dist/types/entities/experience-instance/experience-instance.d.ts +1 -0
  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 +45 -40
  33. package/dist/types/picked.d.ts.map +1 -1
  34. package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
  35. package/dist/types/plugins/create-experience/serialization.d.ts +0 -1
  36. package/dist/types/plugins/create-experience/serialization.d.ts.map +1 -1
  37. package/dist/types/utils/indexed-db.d.ts +0 -52
  38. package/dist/types/utils/indexed-db.d.ts.map +1 -1
  39. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts +6 -10
  40. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts.map +1 -1
  41. package/dist/types/utils/nodes.d.ts +0 -50
  42. package/dist/types/utils/nodes.d.ts.map +1 -1
  43. package/dist/types/utils/state-snaphot.d.ts +1 -1
  44. package/dist/types/utils/state-snaphot.d.ts.map +1 -1
  45. package/package.json +1 -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-Bl0OlS-y.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-BHJlUOFk.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-CvpIiEca.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-CWdYRdXN.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,17 +40,17 @@ 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
51
51
  };
52
- } }), r = t.map((e) => Object.fromEntries(Object.values(e).map((e) => [e.key, e.id])));
53
- function i(r) {
52
+ } });
53
+ function r(r) {
54
54
  let i = t.getState()[r.id];
55
55
  if (i) {
56
56
  i.merge({
@@ -59,76 +59,83 @@ 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
  });
66
66
  n.register(a);
67
67
  }
68
- let a = t.map((e) => Object.values(e));
68
+ let i = t.map((e) => Object.values(e));
69
+ function a(e) {
70
+ return t.map((t) => t[e], { skipVoid: !1 });
71
+ }
69
72
  function o(e) {
70
- return C(t, (t) => t[e], { skipVoid: !1 });
73
+ return t.map((t) => Object.values(t).find((t) => t.key === e) ?? t[e], { skipVoid: !1 });
71
74
  }
72
- let s = S({
73
- source: {
74
- experiences: t,
75
- keys: r
76
- },
77
- effect: async ({ experiences: t, keys: n }, { key: r, id: i, options: a }) => {
78
- let o = r ?? i ?? "", s = t[n[o] ?? ""] ?? t[o];
79
- if (!s) {
80
- `${o}`;
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
81
  return;
82
82
  }
83
- if (a?.bypassCondition) {
84
- N(e, s, a);
83
+ let { options: i } = n;
84
+ if (i?.bypassCondition) {
85
+ P(e, r, i);
85
86
  return;
86
87
  }
87
- await F(e, s) && N(e, s, a);
88
+ await I(e, r) && P(e, r, i);
88
89
  }
89
90
  });
90
91
  return {
91
- register: i,
92
- get: o,
93
- getById: o,
92
+ register: r,
93
+ getByKey: o,
94
+ getById: a,
94
95
  launch: s,
95
- open: S({
96
+ open: C({
96
97
  source: {
97
- instances: e.experienceInstances.listStore,
98
- keys: r
98
+ experiences: t,
99
+ instances: e.experienceInstances.listStore
99
100
  },
100
- effect: ({ instances: e, keys: t }, { key: n, id: r, options: i }) => {
101
- let a = n ?? r ?? "", o = t[a] ?? a, c = e.filter((e) => e.experienceId === o);
102
- if (c.length > 0) for (let e of c) e.open();
103
- else s({
104
- key: o,
101
+ effect: ({ experiences: e, instances: t }, n) => {
102
+ 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);
103
+ if (i.length > 0) for (let e of i) e.open();
104
+ else s("key" in n ? {
105
+ key: n.key,
105
106
  options: {
106
- ...i,
107
+ ...n.options,
108
+ initialiseOpen: !0
109
+ }
110
+ } : {
111
+ id: n.id,
112
+ options: {
113
+ ...n.options,
107
114
  initialiseOpen: !0
108
115
  }
109
116
  });
110
117
  }
111
118
  }),
112
- listStore: a
119
+ listStore: i
113
120
  };
114
121
  });
115
- function fe(e) {
116
- return j(de, e);
122
+ function de(e) {
123
+ return M(ue, e);
117
124
  }
118
- var N = (e, t, n) => {
119
- let { targetSelectors: r } = t.configStore.getState(), i = v(r, t.id);
120
- i.forEach(({ elements: e }) => e.forEach((e) => te(e, t.id))), g(i, t.id).forEach((r) => {
125
+ var P = (e, t, n) => {
126
+ let { targetSelectors: r } = t.configStore.getState(), i = y(r, t.id);
127
+ i.forEach(({ elements: e }) => e.forEach((e) => ee(e, t.id))), g(i, t.id).forEach((r) => {
121
128
  n ? e.experienceInstances.spawn(t, r, n) : e.experienceInstances.spawn(t, r);
122
129
  });
123
- }, P = async (e) => {
130
+ }, F = async (e) => {
124
131
  await Promise.all(e.experiences.listStore.getState().map(async (t) => {
125
- await F(e, t) && N(e, t);
132
+ await I(e, t) && P(e, t);
126
133
  }));
127
- }, F = async (n, r) => {
134
+ }, I = async (n, r) => {
128
135
  if (!n.preconditionPassed || !n.session?.isUser) return !1;
129
136
  let { decisionLogic: i, targetSelectors: a } = r.configStore.getState();
130
- return v(a, r.id).length < 1 || a.length === 0 ? !1 : i === void 0 ? !0 : e(i) ? await t(n, i) === !0 : !0;
131
- }, I = (e, t, n) => {
137
+ return y(a, r.id).length < 1 || a.length === 0 ? !1 : i === void 0 ? !0 : e(i) ? await t(n, i) === !0 : !0;
138
+ }, fe = (e, t, n) => {
132
139
  let r = t.name, i = t.setup(e);
133
140
  if (i) {
134
141
  let e = n[r] ?? {};
@@ -137,16 +144,16 @@ var N = (e, t, n) => {
137
144
  ...i
138
145
  });
139
146
  }
140
- }, L = T("component"), R = A(({ client: e, component: t, name: n }) => ({
147
+ }, L = E("component"), R = j(({ client: e, component: t, name: n }) => ({
141
148
  name: n,
142
149
  component: t,
143
150
  frameworkStore: e.frameworks.getByName(t.frameworkName)
144
151
  }));
145
152
  function z(e) {
146
- return j(R, e);
153
+ return M(R, e);
147
154
  }
148
- var B = A(({ client: e }) => {
149
- let t = L.store({}), n = w(t, { register(e, t) {
155
+ var B = j(({ client: e }) => {
156
+ let t = L.store({}), n = T(t, { register(e, t) {
150
157
  return {
151
158
  ...e,
152
159
  [t.name]: t
@@ -172,12 +179,12 @@ var B = A(({ client: e }) => {
172
179
  };
173
180
  });
174
181
  function V(e) {
175
- return j(B, e);
182
+ return M(B, e);
176
183
  }
177
184
  var H = (e, t, n) => {
178
185
  n.register(e, t);
179
- }, pe = T("framework"), me = A(({ client: e }) => {
180
- let t = pe.store({}), n = w(t, { register(e, t) {
186
+ }, pe = E("framework"), me = j(({ client: e }) => {
187
+ let t = pe.store({}), n = T(t, { register(e, t) {
181
188
  return {
182
189
  ...e,
183
190
  [t.name]: t.framework
@@ -200,20 +207,20 @@ var H = (e, t, n) => {
200
207
  };
201
208
  });
202
209
  function he(e) {
203
- return j(me, e);
210
+ return M(me, e);
204
211
  }
205
212
  var ge = (e, t) => {
206
213
  t.register(e.name, e);
207
- }, _e = 6e3, ve = x("last_ping", "global"), ye = async (e) => {
214
+ }, _e = 6e3, ve = S("last_ping", "global"), ye = async (e) => {
208
215
  try {
209
- let t = Date.now(), n = y.get(ve), r = 0;
216
+ let t = Date.now(), n = b.get(ve), r = 0;
210
217
  if (n.isSet() && (r = n.json() ?? 0), r && t - r < _e) return !0;
211
218
  let i = {
212
219
  projectId: e.projectId,
213
220
  path: window.location.pathname
214
221
  }, a = {}, o = document.getElementById("picked_script")?.dataset.verceltoken;
215
222
  o && (a["x-vercel-protection-bypass"] = o);
216
- let s = (await oe(e.apiUrl, "ping", i, a)).ok;
223
+ let s = (await ae(e.apiUrl, "ping", i, a)).ok;
217
224
  return s && n.set(t), s;
218
225
  } catch {
219
226
  return !1;
@@ -235,8 +242,8 @@ function U(e) {
235
242
  }
236
243
  //#endregion
237
244
  //#region src/entities/predicate/predicate.ts
238
- var be = T("predicate"), xe = A(({ client: e }) => {
239
- let t = be.store({}), n = w(t, { register(e, t) {
245
+ var be = E("predicate"), xe = j(({ client: e }) => {
246
+ let t = be.store({}), n = T(t, { register(e, t) {
240
247
  return {
241
248
  ...e,
242
249
  [t.name]: {
@@ -256,7 +263,7 @@ var be = T("predicate"), xe = A(({ client: e }) => {
256
263
  return t.map((t) => t[e]?.predicate, { skipVoid: !1 });
257
264
  }
258
265
  function o(t) {
259
- let n = O(() => void 0, { skipVoid: !1 }), r = E(async () => {
266
+ let n = k(() => void 0, { skipVoid: !1 }), r = D(async () => {
260
267
  let n = a(t).getState();
261
268
  if (!n) return;
262
269
  let r = U(e);
@@ -265,13 +272,13 @@ var be = T("predicate"), xe = A(({ client: e }) => {
265
272
  args: e
266
273
  });
267
274
  });
268
- return k({
275
+ return A({
269
276
  source: {
270
277
  responses: e.responses.listStore,
271
278
  fields: e.fields.listStore
272
279
  },
273
280
  target: r
274
- }), k({
281
+ }), A({
275
282
  clock: r.doneData,
276
283
  filter: (e) => e !== void 0,
277
284
  target: n
@@ -285,12 +292,12 @@ var be = T("predicate"), xe = A(({ client: e }) => {
285
292
  };
286
293
  });
287
294
  function Se(e) {
288
- return j(xe, e);
295
+ return M(xe, e);
289
296
  }
290
297
  var Ce = (e, t, n) => {
291
298
  n.register(e, t);
292
- }, W = T("feature"), we = A(({ client: e }) => {
293
- let t = W.store({}), n = W.store([]), r = w(t, { register(e, t) {
299
+ }, W = E("feature"), we = j(({ client: e }) => {
300
+ let t = W.store({}), n = W.store([]), r = T(t, { register(e, t) {
294
301
  return {
295
302
  ...e,
296
303
  [t.id]: t.feature
@@ -310,19 +317,19 @@ var Ce = (e, t, n) => {
310
317
  feature: i
311
318
  }));
312
319
  }
313
- let a = E(async ({ id: e, key: t, storage: n = "local" }) => {
314
- let r = x(`feature:${e}:${t}`, "global"), i = (n === "session" ? b : y).get(r).boolean();
320
+ let a = D(async ({ id: e, key: t, storage: n = "local" }) => {
321
+ let r = S(`feature:${e}:${t}`, "global"), i = (n === "session" ? x : b).get(r).boolean();
315
322
  return i === null ? null : {
316
323
  id: e,
317
324
  key: t,
318
325
  bucket: i,
319
326
  storage: n
320
327
  };
321
- }), o = E((e) => {
328
+ }), o = D((e) => {
322
329
  if (!e) return null;
323
- let t = x(`feature:${e.id}:${e.key}`, "global");
324
- (e.storage === "session" ? b : y).set(t, e.bucket);
325
- }), s = /* @__PURE__ */ new Map(), c = S({
330
+ let t = S(`feature:${e.id}:${e.key}`, "global");
331
+ (e.storage === "session" ? x : b).set(t, e.bucket);
332
+ }), s = /* @__PURE__ */ new Map(), c = C({
326
333
  source: {
327
334
  allFeaturesStore: t,
328
335
  resolvedFeaturesStore: n
@@ -353,7 +360,7 @@ var Ce = (e, t, n) => {
353
360
  };
354
361
  }
355
362
  });
356
- k({
363
+ A({
357
364
  clock: r.register,
358
365
  fn: (e) => {
359
366
  let { id: t, feature: n } = e;
@@ -364,7 +371,7 @@ var Ce = (e, t, n) => {
364
371
  };
365
372
  },
366
373
  target: a
367
- }), k({
374
+ }), A({
368
375
  source: t,
369
376
  clock: c.doneData,
370
377
  fn: (e, t) => {
@@ -378,7 +385,7 @@ var Ce = (e, t, n) => {
378
385
  },
379
386
  target: o
380
387
  });
381
- let l = C({
388
+ let l = w({
382
389
  allFeaturesStore: t,
383
390
  resolvedFeaturesStore: n
384
391
  }).map(({ allFeaturesStore: e, resolvedFeaturesStore: t }) => Object.values(e).map((e) => {
@@ -400,7 +407,7 @@ var Ce = (e, t, n) => {
400
407
  isResolved: !1
401
408
  };
402
409
  }));
403
- k({
410
+ A({
404
411
  clock: c.doneData,
405
412
  source: { resolvedFeatures: n },
406
413
  filter: ({ resolvedFeatures: e }, { id: t, key: n }) => !e.some((e) => e.id === t && e.key === n),
@@ -409,7 +416,7 @@ var Ce = (e, t, n) => {
409
416
  type: "feature_decide",
410
417
  feature: e
411
418
  }))
412
- }), k({
419
+ }), A({
413
420
  clock: [a.doneData, c.doneData],
414
421
  source: n,
415
422
  fn: (e, t) => !t || e.some((e) => e.id === t.id && e.key === t.key) ? e : [...e, t],
@@ -422,15 +429,15 @@ var Ce = (e, t, n) => {
422
429
  return t.map((t) => t[e], { skipVoid: !1 });
423
430
  }
424
431
  function f(e) {
425
- let t = O(async () => void 0, { skipVoid: !1 }), r = E(async () => {
432
+ let t = k(async () => void 0, { skipVoid: !1 }), r = D(async () => {
426
433
  let t = u(e).getState();
427
434
  if (t) return async () => (await t.getBucket()).bucket;
428
435
  });
429
- return k({
436
+ return A({
430
437
  source: n,
431
438
  filter: (t) => t.some((t) => t.id === e),
432
439
  target: r
433
- }), k({
440
+ }), A({
434
441
  clock: r.doneData,
435
442
  filter: (e) => e !== void 0,
436
443
  target: t
@@ -445,20 +452,20 @@ var Ce = (e, t, n) => {
445
452
  };
446
453
  });
447
454
  function Te(e) {
448
- return j(we, e);
455
+ return M(we, e);
449
456
  }
450
457
  var Ee = (e, t, n) => {
451
458
  n.register(e, t);
452
- }, G = T("history");
459
+ }, G = E("history");
453
460
  function K(e, t) {
454
461
  return {
455
- id: ce(`history-entry-${Date.now()}-${Math.random()}}`),
462
+ id: se(`history-entry-${Date.now()}-${Math.random()}}`),
456
463
  node: t,
457
464
  at: Date.now(),
458
465
  experienceId: e
459
466
  };
460
467
  }
461
- var De = A(() => {
468
+ var De = j(() => {
462
469
  let e = G.store({ entries: [] }), t = G.event(), n = G.event(), r = G.event(), i = G.event();
463
470
  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);
464
471
  function a(e, t) {
@@ -468,7 +475,7 @@ var De = A(() => {
468
475
  };
469
476
  for (let r = e.length - 1; r >= 0; r--) {
470
477
  let i = e[r], a = i?.node;
471
- if (!(!a || !_(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
478
+ if (!(!a || !v(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
472
479
  else {
473
480
  n.secondLastStepIndex = r;
474
481
  break;
@@ -491,13 +498,13 @@ var De = A(() => {
491
498
  };
492
499
  });
493
500
  function Oe() {
494
- return j(De);
501
+ return M(De);
495
502
  }
496
503
  //#endregion
497
504
  //#region src/utils/events.ts
498
505
  var ke = 0, Ae = (e) => {
499
- let t = O([]);
500
- return k({
506
+ let t = k([]);
507
+ return A({
501
508
  clock: e,
502
509
  source: t,
503
510
  fn: (e, t) => [...e, {
@@ -507,8 +514,8 @@ var ke = 0, Ae = (e) => {
507
514
  }],
508
515
  target: t
509
516
  }), t;
510
- }, je = T("field"), Me = A(() => {
511
- let e = je.store({}), t = w(e, {
517
+ }, je = E("field"), Me = j(() => {
518
+ let e = je.store({}), t = T(e, {
512
519
  register(e, t) {
513
520
  return {
514
521
  ...e,
@@ -535,27 +542,30 @@ var ke = 0, Ae = (e) => {
535
542
  }
536
543
  let i = e.map((e) => Object.values(e));
537
544
  function a(t) {
538
- return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null, { skipVoid: !1 });
545
+ return e.map((e) => e[t] ?? null, { skipVoid: !1 });
539
546
  }
540
547
  function o(t) {
548
+ return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null, { skipVoid: !1 });
549
+ }
550
+ function s(t) {
541
551
  return e.map((e) => Object.values(e).find((e) => e.name === t) ?? null, { skipVoid: !1 });
542
552
  }
543
553
  return {
544
554
  register: n,
545
555
  update: r,
546
556
  getById: a,
547
- get: a,
557
+ getByKey: o,
548
558
  listStore: i,
549
- getByName: o
559
+ getByName: s
550
560
  };
551
561
  });
552
562
  function Ne() {
553
- return j(Me);
563
+ return M(Me);
554
564
  }
555
565
  //#endregion
556
566
  //#region src/entities/step/step.ts
557
- var Pe = T("step"), Fe = A(() => {
558
- let e = Pe.store({}), t = w(e, { register(e, t) {
567
+ var Pe = E("step"), Fe = j(() => {
568
+ let e = Pe.store({}), t = T(e, { register(e, t) {
559
569
  return {
560
570
  ...e,
561
571
  [t.step.id]: t.step
@@ -566,25 +576,29 @@ var Pe = T("step"), Fe = A(() => {
566
576
  }
567
577
  let r = e.map((e) => Object.values(e));
568
578
  function i(t) {
579
+ return e.map((e) => e[t] ?? null, { skipVoid: !1 });
580
+ }
581
+ function a(t) {
569
582
  return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null, { skipVoid: !1 });
570
583
  }
571
584
  return {
572
585
  register: n,
573
- get: i,
574
586
  getById: i,
575
- listStore: r
587
+ getByKey: a,
588
+ listStore: r,
589
+ indexStore: e
576
590
  };
577
591
  });
578
592
  function Ie() {
579
- return j(Fe);
593
+ return M(Fe);
580
594
  }
581
595
  function Le(e, t) {
582
596
  t.register(e);
583
597
  }
584
598
  //#endregion
585
599
  //#region src/entities/action/action.ts
586
- var Re = T("action"), ze = A(() => {
587
- let e = Re.store({}), t = w(e, { register(e, t) {
600
+ var Re = E("action"), ze = j(() => {
601
+ let e = Re.store({}), t = T(e, { register(e, t) {
588
602
  return {
589
603
  ...e,
590
604
  [t.name]: {
@@ -617,7 +631,7 @@ var Re = T("action"), ze = A(() => {
617
631
  };
618
632
  });
619
633
  function Be() {
620
- return j(ze);
634
+ return M(ze);
621
635
  }
622
636
  var Ve = (e, t, n) => {
623
637
  n.register(e, t);
@@ -686,8 +700,8 @@ async function qe(e, t, r, i) {
686
700
  }
687
701
  //#endregion
688
702
  //#region src/entities/response/response.ts
689
- var Je = T("response"), Ye = A(({ client: e }) => {
690
- let n = Je.store({}), r = D(), i = D(), a = w(n, {
703
+ var Je = E("response"), Ye = j(({ client: e }) => {
704
+ let n = Je.store({}), r = O(), i = O(), a = T(n, {
691
705
  register(e, t) {
692
706
  return {
693
707
  ...e,
@@ -716,7 +730,7 @@ var Je = T("response"), Ye = A(({ client: e }) => {
716
730
  });
717
731
  } else a.registerBatch(e);
718
732
  }
719
- let s = (n, r) => t(e, n, r), c = S({
733
+ let s = (n, r) => t(e, n, r), c = C({
720
734
  source: {
721
735
  allFields: e.fields.listStore,
722
736
  existingResponses: n
@@ -774,7 +788,7 @@ var Je = T("response"), Ye = A(({ client: e }) => {
774
788
  async function l(e) {
775
789
  return c(e);
776
790
  }
777
- let u = S({
791
+ let u = C({
778
792
  source: n,
779
793
  effect: async (e, t) => {
780
794
  let { responsesToCommit: n, validationErrors: r } = await c(t);
@@ -788,9 +802,9 @@ var Je = T("response"), Ye = A(({ client: e }) => {
788
802
  fieldKey: e,
789
803
  value: t
790
804
  })));
791
- function m(t) {
792
- return C({
793
- f: e.fields.getById(t),
805
+ function m(e) {
806
+ return w({
807
+ f: e,
794
808
  s: n
795
809
  }, ({ f: e, s: t }) => {
796
810
  let n = e ? t[e.key] ?? null : null;
@@ -798,27 +812,18 @@ var Je = T("response"), Ye = A(({ client: e }) => {
798
812
  });
799
813
  }
800
814
  function h(t) {
801
- return C({
802
- f: e.fields.getByKey(t),
803
- s: n
804
- }, ({ f: e, s: t }) => {
805
- let n = e ? t[e.key] ?? null : null;
806
- return n === null ? e?.defaultValue !== void 0 && e.defaultValue !== null ? e.defaultValue : null : n;
807
- });
815
+ return m(e.fields.getById(t));
808
816
  }
809
817
  function g(t) {
810
- return C({
811
- f: e.fields.getByName(t),
812
- s: n
813
- }, ({ f: e, s: t }) => {
814
- let n = e ? t[e.key] ?? null : null;
815
- return n === null ? e?.defaultValue !== void 0 && e.defaultValue !== null ? e.defaultValue : null : n;
816
- });
818
+ return m(e.fields.getByKey(t));
817
819
  }
818
- return k({
820
+ function _(t) {
821
+ return m(e.fields.getByName(t));
822
+ }
823
+ return A({
819
824
  clock: r,
820
825
  target: a.clearAll
821
- }), k({
826
+ }), A({
822
827
  clock: i,
823
828
  target: a.clear
824
829
  }), {
@@ -829,18 +834,18 @@ var Je = T("response"), Ye = A(({ client: e }) => {
829
834
  getResponsesToCommit: l,
830
835
  listStore: p,
831
836
  getAllStore: f,
832
- getByFieldId: m,
833
- getByFieldKey: h,
834
- getByFieldName: g
837
+ getByFieldId: h,
838
+ getByFieldKey: g,
839
+ getByFieldName: _
835
840
  };
836
841
  });
837
842
  function Xe(e) {
838
- return j(Ye, e);
843
+ return M(Ye, e);
839
844
  }
840
845
  //#endregion
841
846
  //#region src/entities/condition/condition.ts
842
- var Ze = T("condition"), Qe = A(() => {
843
- let e = Ze.store({}), t = w(e, { register(e, t) {
847
+ var Ze = E("condition"), Qe = j(() => {
848
+ let e = Ze.store({}), t = T(e, { register(e, t) {
844
849
  return {
845
850
  ...e,
846
851
  [t.condition.id]: t.condition
@@ -851,16 +856,21 @@ var Ze = T("condition"), Qe = A(() => {
851
856
  }
852
857
  let r = e.map((e) => Object.values(e));
853
858
  function i(t) {
854
- return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null);
859
+ return e.map((e) => e[t] ?? null, { skipVoid: !1 });
860
+ }
861
+ function a(t) {
862
+ return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null, { skipVoid: !1 });
855
863
  }
856
864
  return {
857
865
  register: n,
858
- get: i,
859
- listStore: r
866
+ getById: i,
867
+ getByKey: a,
868
+ listStore: r,
869
+ indexStore: e
860
870
  };
861
871
  });
862
872
  function $e() {
863
- return j(Qe);
873
+ return M(Qe);
864
874
  }
865
875
  //#endregion
866
876
  //#region src/utils/api-url.ts
@@ -887,10 +897,10 @@ function tt() {
887
897
  let n = r.replace("picked-", "");
888
898
  t[n] = e.getAll(r);
889
899
  }
890
- let r = x("s");
891
- if (n.size > 0) b.set(r, t);
900
+ let r = S("s");
901
+ if (n.size > 0) x.set(r, t);
892
902
  else {
893
- let e = b.get(r);
903
+ let e = x.get(r);
894
904
  if (e) return e.json() || {};
895
905
  }
896
906
  return t;
@@ -900,8 +910,8 @@ function tt() {
900
910
  function nt() {
901
911
  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)}`;
902
912
  }
903
- var rt = x("session", "global"), it = () => {
904
- let e = y.get(rt), t;
913
+ var rt = S("session", "global"), it = () => {
914
+ let e = b.get(rt), t;
905
915
  e.isSet() && (t = e.json());
906
916
  let n = (t) => e.set({
907
917
  id: t.id,
@@ -1028,7 +1038,7 @@ var $ = class {
1028
1038
  isReady = !1;
1029
1039
  plugins = {};
1030
1040
  pluginStartHooks = [];
1031
- eventBus = D();
1041
+ eventBus = O();
1032
1042
  events;
1033
1043
  organizationId;
1034
1044
  projectId;
@@ -1042,8 +1052,8 @@ var $ = class {
1042
1052
  searchParams = tt();
1043
1053
  history = Oe();
1044
1054
  components = V({ client: this });
1045
- experienceInstances = ne({ client: this });
1046
- experiences = fe({ client: this });
1055
+ experienceInstances = te({ client: this });
1056
+ experiences = de({ client: this });
1047
1057
  frameworks = he({ client: this });
1048
1058
  predicates = Se({ client: this });
1049
1059
  features = Te({ client: this });
@@ -1057,7 +1067,7 @@ var $ = class {
1057
1067
  let { organizationId: t, projectId: n } = st(e);
1058
1068
  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({
1059
1069
  type: "load",
1060
- version: se()
1070
+ version: oe()
1061
1071
  });
1062
1072
  }
1063
1073
  start = () => {
@@ -1076,7 +1086,7 @@ var $ = class {
1076
1086
  value: e
1077
1087
  });
1078
1088
  }
1079
- if (this.eventBus({ type: "initialize" }), n && P(this), await re(), n && P(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session) {
1089
+ if (this.eventBus({ type: "initialize" }), n && F(this), await ne(), n && F(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session) {
1080
1090
  let { id: e, isUser: t, identifiers: n } = this.session;
1081
1091
  this.eventBus({
1082
1092
  type: "session",
@@ -1094,7 +1104,7 @@ var $ = class {
1094
1104
  H(e, t, this.components);
1095
1105
  };
1096
1106
  registerPlugin = (e) => {
1097
- I(this, e, this.plugins);
1107
+ fe(this, e, this.plugins);
1098
1108
  let t = this.plugins[e.name];
1099
1109
  t?.onStart && this.pluginStartHooks.push(t.onStart);
1100
1110
  };
@@ -1121,12 +1131,21 @@ var $ = class {
1121
1131
  };
1122
1132
  getStateSnapshot = () => U(this);
1123
1133
  launchExperienceById = async (e, t) => {
1134
+ this.experiences.launch({
1135
+ id: e,
1136
+ options: t
1137
+ });
1138
+ };
1139
+ launchExperienceByKey = async (e, t) => {
1124
1140
  this.experiences.launch({
1125
1141
  key: e,
1126
1142
  options: t
1127
1143
  });
1128
1144
  };
1129
1145
  openExperienceById = async (e) => {
1146
+ this.experiences.open({ id: e });
1147
+ };
1148
+ openExperienceByKey = async (e) => {
1130
1149
  this.experiences.open({ key: e });
1131
1150
  };
1132
1151
  async runPluginStartHooks() {
@@ -1223,4 +1242,4 @@ var ht = (e) => {
1223
1242
  return d(t), t;
1224
1243
  };
1225
1244
  //#endregion
1226
- 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 };
1245
+ 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 };