@picked/client 0.0.1-dev.1786065500148 → 0.0.1-dev.1786072899095

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 (41) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/api-BzK4kXRt.js +38 -0
  3. package/dist/api-CgENjKwJ.cjs +1 -0
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  6. package/dist/cjs/server/index.js +1 -1
  7. package/dist/docs/explanation/how-picked-works.md +3 -25
  8. package/dist/docs/reference/sdk/plugins/dynamic-experiences.md +2 -50
  9. package/dist/docs/reference/tools/vite-plugin.md +8 -90
  10. package/dist/esm/index.js +452 -499
  11. package/dist/esm/plugins/dynamic-experiences/index.js +3 -3
  12. package/dist/esm/server/index.js +46 -43
  13. package/dist/plugin-DJjtc5df.js +252 -0
  14. package/dist/plugin-jHxSAqGG.cjs +1 -0
  15. package/dist/types/entities/feature/feature.d.ts +9 -2
  16. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  17. package/dist/types/picked.d.ts +3 -66
  18. package/dist/types/picked.d.ts.map +1 -1
  19. package/dist/types/plugins/dynamic-experiences/index.d.ts +0 -1
  20. package/dist/types/plugins/dynamic-experiences/index.d.ts.map +1 -1
  21. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +40 -9
  22. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  23. package/dist/types/plugins/dynamic-experiences/types.d.ts +23 -15
  24. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  25. package/dist/types/server/index.d.ts +1 -1
  26. package/dist/types/server/index.d.ts.map +1 -1
  27. package/dist/types/server/serialize.d.ts +19 -7
  28. package/dist/types/server/serialize.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/dist/plugin-EFn9ALEF.cjs +0 -1
  31. package/dist/plugin-YytfMG0n.js +0 -153
  32. package/dist/registry-BYtEBdL1.js +0 -111
  33. package/dist/registry-DtmKJre-.cjs +0 -1
  34. package/dist/types/data-source/api.d.ts +0 -60
  35. package/dist/types/data-source/api.d.ts.map +0 -1
  36. package/dist/types/data-source/provider.d.ts +0 -91
  37. package/dist/types/data-source/provider.d.ts.map +0 -1
  38. package/dist/types/data-source/registry.d.ts +0 -27
  39. package/dist/types/data-source/registry.d.ts.map +0 -1
  40. package/dist/types/data-source/virtual-data.d.ts +0 -19
  41. package/dist/types/data-source/virtual-data.d.ts.map +0 -1
@@ -1,3 +1,3 @@
1
- import { a as e, c as t, i as n, n as r } from "../../../registry-BYtEBdL1.js";
2
- import { t as i } from "../../../plugin-YytfMG0n.js";
3
- export { t as createClientHeaders, i as dynamicExperiencesPlugin, n as fetchExperienceContent, e as fetchProject, r as registerPickedBundle };
1
+ import { i as e } from "../../../api-BzK4kXRt.js";
2
+ import { n as t, r as n, t as r } from "../../../plugin-DJjtc5df.js";
3
+ export { e as createClientHeaders, r as dynamicExperiencesPlugin, t as fetchExperienceContent, n as fetchProject };
@@ -1,41 +1,44 @@
1
1
  import { a as e, c as t, i as n, o as r, s as i, t as a, u as o } from "../../experience-instance-DGk11d8a.js";
2
- import { n as s } from "../../plugin-YytfMG0n.js";
3
- import { attach as c, createEffect as l, createEvent as u, createStore as d, sample as f } from "effector";
2
+ import { i as s, n as c } from "../../plugin-DJjtc5df.js";
3
+ import { attach as l, createEffect as u, createEvent as d, createStore as f, sample as p } from "effector";
4
4
  //#region src/server/serialize.ts
5
- var p = 1e4;
6
- function m(e) {
5
+ var m = 1e4;
6
+ function h(e) {
7
7
  if (e?.location !== void 0) return { location: e.location };
8
8
  }
9
- function h(e, t) {
9
+ function g(e, t) {
10
10
  return e.nodes.filter(o).some((e) => t.get(e.stepId) === !0);
11
11
  }
12
- async function g(e, n = {}) {
13
- let i = n.previewToken === void 0 ? void 0 : { previewToken: n.previewToken }, a = await e.getProjectConfig(i), o = e.session.store.getState().id;
14
- e.conditionResults.reset(), s(e, a, {
12
+ async function _(e, t) {
13
+ let { projectConfig: n } = t, i = e.session.store.getState().id;
14
+ e.conditionResults.reset(), s(e, n, {
15
15
  isPreview: !1,
16
- sessionId: o
16
+ sessionId: i
17
17
  });
18
- let c = m(n.attributes), l = n.timeoutMs ?? p, u = new Map(a.steps.map((e) => [e.id, e.layoutContentId !== void 0 && e.layoutContentId !== null])), d = Object.fromEntries(a.conditions.map((e) => [e.key, e])), f = a.experiences.filter((e) => !t(e.condition, d)), g = (await Promise.all(f.map(async (t) => ({
19
- experience: t,
20
- active: await r(e, { condition: t.condition }, { context: c })
21
- })))).filter((e) => e.active).map((e) => e.experience), _ = await Promise.all(g.filter((e) => h(e, u)).map((t) => e.getExperienceContent({
22
- id: t.id,
23
- key: t.key
24
- }, {
25
- ...i,
26
- signal: AbortSignal.timeout(l)
27
- }))), v = /* @__PURE__ */ new Map();
28
- for (let e of _) if (e) for (let t of e.content) v.set(t.id, t);
18
+ let a = h(t.attributes), o = t.timeoutMs ?? m, l = new Map(n.steps.map((e) => [e.id, e.layoutContentId !== void 0 && e.layoutContentId !== null])), u = [];
19
+ for (let t of n.experiences) await r(e, { condition: t.condition }, { context: a }) && u.push(t);
20
+ let d = /* @__PURE__ */ new Map();
21
+ for (let n of u) {
22
+ if (!g(n, l)) continue;
23
+ let r = t.getContent ? await t.getContent({
24
+ id: n.id,
25
+ key: n.key
26
+ }, { previewToken: t.previewToken }) : await c(e.apiUrl, e.projectId, n.id, {
27
+ previewToken: t.previewToken,
28
+ signal: AbortSignal.timeout(o)
29
+ });
30
+ if (r) for (let e of r.content) d.set(e.id, e);
31
+ }
29
32
  return {
30
- versionId: a.versionId,
31
- projectConfig: a,
32
- content: Array.from(v.values()),
33
+ versionId: n.versionId,
34
+ projectConfig: n,
35
+ content: Array.from(d.values()),
33
36
  conditionResults: e.conditionResults.store.getState()
34
37
  };
35
38
  }
36
39
  //#endregion
37
40
  //#region src/server/index.ts
38
- function _() {
41
+ function v() {
39
42
  let e, t;
40
43
  return {
41
44
  promise: new Promise((n, r) => {
@@ -45,16 +48,16 @@ function _() {
45
48
  reject: (e) => t(e)
46
49
  };
47
50
  }
48
- function v(e, t) {
49
- let { promise: n, resolve: r } = _(), i = u(), o = u(), s = u(), p = u(), m = u(), h = e.experiences.listStore.map((t) => t.map((t) => a({
51
+ function y(e, t) {
52
+ let { promise: n, resolve: r } = v(), i = d(), o = d(), s = d(), c = d(), m = d(), h = e.experiences.listStore.map((t) => t.map((t) => a({
50
53
  client: e,
51
54
  experience: t
52
- }))), g = d({
55
+ }))), g = f({
53
56
  currentExperienceIndex: 0,
54
57
  renderedExperiences: [],
55
58
  isComplete: !1
56
- }), v = l(async (t) => {
57
- let n = c({
59
+ }), _ = u(async (t) => {
60
+ let n = l({
58
61
  source: t.experience.componentStore,
59
62
  effect: async (n, r) => {
60
63
  let i = t.availableRenderers[r];
@@ -69,7 +72,7 @@ function v(e, t) {
69
72
  if (t) return t;
70
73
  }
71
74
  return null;
72
- }), y = l(async ({ experience: e, availableRenderers: t, startRendererIndex: n = 0 }) => e ? v({
75
+ }), y = u(async ({ experience: e, availableRenderers: t, startRendererIndex: n = 0 }) => e ? _({
73
76
  experience: e,
74
77
  availableRenderers: t,
75
78
  startRendererIndex: n
@@ -81,13 +84,13 @@ function v(e, t) {
81
84
  })).on(m, (e) => ({
82
85
  ...e,
83
86
  currentExperienceIndex: e.currentExperienceIndex + 1
84
- })).on(p, (e) => ({
87
+ })).on(c, (e) => ({
85
88
  ...e,
86
89
  isComplete: !0
87
- })).reset(i), f({
90
+ })).reset(i), p({
88
91
  clock: i,
89
92
  target: o
90
- }), f({
93
+ }), p({
91
94
  clock: o,
92
95
  source: {
93
96
  experiences: h,
@@ -100,22 +103,22 @@ function v(e, t) {
100
103
  startRendererIndex: 0
101
104
  }),
102
105
  target: y
103
- }), f({
106
+ }), p({
104
107
  clock: y.doneData,
105
108
  filter: (e) => e !== null,
106
109
  fn: (e) => e.rendered.body,
107
110
  target: s
108
- }), f({
111
+ }), p({
109
112
  clock: s,
110
113
  target: o
111
- }), f({
114
+ }), p({
112
115
  clock: y.doneData,
113
116
  filter: (e) => e === null,
114
117
  target: m
115
- }), f({
118
+ }), p({
116
119
  clock: m,
117
120
  target: o
118
- }), f({
121
+ }), p({
119
122
  clock: [
120
123
  o,
121
124
  m,
@@ -126,18 +129,18 @@ function v(e, t) {
126
129
  state: g
127
130
  },
128
131
  filter: ({ experiences: e, state: t }) => t.currentExperienceIndex >= e.length,
129
- target: p
132
+ target: c
130
133
  });
131
- let b = c({
134
+ let b = l({
132
135
  source: g,
133
136
  effect: (e) => {
134
137
  e.isComplete && r(e.renderedExperiences);
135
138
  }
136
139
  });
137
- return f({
138
- clock: p,
140
+ return p({
141
+ clock: c,
139
142
  target: b
140
143
  }), i(), n;
141
144
  }
142
145
  //#endregion
143
- export { a as createExperienceInstance, n as evaluateConditionMemo, e as hashRule, r as isExperienceActive, s as registerProjectConfig, v as render, i as ruleReferencesAction, t as ruleReferencesActionDeep, g as serialize };
146
+ export { a as createExperienceInstance, n as evaluateConditionMemo, e as hashRule, r as isExperienceActive, s as registerProjectConfig, y as render, i as ruleReferencesAction, t as ruleReferencesActionDeep, _ as serialize };
@@ -0,0 +1,252 @@
1
+ import "./logger-DMN6TxJJ.js";
2
+ import { t as e } from "./api-BzK4kXRt.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 of e) t ^= n.codePointAt(0) ?? 0, t = Math.imul(t, 16777619);
8
+ return t >>> 0;
9
+ }
10
+ function r(e) {
11
+ let t = e;
12
+ return t ^= t >>> 16, t = Math.imul(t, 2246822507), t ^= t >>> 13, t = Math.imul(t, 3266489909), t ^= t >>> 16, t >>> 0;
13
+ }
14
+ function i(e, t) {
15
+ return r(n(`${e}:${t}`)) % 100;
16
+ }
17
+ function a(e, t) {
18
+ return t <= 0 ? !1 : t >= 100 || e < t;
19
+ }
20
+ //#endregion
21
+ //#region src/plugins/dynamic-experiences/plugin.ts
22
+ function o(e) {
23
+ return typeof e == "object" && !!e && "features" in e && Array.isArray(e.features);
24
+ }
25
+ function s(e, t) {
26
+ if (Array.isArray(t.conditions)) for (let n of t.conditions) e.registerCondition(n);
27
+ }
28
+ function c(e, t) {
29
+ e.registerExperience({
30
+ id: t.id,
31
+ key: t.key,
32
+ name: t.name,
33
+ targets: t.targets,
34
+ nodes: t.nodes,
35
+ edges: t.edges,
36
+ condition: t.condition,
37
+ initializeOpen: t.initializeOpen,
38
+ componentName: t.componentName
39
+ });
40
+ }
41
+ function l(e, t) {
42
+ if (Array.isArray(t.fields)) for (let n of t.fields) e.registerField(n);
43
+ }
44
+ function u(e, t) {
45
+ if (!Array.isArray(t.steps)) return;
46
+ let n = new Map(t.fields.map((e) => [e.id, e.key]));
47
+ for (let r of t.steps) {
48
+ let t = [];
49
+ for (let e of r.fieldIds ?? []) {
50
+ let i = n.get(e);
51
+ if (i === void 0) {
52
+ `${r.key}${e}`;
53
+ continue;
54
+ }
55
+ t.push(i);
56
+ }
57
+ let i = r.layoutContentId ? e.contents.getById(r.layoutContentId) : null;
58
+ e.registerStep({
59
+ id: r.id,
60
+ key: r.key,
61
+ name: r.name,
62
+ fieldKeys: t,
63
+ layoutName: r.layoutName,
64
+ ...r.layoutContentId !== void 0 && {
65
+ layoutContentId: r.layoutContentId,
66
+ layoutContentStore: i
67
+ }
68
+ });
69
+ }
70
+ }
71
+ function d(e, t) {
72
+ if (Array.isArray(t.experiences)) for (let n of t.experiences) c(e, n);
73
+ }
74
+ function f(e, t, n) {
75
+ h(e, t, n.isPreview, n.sessionId), s(e, t), l(e, t), u(e, t), d(e, t);
76
+ }
77
+ function p(e) {
78
+ let t = e.searchParams["preview-token"];
79
+ if (t && t.length > 0) return t[0];
80
+ }
81
+ function m(e) {
82
+ let t = /* @__PURE__ */ new Set(), n = e.searchParams.feature;
83
+ if (!n) return t;
84
+ for (let e of n) {
85
+ let n = e.indexOf(":");
86
+ n > 0 && t.add(e.substring(0, n));
87
+ }
88
+ return t;
89
+ }
90
+ function h(e, t, n, r) {
91
+ let i = m(e);
92
+ for (let a of t.features) i.has(a.id) || g(e, a, n, r);
93
+ }
94
+ function g(e, t, n, r) {
95
+ let o = i(r, t.id);
96
+ e.registerFeature(t.id, {
97
+ key: `v${t.version}`,
98
+ name: t.name,
99
+ enabled: t.enabled,
100
+ weight: t.weight,
101
+ storage: n ? "session" : "local",
102
+ decide: () => a(o, t.weight)
103
+ });
104
+ }
105
+ function _(e) {
106
+ try {
107
+ let t = new URL(e).hostname;
108
+ return t === "localhost" || t === "127.0.0.1" || t === "::1";
109
+ } catch {
110
+ return !1;
111
+ }
112
+ }
113
+ function v(e) {
114
+ if (typeof e != "object" || !e || !("cause" in e)) return !1;
115
+ let { cause: t } = e;
116
+ return typeof t != "object" || !t || !("code" in t) ? !1 : t.code === "ECONNREFUSED";
117
+ }
118
+ async function y(t, n, r) {
119
+ let i = r?.previewToken ? `projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}` : `projects/${n}`, a;
120
+ try {
121
+ a = await e(t, i, r?.headers);
122
+ } catch (e) {
123
+ return _(t) && v(e), null;
124
+ }
125
+ if (!a.ok) return `${a.status.toString()}`, null;
126
+ let s;
127
+ try {
128
+ s = await a.json();
129
+ } catch {
130
+ return null;
131
+ }
132
+ return o(s) ? s : null;
133
+ }
134
+ function b(e) {
135
+ return typeof e != "object" || !e || !("experienceId" in e) || !("content" in e) ? !1 : Array.isArray(e.content);
136
+ }
137
+ async function x(t, n, r, i) {
138
+ let a = i?.previewToken ? `projects/${n}/experiences/${r}/content?preview_token=${encodeURIComponent(i.previewToken)}` : `projects/${n}/experiences/${r}/content`, o;
139
+ try {
140
+ o = await e(t, a, i?.headers, i?.signal);
141
+ } catch (e) {
142
+ return _(t) && v(e) || `${r}`, null;
143
+ }
144
+ if (!o.ok) return `${r}${o.status.toString()}`, null;
145
+ let s;
146
+ try {
147
+ s = await o.json();
148
+ } catch {
149
+ return `${r}`, null;
150
+ }
151
+ return b(s) ? s : (`${r}`, null);
152
+ }
153
+ function S(e, t) {
154
+ for (let n of t.content) e.registerContent({
155
+ id: n.id,
156
+ contentModelKey: n.contentModelKey,
157
+ data: n.data
158
+ });
159
+ }
160
+ function C(e) {
161
+ if (typeof e != "object" || !e || !("projectConfig" in e) || !("experienceContent" in e) || !("manifestMetadata" in e)) return !1;
162
+ let { experienceContent: t } = e;
163
+ return typeof t == "function";
164
+ }
165
+ async function w() {
166
+ try {
167
+ let e = await import("virtual:picked/data");
168
+ return C(e) ? e : null;
169
+ } catch {
170
+ return null;
171
+ }
172
+ }
173
+ function T(e, t, n) {
174
+ return (r) => x(e, t, r.id, n ? { previewToken: n } : void 0);
175
+ }
176
+ function E(e, t) {
177
+ return (n) => e(n, t ? { previewToken: t } : void 0);
178
+ }
179
+ function D(e) {
180
+ return (t, n) => e.experienceContent(t, n);
181
+ }
182
+ function O(e, t) {
183
+ let n = /* @__PURE__ */ new Map();
184
+ return (r, i) => {
185
+ let a = n.get(r.id);
186
+ if (a) return a;
187
+ let o = (async () => {
188
+ try {
189
+ let n = await t(r, i);
190
+ return n && S(e, n), n;
191
+ } finally {
192
+ n.delete(r.id);
193
+ }
194
+ })();
195
+ return n.set(r.id, o), o;
196
+ };
197
+ }
198
+ function k(e, t) {
199
+ let n = new Set(t && Array.isArray(t.experiences) ? t.experiences.map((e) => e.id) : []);
200
+ return (t, r) => n.has(t.id) ? e(t, r) : Promise.resolve(null);
201
+ }
202
+ async function A(e) {
203
+ let { client: t, apiUrl: n, options: r } = e, i = p(t), a = !!i, o = r?.projectConfig ?? null, s = r?.getContent ? E(r.getContent, i) : null, c = null;
204
+ if (i) return o ??= await y(n, t.projectId, { previewToken: i }), s ??= T(n, t.projectId, i), {
205
+ config: o,
206
+ contentLoader: s,
207
+ dataSource: c,
208
+ isPreview: a
209
+ };
210
+ if (o && s) return {
211
+ config: o,
212
+ contentLoader: s,
213
+ dataSource: c,
214
+ isPreview: a
215
+ };
216
+ let l = await w();
217
+ return l ? (o ??= l.projectConfig, s ??= D(l), c = l.manifestMetadata, {
218
+ config: o,
219
+ contentLoader: s,
220
+ dataSource: c,
221
+ isPreview: a
222
+ }) : (o ??= await y(n, t.projectId), s ??= T(n, t.projectId), {
223
+ config: o,
224
+ contentLoader: s,
225
+ dataSource: c,
226
+ isPreview: a
227
+ });
228
+ }
229
+ function j(e) {
230
+ return {
231
+ name: "dynamic-experiences",
232
+ setup: (n) => {
233
+ let r = e?.apiUrl ?? n.apiUrl;
234
+ return { onStart: t({
235
+ source: n.session.store.map((e) => e.id),
236
+ effect: async (t) => {
237
+ let { config: i, contentLoader: a, dataSource: o, isPreview: s } = await A({
238
+ client: n,
239
+ apiUrl: r,
240
+ options: e
241
+ });
242
+ a && (n.contentLoader = O(n, k(a, i))), n.dataSource = o, i && (n.previewEmbedderOrigins = i.previewEmbedderOrigins ?? null, f(n, i, {
243
+ isPreview: s,
244
+ sessionId: t
245
+ }));
246
+ }
247
+ }) };
248
+ }
249
+ };
250
+ }
251
+ //#endregion
252
+ export { f as i, x as n, y as r, j as t };
@@ -0,0 +1 @@
1
+ require("./logger-CSTvAyyB.cjs");const e=require("./api-CgENjKwJ.cjs");let t=require("effector");function n(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return t>>>0}function r(e){let t=e;return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}function i(e,t){return r(n(`${e}:${t}`))%100}function a(e,t){return t<=0?!1:t>=100||e<t}function o(e){return typeof e==`object`&&!!e&&`features`in e&&Array.isArray(e.features)}function s(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function c(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 l(e,t){if(Array.isArray(t.fields))for(let n of t.fields)e.registerField(n)}function u(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 d(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)c(e,n)}function f(e,t,n){h(e,t,n.isPreview,n.sessionId),s(e,t),l(e,t),u(e,t),d(e,t)}function p(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function m(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 h(e,t,n,r){let i=m(e);for(let a of t.features)i.has(a.id)||g(e,a,n,r)}function g(e,t,n,r){let o=i(r,t.id);e.registerFeature(t.id,{key:`v${t.version}`,name:t.name,enabled:t.enabled,weight:t.weight,storage:n?`session`:`local`,decide:()=>a(o,t.weight)})}function _(e){try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`}catch{return!1}}function v(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 y(t,n,r){let i=r?.previewToken?`projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}`:`projects/${n}`,a;try{a=await e.t(t,i,r?.headers)}catch(e){return _(t)&&v(e),null}if(!a.ok)return`${a.status.toString()}`,null;let s;try{s=await a.json()}catch{return null}return o(s)?s:null}function b(e){return typeof e!=`object`||!e||!(`experienceId`in e)||!(`content`in e)?!1:Array.isArray(e.content)}async function x(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 _(t)&&v(e)||`${r}`,null}if(!o.ok)return`${r}${o.status.toString()}`,null;let s;try{s=await o.json()}catch{return`${r}`,null}return b(s)?s:(`${r}`,null)}function S(e,t){for(let n of t.content)e.registerContent({id:n.id,contentModelKey:n.contentModelKey,data:n.data})}function C(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 w(){try{let e=await import(`virtual:picked/data`);return C(e)?e:null}catch{return null}}function T(e,t,n){return r=>x(e,t,r.id,n?{previewToken:n}:void 0)}function E(e,t){return n=>e(n,t?{previewToken:t}:void 0)}function D(e){return(t,n)=>e.experienceContent(t,n)}function O(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&&S(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}function k(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 A(e){let{client:t,apiUrl:n,options:r}=e,i=p(t),a=!!i,o=r?.projectConfig??null,s=r?.getContent?E(r.getContent,i):null,c=null;if(i)return o??=await y(n,t.projectId,{previewToken:i}),s??=T(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 w();return l?(o??=l.projectConfig,s??=D(l),c=l.manifestMetadata,{config:o,contentLoader:s,dataSource:c,isPreview:a}):(o??=await y(n,t.projectId),s??=T(n,t.projectId),{config:o,contentLoader:s,dataSource:c,isPreview:a})}function j(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 A({client:n,apiUrl:r,options:e});a&&(n.contentLoader=O(n,k(a,i))),n.dataSource=o,i&&(n.previewEmbedderOrigins=i.previewEmbedderOrigins??null,f(n,i,{isPreview:s,sessionId:t}))}})}}}}Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return j}});
@@ -48,6 +48,12 @@ export interface ResolvedFeatureBucket extends FeatureBaseBucket {
48
48
  };
49
49
  }
50
50
  export type FeatureBucket = UnresolvedFeatureBucket | ResolvedFeatureBucket;
51
+ export interface FeatureResult {
52
+ id: string;
53
+ bucket: string | boolean;
54
+ }
55
+ /** The bucket an evokable feature answers with, or undefined while its feature is unregistered. */
56
+ export type FeatureBucketValue = boolean | string | undefined;
51
57
  /**
52
58
  * Reads a bucket back out of its stored text.
53
59
  *
@@ -74,14 +80,15 @@ declare const createFeatureIndexFactory: ({ client }: {
74
80
  getById: (id: string) => Store<FeatureBucket | undefined>;
75
81
  getByName: (name: string) => Store<FeatureIndexItem | undefined>;
76
82
  listStore: Store<FeatureBucket[]>;
77
- getEvokableFeature: (featureName: string) => Store<() => Promise<boolean | string | undefined>>;
83
+ getEvokableFeature: (featureName: string) => Store<() => Promise<FeatureBucketValue>>;
84
+ getFeatureResult: (featureName: string) => Store<FeatureResult | undefined>;
78
85
  };
79
86
  /**
80
87
  * Creates a feature index with lifecycle stores and registration logic.
81
88
  *
82
89
  * @template T - Factory parameter type.
83
90
  * @param {T} params - Factory parameters including the client.
84
- * @returns {ReturnType<typeof createFeatureIndexFactory>} The feature index with register, getById, getByName, listStore, and getEvokableFeature methods.
91
+ * @returns {ReturnType<typeof createFeatureIndexFactory>} The feature index with register, getById, getByName, listStore, getEvokableFeature, and getFeatureResult methods.
85
92
  * @example
86
93
  * ```ts
87
94
  * const features = createFeatureIndex({ client })
@@ -1 +1 @@
1
- {"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/entities/feature/feature.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,OAAO,EAQL,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAI1C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACnE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,oGAAoG;IACpG,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wHAAwH;IACxH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAExE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,OAAO,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;IACV,oGAAoG;IACpG,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wHAAwH;IACxH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,UAAU,EAAE,KAAK,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,UAAU,EAAE,IAAI,CAAA;IAChB,SAAS,EAAE,MAAM;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC1D;AAED,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,qBAAqB,CAAA;AAqB3E;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAU3D;AAED,QAAA,MAAM,yBAAyB,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;;YAoBzC,MAAM;iBAAW,OAAO;;kBAyOvC,MAAM;sBAaF,MAAM;;sCAahB,MAAM,KAClB,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CA6CrD,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAC1F,MAAM,EAAE,CAAC,GACR,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAE9C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,WAAW,OAAO,YAAY,aAAa,SAEnF,CAAA"}
1
+ {"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/entities/feature/feature.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,OAAO,EAQL,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAI1C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACnE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,oGAAoG;IACpG,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wHAAwH;IACxH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAExE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,OAAO,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;IACV,oGAAoG;IACpG,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wHAAwH;IACxH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,UAAU,EAAE,KAAK,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,UAAU,EAAE,IAAI,CAAA;IAChB,SAAS,EAAE,MAAM;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC1D;AAED,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,qBAAqB,CAAA;AAE3E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB;AAED,mGAAmG;AACnG,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;AAqB7D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAU3D;AAED,QAAA,MAAM,yBAAyB,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;;YAoBzC,MAAM;iBAAW,OAAO;;kBA8PvC,MAAM;sBAqBF,MAAM;;sCA+DU,MAAM,KAAG,KAAK,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;oCAgEnD,MAAM,KAAG,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;CAqBhF,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAC1F,MAAM,EAAE,CAAC,GACR,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAE9C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,WAAW,OAAO,YAAY,aAAa,SAEnF,CAAA"}
@@ -16,7 +16,7 @@ import { type EventBusPayload, type EventHistoryStore } from './utils/events';
16
16
  import type { Field } from './entities/field/field';
17
17
  import type { ExperienceStep } from './entities/step/step';
18
18
  import type { Content, ContentDataPatch } from './entities/content/content';
19
- import type { ContentLoader, ExperienceContentResponse, ProjectConfig } from './plugins/dynamic-experiences/types';
19
+ import type { ContentLoader } from './plugins/dynamic-experiences/types';
20
20
  import type { Action } from './entities/action/action';
21
21
  import { type Condition } from './entities/condition/condition';
22
22
  import type { SessionEntity } from './entities/session/session';
@@ -44,21 +44,6 @@ export declare class Picked {
44
44
  * resolvable; remains `null` when the SDK is using the runtime API path.
45
45
  */
46
46
  dataSource: PickedDataSource | null;
47
- /**
48
- * `versionId` of the SSR snapshot this client was seeded from, set by the framework
49
- * providers' `seedFromSnapshot`. `null` when no snapshot was seeded — a browser-only client,
50
- * or a route that rendered without one.
51
- */
52
- seededVersionId: string | null;
53
- /**
54
- * Set when a resolved project config disagrees with the seeded snapshot's `versionId`. The
55
- * snapshot stays authoritative (it is what the server rendered the markup from) and the
56
- * resolved config is dropped, so this records the divergence rather than hiding it.
57
- */
58
- versionSkew: {
59
- seeded: string;
60
- resolved: string;
61
- } | null;
62
47
  /**
63
48
  * Content fetcher selected by `dynamicExperiencesPlugin`'s resolution chain. Called
64
49
  * by each experience's `prepareExperienceContentFx` (fired in parallel with
@@ -74,7 +59,6 @@ export declare class Picked {
74
59
  */
75
60
  previewEmbedderOrigins: string[] | null;
76
61
  private readonly plugins;
77
- private readonly dataProviders;
78
62
  readonly eventBus: EventCallable<EventBusPayload>;
79
63
  readonly events: EventHistoryStore;
80
64
  readonly projectId: string;
@@ -171,7 +155,8 @@ export declare class Picked {
171
155
  getById: (id: string) => Store<import(".").FeatureBucket | undefined>;
172
156
  getByName: (name: string) => Store<import(".").FeatureIndexItem | undefined>;
173
157
  listStore: Store<import(".").FeatureBucket[]>;
174
- getEvokableFeature: (featureName: string) => Store<() => Promise<boolean | string | undefined>>;
158
+ getEvokableFeature: (featureName: string) => Store<() => Promise<import(".").FeatureBucketValue>>;
159
+ getFeatureResult: (featureName: string) => Store<import(".").FeatureResult | undefined>;
175
160
  };
176
161
  readonly conditions: {
177
162
  register: (condition: Condition) => void;
@@ -277,54 +262,6 @@ export declare class Picked {
277
262
  context?: Record<string, unknown>;
278
263
  }, string, Error>;
279
264
  constructor(options: CreateClientOptions);
280
- /**
281
- * Resolves the data provider backing a given preview token, building it once per token.
282
- *
283
- * @param {string | undefined} previewToken - Preview token for the caller, when there is one.
284
- * @returns {PickedDataProvider} The provider for that token.
285
- * @example
286
- * const provider = client.dataProviderFor(undefined)
287
- */
288
- private dataProviderFor;
289
- /**
290
- * Resolves this project's configuration.
291
- *
292
- * Reads the build-time bundle when one registered itself, and the Picked API otherwise. A
293
- * preview token forces the API, because preview renders unpublished data no bundle can hold.
294
- * Deduplicated per token, so several callers in one request cost one resolution.
295
- *
296
- * @param {object} [options] - Per-call resolution inputs.
297
- * @param {string} [options.previewToken] - Preview token, forcing a live read.
298
- * @param {AbortSignal} [options.signal] - Signal applied to an API read.
299
- * @returns {Promise<ProjectConfig>} The project configuration.
300
- * @throws {Error} When the configuration cannot be resolved from any source.
301
- * @example
302
- * const config = await client.getProjectConfig()
303
- */
304
- getProjectConfig(options?: {
305
- previewToken?: string;
306
- signal?: AbortSignal;
307
- }): Promise<ProjectConfig>;
308
- /**
309
- * Resolves one experience's CMS content, from the same source as the configuration.
310
- *
311
- * @param {{ id: string; key: string }} experience - The experience to resolve content for.
312
- * @param {string} experience.id - Experience id, which keys bundled content.
313
- * @param {string} experience.key - Experience key, for a content loader that prefers it.
314
- * @param {object} [options] - Per-call resolution inputs.
315
- * @param {string} [options.previewToken] - Preview token, forcing a live read.
316
- * @param {AbortSignal} [options.signal] - Deadline for this call's API read, if it makes one.
317
- * @returns {Promise<ExperienceContentResponse | null>} The content, or `null` when it has none.
318
- * @example
319
- * const content = await client.getExperienceContent({ id: 'exp_1', key: 'promo' })
320
- */
321
- getExperienceContent(experience: {
322
- id: string;
323
- key: string;
324
- }, options?: {
325
- previewToken?: string;
326
- signal?: AbortSignal;
327
- }): Promise<ExperienceContentResponse | null>;
328
265
  /**
329
266
  * Lazily starts the preview channel when this frame is a live-preview session: the outbound
330
267
  * bridge, which reports the frame's URL to the dashboard, and the inbound receiver, which applies
@@ -1 +1 @@
1
- {"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /** @file Public exports for the dynamic-experiences plugin (project config + per-experience content resolution). */
2
2
  export { dynamicExperiencesPlugin, fetchExperienceContent, fetchProject } from './plugin';
3
3
  export { createClientHeaders } from '../../utils/client-headers';
4
- export { registerPickedBundle } from '../../data-source/registry';
5
4
  export type * from './types';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dynamic-experiences/index.ts"],"names":[],"mappings":"AAAA,oHAAoH;AACpH,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAIhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,mBAAmB,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dynamic-experiences/index.ts"],"names":[],"mappings":"AAAA,oHAAoH;AACpH,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,mBAAmB,SAAS,CAAA"}