@picked/client 0.0.62 → 0.0.63

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 (59) hide show
  1. package/dist/api-BZK_ICsc.cjs +1 -0
  2. package/dist/{api-CD_x70IA.js → api-CQuvieEa.js} +7 -4
  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/{dom-DGePXPpM.js → dom-DjfSrkpp.js} +7 -7
  15. package/dist/{dom-C3C6Fmwz.cjs → dom-sqnnO-CT.cjs} +1 -1
  16. package/dist/esm/index.js +406 -400
  17. package/dist/esm/plugins/dom-observer/index.js +2 -2
  18. package/dist/esm/plugins/dynamic-experiences/index.js +3 -234
  19. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  20. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  21. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  22. package/dist/esm/plugins/responses-indexeddb/index.js +1 -1
  23. package/dist/esm/plugins/single-page-app/index.js +14 -14
  24. package/dist/esm/plugins/web-components/index.js +2 -2
  25. package/dist/esm/plugins/window-object/index.js +1 -1
  26. package/dist/esm/server/index.js +94 -57
  27. package/dist/experience-instance-CVKoGtYE.cjs +1 -0
  28. package/dist/{experience-instance-DImym3m_.js → experience-instance-DBzfLqnk.js} +161 -65
  29. package/dist/plugin-C0q0cRCy.js +241 -0
  30. package/dist/plugin-gwaOQFCe.cjs +1 -0
  31. package/dist/preview-bridge-CGyx7dEx.js +33 -0
  32. package/dist/preview-bridge-DIdDvNXQ.cjs +1 -0
  33. package/dist/supports-34OzZK5j.cjs +1 -0
  34. package/dist/{supports-0XIfd4-R.js → supports-BgjwyijI.js} +11 -4
  35. package/dist/types/entities/content/content.d.ts +5 -0
  36. package/dist/types/entities/content/content.d.ts.map +1 -1
  37. package/dist/types/lifecycle/condition-selection.d.ts +112 -0
  38. package/dist/types/lifecycle/condition-selection.d.ts.map +1 -0
  39. package/dist/types/lifecycle/lifecycle.d.ts.map +1 -1
  40. package/dist/types/picked.d.ts +19 -0
  41. package/dist/types/picked.d.ts.map +1 -1
  42. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +24 -1
  43. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  44. package/dist/types/plugins/dynamic-experiences/types.d.ts +9 -1
  45. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  46. package/dist/types/preview-bridge/index.d.ts +14 -0
  47. package/dist/types/preview-bridge/index.d.ts.map +1 -0
  48. package/dist/types/server/index.d.ts +8 -0
  49. package/dist/types/server/index.d.ts.map +1 -1
  50. package/dist/types/server/serialize.d.ts +84 -0
  51. package/dist/types/server/serialize.d.ts.map +1 -0
  52. package/dist/types/utils/api.d.ts +23 -1
  53. package/dist/types/utils/api.d.ts.map +1 -1
  54. package/dist/types/utils/supports.d.ts +85 -0
  55. package/dist/types/utils/supports.d.ts.map +1 -1
  56. package/package.json +5 -5
  57. package/dist/api-BB-f9JB_.cjs +0 -1
  58. package/dist/experience-instance-DygAdzbn.cjs +0 -1
  59. 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,107 @@ 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
+ clear() {
56
+ return {};
57
+ }
58
+ });
59
+ function n(e) {
60
+ t.set(e);
61
+ }
62
+ function r(e) {
63
+ t.seed(e);
64
+ }
65
+ function i() {
66
+ t.clear();
67
+ }
68
+ function a(t) {
69
+ return e.getState()[t];
70
+ }
71
+ return {
72
+ store: e,
73
+ set: n,
74
+ seed: r,
75
+ peek: a,
76
+ reset: i
77
+ };
78
+ });
79
+ function w() {
80
+ return p(C);
81
+ }
82
+ async function T(n, r, i) {
83
+ return r == null ? !0 : typeof r == "boolean" ? r : e(r) ? await t(n, r, i) === !0 : !0;
84
+ }
85
+ function E(e) {
86
+ if (typeof e == "string") return e;
87
+ if (Array.isArray(e) && typeof e[0] == "string") return e[0];
88
+ }
89
+ function D(e) {
90
+ if (Array.isArray(e)) return e.some(D);
91
+ if (b(e)) {
92
+ let t = E(e.var);
93
+ return t !== void 0 && (t === "actions" || t.startsWith("actions.")) ? !0 : Object.values(e).some(D);
94
+ }
95
+ return !1;
96
+ }
97
+ async function O(e, t, n) {
98
+ let r = D(t), i = S(t);
99
+ if (!r) {
100
+ let t = e.conditionResults.peek(i);
101
+ if (t !== void 0) return t;
102
+ }
103
+ let a = await T(e, t, n?.context);
104
+ return r || e.conditionResults.set({
105
+ hash: i,
106
+ result: a
107
+ }), a;
108
+ }
109
+ async function k(e, t, n) {
110
+ let r = n?.context, i = [
111
+ n?.precondition,
112
+ n?.condition,
113
+ t.condition
114
+ ];
115
+ for (let t of i) if (!await O(e, t, { context: r })) return !1;
116
+ return !0;
117
+ }
118
+ //#endregion
23
119
  //#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) => {
120
+ 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
121
  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()) => {
122
+ return r ? A(e, t, r, !1, i) : [];
123
+ })), j = (e, t, n) => A(e, t, n, !0, /* @__PURE__ */ new Set()), M = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
28
124
  if (i.has(n.id)) return [-1, -1];
29
125
  i.add(n.id);
30
126
  let a = t.filter((e) => e.sourceNodeId === n.id);
@@ -33,11 +129,11 @@ var y = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
33
129
  for (let n of a) {
34
130
  let r = e.find((e) => e.id === n.destinationNodeId);
35
131
  if (!r) continue;
36
- let [a, c] = b(e, t, r, !1, new Set(i));
132
+ let [a, c] = M(e, t, r, !1, new Set(i));
37
133
  a !== -1 && (o = Math.min(o, a + 1), s = Math.max(s, c + 1));
38
134
  }
39
135
  return o === Infinity ? [-1, -1] : [o, s];
40
- }, te = (e, t, n) => b(e, t, n, !0, /* @__PURE__ */ new Set()), x = (e, t, n, r = /* @__PURE__ */ new Set()) => {
136
+ }, N = (e, t, n) => M(e, t, n, !0, /* @__PURE__ */ new Set()), P = (e, t, n, r = /* @__PURE__ */ new Set()) => {
41
137
  if (r.has(n.id)) return [-1, -1];
42
138
  if (r.add(n.id), n.type === "origin") return [0, 0];
43
139
  let i = t.filter((e) => e.destinationNodeId === n.id);
@@ -46,37 +142,37 @@ var y = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
46
142
  for (let n of i) {
47
143
  let i = e.find((e) => e.id === n.sourceNodeId);
48
144
  if (!i) continue;
49
- let [s, c] = x(e, t, i, new Set(r));
145
+ let [s, c] = P(e, t, i, new Set(r));
50
146
  s !== -1 && (a = Math.min(a, s + 1), o = Math.max(o, c + 1));
51
147
  }
52
148
  return a === Infinity ? [-1, -1] : [a, o];
53
- }, S = (e, t, n) => x(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);
149
+ }, ee = (e, t, n) => P(e, t, n, /* @__PURE__ */ new Set()), F = (e) => e.find((e) => e.type === "origin") || null, I = (e, t, n) => {
150
+ if (!e) return F(t);
55
151
  let r = n.find((t) => t.sourceNodeId === e.id);
56
152
  return r && t.find((e) => e.id === r.destinationNodeId) || null;
57
153
  };
58
154
  //#endregion
59
155
  //#region src/utils/node-tree/get-next-node-from-condition.ts
60
- async function ne(e, t, n, r) {
156
+ async function te(e, t, n, r) {
61
157
  let i = e ? "true" : "false", a = r.find((e) => e.sourceHandle === i && e.sourceNodeId === t);
62
158
  return n.find((e) => e.id === a?.destinationNodeId);
63
159
  }
64
160
  //#endregion
65
161
  //#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(), x = l(), E = l(), D = l(), O = l(), k = s.componentStore, A = T.store("transitioning"), j = r.history.entriesStore.map((e) => e.filter((e) => e.experienceId === s.id)), M = j.map((e) => e.filter((e) => h(e.node))), N = j.map((e) => e.at(-1)?.node || null), P = a(r.steps.listStore, N, (e, t) => e.find((e) => t && h(t) && e.id === t.stepId) || null), re = a(r.steps.listStore, M, (e, t) => {
162
+ var L = s("experience-instance"), R = f(({ client: r, experience: s, target: f, options: p }) => {
163
+ 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
164
  let n = t.at(-2);
69
165
  if (!n || !h(n.node)) return null;
70
166
  let r = n.node;
71
167
  return e.find((e) => e.id === r.stepId) || null;
72
- }), F = a(s.treeStore, N, ({ nodes: e, edges: t }, n) => n ? ee(e, t, n) : []), I = a(s.treeStore, N, ({ nodes: e, edges: t }, n) => n ? S(e, t, n) : [-1, -1]), L = a(s.treeStore, N, ({ nodes: e, edges: t }, n) => n ? te(e, t, n) : [-1, -1]), R = T.store(!1), z = o(R, {
168
+ }), 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
169
  open: () => !0,
74
170
  close: () => !1,
75
171
  toggle: (e) => !e,
76
172
  set: (e, t) => t
77
- }), B = c(async () => {
173
+ }), ne = c(async () => {
78
174
  r.history.back({ experienceId: s.id });
79
- }), V = i({
175
+ }), re = i({
80
176
  source: s.treeStore,
81
177
  effect: async (e, t) => {
82
178
  let n = e.nodes.find((e) => h(e) && e.stepId === t);
@@ -86,22 +182,22 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
86
182
  });
87
183
  }
88
184
  }), H = i({
89
- source: N,
185
+ source: k,
90
186
  effect: (e) => {}
91
187
  }), U = i({
92
188
  source: s.treeStore,
93
- effect: async ({ nodes: e }) => C(e)
189
+ effect: async ({ nodes: e }) => F(e)
94
190
  }), W = i({
95
191
  source: s.treeStore,
96
192
  effect: async ({ nodes: e, edges: t }, n) => {
97
- if (_(n)) return w(n, e, t);
193
+ if (_(n)) return I(n, e, t);
98
194
  }
99
195
  }), G = i({
100
196
  source: s.treeStore,
101
197
  effect: async ({ nodes: e, edges: n, conditions: i }, a) => {
102
198
  if (!m(a)) return;
103
199
  let o = i.find((e) => e.id === a.conditionId)?.logic;
104
- return o ? ne(!!await t(r, o), a.id, e, n) : void 0;
200
+ return o ? te(!!await t(r, o), a.id, e, n) : void 0;
105
201
  }
106
202
  }), K = i({
107
203
  source: {
@@ -148,11 +244,11 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
148
244
  }), ie = c((e) => {
149
245
  g(e) && r.experiences.launch({ key: e.experienceKey });
150
246
  }), q = i({
151
- source: [N, s.treeStore],
152
- effect: async ([e, { nodes: t, edges: n }]) => w(e, t, n)
247
+ source: [k, s.treeStore],
248
+ effect: async ([e, { nodes: t, edges: n }]) => I(e, t, n)
153
249
  }), J = i({
154
- source: [N, s.treeStore],
155
- effect: async ([e, { nodes: t, edges: n }]) => w(e, t, n)
250
+ source: [k, s.treeStore],
251
+ effect: async ([e, { nodes: t, edges: n }]) => I(e, t, n)
156
252
  }), ae = c((e) => {
157
253
  r.history.push({
158
254
  experienceId: s.id,
@@ -161,7 +257,7 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
161
257
  }), Y = i({
162
258
  source: s.configStore,
163
259
  effect: async ({ initializeOpenLogic: n }) => p?.initialiseOpen === void 0 ? e(n) ? !!await t(r, n) : n ?? !1 : p.initialiseOpen
164
- }), X = a(k, r.frameworks.listStore, (e, t) => {
260
+ }), X = a(T, r.frameworks.listStore, (e, t) => {
165
261
  if (!e) return null;
166
262
  let n = t.find((t) => t.name === e.component.frameworkName);
167
263
  return n ? {
@@ -189,30 +285,30 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
189
285
  experienceName: s.name,
190
286
  configStore: s.configStore,
191
287
  target: f,
192
- componentStore: k,
288
+ componentStore: T,
193
289
  componentAndFrameworkStore: X,
194
- stateStore: A,
195
- isOpenStore: R,
196
- open: z.open,
197
- close: z.close,
198
- toggleOpen: z.toggle,
199
- setOpen: z.set,
290
+ stateStore: E,
291
+ isOpenStore: B,
292
+ open: V.open,
293
+ close: V.close,
294
+ toggleOpen: V.toggle,
295
+ setOpen: V.set,
200
296
  treeStore: s.treeStore,
201
- currentNodeStore: N,
202
- currentStepStore: P,
203
- previousStepStore: re,
204
- nextReachableStepNodesStore: F,
205
- stepsToOriginStore: I,
206
- stepsToLeafStore: L,
297
+ currentNodeStore: k,
298
+ currentStepStore: A,
299
+ previousStepStore: M,
300
+ nextReachableStepNodesStore: P,
301
+ stepsToOriginStore: R,
302
+ stepsToLeafStore: z,
207
303
  goToNextStep: b,
208
304
  goToPreviousStep: x,
209
- goToStepById: E,
210
- stepsHistoryStore: M,
305
+ goToStepById: S,
306
+ stepsHistoryStore: O,
211
307
  mountFx: oe
212
308
  });
213
309
  let Q = l(), $ = l();
214
310
  return u({
215
- clock: N,
311
+ clock: k,
216
312
  target: Q
217
313
  }), u({
218
314
  clock: Q,
@@ -249,7 +345,7 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
249
345
  target: J
250
346
  }), u({
251
347
  clock: b,
252
- source: P,
348
+ source: A,
253
349
  filter: Boolean,
254
350
  target: r.eventBus.prepend((e) => ({
255
351
  type: "step_submit",
@@ -258,7 +354,7 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
258
354
  }))
259
355
  }), u({
260
356
  clock: J.done,
261
- source: P,
357
+ source: A,
262
358
  filter: Boolean,
263
359
  target: r.eventBus.prepend((e) => ({
264
360
  type: "step_submit_success",
@@ -267,7 +363,7 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
267
363
  }))
268
364
  }), u({
269
365
  clock: J.fail,
270
- source: P,
366
+ source: A,
271
367
  filter: Boolean,
272
368
  target: r.eventBus.prepend((e) => ({
273
369
  type: "step_submit_error",
@@ -276,10 +372,10 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
276
372
  }))
277
373
  }), u({
278
374
  clock: x,
279
- target: B
375
+ target: ne
280
376
  }), u({
281
- clock: E,
282
- target: V
377
+ clock: S,
378
+ target: re
283
379
  }), u({
284
380
  source: a([
285
381
  G.pending,
@@ -288,10 +384,10 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
288
384
  J.pending
289
385
  ]),
290
386
  fn: (e) => e.some(Boolean) ? "transitioning" : "ready",
291
- target: A
387
+ target: E
292
388
  }), u({
293
389
  clock: H.doneData,
294
- source: P,
390
+ source: A,
295
391
  filter: Boolean,
296
392
  target: r.eventBus.prepend((e) => ({
297
393
  type: "step_enter",
@@ -299,45 +395,45 @@ var T = s("experience-instance"), E = f(({ client: r, experience: s, target: f,
299
395
  experience: Z
300
396
  }))
301
397
  }), u({
302
- clock: O,
398
+ clock: w,
303
399
  target: Y
304
400
  }), u({
305
401
  source: Y.doneData,
306
402
  fn: Boolean,
307
- target: R
403
+ target: B
308
404
  }), u({
309
- source: N,
405
+ source: k,
310
406
  clock: y,
311
407
  filter: (e) => e ? _(e) : !0,
312
408
  target: q
313
409
  }), u({
314
- source: R,
410
+ source: B,
315
411
  filter: Boolean,
316
412
  target: y
317
413
  }), u({
318
- source: R,
414
+ source: B,
319
415
  filter: Boolean,
320
416
  target: r.eventBus.prepend(() => ({
321
417
  type: "experience_open",
322
418
  experience: Z
323
419
  }))
324
420
  }), u({
325
- source: R,
421
+ source: B,
326
422
  filter: (e) => !e,
327
423
  target: r.eventBus.prepend(() => ({
328
424
  type: "experience_close",
329
425
  experience: Z
330
426
  }))
331
427
  }), u({
332
- clock: D,
333
- target: [O]
334
- }), D(), Z;
428
+ clock: C,
429
+ target: [w]
430
+ }), C(), Z;
335
431
  });
336
- function D(e) {
337
- return p(E, e);
432
+ function z(e) {
433
+ return p(R, e);
338
434
  }
339
- var O = f(({ client: e }) => {
340
- let t = T.store({}), n = l(), i = l(), a = l(), s = o(t, {
435
+ var B = f(({ client: e }) => {
436
+ let t = L.store({}), n = l(), i = l(), a = l(), s = o(t, {
341
437
  register(e, t) {
342
438
  let n = [...e[t.experienceId] ?? []];
343
439
  return n.push(t), {
@@ -352,7 +448,7 @@ var O = f(({ client: e }) => {
352
448
  [n]: r ?? []
353
449
  };
354
450
  }
355
- }), d = c(({ experience: t, target: n, options: r }) => D({
451
+ }), d = c(({ experience: t, target: n, options: r }) => z({
356
452
  client: e,
357
453
  experience: t,
358
454
  target: n,
@@ -412,8 +508,8 @@ var O = f(({ client: e }) => {
412
508
  listStore: _
413
509
  };
414
510
  });
415
- function k(e) {
416
- return p(O, e);
511
+ function V(e) {
512
+ return p(B, e);
417
513
  }
418
514
  //#endregion
419
- export { h as i, k as n, m as r, D as t };
515
+ export { S as a, m as c, O as i, h as l, V as n, k as o, w as r, D as s, z as t };
@@ -0,0 +1,241 @@
1
+ import "./logger-6z_gb4rA.js";
2
+ import { t as e } from "./api-CQuvieEa.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, i?.signal);
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
+ contentModelKey: n.contentModelKey,
150
+ data: n.data
151
+ });
152
+ }
153
+ function S(e) {
154
+ if (typeof e != "object" || !e || !("projectConfig" in e) || !("experienceContent" in e) || !("manifestMetadata" in e)) return !1;
155
+ let { experienceContent: t } = e;
156
+ return typeof t == "function";
157
+ }
158
+ async function C() {
159
+ try {
160
+ let e = await import("virtual:picked/data");
161
+ return S(e) ? e : null;
162
+ } catch {
163
+ return null;
164
+ }
165
+ }
166
+ function w(e, t, n) {
167
+ return (r) => b(e, t, r.id, n ? { previewToken: n } : void 0);
168
+ }
169
+ function T(e, t) {
170
+ return (n) => e(n, t ? { previewToken: t } : void 0);
171
+ }
172
+ function E(e) {
173
+ return (t, n) => e.experienceContent(t, n);
174
+ }
175
+ function D(e, t) {
176
+ let n = /* @__PURE__ */ new Map();
177
+ return (r, i) => {
178
+ let a = n.get(r.id);
179
+ if (a) return a;
180
+ let o = (async () => {
181
+ try {
182
+ let n = await t(r, i);
183
+ return n && x(e, n), n;
184
+ } finally {
185
+ n.delete(r.id);
186
+ }
187
+ })();
188
+ return n.set(r.id, o), o;
189
+ };
190
+ }
191
+ async function O(e) {
192
+ 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;
193
+ if (i) return o ??= await v(n, t.projectId, { previewToken: i }), s ??= w(n, t.projectId, i), {
194
+ config: o,
195
+ contentLoader: s,
196
+ dataSource: c,
197
+ isPreview: a
198
+ };
199
+ if (o && s) return {
200
+ config: o,
201
+ contentLoader: s,
202
+ dataSource: c,
203
+ isPreview: a
204
+ };
205
+ let l = await C();
206
+ return l ? (o ??= l.projectConfig, s ??= E(l), c = l.manifestMetadata, {
207
+ config: o,
208
+ contentLoader: s,
209
+ dataSource: c,
210
+ isPreview: a
211
+ }) : (o ??= await v(n, t.projectId), s ??= w(n, t.projectId), {
212
+ config: o,
213
+ contentLoader: s,
214
+ dataSource: c,
215
+ isPreview: a
216
+ });
217
+ }
218
+ function k(e) {
219
+ return {
220
+ name: "dynamic-experiences",
221
+ setup: (n) => {
222
+ let r = e?.apiUrl ?? n.apiUrl;
223
+ return { onStart: t({
224
+ source: n.session.store.map((e) => e.id),
225
+ effect: async (t) => {
226
+ let { config: i, contentLoader: a, dataSource: o, isPreview: s } = await O({
227
+ client: n,
228
+ apiUrl: r,
229
+ options: e
230
+ });
231
+ a && (n.contentLoader = D(n, a)), n.dataSource = o, i && d(n, i, {
232
+ isPreview: s,
233
+ sessionId: t
234
+ });
235
+ }
236
+ }) };
237
+ }
238
+ };
239
+ }
240
+ //#endregion
241
+ export { d as i, b as n, v as r, k as t };
@@ -0,0 +1 @@
1
+ require(`./logger-fbvQC40v.cjs`);const e=require(`./api-BZK_ICsc.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,i?.signal)}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,contentModelKey:n.contentModelKey,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,33 @@
1
+ import { n as e } from "./object-DvUDOytC.js";
2
+ import { a as t, f as n } from "./supports-BgjwyijI.js";
3
+ //#region src/preview-bridge/index.ts
4
+ var r = "picked-preview:navigation", i = !1;
5
+ function a() {
6
+ return "*";
7
+ }
8
+ function o() {
9
+ let { href: e, pathname: t, search: n } = globalThis.location, i = {
10
+ type: r,
11
+ href: e,
12
+ pathname: t,
13
+ search: n
14
+ };
15
+ globalThis.parent.postMessage(i, a());
16
+ }
17
+ function s(e) {
18
+ return function(...t) {
19
+ e.apply(this, t), o();
20
+ };
21
+ }
22
+ function c() {
23
+ if (i || !n()) return () => void 0;
24
+ i = !0, o();
25
+ let r = () => {
26
+ o();
27
+ };
28
+ return globalThis.addEventListener("popstate", r), t() && (e(globalThis.history, "pushState", s), e(globalThis.history, "replaceState", s)), () => {
29
+ i = !1, globalThis.removeEventListener("popstate", r);
30
+ };
31
+ }
32
+ //#endregion
33
+ export { c as initPreviewBridge };
@@ -0,0 +1 @@
1
+ const e=require(`./object-ThO1DEyl.cjs`),t=require(`./supports-34OzZK5j.cjs`);var n=`picked-preview:navigation`,r=!1;function i(){return`*`}function a(){let{href:e,pathname:t,search:r}=globalThis.location,a={type:n,href:e,pathname:t,search:r};globalThis.parent.postMessage(a,i())}function o(e){return function(...t){e.apply(this,t),a()}}function s(){if(r||!t.f())return()=>void 0;r=!0,a();let n=()=>{a()};return globalThis.addEventListener(`popstate`,n),t.a()&&(e.n(globalThis.history,`pushState`,o),e.n(globalThis.history,`replaceState`,o)),()=>{r=!1,globalThis.removeEventListener(`popstate`,n)}}exports.initPreviewBridge=s;