@picked/client 0.0.1-dev.1783393641770 → 0.0.1-dev.1783575114714

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 (36) hide show
  1. package/dist/{api-CHtZJL48.js → api-C8oFjhpj.js} +1 -1
  2. package/dist/{api-CEoqdaqt.cjs → api-Dr44uSJA.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/history-browser-storage/index.js +1 -1
  7. package/dist/cjs/server/index.js +1 -1
  8. package/dist/{dom-BwmTHeT7.js → dom-CZyRgp2P.js} +17 -12
  9. package/dist/dom-CdxDV3e-.cjs +1 -0
  10. package/dist/esm/index.js +488 -384
  11. package/dist/esm/plugins/dom-observer/index.js +1 -1
  12. package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
  13. package/dist/esm/plugins/history-browser-storage/index.js +33 -11
  14. package/dist/esm/server/index.js +2 -2
  15. package/dist/experience-instance-BbSXoRrr.cjs +1 -0
  16. package/dist/{experience-instance-CBJJPjEJ.js → experience-instance-M2kR3nTp.js} +202 -213
  17. package/dist/{plugin-C1fanByQ.cjs → plugin-8aSF9x8V.cjs} +1 -1
  18. package/dist/{plugin-mTF3d8cX.js → plugin-DiVy3Ubv.js} +1 -1
  19. package/dist/types/entities/action/action.d.ts +1 -1
  20. package/dist/types/entities/experience/experience.d.ts +2 -2
  21. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  22. package/dist/types/entities/experience-instance/experience-instance.d.ts +23 -6
  23. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  24. package/dist/types/entities/history/history.d.ts +30 -16
  25. package/dist/types/entities/history/history.d.ts.map +1 -1
  26. package/dist/types/entities/response/response.d.ts +1 -0
  27. package/dist/types/entities/response/response.d.ts.map +1 -1
  28. package/dist/types/picked.d.ts +10 -14
  29. package/dist/types/picked.d.ts.map +1 -1
  30. package/dist/types/plugins/history-browser-storage/plugin.d.ts +17 -0
  31. package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
  32. package/dist/types/utils/dom.d.ts +94 -0
  33. package/dist/types/utils/dom.d.ts.map +1 -1
  34. package/package.json +2 -2
  35. package/dist/dom-CDrHc_j9.cjs +0 -1
  36. package/dist/experience-instance-qBWC_Wr2.cjs +0 -1
@@ -1,7 +1,8 @@
1
1
  import { n as e, t } from "./rules-logic-HesIUCu6.js";
2
2
  import "./logger-DMN6TxJJ.js";
3
- import { n, o as r } from "./dom-BwmTHeT7.js";
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";
3
+ import { n, s as r } from "./dom-CZyRgp2P.js";
4
+ import { t as i } from "./id-Bo4RBeOs.js";
5
+ import { attach as a, combine as o, createApi as s, createDomain as c, createEffect as l, createEvent as u, sample as d, split as ee } from "effector";
5
6
  import { createFactory as f, invoke as p } from "@withease/factories";
6
7
  //#region src/utils/nodes.ts
7
8
  function m(e) {
@@ -21,7 +22,7 @@ function v(e) {
21
22
  }
22
23
  //#endregion
23
24
  //#region src/lifecycle/condition-selection.ts
24
- var y = "conditions.", b = s("condition-results");
25
+ var y = "conditions.", b = c("condition-results");
25
26
  function x(e) {
26
27
  return typeof e == "object" && !!e && !Array.isArray(e);
27
28
  }
@@ -39,7 +40,7 @@ function C(e) {
39
40
  return JSON.stringify(S(e));
40
41
  }
41
42
  var w = f(() => {
42
- let e = b.store({}), t = o(e, {
43
+ let e = b.store({}), t = s(e, {
43
44
  set(e, t) {
44
45
  return {
45
46
  ...e,
@@ -140,7 +141,7 @@ async function M(e, t, n) {
140
141
  var N = (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) => {
141
142
  let r = e.find((e) => e.id === n.destinationNodeId);
142
143
  return r ? N(e, t, r, !1, i) : [];
143
- })), ee = (e, t, n) => N(e, t, n, !0, /* @__PURE__ */ new Set()), P = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
144
+ })), te = (e, t, n) => N(e, t, n, !0, /* @__PURE__ */ new Set()), P = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
144
145
  if (i.has(n.id)) return [-1, -1];
145
146
  i.add(n.id);
146
147
  let a = t.filter((e) => e.sourceNodeId === n.id);
@@ -153,7 +154,7 @@ var N = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
153
154
  a !== -1 && (o = Math.min(o, a + 1), s = Math.max(s, c + 1));
154
155
  }
155
156
  return o === Infinity ? [-1, -1] : [o, s];
156
- }, te = (e, t, n) => P(e, t, n, !0, /* @__PURE__ */ new Set()), F = (e, t, n, r = /* @__PURE__ */ new Set()) => {
157
+ }, ne = (e, t, n) => P(e, t, n, !0, /* @__PURE__ */ new Set()), F = (e, t, n, r = /* @__PURE__ */ new Set()) => {
157
158
  if (r.has(n.id)) return [-1, -1];
158
159
  if (r.add(n.id), n.type === "origin") return [0, 0];
159
160
  let i = t.filter((e) => e.destinationNodeId === n.id);
@@ -166,84 +167,72 @@ var N = (e, t, n, r, i = /* @__PURE__ */ new Set()) => i.has(n.id) ? [] : (i.add
166
167
  s !== -1 && (a = Math.min(a, s + 1), o = Math.max(o, c + 1));
167
168
  }
168
169
  return a === Infinity ? [-1, -1] : [a, o];
169
- }, ne = (e, t, n) => F(e, t, n, /* @__PURE__ */ new Set()), I = (e) => e.find((e) => e.type === "origin") || null, L = (e, t, n) => {
170
+ }, re = (e, t, n) => F(e, t, n, /* @__PURE__ */ new Set()), I = (e) => e.find((e) => e.type === "origin") || null, L = (e, t, n) => {
170
171
  if (!e) return I(t);
171
172
  let r = n.find((t) => t.sourceNodeId === e.id);
172
173
  return r && t.find((e) => e.id === r.destinationNodeId) || null;
173
174
  };
174
175
  //#endregion
175
176
  //#region src/utils/node-tree/get-next-node-from-condition.ts
176
- async function re(e, t, n, r) {
177
+ async function ie(e, t, n, r) {
177
178
  let i = e ? "true" : "false", a = r.find((e) => e.sourceHandle === i && e.sourceNodeId === t);
178
179
  return n.find((e) => e.id === a?.destinationNodeId);
179
180
  }
180
181
  //#endregion
181
182
  //#region src/entities/experience-instance/experience-instance.ts
182
- var R = s("experience-instance"), z = f(({ client: r, experience: s, target: f, options: p }) => {
183
- let y = l(), b = l(), x = l(), S = l(), C = l(), w = l(), T = l(), E = s.componentStore, D = R.store("transitioning"), O = r.history.entriesStore.map((e) => e.filter((e) => e.experienceId === s.id)), k = O.map((e) => e.filter((e) => h(e.node))), A = O.map((e) => e.at(-1)?.node || null), j = R.store(null);
184
- u({
185
- clock: [A, r.steps.listStore],
186
- source: {
187
- steps: r.steps.listStore,
188
- node: A
189
- },
190
- filter: ({ node: e }) => e !== null && h(e),
191
- fn: ({ steps: e, node: t }) => !t || !h(t) ? null : e.find((e) => e.id === t.stepId) ?? null,
192
- target: j
183
+ function R(e, t, n, r) {
184
+ let i = t.find((t) => t.sourceNodeId === e.id && t.sourceHandle === r);
185
+ return i ? n.find((e) => e.id === i.destinationNodeId) ?? null : null;
186
+ }
187
+ var z = c("experience-instance"), B = f(({ client: r, experience: c, target: f, options: p }) => {
188
+ let y = i("exp-instance");
189
+ r.history.seedInstanceFromSnapshot({
190
+ instanceId: y,
191
+ experienceId: c.id
193
192
  });
194
- let M = a(r.steps.listStore, k, (e, t) => {
193
+ let b = u(), x = u(), S = u(), C = u(), w = u(), T = u(), E = u(), D = u(), O = c.componentStore, k = z.store("transitioning"), A = r.history.entriesStore.map((e) => e.filter((e) => e.instanceId === y)), j = A.map((e) => e.filter((e) => h(e.node))), M = j.map((e) => e.length >= 2), N = A.map((e) => e.at(-1)?.node || null), P = o(r.steps.listStore, N, (e, t) => e.find((e) => t && h(t) && e.id === t.stepId) || null), F = o(r.steps.listStore, j, (e, t) => {
195
194
  let n = t.at(-2);
196
195
  if (!n || !h(n.node)) return null;
197
196
  let r = n.node;
198
197
  return e.find((e) => e.id === r.stepId) || null;
199
- }), N = a(s.treeStore, A, ({ nodes: e, edges: t }, n) => n ? ee(e, t, n) : []), P = a(s.treeStore, A, ({ nodes: e, edges: t }, n) => n ? ne(e, t, n) : [-1, -1]), F = a(s.treeStore, A, ({ nodes: e, edges: t }, n) => n ? te(e, t, n) : [-1, -1]), z = R.store(!1), B = o(z, {
198
+ }), B = o(c.treeStore, N, ({ nodes: e, edges: t }, n) => n ? te(e, t, n) : []), V = o(c.treeStore, N, ({ nodes: e, edges: t }, n) => n ? re(e, t, n) : [-1, -1]), H = o(c.treeStore, N, ({ nodes: e, edges: t }, n) => n ? ne(e, t, n) : [-1, -1]), U = z.store(!1), W = s(U, {
200
199
  open: () => !0,
201
200
  close: () => !1,
202
201
  toggle: (e) => !e,
203
202
  set: (e, t) => t
204
- }), V = c(async () => {
205
- r.history.back({ experienceId: s.id });
206
- }), H = i({
207
- source: s.treeStore,
208
- effect: async (e, t) => {
203
+ }), ae = l(() => {
204
+ r.history.back({ instanceId: y });
205
+ }), oe = a({
206
+ source: c.treeStore,
207
+ effect: (e, t) => {
209
208
  let n = e.nodes.find((e) => h(e) && e.stepId === t);
210
209
  n && r.history.push({
211
- experienceId: s.id,
210
+ instanceId: y,
211
+ experienceId: c.id,
212
212
  node: n
213
213
  });
214
214
  }
215
- }), ie = i({
216
- source: s.treeStore,
217
- effect: async (e, t) => {
218
- let n = e.steps.find((e) => e.key === t);
219
- if (!n) return;
220
- let i = e.nodes.find((e) => h(e) && e.stepId === n.id);
221
- i && r.history.push({
222
- experienceId: s.id,
223
- node: i
224
- });
225
- }
226
- }), U = i({
227
- source: A,
215
+ }), G = a({
216
+ source: N,
228
217
  effect: (e) => {}
229
- }), W = i({
230
- source: s.treeStore,
218
+ }), K = a({
219
+ source: c.treeStore,
231
220
  effect: async ({ nodes: e }) => I(e)
232
- }), G = i({
233
- source: s.treeStore,
221
+ }), q = a({
222
+ source: c.treeStore,
234
223
  effect: async ({ nodes: e, edges: t }, n) => {
235
224
  if (_(n)) return L(n, e, t);
236
225
  }
237
- }), K = i({
238
- source: s.treeStore,
226
+ }), J = a({
227
+ source: c.treeStore,
239
228
  effect: async ({ nodes: e, edges: n, conditions: i }, a) => {
240
229
  if (!m(a)) return;
241
230
  let o = i.find((e) => e.id === a.conditionId)?.logic;
242
- return o ? re(!!await t(r, o), a.id, e, n) : void 0;
231
+ return o ? ie(!!await t(r, o), a.id, e, n) : void 0;
243
232
  }
244
- }), q = i({
233
+ }), Y = a({
245
234
  source: {
246
- tree: s.treeStore,
235
+ tree: c.treeStore,
247
236
  actions: r.actions.listStore,
248
237
  snapshot: r.stateSnapshotStore
249
238
  },
@@ -256,62 +245,50 @@ var R = s("experience-instance"), z = f(({ client: r, experience: s, target: f,
256
245
  return;
257
246
  }
258
247
  let s = t.find((e) => e.key === o)?.action;
259
- if (!s) {
260
- `${o}`;
261
- let e = a.find((e) => e.sourceNodeId === r.id && e.sourceHandle === "false");
262
- return e ? i.find((t) => t.id === e.destinationNodeId) : null;
263
- }
264
- if (typeof s != "function") {
265
- `${o}`;
266
- let e = a.find((e) => e.sourceNodeId === r.id && e.sourceHandle === "false");
267
- return e ? i.find((t) => t.id === e.destinationNodeId) : null;
268
- }
248
+ if (!s || typeof s != "function") return `${o}`, R(r, a, i, "false");
269
249
  try {
270
250
  `${o}`, await s({
271
251
  ...n,
272
252
  args: []
273
253
  }, { experience: Q });
274
- let e = a.find((e) => e.sourceNodeId === r.id && e.sourceHandle === "true");
275
- if (!e) return `${r.id}`, null;
276
- let t = i.find((t) => t.id === e.destinationNodeId);
277
- return `${o}${t?.id}`, t || null;
254
+ let e = R(r, a, i, "true");
255
+ return e ? (`${o}${e.id}`, e) : (`${r.id}`, null);
278
256
  } catch {
279
257
  `${o}`;
280
- let e = a.find((e) => e.sourceNodeId === r.id && e.sourceHandle === "false");
281
- if (!e) return `${r.id}`, null;
282
- let t = i.find((t) => t.id === e.destinationNodeId);
283
- return `${o}${t?.id}`, t || null;
258
+ let e = R(r, a, i, "false");
259
+ return e ? (`${o}${e.id}`, e) : (`${r.id}`, null);
284
260
  }
285
261
  }
286
- }), ae = c((e) => {
262
+ }), se = l((e) => {
287
263
  g(e) && r.experiences.launch({ key: e.experienceKey });
288
- }), J = i({
289
- source: [A, s.treeStore],
264
+ }), X = a({
265
+ source: [N, c.treeStore],
290
266
  effect: async ([e, { nodes: t, edges: n }]) => L(e, t, n)
291
- }), Y = i({
292
- source: [A, s.treeStore],
267
+ }), Z = a({
268
+ source: [N, c.treeStore],
293
269
  effect: async ([e, { nodes: t, edges: n }]) => L(e, t, n)
294
- }), oe = c((e) => {
270
+ }), ce = l((e) => {
295
271
  r.history.push({
296
- experienceId: s.id,
272
+ instanceId: y,
273
+ experienceId: c.id,
297
274
  node: e
298
275
  });
299
- }), X = i({
300
- source: s.configStore,
276
+ }), le = a({
277
+ source: c.configStore,
301
278
  effect: async ({ initializeOpenLogic: n }) => p?.initialiseOpen === void 0 ? e(n) ? !!await t(r, n) : n ?? !1 : p.initialiseOpen
302
- }), Z = a(E, r.frameworks.listStore, (e, t) => {
279
+ }), ue = o(O, r.frameworks.listStore, (e, t) => {
303
280
  if (!e) return null;
304
281
  let n = t.find((t) => t.name === e.component.frameworkName);
305
282
  return n ? {
306
283
  component: e,
307
284
  framework: n
308
285
  } : null;
309
- }, { skipVoid: !1 }), Q, se = i({
310
- source: Z,
286
+ }, { skipVoid: !1 }), Q, de = a({
287
+ source: ue,
311
288
  effect: (e) => {
312
289
  if (!e) return;
313
290
  if (!f) {
314
- `${s.id}`;
291
+ `${c.id}`;
315
292
  return;
316
293
  }
317
294
  let t = n(f);
@@ -321,167 +298,179 @@ var R = s("experience-instance"), z = f(({ client: r, experience: s, target: f,
321
298
  }
322
299
  });
323
300
  Q = Object.freeze({
324
- id: Math.random().toString(36).substring(7),
325
- experienceKey: s.key,
326
- experienceId: s.id,
327
- experienceName: s.name,
328
- configStore: s.configStore,
301
+ id: y,
302
+ experienceKey: c.key,
303
+ experienceId: c.id,
304
+ experienceName: c.name,
305
+ configStore: c.configStore,
329
306
  target: f,
330
- componentStore: E,
331
- componentAndFrameworkStore: Z,
332
- stateStore: D,
333
- isOpenStore: z,
334
- open: B.open,
335
- close: B.close,
336
- toggleOpen: B.toggle,
337
- setOpen: B.set,
338
- treeStore: s.treeStore,
339
- currentNodeStore: A,
340
- currentStepStore: j,
341
- previousStepStore: M,
342
- nextReachableStepNodesStore: N,
343
- stepsToOriginStore: P,
344
- stepsToLeafStore: F,
345
- goToNextStep: b,
346
- goToPreviousStep: x,
347
- goToStepById: S,
348
- goToStepByKey: C,
349
- stepsHistoryStore: k,
350
- mountFx: se
307
+ componentStore: O,
308
+ componentAndFrameworkStore: ue,
309
+ stateStore: k,
310
+ isOpenStore: U,
311
+ open: W.open,
312
+ close: W.close,
313
+ toggleOpen: W.toggle,
314
+ setOpen: W.set,
315
+ treeStore: c.treeStore,
316
+ currentNodeStore: N,
317
+ currentStepStore: P,
318
+ previousStepStore: F,
319
+ nextReachableStepNodesStore: B,
320
+ stepsToOriginStore: V,
321
+ stepsToLeafStore: H,
322
+ goToNextStep: x,
323
+ goToPreviousStep: S,
324
+ goToStepById: C,
325
+ reset: w,
326
+ stepsHistoryStore: j,
327
+ isResumableStore: M,
328
+ restart: T,
329
+ mountFx: de
351
330
  });
352
- let $ = l(), ce = l();
353
- return u({
354
- clock: A,
331
+ let $ = u(), fe = u();
332
+ d({
333
+ clock: N,
355
334
  target: $
356
- }), u({
335
+ }), d({
357
336
  clock: $,
358
337
  filter: (e) => e === null,
359
- target: W
360
- }), u({
338
+ target: K
339
+ }), d({
361
340
  clock: $,
362
341
  filter: (e) => e !== null,
363
- target: ce
364
- }), d({
365
- source: ce,
342
+ target: fe
343
+ }), ee({
344
+ source: fe,
366
345
  match: (e) => m(e) ? "condition" : h(e) ? "step" : g(e) ? "launchExperience" : _(e) ? "origin" : v(e) ? "action" : "other",
367
346
  cases: {
368
- origin: G,
369
- condition: K,
370
- step: U,
371
- launchExperience: ae,
372
- action: q,
373
- __: l()
347
+ origin: q,
348
+ condition: J,
349
+ step: G,
350
+ launchExperience: se,
351
+ action: Y,
352
+ __: u()
374
353
  }
375
- }), u({
354
+ }), d({
376
355
  clock: [
377
- K.doneData,
378
- G.doneData,
379
- W.doneData,
380
- Y.doneData,
381
356
  J.doneData,
382
- q.doneData
357
+ q.doneData,
358
+ K.doneData,
359
+ Z.doneData,
360
+ X.doneData,
361
+ Y.doneData
383
362
  ],
384
363
  filter: Boolean,
385
- target: oe
386
- }), u({
387
- clock: b,
388
- target: Y
389
- }), u({
390
- clock: b,
391
- source: j,
364
+ target: ce
365
+ }), d({
366
+ clock: x,
367
+ target: Z
368
+ }), d({
369
+ clock: x,
370
+ source: P,
392
371
  filter: Boolean,
393
372
  target: r.eventBus.prepend((e) => ({
394
373
  type: "step_submit",
395
374
  step: e,
396
375
  experience: Q
397
376
  }))
398
- }), u({
399
- clock: Y.done,
400
- source: j,
377
+ }), d({
378
+ clock: Z.done,
379
+ source: P,
401
380
  filter: Boolean,
402
381
  target: r.eventBus.prepend((e) => ({
403
382
  type: "step_submit_success",
404
383
  step: e,
405
384
  experience: Q
406
385
  }))
407
- }), u({
408
- clock: Y.fail,
409
- source: j,
386
+ }), d({
387
+ clock: Z.fail,
388
+ source: P,
410
389
  filter: Boolean,
411
390
  target: r.eventBus.prepend((e) => ({
412
391
  type: "step_submit_error",
413
392
  step: e,
414
393
  experience: Q
415
394
  }))
416
- }), u({
417
- clock: x,
418
- target: V
419
- }), u({
395
+ }), d({
420
396
  clock: S,
421
- target: H
422
- }), u({
397
+ target: ae
398
+ }), d({
423
399
  clock: C,
424
- target: ie
425
- }), u({
426
- source: a([
427
- K.pending,
428
- G.pending,
429
- W.pending,
430
- Y.pending,
400
+ target: oe
401
+ }), d({
402
+ clock: w,
403
+ fn: () => ({ instanceId: y }),
404
+ target: r.history.clearForInstance
405
+ });
406
+ let pe = l(() => {
407
+ r.responses.clearByExperience(c.id);
408
+ });
409
+ return d({
410
+ clock: T,
411
+ fn: () => ({ instanceId: y }),
412
+ target: r.history.clearForInstance
413
+ }), d({
414
+ clock: T,
415
+ target: pe
416
+ }), d({
417
+ source: o([
431
418
  J.pending,
432
- q.pending
419
+ q.pending,
420
+ K.pending,
421
+ Z.pending
433
422
  ]),
434
423
  fn: (e) => e.some(Boolean) ? "transitioning" : "ready",
435
- target: D
436
- }), u({
437
- clock: U.doneData,
438
- source: j,
424
+ target: k
425
+ }), d({
426
+ clock: G.doneData,
427
+ source: P,
439
428
  filter: Boolean,
440
429
  target: r.eventBus.prepend((e) => ({
441
430
  type: "step_enter",
442
431
  step: e,
443
432
  experience: Q
444
433
  }))
445
- }), u({
446
- clock: T,
447
- target: X
448
- }), u({
449
- source: X.doneData,
434
+ }), d({
435
+ clock: D,
436
+ target: le
437
+ }), d({
438
+ source: le.doneData,
450
439
  fn: Boolean,
451
- target: z
452
- }), u({
453
- source: A,
454
- clock: y,
440
+ target: U
441
+ }), d({
442
+ source: N,
443
+ clock: b,
455
444
  filter: (e) => e ? _(e) : !0,
456
- target: J
457
- }), u({
458
- source: z,
445
+ target: X
446
+ }), d({
447
+ source: U,
459
448
  filter: Boolean,
460
- target: y
461
- }), u({
462
- source: z,
449
+ target: b
450
+ }), d({
451
+ source: U,
463
452
  filter: Boolean,
464
453
  target: r.eventBus.prepend(() => ({
465
454
  type: "experience_open",
466
455
  experience: Q
467
456
  }))
468
- }), u({
469
- source: z,
457
+ }), d({
458
+ source: U,
470
459
  filter: (e) => !e,
471
460
  target: r.eventBus.prepend(() => ({
472
461
  type: "experience_close",
473
462
  experience: Q
474
463
  }))
475
- }), u({
476
- clock: w,
477
- target: [T]
478
- }), w(), Q;
464
+ }), d({
465
+ clock: E,
466
+ target: [D]
467
+ }), E(), Q;
479
468
  });
480
- function B(e) {
481
- return p(z, e);
469
+ function V(e) {
470
+ return p(B, e);
482
471
  }
483
- var V = f(({ client: e }) => {
484
- let t = R.store({}), n = l(), i = l(), a = l(), s = o(t, {
472
+ var H = f(({ client: e }) => {
473
+ let t = z.store({}), n = u(), i = u(), a = u(), o = s(t, {
485
474
  register(e, t) {
486
475
  let n = [...e[t.experienceId] ?? []];
487
476
  return n.push(t), {
@@ -496,68 +485,68 @@ var V = f(({ client: e }) => {
496
485
  [n]: r ?? []
497
486
  };
498
487
  }
499
- }), d = c(({ experience: t, target: n, options: r }) => B({
488
+ }), c = l(({ experience: t, target: n, options: r }) => V({
500
489
  client: e,
501
490
  experience: t,
502
491
  target: n,
503
492
  options: r
504
- })), f = c((e) => {
505
- s.register(e);
506
- }), p = c((e) => {
493
+ })), ee = l((e) => {
494
+ o.register(e);
495
+ }), f = l((e) => {
507
496
  e.target && r(e.target, () => {
508
497
  a(e);
509
498
  });
510
- }), m = c((e) => {
511
- s.unregister(e);
512
- }), h = c(async (e) => {
499
+ }), p = l((e) => {
500
+ o.unregister(e);
501
+ }), m = l(async (e) => {
513
502
  await e.mountFx();
514
503
  });
515
- u({
504
+ d({
516
505
  clock: n,
517
- target: d
518
- }), u({
506
+ target: c
507
+ }), d({
519
508
  clock: a,
520
- target: m
521
- }), u({
522
- clock: d.doneData,
509
+ target: p
510
+ }), d({
511
+ clock: c.doneData,
523
512
  target: [
513
+ ee,
524
514
  f,
525
- p,
526
515
  i
527
516
  ]
528
- }), u({
529
- clock: d.doneData,
517
+ }), d({
518
+ clock: c.doneData,
530
519
  target: e.eventBus.prepend((e) => ({
531
520
  type: "experience_initialize",
532
521
  experience: e
533
522
  }))
534
- }), u({
523
+ }), d({
535
524
  clock: i,
536
- target: h
525
+ target: m
537
526
  });
538
- function g(e, t, r) {
527
+ function h(e, t, r) {
539
528
  n({
540
529
  experience: e,
541
530
  target: t,
542
531
  options: r
543
532
  });
544
533
  }
545
- let _ = t.map((e) => Object.values(e).flat());
546
- function v(e) {
547
- return _.map((t) => t.filter((t) => t.experienceKey === e), { skipVoid: !1 });
534
+ let g = t.map((e) => Object.values(e).flat());
535
+ function _(e) {
536
+ return g.map((t) => t.filter((t) => t.experienceKey === e), { skipVoid: !1 });
548
537
  }
549
- function y(e) {
538
+ function v(e) {
550
539
  return t.map((t) => t[e] || [], { skipVoid: !1 });
551
540
  }
552
541
  return {
553
- spawn: g,
554
- getByExperienceKey: v,
555
- getByExperienceId: y,
556
- listStore: _
542
+ spawn: h,
543
+ getByExperienceKey: _,
544
+ getByExperienceId: v,
545
+ listStore: g
557
546
  };
558
547
  });
559
- function H(e) {
560
- return p(V, e);
548
+ function U(e) {
549
+ return p(H, e);
561
550
  }
562
551
  //#endregion
563
- export { C as a, A as c, j as i, m as l, H as n, M as o, T as r, O as s, B as t, h as u };
552
+ export { C as a, A as c, j as i, m as l, U as n, M as o, T as r, O as s, V as t, h as u };
@@ -1 +1 @@
1
- require("./logger-CSTvAyyB.cjs");const e=require("./api-CEoqdaqt.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}}function O(e,t){let n=new Set(t&&Array.isArray(t.experiences)?t.experiences.map(e=>e.id):[]);return(t,r)=>n.has(t.id)?e(t,r):Promise.resolve(null)}async function k(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 A(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 k({client:n,apiUrl:r,options:e});a&&(n.contentLoader=D(n,O(a,i))),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 A}});
1
+ require("./logger-CSTvAyyB.cjs");const e=require("./api-Dr44uSJA.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}}function O(e,t){let n=new Set(t&&Array.isArray(t.experiences)?t.experiences.map(e=>e.id):[]);return(t,r)=>n.has(t.id)?e(t,r):Promise.resolve(null)}async function k(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 A(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 k({client:n,apiUrl:r,options:e});a&&(n.contentLoader=D(n,O(a,i))),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 A}});
@@ -1,5 +1,5 @@
1
1
  import "./logger-DMN6TxJJ.js";
2
- import { t as e } from "./api-CHtZJL48.js";
2
+ import { t as e } from "./api-C8oFjhpj.js";
3
3
  import { attach as t } from "effector";
4
4
  //#region src/plugins/dynamic-experiences/hash.ts
5
5
  function n(e) {
@@ -21,7 +21,7 @@ export interface ActionContext {
21
21
  * only and have no triggering instance.
22
22
  *
23
23
  * Re-entrancy: do not synchronously call navigation events (`goToNextStep`,
24
- * `goToPreviousStep`, `goToStepById`, `goToStepByKey`) or open-state events (`open`, `close`,
24
+ * `goToPreviousStep`, `goToStepById`) or open-state events (`open`, `close`,
25
25
  * `toggleOpen`, `setOpen`) on `context.experience` before the handler's returned
26
26
  * promise resolves. Those writes race the flow runtime's post-action history
27
27
  * push and produce non-deterministic ordering. Perform control flow after your