@picked/client 0.0.71-next.1 → 0.0.71-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 (149) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{api-CH2FNa6S.cjs → api-CnjBi6JG.cjs} +1 -1
  3. package/dist/{api-CgqRvuKL.js → api-vBVGLtvU.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/conditions-and-the-logic-engine.md +94 -0
  8. package/dist/docs/explanation/feature-flag-allocation.md +176 -0
  9. package/dist/docs/explanation/how-picked-works.md +102 -0
  10. package/dist/docs/explanation/how-pickedql-works.md +76 -0
  11. package/dist/docs/explanation/pages-and-flows.md +64 -0
  12. package/dist/docs/explanation/the-content-model.md +77 -0
  13. package/dist/docs/explanation/the-two-apis.md +68 -0
  14. package/dist/docs/explanation/why-server-side-rendering.md +76 -0
  15. package/dist/docs/explanation/workspaces-and-versions.md +71 -0
  16. package/dist/docs/how-to/add-a-step-field-or-action.md +43 -0
  17. package/dist/docs/{pickedql/examples.md → how-to/analytics/index.md} +19 -6
  18. package/dist/docs/how-to/archive-or-delete-a-workspace.md +46 -0
  19. package/dist/docs/how-to/authenticate-with-a-magic-link.md +40 -0
  20. package/dist/docs/how-to/authenticate-with-a-password.md +51 -0
  21. package/dist/docs/how-to/authenticate-with-an-api-key.md +51 -0
  22. package/dist/docs/how-to/authenticate-with-oauth.md +40 -0
  23. package/dist/docs/{flow-builder/building-flows.md → how-to/build-a-flow.md} +13 -9
  24. package/dist/docs/how-to/connect-the-mcp-server.md +38 -0
  25. package/dist/docs/how-to/create-a-project.md +29 -0
  26. package/dist/docs/how-to/create-an-experience.md +42 -0
  27. package/dist/docs/how-to/create-and-revoke-an-api-key.md +37 -0
  28. package/dist/docs/how-to/debug-with-the-chrome-extension.md +57 -0
  29. package/dist/docs/how-to/define-a-page-layout.md +39 -0
  30. package/dist/docs/how-to/fill-and-publish-a-page.md +50 -0
  31. package/dist/docs/{gtm-template.md → how-to/install-the-gtm-template.md} +9 -3
  32. package/dist/docs/how-to/install-the-sdk.md +68 -0
  33. package/dist/docs/how-to/install-the-vite-plugin.md +56 -0
  34. package/dist/docs/how-to/invite-and-remove-members.md +34 -0
  35. package/dist/docs/how-to/preview-a-workspace.md +28 -0
  36. package/dist/docs/how-to/publish-a-workspace.md +30 -0
  37. package/dist/docs/how-to/read-a-feature-flag.md +101 -0
  38. package/dist/docs/how-to/register-a-component.md +55 -0
  39. package/dist/docs/how-to/register-an-action-handler.md +67 -0
  40. package/dist/docs/how-to/render-a-step-form.md +132 -0
  41. package/dist/docs/how-to/render-an-unpublished-preview.md +41 -0
  42. package/dist/docs/how-to/reuse-a-section.md +37 -0
  43. package/dist/docs/how-to/reuse-a-step-field-or-action.md +28 -0
  44. package/dist/docs/how-to/roll-back-a-published-version.md +26 -0
  45. package/dist/docs/how-to/run-an-ab-test.md +49 -0
  46. package/dist/docs/how-to/run-code-on-a-form-submission.md +125 -0
  47. package/dist/docs/how-to/server-render-a-page.md +81 -0
  48. package/dist/docs/how-to/set-a-content-security-policy.md +32 -0
  49. package/dist/docs/how-to/set-up-mfa.md +69 -0
  50. package/dist/docs/how-to/upload-and-use-an-asset.mdx +73 -0
  51. package/dist/docs/how-to/validate-a-field.md +52 -0
  52. package/dist/docs/how-to/write-a-condition.md +45 -0
  53. package/dist/docs/how-to/write-a-predicate.md +60 -0
  54. package/dist/docs/index.md +41 -70
  55. package/dist/docs/reference/dashboard/actions.mdx +53 -0
  56. package/dist/docs/{api-keys.mdx → reference/dashboard/api-keys.mdx} +7 -15
  57. package/dist/docs/reference/dashboard/conditions.mdx +42 -0
  58. package/dist/docs/reference/dashboard/content/asset-library.mdx +63 -0
  59. package/dist/docs/{content → reference/dashboard/content}/content-entries.mdx +11 -3
  60. package/dist/docs/{content → reference/dashboard/content}/layouts.mdx +11 -35
  61. package/dist/docs/reference/dashboard/content/pages.mdx +35 -0
  62. package/dist/docs/reference/dashboard/content/sections.mdx +28 -0
  63. package/dist/docs/{experiences.mdx → reference/dashboard/experiences.mdx} +9 -16
  64. package/dist/docs/{features.mdx → reference/dashboard/features.mdx} +26 -41
  65. package/dist/docs/{fields.mdx → reference/dashboard/fields.mdx} +26 -20
  66. package/dist/docs/{flow-builder/overview.mdx → reference/dashboard/flow-builder/canvas.mdx} +8 -13
  67. package/dist/docs/{flow-builder → reference/dashboard/flow-builder}/condition-builder.md +5 -13
  68. package/dist/docs/{flow-builder → reference/dashboard/flow-builder}/keyboard-shortcuts.md +7 -1
  69. package/dist/docs/{flow-builder → reference/dashboard/flow-builder}/nodes.md +10 -3
  70. package/dist/docs/reference/dashboard/projects.mdx +44 -0
  71. package/dist/docs/reference/dashboard/reports.mdx +43 -0
  72. package/dist/docs/reference/dashboard/steps.mdx +37 -0
  73. package/dist/docs/{team-management.md → reference/dashboard/team-management.md} +5 -22
  74. package/dist/docs/{workspace-versioning.mdx → reference/dashboard/workspace-versioning.mdx} +6 -10
  75. package/dist/docs/reference/dashboard/workspaces.mdx +76 -0
  76. package/dist/docs/{delivery-api → reference/delivery-api}/experience-content.md +11 -4
  77. package/dist/docs/reference/delivery-api/index.md +45 -0
  78. package/dist/docs/{delivery-api → reference/delivery-api}/preview-caching-crawling.md +12 -5
  79. package/dist/docs/{delivery-api → reference/delivery-api}/project-config.md +11 -4
  80. package/dist/docs/reference/glossary.md +173 -0
  81. package/dist/docs/reference/management-api/authentication.md +74 -0
  82. package/dist/docs/{api → reference/management-api}/authorization-and-scopes.md +10 -3
  83. package/dist/docs/{api → reference/management-api}/error-handling.md +9 -3
  84. package/dist/docs/{api → reference/management-api}/pagination.md +6 -0
  85. package/dist/docs/{pickedql → reference/pickedql}/data-sources.md +16 -9
  86. package/dist/docs/{pickedql → reference/pickedql}/dimensions.md +7 -0
  87. package/dist/docs/{pickedql → reference/pickedql}/filtering.md +7 -0
  88. package/dist/docs/reference/pickedql/index.md +18 -0
  89. package/dist/docs/{pickedql → reference/pickedql}/schema.md +13 -6
  90. package/dist/docs/{pickedql → reference/pickedql}/virtual-functions.md +7 -0
  91. package/dist/docs/reference/sdk/actions.md +30 -0
  92. package/dist/docs/{sdk → reference/sdk}/conditions.md +8 -1
  93. package/dist/docs/reference/sdk/content-security-policy.md +21 -0
  94. package/dist/docs/reference/sdk/experiences.md +51 -0
  95. package/dist/docs/{sdk → reference/sdk}/features.md +30 -117
  96. package/dist/docs/{sdk → reference/sdk}/fields.md +10 -88
  97. package/dist/docs/reference/sdk/index.md +68 -0
  98. package/dist/docs/{sdk → reference/sdk}/plugins/create-experience.md +10 -22
  99. package/dist/docs/reference/sdk/plugins/dynamic-experiences.md +26 -0
  100. package/dist/docs/reference/sdk/plugins/index.md +29 -0
  101. package/dist/docs/{sdk → reference/sdk}/plugins/window-object.md +6 -0
  102. package/dist/docs/reference/sdk/predicates.md +43 -0
  103. package/dist/docs/reference/sdk/ssr/index.md +33 -0
  104. package/dist/docs/{sdk → reference/sdk}/ssr/rendering-and-hydration.md +4 -63
  105. package/dist/docs/{sdk → reference/sdk}/ssr/serialize.md +6 -33
  106. package/dist/docs/{sdk → reference/sdk}/ssr/slots-and-placements.md +7 -1
  107. package/dist/docs/reference/sdk/steps.md +87 -0
  108. package/dist/docs/reference/tools/chrome-extension.md +16 -0
  109. package/dist/docs/{image-optimisation-service.md → reference/tools/image-optimisation-service.md} +8 -0
  110. package/dist/docs/{mcp.md → reference/tools/mcp.md} +5 -45
  111. package/dist/docs/{vite-plugin.md → reference/tools/vite-plugin.md} +8 -38
  112. package/dist/docs/{api/index.md → tutorials/first-api-call.md} +27 -15
  113. package/dist/docs/tutorials/first-experience-in-the-dashboard.mdx +143 -0
  114. package/dist/docs/tutorials/first-experience.mdx +255 -0
  115. package/dist/docs/tutorials/first-server-rendered-page.mdx +186 -0
  116. package/dist/esm/index.js +468 -426
  117. package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
  118. package/dist/esm/server/index.js +1 -1
  119. package/dist/{plugin-DCW-tnjO.cjs → plugin-CSmD1gPl.cjs} +1 -1
  120. package/dist/{plugin-D2UqFikQ.js → plugin-GOTtoDlC.js} +1 -1
  121. package/dist/types/entities/feature/feature.d.ts +25 -2
  122. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  123. package/dist/types/picked.d.ts +2 -1
  124. package/dist/types/picked.d.ts.map +1 -1
  125. package/package.json +1 -1
  126. package/dist/docs/actions.mdx +0 -98
  127. package/dist/docs/api/authentication.md +0 -403
  128. package/dist/docs/chrome-extension.md +0 -68
  129. package/dist/docs/conditions.mdx +0 -72
  130. package/dist/docs/content/asset-library.mdx +0 -124
  131. package/dist/docs/content/pages.mdx +0 -82
  132. package/dist/docs/content/sections.mdx +0 -44
  133. package/dist/docs/delivery-api/index.md +0 -53
  134. package/dist/docs/guides/build-a-personalized-page.mdx +0 -161
  135. package/dist/docs/pickedql/index.md +0 -54
  136. package/dist/docs/projects.mdx +0 -44
  137. package/dist/docs/reports.mdx +0 -20
  138. package/dist/docs/sdk/actions.md +0 -82
  139. package/dist/docs/sdk/content-security-policy.md +0 -33
  140. package/dist/docs/sdk/experiences.md +0 -64
  141. package/dist/docs/sdk/feature-allocation.md +0 -161
  142. package/dist/docs/sdk/index.md +0 -98
  143. package/dist/docs/sdk/plugins/dynamic-experiences.md +0 -84
  144. package/dist/docs/sdk/plugins/index.md +0 -9
  145. package/dist/docs/sdk/predicates.md +0 -128
  146. package/dist/docs/sdk/ssr/index.md +0 -79
  147. package/dist/docs/sdk/steps.md +0 -479
  148. package/dist/docs/steps.mdx +0 -53
  149. package/dist/docs/workspaces.mdx +0 -133
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 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-CgqRvuKL.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, sample as I } from "effector";
12
- import { createFactory as L, invoke as R } from "@withease/factories";
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-vBVGLtvU.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";
13
13
  //#region src/entities/experience/experience.ts
14
- var z = M("experience"), se = L(({ client: e, experience: r }) => {
15
- let i = z.store(r), a = j(i, { merge(e, t) {
14
+ var B = N("experience"), oe = R(({ client: e, experience: r }) => {
15
+ let i = B.store(r), a = M(i, { merge(e, t) {
16
16
  return {
17
17
  ...e,
18
18
  ...t.experience
@@ -22,34 +22,34 @@ var z = M("experience"), se = L(({ client: e, experience: r }) => {
22
22
  decisionLogic: e.condition,
23
23
  targetSelectors: e.targets,
24
24
  initializeOpenLogic: e.initializeOpen
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);
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);
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 = k({
33
+ }), l = r.actions ?? [], u, d = A({
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) => y(e, r.id))), b(i, r.id, r.key).forEach((t) => {
37
+ i.forEach(({ elements: e }) => e.forEach((e) => b(e, r.id))), x(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 = A({
41
+ }), f = j({
42
42
  preconditionPassed: e.preconditionPassedStore,
43
43
  isUser: e.session.store.map((e) => e.isUser, { skipVoid: !1 }),
44
44
  config: o
45
- }), p = k({
45
+ }), p = A({
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 = N(async () => {
52
+ }), m = P(async () => {
53
53
  if (!e.contentLoader) return !0;
54
54
  try {
55
55
  await e.contentLoader({
@@ -60,26 +60,26 @@ var z = M("experience"), se = L(({ client: e, experience: r }) => {
60
60
  `${r.id}`;
61
61
  }
62
62
  return !0;
63
- }), h = P(), g = P(), _ = z.createStore(void 0, { skipVoid: !1 }).on(h, (e, t) => t).on(g, (e, t) => t);
64
- return I({
63
+ }), h = F(), g = F(), _ = B.createStore(void 0, { skipVoid: !1 }).on(h, (e, t) => t).on(g, (e, t) => t);
64
+ return L({
65
65
  clock: h,
66
66
  target: p
67
- }), I({
67
+ }), L({
68
68
  clock: p.doneData,
69
69
  source: _,
70
70
  filter: (e, t) => t,
71
71
  fn: (e) => e,
72
72
  target: d
73
- }), I({
73
+ }), L({
74
74
  clock: p.doneData,
75
75
  filter: Boolean,
76
76
  target: m
77
- }), I({
77
+ }), L({
78
78
  clock: g,
79
79
  source: _,
80
80
  fn: (e) => e,
81
81
  target: d
82
- }), I({
82
+ }), L({
83
83
  clock: g,
84
84
  target: m
85
85
  }), u = {
@@ -98,22 +98,22 @@ var z = M("experience"), se = L(({ client: e, experience: r }) => {
98
98
  prepareExperienceContentFx: m
99
99
  }, u;
100
100
  });
101
- function ce(e) {
102
- return R(se, e);
101
+ function se(e) {
102
+ return z(oe, e);
103
103
  }
104
- var le = L(({ client: e }) => {
105
- let t = z.store({}), n = j(t, { register(e, t) {
104
+ var ce = R(({ client: e }) => {
105
+ let t = B.store({}), n = M(t, { register(e, t) {
106
106
  return {
107
107
  ...e,
108
108
  [t.id]: t
109
109
  };
110
- } }), r = P(), i = N((t) => {
111
- n.register(ce({
110
+ } }), r = F(), i = P((t) => {
111
+ n.register(se({
112
112
  client: e,
113
113
  experience: t
114
114
  }));
115
115
  });
116
- I({
116
+ L({
117
117
  clock: r,
118
118
  source: t,
119
119
  filter: (e, t) => e[t.id] !== void 0,
@@ -126,7 +126,7 @@ var le = L(({ client: e }) => {
126
126
  experience: t,
127
127
  strategy: "override"
128
128
  });
129
- }), I({
129
+ }), L({
130
130
  clock: r,
131
131
  source: t,
132
132
  filter: (e, t) => e[t.id] === void 0,
@@ -140,7 +140,7 @@ var le = L(({ 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 = k({
143
+ let c = A({
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 le = L(({ client: e }) => {
158
158
  getById: o,
159
159
  getByKey: s,
160
160
  launch: c,
161
- open: k({
161
+ open: A({
162
162
  source: {
163
163
  experiences: t,
164
164
  instances: e.experienceInstances.listStore
@@ -186,7 +186,7 @@ var le = L(({ client: e }) => {
186
186
  }
187
187
  }),
188
188
  listStore: a,
189
- initialiseExperiencesFx: k({
189
+ initialiseExperiencesFx: A({
190
190
  source: a,
191
191
  effect: (e) => {
192
192
  for (let t of e) t.initialiseRequested(void 0);
@@ -194,20 +194,20 @@ var le = L(({ client: e }) => {
194
194
  })
195
195
  };
196
196
  });
197
- function ue(e) {
198
- return R(le, e);
197
+ function le(e) {
198
+ return z(ce, e);
199
199
  }
200
- var de = async (e) => {
200
+ var ue = async (e) => {
201
201
  await e.experiences.initialiseExperiencesFx();
202
202
  };
203
203
  //#endregion
204
204
  //#region src/entities/plugin/plugin.ts
205
- function fe(e) {
206
- return N(async () => {
205
+ function de(e) {
206
+ return P(async () => {
207
207
  await e();
208
208
  });
209
209
  }
210
- var pe = (e, t, n) => {
210
+ var fe = (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 pe = (e, t, n) => {
216
216
  ...i
217
217
  });
218
218
  }
219
- }, me = M("component"), he = L(({ client: e, component: t, name: n }) => ({
219
+ }, pe = N("component"), me = R(({ client: e, component: t, name: n }) => ({
220
220
  name: n,
221
221
  component: t,
222
222
  frameworkStore: e.frameworks.getByName(t.frameworkName)
223
223
  }));
224
- function ge(e) {
225
- return R(he, e);
224
+ function he(e) {
225
+ return z(me, e);
226
226
  }
227
- var _e = L(({ client: e }) => {
228
- let t = me.store({}), n = j(t, { register(e, t) {
227
+ var ge = R(({ client: e }) => {
228
+ let t = pe.store({}), n = M(t, { register(e, t) {
229
229
  return {
230
230
  ...e,
231
231
  [t.name]: t
232
232
  };
233
- } }), i = P();
234
- I({
233
+ } }), i = F();
234
+ L({
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)), I({
239
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
240
240
  clock: i,
241
- fn: ({ name: t, component: n }) => ge({
241
+ fn: ({ name: t, component: n }) => he({
242
242
  client: e,
243
243
  name: t,
244
244
  component: n
@@ -255,27 +255,27 @@ var _e = L(({ client: e }) => {
255
255
  listStore: a
256
256
  };
257
257
  });
258
- function ve(e) {
259
- return R(_e, e);
258
+ function _e(e) {
259
+ return z(ge, e);
260
260
  }
261
- var ye = (e, t, n) => {
261
+ var V = (e, t, n) => {
262
262
  n.register({
263
263
  name: e,
264
264
  component: t
265
265
  });
266
- }, be = M("framework"), xe = L((e) => {
267
- let t = be.store({}), n = j(t, { register(e, t) {
266
+ }, ve = N("framework"), ye = R((e) => {
267
+ let t = ve.store({}), n = M(t, { register(e, t) {
268
268
  return {
269
269
  ...e,
270
270
  [t.name]: t.framework
271
271
  };
272
- } }), i = P();
273
- I({
272
+ } }), i = F();
273
+ L({
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)), I({
278
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
279
279
  clock: i,
280
280
  target: n.register
281
281
  });
@@ -289,106 +289,106 @@ var ye = (e, t, n) => {
289
289
  listStore: a
290
290
  };
291
291
  });
292
- function Se(e) {
293
- return R(xe, e);
292
+ function be(e) {
293
+ return z(ye, e);
294
294
  }
295
- var Ce = (e, t) => {
295
+ var xe = (e, t) => {
296
296
  t.register({
297
297
  name: e.name,
298
298
  framework: e
299
299
  });
300
- }, we = L(({ client: e }) => {
300
+ }, Se = R(({ 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 A(e.responses.listStore, e.fields.listStore, (t, r) => Object.freeze({
307
+ return j(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 Te(e) {
315
- return R(we, e);
314
+ function Ce(e) {
315
+ return z(Se, e);
316
316
  }
317
317
  //#endregion
318
318
  //#region src/logic-engine.ts
319
- function Ee(e) {
319
+ function we(e) {
320
320
  return typeof e == "number" && !isNaN(e);
321
321
  }
322
- function B(e) {
322
+ function H(e) {
323
323
  return typeof e == "string";
324
324
  }
325
- function V(e) {
325
+ function U(e) {
326
326
  return Array.isArray(e);
327
327
  }
328
- function De(e) {
328
+ function Te(e) {
329
329
  return e instanceof Promise;
330
330
  }
331
- function Oe(e) {
331
+ function Ee(e) {
332
332
  return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
333
333
  }
334
- function H(e) {
335
- if (Ee(e)) return e;
334
+ function W(e) {
335
+ if (we(e)) return e;
336
336
  let t = parseFloat(`${e}`);
337
337
  return isNaN(t) ? 0 : t;
338
338
  }
339
- function U(e) {
339
+ function G(e) {
340
340
  return `${e}`;
341
341
  }
342
- var ke = {
342
+ var De = {
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) => H(e) > H(t),
348
- ">=": (e, t) => H(e) >= H(t),
347
+ ">": (e, t) => W(e) > W(t),
348
+ ">=": (e, t) => W(e) >= W(t),
349
349
  "<": (e, t, n) => {
350
- let r = H(e), i = H(t);
350
+ let r = W(e), i = W(t);
351
351
  if (n === void 0) return r < i;
352
- let a = H(n);
352
+ let a = W(n);
353
353
  return r < i && i < a;
354
354
  },
355
355
  "<=": (e, t, n) => {
356
- let r = H(e), i = H(t);
356
+ let r = W(e), i = W(t);
357
357
  if (n === void 0) return r <= i;
358
- let a = H(n);
358
+ let a = W(n);
359
359
  return r <= i && i <= a;
360
360
  },
361
- "!!": async (e) => await G(e),
362
- "!": async (e) => !await G(e),
363
- "%": (e, t) => H(e) % H(t),
361
+ "!!": async (e) => await q(e),
362
+ "!": async (e) => !await q(e),
363
+ "%": (e, t) => W(e) % W(t),
364
364
  log: (e) => (console.log(e), e),
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(""),
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(""),
367
367
  substr: (e, t, n) => {
368
- let r = U(e), i = H(t);
368
+ let r = G(e), i = W(t);
369
369
  if (n === void 0) return r.substr(i);
370
- let a = H(n);
370
+ let a = W(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) => H(e) + H(t), 0),
378
- "*": (...e) => e.reduce((e, t) => H(e) * H(t), 1),
377
+ "+": (...e) => e.reduce((e, t) => W(e) + W(t), 0),
378
+ "*": (...e) => e.reduce((e, t) => W(e) * W(t), 1),
379
379
  "-": (e, t) => {
380
- let n = H(e);
381
- return t === void 0 ? -n : n - H(t);
380
+ let n = W(e);
381
+ return t === void 0 ? -n : n - W(t);
382
382
  },
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]), []),
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]), []),
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 = U(e);
391
+ let r = G(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 ke = {
401
401
  return a === void 0 ? n : a;
402
402
  },
403
403
  async missing(...e) {
404
- let t = V(e[0]) ? e[0] : e, n = [];
404
+ let t = U(e[0]) ? e[0] : e, n = [];
405
405
  for (let e of t) {
406
- let t = await W({ var: e }, this);
406
+ let t = await K({ 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 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;
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;
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) => B(e) && B(t) && e.startsWith(t),
422
- endsWith: (e, t) => B(e) && B(t) && e.endsWith(t),
421
+ startsWith: (e, t) => H(e) && H(t) && e.startsWith(t),
422
+ endsWith: (e, t) => H(e) && H(t) && e.endsWith(t),
423
423
  regexp_matches(e, t) {
424
424
  let n = e, r = "";
425
- if (V(e)) {
425
+ if (U(e)) {
426
426
  let [t, i] = e;
427
427
  n = t, r = i;
428
428
  }
429
- return !B(n) || !B(r) ? !1 : new RegExp(n, r).test(U(t));
429
+ return !H(n) || !H(r) ? !1 : new RegExp(n, r).test(G(t));
430
430
  },
431
431
  throw(e) {
432
- throw Error(U(e));
432
+ throw Error(G(e));
433
433
  }
434
434
  };
435
- async function W(e, t) {
435
+ async function K(e, t) {
436
436
  if (!e) return e;
437
- if (De(e)) return W(await e, t);
438
- if (V(e)) return Promise.all(e.map((e) => W(e, t)));
439
- if (!Oe(e)) return e;
440
- let n = Ae(e), r = n ? e[n] ?? [] : [];
441
- switch (V(r) || (r = [r]), n) {
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) {
442
442
  case "if":
443
443
  case "?:":
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;
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;
446
446
  case "and": {
447
447
  let e = null;
448
- for (let n of r) if (e = await W(n, t), !await G(e)) return e;
448
+ for (let n of r) if (e = await K(n, t), !await q(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 W(n, t), await G(e)) return e;
453
+ for (let n of r) if (e = await K(n, t), await q(e)) return e;
454
454
  return e;
455
455
  }
456
456
  case "map": {
457
- let e = await W(r[0], t);
458
- return V(e) ? await Promise.all(e.map((e) => W(r[1], e))) : [];
457
+ let e = await K(r[0], t);
458
+ return U(e) ? await Promise.all(e.map((e) => K(r[1], e))) : [];
459
459
  }
460
460
  case "filter": {
461
- let e = await W(r[0], t);
462
- return V(e) ? (await Promise.all(e.map(async (e) => ({
461
+ let e = await K(r[0], t);
462
+ return U(e) ? (await Promise.all(e.map(async (e) => ({
463
463
  item: e,
464
- shouldInclude: await G(await W(r[1], e))
464
+ shouldInclude: await q(await K(r[1], e))
465
465
  })))).filter(({ shouldInclude: e }) => e).map(({ item: e }) => e) : [];
466
466
  }
467
467
  case "reduce": {
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, {
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, {
472
472
  current: t,
473
473
  accumulator: i
474
474
  });
475
475
  return i;
476
476
  }
477
477
  case "all": {
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;
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;
481
481
  return !0;
482
482
  }
483
483
  case "some": {
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;
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;
487
487
  return !1;
488
488
  }
489
489
  case "none": {
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;
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;
493
493
  return !0;
494
494
  }
495
495
  case "catch": try {
496
- return await W(r[0], t);
496
+ return await K(r[0], t);
497
497
  } catch (e) {
498
- return Oe(e) ? await W(e, t) : r[1] ? await W(r[1], e) : e instanceof Error ? e.message : e;
498
+ return Ee(e) ? await K(e, t) : r[1] ? await K(r[1], e) : e instanceof Error ? e.message : e;
499
499
  }
500
500
  }
501
- let i = await Promise.all(r.map((e) => W(e, t))), a = n ? ke[n] : void 0;
501
+ let i = await Promise.all(r.map((e) => K(e, t))), a = n ? De[n] : void 0;
502
502
  if (!a) throw Error(`Unrecognized operation ${n}`);
503
503
  return a.apply(t, i);
504
504
  }
505
- async function G(e) {
506
- return De(e) ? G(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
505
+ async function q(e) {
506
+ return Te(e) ? q(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
507
507
  }
508
- function Ae(e) {
508
+ function Oe(e) {
509
509
  return Object.keys(e)[0];
510
510
  }
511
511
  //#endregion
512
512
  //#region src/lifecycle/rules-logic.ts
513
- function je(e, t, n) {
513
+ function ke(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 W(a.logic, {
517
+ if (a !== void 0) return async () => !n.has(i) && await K(a.logic, {
518
518
  ...t,
519
- conditions: je(e, t, new Set(n).add(i))
519
+ conditions: ke(e, t, new Set(n).add(i))
520
520
  }) === !0;
521
521
  } });
522
522
  }
523
- var Me = L(({ client: e }) => k({
523
+ var Ae = R(({ client: e }) => A({
524
524
  source: {
525
525
  stateSnapshot: e.stateSnapshotStore,
526
526
  predicates: e.predicates.listStore,
@@ -557,149 +557,149 @@ var Me = L(({ client: e }) => k({
557
557
  features: u,
558
558
  ...s
559
559
  };
560
- return await W(o, {
560
+ return await K(o, {
561
561
  ...d,
562
- conditions: je(a, d, /* @__PURE__ */ new Set())
562
+ conditions: ke(a, d, /* @__PURE__ */ new Set())
563
563
  });
564
564
  }
565
565
  }));
566
- function Ne(e) {
567
- return R(Me, e);
566
+ function je(e) {
567
+ return z(Ae, e);
568
568
  }
569
569
  //#endregion
570
570
  //#region src/ping.ts
571
- var Pe = 6e3, Fe = O("last_ping", "global"), Ie = async (e) => {
571
+ var Me = 6e3, Ne = k("last_ping", "global"), Pe = async (e) => {
572
572
  try {
573
- let t = Date.now(), n = E.get(Fe), r = 0;
574
- if (n.isSet() && (r = n.json() ?? 0), r && t - r < Pe) return !0;
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
575
  let i = {
576
576
  projectId: e.projectId,
577
577
  path: window.location.pathname
578
578
  }, a = {}, o = document.getElementById("picked_script")?.dataset.verceltoken;
579
579
  o && (a["x-vercel-protection-bypass"] = o);
580
- let s = (await te(e.apiUrl, "ping", i, a)).ok;
580
+ let s = (await ee(e.apiUrl, "ping", i, a)).ok;
581
581
  return s && n.set(t), s;
582
582
  } catch {
583
583
  return !1;
584
584
  }
585
- }, K = M("lifecycle"), Le = L(({ client: e }) => {
586
- let t = K.store(!1), r = F(void 0, {
585
+ }, J = N("lifecycle"), Fe = R(({ client: e }) => {
586
+ let t = J.store(!1), r = I(void 0, {
587
587
  skipVoid: !1,
588
- domain: K
589
- }), i = F(void 0, {
588
+ domain: J
589
+ }), i = I(void 0, {
590
590
  skipVoid: !1,
591
- domain: K
592
- }), a = K.store("idle"), o = K.store([]), s = F(void 0, {
591
+ domain: J
592
+ }), a = J.store("idle"), o = J.store([]), s = I(void 0, {
593
593
  skipVoid: !1,
594
- domain: K
595
- }), l = F(void 0, {
594
+ domain: J
595
+ }), l = I(void 0, {
596
596
  skipVoid: !1,
597
- domain: K
598
- }), u = P(), d = P(), f = P(), p = P(), m = P(), h = P();
597
+ domain: J
598
+ }), u = F(), d = F(), f = F(), p = F(), m = F(), h = F();
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 = N(() => {
601
- Ie(e);
602
- }), _ = N(async () => {
603
- await ee();
604
- }), v = N(async () => {
605
- await de(e);
606
- }), y = k({ effect: v }), b = k({
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({
607
607
  source: o,
608
608
  effect: async (e) => {
609
609
  for (let t of e) await t();
610
610
  }
611
- }), x = k({
611
+ }), S = A({
612
612
  source: s,
613
613
  effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
614
- }), S = k({
614
+ }), C = A({
615
615
  source: l,
616
616
  effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
617
- }), C = I({
617
+ }), w = L({
618
618
  clock: u,
619
619
  source: a,
620
620
  filter: (e) => e === "idle" && c(),
621
621
  fn: () => void 0
622
622
  });
623
- I({
624
- clock: C,
623
+ L({
624
+ clock: w,
625
625
  fn: () => "starting",
626
626
  target: a
627
- }), I({
628
- clock: C,
627
+ }), L({
628
+ clock: w,
629
629
  target: g
630
- }), I({
631
- clock: C,
632
- target: b
633
- }), I({
634
- clock: C,
635
- target: _
636
- }), I({
637
- clock: b.done,
630
+ }), L({
631
+ clock: w,
638
632
  target: x
639
- }), I({
640
- clock: x.doneData,
641
- target: r
642
- }), I({
633
+ }), L({
634
+ clock: w,
635
+ target: _
636
+ }), L({
637
+ clock: x.done,
638
+ target: S
639
+ }), L({
643
640
  clock: S.doneData,
641
+ target: r
642
+ }), L({
643
+ clock: C.doneData,
644
644
  target: i
645
- }), I({
646
- clock: x.doneData,
647
- filter: (e) => e,
648
- target: S
649
- }), I({
645
+ }), L({
650
646
  clock: S.doneData,
647
+ filter: (e) => e,
648
+ target: C
649
+ }), L({
650
+ clock: C.doneData,
651
651
  target: e.session.setIsUser
652
- }), I({
653
- clock: S.doneData,
652
+ }), L({
653
+ clock: C.doneData,
654
654
  fn: (e) => ({
655
655
  type: "user_decide",
656
656
  value: e
657
657
  }),
658
658
  target: e.eventBus
659
- }), I({
660
- clock: x.doneData,
659
+ }), L({
660
+ clock: S.doneData,
661
661
  filter: (e) => !e,
662
662
  fn: () => void 0,
663
663
  target: f
664
- }), I({
665
- clock: S.doneData,
664
+ }), L({
665
+ clock: C.doneData,
666
666
  fn: () => void 0,
667
667
  target: f
668
- }), I({
668
+ }), L({
669
669
  clock: f,
670
670
  fn: () => ({ type: "initialize" }),
671
671
  target: e.eventBus
672
672
  });
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({
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({
675
675
  clock: f,
676
- source: D,
676
+ source: O,
677
677
  filter: (e) => e,
678
678
  fn: () => void 0,
679
679
  target: v
680
680
  });
681
- let O = A(w, T, D, (e, t, n) => e && t && n);
682
- I({
683
- clock: O,
681
+ let k = j(T, E, O, (e, t, n) => e && t && n);
682
+ L({
683
+ clock: k,
684
684
  filter: (e) => e,
685
685
  fn: () => void 0,
686
- target: y
686
+ target: b
687
687
  });
688
- let te = A(w, T, D, E, (e, t, n, r) => e && t && (!n || r));
689
- return I({
690
- clock: te,
688
+ let ee = j(T, E, O, D, (e, t, n, r) => e && t && (!n || r));
689
+ return L({
690
+ clock: ee,
691
691
  filter: (e) => e,
692
692
  fn: () => void 0,
693
693
  target: d
694
- }), I({
694
+ }), L({
695
695
  clock: d,
696
696
  fn: () => "ready",
697
697
  target: a
698
- }), I({
698
+ }), L({
699
699
  clock: d,
700
700
  fn: () => ({ type: "ready" }),
701
701
  target: e.eventBus
702
- }), I({
702
+ }), L({
703
703
  clock: d,
704
704
  source: e.session.store,
705
705
  fn: ({ id: e, isUser: t, identifiers: n }) => ({
@@ -709,13 +709,13 @@ var Pe = 6e3, Fe = O("last_ping", "global"), Ie = async (e) => {
709
709
  identifiers: n
710
710
  }),
711
711
  target: e.eventBus
712
- }), I({
712
+ }), L({
713
713
  clock: [
714
- b.fail,
715
714
  x.fail,
716
715
  S.fail,
716
+ C.fail,
717
717
  v.fail,
718
- y.fail,
718
+ b.fail,
719
719
  _.fail
720
720
  ],
721
721
  fn: () => "failed",
@@ -731,13 +731,13 @@ var Pe = 6e3, Fe = O("last_ping", "global"), Ie = async (e) => {
731
731
  setCondition: h
732
732
  };
733
733
  });
734
- function Re(e) {
735
- return R(Le, e);
734
+ function Ie(e) {
735
+ return z(Fe, e);
736
736
  }
737
737
  //#endregion
738
738
  //#region src/entities/predicate/predicate.ts
739
- var ze = M("predicate"), Be = L(({ client: e }) => {
740
- let t = ze.store({}), n = j(t, { register(e, t) {
739
+ var Le = N("predicate"), Re = R(({ client: e }) => {
740
+ let t = Le.store({}), n = M(t, { register(e, t) {
741
741
  return {
742
742
  ...e,
743
743
  [t.name]: {
@@ -745,13 +745,13 @@ var ze = M("predicate"), Be = L(({ client: e }) => {
745
745
  predicate: t.predicate
746
746
  }
747
747
  };
748
- } }), i = P();
749
- I({
748
+ } }), i = F();
749
+ L({
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)), I({
754
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
755
755
  clock: i,
756
756
  fn: ({ name: e, predicate: t }) => Object.freeze({
757
757
  name: e,
@@ -764,7 +764,7 @@ var ze = M("predicate"), Be = L(({ client: e }) => {
764
764
  return t.map((t) => t[e]?.predicate, { skipVoid: !1 });
765
765
  }
766
766
  function s(t) {
767
- let n = F(() => void 0, { skipVoid: !1 }), r = k({
767
+ let n = I(() => void 0, { skipVoid: !1 }), r = A({
768
768
  source: {
769
769
  predicate: o(t),
770
770
  snapshot: e.stateSnapshotStore
@@ -776,13 +776,13 @@ var ze = M("predicate"), Be = L(({ client: e }) => {
776
776
  });
777
777
  }
778
778
  });
779
- return I({
779
+ return L({
780
780
  source: {
781
781
  responses: e.responses.listStore,
782
782
  fields: e.fields.listStore
783
783
  },
784
784
  target: r
785
- }), I({
785
+ }), L({
786
786
  clock: r.doneData,
787
787
  filter: (e) => e !== void 0,
788
788
  target: n
@@ -795,31 +795,34 @@ var ze = M("predicate"), Be = L(({ client: e }) => {
795
795
  getEvokablePredicate: s
796
796
  };
797
797
  });
798
- function Ve(e) {
799
- return R(Be, e);
798
+ function ze(e) {
799
+ return z(Re, e);
800
800
  }
801
- var He = (e, t, n) => {
801
+ var Be = (e, t, n) => {
802
802
  n.register({
803
803
  name: e,
804
804
  predicate: t
805
805
  });
806
- }, Ue = M("feature");
807
- function q(e) {
806
+ }, Ve = N("feature");
807
+ function Y(e) {
808
808
  return e?.enabled === !1;
809
809
  }
810
- var We = L(({ client: e }) => {
811
- let t = Ue.store({}), n = Ue.store([]), i = j(t, { register(e, t) {
810
+ function He(e) {
811
+ return e === "true" || e !== "false" && e;
812
+ }
813
+ var Ue = R(({ client: e }) => {
814
+ let t = Ve.store({}), n = Ve.store([]), i = M(t, { register(e, t) {
812
815
  return {
813
816
  ...e,
814
817
  [t.id]: t.feature
815
818
  };
816
- } }), a = P();
817
- I({
819
+ } }), a = F();
820
+ L({
818
821
  clock: a,
819
822
  source: t,
820
823
  filter: (e, { id: t }) => e[t] !== void 0,
821
824
  fn: (e, { id: t }) => `Feature '${t}' already registered. Registering again will override the previous registration.`
822
- }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
825
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
823
826
  clock: a,
824
827
  fn: ({ id: e, feature: t }) => Object.freeze({
825
828
  id: e,
@@ -833,20 +836,20 @@ var We = L(({ client: e }) => {
833
836
  }),
834
837
  target: i.register
835
838
  });
836
- let o = N(async ({ id: e, key: t, storage: n = "local", enabled: r }) => {
839
+ let o = P(async ({ id: e, key: t, storage: n = "local", enabled: r }) => {
837
840
  if (r === !1) return null;
838
- let i = O(`feature:${e}:${t}`, "global"), a = (n === "session" ? D : E).get(i).boolean();
839
- return a === null ? null : {
841
+ let i = k(`feature:${e}:${t}`, "global"), a = (n === "session" ? O : D).get(i).text();
842
+ return a ? {
840
843
  id: e,
841
844
  key: t,
842
- bucket: a,
845
+ bucket: He(a),
843
846
  storage: n
844
- };
845
- }), s = N((e) => {
847
+ } : null;
848
+ }), s = P((e) => {
846
849
  if (!e) return null;
847
- let t = O(`feature:${e.id}:${e.key}`, "global");
848
- (e.storage === "session" ? D : E).set(t, e.bucket);
849
- }), c = /* @__PURE__ */ new Map(), l = k({
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
853
  source: {
851
854
  allFeaturesStore: t,
852
855
  resolvedFeaturesStore: n
@@ -856,7 +859,7 @@ var We = L(({ client: e }) => {
856
859
  if (a) return a;
857
860
  let o = e[n];
858
861
  if (!o) throw Error(`Feature with id '${n}' not found`);
859
- if (q(o.feature)) return {
862
+ if (Y(o.feature)) return {
860
863
  id: o.id,
861
864
  bucket: !1,
862
865
  key: i,
@@ -883,7 +886,7 @@ var We = L(({ client: e }) => {
883
886
  };
884
887
  }
885
888
  });
886
- I({
889
+ L({
887
890
  clock: i.register,
888
891
  fn: (e) => {
889
892
  let { id: t, feature: n } = e;
@@ -895,10 +898,10 @@ var We = L(({ client: e }) => {
895
898
  };
896
899
  },
897
900
  target: o
898
- }), I({
901
+ }), L({
899
902
  source: t,
900
903
  clock: l.doneData,
901
- filter: (e, t) => !q(e[t.id]?.feature),
904
+ filter: (e, t) => !Y(e[t.id]?.feature),
902
905
  fn: (e, t) => {
903
906
  let { id: n, bucket: r, storage: i } = t, a = e[n]?.feature.key;
904
907
  return a ? {
@@ -910,7 +913,7 @@ var We = L(({ client: e }) => {
910
913
  },
911
914
  target: s
912
915
  });
913
- let u = A({
916
+ let u = j({
914
917
  allFeaturesStore: t,
915
918
  resolvedFeaturesStore: n
916
919
  }).map(({ allFeaturesStore: e, resolvedFeaturesStore: t }) => Object.values(e).map((e) => {
@@ -936,78 +939,117 @@ var We = L(({ client: e }) => {
936
939
  isResolved: !1
937
940
  };
938
941
  }));
939
- I({
942
+ L({
940
943
  clock: l.doneData,
941
944
  source: {
942
945
  resolvedFeatures: n,
943
946
  allFeatures: t
944
947
  },
945
- filter: ({ resolvedFeatures: e, allFeatures: t }, { id: n, key: r }) => !q(t[n]?.feature) && !e.some((e) => e.id === n && e.key === r),
948
+ filter: ({ resolvedFeatures: e, allFeatures: t }, { id: n, key: r }) => !Y(t[n]?.feature) && !e.some((e) => e.id === n && e.key === r),
946
949
  fn: (e, t) => t,
947
950
  target: e.eventBus.prepend((e) => ({
948
951
  type: "feature_decide",
949
952
  feature: e
950
953
  }))
951
- }), I({
954
+ }), L({
952
955
  clock: [o.doneData, l.doneData],
953
956
  source: {
954
957
  resolvedFeatures: n,
955
958
  allFeatures: t
956
959
  },
957
- 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],
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],
958
961
  target: n
959
962
  });
960
963
  function d(e) {
961
964
  return u.map((t) => t.find((t) => t.id === e));
962
965
  }
963
- function f(e) {
966
+ let f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Map();
967
+ function h(e) {
968
+ let t = f.get(e);
969
+ if (t) return t;
970
+ let n = d(e);
971
+ return f.set(e, n), n;
972
+ }
973
+ function g(e) {
964
974
  return t.map((t) => t[e], { skipVoid: !1 });
965
975
  }
966
- function p(e) {
967
- let t = F(async () => void 0, { skipVoid: !1 }), r = k({
968
- source: d(e),
976
+ function _(e) {
977
+ let t = I(async () => void 0, { skipVoid: !1 }), n = h(e), r = A({
978
+ source: n,
969
979
  effect: async (e) => {
970
980
  if (e) return async () => (await e.getBucket()).bucket;
971
981
  }
972
982
  });
973
- return I({
974
- source: n,
975
- filter: (t) => t.some((t) => t.id === e),
983
+ return L({
984
+ clock: n,
976
985
  target: r
977
- }), I({
986
+ }), L({
978
987
  clock: r.doneData,
979
988
  filter: (e) => e !== void 0,
980
989
  target: t
981
990
  }), r(), t;
982
991
  }
992
+ function v(e) {
993
+ let t = p.get(e);
994
+ if (t) return t;
995
+ let n = _(e);
996
+ return p.set(e, n), n;
997
+ }
998
+ function y(e) {
999
+ let t = v(e), n = I(void 0, { skipVoid: !1 }), r = A({
1000
+ source: t,
1001
+ mapParams: (e, t) => t,
1002
+ effect: P(async (e) => await e())
1003
+ });
1004
+ return L({
1005
+ clock: r.doneData,
1006
+ fn: (t) => {
1007
+ if (t !== void 0) return {
1008
+ id: e,
1009
+ bucket: t
1010
+ };
1011
+ },
1012
+ target: n
1013
+ }), L({
1014
+ clock: t,
1015
+ target: r
1016
+ }), r(), n;
1017
+ }
1018
+ function b(e) {
1019
+ let t = m.get(e);
1020
+ if (t) return t;
1021
+ let n = y(e);
1022
+ return m.set(e, n), n;
1023
+ }
983
1024
  return {
984
1025
  register: a,
985
- getById: d,
986
- getByName: f,
1026
+ getById: h,
1027
+ getByName: g,
987
1028
  listStore: u,
988
- getEvokableFeature: p
1029
+ getEvokableFeature: v,
1030
+ getFeatureResult: b
989
1031
  };
990
1032
  });
991
- function Ge(e) {
992
- return R(We, e);
1033
+ function We(e) {
1034
+ return z(Ue, e);
993
1035
  }
994
- var Ke = (e, t, n) => {
1036
+ var Ge = (e, t, n) => {
995
1037
  n.register({
996
1038
  id: e,
997
1039
  feature: t
998
1040
  });
999
- }, J = M("history");
1000
- function qe(e, t) {
1041
+ }, X = N("history");
1042
+ function Ke(e, t) {
1001
1043
  return {
1002
- id: re(`history-entry-${Date.now()}-${Math.random()}}`),
1044
+ id: ne(`history-entry-${Date.now()}-${Math.random()}}`),
1003
1045
  node: t,
1004
1046
  at: Date.now(),
1005
1047
  experienceId: e
1006
1048
  };
1007
1049
  }
1008
- var Je = L(() => {
1009
- let e = J.store({ entries: [] }), t = J.event(), n = J.event(), r = J.event(), i = J.event();
1010
- e.on(t, (e, t) => ({ entries: [...e.entries, qe(t.experienceId, t.node)] })), e.on(n, (e, t) => ({ entries: [...e.entries.slice(0, -1), qe(t.experienceId, t.node)] })), e.on(i, (e, t) => t);
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);
1011
1053
  function a(e, t) {
1012
1054
  let n = {
1013
1055
  lastStepIndex: -1,
@@ -1015,7 +1057,7 @@ var Je = L(() => {
1015
1057
  };
1016
1058
  for (let r = e.length - 1; r >= 0; r--) {
1017
1059
  let i = e[r], a = i?.node;
1018
- if (!(!a || !w(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
1060
+ if (!(!a || !T(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
1019
1061
  else {
1020
1062
  n.secondLastStepIndex = r;
1021
1063
  break;
@@ -1037,20 +1079,20 @@ var Je = L(() => {
1037
1079
  entriesStore: e.map((e) => e.entries)
1038
1080
  };
1039
1081
  });
1040
- function Ye() {
1041
- return R(Je);
1082
+ function Je() {
1083
+ return z(qe);
1042
1084
  }
1043
1085
  //#endregion
1044
1086
  //#region src/utils/events.ts
1045
- var Xe = 0, Ze = (e) => {
1046
- let t = F([]);
1087
+ var Ye = 0, Xe = (e) => {
1088
+ let t = I([]);
1047
1089
  return t.on(e, (e, t) => [...e, {
1048
- id: Xe++,
1090
+ id: Ye++,
1049
1091
  at: /* @__PURE__ */ new Date(),
1050
1092
  payload: t
1051
1093
  }]), t;
1052
- }, Qe = M("field"), $e = L(() => {
1053
- let e = Qe.store({}), t = j(e, {
1094
+ }, Ze = N("field"), Qe = R(() => {
1095
+ let e = Ze.store({}), t = M(e, {
1054
1096
  register(e, t) {
1055
1097
  return {
1056
1098
  ...e,
@@ -1098,13 +1140,13 @@ var Xe = 0, Ze = (e) => {
1098
1140
  getByName: c
1099
1141
  };
1100
1142
  });
1101
- function et() {
1102
- return R($e);
1143
+ function $e() {
1144
+ return z(Qe);
1103
1145
  }
1104
1146
  //#endregion
1105
1147
  //#region src/entities/step/step.ts
1106
- var tt = M("step"), nt = L(() => {
1107
- let e = tt.store({}), t = j(e, { register(e, t) {
1148
+ var et = N("step"), tt = R(() => {
1149
+ let e = et.store({}), t = M(e, { register(e, t) {
1108
1150
  return {
1109
1151
  ...e,
1110
1152
  [t.step.id]: t.step
@@ -1128,16 +1170,16 @@ var tt = M("step"), nt = L(() => {
1128
1170
  indexStore: e
1129
1171
  };
1130
1172
  });
1131
- function rt() {
1132
- return R(nt);
1173
+ function nt() {
1174
+ return z(tt);
1133
1175
  }
1134
- function it(e, t) {
1176
+ function rt(e, t) {
1135
1177
  t.register(e);
1136
1178
  }
1137
1179
  //#endregion
1138
1180
  //#region src/entities/content/content.ts
1139
- var at = M("content"), ot = L(() => {
1140
- let e = at.store({}), t = j(e, {
1181
+ var it = N("content"), at = R(() => {
1182
+ let e = it.store({}), t = M(e, {
1141
1183
  register(e, t) {
1142
1184
  return {
1143
1185
  ...e,
@@ -1178,16 +1220,16 @@ var at = M("content"), ot = L(() => {
1178
1220
  indexStore: e
1179
1221
  };
1180
1222
  });
1181
- function st() {
1182
- return R(ot);
1223
+ function ot() {
1224
+ return z(at);
1183
1225
  }
1184
- function ct(e, t) {
1226
+ function st(e, t) {
1185
1227
  t.register(e);
1186
1228
  }
1187
1229
  //#endregion
1188
1230
  //#region src/entities/action/action.ts
1189
- var lt = M("action"), ut = L(({ client: e }) => {
1190
- let t = lt.store({}), n = j(t, { register(e, t) {
1231
+ var ct = N("action"), lt = R(({ client: e }) => {
1232
+ let t = ct.store({}), n = M(t, { register(e, t) {
1191
1233
  return {
1192
1234
  ...e,
1193
1235
  [t.key]: {
@@ -1195,13 +1237,13 @@ var lt = M("action"), ut = L(({ client: e }) => {
1195
1237
  action: t.action
1196
1238
  }
1197
1239
  };
1198
- } }), i = P();
1199
- I({
1240
+ } }), i = F();
1241
+ L({
1200
1242
  clock: i,
1201
1243
  source: t,
1202
1244
  filter: (e, { key: t }) => e[t] !== void 0,
1203
1245
  fn: (e, { key: t }) => `Action '${t}' already registered. Registering again will override the previous registration.`
1204
- }).watch((e) => /* @__PURE__ */ r("warn", e)), I({
1246
+ }).watch((e) => /* @__PURE__ */ r("warn", e)), L({
1205
1247
  clock: i,
1206
1248
  fn: ({ key: e, action: t }) => Object.freeze({
1207
1249
  key: e,
@@ -1214,7 +1256,7 @@ var lt = M("action"), ut = L(({ client: e }) => {
1214
1256
  return t.map((t) => t[e]?.action, { skipVoid: !1 });
1215
1257
  }
1216
1258
  function s(t, n) {
1217
- let r = F(() => void 0, { skipVoid: !1 }), i = n ? { experience: n.experience } : null, a = k({
1259
+ let r = I(() => void 0, { skipVoid: !1 }), i = n ? { experience: n.experience } : null, a = A({
1218
1260
  source: {
1219
1261
  action: o(t),
1220
1262
  snapshot: e.stateSnapshotStore
@@ -1226,13 +1268,13 @@ var lt = M("action"), ut = L(({ client: e }) => {
1226
1268
  }, i);
1227
1269
  }
1228
1270
  });
1229
- return I({
1271
+ return L({
1230
1272
  source: {
1231
1273
  responses: e.responses.listStore,
1232
1274
  fields: e.fields.listStore
1233
1275
  },
1234
1276
  target: a
1235
- }), I({
1277
+ }), L({
1236
1278
  clock: a.doneData,
1237
1279
  filter: (e) => e !== void 0,
1238
1280
  target: r
@@ -1245,10 +1287,10 @@ var lt = M("action"), ut = L(({ client: e }) => {
1245
1287
  getEvokableAction: s
1246
1288
  };
1247
1289
  });
1248
- function dt(e) {
1249
- return R(ut, e);
1290
+ function ut(e) {
1291
+ return z(lt, e);
1250
1292
  }
1251
- var ft = (e, t, n) => {
1293
+ var dt = (e, t, n) => {
1252
1294
  n.register({
1253
1295
  key: e,
1254
1296
  action: t
@@ -1256,7 +1298,7 @@ var ft = (e, t, n) => {
1256
1298
  };
1257
1299
  //#endregion
1258
1300
  //#region src/entities/response/response-validation.ts
1259
- function Y(e, t, n, r) {
1301
+ function Z(e, t, n, r) {
1260
1302
  return {
1261
1303
  fieldKey: e.key,
1262
1304
  userMessage: n,
@@ -1264,62 +1306,62 @@ function Y(e, t, n, r) {
1264
1306
  value: t
1265
1307
  };
1266
1308
  }
1267
- function X(e) {
1309
+ function Q(e) {
1268
1310
  return e === null || e === "" || Array.isArray(e) && !e.length;
1269
1311
  }
1270
- function pt(e) {
1312
+ function ft(e) {
1271
1313
  return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
1272
1314
  }
1273
- function mt(e) {
1315
+ function pt(e) {
1274
1316
  try {
1275
1317
  return JSON.stringify(e), !0;
1276
1318
  } catch {
1277
1319
  return !1;
1278
1320
  }
1279
1321
  }
1280
- function ht(e, t) {
1322
+ function mt(e, t) {
1281
1323
  return t.find((t) => t.key === e) ?? null;
1282
1324
  }
1283
- function gt(e, t) {
1325
+ function ht(e, t) {
1284
1326
  return e.multiple && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") ? [t] : t;
1285
1327
  }
1286
- function _t(e, t) {
1287
- if (e.type !== "object" || X(t)) return null;
1328
+ function gt(e, t) {
1329
+ if (e.type !== "object" || Q(t)) return null;
1288
1330
  if (e.multiple) {
1289
- if (!Array.isArray(t)) return Y(e, t, "This field expects multiple values", "Field expects an array of objects.");
1331
+ if (!Array.isArray(t)) return Z(e, t, "This field expects multiple values", "Field expects an array of objects.");
1290
1332
  for (let n of t) {
1291
- 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.");
1292
- if (!mt(n)) return Y(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 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.).");
1293
1335
  }
1294
1336
  return null;
1295
1337
  }
1296
- 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.") : mt(t) ? null : Y(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
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.).");
1297
1339
  }
1298
- function vt(e, t) {
1299
- if (X(t) || !Array.isArray(e.options) || e.options.length === 0) return null;
1340
+ function _t(e, t) {
1341
+ if (Q(t) || !Array.isArray(e.options) || e.options.length === 0) return null;
1300
1342
  let n = Array.isArray(t) ? t : [t];
1301
1343
  if (e.type === "object") {
1302
1344
  let r = new Set(e.options.map((e) => JSON.stringify(e.value)));
1303
- 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.");
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.");
1304
1346
  }
1305
1347
  let r = e.options.map((e) => e.value);
1306
- return n.every((e) => !pt(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(", ")}`);
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(", ")}`);
1307
1349
  }
1308
- async function yt(t, n, r, i) {
1309
- if (n.validation && !e(n.validation) && !X(r)) {
1350
+ async function vt(t, n, r, i) {
1351
+ if (n.validation && !e(n.validation) && !Q(r)) {
1310
1352
  let e = i ? {
1311
1353
  $input: r,
1312
1354
  responses: i
1313
1355
  } : { $input: r }, a = await t(n.validation, e);
1314
- if (typeof a == "string") return Y(n, r, a, `Field validation resulted in an error: ${a}.`);
1315
- if (a === !1) return Y(n, r, "This field is invalid", "Field validation resulted in an unspecified error.");
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.");
1316
1358
  }
1317
- 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;
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;
1318
1360
  }
1319
1361
  //#endregion
1320
1362
  //#region src/entities/response/response.ts
1321
- var bt = M("response"), xt = L(({ client: e }) => {
1322
- let t = bt.store({}), r = P(), i = P(), a = j(t, {
1363
+ var yt = N("response"), bt = R(({ client: e }) => {
1364
+ let t = yt.store({}), r = F(), i = F(), a = M(t, {
1323
1365
  register(e, t) {
1324
1366
  return {
1325
1367
  ...e,
@@ -1348,7 +1390,7 @@ var bt = M("response"), xt = L(({ client: e }) => {
1348
1390
  });
1349
1391
  } else a.registerBatch(e);
1350
1392
  }
1351
- let s = (t, r) => n(e, t, r), c = k({
1393
+ let s = (t, r) => n(e, t, r), c = A({
1352
1394
  source: {
1353
1395
  allFields: e.fields.listStore,
1354
1396
  existingResponses: t
@@ -1358,7 +1400,7 @@ var bt = M("response"), xt = L(({ client: e }) => {
1358
1400
  ...t,
1359
1401
  ...n
1360
1402
  }, o = Object.entries(n), c = await Promise.allSettled(o.map(async ([t, n]) => {
1361
- let o = ht(t, e);
1403
+ let o = mt(t, e);
1362
1404
  if (!o) {
1363
1405
  r.push({
1364
1406
  fieldKey: t,
@@ -1368,17 +1410,17 @@ var bt = M("response"), xt = L(({ client: e }) => {
1368
1410
  });
1369
1411
  return;
1370
1412
  }
1371
- let c = gt(o, n), l = await yt(s, o, c, a);
1413
+ let c = ht(o, n), l = await vt(s, o, c, a);
1372
1414
  if (l) {
1373
1415
  r.push(l);
1374
1416
  return;
1375
1417
  }
1376
- let u = _t(o, c);
1418
+ let u = gt(o, c);
1377
1419
  if (u) {
1378
1420
  r.push(u);
1379
1421
  return;
1380
1422
  }
1381
- let d = vt(o, c);
1423
+ let d = _t(o, c);
1382
1424
  if (d) {
1383
1425
  r.push(d);
1384
1426
  return;
@@ -1406,7 +1448,7 @@ var bt = M("response"), xt = L(({ client: e }) => {
1406
1448
  async function l(e) {
1407
1449
  return c(e);
1408
1450
  }
1409
- let u = k({
1451
+ let u = A({
1410
1452
  source: t,
1411
1453
  effect: async (e, t) => {
1412
1454
  let { responsesToCommit: n, validationErrors: r } = await c(t);
@@ -1421,7 +1463,7 @@ var bt = M("response"), xt = L(({ client: e }) => {
1421
1463
  value: t
1422
1464
  })));
1423
1465
  function m(e) {
1424
- return A({
1466
+ return j({
1425
1467
  f: e,
1426
1468
  s: t
1427
1469
  }, ({ f: e, s: t }) => {
@@ -1438,10 +1480,10 @@ var bt = M("response"), xt = L(({ client: e }) => {
1438
1480
  function _(t) {
1439
1481
  return m(e.fields.getByName(t));
1440
1482
  }
1441
- return I({
1483
+ return L({
1442
1484
  clock: r,
1443
1485
  target: a.clearAll
1444
- }), I({
1486
+ }), L({
1445
1487
  clock: i,
1446
1488
  target: a.clear
1447
1489
  }), {
@@ -1457,13 +1499,13 @@ var bt = M("response"), xt = L(({ client: e }) => {
1457
1499
  getByFieldName: _
1458
1500
  };
1459
1501
  });
1460
- function St(e) {
1461
- return R(xt, e);
1502
+ function xt(e) {
1503
+ return z(bt, e);
1462
1504
  }
1463
1505
  //#endregion
1464
1506
  //#region src/entities/condition/condition.ts
1465
- var Ct = M("condition"), wt = L(() => {
1466
- let e = Ct.store({}), t = j(e, { register(e, t) {
1507
+ var St = N("condition"), Ct = R(() => {
1508
+ let e = St.store({}), t = M(e, { register(e, t) {
1467
1509
  return {
1468
1510
  ...e,
1469
1511
  [t.condition.id]: t.condition
@@ -1487,12 +1529,12 @@ var Ct = M("condition"), wt = L(() => {
1487
1529
  indexStore: e
1488
1530
  };
1489
1531
  });
1490
- function Tt() {
1491
- return R(wt);
1532
+ function wt() {
1533
+ return z(Ct);
1492
1534
  }
1493
1535
  //#endregion
1494
1536
  //#region src/utils/api-url.ts
1495
- function Et() {
1537
+ function Tt() {
1496
1538
  if (c()) {
1497
1539
  let e = [
1498
1540
  document.currentScript,
@@ -1507,7 +1549,7 @@ function Et() {
1507
1549
  }
1508
1550
  //#endregion
1509
1551
  //#region src/utils/search-params.ts
1510
- function Dt() {
1552
+ function Et() {
1511
1553
  if (!s()) return {};
1512
1554
  let e = new URLSearchParams(window.location.search), t = {}, n = /* @__PURE__ */ new Set();
1513
1555
  for (let [t] of e.entries()) t.startsWith("picked-") && n.add(t);
@@ -1515,23 +1557,23 @@ function Dt() {
1515
1557
  let n = r.replace("picked-", "");
1516
1558
  t[n] = e.getAll(r);
1517
1559
  }
1518
- let r = O("s");
1519
- if (n.size > 0) D.set(r, t);
1560
+ let r = k("s");
1561
+ if (n.size > 0) O.set(r, t);
1520
1562
  else {
1521
- let e = D.get(r);
1563
+ let e = O.get(r);
1522
1564
  if (e) return e.json() || {};
1523
1565
  }
1524
1566
  return t;
1525
1567
  }
1526
1568
  //#endregion
1527
1569
  //#region src/entities/session/session.ts
1528
- var Ot = O("session", "global");
1529
- function kt() {
1570
+ var Dt = k("session", "global");
1571
+ function Ot() {
1530
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)}`;
1531
1573
  }
1532
- function At() {
1574
+ function kt() {
1533
1575
  if (!m()) return null;
1534
- let e = E.get(Ot);
1576
+ let e = D.get(Dt);
1535
1577
  if (!e.isSet()) return null;
1536
1578
  try {
1537
1579
  return e.json();
@@ -1539,10 +1581,10 @@ function At() {
1539
1581
  return null;
1540
1582
  }
1541
1583
  }
1542
- var jt = L(() => {
1543
- let e = At(), t = { id: e?.id ?? kt() };
1584
+ var At = R(() => {
1585
+ let e = kt(), t = { id: e?.id ?? Ot() };
1544
1586
  e?.isUser !== void 0 && (t.isUser = e.isUser), e?.identifiers && Object.keys(e.identifiers).length > 0 && (t.identifiers = e.identifiers);
1545
- let n = F(t), r = j(n, {
1587
+ let n = I(t), r = M(n, {
1546
1588
  setIsUser: (e, t) => ({
1547
1589
  ...e,
1548
1590
  isUser: t
@@ -1562,15 +1604,15 @@ var jt = L(() => {
1562
1604
  let i = { id: e.id };
1563
1605
  return e.isUser !== void 0 && (i.isUser = e.isUser), Object.keys(r).length > 0 && (i.identifiers = r), i;
1564
1606
  }
1565
- }), i = k({
1607
+ }), i = A({
1566
1608
  source: n,
1567
1609
  effect: (e) => {
1568
1610
  if (m()) try {
1569
- E.get(Ot).set(e);
1611
+ D.get(Dt).set(e);
1570
1612
  } catch {}
1571
1613
  }
1572
1614
  });
1573
- return I({
1615
+ return L({
1574
1616
  source: n,
1575
1617
  target: i
1576
1618
  }), {
@@ -1580,39 +1622,39 @@ var jt = L(() => {
1580
1622
  removeIdentifier: r.removeIdentifier
1581
1623
  };
1582
1624
  });
1583
- function Mt() {
1584
- return R(jt, void 0);
1625
+ function jt() {
1626
+ return z(At, void 0);
1585
1627
  }
1586
1628
  //#endregion
1587
1629
  //#region src/utils/picked-config.ts
1588
- function Nt() {
1630
+ function Mt() {
1589
1631
  if (s()) return globalThis.window.pickedConfig;
1590
1632
  }
1591
- function Pt() {
1592
- if (s()) return Nt()?.projectId;
1633
+ function Nt() {
1634
+ if (s()) return Mt()?.projectId;
1593
1635
  }
1594
- function Ft() {
1636
+ function Pt() {
1595
1637
  if (!c()) return;
1596
1638
  let e = document.getElementById("picked_script") || document.querySelector("script#picked") || document.getElementById("cvly");
1597
1639
  if (e) return e.dataset.projectid || e.getAttribute("project-id") || void 0;
1598
1640
  }
1599
- function It(e) {
1641
+ function Ft(e) {
1600
1642
  if (e.projectId) return e.projectId;
1601
- let t = Pt();
1643
+ let t = Nt();
1602
1644
  if (t) return t;
1603
- let n = Ft();
1645
+ let n = Pt();
1604
1646
  if (n) return n;
1605
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.");
1606
1648
  }
1607
1649
  //#endregion
1608
1650
  //#region src/utils/render-string.ts
1609
- function Z(e) {
1651
+ function $(e) {
1610
1652
  return e == null || e === "" || Number.isNaN(e);
1611
1653
  }
1612
- var Lt = {
1613
- default: (e, t) => Z(e) ? String(t ?? "") : String(e),
1614
- append: (e, t) => t && !Z(e) ? `${e} ${t}` : e,
1615
- prepend: (e, t) => t && !Z(e) ? `${t} ${e}` : e,
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,
1616
1658
  upper: (e) => typeof e == "string" ? e.toUpperCase() : e,
1617
1659
  lower: (e) => typeof e == "string" ? e.toLowerCase() : e,
1618
1660
  capitalize: (e) => typeof e == "string" ? e.charAt(0).toUpperCase() + e.slice(1) : e,
@@ -1630,24 +1672,24 @@ var Lt = {
1630
1672
  return e instanceof Set ? t.format(Array.from(e).map(String)) : e;
1631
1673
  }
1632
1674
  };
1633
- function Rt(e) {
1675
+ function Lt(e) {
1634
1676
  return typeof e == "object" && !!e;
1635
1677
  }
1636
- function zt(e, t) {
1678
+ function Rt(e, t) {
1637
1679
  let n = t;
1638
- for (let t of e.split(".")) if (Rt(n) && t in n) n = n[t];
1680
+ for (let t of e.split(".")) if (Lt(n) && t in n) n = n[t];
1639
1681
  else return;
1640
1682
  return typeof n == "function" ? n() : n;
1641
1683
  }
1642
- function Bt(e, t) {
1643
- let n = e.split("|").map((e) => e.trim()), r = zt(n.shift() ?? "", t);
1684
+ function zt(e, t) {
1685
+ let n = e.split("|").map((e) => e.trim()), r = Rt(n.shift() ?? "", t);
1644
1686
  for (let e of n) {
1645
- let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = Lt[i];
1687
+ let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = It[i];
1646
1688
  o && (r = o(r, a));
1647
1689
  }
1648
- return Z(r) ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
1690
+ return $(r) ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
1649
1691
  }
1650
- function Vt(e, t) {
1692
+ function Bt(e, t) {
1651
1693
  let n = "", r = 0;
1652
1694
  for (; r < e.length;) if (e[r] === "{" && e[r + 1] === "{") {
1653
1695
  r += 2;
@@ -1659,15 +1701,15 @@ function Vt(e, t) {
1659
1701
  }
1660
1702
  i += e[r++];
1661
1703
  }
1662
- n += Bt(i.trim(), t);
1704
+ n += zt(i.trim(), t);
1663
1705
  } else n += e[r++];
1664
1706
  return n;
1665
1707
  }
1666
1708
  //#endregion
1667
1709
  //#region src/utils/preview-session.ts
1668
- var Q = "preview-token";
1710
+ var Vt = "preview-token";
1669
1711
  function Ht() {
1670
- return !s() || !h() ? !1 : !!Dt()[Q]?.[0];
1712
+ return !s() || !h() ? !1 : !!Et()[Vt]?.[0];
1671
1713
  }
1672
1714
  //#endregion
1673
1715
  //#region src/picked.ts
@@ -1678,72 +1720,72 @@ var Ut = class {
1678
1720
  contentLoader;
1679
1721
  previewEmbedderOrigins = null;
1680
1722
  plugins = {};
1681
- eventBus = P();
1723
+ eventBus = F();
1682
1724
  events;
1683
1725
  projectId;
1684
1726
  apiUrl;
1685
1727
  dashboardUrl;
1686
1728
  documentationSiteUrl;
1687
- session = Mt();
1688
- searchParams = Dt();
1689
- history = Ye();
1690
- components = ve({ client: this });
1691
- experienceInstances = S({ client: this });
1692
- experiences = ue({ client: this });
1693
- frameworks = Se({ client: this });
1694
- predicates = Ve({ client: this });
1695
- features = Ge({ client: this });
1696
- conditions = Tt();
1697
- fields = et();
1698
- responses = St({ client: this });
1699
- steps = rt();
1700
- contents = st();
1701
- actions = dt({ client: this });
1702
- conditionResults = C();
1703
- stateSnapshotStore = Te({ client: this });
1704
- evaluateRuleLogicFx = Ne({ client: this });
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 });
1705
1747
  start;
1706
1748
  readyStore;
1707
1749
  preconditionPassedStore;
1708
1750
  conditionPassedStore;
1709
1751
  lifecycleStageStore;
1710
- lifecycle = Re({ client: this });
1711
- renderStringFx = k({
1752
+ lifecycle = Ie({ client: this });
1753
+ renderStringFx = A({
1712
1754
  source: this.responses.listStore,
1713
1755
  effect: (e, { template: t, context: n }) => {
1714
1756
  let r = {};
1715
1757
  for (let t of e) r[t.fieldKey] = t.value;
1716
- return Vt(t, {
1758
+ return Bt(t, {
1717
1759
  ...n,
1718
1760
  responses: r
1719
1761
  });
1720
1762
  }
1721
1763
  });
1722
1764
  constructor(e) {
1723
- this.events = Ze(this.eventBus), this.projectId = It(e), this.options = Object.freeze(e), this.apiUrl = e.apiUrl || Et(), 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({
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({
1724
1766
  type: "load",
1725
- version: ne()
1767
+ version: te()
1726
1768
  }), this.maybeStartPreviewChannel();
1727
1769
  }
1728
1770
  maybeStartPreviewChannel() {
1729
1771
  Ht() && import("../preview-channel-CSr96XAo.js").then((e) => e.initPreviewChannel(this)).catch(() => void 0);
1730
1772
  }
1731
1773
  registerFramework = (e) => {
1732
- Ce(e, this.frameworks);
1774
+ xe(e, this.frameworks);
1733
1775
  };
1734
1776
  registerComponent = (e, t) => {
1735
- ye(e, t, this.components);
1777
+ V(e, t, this.components);
1736
1778
  };
1737
1779
  registerPlugin = (e) => {
1738
- pe(this, e, this.plugins);
1780
+ fe(this, e, this.plugins);
1739
1781
  let t = this.plugins[e.name];
1740
1782
  t?.onStart && this.lifecycle.registerPluginStartHook(t.onStart);
1741
1783
  };
1742
1784
  registerFeature = (e, t) => {
1743
- Ke(e, t, this.features);
1785
+ Ge(e, t, this.features);
1744
1786
  };
1745
1787
  registerPredicate = (e, t) => {
1746
- He(e, t, this.predicates);
1788
+ Be(e, t, this.predicates);
1747
1789
  };
1748
1790
  registerCondition = (e) => {
1749
1791
  this.conditions.register(e);
@@ -1752,19 +1794,19 @@ var Ut = class {
1752
1794
  this.fields.register(e);
1753
1795
  };
1754
1796
  registerStep = (e) => {
1755
- it(e, this.steps);
1797
+ rt(e, this.steps);
1756
1798
  };
1757
1799
  registerContent = (e) => {
1758
- ct(e, this.contents);
1800
+ st(e, this.contents);
1759
1801
  };
1760
1802
  patchContent = (e, t) => {
1761
1803
  this.contents.patch(e, t);
1762
1804
  };
1763
1805
  registerAction = (e, t) => {
1764
- ft(e, t, this.actions);
1806
+ dt(e, t, this.actions);
1765
1807
  };
1766
1808
  registerExperience = (e) => {
1767
- e.component && ye(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1809
+ e.component && V(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
1768
1810
  };
1769
1811
  launchExperienceById = async (e, t) => {
1770
1812
  this.experiences.launch({
@@ -1809,8 +1851,8 @@ var Ut = class {
1809
1851
  try {
1810
1852
  let [t, n] = e.split(":");
1811
1853
  if (!t || !n) return;
1812
- let r = n;
1813
- r === "true" && (r = !0), r === "false" && (r = !1), this.registerFeature(t, {
1854
+ let r = He(n);
1855
+ this.registerFeature(t, {
1814
1856
  key: `${r}`,
1815
1857
  name: t,
1816
1858
  decide: () => r,
@@ -1847,7 +1889,7 @@ var Ut = class {
1847
1889
  }
1848
1890
  getPluginConfig = (e) => this.plugins[e] ?? {};
1849
1891
  }, Wt = "application/picked-javascript", Gt = "application/picked-module", Kt = "data-picked-hydrated";
1850
- async function $(e) {
1892
+ async function qt(e) {
1851
1893
  if (!("document" in globalThis)) return;
1852
1894
  let t = "application/picked-module", n = "data-picked-hydrated";
1853
1895
  function r(e) {
@@ -1876,30 +1918,30 @@ async function $(e) {
1876
1918
  a && await a;
1877
1919
  }
1878
1920
  }
1879
- function qt() {
1880
- return `<script>(${$.toString()})(document)<\/script>`;
1921
+ function Jt() {
1922
+ return `<script>(${qt.toString()})(document)<\/script>`;
1881
1923
  }
1882
1924
  //#endregion
1883
1925
  //#region src/utils/html-asset-value.ts
1884
- function Jt(e) {
1926
+ function Yt(e) {
1885
1927
  return typeof e == "object" && !!e && "id" in e && typeof e.id == "string" && "content" in e && (typeof e.content == "string" || e.content === null);
1886
1928
  }
1887
1929
  //#endregion
1888
1930
  //#region src/entities/component/lazyComponent.ts
1889
- function Yt(e) {
1931
+ function Xt(e) {
1890
1932
  return {
1891
1933
  $$type: "lazy-component",
1892
1934
  load: e
1893
1935
  };
1894
1936
  }
1895
- function Xt(e) {
1937
+ function Zt(e) {
1896
1938
  return typeof e == "object" && !!e && "$$type" in e && e.$$type === "lazy-component";
1897
1939
  }
1898
1940
  //#endregion
1899
1941
  //#region src/exports.ts
1900
- var Zt = (e) => {
1942
+ var Qt = (e) => {
1901
1943
  let t = new Ut(e);
1902
1944
  return u(t), t;
1903
1945
  };
1904
1946
  //#endregion
1905
- export { Kt as PICKED_HYDRATED_ATTR, Gt as PICKED_MODULE_SCRIPT_TYPE, Wt as PICKED_SCRIPT_TYPE, Q as PREVIEW_TOKEN_PARAM, Ut as Picked, qt as buildRehydrateBootstrap, Zt as createClient, fe as createPluginEffect, O as createStorageKey, n as evaluateRuleLogic, Nt as getPickedConfig, Jt as isHtmlAssetValue, h as isInsideIframe, Xt as isLazyLoader, _ as isPickedRoot, Ht as isPreviewSession, Yt as lazyComponent, E as localStore, oe as onInertScriptSubtrees, $ 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 };
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 };