@picked/client 0.0.1-dev.1785826066660 → 0.0.1-dev.1785972867484

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 (169) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{api-d0qKmzPH.js → api-BWJPDrlt.js} +1 -1
  3. package/dist/{api-Djuh2gfe.cjs → api-DPsVVMiu.cjs} +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/server/index.js +1 -1
  7. package/dist/docs/explanation/conditions-and-the-logic-engine.md +94 -0
  8. package/dist/docs/explanation/feature-flag-allocation.md +176 -0
  9. package/dist/docs/explanation/how-picked-works.md +124 -0
  10. package/dist/docs/explanation/how-pickedql-works.md +76 -0
  11. package/dist/docs/explanation/pages-and-flows.md +64 -0
  12. package/dist/docs/explanation/the-content-model.md +77 -0
  13. package/dist/docs/explanation/the-two-apis.md +68 -0
  14. package/dist/docs/explanation/why-server-side-rendering.md +76 -0
  15. package/dist/docs/explanation/workspaces-and-versions.md +71 -0
  16. package/dist/docs/how-to/add-a-step-field-or-action.md +43 -0
  17. package/dist/docs/{pickedql/examples.md → how-to/analytics/index.md} +19 -6
  18. package/dist/docs/how-to/archive-or-delete-a-workspace.md +46 -0
  19. package/dist/docs/how-to/authenticate-with-a-magic-link.md +40 -0
  20. package/dist/docs/how-to/authenticate-with-a-password.md +51 -0
  21. package/dist/docs/how-to/authenticate-with-an-api-key.md +51 -0
  22. package/dist/docs/how-to/authenticate-with-oauth.md +40 -0
  23. package/dist/docs/{flow-builder/building-flows.md → how-to/build-a-flow.md} +13 -9
  24. package/dist/docs/how-to/connect-the-mcp-server.md +38 -0
  25. package/dist/docs/how-to/create-a-project.md +29 -0
  26. package/dist/docs/how-to/create-an-experience.md +42 -0
  27. package/dist/docs/how-to/create-and-revoke-an-api-key.md +37 -0
  28. package/dist/docs/how-to/debug-with-the-chrome-extension.md +57 -0
  29. package/dist/docs/how-to/define-a-page-layout.md +39 -0
  30. package/dist/docs/how-to/fill-and-publish-a-page.md +50 -0
  31. package/dist/docs/{gtm-template.md → how-to/install-the-gtm-template.md} +9 -3
  32. package/dist/docs/how-to/install-the-sdk.md +68 -0
  33. package/dist/docs/how-to/install-the-vite-plugin.md +56 -0
  34. package/dist/docs/how-to/invite-and-remove-members.md +34 -0
  35. package/dist/docs/how-to/preview-a-workspace.md +28 -0
  36. package/dist/docs/how-to/publish-a-workspace.md +30 -0
  37. package/dist/docs/how-to/read-a-feature-flag.md +101 -0
  38. package/dist/docs/how-to/register-a-component.md +55 -0
  39. package/dist/docs/how-to/register-an-action-handler.md +67 -0
  40. package/dist/docs/how-to/render-a-step-form.md +132 -0
  41. package/dist/docs/how-to/render-an-unpublished-preview.md +41 -0
  42. package/dist/docs/how-to/reuse-a-section.md +37 -0
  43. package/dist/docs/how-to/reuse-a-step-field-or-action.md +28 -0
  44. package/dist/docs/how-to/roll-back-a-published-version.md +26 -0
  45. package/dist/docs/how-to/run-an-ab-test.md +49 -0
  46. package/dist/docs/how-to/run-code-on-a-form-submission.md +125 -0
  47. package/dist/docs/how-to/server-render-a-page.md +81 -0
  48. package/dist/docs/how-to/set-a-content-security-policy.md +32 -0
  49. package/dist/docs/how-to/set-up-mfa.md +69 -0
  50. package/dist/docs/how-to/upload-and-use-an-asset.mdx +73 -0
  51. package/dist/docs/how-to/validate-a-field.md +52 -0
  52. package/dist/docs/how-to/write-a-condition.md +45 -0
  53. package/dist/docs/how-to/write-a-predicate.md +60 -0
  54. package/dist/docs/index.md +41 -70
  55. package/dist/docs/reference/dashboard/actions.mdx +53 -0
  56. package/dist/docs/{api-keys.mdx → reference/dashboard/api-keys.mdx} +7 -15
  57. package/dist/docs/reference/dashboard/conditions.mdx +42 -0
  58. package/dist/docs/reference/dashboard/content/asset-library.mdx +63 -0
  59. package/dist/docs/{content → reference/dashboard/content}/content-entries.mdx +11 -3
  60. package/dist/docs/{content → reference/dashboard/content}/layouts.mdx +11 -35
  61. package/dist/docs/reference/dashboard/content/pages.mdx +35 -0
  62. package/dist/docs/reference/dashboard/content/sections.mdx +28 -0
  63. package/dist/docs/{experiences.mdx → reference/dashboard/experiences.mdx} +9 -16
  64. package/dist/docs/{features.mdx → reference/dashboard/features.mdx} +26 -41
  65. package/dist/docs/{fields.mdx → reference/dashboard/fields.mdx} +26 -20
  66. package/dist/docs/{flow-builder/overview.mdx → reference/dashboard/flow-builder/canvas.mdx} +8 -13
  67. package/dist/docs/{flow-builder → reference/dashboard/flow-builder}/condition-builder.md +5 -13
  68. package/dist/docs/{flow-builder → reference/dashboard/flow-builder}/keyboard-shortcuts.md +7 -1
  69. package/dist/docs/{flow-builder → reference/dashboard/flow-builder}/nodes.md +10 -3
  70. package/dist/docs/reference/dashboard/projects.mdx +44 -0
  71. package/dist/docs/reference/dashboard/reports.mdx +43 -0
  72. package/dist/docs/reference/dashboard/steps.mdx +37 -0
  73. package/dist/docs/{team-management.md → reference/dashboard/team-management.md} +5 -22
  74. package/dist/docs/{workspace-versioning.mdx → reference/dashboard/workspace-versioning.mdx} +6 -10
  75. package/dist/docs/reference/dashboard/workspaces.mdx +76 -0
  76. package/dist/docs/{delivery-api → reference/delivery-api}/experience-content.md +11 -4
  77. package/dist/docs/reference/delivery-api/index.md +45 -0
  78. package/dist/docs/{delivery-api → reference/delivery-api}/preview-caching-crawling.md +12 -5
  79. package/dist/docs/{delivery-api → reference/delivery-api}/project-config.md +11 -4
  80. package/dist/docs/reference/glossary.md +173 -0
  81. package/dist/docs/reference/management-api/authentication.md +74 -0
  82. package/dist/docs/{api → reference/management-api}/authorization-and-scopes.md +10 -3
  83. package/dist/docs/{api → reference/management-api}/error-handling.md +9 -3
  84. package/dist/docs/{api → reference/management-api}/pagination.md +6 -0
  85. package/dist/docs/{pickedql → reference/pickedql}/data-sources.md +16 -9
  86. package/dist/docs/{pickedql → reference/pickedql}/dimensions.md +7 -0
  87. package/dist/docs/{pickedql → reference/pickedql}/filtering.md +7 -0
  88. package/dist/docs/reference/pickedql/index.md +18 -0
  89. package/dist/docs/{pickedql → reference/pickedql}/schema.md +13 -6
  90. package/dist/docs/{pickedql → reference/pickedql}/virtual-functions.md +7 -0
  91. package/dist/docs/reference/sdk/actions.md +30 -0
  92. package/dist/docs/{sdk → reference/sdk}/conditions.md +8 -1
  93. package/dist/docs/reference/sdk/content-security-policy.md +21 -0
  94. package/dist/docs/reference/sdk/experiences.md +51 -0
  95. package/dist/docs/{sdk → reference/sdk}/features.md +30 -117
  96. package/dist/docs/{sdk → reference/sdk}/fields.md +10 -88
  97. package/dist/docs/reference/sdk/index.md +68 -0
  98. package/dist/docs/{sdk → reference/sdk}/plugins/create-experience.md +10 -22
  99. package/dist/docs/reference/sdk/plugins/dynamic-experiences.md +74 -0
  100. package/dist/docs/reference/sdk/plugins/index.md +29 -0
  101. package/dist/docs/{sdk → reference/sdk}/plugins/window-object.md +6 -0
  102. package/dist/docs/reference/sdk/predicates.md +43 -0
  103. package/dist/docs/reference/sdk/ssr/index.md +33 -0
  104. package/dist/docs/{sdk → reference/sdk}/ssr/rendering-and-hydration.md +4 -63
  105. package/dist/docs/{sdk → reference/sdk}/ssr/serialize.md +6 -33
  106. package/dist/docs/{sdk → reference/sdk}/ssr/slots-and-placements.md +7 -1
  107. package/dist/docs/reference/sdk/steps.md +87 -0
  108. package/dist/docs/reference/tools/chrome-extension.md +16 -0
  109. package/dist/docs/{image-optimisation-service.md → reference/tools/image-optimisation-service.md} +8 -0
  110. package/dist/docs/{mcp.md → reference/tools/mcp.md} +5 -45
  111. package/dist/docs/{vite-plugin.md → reference/tools/vite-plugin.md} +34 -35
  112. package/dist/docs/{api/index.md → tutorials/first-api-call.md} +27 -15
  113. package/dist/docs/tutorials/first-experience-in-the-dashboard.mdx +143 -0
  114. package/dist/docs/tutorials/first-experience.mdx +255 -0
  115. package/dist/docs/tutorials/first-server-rendered-page.mdx +186 -0
  116. package/dist/esm/index.js +290 -319
  117. package/dist/esm/plugins/dynamic-experiences/index.js +3 -3
  118. package/dist/esm/server/index.js +22 -22
  119. package/dist/plugin-BcDuXGos.cjs +1 -0
  120. package/dist/plugin-Csb2irFa.js +287 -0
  121. package/dist/types/data-source/api.d.ts +60 -0
  122. package/dist/types/data-source/api.d.ts.map +1 -0
  123. package/dist/types/data-source/provider.d.ts +97 -0
  124. package/dist/types/data-source/provider.d.ts.map +1 -0
  125. package/dist/types/entities/feature/feature.d.ts +16 -0
  126. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  127. package/dist/types/exports.d.ts +0 -2
  128. package/dist/types/exports.d.ts.map +1 -1
  129. package/dist/types/index.d.ts +0 -1
  130. package/dist/types/index.d.ts.map +1 -1
  131. package/dist/types/picked.d.ts +15 -0
  132. package/dist/types/picked.d.ts.map +1 -1
  133. package/dist/types/plugins/dynamic-experiences/index.d.ts +2 -0
  134. package/dist/types/plugins/dynamic-experiences/index.d.ts.map +1 -1
  135. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +2 -34
  136. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  137. package/dist/types/plugins/dynamic-experiences/types.d.ts +34 -16
  138. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  139. package/dist/types/server/serialize.d.ts +7 -6
  140. package/dist/types/server/serialize.d.ts.map +1 -1
  141. package/package.json +1 -1
  142. package/dist/docs/actions.mdx +0 -98
  143. package/dist/docs/api/authentication.md +0 -403
  144. package/dist/docs/chrome-extension.md +0 -68
  145. package/dist/docs/conditions.mdx +0 -72
  146. package/dist/docs/content/asset-library.mdx +0 -124
  147. package/dist/docs/content/pages.mdx +0 -82
  148. package/dist/docs/content/sections.mdx +0 -44
  149. package/dist/docs/delivery-api/index.md +0 -53
  150. package/dist/docs/guides/build-a-personalized-page.mdx +0 -161
  151. package/dist/docs/pickedql/index.md +0 -54
  152. package/dist/docs/projects.mdx +0 -44
  153. package/dist/docs/reports.mdx +0 -20
  154. package/dist/docs/sdk/actions.md +0 -82
  155. package/dist/docs/sdk/content-security-policy.md +0 -33
  156. package/dist/docs/sdk/experiences.md +0 -64
  157. package/dist/docs/sdk/feature-allocation.md +0 -161
  158. package/dist/docs/sdk/index.md +0 -98
  159. package/dist/docs/sdk/plugins/dynamic-experiences.md +0 -84
  160. package/dist/docs/sdk/plugins/index.md +0 -9
  161. package/dist/docs/sdk/predicates.md +0 -128
  162. package/dist/docs/sdk/ssr/index.md +0 -79
  163. package/dist/docs/sdk/steps.md +0 -479
  164. package/dist/docs/steps.mdx +0 -53
  165. package/dist/docs/workspaces.mdx +0 -133
  166. package/dist/plugin-BVAFWjpT.js +0 -252
  167. package/dist/plugin-BcCn2llk.cjs +0 -1
  168. package/dist/types/entities/content/reference.d.ts +0 -101
  169. package/dist/types/entities/content/reference.d.ts.map +0 -1
@@ -1,3 +1,3 @@
1
- import { i as e } from "../../../api-d0qKmzPH.js";
2
- import { n as t, r as n, t as r } from "../../../plugin-BVAFWjpT.js";
3
- export { e as createClientHeaders, r as dynamicExperiencesPlugin, t as fetchExperienceContent, n as fetchProject };
1
+ import { i as e } from "../../../api-BWJPDrlt.js";
2
+ import { a as t, i as n, o as r, r as i, s as a, t as o } from "../../../plugin-Csb2irFa.js";
3
+ export { e as createClientHeaders, i as createPickedDataProvider, o as dynamicExperiencesPlugin, r as fetchExperienceContent, a as fetchProject, n as isVirtualPickedData, t as resolveVirtualDataModule };
@@ -1,5 +1,5 @@
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 { i as s, n as c } from "../../plugin-BVAFWjpT.js";
2
+ import { n as s, o as c } from "../../plugin-Csb2irFa.js";
3
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
5
  var m = 1e4;
@@ -9,30 +9,30 @@ function h(e) {
9
9
  function g(e, t) {
10
10
  return e.nodes.filter(o).some((e) => t.get(e.stepId) === !0);
11
11
  }
12
- async function _(e, t) {
13
- let { projectConfig: n } = t, i = e.session.store.getState().id;
14
- e.conditionResults.reset(), s(e, n, {
12
+ async function _(e, n) {
13
+ let { projectConfig: i } = n, a = e.session.store.getState().id;
14
+ e.conditionResults.reset(), s(e, i, {
15
15
  isPreview: !1,
16
- sessionId: i
16
+ sessionId: a
17
17
  });
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.references ?? [], ...r.content]) d.set(e.id, e);
31
- }
18
+ let o = h(n.attributes), l = n.timeoutMs ?? m, u = new Map(i.steps.map((e) => [e.id, e.layoutContentId !== void 0 && e.layoutContentId !== null])), d = Object.fromEntries(i.conditions.map((e) => [e.key, e])), f = i.experiences.filter((e) => !t(e.condition, d)), p = (await Promise.all(f.map(async (t) => ({
19
+ experience: t,
20
+ active: await r(e, { condition: t.condition }, { context: o })
21
+ })))).filter((e) => e.active).map((e) => e.experience), _ = await Promise.all(p.filter((e) => g(e, u)).map((t) => n.dataProvider ? n.dataProvider.getContent({
22
+ id: t.id,
23
+ key: t.key
24
+ }) : n.getContent ? n.getContent({
25
+ id: t.id,
26
+ key: t.key
27
+ }, { previewToken: n.previewToken }) : c(e.apiUrl, e.projectId, t.id, {
28
+ previewToken: n.previewToken,
29
+ signal: AbortSignal.timeout(l)
30
+ }))), v = /* @__PURE__ */ new Map();
31
+ for (let e of _) if (e) for (let t of e.content) v.set(t.id, t);
32
32
  return {
33
- versionId: n.versionId,
34
- projectConfig: n,
35
- content: Array.from(d.values()),
33
+ versionId: i.versionId,
34
+ projectConfig: i,
35
+ content: Array.from(v.values()),
36
36
  conditionResults: e.conditionResults.store.getState()
37
37
  };
38
38
  }
@@ -0,0 +1 @@
1
+ require("./logger-CSTvAyyB.cjs");const e=require("./api-DPsVVMiu.cjs");let t=require("effector");function n(e){return typeof e==`object`&&!!e}function r(e){return n(e)&&`features`in e&&Array.isArray(e.features)}function i(e){return!n(e)||!(`experienceId`in e)||!(`content`in e)?!1:Array.isArray(e.content)}function a(e){try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`}catch{return!1}}function o(e){if(!n(e)||!(`cause`in e))return!1;let{cause:t}=e;return!n(t)||!(`code`in t)?!1:t.code===`ECONNREFUSED`}async function s(t,n,i){let s=i?.previewToken?`projects/${n}?preview_token=${encodeURIComponent(i.previewToken)}`:`projects/${n}`,c;try{c=await e.t(t,s,i?.headers,i?.signal)}catch(e){return a(t)&&o(e),null}if(!c.ok)return`${c.status.toString()}`,null;let l;try{l=await c.json()}catch{return null}return r(l)?l:null}async function c(t,n,r,s){let c=s?.previewToken?`projects/${n}/experiences/${r}/content?preview_token=${encodeURIComponent(s.previewToken)}`:`projects/${n}/experiences/${r}/content`,l;try{l=await e.t(t,c,s?.headers,s?.signal)}catch(e){return a(t)&&o(e)||`${r}`,null}if(!l.ok)return`${r}${l.status.toString()}`,null;let u;try{u=await l.json()}catch{return`${r}`,null}return i(u)?u:(`${r}`,null)}var l=`bundle`,u=`api`;async function d(){try{let e=await import(`virtual:picked/data`);return f(e)?e:null}catch{return null}}function f(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`}function p(e){let{apiUrl:t,projectId:n,previewToken:r,signal:i}=e,a=!!r,o=a?u:e.mode,f=a?void 0:e.bundle,p=a?void 0:e.projectConfig,m=e.getContent,h={mode:o??u,manifest:null},g,_,v=new Map;function y(){return o===u?Promise.resolve(null):f?Promise.resolve(f):(g??=d(),g)}function b(e){h.mode=e?l:u,h.manifest=e?e.manifestMetadata:null}async function x(){if(p)return b(await y()),p;let e=await y();return b(e),e?e.projectConfig:o===l?null:s(t,n,{...r!==void 0&&{previewToken:r},...i!==void 0&&{signal:i}})}async function S(e){let a=r===void 0?void 0:{previewToken:r};if(m)return m(e,a);let s=await y();if(b(s),s)try{return await s.experienceContent(e,a)}catch{return`${e.id}`,null}return o===l?null:c(t,n,e.id,{...r!==void 0&&{previewToken:r},...i!==void 0&&{signal:i}})}return{meta:h,getProjectConfig:()=>(_??=x(),_),getContent:e=>{let t=v.get(e.id);if(t)return t;let n=S(e).finally(()=>{v.delete(e.id)});return v.set(e.id,n),n}}}function m(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return t>>>0}function h(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 g(e,t){return h(m(`${e}:${t}`))%100}function _(e,t){return t<=0?!1:t>=100||e<t}function v(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function y(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 b(e,t){if(Array.isArray(t.fields))for(let n of t.fields)e.registerField(n)}function x(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 S(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)y(e,n)}function C(e,t,n){E(e,t,n.isPreview,n.sessionId),v(e,t),b(e,t),x(e,t),S(e,t)}function w(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function T(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 E(e,t,n,r){let i=T(e);for(let a of t.features)i.has(a.id)||D(e,a,n,r)}function D(e,t,n,r){let i=g(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:()=>_(i,t.weight)})}function O(e,t){for(let n of t.content)e.registerContent({id:n.id,contentModelKey:n.contentModelKey,data:n.data})}function k(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&&O(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}function A(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)}function j(e,t,n){if(n?.dataProvider)return n.dataProvider;let r=w(e);return p({apiUrl:t,projectId:e.projectId,...n?.mode!==void 0&&{mode:n.mode},...r!==void 0&&{previewToken:r},...n?.bundle!==void 0&&{bundle:n.bundle},...n?.projectConfig!==void 0&&{projectConfig:n.projectConfig},...n?.getContent!==void 0&&{getContent:n.getContent}})}function M(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 i=j(n,r,e),a=w(n)!==void 0,o=await i.getProjectConfig();if(n.contentLoader=k(n,A(e=>i.getContent(e),o)),n.dataSource=i.meta.manifest,!o)return;let s=n.seededVersionId;if(s!==null&&s!==o.versionId){n.versionSkew={seeded:s,resolved:o.versionId},`${o.versionId}${s}`;return}n.previewEmbedderOrigins=o.previewEmbedderOrigins??null,C(n,o,{isPreview:a,sessionId:t})}})}}}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return M}});
@@ -0,0 +1,287 @@
1
+ import "./logger-DMN6TxJJ.js";
2
+ import { t as e } from "./api-BWJPDrlt.js";
3
+ import { attach as t } from "effector";
4
+ function n(e) {
5
+ return typeof e == "object" && !!e;
6
+ }
7
+ function r(e) {
8
+ return n(e) && "features" in e && Array.isArray(e.features);
9
+ }
10
+ function i(e) {
11
+ return !n(e) || !("experienceId" in e) || !("content" in e) ? !1 : Array.isArray(e.content);
12
+ }
13
+ function a(e) {
14
+ try {
15
+ let t = new URL(e).hostname;
16
+ return t === "localhost" || t === "127.0.0.1" || t === "::1";
17
+ } catch {
18
+ return !1;
19
+ }
20
+ }
21
+ function o(e) {
22
+ if (!n(e) || !("cause" in e)) return !1;
23
+ let { cause: t } = e;
24
+ return !n(t) || !("code" in t) ? !1 : t.code === "ECONNREFUSED";
25
+ }
26
+ async function s(t, n, i) {
27
+ let s = i?.previewToken ? `projects/${n}?preview_token=${encodeURIComponent(i.previewToken)}` : `projects/${n}`, c;
28
+ try {
29
+ c = await e(t, s, i?.headers, i?.signal);
30
+ } catch (e) {
31
+ return a(t) && o(e), null;
32
+ }
33
+ if (!c.ok) return `${c.status.toString()}`, null;
34
+ let l;
35
+ try {
36
+ l = await c.json();
37
+ } catch {
38
+ return null;
39
+ }
40
+ return r(l) ? l : null;
41
+ }
42
+ async function c(t, n, r, s) {
43
+ let c = s?.previewToken ? `projects/${n}/experiences/${r}/content?preview_token=${encodeURIComponent(s.previewToken)}` : `projects/${n}/experiences/${r}/content`, l;
44
+ try {
45
+ l = await e(t, c, s?.headers, s?.signal);
46
+ } catch (e) {
47
+ return a(t) && o(e) || `${r}`, null;
48
+ }
49
+ if (!l.ok) return `${r}${l.status.toString()}`, null;
50
+ let u;
51
+ try {
52
+ u = await l.json();
53
+ } catch {
54
+ return `${r}`, null;
55
+ }
56
+ return i(u) ? u : (`${r}`, null);
57
+ }
58
+ //#endregion
59
+ //#region src/data-source/provider.ts
60
+ var l = "bundle", u = "api";
61
+ async function d() {
62
+ try {
63
+ let e = await import("virtual:picked/data");
64
+ return f(e) ? e : null;
65
+ } catch {
66
+ return null;
67
+ }
68
+ }
69
+ function f(e) {
70
+ if (typeof e != "object" || !e || !("projectConfig" in e) || !("experienceContent" in e) || !("manifestMetadata" in e)) return !1;
71
+ let { experienceContent: t } = e;
72
+ return typeof t == "function";
73
+ }
74
+ function p(e) {
75
+ let { apiUrl: t, projectId: n, previewToken: r, signal: i } = e, a = !!r, o = a ? u : e.mode, f = a ? void 0 : e.bundle, p = a ? void 0 : e.projectConfig, m = e.getContent, h = {
76
+ mode: o ?? u,
77
+ manifest: null
78
+ }, g, _, v = /* @__PURE__ */ new Map();
79
+ function y() {
80
+ return o === u ? Promise.resolve(null) : f ? Promise.resolve(f) : (g ??= d(), g);
81
+ }
82
+ function b(e) {
83
+ h.mode = e ? l : u, h.manifest = e ? e.manifestMetadata : null;
84
+ }
85
+ async function x() {
86
+ if (p) return b(await y()), p;
87
+ let e = await y();
88
+ return b(e), e ? e.projectConfig : o === l ? null : s(t, n, {
89
+ ...r !== void 0 && { previewToken: r },
90
+ ...i !== void 0 && { signal: i }
91
+ });
92
+ }
93
+ async function S(e) {
94
+ let a = r === void 0 ? void 0 : { previewToken: r };
95
+ if (m) return m(e, a);
96
+ let s = await y();
97
+ if (b(s), s) try {
98
+ return await s.experienceContent(e, a);
99
+ } catch {
100
+ return `${e.id}`, null;
101
+ }
102
+ return o === l ? null : c(t, n, e.id, {
103
+ ...r !== void 0 && { previewToken: r },
104
+ ...i !== void 0 && { signal: i }
105
+ });
106
+ }
107
+ return {
108
+ meta: h,
109
+ getProjectConfig: () => (_ ??= x(), _),
110
+ getContent: (e) => {
111
+ let t = v.get(e.id);
112
+ if (t) return t;
113
+ let n = S(e).finally(() => {
114
+ v.delete(e.id);
115
+ });
116
+ return v.set(e.id, n), n;
117
+ }
118
+ };
119
+ }
120
+ //#endregion
121
+ //#region src/plugins/dynamic-experiences/hash.ts
122
+ function m(e) {
123
+ let t = 2166136261;
124
+ for (let n of e) t ^= n.codePointAt(0) ?? 0, t = Math.imul(t, 16777619);
125
+ return t >>> 0;
126
+ }
127
+ function h(e) {
128
+ let t = e;
129
+ return t ^= t >>> 16, t = Math.imul(t, 2246822507), t ^= t >>> 13, t = Math.imul(t, 3266489909), t ^= t >>> 16, t >>> 0;
130
+ }
131
+ function g(e, t) {
132
+ return h(m(`${e}:${t}`)) % 100;
133
+ }
134
+ function _(e, t) {
135
+ return t <= 0 ? !1 : t >= 100 || e < t;
136
+ }
137
+ //#endregion
138
+ //#region src/plugins/dynamic-experiences/plugin.ts
139
+ function v(e, t) {
140
+ if (Array.isArray(t.conditions)) for (let n of t.conditions) e.registerCondition(n);
141
+ }
142
+ function y(e, t) {
143
+ e.registerExperience({
144
+ id: t.id,
145
+ key: t.key,
146
+ name: t.name,
147
+ targets: t.targets,
148
+ nodes: t.nodes,
149
+ edges: t.edges,
150
+ condition: t.condition,
151
+ initializeOpen: t.initializeOpen,
152
+ componentName: t.componentName
153
+ });
154
+ }
155
+ function b(e, t) {
156
+ if (Array.isArray(t.fields)) for (let n of t.fields) e.registerField(n);
157
+ }
158
+ function x(e, t) {
159
+ if (!Array.isArray(t.steps)) return;
160
+ let n = new Map(t.fields.map((e) => [e.id, e.key]));
161
+ for (let r of t.steps) {
162
+ let t = [];
163
+ for (let e of r.fieldIds ?? []) {
164
+ let i = n.get(e);
165
+ if (i === void 0) {
166
+ `${r.key}${e}`;
167
+ continue;
168
+ }
169
+ t.push(i);
170
+ }
171
+ let i = r.layoutContentId ? e.contents.getById(r.layoutContentId) : null;
172
+ e.registerStep({
173
+ id: r.id,
174
+ key: r.key,
175
+ name: r.name,
176
+ fieldKeys: t,
177
+ layoutName: r.layoutName,
178
+ ...r.layoutContentId !== void 0 && {
179
+ layoutContentId: r.layoutContentId,
180
+ layoutContentStore: i
181
+ }
182
+ });
183
+ }
184
+ }
185
+ function S(e, t) {
186
+ if (Array.isArray(t.experiences)) for (let n of t.experiences) y(e, n);
187
+ }
188
+ function C(e, t, n) {
189
+ E(e, t, n.isPreview, n.sessionId), v(e, t), b(e, t), x(e, t), S(e, t);
190
+ }
191
+ function w(e) {
192
+ let t = e.searchParams["preview-token"];
193
+ if (t && t.length > 0) return t[0];
194
+ }
195
+ function T(e) {
196
+ let t = /* @__PURE__ */ new Set(), n = e.searchParams.feature;
197
+ if (!n) return t;
198
+ for (let e of n) {
199
+ let n = e.indexOf(":");
200
+ n > 0 && t.add(e.substring(0, n));
201
+ }
202
+ return t;
203
+ }
204
+ function E(e, t, n, r) {
205
+ let i = T(e);
206
+ for (let a of t.features) i.has(a.id) || D(e, a, n, r);
207
+ }
208
+ function D(e, t, n, r) {
209
+ let i = g(r, t.id);
210
+ e.registerFeature(t.id, {
211
+ key: `v${t.version}`,
212
+ name: t.name,
213
+ enabled: t.enabled,
214
+ weight: t.weight,
215
+ storage: n ? "session" : "local",
216
+ decide: () => _(i, t.weight)
217
+ });
218
+ }
219
+ function O(e, t) {
220
+ for (let n of t.content) e.registerContent({
221
+ id: n.id,
222
+ contentModelKey: n.contentModelKey,
223
+ data: n.data
224
+ });
225
+ }
226
+ function k(e, t) {
227
+ let n = /* @__PURE__ */ new Map();
228
+ return (r, i) => {
229
+ let a = n.get(r.id);
230
+ if (a) return a;
231
+ let o = (async () => {
232
+ try {
233
+ let n = await t(r, i);
234
+ return n && O(e, n), n;
235
+ } finally {
236
+ n.delete(r.id);
237
+ }
238
+ })();
239
+ return n.set(r.id, o), o;
240
+ };
241
+ }
242
+ function A(e, t) {
243
+ let n = new Set(t && Array.isArray(t.experiences) ? t.experiences.map((e) => e.id) : []);
244
+ return (t, r) => n.has(t.id) ? e(t, r) : Promise.resolve(null);
245
+ }
246
+ function j(e, t, n) {
247
+ if (n?.dataProvider) return n.dataProvider;
248
+ let r = w(e);
249
+ return p({
250
+ apiUrl: t,
251
+ projectId: e.projectId,
252
+ ...n?.mode !== void 0 && { mode: n.mode },
253
+ ...r !== void 0 && { previewToken: r },
254
+ ...n?.bundle !== void 0 && { bundle: n.bundle },
255
+ ...n?.projectConfig !== void 0 && { projectConfig: n.projectConfig },
256
+ ...n?.getContent !== void 0 && { getContent: n.getContent }
257
+ });
258
+ }
259
+ function M(e) {
260
+ return {
261
+ name: "dynamic-experiences",
262
+ setup: (n) => {
263
+ let r = e?.apiUrl ?? n.apiUrl;
264
+ return { onStart: t({
265
+ source: n.session.store.map((e) => e.id),
266
+ effect: async (t) => {
267
+ let i = j(n, r, e), a = w(n) !== void 0, o = await i.getProjectConfig();
268
+ if (n.contentLoader = k(n, A((e) => i.getContent(e), o)), n.dataSource = i.meta.manifest, !o) return;
269
+ let s = n.seededVersionId;
270
+ if (s !== null && s !== o.versionId) {
271
+ n.versionSkew = {
272
+ seeded: s,
273
+ resolved: o.versionId
274
+ }, `${o.versionId}${s}`;
275
+ return;
276
+ }
277
+ n.previewEmbedderOrigins = o.previewEmbedderOrigins ?? null, C(n, o, {
278
+ isPreview: a,
279
+ sessionId: t
280
+ });
281
+ }
282
+ }) };
283
+ }
284
+ };
285
+ }
286
+ //#endregion
287
+ export { d as a, f as i, C as n, c as o, p as r, s, M as t };
@@ -0,0 +1,60 @@
1
+ import type { ExperienceContentResponse, FetchProjectOptions, ProjectConfig } from '../plugins/dynamic-experiences/types';
2
+ /**
3
+ * Minimal shape check: verifies that `data` is an object with a `features` array.
4
+ *
5
+ * This is the minimum invariant required to prevent runtime crashes when iterating
6
+ * `config.features`. Individual feature and experience shapes are trusted from the API.
7
+ *
8
+ * @param {unknown} data - Unknown API response to validate.
9
+ * @returns {boolean} Whether `data` has the minimum required shape.
10
+ * @example
11
+ * ```typescript
12
+ * if (isProjectConfig(json)) { json.features }
13
+ * ```
14
+ */
15
+ export declare function isProjectConfig(data: unknown): data is ProjectConfig;
16
+ /**
17
+ * Minimal shape check for a successful experience-content response.
18
+ *
19
+ * @param {unknown} data - Unknown API response to validate.
20
+ * @returns {boolean} Whether `data` has the minimum required shape.
21
+ * @example
22
+ * ```typescript
23
+ * if (isExperienceContentResponse(json)) { useResponse(json) }
24
+ * ```
25
+ */
26
+ export declare function isExperienceContentResponse(data: unknown): data is ExperienceContentResponse;
27
+ /**
28
+ * Fetches the project configuration from the Picked REST API.
29
+ *
30
+ * Returns `null` on network failure, non-OK responses, or invalid JSON shape.
31
+ * Connection-refused errors from local URLs are suppressed silently.
32
+ *
33
+ * @param {string} apiUrl - Base URL for the Picked API.
34
+ * @param {string} projectId - Project ID to fetch config for.
35
+ * @param {FetchProjectOptions} [options] - Optional headers, preview token, and abort signal.
36
+ * @returns {Promise<ProjectConfig | null>} Validated project config, or `null` on any failure.
37
+ * @example
38
+ * ```typescript
39
+ * const config = await fetchProject('https://api.picked.app', 'proj_123')
40
+ * ```
41
+ */
42
+ export declare function fetchProject(apiUrl: string, projectId: string, options?: FetchProjectOptions): Promise<ProjectConfig | null>;
43
+ /**
44
+ * Fetches per-experience content from the Picked API.
45
+ *
46
+ * Returns `null` on network failure, non-OK responses, or invalid JSON shape — preserving
47
+ * the failure-tolerant policy: experiences still render, layouts handle null defensively.
48
+ *
49
+ * @param {string} apiUrl - Base URL for the Picked API.
50
+ * @param {string} projectId - Project ID to fetch content for.
51
+ * @param {string} experienceId - Experience ID whose content to fetch.
52
+ * @param {FetchProjectOptions} [options] - Optional headers, preview token, and abort signal.
53
+ * @returns {Promise<ExperienceContentResponse | null>} Validated content response, or `null` on any failure.
54
+ * @example
55
+ * ```typescript
56
+ * const content = await fetchExperienceContent('https://api.picked.app', 'proj_1', 'exp_1')
57
+ * ```
58
+ */
59
+ export declare function fetchExperienceContent(apiUrl: string, projectId: string, experienceId: string, options?: FetchProjectOptions): Promise<ExperienceContentResponse | null>;
60
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/data-source/api.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACd,MAAM,sCAAsC,CAAA;AAiC7C;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAEpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,yBAAyB,CAM5F;AA8CD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAmC/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAqC3C"}
@@ -0,0 +1,97 @@
1
+ import type { ContentLoader, ExperienceContentResponse, PickedManifestMetadata, ProjectConfig, VirtualPickedData } from '../plugins/dynamic-experiences/types';
2
+ /** Where a data provider reads project config and CMS content from. */
3
+ export type PickedDataMode = 'bundle' | 'api';
4
+ /** Options for {@link createPickedDataProvider}. */
5
+ export interface PickedDataProviderOptions {
6
+ /** Base URL for the Picked API. Used by `'api'` mode and by every preview session. */
7
+ apiUrl: string;
8
+ /** Project ID to resolve data for. */
9
+ projectId: string;
10
+ /**
11
+ * Which source to read from. Omit to keep the legacy behaviour: `'bundle'` when
12
+ * `virtual:picked/data` resolves, `'api'` otherwise.
13
+ */
14
+ mode?: PickedDataMode;
15
+ /**
16
+ * Preview token from the current session. A present token forces `'api'` for both config
17
+ * and content and overrides `bundle` and `projectConfig`, because preview renders
18
+ * unpublished data that no bundled snapshot can contain.
19
+ */
20
+ previewToken?: string;
21
+ /**
22
+ * The `virtual:picked/data` module. Supply it to skip the dynamic import — which is also
23
+ * how a consumer places the module in a chosen chunk, since a module that is both
24
+ * statically and dynamically imported is placed in the static chunk.
25
+ */
26
+ bundle?: VirtualPickedData;
27
+ /** Explicit project config. Supersedes both sources, except under a preview token. */
28
+ projectConfig?: ProjectConfig;
29
+ /** Explicit content loader. Supersedes both sources, except under a preview token. */
30
+ getContent?: ContentLoader;
31
+ /** Abort signal applied to API fetches, such as an `AbortSignal.timeout` deadline. */
32
+ signal?: AbortSignal;
33
+ }
34
+ /** Read-only description of what a provider resolved to. */
35
+ export interface PickedDataProviderMeta {
36
+ /** The mode in force, after preview-token resolution. */
37
+ mode: PickedDataMode;
38
+ /** The bundle's manifest metadata, or `null` when not reading from a bundle. */
39
+ manifest: PickedManifestMetadata | null;
40
+ }
41
+ /** Resolves this session's project config and per-experience CMS content. */
42
+ export interface PickedDataProvider {
43
+ /** What this provider resolved to. `manifest` populates once a bundle has been read. */
44
+ readonly meta: PickedDataProviderMeta;
45
+ /** Resolves the project config, or `null` when unavailable. Deduplicated across callers. */
46
+ getProjectConfig: () => Promise<ProjectConfig | null>;
47
+ /** Resolves an experience's content, or `null` when unavailable. Deduplicated per experience id. */
48
+ getContent: (experience: {
49
+ id: string;
50
+ key: string;
51
+ }) => Promise<ExperienceContentResponse | null>;
52
+ }
53
+ /**
54
+ * Attempts to resolve `virtual:picked/data` provided by `@picked/vite-plugin-picked`.
55
+ *
56
+ * The dynamic import uses a literal string specifier (intentionally — using a variable plus
57
+ * `@vite-ignore` defeats Vite's import-analysis, so the plugin's `resolveId` is never called
58
+ * at build time and the bundle ends up with a runtime fetch to a `virtual:` URL that the
59
+ * browser cannot resolve). The SDK's own build marks `virtual:picked/data` as external so
60
+ * this literal import is preserved into the published dist, then downstream Vite builds with
61
+ * `@picked/vite-plugin-picked` resolve it through the plugin pipeline.
62
+ *
63
+ * Returns `null` when the virtual module is unresolvable (the consumer is not using the Vite
64
+ * plugin, or its build did not generate the module). Errors are swallowed: the caller falls
65
+ * back to the API path.
66
+ *
67
+ * @returns {Promise<VirtualPickedData | null>} The virtual module exports, or `null`.
68
+ * @example
69
+ * ```typescript
70
+ * const bundle = await resolveVirtualDataModule()
71
+ * ```
72
+ */
73
+ export declare function resolveVirtualDataModule(): Promise<VirtualPickedData | null>;
74
+ /**
75
+ * Runtime type guard that validates the shape of an imported `virtual:picked/data` module.
76
+ *
77
+ * @param {unknown} value - Candidate module exports.
78
+ * @returns {boolean} Whether `value` matches the {@link VirtualPickedData} shape.
79
+ * @example
80
+ * ```typescript
81
+ * if (isVirtualPickedData(mod)) { useVirtualModule(mod) }
82
+ * ```
83
+ */
84
+ export declare function isVirtualPickedData(value: unknown): value is VirtualPickedData;
85
+ /**
86
+ * Creates the data provider for a session.
87
+ *
88
+ * @param {PickedDataProviderOptions} options - Provider configuration.
89
+ * @returns {PickedDataProvider} A provider resolving config and content from one source.
90
+ * @example
91
+ * ```typescript
92
+ * const provider = createPickedDataProvider({ mode: 'api', apiUrl, projectId })
93
+ * const config = await provider.getProjectConfig()
94
+ * ```
95
+ */
96
+ export declare function createPickedDataProvider(options: PickedDataProviderOptions): PickedDataProvider;
97
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/data-source/provider.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EAClB,MAAM,sCAAsC,CAAA;AAG7C,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,CAAA;AAQ7C,oDAAoD;AACpD,MAAM,WAAW,yBAAyB;IACxC,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,sFAAsF;IACtF,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,sFAAsF;IACtF,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,sFAAsF;IACtF,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,IAAI,EAAE,cAAc,CAAA;IACpB,gFAAgF;IAChF,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAA;CACxC;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;IACrC,4FAA4F;IAC5F,gBAAgB,EAAE,MAAM,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IACrD,oGAAoG;IACpG,UAAU,EAAE,CAAC,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;CACnG;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAYlF;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAU9E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAwJ/F"}
@@ -48,6 +48,22 @@ export interface ResolvedFeatureBucket extends FeatureBaseBucket {
48
48
  };
49
49
  }
50
50
  export type FeatureBucket = UnresolvedFeatureBucket | ResolvedFeatureBucket;
51
+ /**
52
+ * Reads a bucket back out of its stored text.
53
+ *
54
+ * Storage holds a bucket as raw text, so this is the inverse of the write: `'true'` and
55
+ * `'false'` are the two booleans and every other value is a named variant. A variant named
56
+ * literally `true` or `false` therefore comes back as a boolean.
57
+ *
58
+ * @param {string} value - Stored text, or the value side of a `?picked-feature=` override.
59
+ * @returns {boolean | string} The boolean bucket, or the variant name unchanged.
60
+ * @example
61
+ * ```typescript
62
+ * parseBucket('true') // true
63
+ * parseBucket('variant-a') // 'variant-a'
64
+ * ```
65
+ */
66
+ export declare function parseBucket(value: string): boolean | string;
51
67
  declare const createFeatureIndexFactory: ({ client }: {
52
68
  client: Picked;
53
69
  }) => {
@@ -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,QAAA,MAAM,yBAAyB,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;;YAoBzC,MAAM;iBAAW,OAAO;;kBAwOvC,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;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"}
@@ -14,8 +14,6 @@ export { evaluateRuleLogic } from './utils/rules-logic';
14
14
  export { getPickedConfig } from './utils/picked-config';
15
15
  export { lazyComponent, isLazyLoader } from './entities/component/lazyComponent';
16
16
  export { createPluginEffect } from './entities/plugin/plugin';
17
- export { deriveReference, deriveReferences, isContentReference, readReferenceId, readReferenceIds, } from './entities/content/reference';
18
- export type { ContentReference } from './entities/content/reference';
19
17
  /**
20
18
  * Creates a new Picked client instance and binds it to the window object.
21
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"AAAA,8IAA8I;AAC9I,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,6BAA6B,CAAA;AAEpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,mBAAmB,iBAAiB,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,8BAA8B,CAAA;AACrC,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAEpE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,YAAa,mBAAmB,KAAG,MAI3D,CAAA;AAED,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kCAAkC,CAAA"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"AAAA,8IAA8I;AAC9I,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,6BAA6B,CAAA;AAEpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,mBAAmB,iBAAiB,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,YAAa,mBAAmB,KAAG,MAI3D,CAAA;AAED,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kCAAkC,CAAA"}
@@ -4,7 +4,6 @@ export type * from './client';
4
4
  export type * from './entities/action/action';
5
5
  export type * from './entities/condition/condition';
6
6
  export type * from './entities/content/content';
7
- export type * from './entities/content/reference';
8
7
  export type * from './entities/component/component';
9
8
  export type * from './entities/component/lazyComponent';
10
9
  export type * from './entities/experience-instance/experience-instance';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,cAAc,WAAW,CAAA;AACzB,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,8BAA8B,CAAA;AACjD,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,oCAAoC,CAAA;AACvD,mBAAmB,oDAAoD,CAAA;AACvE,mBAAmB,kCAAkC,CAAA;AACrD,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,gBAAgB,CAAA;AACnC,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,8BAA8B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,cAAc,WAAW,CAAA;AACzB,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,oCAAoC,CAAA;AACvD,mBAAmB,oDAAoD,CAAA;AACvE,mBAAmB,kCAAkC,CAAA;AACrD,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,0BAA0B,CAAA;AAC7C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,gBAAgB,CAAA;AACnC,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,8BAA8B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
@@ -44,6 +44,21 @@ 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;
47
62
  /**
48
63
  * Content fetcher selected by `dynamicExperiencesPlugin`'s resolution chain. Called
49
64
  * by each experience's `prepareExperienceContentFx` (fired in parallel with
@@ -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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"}