@picked/client 0.0.1-dev.1786072899095 → 0.0.1-dev.1786601464574

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