@picked/client 0.0.72-next.1 → 0.0.72-next.3

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 (70) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{api-B9DDtylO.cjs → api-B4qxWoQN.cjs} +1 -1
  3. package/dist/{api-BmzHzzpu.js → api-DNvaLWw_.js} +1 -1
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  6. package/dist/cjs/server/index.js +1 -1
  7. package/dist/docs/explanation/content-references.md +99 -0
  8. package/dist/docs/explanation/how-picked-works.md +25 -3
  9. package/dist/docs/explanation/the-content-model.md +38 -28
  10. package/dist/docs/how-to/create-a-content-entry.md +48 -0
  11. package/dist/docs/how-to/define-a-page-layout.md +12 -5
  12. package/dist/docs/how-to/point-one-entry-at-another.md +61 -0
  13. package/dist/docs/how-to/read-a-referenced-entry.md +111 -0
  14. package/dist/docs/how-to/reuse-a-section.md +26 -10
  15. package/dist/docs/index.md +1 -1
  16. package/dist/docs/reference/dashboard/content/blocks.mdx +57 -0
  17. package/dist/docs/reference/dashboard/content/content-entries.mdx +61 -10
  18. package/dist/docs/reference/dashboard/content/models.mdx +108 -0
  19. package/dist/docs/reference/dashboard/content/pages.mdx +4 -3
  20. package/dist/docs/reference/dashboard/fields.mdx +1 -1
  21. package/dist/docs/reference/dashboard/steps.mdx +2 -2
  22. package/dist/docs/reference/delivery-api/experience-content.md +68 -13
  23. package/dist/docs/reference/glossary.md +13 -5
  24. package/dist/docs/reference/management-api/error-handling.md +2 -2
  25. package/dist/docs/reference/sdk/content.md +216 -0
  26. package/dist/docs/reference/sdk/plugins/dynamic-experiences.md +51 -3
  27. package/dist/docs/reference/sdk/ssr/serialize.md +6 -3
  28. package/dist/docs/reference/tools/vite-plugin.md +90 -8
  29. package/dist/docs/tutorials/first-api-call.md +1 -1
  30. package/dist/docs/tutorials/first-server-rendered-page.mdx +1 -1
  31. package/dist/esm/index.js +484 -429
  32. package/dist/esm/plugins/dynamic-experiences/index.js +4 -3
  33. package/dist/esm/server/index.js +43 -46
  34. package/dist/plugin-DkSWIASL.cjs +1 -0
  35. package/dist/plugin-DviILBha.js +153 -0
  36. package/dist/provider-Bskcgd6U.js +68 -0
  37. package/dist/provider-Bv5nM3So.cjs +1 -0
  38. package/dist/registry-BMXsAEbZ.cjs +1 -0
  39. package/dist/registry-DjBZ8upD.js +74 -0
  40. package/dist/types/data-source/api.d.ts +60 -0
  41. package/dist/types/data-source/api.d.ts.map +1 -0
  42. package/dist/types/data-source/provider.d.ts +90 -0
  43. package/dist/types/data-source/provider.d.ts.map +1 -0
  44. package/dist/types/data-source/registry.d.ts +26 -0
  45. package/dist/types/data-source/registry.d.ts.map +1 -0
  46. package/dist/types/data-source/virtual-data.d.ts +19 -0
  47. package/dist/types/data-source/virtual-data.d.ts.map +1 -0
  48. package/dist/types/entities/content/reference.d.ts +101 -0
  49. package/dist/types/entities/content/reference.d.ts.map +1 -0
  50. package/dist/types/exports.d.ts +2 -0
  51. package/dist/types/exports.d.ts.map +1 -1
  52. package/dist/types/index.d.ts +1 -0
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/dist/types/picked.d.ts +65 -1
  55. package/dist/types/picked.d.ts.map +1 -1
  56. package/dist/types/plugins/dynamic-experiences/index.d.ts +1 -0
  57. package/dist/types/plugins/dynamic-experiences/index.d.ts.map +1 -1
  58. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +9 -40
  59. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  60. package/dist/types/plugins/dynamic-experiences/types.d.ts +25 -23
  61. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  62. package/dist/types/server/index.d.ts +1 -1
  63. package/dist/types/server/index.d.ts.map +1 -1
  64. package/dist/types/server/serialize.d.ts +27 -34
  65. package/dist/types/server/serialize.d.ts.map +1 -1
  66. package/package.json +3 -3
  67. package/dist/docs/reference/dashboard/content/layouts.mdx +0 -62
  68. package/dist/docs/reference/dashboard/content/sections.mdx +0 -28
  69. package/dist/plugin-CZN0_kqv.js +0 -252
  70. package/dist/plugin-SFx511s_.cjs +0 -1
package/dist/esm/index.js CHANGED
@@ -2,17 +2,17 @@ import { t as e } from "../object-BUDGxEqy.js";
2
2
  import { n as t, t as n } from "../rules-logic-HesIUCu6.js";
3
3
  import { t as r } from "../logger-DMN6TxJJ.js";
4
4
  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 p, s as m, t as h, u as g } from "../supports-CO9bJGNl.js";
5
- import { a as _, i as v, r as y, s as b, t as x } from "../dom-BqcToNL0.js";
6
- import { l as S, n as C, r as w, u as T } from "../experience-instance-DGk11d8a.js";
7
- import { i as E, n as D, r as O, t as k } from "../storage-1MW3-_As.js";
8
- import { n as ee, r as te } from "../api-BmzHzzpu.js";
9
- import { t as ne } from "../id-Bo4RBeOs.js";
10
- import { n as re, r as ie, t as ae } from "../inert-script-report-B_bMPRzp.js";
11
- import { attach as A, combine as j, createApi as M, createDomain as N, createEffect as P, createEvent as F, createStore as I, sample as L } from "effector";
12
- import { createFactory as R, invoke as z } from "@withease/factories";
5
+ import { a as _, i as v, r as ee, s as y, t as b } from "../dom-BqcToNL0.js";
6
+ import { l as x, n as S, r as C, u as w } from "../experience-instance-DGk11d8a.js";
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-DNvaLWw_.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";
11
+ import { attach as k, combine as A, createApi as j, createDomain as M, createEffect as N, createEvent as P, createStore as F, is as se, sample as I } from "effector";
12
+ import { createFactory as L, invoke as R } from "@withease/factories";
13
13
  //#region src/entities/experience/experience.ts
14
- var B = N("experience"), oe = R(({ client: e, experience: r }) => {
15
- let i = B.store(r), a = M(i, { merge(e, t) {
14
+ var z = M("experience"), ce = L(({ client: e, experience: r }) => {
15
+ let i = z.store(r), a = j(i, { merge(e, t) {
16
16
  return {
17
17
  ...e,
18
18
  ...t.experience
@@ -22,34 +22,34 @@ var B = N("experience"), oe = R(({ client: e, experience: r }) => {
22
22
  decisionLogic: e.condition,
23
23
  targetSelectors: e.targets,
24
24
  initializeOpenLogic: e.initializeOpen
25
- })), s = j(i, e.components.listStore, (e, t) => (e.componentName ? t.find((t) => t.name === e.componentName) : void 0) || t.find((t) => t.name === `experience:${e.id}`) || t.find((e) => e.name === "experience"), { skipVoid: !1 }), c = j(i, e.steps.indexStore, e.conditions.indexStore, (e, t, n) => {
26
- let r = e.nodes.filter(T).map((e) => t[e.stepId]).filter((e) => e !== void 0), i = e.nodes.filter(S).map((e) => n[e.conditionId]).filter((e) => e !== void 0);
25
+ })), s = A(i, e.components.listStore, (e, t) => (e.componentName ? t.find((t) => t.name === e.componentName) : void 0) || t.find((t) => t.name === `experience:${e.id}`) || t.find((e) => e.name === "experience"), { skipVoid: !1 }), c = A(i, e.steps.indexStore, e.conditions.indexStore, (e, t, n) => {
26
+ let r = e.nodes.filter(w).map((e) => t[e.stepId]).filter((e) => e !== void 0), i = e.nodes.filter(x).map((e) => n[e.conditionId]).filter((e) => e !== void 0);
27
27
  return {
28
28
  steps: r,
29
29
  nodes: e.nodes,
30
30
  edges: e.edges,
31
31
  conditions: i
32
32
  };
33
- }), l = r.actions ?? [], u, d = A({
33
+ }), l = r.actions ?? [], u, d = k({
34
34
  source: o,
35
35
  effect: (t, n) => {
36
36
  let i = v(t.targetSelectors, r.id);
37
- i.forEach(({ elements: e }) => e.forEach((e) => b(e, r.id))), x(i, r.id, r.key).forEach((t) => {
37
+ i.forEach(({ elements: e }) => e.forEach((e) => y(e, r.id))), b(i, r.id, r.key).forEach((t) => {
38
38
  n ? e.experienceInstances.spawn(u, t, n) : e.experienceInstances.spawn(u, t);
39
39
  });
40
40
  }
41
- }), f = j({
41
+ }), f = A({
42
42
  preconditionPassed: e.preconditionPassedStore,
43
43
  isUser: e.session.store.map((e) => e.isUser, { skipVoid: !1 }),
44
44
  config: o
45
- }), p = A({
45
+ }), p = k({
46
46
  source: f,
47
47
  effect: async ({ preconditionPassed: i, isUser: a, config: o }) => {
48
48
  if (!i || !a) return !1;
49
49
  let { decisionLogic: s, targetSelectors: c } = o;
50
50
  return c.length === 0 || v(c, r.id).length < 1 ? !1 : s === void 0 || !t(s) || await n(e, s) === !0;
51
51
  }
52
- }), m = P(async () => {
52
+ }), m = N(async () => {
53
53
  if (!e.contentLoader) return !0;
54
54
  try {
55
55
  await e.contentLoader({
@@ -60,26 +60,26 @@ var B = N("experience"), oe = R(({ client: e, experience: r }) => {
60
60
  `${r.id}`;
61
61
  }
62
62
  return !0;
63
- }), h = F(), g = F(), _ = B.createStore(void 0, { skipVoid: !1 }).on(h, (e, t) => t).on(g, (e, t) => t);
64
- return L({
63
+ }), h = P(), g = P(), _ = z.createStore(void 0, { skipVoid: !1 }).on(h, (e, t) => t).on(g, (e, t) => t);
64
+ return I({
65
65
  clock: h,
66
66
  target: p
67
- }), L({
67
+ }), I({
68
68
  clock: p.doneData,
69
69
  source: _,
70
70
  filter: (e, t) => t,
71
71
  fn: (e) => e,
72
72
  target: d
73
- }), L({
73
+ }), I({
74
74
  clock: p.doneData,
75
75
  filter: Boolean,
76
76
  target: m
77
- }), L({
77
+ }), I({
78
78
  clock: g,
79
79
  source: _,
80
80
  fn: (e) => e,
81
81
  target: d
82
- }), L({
82
+ }), I({
83
83
  clock: g,
84
84
  target: m
85
85
  }), u = {
@@ -98,22 +98,22 @@ var B = N("experience"), oe = R(({ client: e, experience: r }) => {
98
98
  prepareExperienceContentFx: m
99
99
  }, u;
100
100
  });
101
- function se(e) {
102
- return z(oe, e);
101
+ function le(e) {
102
+ return R(ce, e);
103
103
  }
104
- var ce = R(({ client: e }) => {
105
- let t = B.store({}), n = M(t, { register(e, t) {
104
+ var ue = L(({ client: e }) => {
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
- } }), r = F(), i = P((t) => {
111
- n.register(se({
110
+ } }), r = P(), i = N((t) => {
111
+ n.register(le({
112
112
  client: e,
113
113
  experience: t
114
114
  }));
115
115
  });
116
- L({
116
+ I({
117
117
  clock: r,
118
118
  source: t,
119
119
  filter: (e, t) => e[t.id] !== void 0,
@@ -126,7 +126,7 @@ var ce = R(({ client: e }) => {
126
126
  experience: t,
127
127
  strategy: "override"
128
128
  });
129
- }), L({
129
+ }), I({
130
130
  clock: r,
131
131
  source: t,
132
132
  filter: (e, t) => e[t.id] === void 0,
@@ -140,7 +140,7 @@ var ce = R(({ client: e }) => {
140
140
  function s(e) {
141
141
  return t.map((t) => Object.values(t).find((t) => t.key === e) ?? t[e], { skipVoid: !1 });
142
142
  }
143
- let c = A({
143
+ let c = k({
144
144
  source: t,
145
145
  effect: (e, t) => {
146
146
  let n = "key" in t ? Object.values(e).find((e) => e.key === t.key) : e[t.id];
@@ -158,7 +158,7 @@ var ce = R(({ client: e }) => {
158
158
  getById: o,
159
159
  getByKey: s,
160
160
  launch: c,
161
- open: A({
161
+ open: k({
162
162
  source: {
163
163
  experiences: t,
164
164
  instances: e.experienceInstances.listStore
@@ -186,7 +186,7 @@ var ce = R(({ client: e }) => {
186
186
  }
187
187
  }),
188
188
  listStore: a,
189
- initialiseExperiencesFx: A({
189
+ initialiseExperiencesFx: k({
190
190
  source: a,
191
191
  effect: (e) => {
192
192
  for (let t of e) t.initialiseRequested(void 0);
@@ -194,20 +194,20 @@ var ce = R(({ client: e }) => {
194
194
  })
195
195
  };
196
196
  });
197
- function le(e) {
198
- return z(ce, e);
197
+ function de(e) {
198
+ return R(ue, e);
199
199
  }
200
- var ue = async (e) => {
200
+ var fe = async (e) => {
201
201
  await e.experiences.initialiseExperiencesFx();
202
202
  };
203
203
  //#endregion
204
204
  //#region src/entities/plugin/plugin.ts
205
- function de(e) {
206
- return P(async () => {
205
+ function pe(e) {
206
+ return N(async () => {
207
207
  await e();
208
208
  });
209
209
  }
210
- var fe = (e, t, n) => {
210
+ var me = (e, t, n) => {
211
211
  let r = t.name, i = t.setup(e);
212
212
  if (i) {
213
213
  let e = n[r] ?? {};
@@ -216,29 +216,29 @@ var fe = (e, t, n) => {
216
216
  ...i
217
217
  });
218
218
  }
219
- }, pe = N("component"), me = R(({ client: e, component: t, name: n }) => ({
219
+ }, he = M("component"), ge = 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 he(e) {
225
- return z(me, e);
224
+ function _e(e) {
225
+ return R(ge, e);
226
226
  }
227
- var ge = R(({ client: e }) => {
228
- let t = pe.store({}), n = M(t, { register(e, t) {
227
+ var ve = L(({ client: e }) => {
228
+ let t = he.store({}), n = j(t, { register(e, t) {
229
229
  return {
230
230
  ...e,
231
231
  [t.name]: t
232
232
  };
233
- } }), i = F();
234
- L({
233
+ } }), i = P();
234
+ I({
235
235
  clock: i,
236
236
  source: t,
237
237
  filter: (e, { name: t }) => e[t] !== void 0,
238
238
  fn: (e, { name: t }) => `Component '${t}' already registered. Registering again will override the previous registration.`
239
- }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
239
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
240
240
  clock: i,
241
- fn: ({ name: t, component: n }) => he({
241
+ fn: ({ name: t, component: n }) => _e({
242
242
  client: e,
243
243
  name: t,
244
244
  component: n
@@ -255,27 +255,27 @@ var ge = R(({ client: e }) => {
255
255
  listStore: a
256
256
  };
257
257
  });
258
- function _e(e) {
259
- return z(ge, e);
258
+ function ye(e) {
259
+ return R(ve, e);
260
260
  }
261
- var V = (e, t, n) => {
261
+ var be = (e, t, n) => {
262
262
  n.register({
263
263
  name: e,
264
264
  component: t
265
265
  });
266
- }, ve = N("framework"), ye = R((e) => {
267
- let t = ve.store({}), n = M(t, { register(e, t) {
266
+ }, xe = M("framework"), Se = L((e) => {
267
+ let t = xe.store({}), n = j(t, { register(e, t) {
268
268
  return {
269
269
  ...e,
270
270
  [t.name]: t.framework
271
271
  };
272
- } }), i = F();
273
- L({
272
+ } }), i = P();
273
+ I({
274
274
  clock: i,
275
275
  source: t,
276
276
  filter: (e, { name: t }) => e[t] !== void 0,
277
277
  fn: (e, { name: t }) => `Framework '${t}' already registered. Registering again will override the previous registration.`
278
- }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
278
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
279
279
  clock: i,
280
280
  target: n.register
281
281
  });
@@ -289,106 +289,106 @@ var V = (e, t, n) => {
289
289
  listStore: a
290
290
  };
291
291
  });
292
- function be(e) {
293
- return z(ye, e);
292
+ function Ce(e) {
293
+ return R(Se, e);
294
294
  }
295
- var xe = (e, t) => {
295
+ var we = (e, t) => {
296
296
  t.register({
297
297
  name: e.name,
298
298
  framework: e
299
299
  });
300
- }, Se = R(({ client: e }) => {
300
+ }, Te = 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,
304
304
  sessionStorage: t ? globalThis.sessionStorage : void 0,
305
305
  localStorage: t ? globalThis.localStorage : void 0
306
306
  };
307
- return j(e.responses.listStore, e.fields.listStore, (t, r) => Object.freeze({
307
+ return A(e.responses.listStore, e.fields.listStore, (t, r) => Object.freeze({
308
308
  client: e,
309
309
  responses: t,
310
310
  fields: r,
311
311
  ...n
312
312
  }));
313
313
  });
314
- function Ce(e) {
315
- return z(Se, e);
314
+ function Ee(e) {
315
+ return R(Te, e);
316
316
  }
317
317
  //#endregion
318
318
  //#region src/logic-engine.ts
319
- function we(e) {
319
+ function De(e) {
320
320
  return typeof e == "number" && !isNaN(e);
321
321
  }
322
- function H(e) {
322
+ function B(e) {
323
323
  return typeof e == "string";
324
324
  }
325
- function U(e) {
325
+ function V(e) {
326
326
  return Array.isArray(e);
327
327
  }
328
- function Te(e) {
328
+ function Oe(e) {
329
329
  return e instanceof Promise;
330
330
  }
331
- function Ee(e) {
331
+ function ke(e) {
332
332
  return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
333
333
  }
334
- function W(e) {
335
- if (we(e)) return e;
334
+ function H(e) {
335
+ if (De(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 Ae = {
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 ? H(t) ? t.indexOf(G(e)) !== -1 : U(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) => U(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 = U(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 (!U(n) || !U(t)) return [];
414
- let r = n.filter(H);
415
- return t.filter(H).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) => H(e) && H(t) && e.startsWith(t),
422
- endsWith: (e, t) => H(e) && H(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 (U(e)) {
425
+ if (V(e)) {
426
426
  let [t, i] = e;
427
427
  n = t, r = i;
428
428
  }
429
- return !H(n) || !H(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 (Te(e)) return K(await e, t);
438
- if (U(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 (U(r) || (r = [r]), n) {
437
+ if (Oe(e)) return W(await e, t);
438
+ if (V(e)) return Promise.all(e.map((e) => W(e, t)));
439
+ if (!ke(e)) return e;
440
+ let n = je(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 U(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 U(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 (!U(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 (!U(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 (!U(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 (!U(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 ke(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 ? Ae[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 Te(e) ? q(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
505
+ async function G(e) {
506
+ return Oe(e) ? G(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
507
507
  }
508
- function Oe(e) {
508
+ function je(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 Me(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: Me(e, t, new Set(n).add(i))
520
520
  }) === !0;
521
521
  } });
522
522
  }
523
- var Ae = R(({ client: e }) => A({
523
+ var Ne = L(({ client: e }) => k({
524
524
  source: {
525
525
  stateSnapshot: e.stateSnapshotStore,
526
526
  predicates: e.predicates.listStore,
@@ -557,149 +557,149 @@ var Ae = R(({ client: e }) => A({
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: Me(a, d, /* @__PURE__ */ new Set())
563
563
  });
564
564
  }
565
565
  }));
566
- function je(e) {
567
- return z(Ae, e);
566
+ function Pe(e) {
567
+ return R(Ne, e);
568
568
  }
569
569
  //#endregion
570
570
  //#region src/ping.ts
571
- var Me = 6e3, Ne = k("last_ping", "global"), Pe = async (e) => {
571
+ var Fe = 6e3, Ie = O("last_ping", "global"), Le = async (e) => {
572
572
  try {
573
- let t = Date.now(), n = D.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(Ie), r = 0;
574
+ if (n.isSet() && (r = n.json() ?? 0), r && t - r < Fe) 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 ee(e.apiUrl, "ping", i, a)).ok;
580
+ let s = (await te(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 = N("lifecycle"), Fe = R(({ client: e }) => {
586
- let t = J.store(!1), r = I(void 0, {
585
+ }, K = M("lifecycle"), Re = L(({ client: e }) => {
586
+ let t = K.store(!1), r = F(void 0, {
587
587
  skipVoid: !1,
588
- domain: J
589
- }), i = I(void 0, {
588
+ domain: K
589
+ }), i = F(void 0, {
590
590
  skipVoid: !1,
591
- domain: J
592
- }), a = J.store("idle"), o = J.store([]), s = I(void 0, {
591
+ domain: K
592
+ }), a = K.store("idle"), o = K.store([]), s = F(void 0, {
593
593
  skipVoid: !1,
594
- domain: J
595
- }), l = I(void 0, {
594
+ domain: K
595
+ }), l = F(void 0, {
596
596
  skipVoid: !1,
597
- domain: J
598
- }), u = F(), d = F(), f = F(), p = F(), m = F(), h = F();
597
+ domain: K
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
- let g = P(() => {
601
- Pe(e);
602
- }), _ = P(async () => {
603
- await y();
604
- }), v = P(async () => {
605
- await ue(e);
606
- }), b = A({ effect: v }), x = A({
600
+ let g = N(() => {
601
+ Le(e);
602
+ }), _ = N(async () => {
603
+ await ee();
604
+ }), v = N(async () => {
605
+ await fe(e);
606
+ }), y = k({ effect: v }), b = k({
607
607
  source: o,
608
608
  effect: async (e) => {
609
609
  for (let t of e) await t();
610
610
  }
611
- }), S = A({
611
+ }), x = k({
612
612
  source: s,
613
613
  effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
614
- }), C = A({
614
+ }), S = k({
615
615
  source: l,
616
616
  effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
617
- }), w = L({
617
+ }), C = I({
618
618
  clock: u,
619
619
  source: a,
620
620
  filter: (e) => e === "idle" && c(),
621
621
  fn: () => void 0
622
622
  });
623
- L({
624
- clock: w,
623
+ I({
624
+ clock: C,
625
625
  fn: () => "starting",
626
626
  target: a
627
- }), L({
628
- clock: w,
627
+ }), I({
628
+ clock: C,
629
629
  target: g
630
- }), L({
631
- clock: w,
632
- target: x
633
- }), L({
634
- clock: w,
630
+ }), I({
631
+ clock: C,
632
+ target: b
633
+ }), I({
634
+ clock: C,
635
635
  target: _
636
- }), L({
637
- clock: x.done,
638
- target: S
639
- }), L({
640
- clock: S.doneData,
636
+ }), I({
637
+ clock: b.done,
638
+ target: x
639
+ }), I({
640
+ clock: x.doneData,
641
641
  target: r
642
- }), L({
643
- clock: C.doneData,
644
- target: i
645
- }), L({
642
+ }), I({
646
643
  clock: S.doneData,
644
+ target: i
645
+ }), I({
646
+ clock: x.doneData,
647
647
  filter: (e) => e,
648
- target: C
649
- }), L({
650
- clock: C.doneData,
648
+ target: S
649
+ }), I({
650
+ clock: S.doneData,
651
651
  target: e.session.setIsUser
652
- }), L({
653
- clock: C.doneData,
652
+ }), I({
653
+ clock: S.doneData,
654
654
  fn: (e) => ({
655
655
  type: "user_decide",
656
656
  value: e
657
657
  }),
658
658
  target: e.eventBus
659
- }), L({
660
- clock: S.doneData,
659
+ }), I({
660
+ clock: x.doneData,
661
661
  filter: (e) => !e,
662
662
  fn: () => void 0,
663
663
  target: f
664
- }), L({
665
- clock: C.doneData,
664
+ }), I({
665
+ clock: S.doneData,
666
666
  fn: () => void 0,
667
667
  target: f
668
- }), L({
668
+ }), I({
669
669
  clock: f,
670
670
  fn: () => ({ type: "initialize" }),
671
671
  target: e.eventBus
672
672
  });
673
- let T = I(!1).on(_.done, () => !0), E = I(!1).on(f, () => !0), D = I(!1).on(b.done, () => !0), O = j(r, i, (e, t) => e === !0 && t === !0);
674
- L({
673
+ let w = F(!1).on(_.done, () => !0), T = F(!1).on(f, () => !0), E = F(!1).on(y.done, () => !0), D = A(r, i, (e, t) => e === !0 && t === !0);
674
+ I({
675
675
  clock: f,
676
- source: O,
676
+ source: D,
677
677
  filter: (e) => e,
678
678
  fn: () => void 0,
679
679
  target: v
680
680
  });
681
- let k = j(T, E, O, (e, t, n) => e && t && n);
682
- L({
683
- clock: k,
681
+ let O = A(w, T, D, (e, t, n) => e && t && n);
682
+ I({
683
+ clock: O,
684
684
  filter: (e) => e,
685
685
  fn: () => void 0,
686
- target: b
686
+ target: y
687
687
  });
688
- let ee = j(T, E, O, D, (e, t, n, r) => e && t && (!n || r));
689
- return L({
690
- clock: ee,
688
+ let te = A(w, T, D, E, (e, t, n, r) => e && t && (!n || r));
689
+ return I({
690
+ clock: te,
691
691
  filter: (e) => e,
692
692
  fn: () => void 0,
693
693
  target: d
694
- }), L({
694
+ }), I({
695
695
  clock: d,
696
696
  fn: () => "ready",
697
697
  target: a
698
- }), L({
698
+ }), I({
699
699
  clock: d,
700
700
  fn: () => ({ type: "ready" }),
701
701
  target: e.eventBus
702
- }), L({
702
+ }), I({
703
703
  clock: d,
704
704
  source: e.session.store,
705
705
  fn: ({ id: e, isUser: t, identifiers: n }) => ({
@@ -709,13 +709,13 @@ var Me = 6e3, Ne = k("last_ping", "global"), Pe = async (e) => {
709
709
  identifiers: n
710
710
  }),
711
711
  target: e.eventBus
712
- }), L({
712
+ }), I({
713
713
  clock: [
714
+ b.fail,
714
715
  x.fail,
715
716
  S.fail,
716
- C.fail,
717
717
  v.fail,
718
- b.fail,
718
+ y.fail,
719
719
  _.fail
720
720
  ],
721
721
  fn: () => "failed",
@@ -731,13 +731,13 @@ var Me = 6e3, Ne = k("last_ping", "global"), Pe = async (e) => {
731
731
  setCondition: h
732
732
  };
733
733
  });
734
- function Ie(e) {
735
- return z(Fe, e);
734
+ function ze(e) {
735
+ return R(Re, e);
736
736
  }
737
737
  //#endregion
738
738
  //#region src/entities/predicate/predicate.ts
739
- var Le = N("predicate"), Re = R(({ client: e }) => {
740
- let t = Le.store({}), n = M(t, { register(e, t) {
739
+ var Be = M("predicate"), Ve = L(({ client: e }) => {
740
+ let t = Be.store({}), n = j(t, { register(e, t) {
741
741
  return {
742
742
  ...e,
743
743
  [t.name]: {
@@ -745,13 +745,13 @@ var Le = N("predicate"), Re = R(({ client: e }) => {
745
745
  predicate: t.predicate
746
746
  }
747
747
  };
748
- } }), i = F();
749
- L({
748
+ } }), i = P();
749
+ I({
750
750
  clock: i,
751
751
  source: t,
752
752
  filter: (e, { name: t }) => e[t] !== void 0,
753
753
  fn: (e, { name: t }) => `Predicate '${t}' already registered. Registering again will override the previous registration.`
754
- }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
754
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
755
755
  clock: i,
756
756
  fn: ({ name: e, predicate: t }) => Object.freeze({
757
757
  name: e,
@@ -764,7 +764,7 @@ var Le = N("predicate"), Re = R(({ client: e }) => {
764
764
  return t.map((t) => t[e]?.predicate, { skipVoid: !1 });
765
765
  }
766
766
  function s(t) {
767
- let n = I(() => void 0, { skipVoid: !1 }), r = A({
767
+ let n = F(() => void 0, { skipVoid: !1 }), r = k({
768
768
  source: {
769
769
  predicate: o(t),
770
770
  snapshot: e.stateSnapshotStore
@@ -776,13 +776,13 @@ var Le = N("predicate"), Re = R(({ client: e }) => {
776
776
  });
777
777
  }
778
778
  });
779
- return L({
779
+ return I({
780
780
  source: {
781
781
  responses: e.responses.listStore,
782
782
  fields: e.fields.listStore
783
783
  },
784
784
  target: r
785
- }), L({
785
+ }), I({
786
786
  clock: r.doneData,
787
787
  filter: (e) => e !== void 0,
788
788
  target: n
@@ -795,34 +795,34 @@ var Le = N("predicate"), Re = R(({ client: e }) => {
795
795
  getEvokablePredicate: s
796
796
  };
797
797
  });
798
- function ze(e) {
799
- return z(Re, e);
798
+ function He(e) {
799
+ return R(Ve, e);
800
800
  }
801
- var Be = (e, t, n) => {
801
+ var Ue = (e, t, n) => {
802
802
  n.register({
803
803
  name: e,
804
804
  predicate: t
805
805
  });
806
- }, Ve = N("feature");
807
- function Y(e) {
806
+ }, We = M("feature");
807
+ function q(e) {
808
808
  return e?.enabled === !1;
809
809
  }
810
- function He(e) {
810
+ function Ge(e) {
811
811
  return e === "true" || e !== "false" && e;
812
812
  }
813
- var Ue = R(({ client: e }) => {
814
- let t = Ve.store({}), n = Ve.store([]), i = M(t, { register(e, t) {
813
+ var Ke = L(({ client: e }) => {
814
+ let t = We.store({}), n = We.store([]), i = j(t, { register(e, t) {
815
815
  return {
816
816
  ...e,
817
817
  [t.id]: t.feature
818
818
  };
819
- } }), a = F();
820
- L({
819
+ } }), a = P();
820
+ I({
821
821
  clock: a,
822
822
  source: t,
823
823
  filter: (e, { id: t }) => e[t] !== void 0,
824
824
  fn: (e, { id: t }) => `Feature '${t}' already registered. Registering again will override the previous registration.`
825
- }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
825
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
826
826
  clock: a,
827
827
  fn: ({ id: e, feature: t }) => Object.freeze({
828
828
  id: e,
@@ -836,20 +836,20 @@ var Ue = R(({ client: e }) => {
836
836
  }),
837
837
  target: i.register
838
838
  });
839
- let o = P(async ({ id: e, key: t, storage: n = "local", enabled: r }) => {
839
+ let o = N(async ({ id: e, key: t, storage: n = "local", enabled: r }) => {
840
840
  if (r === !1) return null;
841
- let i = k(`feature:${e}:${t}`, "global"), a = (n === "session" ? O : D).get(i).text();
841
+ let i = O(`feature:${e}:${t}`, "global"), a = (n === "session" ? D : E).get(i).text();
842
842
  return a ? {
843
843
  id: e,
844
844
  key: t,
845
- bucket: He(a),
845
+ bucket: Ge(a),
846
846
  storage: n
847
847
  } : null;
848
- }), s = P((e) => {
848
+ }), s = N((e) => {
849
849
  if (!e) return null;
850
- let t = k(`feature:${e.id}:${e.key}`, "global");
851
- (e.storage === "session" ? O : D).set(t, e.bucket);
852
- }), c = /* @__PURE__ */ new Map(), l = A({
850
+ let t = O(`feature:${e.id}:${e.key}`, "global");
851
+ (e.storage === "session" ? D : E).set(t, e.bucket);
852
+ }), c = /* @__PURE__ */ new Map(), l = k({
853
853
  source: {
854
854
  allFeaturesStore: t,
855
855
  resolvedFeaturesStore: n
@@ -859,7 +859,7 @@ var Ue = R(({ 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,
@@ -886,7 +886,7 @@ var Ue = R(({ client: e }) => {
886
886
  };
887
887
  }
888
888
  });
889
- L({
889
+ I({
890
890
  clock: i.register,
891
891
  fn: (e) => {
892
892
  let { id: t, feature: n } = e;
@@ -898,10 +898,10 @@ var Ue = R(({ client: e }) => {
898
898
  };
899
899
  },
900
900
  target: o
901
- }), L({
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 ? {
@@ -913,7 +913,7 @@ var Ue = R(({ client: e }) => {
913
913
  },
914
914
  target: s
915
915
  });
916
- let u = j({
916
+ let u = A({
917
917
  allFeaturesStore: t,
918
918
  resolvedFeaturesStore: n
919
919
  }).map(({ allFeaturesStore: e, resolvedFeaturesStore: t }) => Object.values(e).map((e) => {
@@ -939,25 +939,25 @@ var Ue = R(({ client: e }) => {
939
939
  isResolved: !1
940
940
  };
941
941
  }));
942
- L({
942
+ I({
943
943
  clock: l.doneData,
944
944
  source: {
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",
952
952
  feature: e
953
953
  }))
954
- }), L({
954
+ }), I({
955
955
  clock: [o.doneData, l.doneData],
956
956
  source: {
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) {
@@ -974,16 +974,16 @@ var Ue = R(({ client: e }) => {
974
974
  return t.map((t) => t[e], { skipVoid: !1 });
975
975
  }
976
976
  function _(e) {
977
- let t = I(async () => void 0, { skipVoid: !1 }), n = h(e), r = A({
977
+ let t = F(async () => void 0, { skipVoid: !1 }), n = h(e), r = k({
978
978
  source: n,
979
979
  effect: async (e) => {
980
980
  if (e) return async () => (await e.getBucket()).bucket;
981
981
  }
982
982
  });
983
- return L({
983
+ return I({
984
984
  clock: n,
985
985
  target: r
986
- }), L({
986
+ }), I({
987
987
  clock: r.doneData,
988
988
  filter: (e) => e !== void 0,
989
989
  target: t
@@ -995,13 +995,13 @@ var Ue = R(({ client: e }) => {
995
995
  let n = _(e);
996
996
  return p.set(e, n), n;
997
997
  }
998
- function y(e) {
999
- let t = v(e), n = I(void 0, { skipVoid: !1 }), r = A({
998
+ function ee(e) {
999
+ let t = v(e), n = F(void 0, { skipVoid: !1 }), r = k({
1000
1000
  source: t,
1001
1001
  mapParams: (e, t) => t,
1002
- effect: P(async (e) => await e())
1002
+ effect: N(async (e) => await e())
1003
1003
  });
1004
- return L({
1004
+ return I({
1005
1005
  clock: r.doneData,
1006
1006
  fn: (t) => {
1007
1007
  if (t !== void 0) return {
@@ -1010,15 +1010,15 @@ var Ue = R(({ client: e }) => {
1010
1010
  };
1011
1011
  },
1012
1012
  target: n
1013
- }), L({
1013
+ }), I({
1014
1014
  clock: t,
1015
1015
  target: r
1016
1016
  }), r(), n;
1017
1017
  }
1018
- function b(e) {
1018
+ function y(e) {
1019
1019
  let t = m.get(e);
1020
1020
  if (t) return t;
1021
- let n = y(e);
1021
+ let n = ee(e);
1022
1022
  return m.set(e, n), n;
1023
1023
  }
1024
1024
  return {
@@ -1027,29 +1027,29 @@ var Ue = R(({ client: e }) => {
1027
1027
  getByName: g,
1028
1028
  listStore: u,
1029
1029
  getEvokableFeature: v,
1030
- getFeatureResult: b
1030
+ getFeatureResult: y
1031
1031
  };
1032
1032
  });
1033
- function We(e) {
1034
- return z(Ue, e);
1033
+ function qe(e) {
1034
+ return R(Ke, e);
1035
1035
  }
1036
- var Ge = (e, t, n) => {
1036
+ var Je = (e, t, n) => {
1037
1037
  n.register({
1038
1038
  id: e,
1039
1039
  feature: t
1040
1040
  });
1041
- }, X = N("history");
1042
- function Ke(e, t) {
1041
+ }, J = M("history");
1042
+ function Ye(e, t) {
1043
1043
  return {
1044
- id: ne(`history-entry-${Date.now()}-${Math.random()}}`),
1044
+ id: re(`history-entry-${Date.now()}-${Math.random()}}`),
1045
1045
  node: t,
1046
1046
  at: Date.now(),
1047
1047
  experienceId: e
1048
1048
  };
1049
1049
  }
1050
- var qe = R(() => {
1051
- let e = X.store({ entries: [] }), t = X.event(), n = X.event(), r = X.event(), i = X.event();
1052
- 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);
1050
+ var Xe = L(() => {
1051
+ let e = J.store({ entries: [] }), t = J.event(), n = J.event(), r = J.event(), i = J.event();
1052
+ e.on(t, (e, t) => ({ entries: [...e.entries, Ye(t.experienceId, t.node)] })), e.on(n, (e, t) => ({ entries: [...e.entries.slice(0, -1), Ye(t.experienceId, t.node)] })), e.on(i, (e, t) => t);
1053
1053
  function a(e, t) {
1054
1054
  let n = {
1055
1055
  lastStepIndex: -1,
@@ -1057,7 +1057,7 @@ var qe = R(() => {
1057
1057
  };
1058
1058
  for (let r = e.length - 1; r >= 0; r--) {
1059
1059
  let i = e[r], a = i?.node;
1060
- if (!(!a || !T(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
1060
+ if (!(!a || !w(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
1061
1061
  else {
1062
1062
  n.secondLastStepIndex = r;
1063
1063
  break;
@@ -1079,20 +1079,20 @@ var qe = R(() => {
1079
1079
  entriesStore: e.map((e) => e.entries)
1080
1080
  };
1081
1081
  });
1082
- function Je() {
1083
- return z(qe);
1082
+ function Ze() {
1083
+ return R(Xe);
1084
1084
  }
1085
1085
  //#endregion
1086
1086
  //#region src/utils/events.ts
1087
- var Ye = 0, Xe = (e) => {
1088
- let t = I([]);
1087
+ var Qe = 0, $e = (e) => {
1088
+ let t = F([]);
1089
1089
  return t.on(e, (e, t) => [...e, {
1090
- id: Ye++,
1090
+ id: Qe++,
1091
1091
  at: /* @__PURE__ */ new Date(),
1092
1092
  payload: t
1093
1093
  }]), t;
1094
- }, Ze = N("field"), Qe = R(() => {
1095
- let e = Ze.store({}), t = M(e, {
1094
+ }, et = M("field"), tt = L(() => {
1095
+ let e = et.store({}), t = j(e, {
1096
1096
  register(e, t) {
1097
1097
  return {
1098
1098
  ...e,
@@ -1140,13 +1140,13 @@ var Ye = 0, Xe = (e) => {
1140
1140
  getByName: c
1141
1141
  };
1142
1142
  });
1143
- function $e() {
1144
- return z(Qe);
1143
+ function nt() {
1144
+ return R(tt);
1145
1145
  }
1146
1146
  //#endregion
1147
1147
  //#region src/entities/step/step.ts
1148
- var et = N("step"), tt = R(() => {
1149
- let e = et.store({}), t = M(e, { register(e, t) {
1148
+ var rt = M("step"), it = L(() => {
1149
+ let e = rt.store({}), t = j(e, { register(e, t) {
1150
1150
  return {
1151
1151
  ...e,
1152
1152
  [t.step.id]: t.step
@@ -1170,16 +1170,16 @@ var et = N("step"), tt = R(() => {
1170
1170
  indexStore: e
1171
1171
  };
1172
1172
  });
1173
- function nt() {
1174
- return z(tt);
1173
+ function at() {
1174
+ return R(it);
1175
1175
  }
1176
- function rt(e, t) {
1176
+ function ot(e, t) {
1177
1177
  t.register(e);
1178
1178
  }
1179
1179
  //#endregion
1180
1180
  //#region src/entities/content/content.ts
1181
- var it = N("content"), at = R(() => {
1182
- let e = it.store({}), t = M(e, {
1181
+ var st = M("content"), ct = L(() => {
1182
+ let e = st.store({}), t = j(e, {
1183
1183
  register(e, t) {
1184
1184
  return {
1185
1185
  ...e,
@@ -1220,16 +1220,16 @@ var it = N("content"), at = R(() => {
1220
1220
  indexStore: e
1221
1221
  };
1222
1222
  });
1223
- function ot() {
1224
- return z(at);
1223
+ function lt() {
1224
+ return R(ct);
1225
1225
  }
1226
- function st(e, t) {
1226
+ function ut(e, t) {
1227
1227
  t.register(e);
1228
1228
  }
1229
1229
  //#endregion
1230
1230
  //#region src/entities/action/action.ts
1231
- var ct = N("action"), lt = R(({ client: e }) => {
1232
- let t = ct.store({}), n = M(t, { register(e, t) {
1231
+ var dt = M("action"), ft = L(({ client: e }) => {
1232
+ let t = dt.store({}), n = j(t, { register(e, t) {
1233
1233
  return {
1234
1234
  ...e,
1235
1235
  [t.key]: {
@@ -1237,13 +1237,13 @@ var ct = N("action"), lt = R(({ client: e }) => {
1237
1237
  action: t.action
1238
1238
  }
1239
1239
  };
1240
- } }), i = F();
1241
- L({
1240
+ } }), i = P();
1241
+ I({
1242
1242
  clock: i,
1243
1243
  source: t,
1244
1244
  filter: (e, { key: t }) => e[t] !== void 0,
1245
1245
  fn: (e, { key: t }) => `Action '${t}' already registered. Registering again will override the previous registration.`
1246
- }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
1246
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
1247
1247
  clock: i,
1248
1248
  fn: ({ key: e, action: t }) => Object.freeze({
1249
1249
  key: e,
@@ -1256,7 +1256,7 @@ var ct = N("action"), lt = R(({ client: e }) => {
1256
1256
  return t.map((t) => t[e]?.action, { skipVoid: !1 });
1257
1257
  }
1258
1258
  function s(t, n) {
1259
- let r = I(() => void 0, { skipVoid: !1 }), i = n ? { experience: n.experience } : null, a = A({
1259
+ let r = F(() => void 0, { skipVoid: !1 }), i = n ? { experience: n.experience } : null, a = k({
1260
1260
  source: {
1261
1261
  action: o(t),
1262
1262
  snapshot: e.stateSnapshotStore
@@ -1268,13 +1268,13 @@ var ct = N("action"), lt = R(({ client: e }) => {
1268
1268
  }, i);
1269
1269
  }
1270
1270
  });
1271
- return L({
1271
+ return I({
1272
1272
  source: {
1273
1273
  responses: e.responses.listStore,
1274
1274
  fields: e.fields.listStore
1275
1275
  },
1276
1276
  target: a
1277
- }), L({
1277
+ }), I({
1278
1278
  clock: a.doneData,
1279
1279
  filter: (e) => e !== void 0,
1280
1280
  target: r
@@ -1287,10 +1287,10 @@ var ct = N("action"), lt = R(({ client: e }) => {
1287
1287
  getEvokableAction: s
1288
1288
  };
1289
1289
  });
1290
- function ut(e) {
1291
- return z(lt, e);
1290
+ function pt(e) {
1291
+ return R(ft, e);
1292
1292
  }
1293
- var dt = (e, t, n) => {
1293
+ var mt = (e, t, n) => {
1294
1294
  n.register({
1295
1295
  key: e,
1296
1296
  action: t
@@ -1298,7 +1298,7 @@ var dt = (e, t, n) => {
1298
1298
  };
1299
1299
  //#endregion
1300
1300
  //#region src/entities/response/response-validation.ts
1301
- function Z(e, t, n, r) {
1301
+ function Y(e, t, n, r) {
1302
1302
  return {
1303
1303
  fieldKey: e.key,
1304
1304
  userMessage: n,
@@ -1306,62 +1306,62 @@ function Z(e, t, n, r) {
1306
1306
  value: t
1307
1307
  };
1308
1308
  }
1309
- function Q(e) {
1309
+ function X(e) {
1310
1310
  return e === null || e === "" || Array.isArray(e) && !e.length;
1311
1311
  }
1312
- function ft(e) {
1312
+ function ht(e) {
1313
1313
  return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
1314
1314
  }
1315
- function pt(e) {
1315
+ function gt(e) {
1316
1316
  try {
1317
1317
  return JSON.stringify(e), !0;
1318
1318
  } catch {
1319
1319
  return !1;
1320
1320
  }
1321
1321
  }
1322
- function mt(e, t) {
1322
+ function _t(e, t) {
1323
1323
  return t.find((t) => t.key === e) ?? null;
1324
1324
  }
1325
- function ht(e, t) {
1325
+ function vt(e, t) {
1326
1326
  return e.multiple && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") ? [t] : t;
1327
1327
  }
1328
- function gt(e, t) {
1329
- if (e.type !== "object" || Q(t)) return null;
1328
+ function yt(e, t) {
1329
+ if (e.type !== "object" || X(t)) return null;
1330
1330
  if (e.multiple) {
1331
- if (!Array.isArray(t)) return Z(e, t, "This field expects multiple values", "Field expects an array of objects.");
1331
+ if (!Array.isArray(t)) return Y(e, t, "This field expects multiple values", "Field expects an array of objects.");
1332
1332
  for (let n of t) {
1333
- 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.");
1334
- if (!pt(n)) return Z(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
1333
+ if (typeof n != "object" || !n) return Y(e, t, "This field expects object values", "Field expects an array of objects, but received non-object value.");
1334
+ if (!gt(n)) return Y(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
1335
1335
  }
1336
1336
  return null;
1337
1337
  }
1338
- 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.).");
1338
+ return Array.isArray(t) ? Y(e, t, "This field expects a single value", "Field expects a single object, not an array.") : typeof t != "object" || !t ? Y(e, t, "This field expects an object value", "Field expects an object value.") : gt(t) ? null : Y(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
1339
1339
  }
1340
- function _t(e, t) {
1341
- if (Q(t) || !Array.isArray(e.options) || e.options.length === 0) return null;
1340
+ function bt(e, t) {
1341
+ if (X(t) || !Array.isArray(e.options) || e.options.length === 0) return null;
1342
1342
  let n = Array.isArray(t) ? t : [t];
1343
1343
  if (e.type === "object") {
1344
1344
  let r = new Set(e.options.map((e) => JSON.stringify(e.value)));
1345
- 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.");
1345
+ return n.every((e) => r.has(JSON.stringify(e))) ? null : Y(e, t, "This field expects a valid option", "Field expects a valid option from the defined choices.");
1346
1346
  }
1347
1347
  let r = e.options.map((e) => e.value);
1348
- 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(", ")}`);
1348
+ return n.every((e) => !ht(e) || e === null ? !1 : r.includes(e)) ? null : Y(e, t, "This field expects a valid option", `Field expects a valid option. Valid options are: ${r.join(", ")}`);
1349
1349
  }
1350
- async function vt(t, n, r, i) {
1351
- if (n.validation && !e(n.validation) && !Q(r)) {
1350
+ async function xt(t, n, r, i) {
1351
+ if (n.validation && !e(n.validation) && !X(r)) {
1352
1352
  let e = i ? {
1353
1353
  $input: r,
1354
1354
  responses: i
1355
1355
  } : { $input: r }, a = await t(n.validation, e);
1356
- if (typeof a == "string") return Z(n, r, a, `Field validation resulted in an error: ${a}.`);
1357
- if (a === !1) return Z(n, r, "This field is invalid", "Field validation resulted in an unspecified error.");
1356
+ if (typeof a == "string") return Y(n, r, a, `Field validation resulted in an error: ${a}.`);
1357
+ if (a === !1) return Y(n, r, "This field is invalid", "Field validation resulted in an unspecified error.");
1358
1358
  }
1359
- return n.required && Q(r) ? Z(n, r, "This field is required", "Field is required.") : !n.multiple && Array.isArray(r) && r.length > 1 ? Z(n, r, "This field expects a single response", "Field expects a single response.") : null;
1359
+ return n.required && X(r) ? Y(n, r, "This field is required", "Field is required.") : !n.multiple && Array.isArray(r) && r.length > 1 ? Y(n, r, "This field expects a single response", "Field expects a single response.") : null;
1360
1360
  }
1361
1361
  //#endregion
1362
1362
  //#region src/entities/response/response.ts
1363
- var yt = N("response"), bt = R(({ client: e }) => {
1364
- let t = yt.store({}), r = F(), i = F(), a = M(t, {
1363
+ var St = M("response"), Ct = L(({ client: e }) => {
1364
+ let t = St.store({}), r = P(), i = P(), a = j(t, {
1365
1365
  register(e, t) {
1366
1366
  return {
1367
1367
  ...e,
@@ -1390,7 +1390,7 @@ var yt = N("response"), bt = R(({ client: e }) => {
1390
1390
  });
1391
1391
  } else a.registerBatch(e);
1392
1392
  }
1393
- let s = (t, r) => n(e, t, r), c = A({
1393
+ let s = (t, r) => n(e, t, r), c = k({
1394
1394
  source: {
1395
1395
  allFields: e.fields.listStore,
1396
1396
  existingResponses: t
@@ -1400,7 +1400,7 @@ var yt = N("response"), bt = R(({ client: e }) => {
1400
1400
  ...t,
1401
1401
  ...n
1402
1402
  }, o = Object.entries(n), c = await Promise.allSettled(o.map(async ([t, n]) => {
1403
- let o = mt(t, e);
1403
+ let o = _t(t, e);
1404
1404
  if (!o) {
1405
1405
  r.push({
1406
1406
  fieldKey: t,
@@ -1410,17 +1410,17 @@ var yt = N("response"), bt = R(({ client: e }) => {
1410
1410
  });
1411
1411
  return;
1412
1412
  }
1413
- let c = ht(o, n), l = await vt(s, o, c, a);
1413
+ let c = vt(o, n), l = await xt(s, o, c, a);
1414
1414
  if (l) {
1415
1415
  r.push(l);
1416
1416
  return;
1417
1417
  }
1418
- let u = gt(o, c);
1418
+ let u = yt(o, c);
1419
1419
  if (u) {
1420
1420
  r.push(u);
1421
1421
  return;
1422
1422
  }
1423
- let d = _t(o, c);
1423
+ let d = bt(o, c);
1424
1424
  if (d) {
1425
1425
  r.push(d);
1426
1426
  return;
@@ -1448,7 +1448,7 @@ var yt = N("response"), bt = R(({ client: e }) => {
1448
1448
  async function l(e) {
1449
1449
  return c(e);
1450
1450
  }
1451
- let u = A({
1451
+ let u = k({
1452
1452
  source: t,
1453
1453
  effect: async (e, t) => {
1454
1454
  let { responsesToCommit: n, validationErrors: r } = await c(t);
@@ -1463,7 +1463,7 @@ var yt = N("response"), bt = R(({ client: e }) => {
1463
1463
  value: t
1464
1464
  })));
1465
1465
  function m(e) {
1466
- return j({
1466
+ return A({
1467
1467
  f: e,
1468
1468
  s: t
1469
1469
  }, ({ f: e, s: t }) => {
@@ -1480,10 +1480,10 @@ var yt = N("response"), bt = R(({ client: e }) => {
1480
1480
  function _(t) {
1481
1481
  return m(e.fields.getByName(t));
1482
1482
  }
1483
- return L({
1483
+ return I({
1484
1484
  clock: r,
1485
1485
  target: a.clearAll
1486
- }), L({
1486
+ }), I({
1487
1487
  clock: i,
1488
1488
  target: a.clear
1489
1489
  }), {
@@ -1499,13 +1499,13 @@ var yt = N("response"), bt = R(({ client: e }) => {
1499
1499
  getByFieldName: _
1500
1500
  };
1501
1501
  });
1502
- function xt(e) {
1503
- return z(bt, e);
1502
+ function wt(e) {
1503
+ return R(Ct, e);
1504
1504
  }
1505
1505
  //#endregion
1506
1506
  //#region src/entities/condition/condition.ts
1507
- var St = N("condition"), Ct = R(() => {
1508
- let e = St.store({}), t = M(e, { register(e, t) {
1507
+ var Tt = M("condition"), Et = L(() => {
1508
+ let e = Tt.store({}), t = j(e, { register(e, t) {
1509
1509
  return {
1510
1510
  ...e,
1511
1511
  [t.condition.id]: t.condition
@@ -1529,12 +1529,12 @@ var St = N("condition"), Ct = R(() => {
1529
1529
  indexStore: e
1530
1530
  };
1531
1531
  });
1532
- function wt() {
1533
- return z(Ct);
1532
+ function Dt() {
1533
+ return R(Et);
1534
1534
  }
1535
1535
  //#endregion
1536
1536
  //#region src/utils/api-url.ts
1537
- function Tt() {
1537
+ function Ot() {
1538
1538
  if (c()) {
1539
1539
  let e = [
1540
1540
  document.currentScript,
@@ -1549,7 +1549,7 @@ function Tt() {
1549
1549
  }
1550
1550
  //#endregion
1551
1551
  //#region src/utils/search-params.ts
1552
- function Et() {
1552
+ function kt() {
1553
1553
  if (!s()) return {};
1554
1554
  let e = new URLSearchParams(window.location.search), t = {}, n = /* @__PURE__ */ new Set();
1555
1555
  for (let [t] of e.entries()) t.startsWith("picked-") && n.add(t);
@@ -1557,23 +1557,23 @@ function Et() {
1557
1557
  let n = r.replace("picked-", "");
1558
1558
  t[n] = e.getAll(r);
1559
1559
  }
1560
- let r = k("s");
1561
- if (n.size > 0) O.set(r, t);
1560
+ let r = O("s");
1561
+ if (n.size > 0) D.set(r, t);
1562
1562
  else {
1563
- let e = O.get(r);
1563
+ let e = D.get(r);
1564
1564
  if (e) return e.json() || {};
1565
1565
  }
1566
1566
  return t;
1567
1567
  }
1568
1568
  //#endregion
1569
1569
  //#region src/entities/session/session.ts
1570
- var Dt = k("session", "global");
1571
- function Ot() {
1570
+ var At = O("session", "global");
1571
+ function jt() {
1572
1572
  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)}`;
1573
1573
  }
1574
- function kt() {
1574
+ function Mt() {
1575
1575
  if (!m()) return null;
1576
- let e = D.get(Dt);
1576
+ let e = E.get(At);
1577
1577
  if (!e.isSet()) return null;
1578
1578
  try {
1579
1579
  return e.json();
@@ -1581,10 +1581,10 @@ function kt() {
1581
1581
  return null;
1582
1582
  }
1583
1583
  }
1584
- var At = R(() => {
1585
- let e = kt(), t = { id: e?.id ?? Ot() };
1584
+ var Nt = L(() => {
1585
+ let e = Mt(), t = { id: e?.id ?? jt() };
1586
1586
  e?.isUser !== void 0 && (t.isUser = e.isUser), e?.identifiers && Object.keys(e.identifiers).length > 0 && (t.identifiers = e.identifiers);
1587
- let n = I(t), r = M(n, {
1587
+ let n = F(t), r = j(n, {
1588
1588
  setIsUser: (e, t) => ({
1589
1589
  ...e,
1590
1590
  isUser: t
@@ -1604,15 +1604,15 @@ var At = R(() => {
1604
1604
  let i = { id: e.id };
1605
1605
  return e.isUser !== void 0 && (i.isUser = e.isUser), Object.keys(r).length > 0 && (i.identifiers = r), i;
1606
1606
  }
1607
- }), i = A({
1607
+ }), i = k({
1608
1608
  source: n,
1609
1609
  effect: (e) => {
1610
1610
  if (m()) try {
1611
- D.get(Dt).set(e);
1611
+ E.get(At).set(e);
1612
1612
  } catch {}
1613
1613
  }
1614
1614
  });
1615
- return L({
1615
+ return I({
1616
1616
  source: n,
1617
1617
  target: i
1618
1618
  }), {
@@ -1622,39 +1622,39 @@ var At = R(() => {
1622
1622
  removeIdentifier: r.removeIdentifier
1623
1623
  };
1624
1624
  });
1625
- function jt() {
1626
- return z(At, void 0);
1625
+ function Pt() {
1626
+ return R(Nt, void 0);
1627
1627
  }
1628
1628
  //#endregion
1629
1629
  //#region src/utils/picked-config.ts
1630
- function Mt() {
1630
+ function Ft() {
1631
1631
  if (s()) return globalThis.window.pickedConfig;
1632
1632
  }
1633
- function Nt() {
1634
- if (s()) return Mt()?.projectId;
1633
+ function It() {
1634
+ if (s()) return Ft()?.projectId;
1635
1635
  }
1636
- function Pt() {
1636
+ function Lt() {
1637
1637
  if (!c()) return;
1638
1638
  let e = document.getElementById("picked_script") || document.querySelector("script#picked") || document.getElementById("cvly");
1639
1639
  if (e) return e.dataset.projectid || e.getAttribute("project-id") || void 0;
1640
1640
  }
1641
- function Ft(e) {
1641
+ function Rt(e) {
1642
1642
  if (e.projectId) return e.projectId;
1643
- let t = Nt();
1643
+ let t = It();
1644
1644
  if (t) return t;
1645
- let n = Pt();
1645
+ let n = Lt();
1646
1646
  if (n) return n;
1647
1647
  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.");
1648
1648
  }
1649
1649
  //#endregion
1650
1650
  //#region src/utils/render-string.ts
1651
- function $(e) {
1651
+ function Z(e) {
1652
1652
  return e == null || e === "" || Number.isNaN(e);
1653
1653
  }
1654
- var It = {
1655
- default: (e, t) => $(e) ? String(t ?? "") : String(e),
1656
- append: (e, t) => t && !$(e) ? `${e} ${t}` : e,
1657
- prepend: (e, t) => t && !$(e) ? `${t} ${e}` : e,
1654
+ var zt = {
1655
+ default: (e, t) => Z(e) ? String(t ?? "") : String(e),
1656
+ append: (e, t) => t && !Z(e) ? `${e} ${t}` : e,
1657
+ prepend: (e, t) => t && !Z(e) ? `${t} ${e}` : e,
1658
1658
  upper: (e) => typeof e == "string" ? e.toUpperCase() : e,
1659
1659
  lower: (e) => typeof e == "string" ? e.toLowerCase() : e,
1660
1660
  capitalize: (e) => typeof e == "string" ? e.charAt(0).toUpperCase() + e.slice(1) : e,
@@ -1672,24 +1672,24 @@ var It = {
1672
1672
  return e instanceof Set ? t.format(Array.from(e).map(String)) : e;
1673
1673
  }
1674
1674
  };
1675
- function Lt(e) {
1675
+ function Bt(e) {
1676
1676
  return typeof e == "object" && !!e;
1677
1677
  }
1678
- function Rt(e, t) {
1678
+ function Vt(e, t) {
1679
1679
  let n = t;
1680
- for (let t of e.split(".")) if (Lt(n) && t in n) n = n[t];
1680
+ for (let t of e.split(".")) if (Bt(n) && t in n) n = n[t];
1681
1681
  else return;
1682
1682
  return typeof n == "function" ? n() : n;
1683
1683
  }
1684
- function zt(e, t) {
1685
- let n = e.split("|").map((e) => e.trim()), r = Rt(n.shift() ?? "", t);
1684
+ function Ht(e, t) {
1685
+ let n = e.split("|").map((e) => e.trim()), r = Vt(n.shift() ?? "", t);
1686
1686
  for (let e of n) {
1687
- let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = It[i];
1687
+ let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = zt[i];
1688
1688
  o && (r = o(r, a));
1689
1689
  }
1690
- return $(r) ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
1690
+ return Z(r) ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
1691
1691
  }
1692
- function Bt(e, t) {
1692
+ function Ut(e, t) {
1693
1693
  let n = "", r = 0;
1694
1694
  for (; r < e.length;) if (e[r] === "{" && e[r + 1] === "{") {
1695
1695
  r += 2;
@@ -1701,91 +1701,112 @@ function Bt(e, t) {
1701
1701
  }
1702
1702
  i += e[r++];
1703
1703
  }
1704
- n += zt(i.trim(), t);
1704
+ n += Ht(i.trim(), t);
1705
1705
  } else n += e[r++];
1706
1706
  return n;
1707
1707
  }
1708
1708
  //#endregion
1709
1709
  //#region src/utils/preview-session.ts
1710
- var Vt = "preview-token";
1711
- function Ht() {
1712
- return !s() || !h() ? !1 : !!Et()[Vt]?.[0];
1710
+ var Wt = "preview-token";
1711
+ function Gt() {
1712
+ return !s() || !h() ? !1 : !!kt()[Wt]?.[0];
1713
1713
  }
1714
1714
  //#endregion
1715
1715
  //#region src/picked.ts
1716
- var Ut = class {
1716
+ var Kt = class {
1717
1717
  static logger = r;
1718
1718
  options;
1719
1719
  dataSource = null;
1720
+ seededVersionId = null;
1721
+ versionSkew = null;
1720
1722
  contentLoader;
1721
1723
  previewEmbedderOrigins = null;
1722
1724
  plugins = {};
1723
- eventBus = F();
1725
+ dataProviders = /* @__PURE__ */ new Map();
1726
+ eventBus = P();
1724
1727
  events;
1725
1728
  projectId;
1726
1729
  apiUrl;
1727
1730
  dashboardUrl;
1728
1731
  documentationSiteUrl;
1729
- session = jt();
1730
- searchParams = Et();
1731
- history = Je();
1732
- components = _e({ client: this });
1733
- experienceInstances = C({ client: this });
1734
- experiences = le({ client: this });
1735
- frameworks = be({ client: this });
1736
- predicates = ze({ client: this });
1737
- features = We({ client: this });
1738
- conditions = wt();
1739
- fields = $e();
1740
- responses = xt({ client: this });
1741
- steps = nt();
1742
- contents = ot();
1743
- actions = ut({ client: this });
1744
- conditionResults = w();
1745
- stateSnapshotStore = Ce({ client: this });
1746
- evaluateRuleLogicFx = je({ client: this });
1732
+ session = Pt();
1733
+ searchParams = kt();
1734
+ history = Ze();
1735
+ components = ye({ client: this });
1736
+ experienceInstances = S({ client: this });
1737
+ experiences = de({ client: this });
1738
+ frameworks = Ce({ client: this });
1739
+ predicates = He({ client: this });
1740
+ features = qe({ client: this });
1741
+ conditions = Dt();
1742
+ fields = nt();
1743
+ responses = wt({ client: this });
1744
+ steps = at();
1745
+ contents = lt();
1746
+ actions = pt({ client: this });
1747
+ conditionResults = C();
1748
+ stateSnapshotStore = Ee({ client: this });
1749
+ evaluateRuleLogicFx = Pe({ client: this });
1747
1750
  start;
1748
1751
  readyStore;
1749
1752
  preconditionPassedStore;
1750
1753
  conditionPassedStore;
1751
1754
  lifecycleStageStore;
1752
- lifecycle = Ie({ client: this });
1753
- renderStringFx = A({
1755
+ lifecycle = ze({ client: this });
1756
+ renderStringFx = k({
1754
1757
  source: this.responses.listStore,
1755
1758
  effect: (e, { template: t, context: n }) => {
1756
1759
  let r = {};
1757
1760
  for (let t of e) r[t.fieldKey] = t.value;
1758
- return Bt(t, {
1761
+ return Ut(t, {
1759
1762
  ...n,
1760
1763
  responses: r
1761
1764
  });
1762
1765
  }
1763
1766
  });
1764
1767
  constructor(e) {
1765
- 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({
1768
+ this.events = $e(this.eventBus), this.projectId = Rt(e), this.options = Object.freeze(e), this.apiUrl = e.apiUrl || Ot(), 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({
1766
1769
  type: "load",
1767
- version: te()
1770
+ version: ne()
1768
1771
  }), this.maybeStartPreviewChannel();
1769
1772
  }
1773
+ dataProviderFor(e) {
1774
+ let t = e ?? "", n = this.dataProviders.get(t);
1775
+ if (n) return n;
1776
+ let r = import("../provider-Bskcgd6U.js").then((t) => t.createPickedDataProvider({
1777
+ apiUrl: this.apiUrl,
1778
+ projectId: this.projectId,
1779
+ ...e !== void 0 && { previewToken: e }
1780
+ }));
1781
+ return this.dataProviders.set(t, r), r;
1782
+ }
1783
+ async getProjectConfig(e) {
1784
+ let t = await this.dataProviderFor(e?.previewToken), n = await t.getProjectConfig();
1785
+ if (this.dataSource = t.meta.manifest, n === null) throw Error(`Picked could not resolve the configuration for project "${this.projectId}" from ${this.apiUrl}.`);
1786
+ return n;
1787
+ }
1788
+ async getExperienceContent(e, t) {
1789
+ return (await this.dataProviderFor(t?.previewToken)).getContent(e, t?.signal === void 0 ? void 0 : { signal: t.signal });
1790
+ }
1770
1791
  maybeStartPreviewChannel() {
1771
- Ht() && import("../preview-channel-CSr96XAo.js").then((e) => e.initPreviewChannel(this)).catch(() => void 0);
1792
+ Gt() && import("../preview-channel-CSr96XAo.js").then((e) => e.initPreviewChannel(this)).catch(() => void 0);
1772
1793
  }
1773
1794
  registerFramework = (e) => {
1774
- xe(e, this.frameworks);
1795
+ we(e, this.frameworks);
1775
1796
  };
1776
1797
  registerComponent = (e, t) => {
1777
- V(e, t, this.components);
1798
+ be(e, t, this.components);
1778
1799
  };
1779
1800
  registerPlugin = (e) => {
1780
- fe(this, e, this.plugins);
1801
+ me(this, e, this.plugins);
1781
1802
  let t = this.plugins[e.name];
1782
1803
  t?.onStart && this.lifecycle.registerPluginStartHook(t.onStart);
1783
1804
  };
1784
1805
  registerFeature = (e, t) => {
1785
- Ge(e, t, this.features);
1806
+ Je(e, t, this.features);
1786
1807
  };
1787
1808
  registerPredicate = (e, t) => {
1788
- Be(e, t, this.predicates);
1809
+ Ue(e, t, this.predicates);
1789
1810
  };
1790
1811
  registerCondition = (e) => {
1791
1812
  this.conditions.register(e);
@@ -1794,19 +1815,19 @@ var Ut = class {
1794
1815
  this.fields.register(e);
1795
1816
  };
1796
1817
  registerStep = (e) => {
1797
- rt(e, this.steps);
1818
+ ot(e, this.steps);
1798
1819
  };
1799
1820
  registerContent = (e) => {
1800
- st(e, this.contents);
1821
+ ut(e, this.contents);
1801
1822
  };
1802
1823
  patchContent = (e, t) => {
1803
1824
  this.contents.patch(e, t);
1804
1825
  };
1805
1826
  registerAction = (e, t) => {
1806
- dt(e, t, this.actions);
1827
+ mt(e, t, this.actions);
1807
1828
  };
1808
1829
  registerExperience = (e) => {
1809
- e.component && V(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1830
+ e.component && be(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1810
1831
  };
1811
1832
  launchExperienceById = async (e, t) => {
1812
1833
  this.experiences.launch({
@@ -1851,7 +1872,7 @@ var Ut = class {
1851
1872
  try {
1852
1873
  let [t, n] = e.split(":");
1853
1874
  if (!t || !n) return;
1854
- let r = He(n);
1875
+ let r = Ge(n);
1855
1876
  this.registerFeature(t, {
1856
1877
  key: `${r}`,
1857
1878
  name: t,
@@ -1888,8 +1909,8 @@ var Ut = class {
1888
1909
  });
1889
1910
  }
1890
1911
  getPluginConfig = (e) => this.plugins[e] ?? {};
1891
- }, Wt = "application/picked-javascript", Gt = "application/picked-module", Kt = "data-picked-hydrated";
1892
- async function qt(e) {
1912
+ }, qt = "application/picked-javascript", Jt = "application/picked-module", Yt = "data-picked-hydrated";
1913
+ async function Xt(e) {
1893
1914
  if (!("document" in globalThis)) return;
1894
1915
  let t = "application/picked-module", n = "data-picked-hydrated";
1895
1916
  function r(e) {
@@ -1918,30 +1939,64 @@ async function qt(e) {
1918
1939
  a && await a;
1919
1940
  }
1920
1941
  }
1921
- function Jt() {
1922
- return `<script>(${qt.toString()})(document)<\/script>`;
1942
+ function Zt() {
1943
+ return `<script>(${Xt.toString()})(document)<\/script>`;
1923
1944
  }
1924
1945
  //#endregion
1925
1946
  //#region src/utils/html-asset-value.ts
1926
- function Yt(e) {
1947
+ function Qt(e) {
1927
1948
  return typeof e == "object" && !!e && "id" in e && typeof e.id == "string" && "content" in e && (typeof e.content == "string" || e.content === null);
1928
1949
  }
1929
1950
  //#endregion
1930
1951
  //#region src/entities/component/lazyComponent.ts
1931
- function Xt(e) {
1952
+ function $t(e) {
1932
1953
  return {
1933
1954
  $$type: "lazy-component",
1934
1955
  load: e
1935
1956
  };
1936
1957
  }
1937
- function Zt(e) {
1958
+ function en(e) {
1938
1959
  return typeof e == "object" && !!e && "$$type" in e && e.$$type === "lazy-component";
1939
1960
  }
1940
1961
  //#endregion
1962
+ //#region src/entities/content/reference.ts
1963
+ function Q(e) {
1964
+ return typeof e == "object" && !!e && !Array.isArray(e) && "contentEntryId" in e && typeof e.contentEntryId == "string";
1965
+ }
1966
+ function $(e) {
1967
+ return Q(e) ? e.contentEntryId : null;
1968
+ }
1969
+ function tn(e) {
1970
+ let t = Array.isArray(e) ? e : [e], n = [];
1971
+ for (let e of t) Q(e) && n.push(e.contentEntryId);
1972
+ return n;
1973
+ }
1974
+ function nn(e, t) {
1975
+ return t === null ? null : e[t] ?? null;
1976
+ }
1977
+ function rn(e, t) {
1978
+ let n = [];
1979
+ for (let r of t) {
1980
+ let t = e[r];
1981
+ t !== void 0 && n.push(t);
1982
+ }
1983
+ return n;
1984
+ }
1985
+ function an(e, t) {
1986
+ if (se.store(t)) return A(t, e.indexStore, (e, t) => nn(t, $(e)));
1987
+ let n = $(t);
1988
+ return e.indexStore.map((e) => nn(e, n), { skipVoid: !1 });
1989
+ }
1990
+ function on(e, t) {
1991
+ if (se.store(t)) return A(t, e.indexStore, (e, t) => rn(t, tn(e)));
1992
+ let n = tn(t);
1993
+ return e.indexStore.map((e) => rn(e, n), { skipVoid: !1 });
1994
+ }
1995
+ //#endregion
1941
1996
  //#region src/exports.ts
1942
- var Qt = (e) => {
1943
- let t = new Ut(e);
1997
+ var sn = (e) => {
1998
+ let t = new Kt(e);
1944
1999
  return u(t), t;
1945
2000
  };
1946
2001
  //#endregion
1947
- 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, de as createPluginEffect, k 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, D as localStore, ae as onInertScriptSubtrees, qt as rehydrateScripts, re as reportInertScriptSubtrees, ie as resetInertScriptReport, O as sessionStore, E 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 };
2002
+ export { Yt as PICKED_HYDRATED_ATTR, Jt as PICKED_MODULE_SCRIPT_TYPE, qt as PICKED_SCRIPT_TYPE, Wt as PREVIEW_TOKEN_PARAM, Kt as Picked, Zt as buildRehydrateBootstrap, sn as createClient, pe as createPluginEffect, O as createStorageKey, an as deriveReference, on as deriveReferences, n as evaluateRuleLogic, Ft as getPickedConfig, Q as isContentReference, Qt as isHtmlAssetValue, h as isInsideIframe, en as isLazyLoader, _ as isPickedRoot, Gt as isPreviewSession, $t as lazyComponent, E as localStore, oe as onInertScriptSubtrees, $ as readReferenceId, tn as readReferenceIds, Xt 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 };