@picked/client 0.0.1-dev.1764619860168 → 0.0.1-dev.1764626732123

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 (44) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  3. package/dist/cjs/plugins/shopify/index.js +1 -0
  4. package/dist/esm/index.js +145 -774
  5. package/dist/esm/plugins/responses-browser-storage/index.js +23 -22
  6. package/dist/esm/plugins/shopify/index.js +123 -0
  7. package/dist/esm/plugins/single-page-app/index.js +3 -3
  8. package/dist/esm/plugins/web-components/index.js +1 -1
  9. package/dist/esm/plugins/window-object/index.js +1 -1
  10. package/dist/esm/server/index.js +7 -7
  11. package/dist/{experience-instance-CMrX6QA2.js → experience-instance-C2AnM2J_.js} +7 -7
  12. package/dist/{supports-BjhuLJ8z.js → supports-DBMT17KZ.js} +10 -10
  13. package/dist/types/entities/action/action.d.ts +4 -2
  14. package/dist/types/entities/action/action.d.ts.map +1 -1
  15. package/dist/types/entities/feature/feature.d.ts +5 -3
  16. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  17. package/dist/types/entities/field/field.d.ts +0 -7
  18. package/dist/types/entities/field/field.d.ts.map +1 -1
  19. package/dist/types/entities/predicate/predicate.d.ts +4 -5
  20. package/dist/types/entities/predicate/predicate.d.ts.map +1 -1
  21. package/dist/types/entities/response/response.d.ts +4 -1
  22. package/dist/types/entities/response/response.d.ts.map +1 -1
  23. package/dist/types/index.d.ts +1 -0
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/picked.d.ts +11 -8
  26. package/dist/types/picked.d.ts.map +1 -1
  27. package/dist/types/plugins/create-experience/create-experience.d.ts +0 -1
  28. package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
  29. package/dist/types/plugins/responses-browser-storage/plugin.d.ts.map +1 -1
  30. package/dist/types/plugins/shopify/global-obj.d.ts +49 -0
  31. package/dist/types/plugins/shopify/global-obj.d.ts.map +1 -0
  32. package/dist/types/plugins/shopify/index.d.ts +6 -0
  33. package/dist/types/plugins/shopify/index.d.ts.map +1 -0
  34. package/dist/types/plugins/shopify/picked-config.d.ts +103 -0
  35. package/dist/types/plugins/shopify/picked-config.d.ts.map +1 -0
  36. package/dist/types/plugins/shopify/plugin.d.ts +3 -0
  37. package/dist/types/plugins/shopify/plugin.d.ts.map +1 -0
  38. package/dist/types/plugins/shopify/predicates.d.ts +42 -0
  39. package/dist/types/plugins/shopify/predicates.d.ts.map +1 -0
  40. package/dist/types/utils/events.d.ts +0 -3
  41. package/dist/types/utils/events.d.ts.map +1 -1
  42. package/dist/user-session-BTaOgTo_.cjs +1 -0
  43. package/dist/user-session-YEUZkOjt.js +718 -0
  44. package/package.json +7 -1
package/dist/esm/index.js CHANGED
@@ -1,749 +1,120 @@
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;
201
- }
202
- };
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(),
208
- location: e ? window.location : void 0,
209
- document: e ? window.document : void 0,
210
- sessionStorage: e ? window.sessionStorage : void 0,
211
- localStorage: e ? window.localStorage : void 0
212
- };
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);
633
- }
634
- const Qe = () => "0.0.1-dev.1764619860168";
635
- function Xe() {
636
- if (H()) {
637
- const t = [
1
+ var y = Object.defineProperty;
2
+ var x = (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) => x(i, typeof e != "symbol" ? e + "" : e, t);
4
+ import { c as I, a as P, b as k, d as w, e as E, f as v, g as S, h as F, i as C, j as b, p as A, s as R, k as u, l as j, m as B, n as z, o as U, q as $, r as K, t as L, u as d } from "../user-session-YEUZkOjt.js";
5
+ import { l as c } from "../logger-C9a75KZn.js";
6
+ import { c as O, d as W, e as l } from "../experience-instance-C2AnM2J_.js";
7
+ import { i as pe } from "../experience-instance-C2AnM2J_.js";
8
+ import { createEvent as _ } from "effector";
9
+ import { s as f, a as D, b as H } from "../supports-DBMT17KZ.js";
10
+ import { g as de, k as le, d as he, i as fe, e as me, c as ge, f as ye, h as xe, j as Ie } from "../supports-DBMT17KZ.js";
11
+ import { c as q, s as h } from "../storage-Cb_71y48.js";
12
+ import { l as ke, a as we } from "../storage-Cb_71y48.js";
13
+ const N = (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 });
18
+ }
19
+ }, T = () => _(), V = () => "0.0.1-dev.1764626732123";
20
+ function G() {
21
+ if (f()) {
22
+ const i = [
638
23
  document.currentScript,
639
24
  document.getElementById("picked_script"),
640
25
  document.getElementById("picked"),
641
26
  document.getElementById("cvly"),
642
27
  document.getElementById("cvly-x")
643
28
  ];
644
- for (const e of t)
29
+ for (const e of i)
645
30
  if (e != null && e.dataset.api)
646
31
  return e.dataset.api;
647
32
  }
648
33
  return "https://api.picked.app";
649
34
  }
650
- function Ze() {
651
- if (!ie())
35
+ function J() {
36
+ if (!D())
652
37
  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);
38
+ const i = new URLSearchParams(window.location.search), e = {}, t = /* @__PURE__ */ new Set();
39
+ for (const [r] of i.entries())
40
+ r.startsWith("picked-") && t.add(r);
41
+ for (const r of t) {
42
+ const o = r.replace("picked-", "");
43
+ e[o] = i.getAll(r);
44
+ }
45
+ const s = q("s");
46
+ if (t.size > 0)
47
+ h.set(s, e);
663
48
  else {
664
- const c = j.get(n);
665
- if (c)
666
- return c.json() || {};
49
+ const r = h.get(s);
50
+ if (r)
51
+ return r.json() || {};
667
52
  }
668
53
  return e;
669
54
  }
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 {
55
+ class m {
685
56
  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.");
57
+ n(this, "options");
58
+ n(this, "isReady", !1);
59
+ n(this, "project");
60
+ n(this, "plugins", {});
61
+ n(this, "eventBus", T());
62
+ n(this, "organizationId");
63
+ n(this, "projectId");
64
+ n(this, "apiUrl");
65
+ n(this, "session");
66
+ n(this, "searchParams", J());
67
+ n(this, "history", I());
68
+ n(this, "components", P({ client: this }));
69
+ n(this, "experienceInstances", O({ client: this }));
70
+ n(this, "experiences", k({ client: this }));
71
+ n(this, "frameworks", w({ client: this }));
72
+ n(this, "predicates", E({ client: this }));
73
+ n(this, "features", v({ client: this }));
74
+ n(this, "responses", S({ client: this }));
75
+ n(this, "fields", F());
76
+ n(this, "actions", C());
77
+ 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 = b(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.eventBus({ type: "initialized", version: V() }), c("info", "Picked client initialized.");
707
78
  }
708
79
  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 }));
80
+ A(this), (async () => {
81
+ f() && (document.body && d(this), await W(), d(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session && this.eventBus({ type: "session", ...this.session }));
711
82
  })();
712
83
  }
713
84
  registerFramework(e) {
714
- xe(e, this.frameworks);
85
+ R(e, this.frameworks);
715
86
  }
716
- registerComponent(e, r) {
717
- T(e, r, this.components);
87
+ registerComponent(e, t) {
88
+ u(e, t, this.components);
718
89
  }
719
90
  registerPlugin(e) {
720
- he(this, e, this.plugins);
91
+ N(this, e, this.plugins);
721
92
  }
722
- registerFeature(e, r) {
723
- Me(e, r, this.features);
93
+ registerFeature(e, t) {
94
+ j(e, t, this.features);
724
95
  }
725
- registerPredicate(e, r) {
726
- Oe(e, r, this.predicates);
96
+ registerPredicate(e, t) {
97
+ B(e, t, this.predicates);
727
98
  }
728
99
  registerField(e) {
729
- _e(e, this.fields);
100
+ z(e, this.fields);
730
101
  }
731
- registerAction(e, r) {
732
- Ge(e, r, this.actions);
102
+ registerAction(e, t) {
103
+ U(e, t, this.actions);
733
104
  }
734
105
  registerExperience(e) {
735
- e.component && T(`experience:${e.id}`, e.component, this.components), fe(e, this.experiences);
106
+ e.component && u(`experience:${e.id}`, e.component, this.components), $(e, this.experiences);
736
107
  }
737
108
  getStateSnapshot() {
738
- return Be(this);
109
+ return K(this);
739
110
  }
740
111
  async launchExperienceById(e) {
741
- const r = this.experiences.getById(e).getState();
742
- if (!r) {
743
- k("warn", `Experience with id '${e}' not found.`);
112
+ const t = this.experiences.getById(e).getState();
113
+ if (!t) {
114
+ c("warn", `Experience with id '${e}' not found.`);
744
115
  return;
745
116
  }
746
- q(this, r);
117
+ L(this, t);
747
118
  }
748
119
  // private async fetchProject() {
749
120
  // if (this.project) {
@@ -756,38 +127,38 @@ class G {
756
127
  // }
757
128
  setupPlugins() {
758
129
  var e;
759
- (e = this.options.plugins) == null || e.forEach((r) => {
760
- if (Array.isArray(r)) {
761
- r.forEach((c) => {
762
- this.registerPlugin(c);
130
+ (e = this.options.plugins) == null || e.forEach((t) => {
131
+ if (Array.isArray(t)) {
132
+ t.forEach((r) => {
133
+ this.registerPlugin(r);
763
134
  });
764
135
  return;
765
136
  }
766
- const n = typeof r == "function" ? r() : r;
767
- if (Array.isArray(n)) {
768
- n.forEach((c) => this.registerPlugin(c));
137
+ const s = typeof t == "function" ? t() : t;
138
+ if (Array.isArray(s)) {
139
+ s.forEach((r) => this.registerPlugin(r));
769
140
  return;
770
141
  }
771
- this.registerPlugin(n);
142
+ this.registerPlugin(s);
772
143
  });
773
144
  }
774
145
  setupFeatures() {
775
146
  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) => {
147
+ e && (Object.entries(e).forEach(([t, s]) => {
148
+ const r = typeof s == "function" ? s() : s;
149
+ this.registerFeature(t, r);
150
+ }), this.searchParams.feature && this.searchParams.feature.forEach((t) => {
780
151
  try {
781
- const [n, c] = r.split(":");
782
- if (!n || !c)
152
+ const [s, r] = t.split(":");
153
+ if (!s || !r)
783
154
  return;
784
- let u = c;
785
- u === "true" && (u = !0), u === "false" && (u = !1), this.registerFeature(n, {
786
- key: `${u}`,
155
+ let o = r;
156
+ o === "true" && (o = !0), o === "false" && (o = !1), this.registerFeature(s, {
157
+ key: `${o}`,
787
158
  // use the assigned bucket value as the key
788
- name: n,
159
+ name: s,
789
160
  // eslint-disable-next-line sonarjs/function-return-type
790
- decide: () => u,
161
+ decide: () => o,
791
162
  storage: "session"
792
163
  });
793
164
  } catch {
@@ -796,73 +167,73 @@ class G {
796
167
  }
797
168
  setupPredicates() {
798
169
  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.`);
170
+ e && Object.entries(e).forEach(([t, s]) => {
171
+ if (typeof s != "function") {
172
+ c("warn", `Predicate "${t}" is not a function.`);
802
173
  return;
803
174
  }
804
- this.registerPredicate(r, n);
175
+ this.registerPredicate(t, s);
805
176
  });
806
177
  }
807
178
  setupActions() {
808
179
  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.`);
180
+ e && Object.entries(e).forEach(([t, s]) => {
181
+ if (typeof s != "function") {
182
+ c("warn", `Action "${t}" is not a function.`);
812
183
  return;
813
184
  }
814
- this.registerAction(r, n);
185
+ this.registerAction(t, s);
815
186
  });
816
187
  }
817
188
  getPluginConfig(e) {
818
189
  return this.plugins[e] ?? {};
819
190
  }
820
191
  }
821
- m(G, "logger", k);
822
- function W(t) {
192
+ n(m, "logger", c);
193
+ function g(i) {
823
194
  var e;
824
- return ((e = t.options) == null ? void 0 : e.some((r) => "condition" in r)) ?? !1;
195
+ return ((e = i.options) == null ? void 0 : e.some((t) => "condition" in t)) ?? !1;
825
196
  }
826
- function ot(t) {
827
- return t.some((e) => e.condition || W(e));
197
+ function M(i) {
198
+ return i.some((e) => e.condition || g(e));
828
199
  }
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))
200
+ async function re(i, e) {
201
+ return e.length === 0 || !M(e) ? e : (await Promise.all(
202
+ e.map(async (s) => {
203
+ if (!(s.condition ? await l(i, s.condition) : !0))
833
204
  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 };
205
+ if (!s.options || !g(s))
206
+ return s;
207
+ const p = (await Promise.all(
208
+ s.options.map(async (a) => a.condition ? await l(i, a.condition) ? a : null : a)
209
+ )).filter((a) => a !== null);
210
+ return p.length === s.options.length ? s : p.length === 0 ? null : { ...s, options: p };
840
211
  })
841
- )).filter((n) => n !== null);
212
+ )).filter((s) => s !== null);
842
213
  }
843
- const ht = (t) => {
844
- const e = new G(t);
845
- return ue(e), e;
214
+ const oe = (i) => {
215
+ const e = new m(i);
216
+ return H(e), e;
846
217
  };
847
218
  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
219
+ m as Picked,
220
+ oe as createClient,
221
+ q as createStorageKey,
222
+ l as evaluateRuleLogic,
223
+ re as getStepFields,
224
+ pe as isPickedRoot,
225
+ ke as localStore,
226
+ h as sessionStore,
227
+ we as subscribe,
228
+ de as supportsCookies,
229
+ le as supportsCryptoRandomUUID,
230
+ f as supportsDocument,
231
+ he as supportsHistory,
232
+ fe as supportsIntersectionObserver,
233
+ me as supportsLocalStorage,
234
+ ge as supportsLocation,
235
+ ye as supportsSessionStorage,
236
+ xe as supportsShadowRoot,
237
+ Ie as supportsWebComponents,
238
+ D as supportsWindow
868
239
  };