@picked/client 0.0.1-dev.1764096269522 → 0.0.1-dev.1764287278696

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