@picked/client 0.0.62-next.2 → 0.0.62-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/{api-Cfb-8mqu.js → api-DnsQgAfY.js} +1 -1
  2. package/dist/{api-C-Q9t21v.cjs → api-Dy5cTzV6.cjs} +1 -1
  3. package/dist/cjs/form/index.js +1 -1
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  6. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  7. package/dist/cjs/plugins/single-page-app/index.js +1 -1
  8. package/dist/cjs/plugins/web-components/index.js +1 -1
  9. package/dist/cjs/server/index.js +1 -1
  10. package/dist/esm/form/index.js +1 -1
  11. package/dist/esm/index.js +946 -468
  12. package/dist/esm/plugins/dynamic-experiences/index.js +51 -49
  13. package/dist/esm/plugins/experience-browser-storage/index.js +8 -5
  14. package/dist/esm/plugins/single-page-app/index.js +1 -1
  15. package/dist/esm/plugins/web-components/index.js +1 -1
  16. package/dist/esm/server/index.js +23 -13
  17. package/dist/{experience-instance-DJaNc5Ob.js → experience-instance-BrLWgVAN.js} +148 -133
  18. package/dist/experience-instance-Ct3ogC7n.cjs +1 -0
  19. package/dist/rules-logic-D_CVBuv7.js +13 -0
  20. package/dist/rules-logic-H6P8xwHF.cjs +1 -0
  21. package/dist/types/entities/action/action.d.ts +6 -3
  22. package/dist/types/entities/action/action.d.ts.map +1 -1
  23. package/dist/types/entities/component/component.d.ts +39 -2
  24. package/dist/types/entities/component/component.d.ts.map +1 -1
  25. package/dist/types/entities/experience/experience.d.ts +49 -113
  26. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  27. package/dist/types/entities/experience-instance/experience-instance.d.ts +17 -2
  28. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  29. package/dist/types/entities/feature/feature.d.ts +26 -2
  30. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  31. package/dist/types/entities/field/field.d.ts.map +1 -1
  32. package/dist/types/entities/framework/framework.d.ts +24 -3
  33. package/dist/types/entities/framework/framework.d.ts.map +1 -1
  34. package/dist/types/entities/plugin/plugin.d.ts +32 -1
  35. package/dist/types/entities/plugin/plugin.d.ts.map +1 -1
  36. package/dist/types/entities/predicate/predicate.d.ts +24 -3
  37. package/dist/types/entities/predicate/predicate.d.ts.map +1 -1
  38. package/dist/types/entities/session/session.d.ts +45 -0
  39. package/dist/types/entities/session/session.d.ts.map +1 -0
  40. package/dist/types/exports.d.ts +8 -4
  41. package/dist/types/exports.d.ts.map +1 -1
  42. package/dist/types/index.d.ts +1 -1
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/types/lifecycle/lifecycle.d.ts +47 -0
  45. package/dist/types/lifecycle/lifecycle.d.ts.map +1 -0
  46. package/dist/types/lifecycle/rules-logic.d.ts +24 -0
  47. package/dist/types/lifecycle/rules-logic.d.ts.map +1 -0
  48. package/dist/types/lifecycle/state-snapshot.d.ts +37 -0
  49. package/dist/types/lifecycle/state-snapshot.d.ts.map +1 -0
  50. package/dist/types/logic-engine.d.ts +1 -1
  51. package/dist/types/logic-engine.d.ts.map +1 -1
  52. package/dist/types/picked.d.ts +102 -186
  53. package/dist/types/picked.d.ts.map +1 -1
  54. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  55. package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +1 -1
  56. package/dist/types/plugins/web-components/plugin.d.ts.map +1 -1
  57. package/dist/types/server/index.d.ts +7 -0
  58. package/dist/types/server/index.d.ts.map +1 -1
  59. package/dist/types/utils/events.d.ts +1 -1
  60. package/dist/types/utils/events.d.ts.map +1 -1
  61. package/dist/types/utils/rules-logic.d.ts +4 -9
  62. package/dist/types/utils/rules-logic.d.ts.map +1 -1
  63. package/package.json +2 -2
  64. package/dist/experience-instance-DC2gKwA6.cjs +0 -1
  65. package/dist/rules-logic-BTIxfrJJ.js +0 -240
  66. package/dist/rules-logic-DNLOv90w.cjs +0 -1
  67. package/dist/types/utils/state-snaphot.d.ts +0 -26
  68. package/dist/types/utils/state-snaphot.d.ts.map +0 -1
  69. package/dist/types/utils/user-session.d.ts +0 -12
  70. package/dist/types/utils/user-session.d.ts.map +0 -1
  71. /package/dist/{object-C82v79xc.js → object-DvUDOytC.js} +0 -0
  72. /package/dist/{object-CUJOjanb.cjs → object-ThO1DEyl.cjs} +0 -0
@@ -1,26 +1,27 @@
1
1
  import "../../../logger-6z_gb4rA.js";
2
- import { i as e, t } from "../../../api-Cfb-8mqu.js";
2
+ import { i as e, t } from "../../../api-DnsQgAfY.js";
3
+ import { attach as n } from "effector";
3
4
  //#region src/plugins/dynamic-experiences/hash.ts
4
- function n(e) {
5
+ function r(e) {
5
6
  let t = 2166136261;
6
7
  for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
7
8
  return t >>> 0;
8
9
  }
9
- function r(e) {
10
- return n(e) % 100;
10
+ function i(e) {
11
+ return r(e) % 100;
11
12
  }
12
- function i(e, t) {
13
+ function a(e, t) {
13
14
  return t <= 0 ? !1 : t >= 100 ? !0 : e < t;
14
15
  }
15
16
  //#endregion
16
17
  //#region src/plugins/dynamic-experiences/plugin.ts
17
- function a(e) {
18
+ function o(e) {
18
19
  return typeof e == "object" && !!e && "features" in e && Array.isArray(e.features);
19
20
  }
20
- function o(e, t) {
21
+ function s(e, t) {
21
22
  if (Array.isArray(t.conditions)) for (let n of t.conditions) e.registerCondition(n);
22
23
  }
23
- function s(e, t) {
24
+ function c(e, t) {
24
25
  e.registerExperience({
25
26
  id: t.id,
26
27
  key: t.key,
@@ -33,10 +34,10 @@ function s(e, t) {
33
34
  componentName: t.componentName
34
35
  });
35
36
  }
36
- function c(e, t) {
37
+ function l(e, t) {
37
38
  if (Array.isArray(t.fields)) for (let n of t.fields) e.registerField(n);
38
39
  }
39
- function l(e, t) {
40
+ function u(e, t) {
40
41
  if (!Array.isArray(t.steps)) return;
41
42
  let n = new Map(t.fields.map((e) => [e.id, e.key]));
42
43
  for (let r of t.steps) {
@@ -58,14 +59,14 @@ function l(e, t) {
58
59
  });
59
60
  }
60
61
  }
61
- function u(e, t) {
62
- if (Array.isArray(t.experiences)) for (let n of t.experiences) s(e, n);
62
+ function d(e, t) {
63
+ if (Array.isArray(t.experiences)) for (let n of t.experiences) c(e, n);
63
64
  }
64
- function d(e) {
65
+ function f(e) {
65
66
  let t = e.searchParams["preview-token"];
66
67
  if (t && t.length > 0) return t[0];
67
68
  }
68
- function f(e) {
69
+ function p(e) {
69
70
  let t = /* @__PURE__ */ new Set(), n = e.searchParams.feature;
70
71
  if (!n) return t;
71
72
  for (let e of n) {
@@ -74,21 +75,19 @@ function f(e) {
74
75
  }
75
76
  return t;
76
77
  }
77
- function p(e, t, n) {
78
- let i = f(e), a = e.session?.id;
79
- if (!a) throw Error("Session ID is required for feature registration");
80
- let o = r(a);
81
- for (let r of t.features) i.has(r.id) || m(e, r, n, o);
82
- }
83
78
  function m(e, t, n, r) {
79
+ let a = p(e), o = i(r);
80
+ for (let r of t.features) a.has(r.id) || h(e, r, n, o);
81
+ }
82
+ function h(e, t, n, r) {
84
83
  e.registerFeature(t.id, {
85
84
  key: `v${t.version}`,
86
85
  name: t.name,
87
86
  storage: n ? "session" : "local",
88
- decide: () => t.enabled ? i(r, t.weight) : !1
87
+ decide: () => t.enabled ? a(r, t.weight) : !1
89
88
  });
90
89
  }
91
- function h() {
90
+ function g() {
92
91
  let e;
93
92
  try {
94
93
  e = __PICKED_PROJECT_CONFIG__;
@@ -103,9 +102,9 @@ function h() {
103
102
  return;
104
103
  }
105
104
  else t = e;
106
- if (a(t)) return t;
105
+ if (o(t)) return t;
107
106
  }
108
- function g(e) {
107
+ function _(e) {
109
108
  try {
110
109
  let t = new URL(e).hostname;
111
110
  return t === "localhost" || t === "127.0.0.1" || t === "::1";
@@ -113,49 +112,52 @@ function g(e) {
113
112
  return !1;
114
113
  }
115
114
  }
116
- function _(e) {
115
+ function v(e) {
117
116
  if (typeof e != "object" || !e || !("cause" in e)) return !1;
118
117
  let { cause: t } = e;
119
118
  return typeof t != "object" || !t || !("code" in t) ? !1 : t.code === "ECONNREFUSED";
120
119
  }
121
- async function v(e, n, r) {
122
- let i = r?.previewToken ? `projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}` : `projects/${n}`, o;
120
+ async function y(e, n, r) {
121
+ let i = r?.previewToken ? `projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}` : `projects/${n}`, a;
123
122
  try {
124
- o = await t(e, i, r?.headers);
123
+ a = await t(e, i, r?.headers);
125
124
  } catch (t) {
126
- return g(e) && _(t), null;
125
+ return _(e) && v(t), null;
127
126
  }
128
- if (!o.ok) return `${o.status.toString()}`, null;
127
+ if (!a.ok) return `${a.status.toString()}`, null;
129
128
  let s;
130
129
  try {
131
- s = await o.json();
130
+ s = await a.json();
132
131
  } catch {
133
132
  return null;
134
133
  }
135
- return a(s) ? s : null;
134
+ return o(s) ? s : null;
136
135
  }
137
- function y(e) {
136
+ function b(e) {
138
137
  return {
139
138
  name: "dynamic-experiences",
140
139
  setup: (t) => {
141
- let n = e?.apiUrl ?? t.apiUrl;
142
- return { onStart: async () => {
143
- let r = d(t);
144
- if (r) {
145
- let e = await v(n, t.projectId, { previewToken: r });
146
- e && (p(t, e, !0), o(t, e), c(t, e), l(t, e), u(t, e));
147
- return;
148
- }
149
- let i = e?.projectConfig ?? h();
150
- if (i) {
151
- p(t, i, !1), o(t, i), c(t, i), l(t, i), u(t, i);
152
- return;
140
+ let r = e?.apiUrl ?? t.apiUrl;
141
+ return { onStart: n({
142
+ source: t.session.store.map((e) => e.id),
143
+ effect: async (n) => {
144
+ let i = f(t);
145
+ if (i) {
146
+ let e = await y(r, t.projectId, { previewToken: i });
147
+ e && (m(t, e, !0, n), s(t, e), l(t, e), u(t, e), d(t, e));
148
+ return;
149
+ }
150
+ let a = e?.projectConfig ?? g();
151
+ if (a) {
152
+ m(t, a, !1, n), s(t, a), l(t, a), u(t, a), d(t, a);
153
+ return;
154
+ }
155
+ let o = await y(r, t.projectId);
156
+ o && (m(t, o, !1, n), s(t, o), l(t, o), u(t, o), d(t, o));
153
157
  }
154
- let a = await v(n, t.projectId);
155
- a && (p(t, a, !1), o(t, a), c(t, a), l(t, a), u(t, a));
156
- } };
158
+ }) };
157
159
  }
158
160
  };
159
161
  }
160
162
  //#endregion
161
- export { e as createClientHeaders, y as dynamicExperiencesPlugin, v as fetchProject };
163
+ export { e as createClientHeaders, b as dynamicExperiencesPlugin, y as fetchProject };
@@ -10,7 +10,7 @@ var o = ({ storage: o = "local" } = {}) => ({
10
10
  let c = o === "local" ? t : n, l = i(async (e) => {
11
11
  if (!e) return;
12
12
  let t = r("open-close", "experience", e), n = c.get(t).boolean();
13
- e.setOpen(n ?? e.isOpenStore.getState());
13
+ n !== null && e.setOpen(n);
14
14
  });
15
15
  a({
16
16
  source: s.eventBus,
@@ -18,12 +18,15 @@ var o = ({ storage: o = "local" } = {}) => ({
18
18
  fn: (e) => e.experience,
19
19
  target: l
20
20
  });
21
- let u = i(async (e) => {
22
- let t = r("open-close", "experience", e), n = e.isOpenStore.getState();
23
- c.set(t, n);
21
+ let u = i(async ({ experience: e, isOpen: t }) => {
22
+ let n = r("open-close", "experience", e);
23
+ c.set(n, t);
24
24
  }), d = (e) => a({
25
25
  source: e.isOpenStore,
26
- fn: () => e,
26
+ fn: (t) => ({
27
+ experience: e,
28
+ isOpen: t
29
+ }),
27
30
  target: u
28
31
  });
29
32
  s.experienceInstances.listStore.watch((e) => {
@@ -1,4 +1,4 @@
1
- import { n as e } from "../../../object-C82v79xc.js";
1
+ import { n as e } from "../../../object-DvUDOytC.js";
2
2
  import { d as t, f as n, i as r } from "../../../supports-0XIfd4-R.js";
3
3
  //#region src/plugins/single-page-app/plugin.ts
4
4
  var i = n, a, o = (e) => ({
@@ -9,7 +9,7 @@ var n = () => ({
9
9
  class i extends HTMLElement {
10
10
  connectedCallback() {
11
11
  let e = this.getAttribute("experience-id");
12
- n.isReady && e && n.experiences.launch({ id: e });
12
+ n.readyStore.getState() && e && n.experiences.launch({ id: e });
13
13
  }
14
14
  }
15
15
  window.customElements.define(r, i);
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../experience-instance-DJaNc5Ob.js";
1
+ import { t as e } from "../../experience-instance-BrLWgVAN.js";
2
2
  import { attach as t, createEffect as n, createEvent as r, createStore as i, sample as a } from "effector";
3
3
  //#region src/server/index.ts
4
4
  function o() {
@@ -19,17 +19,27 @@ function s(s, c) {
19
19
  currentExperienceIndex: 0,
20
20
  renderedExperiences: [],
21
21
  isComplete: !1
22
- }), v = n(async ({ experience: e, availableRenderers: t, startRendererIndex: n = 0 }) => {
23
- if (!e) return null;
24
- for (let r = n; r < t.length; r++) {
25
- let n = t[r], i = e.componentStore.getState();
26
- if (i && n?.isValidComponent(i.component)) return {
27
- rendered: await n.render(i.component, s, e),
28
- rendererIndex: r
29
- };
22
+ }), v = n(async (e) => {
23
+ let n = t({
24
+ source: e.experience.componentStore,
25
+ effect: async (t, n) => {
26
+ let r = e.availableRenderers[n];
27
+ return t && r?.isValidComponent(t.component) ? {
28
+ rendered: await r.render(t.component, s, e.experience),
29
+ rendererIndex: n
30
+ } : null;
31
+ }
32
+ }), r = e.startRendererIndex ?? 0;
33
+ for (let t = r; t < e.availableRenderers.length; t++) {
34
+ let e = await n(t);
35
+ if (e) return e;
30
36
  }
31
37
  return null;
32
- });
38
+ }), y = n(async ({ experience: e, availableRenderers: t, startRendererIndex: n = 0 }) => e ? v({
39
+ experience: e,
40
+ availableRenderers: t,
41
+ startRendererIndex: n
42
+ }) : null);
33
43
  return _.on(p, (e, t) => ({
34
44
  ...e,
35
45
  renderedExperiences: [...e.renderedExperiences, t],
@@ -55,9 +65,9 @@ function s(s, c) {
55
65
  availableRenderers: c,
56
66
  startRendererIndex: 0
57
67
  }),
58
- target: v
68
+ target: y
59
69
  }), a({
60
- clock: v.doneData,
70
+ clock: y.doneData,
61
71
  filter: (e) => e !== null,
62
72
  fn: (e) => e.rendered.body,
63
73
  target: p
@@ -65,7 +75,7 @@ function s(s, c) {
65
75
  clock: p,
66
76
  target: f
67
77
  }), a({
68
- clock: v.doneData,
78
+ clock: y.doneData,
69
79
  filter: (e) => e === null,
70
80
  target: h
71
81
  }), a({