@picked/client 0.0.1-dev.1764633009920 → 0.0.1-dev.1764634757151

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 (29) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/cjs/plugins/create-experience/index.js +1 -1
  3. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  4. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  5. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  6. package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
  7. package/dist/cjs/server/index.js +1 -1
  8. package/dist/esm/index.js +460 -441
  9. package/dist/esm/plugins/create-experience/index.js +123 -121
  10. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  11. package/dist/esm/plugins/history-browser-storage/index.js +8 -8
  12. package/dist/esm/plugins/responses-browser-storage/index.js +6 -6
  13. package/dist/esm/plugins/responses-indexeddb/index.js +1 -1
  14. package/dist/esm/server/index.js +1 -1
  15. package/dist/{experience-instance-CMrX6QA2.js → experience-instance-C4INDX6a.js} +1 -1
  16. package/dist/{experience-instance-BpQMqclI.cjs → experience-instance-DjjpHk0t.cjs} +1 -1
  17. package/dist/types/client.d.ts +31 -0
  18. package/dist/types/client.d.ts.map +1 -1
  19. package/dist/types/entities/experience/experience.d.ts +3 -1
  20. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  21. package/dist/types/picked.d.ts +12 -9
  22. package/dist/types/picked.d.ts.map +1 -1
  23. package/dist/types/plugins/create-experience/create-experience.d.ts +5 -1
  24. package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
  25. package/dist/types/utils/events.d.ts +10 -7
  26. package/dist/types/utils/events.d.ts.map +1 -1
  27. package/dist/types/utils/user-session.d.ts +2 -0
  28. package/dist/types/utils/user-session.d.ts.map +1 -1
  29. package/package.json +1 -1
package/dist/esm/index.js CHANGED
@@ -1,207 +1,207 @@
1
- var Y = Object.defineProperty;
2
- var J = (t, e, r) => e in t ? Y(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
- var m = (t, e, r) => J(t, typeof e != "symbol" ? e + "" : e, r);
4
- import { createDomain as b, createApi as I, createEffect as M, attach as Q, sample as x, combine as O, createEvent as C } from "effector";
5
- import { createFactory as v, invoke as w } from "@withease/factories";
6
- import { g as _, t as X, c as Z, i as ee, e as $, a as te, b as re, d as se } from "../experience-instance-CMrX6QA2.js";
7
- import { f as kt } from "../experience-instance-CMrX6QA2.js";
8
- import { l as k } from "../logger-C9a75KZn.js";
9
- import { c as R, s as j, l as D } from "../storage-Cb_71y48.js";
10
- import { a as wt } from "../storage-Cb_71y48.js";
11
- import { g as ne } from "../id-BW-g3y32.js";
12
- import { i as oe } from "../object-JwZ58NOH.js";
13
- import { s as H, a as ie, b as ae, c as ce, d as ue } from "../supports-BjhuLJ8z.js";
14
- import { h as bt, f as It, j as xt, e as Et, g as Pt, i as Rt, k as Bt } from "../supports-BjhuLJ8z.js";
15
- const K = b("experience"), le = v(
1
+ var X = Object.defineProperty;
2
+ var Z = (t, e, s) => e in t ? X(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
3
+ var m = (t, e, s) => Z(t, typeof e != "symbol" ? e + "" : e, s);
4
+ import { createDomain as F, createApi as b, createEffect as U, attach as ee, sample as x, combine as O, createEvent as C } from "effector";
5
+ import { createFactory as k, invoke as w } from "@withease/factories";
6
+ import { g as L, t as te, c as se, i as re, e as E, a as ne, b as ie, d as oe } from "../experience-instance-C4INDX6a.js";
7
+ import { f as kt } from "../experience-instance-C4INDX6a.js";
8
+ import { l as v } from "../logger-C9a75KZn.js";
9
+ import { c as B, s as j, l as D } from "../storage-Cb_71y48.js";
10
+ import { a as It } from "../storage-Cb_71y48.js";
11
+ import { g as ae } from "../id-BW-g3y32.js";
12
+ import { i as ce } from "../object-JwZ58NOH.js";
13
+ import { s as H, a as ue, b as K, c as le, d as de } from "../supports-BjhuLJ8z.js";
14
+ import { h as bt, f as xt, j as Et, e as Pt, g as Rt, i as Bt, k as At } from "../supports-BjhuLJ8z.js";
15
+ const q = F("experience"), pe = k(
16
16
  ({ client: t, experience: e }) => {
17
- const r = K.store(e), n = I(r, {
18
- merge(l, h) {
17
+ const s = q.store(e), n = b(s, {
18
+ merge(u, h) {
19
19
  return {
20
- ...l,
20
+ ...u,
21
21
  ...h.experience
22
22
  };
23
23
  }
24
- }), c = r.map((l) => ({
25
- name: l.name,
26
- decisionLogic: l.decide,
27
- targetSelectors: l.targets,
24
+ }), a = s.map((u) => ({
25
+ name: u.name,
26
+ decisionLogic: u.condition ?? u.decide,
27
+ targetSelectors: u.targets,
28
28
  initializeOpenLogic: e.initializeOpen
29
- })), u = t.components.listStore.map(
30
- (l) => l.find((h) => h.name === `experience:${e.id}`) || l.find((h) => h.name === "experience"),
29
+ })), l = t.components.listStore.map(
30
+ (u) => u.find((h) => h.name === `experience:${e.id}`) || u.find((h) => h.name === "experience"),
31
31
  { skipVoid: !1 }
32
- ), s = r.map((l) => ({
33
- steps: l.steps,
34
- nodes: l.nodes,
35
- edges: l.edges,
36
- conditionals: l.conditionals
37
- })), o = e.actions ?? [];
32
+ ), r = s.map((u) => ({
33
+ steps: u.steps,
34
+ nodes: u.nodes,
35
+ edges: u.edges,
36
+ conditionals: u.conditionals
37
+ })), i = e.actions ?? [];
38
38
  return {
39
39
  id: e.id,
40
- configStore: c,
41
- treeStore: s,
42
- componentStore: u,
43
- actions: o,
40
+ configStore: a,
41
+ treeStore: r,
42
+ componentStore: l,
43
+ actions: i,
44
44
  merge: n.merge
45
45
  };
46
46
  }
47
47
  );
48
- function de(t) {
49
- return w(le, t);
48
+ function ge(t) {
49
+ return w(pe, t);
50
50
  }
51
- const pe = v(({ client: t }) => {
52
- const e = K.store({}), r = I(e, {
53
- register(s, o) {
51
+ const fe = k(({ client: t }) => {
52
+ const e = q.store({}), s = b(e, {
53
+ register(r, i) {
54
54
  return {
55
- ...s,
56
- [o.id]: o
55
+ ...r,
56
+ [i.id]: i
57
57
  };
58
58
  }
59
59
  });
60
- function n(s) {
61
- const o = e.getState()[s.id];
62
- if (o) {
63
- o.merge({ experience: s, strategy: "override" });
60
+ function n(r) {
61
+ const i = e.getState()[r.id];
62
+ if (i) {
63
+ i.merge({ experience: r, strategy: "override" });
64
64
  return;
65
65
  }
66
- const l = de({ client: t, experience: s });
67
- r.register(l);
66
+ const u = ge({ client: t, experience: r });
67
+ s.register(u);
68
68
  }
69
- const c = e.map((s) => Object.values(s));
70
- function u(s) {
71
- return e.map((o) => o[s], { skipVoid: !1 });
69
+ const a = e.map((r) => Object.values(r));
70
+ function l(r) {
71
+ return e.map((i) => i[r], { skipVoid: !1 });
72
72
  }
73
73
  return {
74
74
  register: n,
75
- getById: u,
76
- listStore: c
75
+ getById: l,
76
+ listStore: a
77
77
  };
78
78
  });
79
- function ge(t) {
80
- return w(pe, t);
79
+ function me(t) {
80
+ return w(fe, t);
81
81
  }
82
- const fe = (t, e) => {
82
+ const he = (t, e) => {
83
83
  e.register(t);
84
- }, q = (t, e) => {
85
- const { targetSelectors: r } = e.configStore.getState(), n = _(r, e.id);
84
+ }, G = (t, e) => {
85
+ const { targetSelectors: s } = e.configStore.getState(), n = L(s, e.id);
86
86
  n.forEach(
87
- ({ elements: u }) => u.forEach((s) => X(s, e.id))
88
- ), Z(n, e.id).forEach((u) => {
89
- t.experienceInstances.spawn(e, u);
87
+ ({ elements: l }) => l.forEach((r) => te(r, e.id))
88
+ ), se(n, e.id).forEach((l) => {
89
+ t.experienceInstances.spawn(e, l);
90
90
  });
91
- }, V = async (t) => {
91
+ }, M = async (t) => {
92
92
  await Promise.all(
93
93
  t.experiences.listStore.getState().map(async (e) => {
94
- await me(t, e) && q(t, e);
94
+ await ye(t, e) && G(t, e);
95
95
  })
96
96
  );
97
- }, me = async (t, e) => {
98
- const { decisionLogic: r, targetSelectors: n } = e.configStore.getState();
99
- return _(n, e.id).length < 1 || n.length === 0 ? !1 : r && ee(r) ? await $(t, r) === !0 : !0;
100
- }, he = (t, e, r) => {
101
- const n = e.name, c = e.setup(t);
102
- if (c) {
103
- const u = r[n] ?? {};
104
- r[n] = Object.freeze({ ...u, ...c });
105
- }
106
- }, ye = b("component"), Se = v(
107
- ({ client: t, component: e, name: r }) => {
97
+ }, ye = async (t, e) => {
98
+ const { decisionLogic: s, targetSelectors: n } = e.configStore.getState();
99
+ return L(n, e.id).length < 1 || n.length === 0 ? !1 : s && re(s) ? await E(t, s) === !0 : !0;
100
+ }, Se = (t, e, s) => {
101
+ const n = e.name, a = e.setup(t);
102
+ if (a) {
103
+ const l = s[n] ?? {};
104
+ s[n] = Object.freeze({ ...l, ...a });
105
+ }
106
+ }, ve = F("component"), ke = k(
107
+ ({ client: t, component: e, name: s }) => {
108
108
  const n = t.frameworks.getByName(e.frameworkName);
109
109
  return {
110
- name: r,
110
+ name: s,
111
111
  component: e,
112
112
  frameworkStore: n
113
113
  };
114
114
  }
115
115
  );
116
- function ke(t) {
117
- return w(Se, t);
116
+ function we(t) {
117
+ return w(ke, t);
118
118
  }
119
- const ve = v(({ client: t }) => {
120
- const e = ye.store({}), r = I(e, {
121
- register(s, o) {
119
+ const Ie = k(({ client: t }) => {
120
+ const e = ve.store({}), s = b(e, {
121
+ register(r, i) {
122
122
  return {
123
- ...s,
124
- [o.name]: o
123
+ ...r,
124
+ [i.name]: i
125
125
  };
126
126
  }
127
127
  });
128
- function n(s, o) {
129
- e.getState()[s] && k(
128
+ function n(r, i) {
129
+ e.getState()[r] && v(
130
130
  "warn",
131
- `Component '${s}' already registered. Registering again will override the previous registration.`
131
+ `Component '${r}' already registered. Registering again will override the previous registration.`
132
132
  );
133
- const h = ke({ client: t, name: s, component: o });
134
- r.register(h);
133
+ const h = we({ client: t, name: r, component: i });
134
+ s.register(h);
135
135
  }
136
- const c = e.map((s) => Object.values(s));
137
- function u(s) {
138
- return e.map((o) => o[s], { skipVoid: !1 });
136
+ const a = e.map((r) => Object.values(r));
137
+ function l(r) {
138
+ return e.map((i) => i[r], { skipVoid: !1 });
139
139
  }
140
140
  return {
141
141
  register: n,
142
- getByName: u,
143
- listStore: c
142
+ getByName: l,
143
+ listStore: a
144
144
  };
145
145
  });
146
- function we(t) {
147
- return w(ve, t);
146
+ function Fe(t) {
147
+ return w(Ie, t);
148
148
  }
149
- const T = (t, e, r) => {
150
- r.register(t, e);
151
- }, Fe = b("framework"), be = v(({ client: t }) => {
152
- const e = Fe.store({}), r = I(e, {
153
- register(s, o) {
149
+ const V = (t, e, s) => {
150
+ s.register(t, e);
151
+ }, be = F("framework"), xe = k(({ client: t }) => {
152
+ const e = be.store({}), s = b(e, {
153
+ register(r, i) {
154
154
  return {
155
- ...s,
156
- [o.name]: o.framework
155
+ ...r,
156
+ [i.name]: i.framework
157
157
  };
158
158
  }
159
159
  });
160
- function n(s, o) {
161
- e.getState()[s] && k(
160
+ function n(r, i) {
161
+ e.getState()[r] && v(
162
162
  "warn",
163
- `Framework '${s}' already registered. Registering again will override the previous registration.`
164
- ), r.register({ name: s, framework: o });
163
+ `Framework '${r}' already registered. Registering again will override the previous registration.`
164
+ ), s.register({ name: r, framework: i });
165
165
  }
166
- const c = e.map((s) => Object.values(s));
167
- function u(s) {
168
- return e.map((o) => o[s], { skipVoid: !1 });
166
+ const a = e.map((r) => Object.values(r));
167
+ function l(r) {
168
+ return e.map((i) => i[r], { skipVoid: !1 });
169
169
  }
170
170
  return {
171
171
  register: n,
172
- getByName: u,
173
- listStore: c
172
+ getByName: l,
173
+ listStore: a
174
174
  };
175
175
  });
176
- function Ie(t) {
177
- return w(be, t);
176
+ function Ee(t) {
177
+ return w(xe, t);
178
178
  }
179
- const xe = (t, e) => {
179
+ const Pe = (t, e) => {
180
180
  e.register(t.name, t);
181
- }, Ee = 6e3, N = R("last_ping", "global"), Pe = (t) => `${t}/api/v1/ping`, Re = async (t) => {
181
+ }, Re = 6e3, T = B("last_ping", "global"), Be = (t) => `${t}/api/v1/ping`, Ae = async (t) => {
182
182
  try {
183
- const e = Date.now(), r = localStorage.getItem(N);
184
- if (r && e - parseInt(r) < Ee)
183
+ const e = Date.now(), s = localStorage.getItem(T);
184
+ if (s && e - parseInt(s) < Re)
185
185
  return !0;
186
- const n = Pe(t.apiUrl), c = {
186
+ const n = Be(t.apiUrl), a = {
187
187
  projectId: t.projectId,
188
188
  path: window.location.pathname
189
- }, u = JSON.stringify(c), s = {
189
+ }, l = JSON.stringify(a), r = {
190
190
  "Content-Type": "application/json"
191
- }, o = document.getElementById("picked_script"), l = o == null ? void 0 : o.dataset.verceltoken;
192
- l && (s["x-vercel-protection-bypass"] = l);
191
+ }, i = document.getElementById("picked_script"), u = i == null ? void 0 : i.dataset.verceltoken;
192
+ u && (r["x-vercel-protection-bypass"] = u);
193
193
  const S = (await fetch(n, {
194
194
  method: "POST",
195
- headers: s,
196
- body: u
195
+ headers: r,
196
+ body: l
197
197
  })).ok;
198
- return S && localStorage.setItem(N, e.toString()), S;
198
+ return S && localStorage.setItem(T, e.toString()), S;
199
199
  } catch (e) {
200
- return k("error", e), !1;
200
+ return v("error", e), !1;
201
201
  }
202
202
  };
203
- function Be(t) {
204
- const e = typeof window < "u", r = {
203
+ function $e(t) {
204
+ const e = typeof window < "u", s = {
205
205
  client: t,
206
206
  responses: t.responses.listStore.getState(),
207
207
  fields: t.fields.listStore.getState(),
@@ -210,59 +210,59 @@ function Be(t) {
210
210
  sessionStorage: e ? window.sessionStorage : void 0,
211
211
  localStorage: e ? window.localStorage : void 0
212
212
  };
213
- return Object.freeze(r);
213
+ return Object.freeze(s);
214
214
  }
215
- const Ae = b("predicate"), $e = v(({ client: t }) => {
216
- const e = Ae.store({}), r = I(e, {
217
- register(s, o) {
215
+ const je = F("predicate"), De = k(({ client: t }) => {
216
+ const e = je.store({}), s = b(e, {
217
+ register(r, i) {
218
218
  return {
219
- ...s,
220
- [o.name]: {
221
- name: o.name,
222
- predicate: o.predicate
219
+ ...r,
220
+ [i.name]: {
221
+ name: i.name,
222
+ predicate: i.predicate
223
223
  }
224
224
  };
225
225
  }
226
226
  });
227
- function n(s, o) {
228
- e.getState()[s] && k(
227
+ function n(r, i) {
228
+ e.getState()[r] && v(
229
229
  "warn",
230
- `Predicate '${s}' already registered. Registering again will override the previous registration.`
231
- ), r.register(Object.freeze({ name: s, predicate: o }));
230
+ `Predicate '${r}' already registered. Registering again will override the previous registration.`
231
+ ), s.register(Object.freeze({ name: r, predicate: i }));
232
232
  }
233
- const c = e.map((s) => Object.values(s));
234
- function u(s) {
235
- return e.map((o) => o[s], { skipVoid: !1 });
233
+ const a = e.map((r) => Object.values(r));
234
+ function l(r) {
235
+ return e.map((i) => i[r], { skipVoid: !1 });
236
236
  }
237
237
  return {
238
238
  register: n,
239
- getByName: u,
240
- listStore: c
239
+ getByName: l,
240
+ listStore: a
241
241
  };
242
242
  });
243
- function je(t) {
244
- return w($e, t);
243
+ function Oe(t) {
244
+ return w(De, t);
245
245
  }
246
- const Oe = (t, e, r) => {
247
- r.register(t, e);
248
- }, z = b("feature"), Ce = v(({ client: t }) => {
249
- const e = z.store({}), r = z.store([]), n = I(e, {
250
- register(d, a) {
246
+ const Ce = (t, e, s) => {
247
+ s.register(t, e);
248
+ }, N = F("feature"), Ue = k(({ client: t }) => {
249
+ const e = N.store({}), s = N.store([]), n = b(e, {
250
+ register(d, c) {
251
251
  return {
252
252
  ...d,
253
- [a.id]: a.feature
253
+ [c.id]: c.feature
254
254
  };
255
255
  }
256
256
  });
257
- function c(d, a) {
258
- e.getState()[d] && k(
257
+ function a(d, c) {
258
+ e.getState()[d] && v(
259
259
  "warn",
260
260
  `Feature '${d}' already registered. Registering again will override the previous registration.`
261
261
  );
262
262
  const p = {
263
263
  id: d,
264
264
  feature: {
265
- ...a,
265
+ ...c,
266
266
  id: d
267
267
  }
268
268
  };
@@ -273,264 +273,264 @@ const Oe = (t, e, r) => {
273
273
  })
274
274
  );
275
275
  }
276
- const u = M(
276
+ const l = U(
277
277
  async ({
278
278
  id: d,
279
- key: a,
280
- storage: i = "local"
279
+ key: c,
280
+ storage: o = "local"
281
281
  }) => {
282
- const p = R(`feature:${d}:${a}`, "global"), g = (i === "session" ? j : D).get(p).boolean();
283
- return g === null ? null : { id: d, key: a, bucket: g, storage: i };
282
+ const p = B(`feature:${d}:${c}`, "global"), g = (o === "session" ? j : D).get(p).boolean();
283
+ return g === null ? null : { id: d, key: c, bucket: g, storage: o };
284
284
  }
285
- ), s = M((d) => {
285
+ ), r = U((d) => {
286
286
  if (!d)
287
287
  return null;
288
- const a = R(`feature:${d.id}:${d.key}`, "global");
289
- (d.storage === "session" ? j : D).set(a, d.bucket);
290
- }), o = /* @__PURE__ */ new Map(), l = Q({
291
- source: { allFeaturesStore: e, resolvedFeaturesStore: r },
292
- effect: async ({ allFeaturesStore: d, resolvedFeaturesStore: a }, { id: i, decide: p, key: f }) => {
293
- const g = a.find(
294
- (A) => A.id === i && A.key === f
288
+ const c = B(`feature:${d.id}:${d.key}`, "global");
289
+ (d.storage === "session" ? j : D).set(c, d.bucket);
290
+ }), i = /* @__PURE__ */ new Map(), u = ee({
291
+ source: { allFeaturesStore: e, resolvedFeaturesStore: s },
292
+ effect: async ({ allFeaturesStore: d, resolvedFeaturesStore: c }, { id: o, decide: p, key: f }) => {
293
+ const g = c.find(
294
+ ($) => $.id === o && $.key === f
295
295
  );
296
296
  if (g)
297
297
  return g;
298
- const y = d[i];
298
+ const y = d[o];
299
299
  if (!y)
300
- throw new Error(`Feature with id '${i}' not found`);
301
- const F = o.get(`${i}:${f}`);
302
- if (F !== void 0) {
303
- const A = await F;
304
- return { id: y.id, bucket: A, key: f, storage: y.feature.storage };
300
+ throw new Error(`Feature with id '${o}' not found`);
301
+ const I = i.get(`${o}:${f}`);
302
+ if (I !== void 0) {
303
+ const $ = await I;
304
+ return { id: y.id, bucket: $, key: f, storage: y.feature.storage };
305
305
  }
306
- const B = p();
307
- o.set(`${i}:${f}`, B);
308
- const E = await B;
309
- return { id: y.id, bucket: E, key: f, storage: y.feature.storage };
306
+ const A = p();
307
+ i.set(`${o}:${f}`, A);
308
+ const P = await A;
309
+ return { id: y.id, bucket: P, key: f, storage: y.feature.storage };
310
310
  }
311
311
  });
312
312
  x({
313
313
  clock: n.register,
314
314
  fn: (d) => {
315
- const { id: a, feature: i } = d;
316
- return { id: a, key: i.feature.key, storage: i.feature.storage };
315
+ const { id: c, feature: o } = d;
316
+ return { id: c, key: o.feature.key, storage: o.feature.storage };
317
317
  },
318
- target: u
318
+ target: l
319
319
  }), x({
320
320
  source: e,
321
- clock: l.doneData,
322
- fn: (d, a) => {
321
+ clock: u.doneData,
322
+ fn: (d, c) => {
323
323
  var y;
324
- const { id: i, bucket: p, storage: f } = a, g = (y = d[i]) == null ? void 0 : y.feature.key;
325
- return g ? { key: g, id: i, bucket: p, storage: f } : null;
324
+ const { id: o, bucket: p, storage: f } = c, g = (y = d[o]) == null ? void 0 : y.feature.key;
325
+ return g ? { key: g, id: o, bucket: p, storage: f } : null;
326
326
  },
327
- target: s
327
+ target: r
328
328
  });
329
- const h = O({ allFeaturesStore: e, resolvedFeaturesStore: r }).map(
329
+ const h = O({ allFeaturesStore: e, resolvedFeaturesStore: s }).map(
330
330
  ({
331
331
  allFeaturesStore: d,
332
- resolvedFeaturesStore: a
333
- }) => Object.values(d).map((i) => {
334
- const p = a.find(
335
- (f) => f.id === i.id && f.key === i.feature.key
332
+ resolvedFeaturesStore: c
333
+ }) => Object.values(d).map((o) => {
334
+ const p = c.find(
335
+ (f) => f.id === o.id && f.key === o.feature.key
336
336
  );
337
337
  return p ? {
338
- id: i.id,
339
- name: i.feature.name,
340
- key: i.feature.key,
341
- getBucket: () => ({ id: i.id, bucket: p.bucket }),
338
+ id: o.id,
339
+ name: o.feature.name,
340
+ key: o.feature.key,
341
+ getBucket: () => ({ id: o.id, bucket: p.bucket }),
342
342
  isResolved: !0
343
343
  } : {
344
- id: i.id,
345
- name: i.feature.name,
346
- key: i.feature.key,
347
- getBucket: async () => await l(i.feature),
344
+ id: o.id,
345
+ name: o.feature.name,
346
+ key: o.feature.key,
347
+ getBucket: async () => await u(o.feature),
348
348
  isResolved: !1
349
349
  };
350
350
  })
351
351
  );
352
352
  x({
353
- clock: l.doneData,
354
- source: { resolvedFeatures: r },
355
- filter: ({ resolvedFeatures: d }, { id: a, key: i }) => !d.some(
356
- (f) => f.id === a && f.key === i
353
+ clock: u.doneData,
354
+ source: { resolvedFeatures: s },
355
+ filter: ({ resolvedFeatures: d }, { id: c, key: o }) => !d.some(
356
+ (f) => f.id === c && f.key === o
357
357
  ),
358
- fn: (d, a) => a,
358
+ fn: (d, c) => c,
359
359
  target: t.eventBus.prepend((d) => ({
360
360
  type: "feature_decide",
361
361
  feature: d
362
362
  }))
363
363
  }), x({
364
- clock: [u.doneData, l.doneData],
365
- source: r,
366
- fn: (d, a) => !a || d.some(
367
- (p) => p.id === a.id && p.key === a.key
368
- ) ? d : [...d, a],
369
- target: r
364
+ clock: [l.doneData, u.doneData],
365
+ source: s,
366
+ fn: (d, c) => !c || d.some(
367
+ (p) => p.id === c.id && p.key === c.key
368
+ ) ? d : [...d, c],
369
+ target: s
370
370
  });
371
371
  function S(d) {
372
- return e.map((a) => a[d], { skipVoid: !1 });
372
+ return e.map((c) => c[d], { skipVoid: !1 });
373
373
  }
374
374
  return {
375
- register: c,
375
+ register: a,
376
376
  getByName: S,
377
377
  listStore: h
378
378
  };
379
379
  });
380
- function De(t) {
381
- return w(Ce, t);
380
+ function Me(t) {
381
+ return w(Ue, t);
382
382
  }
383
- const Me = (t, e, r) => {
384
- r.register(t, e);
385
- }, P = b("history");
386
- function L(t, e) {
383
+ const Ve = (t, e, s) => {
384
+ s.register(t, e);
385
+ }, R = F("history");
386
+ function _(t, e) {
387
387
  return {
388
388
  // eslint-disable-next-line sonarjs/pseudo-random
389
- id: ne(`history-entry-${Date.now()}-${Math.random()}}`),
389
+ id: ae(`history-entry-${Date.now()}-${Math.random()}}`),
390
390
  node: e,
391
391
  at: Date.now(),
392
392
  experienceId: t
393
393
  };
394
394
  }
395
- const Ve = v(() => {
396
- const t = P.store({ entries: [] }), e = P.event(), r = P.event(), n = P.event(), c = P.event();
397
- t.on(e, (s, o) => ({
398
- entries: [...s.entries, L(o.experienceId, o.node)]
399
- })), t.on(r, (s, o) => ({
395
+ const Te = k(() => {
396
+ const t = R.store({ entries: [] }), e = R.event(), s = R.event(), n = R.event(), a = R.event();
397
+ t.on(e, (r, i) => ({
398
+ entries: [...r.entries, _(i.experienceId, i.node)]
399
+ })), t.on(s, (r, i) => ({
400
400
  entries: [
401
- ...s.entries.slice(0, -1),
402
- L(o.experienceId, o.node)
401
+ ...r.entries.slice(0, -1),
402
+ _(i.experienceId, i.node)
403
403
  ]
404
- })), t.on(c, (s, o) => o);
405
- function u(s, o) {
406
- const l = { lastStepIndex: -1, secondLastStepIndex: -1 };
407
- for (let h = s.length - 1; h >= 0; h--) {
408
- const S = s[h], d = S == null ? void 0 : S.node;
409
- if (!(!d || !te(d)) && !(o && (S == null ? void 0 : S.experienceId) !== o))
410
- if (l.lastStepIndex === -1)
411
- l.lastStepIndex = h;
404
+ })), t.on(a, (r, i) => i);
405
+ function l(r, i) {
406
+ const u = { lastStepIndex: -1, secondLastStepIndex: -1 };
407
+ for (let h = r.length - 1; h >= 0; h--) {
408
+ const S = r[h], d = S == null ? void 0 : S.node;
409
+ if (!(!d || !ne(d)) && !(i && (S == null ? void 0 : S.experienceId) !== i))
410
+ if (u.lastStepIndex === -1)
411
+ u.lastStepIndex = h;
412
412
  else {
413
- l.secondLastStepIndex = h;
413
+ u.secondLastStepIndex = h;
414
414
  break;
415
415
  }
416
416
  }
417
- return l;
417
+ return u;
418
418
  }
419
- return t.on(n, (s, o) => {
420
- const { secondLastStepIndex: l } = u(s.entries, o.experienceId), h = l !== -1 ? s.entries.slice(0, l + 1) : s.entries;
419
+ return t.on(n, (r, i) => {
420
+ const { secondLastStepIndex: u } = l(r.entries, i.experienceId), h = u !== -1 ? r.entries.slice(0, u + 1) : r.entries;
421
421
  return {
422
- ...s,
422
+ ...r,
423
423
  entries: h
424
424
  };
425
425
  }), {
426
426
  push: e,
427
- replace: r,
427
+ replace: s,
428
428
  back: n,
429
- restore: c,
430
- entriesStore: t.map((s) => s.entries)
429
+ restore: a,
430
+ entriesStore: t.map((r) => r.entries)
431
431
  };
432
432
  });
433
- function Te() {
434
- return w(Ve);
433
+ function Ne() {
434
+ return w(Te);
435
435
  }
436
- const Ne = () => C(), ze = b("field"), Le = v(() => {
437
- const t = ze.store({}), e = I(t, {
438
- register(s, o) {
436
+ const _e = () => C(), ze = F("field"), Le = k(() => {
437
+ const t = ze.store({}), e = b(t, {
438
+ register(r, i) {
439
439
  return {
440
- ...s,
441
- [o.field.id]: o.field
440
+ ...r,
441
+ [i.field.id]: i.field
442
442
  };
443
443
  }
444
444
  });
445
- function r(s) {
446
- e.register({ field: s });
445
+ function s(r) {
446
+ e.register({ field: r });
447
447
  }
448
- const n = t.map((s) => Object.values(s));
449
- function c(s) {
450
- return t.map((o) => o[s] || null);
448
+ const n = t.map((r) => Object.values(r));
449
+ function a(r) {
450
+ return t.map((i) => i[r] || null);
451
451
  }
452
- function u(s) {
453
- return t.map((o) => Object.values(o).find((l) => l.name === s) || null);
452
+ function l(r) {
453
+ return t.map((i) => Object.values(i).find((u) => u.name === r) || null);
454
454
  }
455
455
  return {
456
- register: r,
457
- getById: c,
456
+ register: s,
457
+ getById: a,
458
458
  listStore: n,
459
- getByName: u
459
+ getByName: l
460
460
  };
461
461
  });
462
- function Ue() {
462
+ function He() {
463
463
  return w(Le);
464
464
  }
465
- const _e = (t, e) => {
465
+ const Ke = (t, e) => {
466
466
  e.register(t);
467
- }, He = b("action"), Ke = v(() => {
468
- const t = He.store({}), e = I(t, {
469
- register(u, s) {
467
+ }, qe = F("action"), Ge = k(() => {
468
+ const t = qe.store({}), e = b(t, {
469
+ register(l, r) {
470
470
  return {
471
- ...u,
472
- [s.name]: {
473
- name: s.name,
474
- action: s.action
471
+ ...l,
472
+ [r.name]: {
473
+ name: r.name,
474
+ action: r.action
475
475
  }
476
476
  };
477
477
  }
478
478
  });
479
- function r(u, s) {
480
- e.register({ name: u, action: s });
479
+ function s(l, r) {
480
+ e.register({ name: l, action: r });
481
481
  }
482
- const n = t.map((u) => Object.values(u));
483
- function c(u) {
484
- return t.map((s) => s[u], { skipVoid: !1 });
482
+ const n = t.map((l) => Object.values(l));
483
+ function a(l) {
484
+ return t.map((r) => r[l], { skipVoid: !1 });
485
485
  }
486
486
  return {
487
- register: r,
488
- getByName: c,
487
+ register: s,
488
+ getByName: a,
489
489
  listStore: n
490
490
  };
491
491
  });
492
- function qe() {
493
- return w(Ke);
492
+ function We() {
493
+ return w(Ge);
494
494
  }
495
- const Ge = (t, e, r) => {
496
- r.register(t, e);
495
+ const Ye = (t, e, s) => {
496
+ s.register(t, e);
497
497
  };
498
- function U(t) {
498
+ function z(t) {
499
499
  return typeof t > "u" || t === null || t === "" || Array.isArray(t) && !t.length;
500
500
  }
501
- const We = b("response"), Ye = v(({ client: t }) => {
502
- const e = We.store({}), r = C(), n = C(), c = I(e, {
503
- register(a, i) {
501
+ const Je = F("response"), Qe = k(({ client: t }) => {
502
+ const e = Je.store({}), s = C(), n = C(), a = b(e, {
503
+ register(c, o) {
504
504
  return {
505
- ...a,
506
- [i.fieldId]: i.response
505
+ ...c,
506
+ [o.fieldId]: o.response
507
507
  };
508
508
  },
509
- registerBatch(a, i) {
509
+ registerBatch(c, o) {
510
510
  return {
511
- ...a,
512
- ...i
511
+ ...c,
512
+ ...o
513
513
  };
514
514
  },
515
- clear(a, i) {
516
- const { [i]: p, ...f } = a;
515
+ clear(c, o) {
516
+ const { [o]: p, ...f } = c;
517
517
  return f;
518
518
  },
519
519
  clearAll() {
520
520
  return {};
521
521
  }
522
522
  });
523
- function u(a, i) {
524
- c.register({ fieldId: a, response: i });
523
+ function l(c, o) {
524
+ a.register({ fieldId: c, response: o });
525
525
  }
526
- async function s(a) {
527
- const i = [];
526
+ async function r(c) {
527
+ const o = [];
528
528
  return await Promise.allSettled(
529
- Object.entries(a).map(async ([p, f]) => {
529
+ Object.entries(c).map(async ([p, f]) => {
530
530
  let g = f;
531
531
  const y = t.fields.getById(p).getState();
532
532
  if (!y) {
533
- i.push({
533
+ o.push({
534
534
  fieldId: p,
535
535
  userMessage: `Field '${p}' not found`,
536
536
  systemMessage: `No field with ID '${p}' exists. Available field IDs are: ${Object.keys(t.fields.listStore.getState()).join(",")}.`,
@@ -538,21 +538,21 @@ const We = b("response"), Ye = v(({ client: t }) => {
538
538
  });
539
539
  return;
540
540
  }
541
- if (y.multiple && (typeof g == "string" || typeof g == "number" || typeof g == "boolean") && (g = [g]), y.validation && !oe(y.validation) && !U(g)) {
542
- const F = await $(t, y.validation, {
541
+ if (y.multiple && (typeof g == "string" || typeof g == "number" || typeof g == "boolean") && (g = [g]), y.validation && !ce(y.validation) && !z(g)) {
542
+ const I = await E(t, y.validation, {
543
543
  $input: g
544
544
  });
545
- if (typeof F == "string") {
546
- i.push({
545
+ if (typeof I == "string") {
546
+ o.push({
547
547
  fieldId: p,
548
- userMessage: F,
549
- systemMessage: `Field validation resulted in an error: ${F}.`,
548
+ userMessage: I,
549
+ systemMessage: `Field validation resulted in an error: ${I}.`,
550
550
  value: g
551
551
  });
552
552
  return;
553
553
  }
554
- if (F === !1) {
555
- i.push({
554
+ if (I === !1) {
555
+ o.push({
556
556
  fieldId: p,
557
557
  userMessage: "This field is invalid",
558
558
  systemMessage: "Field validation resulted in an unspecified error.",
@@ -561,8 +561,8 @@ const We = b("response"), Ye = v(({ client: t }) => {
561
561
  return;
562
562
  }
563
563
  }
564
- if (y.required && U(g)) {
565
- i.push({
564
+ if (y.required && z(g)) {
565
+ o.push({
566
566
  fieldId: p,
567
567
  userMessage: "This field is required",
568
568
  systemMessage: "Field is required.",
@@ -571,7 +571,7 @@ const We = b("response"), Ye = v(({ client: t }) => {
571
571
  return;
572
572
  }
573
573
  if (!y.multiple && Array.isArray(g) && g.length > 1) {
574
- i.push({
574
+ o.push({
575
575
  fieldId: p,
576
576
  userMessage: "This field expects a single response",
577
577
  systemMessage: "Field expects a single response.",
@@ -580,59 +580,59 @@ const We = b("response"), Ye = v(({ client: t }) => {
580
580
  return;
581
581
  }
582
582
  if (y.options) {
583
- const F = y.options.map((E) => E.value), B = Array.isArray(g) ? g : [g];
584
- Array.isArray(g) && (B.every((E) => F.includes(E)) || i.push({
583
+ const I = y.options.map((P) => P.value), A = Array.isArray(g) ? g : [g];
584
+ Array.isArray(g) && (A.every((P) => I.includes(P)) || o.push({
585
585
  fieldId: p,
586
586
  userMessage: "This field expects a valid option",
587
- systemMessage: `Field expects a valid option. Valid options are: ${F.join(", ")}`,
587
+ systemMessage: `Field expects a valid option. Valid options are: ${I.join(", ")}`,
588
588
  value: g
589
589
  }));
590
590
  }
591
591
  })
592
- ), { responsesToCommit: a, validationErrors: i };
592
+ ), { responsesToCommit: c, validationErrors: o };
593
593
  }
594
- async function o(a) {
595
- const { responsesToCommit: i, validationErrors: p } = await s(a);
596
- return p.length ? { errors: p } : (c.registerBatch(i), { errors: [] });
594
+ async function i(c) {
595
+ const { responsesToCommit: o, validationErrors: p } = await r(c);
596
+ return p.length ? { errors: p } : (a.registerBatch(o), { errors: [] });
597
597
  }
598
- const l = e.map((a) => a), h = e.map((a) => Object.keys(a).map((p) => ({
598
+ const u = e.map((c) => c), h = e.map((c) => Object.keys(c).map((p) => ({
599
599
  fieldId: p,
600
- value: a[p]
600
+ value: c[p]
601
601
  })));
602
- function S(a) {
603
- const i = t.fields.getById(a), p = e.map((f) => f[a] || null);
604
- return O({ f: i, r: p }, ({ f, r: g }) => g || (f != null && f.defaultValue ? f.defaultValue : null));
602
+ function S(c) {
603
+ const o = t.fields.getById(c), p = e.map((f) => f[c] || null);
604
+ return O({ f: o, r: p }, ({ f, r: g }) => g || (f != null && f.defaultValue ? f.defaultValue : null));
605
605
  }
606
- function d(a) {
607
- const i = t.fields.getByName(a);
608
- return O({ f: i, s: e }, ({ f: p, s: f }) => {
606
+ function d(c) {
607
+ const o = t.fields.getByName(c);
608
+ return O({ f: o, s: e }, ({ f: p, s: f }) => {
609
609
  const g = p && f[p.id] || null;
610
610
  return g || (p != null && p.defaultValue ? p.defaultValue : null);
611
611
  });
612
612
  }
613
613
  return x({
614
- clock: r,
615
- target: c.clearAll
614
+ clock: s,
615
+ target: a.clearAll
616
616
  }), x({
617
617
  clock: n,
618
- target: c.clear
618
+ target: a.clear
619
619
  }), {
620
- register: u,
621
- clearAll: r,
620
+ register: l,
621
+ clearAll: s,
622
622
  clear: n,
623
- commit: o,
624
- getResponsesToCommit: s,
623
+ commit: i,
624
+ getResponsesToCommit: r,
625
625
  listStore: h,
626
- getAllStore: l,
626
+ getAllStore: u,
627
627
  getByFieldId: S,
628
628
  getByFieldName: d
629
629
  };
630
630
  });
631
- function Je(t) {
632
- return w(Ye, t);
631
+ function Xe(t) {
632
+ return w(Qe, t);
633
633
  }
634
- const Qe = () => "0.0.1-dev.1764633009920";
635
- function Xe() {
634
+ const Ze = () => "0.0.1-dev.1764634757151";
635
+ function et() {
636
636
  if (H()) {
637
637
  const t = [
638
638
  document.currentScript,
@@ -647,103 +647,122 @@ function Xe() {
647
647
  }
648
648
  return "https://api.picked.app";
649
649
  }
650
- function Ze() {
651
- if (!ie())
650
+ function tt() {
651
+ if (!ue())
652
652
  return {};
653
- const t = new URLSearchParams(window.location.search), e = {}, r = /* @__PURE__ */ new Set();
654
- for (const [c] of t.entries())
655
- c.startsWith("picked-") && r.add(c);
656
- for (const c of r) {
657
- const u = c.replace("picked-", "");
658
- e[u] = t.getAll(c);
659
- }
660
- const n = R("s");
661
- if (r.size > 0)
653
+ const t = new URLSearchParams(window.location.search), e = {}, s = /* @__PURE__ */ new Set();
654
+ for (const [a] of t.entries())
655
+ a.startsWith("picked-") && s.add(a);
656
+ for (const a of s) {
657
+ const l = a.replace("picked-", "");
658
+ e[l] = t.getAll(a);
659
+ }
660
+ const n = B("s");
661
+ if (s.size > 0)
662
662
  j.set(n, e);
663
663
  else {
664
- const c = j.get(n);
665
- if (c)
666
- return c.json() || {};
664
+ const a = j.get(n);
665
+ if (a)
666
+ return a.json() || {};
667
667
  }
668
668
  return e;
669
669
  }
670
- function et() {
671
- if (ce())
670
+ function st() {
671
+ if (le())
672
672
  return crypto.randomUUID();
673
- const t = Date.now().toString(36), e = Math.random().toString(36).substring(2, 15), r = Math.random().toString(36).substring(2, 15), n = Math.random().toString(36).substring(2, 15);
674
- return `${t}-${e}-${r}-${n}`;
673
+ const t = Date.now().toString(36), e = Math.random().toString(36).substring(2, 15), s = Math.random().toString(36).substring(2, 15), n = Math.random().toString(36).substring(2, 15);
674
+ return `${t}-${e}-${s}-${n}`;
675
675
  }
676
- const tt = () => ({
677
- id: et()
678
- }), rt = R("session", "global"), st = () => {
679
- if (!ae()) return null;
680
- const t = D.get(rt);
676
+ const W = B("session", "global"), Y = () => {
677
+ const t = K() ? D.get(W) : null;
678
+ return function(s) {
679
+ this.isUser = s, t && t.set(this);
680
+ };
681
+ }, rt = () => ({
682
+ id: st(),
683
+ isUser: void 0,
684
+ setIsUser: Y()
685
+ }), nt = () => {
686
+ if (!K()) return null;
687
+ const t = D.get(W);
681
688
  let e = t.isSet() ? t.json() : null;
682
- return e || (e = tt(), t.set(e)), e;
683
- }, nt = () => st();
684
- class G {
689
+ if (!e) {
690
+ const s = rt();
691
+ return t.set(s), s;
692
+ }
693
+ return {
694
+ ...e,
695
+ setIsUser: Y()
696
+ };
697
+ }, it = () => nt();
698
+ class J {
685
699
  constructor(e) {
686
700
  m(this, "options");
687
701
  m(this, "isReady", !1);
688
702
  m(this, "project");
689
703
  m(this, "plugins", {});
690
- m(this, "eventBus", Ne());
704
+ m(this, "eventBus", _e());
691
705
  m(this, "organizationId");
692
706
  m(this, "projectId");
693
707
  m(this, "apiUrl");
694
708
  m(this, "session");
695
- m(this, "searchParams", Ze());
696
- m(this, "history", Te());
697
- m(this, "components", we({ client: this }));
698
- m(this, "experienceInstances", re({ client: this }));
699
- m(this, "experiences", ge({ client: this }));
700
- m(this, "frameworks", Ie({ client: this }));
701
- m(this, "predicates", je({ client: this }));
702
- m(this, "features", De({ client: this }));
703
- m(this, "responses", Je({ client: this }));
704
- m(this, "fields", Ue());
705
- m(this, "actions", qe());
706
- k("info", "Picked client initializing."), this.organizationId = e.organizationId, this.projectId = e.projectId, this.options = Object.freeze(e), this.apiUrl = e.apiUrl || Xe(), this.session = nt(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.eventBus({ type: "initialized", version: Qe() }), k("info", "Picked client initialized.");
709
+ m(this, "precondition");
710
+ m(this, "condition");
711
+ m(this, "searchParams", tt());
712
+ m(this, "history", Ne());
713
+ m(this, "components", Fe({ client: this }));
714
+ m(this, "experienceInstances", ie({ client: this }));
715
+ m(this, "experiences", me({ client: this }));
716
+ m(this, "frameworks", Ee({ client: this }));
717
+ m(this, "predicates", Oe({ client: this }));
718
+ m(this, "features", Me({ client: this }));
719
+ m(this, "responses", Xe({ client: this }));
720
+ m(this, "fields", He());
721
+ m(this, "actions", We());
722
+ v("info", "Picked client initializing."), this.organizationId = e.organizationId, this.projectId = e.projectId, this.options = Object.freeze(e), this.apiUrl = e.apiUrl || et(), this.session = it(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.precondition = e.precondition, this.condition = e.condition, this.eventBus({ type: "load", version: Ze() }), v("info", "Picked client initialized.");
707
723
  }
708
724
  start() {
709
- Re(this), (async () => {
710
- H() && (document.body && V(this), await se(), V(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session && this.eventBus({ type: "session", ...this.session }));
725
+ Ae(this), (async () => {
726
+ if (!H())
727
+ return;
728
+ let s = !0, n;
729
+ this.precondition !== void 0 && await E(this, this.precondition) === !1 && (n = !1, s = !1), this.condition !== void 0 && n !== !1 && await E(this, this.condition) === !1 && (s = !1), this.session && this.session.setIsUser(s), this.eventBus({ type: "initialize", is_user: s }), this.eventBus({ type: "user_decide", value: s }), document.body && s && M(this), await oe(), s && M(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session && this.eventBus({ type: "session", ...this.session });
711
730
  })();
712
731
  }
713
732
  registerFramework(e) {
714
- xe(e, this.frameworks);
733
+ Pe(e, this.frameworks);
715
734
  }
716
- registerComponent(e, r) {
717
- T(e, r, this.components);
735
+ registerComponent(e, s) {
736
+ V(e, s, this.components);
718
737
  }
719
738
  registerPlugin(e) {
720
- he(this, e, this.plugins);
739
+ Se(this, e, this.plugins);
721
740
  }
722
- registerFeature(e, r) {
723
- Me(e, r, this.features);
741
+ registerFeature(e, s) {
742
+ Ve(e, s, this.features);
724
743
  }
725
- registerPredicate(e, r) {
726
- Oe(e, r, this.predicates);
744
+ registerPredicate(e, s) {
745
+ Ce(e, s, this.predicates);
727
746
  }
728
747
  registerField(e) {
729
- _e(e, this.fields);
748
+ Ke(e, this.fields);
730
749
  }
731
- registerAction(e, r) {
732
- Ge(e, r, this.actions);
750
+ registerAction(e, s) {
751
+ Ye(e, s, this.actions);
733
752
  }
734
753
  registerExperience(e) {
735
- e.component && T(`experience:${e.id}`, e.component, this.components), fe(e, this.experiences);
754
+ e.component && V(`experience:${e.id}`, e.component, this.components), he(e, this.experiences);
736
755
  }
737
756
  getStateSnapshot() {
738
- return Be(this);
757
+ return $e(this);
739
758
  }
740
759
  async launchExperienceById(e) {
741
- const r = this.experiences.getById(e).getState();
742
- if (!r) {
743
- k("warn", `Experience with id '${e}' not found.`);
760
+ const s = this.experiences.getById(e).getState();
761
+ if (!s) {
762
+ v("warn", `Experience with id '${e}' not found.`);
744
763
  return;
745
764
  }
746
- q(this, r);
765
+ G(this, s);
747
766
  }
748
767
  // private async fetchProject() {
749
768
  // if (this.project) {
@@ -756,16 +775,16 @@ class G {
756
775
  // }
757
776
  setupPlugins() {
758
777
  var e;
759
- (e = this.options.plugins) == null || e.forEach((r) => {
760
- if (Array.isArray(r)) {
761
- r.forEach((c) => {
762
- this.registerPlugin(c);
778
+ (e = this.options.plugins) == null || e.forEach((s) => {
779
+ if (Array.isArray(s)) {
780
+ s.forEach((a) => {
781
+ this.registerPlugin(a);
763
782
  });
764
783
  return;
765
784
  }
766
- const n = typeof r == "function" ? r() : r;
785
+ const n = typeof s == "function" ? s() : s;
767
786
  if (Array.isArray(n)) {
768
- n.forEach((c) => this.registerPlugin(c));
787
+ n.forEach((a) => this.registerPlugin(a));
769
788
  return;
770
789
  }
771
790
  this.registerPlugin(n);
@@ -773,21 +792,21 @@ class G {
773
792
  }
774
793
  setupFeatures() {
775
794
  const e = this.options.features;
776
- e && (Object.entries(e).forEach(([r, n]) => {
777
- const c = typeof n == "function" ? n() : n;
778
- this.registerFeature(r, c);
779
- }), this.searchParams.feature && this.searchParams.feature.forEach((r) => {
795
+ e && (Object.entries(e).forEach(([s, n]) => {
796
+ const a = typeof n == "function" ? n() : n;
797
+ this.registerFeature(s, a);
798
+ }), this.searchParams.feature && this.searchParams.feature.forEach((s) => {
780
799
  try {
781
- const [n, c] = r.split(":");
782
- if (!n || !c)
800
+ const [n, a] = s.split(":");
801
+ if (!n || !a)
783
802
  return;
784
- let u = c;
785
- u === "true" && (u = !0), u === "false" && (u = !1), this.registerFeature(n, {
786
- key: `${u}`,
803
+ let l = a;
804
+ l === "true" && (l = !0), l === "false" && (l = !1), this.registerFeature(n, {
805
+ key: `${l}`,
787
806
  // use the assigned bucket value as the key
788
807
  name: n,
789
808
  // eslint-disable-next-line sonarjs/function-return-type
790
- decide: () => u,
809
+ decide: () => l,
791
810
  storage: "session"
792
811
  });
793
812
  } catch {
@@ -796,73 +815,73 @@ class G {
796
815
  }
797
816
  setupPredicates() {
798
817
  const e = this.options.predicates;
799
- e && Object.entries(e).forEach(([r, n]) => {
818
+ e && Object.entries(e).forEach(([s, n]) => {
800
819
  if (typeof n != "function") {
801
- k("warn", `Predicate "${r}" is not a function.`);
820
+ v("warn", `Predicate "${s}" is not a function.`);
802
821
  return;
803
822
  }
804
- this.registerPredicate(r, n);
823
+ this.registerPredicate(s, n);
805
824
  });
806
825
  }
807
826
  setupActions() {
808
827
  const e = this.options.actions;
809
- e && Object.entries(e).forEach(([r, n]) => {
828
+ e && Object.entries(e).forEach(([s, n]) => {
810
829
  if (typeof n != "function") {
811
- k("warn", `Action "${r}" is not a function.`);
830
+ v("warn", `Action "${s}" is not a function.`);
812
831
  return;
813
832
  }
814
- this.registerAction(r, n);
833
+ this.registerAction(s, n);
815
834
  });
816
835
  }
817
836
  getPluginConfig(e) {
818
837
  return this.plugins[e] ?? {};
819
838
  }
820
839
  }
821
- m(G, "logger", k);
822
- function W(t) {
840
+ m(J, "logger", v);
841
+ function Q(t) {
823
842
  var e;
824
- return ((e = t.options) == null ? void 0 : e.some((r) => "condition" in r)) ?? !1;
843
+ return ((e = t.options) == null ? void 0 : e.some((s) => "condition" in s)) ?? !1;
825
844
  }
826
845
  function ot(t) {
827
- return t.some((e) => e.condition || W(e));
846
+ return t.some((e) => e.condition || Q(e));
828
847
  }
829
- async function mt(t, e) {
848
+ async function ht(t, e) {
830
849
  return e.length === 0 || !ot(e) ? e : (await Promise.all(
831
850
  e.map(async (n) => {
832
- if (!(n.condition ? await $(t, n.condition) : !0))
851
+ if (!(n.condition ? await E(t, n.condition) : !0))
833
852
  return null;
834
- if (!n.options || !W(n))
853
+ if (!n.options || !Q(n))
835
854
  return n;
836
- const s = (await Promise.all(
837
- n.options.map(async (l) => l.condition ? await $(t, l.condition) ? l : null : l)
838
- )).filter((l) => l !== null);
839
- return s.length === n.options.length ? n : s.length === 0 ? null : { ...n, options: s };
855
+ const r = (await Promise.all(
856
+ n.options.map(async (u) => u.condition ? await E(t, u.condition) ? u : null : u)
857
+ )).filter((u) => u !== null);
858
+ return r.length === n.options.length ? n : r.length === 0 ? null : { ...n, options: r };
840
859
  })
841
860
  )).filter((n) => n !== null);
842
861
  }
843
- const ht = (t) => {
844
- const e = new G(t);
845
- return ue(e), e;
862
+ const yt = (t) => {
863
+ const e = new J(t);
864
+ return de(e), e;
846
865
  };
847
866
  export {
848
- G as Picked,
849
- ht as createClient,
850
- R as createStorageKey,
851
- $ as evaluateRuleLogic,
852
- mt as getStepFields,
867
+ J as Picked,
868
+ yt as createClient,
869
+ B as createStorageKey,
870
+ E as evaluateRuleLogic,
871
+ ht as getStepFields,
853
872
  kt as isPickedRoot,
854
873
  D as localStore,
855
874
  j as sessionStore,
856
- wt as subscribe,
875
+ It as subscribe,
857
876
  bt as supportsCookies,
858
- ce as supportsCryptoRandomUUID,
877
+ le as supportsCryptoRandomUUID,
859
878
  H as supportsDocument,
860
- It as supportsHistory,
861
- xt as supportsIntersectionObserver,
862
- ae as supportsLocalStorage,
863
- Et as supportsLocation,
864
- Pt as supportsSessionStorage,
865
- Rt as supportsShadowRoot,
866
- Bt as supportsWebComponents,
867
- ie as supportsWindow
879
+ xt as supportsHistory,
880
+ Et as supportsIntersectionObserver,
881
+ K as supportsLocalStorage,
882
+ Pt as supportsLocation,
883
+ Rt as supportsSessionStorage,
884
+ Bt as supportsShadowRoot,
885
+ At as supportsWebComponents,
886
+ ue as supportsWindow
868
887
  };