@picked/client 0.0.1-dev.1778730134956 → 0.0.1-dev.1780458499348

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 (63) hide show
  1. package/dist/{api-B-CbCRqb.js → api-BTAT4D4u.js} +1 -1
  2. package/dist/{api-CPRRXVw6.cjs → api-DQiViS84.cjs} +1 -1
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/plugins/dom-observer/index.js +1 -1
  5. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  6. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  7. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  8. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
  10. package/dist/cjs/plugins/single-page-app/index.js +1 -1
  11. package/dist/cjs/plugins/web-components/index.js +1 -1
  12. package/dist/cjs/plugins/window-object/index.js +1 -1
  13. package/dist/cjs/server/index.js +1 -1
  14. package/dist/docs/image-optimisation-service.md +6 -6
  15. package/dist/docs/sdk/content-security-policy.md +8 -7
  16. package/dist/docs/sdk/fields.md +2 -2
  17. package/dist/{dom-DGePXPpM.js → dom-DjfSrkpp.js} +7 -7
  18. package/dist/{dom-C3C6Fmwz.cjs → dom-sqnnO-CT.cjs} +1 -1
  19. package/dist/esm/index.js +322 -331
  20. package/dist/esm/plugins/dom-observer/index.js +2 -2
  21. package/dist/esm/plugins/dynamic-experiences/index.js +3 -234
  22. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  23. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  24. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  25. package/dist/esm/plugins/responses-indexeddb/index.js +1 -1
  26. package/dist/esm/plugins/single-page-app/index.js +14 -14
  27. package/dist/esm/plugins/web-components/index.js +2 -2
  28. package/dist/esm/plugins/window-object/index.js +1 -1
  29. package/dist/esm/server/index.js +84 -51
  30. package/dist/experience-instance-B2Xb6TAm.cjs +1 -0
  31. package/dist/{experience-instance-BOhvCj_F.js → experience-instance-Brph8SaR.js} +155 -73
  32. package/dist/plugin-CVaiEzy8.cjs +1 -0
  33. package/dist/plugin-DozhuiMM.js +240 -0
  34. package/dist/preview-bridge-CGyx7dEx.js +33 -0
  35. package/dist/preview-bridge-DIdDvNXQ.cjs +1 -0
  36. package/dist/supports-34OzZK5j.cjs +1 -0
  37. package/dist/{supports-0XIfd4-R.js → supports-BgjwyijI.js} +11 -4
  38. package/dist/types/entities/experience-instance/experience-instance.d.ts +0 -12
  39. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  40. package/dist/types/entities/history/history.d.ts +0 -3
  41. package/dist/types/entities/history/history.d.ts.map +1 -1
  42. package/dist/types/entities/response/response.d.ts +0 -1
  43. package/dist/types/entities/response/response.d.ts.map +1 -1
  44. package/dist/types/lifecycle/condition-selection.d.ts +98 -0
  45. package/dist/types/lifecycle/condition-selection.d.ts.map +1 -0
  46. package/dist/types/lifecycle/lifecycle.d.ts.map +1 -1
  47. package/dist/types/picked.d.ts +19 -4
  48. package/dist/types/picked.d.ts.map +1 -1
  49. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +23 -0
  50. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  51. package/dist/types/plugins/dynamic-experiences/types.d.ts +5 -1
  52. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  53. package/dist/types/preview-bridge/index.d.ts +14 -0
  54. package/dist/types/preview-bridge/index.d.ts.map +1 -0
  55. package/dist/types/server/index.d.ts +8 -0
  56. package/dist/types/server/index.d.ts.map +1 -1
  57. package/dist/types/server/serialize.d.ts +67 -0
  58. package/dist/types/server/serialize.d.ts.map +1 -0
  59. package/dist/types/utils/supports.d.ts +85 -0
  60. package/dist/types/utils/supports.d.ts.map +1 -1
  61. package/package.json +5 -5
  62. package/dist/experience-instance-D8yKenBU.cjs +0 -1
  63. package/dist/supports-Dsjg-82e.cjs +0 -1
@@ -1,6 +1,6 @@
1
1
  import { n as e, t } from "./rules-logic-D_CVBuv7.js";
2
2
  import "./logger-6z_gb4rA.js";
3
- import { n, o as r } from "./dom-DGePXPpM.js";
3
+ import { n, o as r } from "./dom-DjfSrkpp.js";
4
4
  import { attach as i, combine as a, createApi as o, createDomain as s, createEffect as c, createEvent as l, sample as u, split as d } from "effector";
5
5
  import { createFactory as f, invoke as p } from "@withease/factories";
6
6
  //#region src/utils/nodes.ts
@@ -20,11 +20,104 @@ function v(e) {
20
20
  return e.type === "action";
21
21
  }
22
22
  //#endregion
23
+ //#region src/lifecycle/condition-selection.ts
24
+ var y = s("condition-results");
25
+ function b(e) {
26
+ return typeof e == "object" && !!e && !Array.isArray(e);
27
+ }
28
+ function x(e) {
29
+ if (e === void 0) return null;
30
+ if (Array.isArray(e)) return e.map((e) => x(e));
31
+ if (b(e)) {
32
+ let t = Object.keys(e).sort((e, t) => e.localeCompare(t)), n = {};
33
+ for (let r of t) n[r] = x(e[r]);
34
+ return n;
35
+ }
36
+ return e;
37
+ }
38
+ function S(e) {
39
+ return JSON.stringify(x(e));
40
+ }
41
+ var C = f(() => {
42
+ let e = y.store({}), t = o(e, {
43
+ set(e, t) {
44
+ return {
45
+ ...e,
46
+ [t.hash]: t.result
47
+ };
48
+ },
49
+ seed(e, t) {
50
+ return {
51
+ ...e,
52
+ ...t
53
+ };
54
+ }
55
+ });
56
+ function n(e) {
57
+ t.set(e);
58
+ }
59
+ function r(e) {
60
+ t.seed(e);
61
+ }
62
+ function i(t) {
63
+ return e.map((e) => e[t], { skipVoid: !1 });
64
+ }
65
+ function a(t) {
66
+ return e.getState()[t];
67
+ }
68
+ return {
69
+ store: e,
70
+ set: n,
71
+ seed: r,
72
+ getResult: i,
73
+ peek: a
74
+ };
75
+ });
76
+ function w() {
77
+ return p(C);
78
+ }
79
+ async function T(n, r, i) {
80
+ return r == null ? !0 : typeof r == "boolean" ? r : e(r) ? await t(n, r, i) === !0 : !0;
81
+ }
82
+ function E(e) {
83
+ if (typeof e == "string") return e;
84
+ if (Array.isArray(e) && typeof e[0] == "string") return e[0];
85
+ }
86
+ function D(e) {
87
+ if (Array.isArray(e)) return e.some(D);
88
+ if (b(e)) {
89
+ let t = E(e.var);
90
+ return t !== void 0 && (t === "actions" || t.startsWith("actions.")) ? !0 : Object.values(e).some(D);
91
+ }
92
+ return !1;
93
+ }
94
+ async function O(e, t, n) {
95
+ let r = D(t), i = S(t);
96
+ if (!r) {
97
+ let t = e.conditionResults.peek(i);
98
+ if (t !== void 0) return t;
99
+ }
100
+ let a = await T(e, t, n?.context);
101
+ return r || e.conditionResults.set({
102
+ hash: i,
103
+ result: a
104
+ }), a;
105
+ }
106
+ async function k(e, t, n) {
107
+ let r = n?.context, i = [
108
+ n?.precondition,
109
+ n?.condition,
110
+ t.condition
111
+ ];
112
+ for (let t of i) if (!await O(e, t, { context: r })) return !1;
113
+ return !0;
114
+ }
115
+ //#endregion
23
116
  //#region src/utils/node-tree/next-reachable-step-nodes.ts
24
- var y = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add(n.id), h(n) && !r ? [n] : t.filter((e) => e.sourceNodeId === n.id).flatMap((n) => {
117
+ var A = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add(n.id), h(n) && !r ? [n] : t.filter((e) => e.sourceNodeId === n.id).flatMap((n) => {
25
118
  let r = e.find((e) => e.id === n.destinationNodeId);
26
- return r ? y(e, t, r, !1, i) : [];
27
- })), ee = (e, t, n) => y(e, t, n, !0, /* @__PURE__ */ new Set()), b = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
119
+ return r ? A(e, t, r, !1, i) : [];
120
+ })), j = (e, t, n) => A(e, t, n, !0, /* @__PURE__ */ new Set()), M = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
28
121
  if (i.has(n.id)) return [-1, -1];
29
122
  i.add(n.id);
30
123
  let a = t.filter((e) => e.sourceNodeId === n.id);
@@ -33,11 +126,11 @@ var y = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
33
126
  for (let n of a) {
34
127
  let r = e.find((e) => e.id === n.destinationNodeId);
35
128
  if (!r) continue;
36
- let [a, c] = b(e, t, r, !1, new Set(i));
129
+ let [a, c] = M(e, t, r, !1, new Set(i));
37
130
  a !== -1 && (o = Math.min(o, a + 1), s = Math.max(s, c + 1));
38
131
  }
39
132
  return o === Infinity ? [-1, -1] : [o, s];
40
- }, x = (e, t, n) => b(e, t, n, !0, /* @__PURE__ */ new Set()), S = (e, t, n, r = /* @__PURE__ */ new Set()) => {
133
+ }, N = (e, t, n) => M(e, t, n, !0, /* @__PURE__ */ new Set()), P = (e, t, n, r = /* @__PURE__ */ new Set()) => {
41
134
  if (r.has(n.id)) return [-1, -1];
42
135
  if (r.add(n.id), n.type === "origin") return [0, 0];
43
136
  let i = t.filter((e) => e.destinationNodeId === n.id);
@@ -46,37 +139,37 @@ var y = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
46
139
  for (let n of i) {
47
140
  let i = e.find((e) => e.id === n.sourceNodeId);
48
141
  if (!i) continue;
49
- let [s, c] = S(e, t, i, new Set(r));
142
+ let [s, c] = P(e, t, i, new Set(r));
50
143
  s !== -1 && (a = Math.min(a, s + 1), o = Math.max(o, c + 1));
51
144
  }
52
145
  return a === Infinity ? [-1, -1] : [a, o];
53
- }, te = (e, t, n) => S(e, t, n, /* @__PURE__ */ new Set()), C = (e) => e.find((e) => e.type === "origin") || null, w = (e, t, n) => {
54
- if (!e) return C(t);
146
+ }, ee = (e, t, n) => P(e, t, n, /* @__PURE__ */ new Set()), F = (e) => e.find((e) => e.type === "origin") || null, I = (e, t, n) => {
147
+ if (!e) return F(t);
55
148
  let r = n.find((t) => t.sourceNodeId === e.id);
56
149
  return r && t.find((e) => e.id === r.destinationNodeId) || null;
57
150
  };
58
151
  //#endregion
59
152
  //#region src/utils/node-tree/get-next-node-from-condition.ts
60
- async function ne(e, t, n, r) {
153
+ async function te(e, t, n, r) {
61
154
  let i = e ? "true" : "false", a = r.find((e) => e.sourceHandle === i && e.sourceNodeId === t);
62
155
  return n.find((e) => e.id === a?.destinationNodeId);
63
156
  }
64
157
  //#endregion
65
158
  //#region src/entities/experience-instance/experience-instance.ts
66
- var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f, options: p }) => {
67
- let y = l(), b = l(), S = l(), E = l(), D = l(), O = l(), k = l(), A = s.componentStore, j = T.store("transitioning"), M = r.history.entriesStore.map((e) => e.filter((e) => e.experienceId === s.id)), N = M.map((e) => e.filter((e) => h(e.node))), re = N.map((e) => e.length >= 2), P = M.map((e) => e.at(-1)?.node || null), F = a(r.steps.listStore, P, (e, t) => e.find((e) => t && h(t) && e.id === t.stepId) || null), I = a(r.steps.listStore, N, (e, t) => {
159
+ var L = s("experience-instance"), R = f(({ client: r, experience: s, target: f, options: p }) => {
160
+ let y = l(), b = l(), x = l(), S = l(), C = l(), w = l(), T = s.componentStore, E = L.store("transitioning"), D = r.history.entriesStore.map((e) => e.filter((e) => e.experienceId === s.id)), O = D.map((e) => e.filter((e) => h(e.node))), k = D.map((e) => e.at(-1)?.node || null), A = a(r.steps.listStore, k, (e, t) => e.find((e) => t && h(t) && e.id === t.stepId) || null), M = a(r.steps.listStore, O, (e, t) => {
68
161
  let n = t.at(-2);
69
162
  if (!n || !h(n.node)) return null;
70
163
  let r = n.node;
71
164
  return e.find((e) => e.id === r.stepId) || null;
72
- }), L = a(s.treeStore, P, ({ nodes: e, edges: t }, n) => n ? ee(e, t, n) : []), R = a(s.treeStore, P, ({ nodes: e, edges: t }, n) => n ? te(e, t, n) : [-1, -1]), z = a(s.treeStore, P, ({ nodes: e, edges: t }, n) => n ? x(e, t, n) : [-1, -1]), B = T.store(!1), V = o(B, {
165
+ }), P = a(s.treeStore, k, ({ nodes: e, edges: t }, n) => n ? j(e, t, n) : []), R = a(s.treeStore, k, ({ nodes: e, edges: t }, n) => n ? ee(e, t, n) : [-1, -1]), z = a(s.treeStore, k, ({ nodes: e, edges: t }, n) => n ? N(e, t, n) : [-1, -1]), B = L.store(!1), V = o(B, {
73
166
  open: () => !0,
74
167
  close: () => !1,
75
168
  toggle: (e) => !e,
76
169
  set: (e, t) => t
77
- }), ie = c(async () => {
170
+ }), ne = c(async () => {
78
171
  r.history.back({ experienceId: s.id });
79
- }), ae = i({
172
+ }), re = i({
80
173
  source: s.treeStore,
81
174
  effect: async (e, t) => {
82
175
  let n = e.nodes.find((e) => h(e) && e.stepId === t);
@@ -86,22 +179,22 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
86
179
  });
87
180
  }
88
181
  }), H = i({
89
- source: P,
182
+ source: k,
90
183
  effect: (e) => {}
91
184
  }), U = i({
92
185
  source: s.treeStore,
93
- effect: async ({ nodes: e }) => C(e)
186
+ effect: async ({ nodes: e }) => F(e)
94
187
  }), W = i({
95
188
  source: s.treeStore,
96
189
  effect: async ({ nodes: e, edges: t }, n) => {
97
- if (_(n)) return w(n, e, t);
190
+ if (_(n)) return I(n, e, t);
98
191
  }
99
192
  }), G = i({
100
193
  source: s.treeStore,
101
194
  effect: async ({ nodes: e, edges: n, conditions: i }, a) => {
102
195
  if (!m(a)) return;
103
196
  let o = i.find((e) => e.id === a.conditionId)?.logic;
104
- return o ? ne(!!await t(r, o), a.id, e, n) : void 0;
197
+ return o ? te(!!await t(r, o), a.id, e, n) : void 0;
105
198
  }
106
199
  }), K = i({
107
200
  source: {
@@ -145,15 +238,15 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
145
238
  return `${o}${t?.id}`, t || null;
146
239
  }
147
240
  }
148
- }), oe = c((e) => {
241
+ }), ie = c((e) => {
149
242
  g(e) && r.experiences.launch({ key: e.experienceKey });
150
243
  }), q = i({
151
- source: [P, s.treeStore],
152
- effect: async ([e, { nodes: t, edges: n }]) => w(e, t, n)
244
+ source: [k, s.treeStore],
245
+ effect: async ([e, { nodes: t, edges: n }]) => I(e, t, n)
153
246
  }), J = i({
154
- source: [P, s.treeStore],
155
- effect: async ([e, { nodes: t, edges: n }]) => w(e, t, n)
156
- }), se = c((e) => {
247
+ source: [k, s.treeStore],
248
+ effect: async ([e, { nodes: t, edges: n }]) => I(e, t, n)
249
+ }), ae = c((e) => {
157
250
  r.history.push({
158
251
  experienceId: s.id,
159
252
  node: e
@@ -161,14 +254,14 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
161
254
  }), Y = i({
162
255
  source: s.configStore,
163
256
  effect: async ({ initializeOpenLogic: n }) => p?.initialiseOpen === void 0 ? e(n) ? !!await t(r, n) : n ?? !1 : p.initialiseOpen
164
- }), X = a(A, r.frameworks.listStore, (e, t) => {
257
+ }), X = a(T, r.frameworks.listStore, (e, t) => {
165
258
  if (!e) return null;
166
259
  let n = t.find((t) => t.name === e.component.frameworkName);
167
260
  return n ? {
168
261
  component: e,
169
262
  framework: n
170
263
  } : null;
171
- }, { skipVoid: !1 }), Z, ce = i({
264
+ }, { skipVoid: !1 }), Z, oe = i({
172
265
  source: X,
173
266
  effect: (e) => {
174
267
  if (!e) return;
@@ -189,32 +282,30 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
189
282
  experienceName: s.name,
190
283
  configStore: s.configStore,
191
284
  target: f,
192
- componentStore: A,
285
+ componentStore: T,
193
286
  componentAndFrameworkStore: X,
194
- stateStore: j,
287
+ stateStore: E,
195
288
  isOpenStore: B,
196
289
  open: V.open,
197
290
  close: V.close,
198
291
  toggleOpen: V.toggle,
199
292
  setOpen: V.set,
200
293
  treeStore: s.treeStore,
201
- currentNodeStore: P,
202
- currentStepStore: F,
203
- previousStepStore: I,
204
- nextReachableStepNodesStore: L,
294
+ currentNodeStore: k,
295
+ currentStepStore: A,
296
+ previousStepStore: M,
297
+ nextReachableStepNodesStore: P,
205
298
  stepsToOriginStore: R,
206
299
  stepsToLeafStore: z,
207
300
  goToNextStep: b,
208
- goToPreviousStep: S,
209
- goToStepById: E,
210
- stepsHistoryStore: N,
211
- isResumableStore: re,
212
- restart: D,
213
- mountFx: ce
301
+ goToPreviousStep: x,
302
+ goToStepById: S,
303
+ stepsHistoryStore: O,
304
+ mountFx: oe
214
305
  });
215
306
  let Q = l(), $ = l();
216
307
  return u({
217
- clock: P,
308
+ clock: k,
218
309
  target: Q
219
310
  }), u({
220
311
  clock: Q,
@@ -231,7 +322,7 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
231
322
  origin: W,
232
323
  condition: G,
233
324
  step: H,
234
- launchExperience: oe,
325
+ launchExperience: ie,
235
326
  action: K,
236
327
  __: l()
237
328
  }
@@ -245,13 +336,13 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
245
336
  K.doneData
246
337
  ],
247
338
  filter: Boolean,
248
- target: se
339
+ target: ae
249
340
  }), u({
250
341
  clock: b,
251
342
  target: J
252
343
  }), u({
253
344
  clock: b,
254
- source: F,
345
+ source: A,
255
346
  filter: Boolean,
256
347
  target: r.eventBus.prepend((e) => ({
257
348
  type: "step_submit",
@@ -260,7 +351,7 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
260
351
  }))
261
352
  }), u({
262
353
  clock: J.done,
263
- source: F,
354
+ source: A,
264
355
  filter: Boolean,
265
356
  target: r.eventBus.prepend((e) => ({
266
357
  type: "step_submit_success",
@@ -269,7 +360,7 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
269
360
  }))
270
361
  }), u({
271
362
  clock: J.fail,
272
- source: F,
363
+ source: A,
273
364
  filter: Boolean,
274
365
  target: r.eventBus.prepend((e) => ({
275
366
  type: "step_submit_error",
@@ -277,20 +368,11 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
277
368
  experience: Z
278
369
  }))
279
370
  }), u({
280
- clock: S,
281
- target: ie
282
- }), u({
283
- clock: E,
284
- target: ae
371
+ clock: x,
372
+ target: ne
285
373
  }), u({
286
- clock: D,
287
- fn: () => ({ experienceId: s.id }),
288
- target: r.history.resetExperience
289
- }), u({
290
- clock: D,
291
- target: c(() => {
292
- r.responses.clearByExperience(s.id);
293
- })
374
+ clock: S,
375
+ target: re
294
376
  }), u({
295
377
  source: a([
296
378
  G.pending,
@@ -299,10 +381,10 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
299
381
  J.pending
300
382
  ]),
301
383
  fn: (e) => e.some(Boolean) ? "transitioning" : "ready",
302
- target: j
384
+ target: E
303
385
  }), u({
304
386
  clock: H.doneData,
305
- source: F,
387
+ source: A,
306
388
  filter: Boolean,
307
389
  target: r.eventBus.prepend((e) => ({
308
390
  type: "step_enter",
@@ -310,14 +392,14 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
310
392
  experience: Z
311
393
  }))
312
394
  }), u({
313
- clock: k,
395
+ clock: w,
314
396
  target: Y
315
397
  }), u({
316
398
  source: Y.doneData,
317
399
  fn: Boolean,
318
400
  target: B
319
401
  }), u({
320
- source: P,
402
+ source: k,
321
403
  clock: y,
322
404
  filter: (e) => e ? _(e) : !0,
323
405
  target: q
@@ -340,15 +422,15 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
340
422
  experience: Z
341
423
  }))
342
424
  }), u({
343
- clock: O,
344
- target: [k]
345
- }), O(), Z;
425
+ clock: C,
426
+ target: [w]
427
+ }), C(), Z;
346
428
  });
347
- function D(e) {
348
- return p(E, e);
429
+ function z(e) {
430
+ return p(R, e);
349
431
  }
350
- var O = f(({ client: e }) => {
351
- let t = T.store({}), n = l(), i = l(), a = l(), s = o(t, {
432
+ var B = f(({ client: e }) => {
433
+ let t = L.store({}), n = l(), i = l(), a = l(), s = o(t, {
352
434
  register(e, t) {
353
435
  let n = [...e[t.experienceId] ?? []];
354
436
  return n.push(t), {
@@ -363,7 +445,7 @@ var O = f(({ client: e }) => {
363
445
  [n]: r ?? []
364
446
  };
365
447
  }
366
- }), d = c(({ experience: t, target: n, options: r }) => D({
448
+ }), d = c(({ experience: t, target: n, options: r }) => z({
367
449
  client: e,
368
450
  experience: t,
369
451
  target: n,
@@ -423,8 +505,8 @@ var O = f(({ client: e }) => {
423
505
  listStore: _
424
506
  };
425
507
  });
426
- function k(e) {
427
- return p(O, e);
508
+ function V(e) {
509
+ return p(B, e);
428
510
  }
429
511
  //#endregion
430
- export { h as i, k as n, m as r, D as t };
512
+ export { S as a, h as c, O as i, V as n, k as o, w as r, m as s, z as t };
@@ -0,0 +1 @@
1
+ require(`./logger-fbvQC40v.cjs`);const e=require(`./api-DQiViS84.cjs`);let t=require(`effector`);function n(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function r(e){return n(e)%100}function i(e,t){return t<=0?!1:t>=100?!0:e<t}function a(e){return typeof e==`object`&&!!e&&`features`in e&&Array.isArray(e.features)}function o(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function s(e,t){e.registerExperience({id:t.id,key:t.key,name:t.name,targets:t.targets,nodes:t.nodes,edges:t.edges,condition:t.condition,initializeOpen:t.initializeOpen,componentName:t.componentName})}function c(e,t){if(Array.isArray(t.fields))for(let n of t.fields)e.registerField(n)}function l(e,t){if(!Array.isArray(t.steps))return;let n=new Map(t.fields.map(e=>[e.id,e.key]));for(let r of t.steps){let t=[];for(let e of r.fieldIds??[]){let i=n.get(e);if(i===void 0){`${r.key}${e}`;continue}t.push(i)}let i=r.layoutContentId?e.contents.getById(r.layoutContentId):null;e.registerStep({id:r.id,key:r.key,name:r.name,fieldKeys:t,layoutName:r.layoutName,...r.layoutContentId!==void 0&&{layoutContentId:r.layoutContentId,layoutContentStore:i}})}}function u(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)s(e,n)}function d(e,t,n){m(e,t,n.isPreview,n.sessionId),o(e,t),c(e,t),l(e,t),u(e,t)}function f(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function p(e){let t=new Set,n=e.searchParams.feature;if(!n)return t;for(let e of n){let n=e.indexOf(`:`);n>0&&t.add(e.substring(0,n))}return t}function m(e,t,n,i){let a=p(e),o=r(i);for(let r of t.features)a.has(r.id)||h(e,r,n,o)}function h(e,t,n,r){e.registerFeature(t.id,{key:`v${t.version}`,name:t.name,storage:n?`session`:`local`,decide:()=>t.enabled?i(r,t.weight):!1})}function g(e){try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`}catch{return!1}}function _(e){if(typeof e!=`object`||!e||!(`cause`in e))return!1;let{cause:t}=e;return typeof t!=`object`||!t||!(`code`in t)?!1:t.code===`ECONNREFUSED`}async function v(t,n,r){let i=r?.previewToken?`projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}`:`projects/${n}`,o;try{o=await e.t(t,i,r?.headers)}catch(e){return g(t)&&_(e),null}if(!o.ok)return`${o.status.toString()}`,null;let s;try{s=await o.json()}catch{return null}return a(s)?s:null}function y(e){return typeof e!=`object`||!e||!(`experienceId`in e)||!(`content`in e)?!1:Array.isArray(e.content)}async function b(t,n,r,i){let a=i?.previewToken?`projects/${n}/experiences/${r}/content?preview_token=${encodeURIComponent(i.previewToken)}`:`projects/${n}/experiences/${r}/content`,o;try{o=await e.t(t,a,i?.headers)}catch(e){return g(t)&&_(e)||`${r}`,null}if(!o.ok)return`${r}${o.status.toString()}`,null;let s;try{s=await o.json()}catch{return`${r}`,null}return y(s)?s:(`${r}`,null)}function x(e,t){for(let n of t.content)e.registerContent({id:n.id,data:n.data})}function S(e){if(typeof e!=`object`||!e||!(`projectConfig`in e)||!(`experienceContent`in e)||!(`manifestMetadata`in e))return!1;let{experienceContent:t}=e;return typeof t==`function`}async function C(){try{let e=await import(`virtual:picked/data`);return S(e)?e:null}catch{return null}}function w(e,t,n){return r=>b(e,t,r.id,n?{previewToken:n}:void 0)}function T(e,t){return n=>e(n,t?{previewToken:t}:void 0)}function E(e){return(t,n)=>e.experienceContent(t,n)}function D(e,t){let n=new Map;return(r,i)=>{let a=n.get(r.id);if(a)return a;let o=(async()=>{try{let n=await t(r,i);return n&&x(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}async function O(e){let{client:t,apiUrl:n,options:r}=e,i=f(t),a=!!i,o=r?.projectConfig??null,s=r?.getContent?T(r.getContent,i):null,c=null;if(i)return o??=await v(n,t.projectId,{previewToken:i}),s??=w(n,t.projectId,i),{config:o,contentLoader:s,dataSource:c,isPreview:a};if(o&&s)return{config:o,contentLoader:s,dataSource:c,isPreview:a};let l=await C();return l?(o??=l.projectConfig,s??=E(l),c=l.manifestMetadata,{config:o,contentLoader:s,dataSource:c,isPreview:a}):(o??=await v(n,t.projectId),s??=w(n,t.projectId),{config:o,contentLoader:s,dataSource:c,isPreview:a})}function k(e){return{name:`dynamic-experiences`,setup:n=>{let r=e?.apiUrl??n.apiUrl;return{onStart:(0,t.attach)({source:n.session.store.map(e=>e.id),effect:async t=>{let{config:i,contentLoader:a,dataSource:o,isPreview:s}=await O({client:n,apiUrl:r,options:e});a&&(n.contentLoader=D(n,a)),n.dataSource=o,i&&d(n,i,{isPreview:s,sessionId:t})}})}}}}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return k}});
@@ -0,0 +1,240 @@
1
+ import "./logger-6z_gb4rA.js";
2
+ import { t as e } from "./api-BTAT4D4u.js";
3
+ import { attach as t } from "effector";
4
+ //#region src/plugins/dynamic-experiences/hash.ts
5
+ function n(e) {
6
+ let t = 2166136261;
7
+ for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
8
+ return t >>> 0;
9
+ }
10
+ function r(e) {
11
+ return n(e) % 100;
12
+ }
13
+ function i(e, t) {
14
+ return t <= 0 ? !1 : t >= 100 ? !0 : e < t;
15
+ }
16
+ //#endregion
17
+ //#region src/plugins/dynamic-experiences/plugin.ts
18
+ function a(e) {
19
+ return typeof e == "object" && !!e && "features" in e && Array.isArray(e.features);
20
+ }
21
+ function o(e, t) {
22
+ if (Array.isArray(t.conditions)) for (let n of t.conditions) e.registerCondition(n);
23
+ }
24
+ function s(e, t) {
25
+ e.registerExperience({
26
+ id: t.id,
27
+ key: t.key,
28
+ name: t.name,
29
+ targets: t.targets,
30
+ nodes: t.nodes,
31
+ edges: t.edges,
32
+ condition: t.condition,
33
+ initializeOpen: t.initializeOpen,
34
+ componentName: t.componentName
35
+ });
36
+ }
37
+ function c(e, t) {
38
+ if (Array.isArray(t.fields)) for (let n of t.fields) e.registerField(n);
39
+ }
40
+ function l(e, t) {
41
+ if (!Array.isArray(t.steps)) return;
42
+ let n = new Map(t.fields.map((e) => [e.id, e.key]));
43
+ for (let r of t.steps) {
44
+ let t = [];
45
+ for (let e of r.fieldIds ?? []) {
46
+ let i = n.get(e);
47
+ if (i === void 0) {
48
+ `${r.key}${e}`;
49
+ continue;
50
+ }
51
+ t.push(i);
52
+ }
53
+ let i = r.layoutContentId ? e.contents.getById(r.layoutContentId) : null;
54
+ e.registerStep({
55
+ id: r.id,
56
+ key: r.key,
57
+ name: r.name,
58
+ fieldKeys: t,
59
+ layoutName: r.layoutName,
60
+ ...r.layoutContentId !== void 0 && {
61
+ layoutContentId: r.layoutContentId,
62
+ layoutContentStore: i
63
+ }
64
+ });
65
+ }
66
+ }
67
+ function u(e, t) {
68
+ if (Array.isArray(t.experiences)) for (let n of t.experiences) s(e, n);
69
+ }
70
+ function d(e, t, n) {
71
+ m(e, t, n.isPreview, n.sessionId), o(e, t), c(e, t), l(e, t), u(e, t);
72
+ }
73
+ function f(e) {
74
+ let t = e.searchParams["preview-token"];
75
+ if (t && t.length > 0) return t[0];
76
+ }
77
+ function p(e) {
78
+ let t = /* @__PURE__ */ new Set(), n = e.searchParams.feature;
79
+ if (!n) return t;
80
+ for (let e of n) {
81
+ let n = e.indexOf(":");
82
+ n > 0 && t.add(e.substring(0, n));
83
+ }
84
+ return t;
85
+ }
86
+ function m(e, t, n, i) {
87
+ let a = p(e), o = r(i);
88
+ for (let r of t.features) a.has(r.id) || h(e, r, n, o);
89
+ }
90
+ function h(e, t, n, r) {
91
+ e.registerFeature(t.id, {
92
+ key: `v${t.version}`,
93
+ name: t.name,
94
+ storage: n ? "session" : "local",
95
+ decide: () => t.enabled ? i(r, t.weight) : !1
96
+ });
97
+ }
98
+ function g(e) {
99
+ try {
100
+ let t = new URL(e).hostname;
101
+ return t === "localhost" || t === "127.0.0.1" || t === "::1";
102
+ } catch {
103
+ return !1;
104
+ }
105
+ }
106
+ function _(e) {
107
+ if (typeof e != "object" || !e || !("cause" in e)) return !1;
108
+ let { cause: t } = e;
109
+ return typeof t != "object" || !t || !("code" in t) ? !1 : t.code === "ECONNREFUSED";
110
+ }
111
+ async function v(t, n, r) {
112
+ let i = r?.previewToken ? `projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}` : `projects/${n}`, o;
113
+ try {
114
+ o = await e(t, i, r?.headers);
115
+ } catch (e) {
116
+ return g(t) && _(e), null;
117
+ }
118
+ if (!o.ok) return `${o.status.toString()}`, null;
119
+ let s;
120
+ try {
121
+ s = await o.json();
122
+ } catch {
123
+ return null;
124
+ }
125
+ return a(s) ? s : null;
126
+ }
127
+ function y(e) {
128
+ return typeof e != "object" || !e || !("experienceId" in e) || !("content" in e) ? !1 : Array.isArray(e.content);
129
+ }
130
+ async function b(t, n, r, i) {
131
+ let a = i?.previewToken ? `projects/${n}/experiences/${r}/content?preview_token=${encodeURIComponent(i.previewToken)}` : `projects/${n}/experiences/${r}/content`, o;
132
+ try {
133
+ o = await e(t, a, i?.headers);
134
+ } catch (e) {
135
+ return g(t) && _(e) || `${r}`, null;
136
+ }
137
+ if (!o.ok) return `${r}${o.status.toString()}`, null;
138
+ let s;
139
+ try {
140
+ s = await o.json();
141
+ } catch {
142
+ return `${r}`, null;
143
+ }
144
+ return y(s) ? s : (`${r}`, null);
145
+ }
146
+ function x(e, t) {
147
+ for (let n of t.content) e.registerContent({
148
+ id: n.id,
149
+ data: n.data
150
+ });
151
+ }
152
+ function S(e) {
153
+ if (typeof e != "object" || !e || !("projectConfig" in e) || !("experienceContent" in e) || !("manifestMetadata" in e)) return !1;
154
+ let { experienceContent: t } = e;
155
+ return typeof t == "function";
156
+ }
157
+ async function C() {
158
+ try {
159
+ let e = await import("virtual:picked/data");
160
+ return S(e) ? e : null;
161
+ } catch {
162
+ return null;
163
+ }
164
+ }
165
+ function w(e, t, n) {
166
+ return (r) => b(e, t, r.id, n ? { previewToken: n } : void 0);
167
+ }
168
+ function T(e, t) {
169
+ return (n) => e(n, t ? { previewToken: t } : void 0);
170
+ }
171
+ function E(e) {
172
+ return (t, n) => e.experienceContent(t, n);
173
+ }
174
+ function D(e, t) {
175
+ let n = /* @__PURE__ */ new Map();
176
+ return (r, i) => {
177
+ let a = n.get(r.id);
178
+ if (a) return a;
179
+ let o = (async () => {
180
+ try {
181
+ let n = await t(r, i);
182
+ return n && x(e, n), n;
183
+ } finally {
184
+ n.delete(r.id);
185
+ }
186
+ })();
187
+ return n.set(r.id, o), o;
188
+ };
189
+ }
190
+ async function O(e) {
191
+ let { client: t, apiUrl: n, options: r } = e, i = f(t), a = !!i, o = r?.projectConfig ?? null, s = r?.getContent ? T(r.getContent, i) : null, c = null;
192
+ if (i) return o ??= await v(n, t.projectId, { previewToken: i }), s ??= w(n, t.projectId, i), {
193
+ config: o,
194
+ contentLoader: s,
195
+ dataSource: c,
196
+ isPreview: a
197
+ };
198
+ if (o && s) return {
199
+ config: o,
200
+ contentLoader: s,
201
+ dataSource: c,
202
+ isPreview: a
203
+ };
204
+ let l = await C();
205
+ return l ? (o ??= l.projectConfig, s ??= E(l), c = l.manifestMetadata, {
206
+ config: o,
207
+ contentLoader: s,
208
+ dataSource: c,
209
+ isPreview: a
210
+ }) : (o ??= await v(n, t.projectId), s ??= w(n, t.projectId), {
211
+ config: o,
212
+ contentLoader: s,
213
+ dataSource: c,
214
+ isPreview: a
215
+ });
216
+ }
217
+ function k(e) {
218
+ return {
219
+ name: "dynamic-experiences",
220
+ setup: (n) => {
221
+ let r = e?.apiUrl ?? n.apiUrl;
222
+ return { onStart: t({
223
+ source: n.session.store.map((e) => e.id),
224
+ effect: async (t) => {
225
+ let { config: i, contentLoader: a, dataSource: o, isPreview: s } = await O({
226
+ client: n,
227
+ apiUrl: r,
228
+ options: e
229
+ });
230
+ a && (n.contentLoader = D(n, a)), n.dataSource = o, i && d(n, i, {
231
+ isPreview: s,
232
+ sessionId: t
233
+ });
234
+ }
235
+ }) };
236
+ }
237
+ };
238
+ }
239
+ //#endregion
240
+ export { d as i, b as n, v as r, k as t };