@picked/client 0.0.1-dev.1786001783467 → 0.0.1-dev.1786065500148

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 (36) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cjs/index.js +2 -2
  3. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  4. package/dist/cjs/server/index.js +1 -1
  5. package/dist/docs/reference/sdk/plugins/dynamic-experiences.md +11 -13
  6. package/dist/docs/reference/tools/vite-plugin.md +36 -18
  7. package/dist/esm/index.js +354 -270
  8. package/dist/esm/plugins/dynamic-experiences/index.js +3 -3
  9. package/dist/esm/server/index.js +36 -39
  10. package/dist/plugin-EFn9ALEF.cjs +1 -0
  11. package/dist/plugin-YytfMG0n.js +153 -0
  12. package/dist/registry-BYtEBdL1.js +111 -0
  13. package/dist/registry-DtmKJre-.cjs +1 -0
  14. package/dist/types/data-source/provider.d.ts +21 -16
  15. package/dist/types/data-source/provider.d.ts.map +1 -1
  16. package/dist/types/data-source/registry.d.ts +11 -20
  17. package/dist/types/data-source/registry.d.ts.map +1 -1
  18. package/dist/types/data-source/virtual-data.d.ts +19 -0
  19. package/dist/types/data-source/virtual-data.d.ts.map +1 -0
  20. package/dist/types/picked.d.ts +50 -1
  21. package/dist/types/picked.d.ts.map +1 -1
  22. package/dist/types/plugins/dynamic-experiences/index.d.ts +1 -3
  23. package/dist/types/plugins/dynamic-experiences/index.d.ts.map +1 -1
  24. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +8 -7
  25. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  26. package/dist/types/plugins/dynamic-experiences/types.d.ts +0 -24
  27. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  28. package/dist/types/server/index.d.ts +1 -1
  29. package/dist/types/server/index.d.ts.map +1 -1
  30. package/dist/types/server/serialize.d.ts +7 -25
  31. package/dist/types/server/serialize.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/dist/api-BivzqML_.cjs +0 -1
  34. package/dist/api-i7XfDMTd.js +0 -38
  35. package/dist/plugin-Cbhl3kSg.js +0 -300
  36. package/dist/plugin-h2BTDtJ0.cjs +0 -1
package/dist/esm/index.js CHANGED
@@ -5,13 +5,13 @@ import { a as i, c as a, d as o, f as s, i as c, l, m as u, n as d, o as f, r as
5
5
  import { a as _, i as v, r as ee, s as y, t as b } from "../dom-BqcToNL0.js";
6
6
  import { l as x, n as S, r as C, u as w } from "../experience-instance-DGk11d8a.js";
7
7
  import { i as T, n as E, r as D, t as O } from "../storage-1MW3-_As.js";
8
- import { n as te, r as ne } from "../api-i7XfDMTd.js";
9
- import { t as re } from "../id-Bo4RBeOs.js";
10
- import { n as ie, r as ae, t as oe } from "../inert-script-report-B_bMPRzp.js";
8
+ import { a as te, i as ne, o as re, r as ie, s as ae, t as oe } from "../registry-BYtEBdL1.js";
9
+ import { t as se } from "../id-Bo4RBeOs.js";
10
+ import { n as ce, r as le, t as ue } from "../inert-script-report-B_bMPRzp.js";
11
11
  import { attach as k, combine as A, createApi as j, createDomain as M, createEffect as N, createEvent as P, createStore as F, sample as I } from "effector";
12
12
  import { createFactory as L, invoke as R } from "@withease/factories";
13
13
  //#region src/entities/experience/experience.ts
14
- var z = M("experience"), se = L(({ client: e, experience: r }) => {
14
+ var z = M("experience"), de = L(({ client: e, experience: r }) => {
15
15
  let i = z.store(r), a = j(i, { merge(e, t) {
16
16
  return {
17
17
  ...e,
@@ -98,17 +98,17 @@ var z = M("experience"), se = L(({ client: e, experience: r }) => {
98
98
  prepareExperienceContentFx: m
99
99
  }, u;
100
100
  });
101
- function ce(e) {
102
- return R(se, e);
101
+ function fe(e) {
102
+ return R(de, e);
103
103
  }
104
- var le = L(({ client: e }) => {
104
+ var pe = L(({ client: e }) => {
105
105
  let t = z.store({}), n = j(t, { register(e, t) {
106
106
  return {
107
107
  ...e,
108
108
  [t.id]: t
109
109
  };
110
110
  } }), r = P(), i = N((t) => {
111
- n.register(ce({
111
+ n.register(fe({
112
112
  client: e,
113
113
  experience: t
114
114
  }));
@@ -194,20 +194,20 @@ var le = L(({ client: e }) => {
194
194
  })
195
195
  };
196
196
  });
197
- function ue(e) {
198
- return R(le, e);
197
+ function me(e) {
198
+ return R(pe, e);
199
199
  }
200
- var de = async (e) => {
200
+ var he = async (e) => {
201
201
  await e.experiences.initialiseExperiencesFx();
202
202
  };
203
203
  //#endregion
204
204
  //#region src/entities/plugin/plugin.ts
205
- function fe(e) {
205
+ function ge(e) {
206
206
  return N(async () => {
207
207
  await e();
208
208
  });
209
209
  }
210
- var pe = (e, t, n) => {
210
+ var _e = (e, t, n) => {
211
211
  let r = t.name, i = t.setup(e);
212
212
  if (i) {
213
213
  let e = n[r] ?? {};
@@ -216,16 +216,16 @@ var pe = (e, t, n) => {
216
216
  ...i
217
217
  });
218
218
  }
219
- }, me = M("component"), he = L(({ client: e, component: t, name: n }) => ({
219
+ }, ve = M("component"), ye = L(({ client: e, component: t, name: n }) => ({
220
220
  name: n,
221
221
  component: t,
222
222
  frameworkStore: e.frameworks.getByName(t.frameworkName)
223
223
  }));
224
- function ge(e) {
225
- return R(he, e);
224
+ function be(e) {
225
+ return R(ye, e);
226
226
  }
227
- var _e = L(({ client: e }) => {
228
- let t = me.store({}), n = j(t, { register(e, t) {
227
+ var xe = L(({ client: e }) => {
228
+ let t = ve.store({}), n = j(t, { register(e, t) {
229
229
  return {
230
230
  ...e,
231
231
  [t.name]: t
@@ -238,7 +238,7 @@ var _e = L(({ client: e }) => {
238
238
  fn: (e, { name: t }) => `Component '${t}' already registered. Registering again will override the previous registration.`
239
239
  }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
240
240
  clock: i,
241
- fn: ({ name: t, component: n }) => ge({
241
+ fn: ({ name: t, component: n }) => be({
242
242
  client: e,
243
243
  name: t,
244
244
  component: n
@@ -255,16 +255,16 @@ var _e = L(({ client: e }) => {
255
255
  listStore: a
256
256
  };
257
257
  });
258
- function ve(e) {
259
- return R(_e, e);
258
+ function Se(e) {
259
+ return R(xe, e);
260
260
  }
261
- var B = (e, t, n) => {
261
+ var Ce = (e, t, n) => {
262
262
  n.register({
263
263
  name: e,
264
264
  component: t
265
265
  });
266
- }, ye = M("framework"), be = L((e) => {
267
- let t = ye.store({}), n = j(t, { register(e, t) {
266
+ }, we = M("framework"), Te = L((e) => {
267
+ let t = we.store({}), n = j(t, { register(e, t) {
268
268
  return {
269
269
  ...e,
270
270
  [t.name]: t.framework
@@ -289,15 +289,15 @@ var B = (e, t, n) => {
289
289
  listStore: a
290
290
  };
291
291
  });
292
- function xe(e) {
293
- return R(be, e);
292
+ function Ee(e) {
293
+ return R(Te, e);
294
294
  }
295
- var Se = (e, t) => {
295
+ var De = (e, t) => {
296
296
  t.register({
297
297
  name: e.name,
298
298
  framework: e
299
299
  });
300
- }, Ce = L(({ client: e }) => {
300
+ }, Oe = L(({ client: e }) => {
301
301
  let t = "window" in globalThis, n = {
302
302
  location: t ? globalThis.location : void 0,
303
303
  document: t ? globalThis.document : void 0,
@@ -311,84 +311,84 @@ var Se = (e, t) => {
311
311
  ...n
312
312
  }));
313
313
  });
314
- function we(e) {
315
- return R(Ce, e);
314
+ function ke(e) {
315
+ return R(Oe, e);
316
316
  }
317
317
  //#endregion
318
318
  //#region src/logic-engine.ts
319
- function Te(e) {
319
+ function Ae(e) {
320
320
  return typeof e == "number" && !isNaN(e);
321
321
  }
322
- function V(e) {
322
+ function B(e) {
323
323
  return typeof e == "string";
324
324
  }
325
- function H(e) {
325
+ function V(e) {
326
326
  return Array.isArray(e);
327
327
  }
328
- function U(e) {
328
+ function je(e) {
329
329
  return e instanceof Promise;
330
330
  }
331
- function Ee(e) {
331
+ function Me(e) {
332
332
  return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
333
333
  }
334
- function W(e) {
335
- if (Te(e)) return e;
334
+ function H(e) {
335
+ if (Ae(e)) return e;
336
336
  let t = parseFloat(`${e}`);
337
337
  return isNaN(t) ? 0 : t;
338
338
  }
339
- function G(e) {
339
+ function U(e) {
340
340
  return `${e}`;
341
341
  }
342
- var De = {
342
+ var Ne = {
343
343
  "==": (e, t) => e == t,
344
344
  "===": (e, t) => e === t,
345
345
  "!=": (e, t) => e != t,
346
346
  "!==": (e, t) => e !== t,
347
- ">": (e, t) => W(e) > W(t),
348
- ">=": (e, t) => W(e) >= W(t),
347
+ ">": (e, t) => H(e) > H(t),
348
+ ">=": (e, t) => H(e) >= H(t),
349
349
  "<": (e, t, n) => {
350
- let r = W(e), i = W(t);
350
+ let r = H(e), i = H(t);
351
351
  if (n === void 0) return r < i;
352
- let a = W(n);
352
+ let a = H(n);
353
353
  return r < i && i < a;
354
354
  },
355
355
  "<=": (e, t, n) => {
356
- let r = W(e), i = W(t);
356
+ let r = H(e), i = H(t);
357
357
  if (n === void 0) return r <= i;
358
- let a = W(n);
358
+ let a = H(n);
359
359
  return r <= i && i <= a;
360
360
  },
361
- "!!": async (e) => await q(e),
362
- "!": async (e) => !await q(e),
363
- "%": (e, t) => W(e) % W(t),
361
+ "!!": async (e) => await G(e),
362
+ "!": async (e) => !await G(e),
363
+ "%": (e, t) => H(e) % H(t),
364
364
  log: (e) => (console.log(e), e),
365
- in: (e, t) => t ? V(t) ? t.indexOf(G(e)) !== -1 : H(t) ? t.includes(e) : !1 : !1,
366
- cat: (...e) => e.map(G).join(""),
365
+ in: (e, t) => t ? B(t) ? t.indexOf(U(e)) !== -1 : V(t) ? t.includes(e) : !1 : !1,
366
+ cat: (...e) => e.map(U).join(""),
367
367
  substr: (e, t, n) => {
368
- let r = G(e), i = W(t);
368
+ let r = U(e), i = H(t);
369
369
  if (n === void 0) return r.substr(i);
370
- let a = W(n);
370
+ let a = H(n);
371
371
  if (a < 0) {
372
372
  let e = r.substr(i);
373
373
  return e.substr(0, e.length + a);
374
374
  }
375
375
  return r.substr(i, a);
376
376
  },
377
- "+": (...e) => e.reduce((e, t) => W(e) + W(t), 0),
378
- "*": (...e) => e.reduce((e, t) => W(e) * W(t), 1),
377
+ "+": (...e) => e.reduce((e, t) => H(e) + H(t), 0),
378
+ "*": (...e) => e.reduce((e, t) => H(e) * H(t), 1),
379
379
  "-": (e, t) => {
380
- let n = W(e);
381
- return t === void 0 ? -n : n - W(t);
380
+ let n = H(e);
381
+ return t === void 0 ? -n : n - H(t);
382
382
  },
383
- "/": (e, t) => W(e) / W(t),
384
- min: (...e) => Math.min(...e.map(W)),
385
- max: (...e) => Math.max(...e.map(W)),
386
- merge: (...e) => e.reduce((e, t) => H(t) ? e.concat(t) : e.concat([t]), []),
383
+ "/": (e, t) => H(e) / H(t),
384
+ min: (...e) => Math.min(...e.map(H)),
385
+ max: (...e) => Math.max(...e.map(H)),
386
+ merge: (...e) => e.reduce((e, t) => V(t) ? e.concat(t) : e.concat([t]), []),
387
387
  var(e, t) {
388
388
  let n = arguments.length > 1 ? t : null;
389
389
  if (e === "" || e === "." || e == null) return this;
390
390
  if (typeof e == "number" && Array.isArray(this)) return e >= 0 && e < this.length ? this[e] : n;
391
- let r = G(e);
391
+ let r = U(e);
392
392
  if (r === "" || r === ".") return this;
393
393
  let i = r.split("."), a = this;
394
394
  for (let e of i) {
@@ -401,126 +401,126 @@ var De = {
401
401
  return a === void 0 ? n : a;
402
402
  },
403
403
  async missing(...e) {
404
- let t = H(e[0]) ? e[0] : e, n = [];
404
+ let t = V(e[0]) ? e[0] : e, n = [];
405
405
  for (let e of t) {
406
- let t = await K({ var: e }, this);
406
+ let t = await W({ var: e }, this);
407
407
  (t === null || t === "") && n.push(`${e}`);
408
408
  }
409
409
  return n;
410
410
  },
411
411
  async missing_some(e, t) {
412
- let n = await K({ missing: t }, this);
413
- if (!H(n) || !H(t)) return [];
414
- let r = n.filter(V);
415
- return t.filter(V).length - r.length >= W(e) ? [] : r;
412
+ let n = await W({ missing: t }, this);
413
+ if (!V(n) || !V(t)) return [];
414
+ let r = n.filter(B);
415
+ return t.filter(B).length - r.length >= H(e) ? [] : r;
416
416
  },
417
417
  invoke(...e) {
418
418
  let [t, ...n] = e;
419
419
  return typeof t == "function" ? Reflect.apply(t, null, n) : null;
420
420
  },
421
- startsWith: (e, t) => V(e) && V(t) && e.startsWith(t),
422
- endsWith: (e, t) => V(e) && V(t) && e.endsWith(t),
421
+ startsWith: (e, t) => B(e) && B(t) && e.startsWith(t),
422
+ endsWith: (e, t) => B(e) && B(t) && e.endsWith(t),
423
423
  regexp_matches(e, t) {
424
424
  let n = e, r = "";
425
- if (H(e)) {
425
+ if (V(e)) {
426
426
  let [t, i] = e;
427
427
  n = t, r = i;
428
428
  }
429
- return !V(n) || !V(r) ? !1 : new RegExp(n, r).test(G(t));
429
+ return !B(n) || !B(r) ? !1 : new RegExp(n, r).test(U(t));
430
430
  },
431
431
  throw(e) {
432
- throw Error(G(e));
432
+ throw Error(U(e));
433
433
  }
434
434
  };
435
- async function K(e, t) {
435
+ async function W(e, t) {
436
436
  if (!e) return e;
437
- if (U(e)) return K(await e, t);
438
- if (H(e)) return Promise.all(e.map((e) => K(e, t)));
439
- if (!Ee(e)) return e;
440
- let n = Oe(e), r = n ? e[n] ?? [] : [];
441
- switch (H(r) || (r = [r]), n) {
437
+ if (je(e)) return W(await e, t);
438
+ if (V(e)) return Promise.all(e.map((e) => W(e, t)));
439
+ if (!Me(e)) return e;
440
+ let n = Pe(e), r = n ? e[n] ?? [] : [];
441
+ switch (V(r) || (r = [r]), n) {
442
442
  case "if":
443
443
  case "?:":
444
- for (let e = 0; e < r.length - 1; e += 2) if (await q(await K(r[e], t))) return K(r[e + 1], t);
445
- return r.length % 2 == 1 ? K(r[r.length - 1], t) : null;
444
+ for (let e = 0; e < r.length - 1; e += 2) if (await G(await W(r[e], t))) return W(r[e + 1], t);
445
+ return r.length % 2 == 1 ? W(r[r.length - 1], t) : null;
446
446
  case "and": {
447
447
  let e = null;
448
- for (let n of r) if (e = await K(n, t), !await q(e)) return e;
448
+ for (let n of r) if (e = await W(n, t), !await G(e)) return e;
449
449
  return e;
450
450
  }
451
451
  case "or": {
452
452
  let e = null;
453
- for (let n of r) if (e = await K(n, t), await q(e)) return e;
453
+ for (let n of r) if (e = await W(n, t), await G(e)) return e;
454
454
  return e;
455
455
  }
456
456
  case "map": {
457
- let e = await K(r[0], t);
458
- return H(e) ? await Promise.all(e.map((e) => K(r[1], e))) : [];
457
+ let e = await W(r[0], t);
458
+ return V(e) ? await Promise.all(e.map((e) => W(r[1], e))) : [];
459
459
  }
460
460
  case "filter": {
461
- let e = await K(r[0], t);
462
- return H(e) ? (await Promise.all(e.map(async (e) => ({
461
+ let e = await W(r[0], t);
462
+ return V(e) ? (await Promise.all(e.map(async (e) => ({
463
463
  item: e,
464
- shouldInclude: await q(await K(r[1], e))
464
+ shouldInclude: await G(await W(r[1], e))
465
465
  })))).filter(({ shouldInclude: e }) => e).map(({ item: e }) => e) : [];
466
466
  }
467
467
  case "reduce": {
468
- let e = await K(r[0], t);
469
- if (!H(e)) return r.length > 2 ? await K(r[2], t) : null;
470
- let n = r[1], i = r.length > 2 ? await K(r[2], t) : null;
471
- for (let t of e) i = await K(n, {
468
+ let e = await W(r[0], t);
469
+ if (!V(e)) return r.length > 2 ? await W(r[2], t) : null;
470
+ let n = r[1], i = r.length > 2 ? await W(r[2], t) : null;
471
+ for (let t of e) i = await W(n, {
472
472
  current: t,
473
473
  accumulator: i
474
474
  });
475
475
  return i;
476
476
  }
477
477
  case "all": {
478
- let e = await K(r[0], t);
479
- if (!H(e) || e.length === 0) return !1;
480
- for (let t of e) if (!await q(await K(r[1], t))) return !1;
478
+ let e = await W(r[0], t);
479
+ if (!V(e) || e.length === 0) return !1;
480
+ for (let t of e) if (!await G(await W(r[1], t))) return !1;
481
481
  return !0;
482
482
  }
483
483
  case "some": {
484
- let e = await K(r[0], t);
485
- if (!H(e)) return !1;
486
- for (let t of e) if (await q(await K(r[1], t))) return !0;
484
+ let e = await W(r[0], t);
485
+ if (!V(e)) return !1;
486
+ for (let t of e) if (await G(await W(r[1], t))) return !0;
487
487
  return !1;
488
488
  }
489
489
  case "none": {
490
- let e = await K(r[0], t);
491
- if (!H(e)) return !0;
492
- for (let t of e) if (await q(await K(r[1], t))) return !1;
490
+ let e = await W(r[0], t);
491
+ if (!V(e)) return !0;
492
+ for (let t of e) if (await G(await W(r[1], t))) return !1;
493
493
  return !0;
494
494
  }
495
495
  case "catch": try {
496
- return await K(r[0], t);
496
+ return await W(r[0], t);
497
497
  } catch (e) {
498
- return Ee(e) ? await K(e, t) : r[1] ? await K(r[1], e) : e instanceof Error ? e.message : e;
498
+ return Me(e) ? await W(e, t) : r[1] ? await W(r[1], e) : e instanceof Error ? e.message : e;
499
499
  }
500
500
  }
501
- let i = await Promise.all(r.map((e) => K(e, t))), a = n ? De[n] : void 0;
501
+ let i = await Promise.all(r.map((e) => W(e, t))), a = n ? Ne[n] : void 0;
502
502
  if (!a) throw Error(`Unrecognized operation ${n}`);
503
503
  return a.apply(t, i);
504
504
  }
505
- async function q(e) {
506
- return U(e) ? q(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
505
+ async function G(e) {
506
+ return je(e) ? G(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
507
507
  }
508
- function Oe(e) {
508
+ function Pe(e) {
509
509
  return Object.keys(e)[0];
510
510
  }
511
511
  //#endregion
512
512
  //#region src/lifecycle/rules-logic.ts
513
- function ke(e, t, n) {
513
+ function Fe(e, t, n) {
514
514
  return new Proxy(Object.create(null), { get(r, i) {
515
515
  if (typeof i != "string") return;
516
516
  let a = e.find((e) => e.key === i);
517
- if (a !== void 0) return async () => !n.has(i) && await K(a.logic, {
517
+ if (a !== void 0) return async () => !n.has(i) && await W(a.logic, {
518
518
  ...t,
519
- conditions: ke(e, t, new Set(n).add(i))
519
+ conditions: Fe(e, t, new Set(n).add(i))
520
520
  }) === !0;
521
521
  } });
522
522
  }
523
- var Ae = L(({ client: e }) => k({
523
+ var Ie = L(({ client: e }) => k({
524
524
  source: {
525
525
  stateSnapshot: e.stateSnapshotStore,
526
526
  predicates: e.predicates.listStore,
@@ -557,52 +557,52 @@ var Ae = L(({ client: e }) => k({
557
557
  features: u,
558
558
  ...s
559
559
  };
560
- return await K(o, {
560
+ return await W(o, {
561
561
  ...d,
562
- conditions: ke(a, d, /* @__PURE__ */ new Set())
562
+ conditions: Fe(a, d, /* @__PURE__ */ new Set())
563
563
  });
564
564
  }
565
565
  }));
566
- function je(e) {
567
- return R(Ae, e);
566
+ function Le(e) {
567
+ return R(Ie, e);
568
568
  }
569
569
  //#endregion
570
570
  //#region src/ping.ts
571
- var Me = 6e3, Ne = O("last_ping", "global"), Pe = async (e) => {
571
+ var Re = 6e3, ze = O("last_ping", "global"), Be = async (e) => {
572
572
  try {
573
- let t = Date.now(), n = E.get(Ne), r = 0;
574
- if (n.isSet() && (r = n.json() ?? 0), r && t - r < Me) return !0;
573
+ let t = Date.now(), n = E.get(ze), r = 0;
574
+ if (n.isSet() && (r = n.json() ?? 0), r && t - r < Re) return !0;
575
575
  let i = {
576
576
  projectId: e.projectId,
577
577
  path: window.location.pathname
578
578
  }, a = {}, o = document.getElementById("picked_script")?.dataset.verceltoken;
579
579
  o && (a["x-vercel-protection-bypass"] = o);
580
- let s = (await te(e.apiUrl, "ping", i, a)).ok;
580
+ let s = (await re(e.apiUrl, "ping", i, a)).ok;
581
581
  return s && n.set(t), s;
582
582
  } catch {
583
583
  return !1;
584
584
  }
585
- }, J = M("lifecycle"), Fe = L(({ client: e }) => {
586
- let t = J.store(!1), r = F(void 0, {
585
+ }, K = M("lifecycle"), Ve = L(({ client: e }) => {
586
+ let t = K.store(!1), r = F(void 0, {
587
587
  skipVoid: !1,
588
- domain: J
588
+ domain: K
589
589
  }), i = F(void 0, {
590
590
  skipVoid: !1,
591
- domain: J
592
- }), a = J.store("idle"), o = J.store([]), s = F(void 0, {
591
+ domain: K
592
+ }), a = K.store("idle"), o = K.store([]), s = F(void 0, {
593
593
  skipVoid: !1,
594
- domain: J
594
+ domain: K
595
595
  }), l = F(void 0, {
596
596
  skipVoid: !1,
597
- domain: J
597
+ domain: K
598
598
  }), u = P(), d = P(), f = P(), p = P(), m = P(), h = P();
599
599
  o.on(p, (e, t) => [...e, t]), s.on(m, (e, t) => t), l.on(h, (e, t) => t), t.on(d, () => !0);
600
600
  let g = N(() => {
601
- Pe(e);
601
+ Be(e);
602
602
  }), _ = N(async () => {
603
603
  await ee();
604
604
  }), v = N(async () => {
605
- await de(e);
605
+ await he(e);
606
606
  }), y = k({ effect: v }), b = k({
607
607
  source: o,
608
608
  effect: async (e) => {
@@ -731,13 +731,13 @@ var Me = 6e3, Ne = O("last_ping", "global"), Pe = async (e) => {
731
731
  setCondition: h
732
732
  };
733
733
  });
734
- function Ie(e) {
735
- return R(Fe, e);
734
+ function He(e) {
735
+ return R(Ve, e);
736
736
  }
737
737
  //#endregion
738
738
  //#region src/entities/predicate/predicate.ts
739
- var Le = M("predicate"), Re = L(({ client: e }) => {
740
- let t = Le.store({}), n = j(t, { register(e, t) {
739
+ var Ue = M("predicate"), We = L(({ client: e }) => {
740
+ let t = Ue.store({}), n = j(t, { register(e, t) {
741
741
  return {
742
742
  ...e,
743
743
  [t.name]: {
@@ -795,23 +795,23 @@ var Le = M("predicate"), Re = L(({ client: e }) => {
795
795
  getEvokablePredicate: s
796
796
  };
797
797
  });
798
- function ze(e) {
799
- return R(Re, e);
798
+ function Ge(e) {
799
+ return R(We, e);
800
800
  }
801
- var Be = (e, t, n) => {
801
+ var Ke = (e, t, n) => {
802
802
  n.register({
803
803
  name: e,
804
804
  predicate: t
805
805
  });
806
- }, Ve = M("feature");
807
- function Y(e) {
806
+ }, qe = M("feature");
807
+ function q(e) {
808
808
  return e?.enabled === !1;
809
809
  }
810
- function He(e) {
810
+ function Je(e) {
811
811
  return e === "true" || e !== "false" && e;
812
812
  }
813
- var Ue = L(({ client: e }) => {
814
- let t = Ve.store({}), n = Ve.store([]), i = j(t, { register(e, t) {
813
+ var Ye = L(({ client: e }) => {
814
+ let t = qe.store({}), n = qe.store([]), i = j(t, { register(e, t) {
815
815
  return {
816
816
  ...e,
817
817
  [t.id]: t.feature
@@ -842,7 +842,7 @@ var Ue = L(({ client: e }) => {
842
842
  return a ? {
843
843
  id: e,
844
844
  key: t,
845
- bucket: He(a),
845
+ bucket: Je(a),
846
846
  storage: n
847
847
  } : null;
848
848
  }), s = N((e) => {
@@ -859,7 +859,7 @@ var Ue = L(({ client: e }) => {
859
859
  if (a) return a;
860
860
  let o = e[n];
861
861
  if (!o) throw Error(`Feature with id '${n}' not found`);
862
- if (Y(o.feature)) return {
862
+ if (q(o.feature)) return {
863
863
  id: o.id,
864
864
  bucket: !1,
865
865
  key: i,
@@ -901,7 +901,7 @@ var Ue = L(({ client: e }) => {
901
901
  }), I({
902
902
  source: t,
903
903
  clock: l.doneData,
904
- filter: (e, t) => !Y(e[t.id]?.feature),
904
+ filter: (e, t) => !q(e[t.id]?.feature),
905
905
  fn: (e, t) => {
906
906
  let { id: n, bucket: r, storage: i } = t, a = e[n]?.feature.key;
907
907
  return a ? {
@@ -945,7 +945,7 @@ var Ue = L(({ client: e }) => {
945
945
  resolvedFeatures: n,
946
946
  allFeatures: t
947
947
  },
948
- filter: ({ resolvedFeatures: e, allFeatures: t }, { id: n, key: r }) => !Y(t[n]?.feature) && !e.some((e) => e.id === n && e.key === r),
948
+ filter: ({ resolvedFeatures: e, allFeatures: t }, { id: n, key: r }) => !q(t[n]?.feature) && !e.some((e) => e.id === n && e.key === r),
949
949
  fn: (e, t) => t,
950
950
  target: e.eventBus.prepend((e) => ({
951
951
  type: "feature_decide",
@@ -957,7 +957,7 @@ var Ue = L(({ client: e }) => {
957
957
  resolvedFeatures: n,
958
958
  allFeatures: t
959
959
  },
960
- fn: ({ resolvedFeatures: e, allFeatures: t }, n) => !n || Y(t[n.id]?.feature) || e.some((e) => e.id === n.id && e.key === n.key) ? e : [...e, n],
960
+ fn: ({ resolvedFeatures: e, allFeatures: t }, n) => !n || q(t[n.id]?.feature) || e.some((e) => e.id === n.id && e.key === n.key) ? e : [...e, n],
961
961
  target: n
962
962
  });
963
963
  function d(e) {
@@ -991,26 +991,26 @@ var Ue = L(({ client: e }) => {
991
991
  getEvokableFeature: p
992
992
  };
993
993
  });
994
- function We(e) {
995
- return R(Ue, e);
994
+ function Xe(e) {
995
+ return R(Ye, e);
996
996
  }
997
- var Ge = (e, t, n) => {
997
+ var Ze = (e, t, n) => {
998
998
  n.register({
999
999
  id: e,
1000
1000
  feature: t
1001
1001
  });
1002
- }, X = M("history");
1003
- function Ke(e, t) {
1002
+ }, J = M("history");
1003
+ function Qe(e, t) {
1004
1004
  return {
1005
- id: re(`history-entry-${Date.now()}-${Math.random()}}`),
1005
+ id: se(`history-entry-${Date.now()}-${Math.random()}}`),
1006
1006
  node: t,
1007
1007
  at: Date.now(),
1008
1008
  experienceId: e
1009
1009
  };
1010
1010
  }
1011
- var qe = L(() => {
1012
- let e = X.store({ entries: [] }), t = X.event(), n = X.event(), r = X.event(), i = X.event();
1013
- e.on(t, (e, t) => ({ entries: [...e.entries, Ke(t.experienceId, t.node)] })), e.on(n, (e, t) => ({ entries: [...e.entries.slice(0, -1), Ke(t.experienceId, t.node)] })), e.on(i, (e, t) => t);
1011
+ var $e = L(() => {
1012
+ let e = J.store({ entries: [] }), t = J.event(), n = J.event(), r = J.event(), i = J.event();
1013
+ e.on(t, (e, t) => ({ entries: [...e.entries, Qe(t.experienceId, t.node)] })), e.on(n, (e, t) => ({ entries: [...e.entries.slice(0, -1), Qe(t.experienceId, t.node)] })), e.on(i, (e, t) => t);
1014
1014
  function a(e, t) {
1015
1015
  let n = {
1016
1016
  lastStepIndex: -1,
@@ -1040,20 +1040,20 @@ var qe = L(() => {
1040
1040
  entriesStore: e.map((e) => e.entries)
1041
1041
  };
1042
1042
  });
1043
- function Je() {
1044
- return R(qe);
1043
+ function et() {
1044
+ return R($e);
1045
1045
  }
1046
1046
  //#endregion
1047
1047
  //#region src/utils/events.ts
1048
- var Ye = 0, Xe = (e) => {
1048
+ var tt = 0, nt = (e) => {
1049
1049
  let t = F([]);
1050
1050
  return t.on(e, (e, t) => [...e, {
1051
- id: Ye++,
1051
+ id: tt++,
1052
1052
  at: /* @__PURE__ */ new Date(),
1053
1053
  payload: t
1054
1054
  }]), t;
1055
- }, Ze = M("field"), Qe = L(() => {
1056
- let e = Ze.store({}), t = j(e, {
1055
+ }, rt = M("field"), it = L(() => {
1056
+ let e = rt.store({}), t = j(e, {
1057
1057
  register(e, t) {
1058
1058
  return {
1059
1059
  ...e,
@@ -1101,13 +1101,13 @@ var Ye = 0, Xe = (e) => {
1101
1101
  getByName: c
1102
1102
  };
1103
1103
  });
1104
- function $e() {
1105
- return R(Qe);
1104
+ function at() {
1105
+ return R(it);
1106
1106
  }
1107
1107
  //#endregion
1108
1108
  //#region src/entities/step/step.ts
1109
- var et = M("step"), tt = L(() => {
1110
- let e = et.store({}), t = j(e, { register(e, t) {
1109
+ var ot = M("step"), st = L(() => {
1110
+ let e = ot.store({}), t = j(e, { register(e, t) {
1111
1111
  return {
1112
1112
  ...e,
1113
1113
  [t.step.id]: t.step
@@ -1131,16 +1131,16 @@ var et = M("step"), tt = L(() => {
1131
1131
  indexStore: e
1132
1132
  };
1133
1133
  });
1134
- function nt() {
1135
- return R(tt);
1134
+ function ct() {
1135
+ return R(st);
1136
1136
  }
1137
- function rt(e, t) {
1137
+ function lt(e, t) {
1138
1138
  t.register(e);
1139
1139
  }
1140
1140
  //#endregion
1141
1141
  //#region src/entities/content/content.ts
1142
- var it = M("content"), at = L(() => {
1143
- let e = it.store({}), t = j(e, {
1142
+ var ut = M("content"), dt = L(() => {
1143
+ let e = ut.store({}), t = j(e, {
1144
1144
  register(e, t) {
1145
1145
  return {
1146
1146
  ...e,
@@ -1181,16 +1181,81 @@ var it = M("content"), at = L(() => {
1181
1181
  indexStore: e
1182
1182
  };
1183
1183
  });
1184
- function ot() {
1185
- return R(at);
1184
+ function ft() {
1185
+ return R(dt);
1186
1186
  }
1187
- function st(e, t) {
1187
+ function pt(e, t) {
1188
1188
  t.register(e);
1189
1189
  }
1190
1190
  //#endregion
1191
+ //#region src/data-source/provider.ts
1192
+ var Y = "bundle", X = "api";
1193
+ async function mt() {
1194
+ try {
1195
+ let e = await import("virtual:picked/data");
1196
+ return ie(e) ? e : null;
1197
+ } catch {
1198
+ return null;
1199
+ }
1200
+ }
1201
+ function ht(e) {
1202
+ if (e === void 0 || ie(e)) return e;
1203
+ }
1204
+ function gt(e) {
1205
+ let { apiUrl: t, projectId: n, previewToken: r, signal: i } = e, a = !!r, o = a ? X : e.mode, s = ht(a ? void 0 : e.bundle), c = a ? void 0 : e.projectConfig, l = e.getContent, u = {
1206
+ mode: o ?? X,
1207
+ manifest: null
1208
+ }, d, f, p = /* @__PURE__ */ new Map();
1209
+ function m() {
1210
+ if (o === X) return Promise.resolve(null);
1211
+ if (s) return Promise.resolve(s);
1212
+ let e = oe();
1213
+ return e ? Promise.resolve(e) : (d ??= mt(), d);
1214
+ }
1215
+ function h(e) {
1216
+ u.mode = e ? Y : X, u.manifest = e ? e.manifestMetadata : null;
1217
+ }
1218
+ async function g() {
1219
+ if (c) return h(await m()), c;
1220
+ let e = await m();
1221
+ return h(e), e ? e.projectConfig : o === Y ? null : te(t, n, {
1222
+ ...r !== void 0 && { previewToken: r },
1223
+ ...i !== void 0 && { signal: i }
1224
+ });
1225
+ }
1226
+ async function _(e, a) {
1227
+ let s = r === void 0 ? void 0 : { previewToken: r };
1228
+ if (l) return l(e, s);
1229
+ let c = await m();
1230
+ if (h(c), c) try {
1231
+ return await c.experienceContent(e, s);
1232
+ } catch {
1233
+ return `${e.id}`, null;
1234
+ }
1235
+ if (o === Y) return null;
1236
+ let u = a ?? i;
1237
+ return ne(t, n, e.id, {
1238
+ ...r !== void 0 && { previewToken: r },
1239
+ ...u !== void 0 && { signal: u }
1240
+ });
1241
+ }
1242
+ return {
1243
+ meta: u,
1244
+ getProjectConfig: () => (f ??= g(), f),
1245
+ getContent: (e, t) => {
1246
+ let n = p.get(e.id);
1247
+ if (n) return n;
1248
+ let r = _(e, t?.signal).finally(() => {
1249
+ p.delete(e.id);
1250
+ });
1251
+ return p.set(e.id, r), r;
1252
+ }
1253
+ };
1254
+ }
1255
+ //#endregion
1191
1256
  //#region src/entities/action/action.ts
1192
- var ct = M("action"), lt = L(({ client: e }) => {
1193
- let t = ct.store({}), n = j(t, { register(e, t) {
1257
+ var _t = M("action"), vt = L(({ client: e }) => {
1258
+ let t = _t.store({}), n = j(t, { register(e, t) {
1194
1259
  return {
1195
1260
  ...e,
1196
1261
  [t.key]: {
@@ -1248,10 +1313,10 @@ var ct = M("action"), lt = L(({ client: e }) => {
1248
1313
  getEvokableAction: s
1249
1314
  };
1250
1315
  });
1251
- function ut(e) {
1252
- return R(lt, e);
1316
+ function yt(e) {
1317
+ return R(vt, e);
1253
1318
  }
1254
- var dt = (e, t, n) => {
1319
+ var bt = (e, t, n) => {
1255
1320
  n.register({
1256
1321
  key: e,
1257
1322
  action: t
@@ -1270,35 +1335,35 @@ function Z(e, t, n, r) {
1270
1335
  function Q(e) {
1271
1336
  return e === null || e === "" || Array.isArray(e) && !e.length;
1272
1337
  }
1273
- function ft(e) {
1338
+ function xt(e) {
1274
1339
  return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
1275
1340
  }
1276
- function pt(e) {
1341
+ function St(e) {
1277
1342
  try {
1278
1343
  return JSON.stringify(e), !0;
1279
1344
  } catch {
1280
1345
  return !1;
1281
1346
  }
1282
1347
  }
1283
- function mt(e, t) {
1348
+ function Ct(e, t) {
1284
1349
  return t.find((t) => t.key === e) ?? null;
1285
1350
  }
1286
- function ht(e, t) {
1351
+ function wt(e, t) {
1287
1352
  return e.multiple && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") ? [t] : t;
1288
1353
  }
1289
- function gt(e, t) {
1354
+ function Tt(e, t) {
1290
1355
  if (e.type !== "object" || Q(t)) return null;
1291
1356
  if (e.multiple) {
1292
1357
  if (!Array.isArray(t)) return Z(e, t, "This field expects multiple values", "Field expects an array of objects.");
1293
1358
  for (let n of t) {
1294
1359
  if (typeof n != "object" || !n) return Z(e, t, "This field expects object values", "Field expects an array of objects, but received non-object value.");
1295
- if (!pt(n)) return Z(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
1360
+ if (!St(n)) return Z(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
1296
1361
  }
1297
1362
  return null;
1298
1363
  }
1299
- return Array.isArray(t) ? Z(e, t, "This field expects a single value", "Field expects a single object, not an array.") : typeof t != "object" || !t ? Z(e, t, "This field expects an object value", "Field expects an object value.") : pt(t) ? null : Z(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
1364
+ return Array.isArray(t) ? Z(e, t, "This field expects a single value", "Field expects a single object, not an array.") : typeof t != "object" || !t ? Z(e, t, "This field expects an object value", "Field expects an object value.") : St(t) ? null : Z(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
1300
1365
  }
1301
- function _t(e, t) {
1366
+ function Et(e, t) {
1302
1367
  if (Q(t) || !Array.isArray(e.options) || e.options.length === 0) return null;
1303
1368
  let n = Array.isArray(t) ? t : [t];
1304
1369
  if (e.type === "object") {
@@ -1306,9 +1371,9 @@ function _t(e, t) {
1306
1371
  return n.every((e) => r.has(JSON.stringify(e))) ? null : Z(e, t, "This field expects a valid option", "Field expects a valid option from the defined choices.");
1307
1372
  }
1308
1373
  let r = e.options.map((e) => e.value);
1309
- return n.every((e) => !ft(e) || e === null ? !1 : r.includes(e)) ? null : Z(e, t, "This field expects a valid option", `Field expects a valid option. Valid options are: ${r.join(", ")}`);
1374
+ return n.every((e) => !xt(e) || e === null ? !1 : r.includes(e)) ? null : Z(e, t, "This field expects a valid option", `Field expects a valid option. Valid options are: ${r.join(", ")}`);
1310
1375
  }
1311
- async function vt(t, n, r, i) {
1376
+ async function Dt(t, n, r, i) {
1312
1377
  if (n.validation && !e(n.validation) && !Q(r)) {
1313
1378
  let e = i ? {
1314
1379
  $input: r,
@@ -1321,8 +1386,8 @@ async function vt(t, n, r, i) {
1321
1386
  }
1322
1387
  //#endregion
1323
1388
  //#region src/entities/response/response.ts
1324
- var yt = M("response"), bt = L(({ client: e }) => {
1325
- let t = yt.store({}), r = P(), i = P(), a = j(t, {
1389
+ var Ot = M("response"), kt = L(({ client: e }) => {
1390
+ let t = Ot.store({}), r = P(), i = P(), a = j(t, {
1326
1391
  register(e, t) {
1327
1392
  return {
1328
1393
  ...e,
@@ -1361,7 +1426,7 @@ var yt = M("response"), bt = L(({ client: e }) => {
1361
1426
  ...t,
1362
1427
  ...n
1363
1428
  }, o = Object.entries(n), c = await Promise.allSettled(o.map(async ([t, n]) => {
1364
- let o = mt(t, e);
1429
+ let o = Ct(t, e);
1365
1430
  if (!o) {
1366
1431
  r.push({
1367
1432
  fieldKey: t,
@@ -1371,17 +1436,17 @@ var yt = M("response"), bt = L(({ client: e }) => {
1371
1436
  });
1372
1437
  return;
1373
1438
  }
1374
- let c = ht(o, n), l = await vt(s, o, c, a);
1439
+ let c = wt(o, n), l = await Dt(s, o, c, a);
1375
1440
  if (l) {
1376
1441
  r.push(l);
1377
1442
  return;
1378
1443
  }
1379
- let u = gt(o, c);
1444
+ let u = Tt(o, c);
1380
1445
  if (u) {
1381
1446
  r.push(u);
1382
1447
  return;
1383
1448
  }
1384
- let d = _t(o, c);
1449
+ let d = Et(o, c);
1385
1450
  if (d) {
1386
1451
  r.push(d);
1387
1452
  return;
@@ -1460,13 +1525,13 @@ var yt = M("response"), bt = L(({ client: e }) => {
1460
1525
  getByFieldName: _
1461
1526
  };
1462
1527
  });
1463
- function xt(e) {
1464
- return R(bt, e);
1528
+ function At(e) {
1529
+ return R(kt, e);
1465
1530
  }
1466
1531
  //#endregion
1467
1532
  //#region src/entities/condition/condition.ts
1468
- var St = M("condition"), Ct = L(() => {
1469
- let e = St.store({}), t = j(e, { register(e, t) {
1533
+ var jt = M("condition"), Mt = L(() => {
1534
+ let e = jt.store({}), t = j(e, { register(e, t) {
1470
1535
  return {
1471
1536
  ...e,
1472
1537
  [t.condition.id]: t.condition
@@ -1490,12 +1555,12 @@ var St = M("condition"), Ct = L(() => {
1490
1555
  indexStore: e
1491
1556
  };
1492
1557
  });
1493
- function wt() {
1494
- return R(Ct);
1558
+ function Nt() {
1559
+ return R(Mt);
1495
1560
  }
1496
1561
  //#endregion
1497
1562
  //#region src/utils/api-url.ts
1498
- function Tt() {
1563
+ function Pt() {
1499
1564
  if (c()) {
1500
1565
  let e = [
1501
1566
  document.currentScript,
@@ -1510,7 +1575,7 @@ function Tt() {
1510
1575
  }
1511
1576
  //#endregion
1512
1577
  //#region src/utils/search-params.ts
1513
- function Et() {
1578
+ function Ft() {
1514
1579
  if (!s()) return {};
1515
1580
  let e = new URLSearchParams(window.location.search), t = {}, n = /* @__PURE__ */ new Set();
1516
1581
  for (let [t] of e.entries()) t.startsWith("picked-") && n.add(t);
@@ -1528,13 +1593,13 @@ function Et() {
1528
1593
  }
1529
1594
  //#endregion
1530
1595
  //#region src/entities/session/session.ts
1531
- var Dt = O("session", "global");
1532
- function Ot() {
1596
+ var It = O("session", "global");
1597
+ function Lt() {
1533
1598
  return p() ? crypto.randomUUID() : `${Date.now().toString(36)}-${Math.random().toString(36).substring(2, 15)}-${Math.random().toString(36).substring(2, 15)}-${Math.random().toString(36).substring(2, 15)}`;
1534
1599
  }
1535
- function kt() {
1600
+ function Rt() {
1536
1601
  if (!m()) return null;
1537
- let e = E.get(Dt);
1602
+ let e = E.get(It);
1538
1603
  if (!e.isSet()) return null;
1539
1604
  try {
1540
1605
  return e.json();
@@ -1542,8 +1607,8 @@ function kt() {
1542
1607
  return null;
1543
1608
  }
1544
1609
  }
1545
- var At = L(() => {
1546
- let e = kt(), t = { id: e?.id ?? Ot() };
1610
+ var zt = L(() => {
1611
+ let e = Rt(), t = { id: e?.id ?? Lt() };
1547
1612
  e?.isUser !== void 0 && (t.isUser = e.isUser), e?.identifiers && Object.keys(e.identifiers).length > 0 && (t.identifiers = e.identifiers);
1548
1613
  let n = F(t), r = j(n, {
1549
1614
  setIsUser: (e, t) => ({
@@ -1569,7 +1634,7 @@ var At = L(() => {
1569
1634
  source: n,
1570
1635
  effect: (e) => {
1571
1636
  if (m()) try {
1572
- E.get(Dt).set(e);
1637
+ E.get(It).set(e);
1573
1638
  } catch {}
1574
1639
  }
1575
1640
  });
@@ -1583,27 +1648,27 @@ var At = L(() => {
1583
1648
  removeIdentifier: r.removeIdentifier
1584
1649
  };
1585
1650
  });
1586
- function jt() {
1587
- return R(At, void 0);
1651
+ function Bt() {
1652
+ return R(zt, void 0);
1588
1653
  }
1589
1654
  //#endregion
1590
1655
  //#region src/utils/picked-config.ts
1591
- function Mt() {
1656
+ function Vt() {
1592
1657
  if (s()) return globalThis.window.pickedConfig;
1593
1658
  }
1594
- function Nt() {
1595
- if (s()) return Mt()?.projectId;
1659
+ function Ht() {
1660
+ if (s()) return Vt()?.projectId;
1596
1661
  }
1597
- function Pt() {
1662
+ function Ut() {
1598
1663
  if (!c()) return;
1599
1664
  let e = document.getElementById("picked_script") || document.querySelector("script#picked") || document.getElementById("cvly");
1600
1665
  if (e) return e.dataset.projectid || e.getAttribute("project-id") || void 0;
1601
1666
  }
1602
- function Ft(e) {
1667
+ function Wt(e) {
1603
1668
  if (e.projectId) return e.projectId;
1604
- let t = Nt();
1669
+ let t = Ht();
1605
1670
  if (t) return t;
1606
- let n = Pt();
1671
+ let n = Ut();
1607
1672
  if (n) return n;
1608
1673
  throw Error("projectId is required. You can provide it via one of:\n (1) createClient({ projectId }) options;\n (2) window.pickedConfig = { projectId };\n (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes a data-projectid (or project-id) attribute.");
1609
1674
  }
@@ -1612,7 +1677,7 @@ function Ft(e) {
1612
1677
  function $(e) {
1613
1678
  return e == null || e === "" || Number.isNaN(e);
1614
1679
  }
1615
- var It = {
1680
+ var Gt = {
1616
1681
  default: (e, t) => $(e) ? String(t ?? "") : String(e),
1617
1682
  append: (e, t) => t && !$(e) ? `${e} ${t}` : e,
1618
1683
  prepend: (e, t) => t && !$(e) ? `${t} ${e}` : e,
@@ -1633,24 +1698,24 @@ var It = {
1633
1698
  return e instanceof Set ? t.format(Array.from(e).map(String)) : e;
1634
1699
  }
1635
1700
  };
1636
- function Lt(e) {
1701
+ function Kt(e) {
1637
1702
  return typeof e == "object" && !!e;
1638
1703
  }
1639
- function Rt(e, t) {
1704
+ function qt(e, t) {
1640
1705
  let n = t;
1641
- for (let t of e.split(".")) if (Lt(n) && t in n) n = n[t];
1706
+ for (let t of e.split(".")) if (Kt(n) && t in n) n = n[t];
1642
1707
  else return;
1643
1708
  return typeof n == "function" ? n() : n;
1644
1709
  }
1645
- function zt(e, t) {
1646
- let n = e.split("|").map((e) => e.trim()), r = Rt(n.shift() ?? "", t);
1710
+ function Jt(e, t) {
1711
+ let n = e.split("|").map((e) => e.trim()), r = qt(n.shift() ?? "", t);
1647
1712
  for (let e of n) {
1648
- let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = It[i];
1713
+ let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = Gt[i];
1649
1714
  o && (r = o(r, a));
1650
1715
  }
1651
1716
  return $(r) ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
1652
1717
  }
1653
- function Bt(e, t) {
1718
+ function Yt(e, t) {
1654
1719
  let n = "", r = 0;
1655
1720
  for (; r < e.length;) if (e[r] === "{" && e[r + 1] === "{") {
1656
1721
  r += 2;
@@ -1662,19 +1727,19 @@ function Bt(e, t) {
1662
1727
  }
1663
1728
  i += e[r++];
1664
1729
  }
1665
- n += zt(i.trim(), t);
1730
+ n += Jt(i.trim(), t);
1666
1731
  } else n += e[r++];
1667
1732
  return n;
1668
1733
  }
1669
1734
  //#endregion
1670
1735
  //#region src/utils/preview-session.ts
1671
- var Vt = "preview-token";
1672
- function Ht() {
1673
- return !s() || !h() ? !1 : !!Et()[Vt]?.[0];
1736
+ var Xt = "preview-token";
1737
+ function Zt() {
1738
+ return !s() || !h() ? !1 : !!Ft()[Xt]?.[0];
1674
1739
  }
1675
1740
  //#endregion
1676
1741
  //#region src/picked.ts
1677
- var Ut = class {
1742
+ var Qt = class {
1678
1743
  static logger = r;
1679
1744
  options;
1680
1745
  dataSource = null;
@@ -1683,72 +1748,91 @@ var Ut = class {
1683
1748
  contentLoader;
1684
1749
  previewEmbedderOrigins = null;
1685
1750
  plugins = {};
1751
+ dataProviders = /* @__PURE__ */ new Map();
1686
1752
  eventBus = P();
1687
1753
  events;
1688
1754
  projectId;
1689
1755
  apiUrl;
1690
1756
  dashboardUrl;
1691
1757
  documentationSiteUrl;
1692
- session = jt();
1693
- searchParams = Et();
1694
- history = Je();
1695
- components = ve({ client: this });
1758
+ session = Bt();
1759
+ searchParams = Ft();
1760
+ history = et();
1761
+ components = Se({ client: this });
1696
1762
  experienceInstances = S({ client: this });
1697
- experiences = ue({ client: this });
1698
- frameworks = xe({ client: this });
1699
- predicates = ze({ client: this });
1700
- features = We({ client: this });
1701
- conditions = wt();
1702
- fields = $e();
1703
- responses = xt({ client: this });
1704
- steps = nt();
1705
- contents = ot();
1706
- actions = ut({ client: this });
1763
+ experiences = me({ client: this });
1764
+ frameworks = Ee({ client: this });
1765
+ predicates = Ge({ client: this });
1766
+ features = Xe({ client: this });
1767
+ conditions = Nt();
1768
+ fields = at();
1769
+ responses = At({ client: this });
1770
+ steps = ct();
1771
+ contents = ft();
1772
+ actions = yt({ client: this });
1707
1773
  conditionResults = C();
1708
- stateSnapshotStore = we({ client: this });
1709
- evaluateRuleLogicFx = je({ client: this });
1774
+ stateSnapshotStore = ke({ client: this });
1775
+ evaluateRuleLogicFx = Le({ client: this });
1710
1776
  start;
1711
1777
  readyStore;
1712
1778
  preconditionPassedStore;
1713
1779
  conditionPassedStore;
1714
1780
  lifecycleStageStore;
1715
- lifecycle = Ie({ client: this });
1781
+ lifecycle = He({ client: this });
1716
1782
  renderStringFx = k({
1717
1783
  source: this.responses.listStore,
1718
1784
  effect: (e, { template: t, context: n }) => {
1719
1785
  let r = {};
1720
1786
  for (let t of e) r[t.fieldKey] = t.value;
1721
- return Bt(t, {
1787
+ return Yt(t, {
1722
1788
  ...n,
1723
1789
  responses: r
1724
1790
  });
1725
1791
  }
1726
1792
  });
1727
1793
  constructor(e) {
1728
- this.events = Xe(this.eventBus), this.projectId = Ft(e), this.options = Object.freeze(e), this.apiUrl = e.apiUrl || Tt(), this.dashboardUrl = e.dashboardUrl ?? "https://dashboard.picked.app", this.documentationSiteUrl = e.documentationSiteUrl ?? "https://docs.picked.app", this.start = this.lifecycle.start, this.readyStore = this.lifecycle.readyStore, this.preconditionPassedStore = this.lifecycle.preconditionPassedStore, this.conditionPassedStore = this.lifecycle.conditionPassedStore, this.lifecycleStageStore = this.lifecycle.lifecycleStageStore, this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.setupComponents(), this.lifecycle.setPrecondition(e.precondition), this.lifecycle.setCondition(e.condition), this.eventBus({
1794
+ this.events = nt(this.eventBus), this.projectId = Wt(e), this.options = Object.freeze(e), this.apiUrl = e.apiUrl || Pt(), this.dashboardUrl = e.dashboardUrl ?? "https://dashboard.picked.app", this.documentationSiteUrl = e.documentationSiteUrl ?? "https://docs.picked.app", this.start = this.lifecycle.start, this.readyStore = this.lifecycle.readyStore, this.preconditionPassedStore = this.lifecycle.preconditionPassedStore, this.conditionPassedStore = this.lifecycle.conditionPassedStore, this.lifecycleStageStore = this.lifecycle.lifecycleStageStore, this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.setupComponents(), this.lifecycle.setPrecondition(e.precondition), this.lifecycle.setCondition(e.condition), this.eventBus({
1729
1795
  type: "load",
1730
- version: ne()
1796
+ version: ae()
1731
1797
  }), this.maybeStartPreviewChannel();
1732
1798
  }
1799
+ dataProviderFor(e) {
1800
+ let t = e ?? "", n = this.dataProviders.get(t);
1801
+ if (n) return n;
1802
+ let r = gt({
1803
+ apiUrl: this.apiUrl,
1804
+ projectId: this.projectId,
1805
+ ...e !== void 0 && { previewToken: e }
1806
+ });
1807
+ return this.dataProviders.set(t, r), r;
1808
+ }
1809
+ async getProjectConfig(e) {
1810
+ let t = this.dataProviderFor(e?.previewToken), n = await t.getProjectConfig();
1811
+ if (this.dataSource = t.meta.manifest, n === null) throw Error(`Picked could not resolve the configuration for project "${this.projectId}" from ${this.apiUrl}.`);
1812
+ return n;
1813
+ }
1814
+ getExperienceContent(e, t) {
1815
+ return this.dataProviderFor(t?.previewToken).getContent(e, t?.signal === void 0 ? void 0 : { signal: t.signal });
1816
+ }
1733
1817
  maybeStartPreviewChannel() {
1734
- Ht() && import("../preview-channel-CSr96XAo.js").then((e) => e.initPreviewChannel(this)).catch(() => void 0);
1818
+ Zt() && import("../preview-channel-CSr96XAo.js").then((e) => e.initPreviewChannel(this)).catch(() => void 0);
1735
1819
  }
1736
1820
  registerFramework = (e) => {
1737
- Se(e, this.frameworks);
1821
+ De(e, this.frameworks);
1738
1822
  };
1739
1823
  registerComponent = (e, t) => {
1740
- B(e, t, this.components);
1824
+ Ce(e, t, this.components);
1741
1825
  };
1742
1826
  registerPlugin = (e) => {
1743
- pe(this, e, this.plugins);
1827
+ _e(this, e, this.plugins);
1744
1828
  let t = this.plugins[e.name];
1745
1829
  t?.onStart && this.lifecycle.registerPluginStartHook(t.onStart);
1746
1830
  };
1747
1831
  registerFeature = (e, t) => {
1748
- Ge(e, t, this.features);
1832
+ Ze(e, t, this.features);
1749
1833
  };
1750
1834
  registerPredicate = (e, t) => {
1751
- Be(e, t, this.predicates);
1835
+ Ke(e, t, this.predicates);
1752
1836
  };
1753
1837
  registerCondition = (e) => {
1754
1838
  this.conditions.register(e);
@@ -1757,19 +1841,19 @@ var Ut = class {
1757
1841
  this.fields.register(e);
1758
1842
  };
1759
1843
  registerStep = (e) => {
1760
- rt(e, this.steps);
1844
+ lt(e, this.steps);
1761
1845
  };
1762
1846
  registerContent = (e) => {
1763
- st(e, this.contents);
1847
+ pt(e, this.contents);
1764
1848
  };
1765
1849
  patchContent = (e, t) => {
1766
1850
  this.contents.patch(e, t);
1767
1851
  };
1768
1852
  registerAction = (e, t) => {
1769
- dt(e, t, this.actions);
1853
+ bt(e, t, this.actions);
1770
1854
  };
1771
1855
  registerExperience = (e) => {
1772
- e.component && B(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1856
+ e.component && Ce(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1773
1857
  };
1774
1858
  launchExperienceById = async (e, t) => {
1775
1859
  this.experiences.launch({
@@ -1814,7 +1898,7 @@ var Ut = class {
1814
1898
  try {
1815
1899
  let [t, n] = e.split(":");
1816
1900
  if (!t || !n) return;
1817
- let r = He(n);
1901
+ let r = Je(n);
1818
1902
  this.registerFeature(t, {
1819
1903
  key: `${r}`,
1820
1904
  name: t,
@@ -1851,8 +1935,8 @@ var Ut = class {
1851
1935
  });
1852
1936
  }
1853
1937
  getPluginConfig = (e) => this.plugins[e] ?? {};
1854
- }, Wt = "application/picked-javascript", Gt = "application/picked-module", Kt = "data-picked-hydrated";
1855
- async function qt(e) {
1938
+ }, $t = "application/picked-javascript", en = "application/picked-module", tn = "data-picked-hydrated";
1939
+ async function nn(e) {
1856
1940
  if (!("document" in globalThis)) return;
1857
1941
  let t = "application/picked-module", n = "data-picked-hydrated";
1858
1942
  function r(e) {
@@ -1881,30 +1965,30 @@ async function qt(e) {
1881
1965
  a && await a;
1882
1966
  }
1883
1967
  }
1884
- function Jt() {
1885
- return `<script>(${qt.toString()})(document)<\/script>`;
1968
+ function rn() {
1969
+ return `<script>(${nn.toString()})(document)<\/script>`;
1886
1970
  }
1887
1971
  //#endregion
1888
1972
  //#region src/utils/html-asset-value.ts
1889
- function Yt(e) {
1973
+ function an(e) {
1890
1974
  return typeof e == "object" && !!e && "id" in e && typeof e.id == "string" && "content" in e && (typeof e.content == "string" || e.content === null);
1891
1975
  }
1892
1976
  //#endregion
1893
1977
  //#region src/entities/component/lazyComponent.ts
1894
- function Xt(e) {
1978
+ function on(e) {
1895
1979
  return {
1896
1980
  $$type: "lazy-component",
1897
1981
  load: e
1898
1982
  };
1899
1983
  }
1900
- function Zt(e) {
1984
+ function sn(e) {
1901
1985
  return typeof e == "object" && !!e && "$$type" in e && e.$$type === "lazy-component";
1902
1986
  }
1903
1987
  //#endregion
1904
1988
  //#region src/exports.ts
1905
- var Qt = (e) => {
1906
- let t = new Ut(e);
1989
+ var cn = (e) => {
1990
+ let t = new Qt(e);
1907
1991
  return u(t), t;
1908
1992
  };
1909
1993
  //#endregion
1910
- export { Kt as PICKED_HYDRATED_ATTR, Gt as PICKED_MODULE_SCRIPT_TYPE, Wt as PICKED_SCRIPT_TYPE, Vt as PREVIEW_TOKEN_PARAM, Ut as Picked, Jt as buildRehydrateBootstrap, Qt as createClient, fe as createPluginEffect, O as createStorageKey, n as evaluateRuleLogic, Mt as getPickedConfig, Yt as isHtmlAssetValue, h as isInsideIframe, Zt as isLazyLoader, _ as isPickedRoot, Ht as isPreviewSession, Xt as lazyComponent, E as localStore, oe as onInertScriptSubtrees, qt as rehydrateScripts, ie as reportInertScriptSubtrees, ae as resetInertScriptReport, D as sessionStore, T as subscribe, d as supportsCookies, p as supportsCryptoRandomUUID, c as supportsDocument, i as supportsHistory, f as supportsIntersectionObserver, m as supportsLocalStorage, a as supportsLocation, l as supportsSessionStorage, g as supportsShadowRoot, o as supportsWebComponents, s as supportsWindow };
1994
+ export { tn as PICKED_HYDRATED_ATTR, en as PICKED_MODULE_SCRIPT_TYPE, $t as PICKED_SCRIPT_TYPE, Xt as PREVIEW_TOKEN_PARAM, Qt as Picked, rn as buildRehydrateBootstrap, cn as createClient, ge as createPluginEffect, O as createStorageKey, n as evaluateRuleLogic, Vt as getPickedConfig, an as isHtmlAssetValue, h as isInsideIframe, sn as isLazyLoader, _ as isPickedRoot, Zt as isPreviewSession, on as lazyComponent, E as localStore, ue as onInertScriptSubtrees, nn as rehydrateScripts, ce as reportInertScriptSubtrees, le as resetInertScriptReport, D as sessionStore, T as subscribe, d as supportsCookies, p as supportsCryptoRandomUUID, c as supportsDocument, i as supportsHistory, f as supportsIntersectionObserver, m as supportsLocalStorage, a as supportsLocation, l as supportsSessionStorage, g as supportsShadowRoot, o as supportsWebComponents, s as supportsWindow };