@picked/client 0.0.1-dev.1774231221701 → 0.0.1-dev.1774244905386

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 (119) hide show
  1. package/dist/{api-oudcFuUX.js → api-ENA5t36y.js} +1 -1
  2. package/dist/{api-BEXzPJHZ.cjs → api-dkMxUUe0.cjs} +1 -1
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/plugins/create-experience/index.js +1 -1
  5. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  6. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  7. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  8. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
  10. package/dist/cjs/plugins/single-page-app/index.js +1 -1
  11. package/dist/cjs/plugins/web-components/index.js +1 -1
  12. package/dist/cjs/server/index.js +1 -1
  13. package/dist/esm/index.js +503 -426
  14. package/dist/esm/plugins/create-experience/index.js +329 -294
  15. package/dist/esm/plugins/dynamic-experiences/index.js +53 -30
  16. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  17. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  18. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  19. package/dist/esm/plugins/responses-indexeddb/index.js +9 -5
  20. package/dist/esm/plugins/single-page-app/index.js +4 -4
  21. package/dist/esm/plugins/web-components/index.js +1 -1
  22. package/dist/esm/server/index.js +1 -1
  23. package/dist/experience-instance-BODAwa-_.js +713 -0
  24. package/dist/experience-instance-DImQh64e.cjs +1 -0
  25. package/dist/object-BReQiaSS.cjs +1 -0
  26. package/dist/{object-C82v79xc.js → object-Clj5zVr1.js} +1 -2
  27. package/dist/storage-BFjb8azI.cjs +1 -0
  28. package/dist/{storage-6Xk0uAxB.js → storage-DyxpJ0pg.js} +1 -3
  29. package/dist/types/entities/action/action.d.ts.map +1 -1
  30. package/dist/types/entities/condition/condition.d.ts +17 -0
  31. package/dist/types/entities/condition/condition.d.ts.map +1 -0
  32. package/dist/types/entities/experience/experience.d.ts +36 -59
  33. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  34. package/dist/types/entities/experience-instance/experience-instance.d.ts +2 -2
  35. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  36. package/dist/types/entities/feature/feature.d.ts.map +1 -1
  37. package/dist/types/entities/field/field.d.ts +17 -12
  38. package/dist/types/entities/field/field.d.ts.map +1 -1
  39. package/dist/types/entities/history/history.d.ts.map +1 -1
  40. package/dist/types/entities/project/project.d.ts +9 -0
  41. package/dist/types/entities/project/project.d.ts.map +1 -0
  42. package/dist/types/entities/response/response.d.ts +10 -7
  43. package/dist/types/entities/response/response.d.ts.map +1 -1
  44. package/dist/types/entities/step/step.d.ts +38 -0
  45. package/dist/types/entities/step/step.d.ts.map +1 -0
  46. package/dist/types/index.d.ts +3 -1
  47. package/dist/types/index.d.ts.map +1 -1
  48. package/dist/types/logic-engine.d.ts +8 -2
  49. package/dist/types/logic-engine.d.ts.map +1 -1
  50. package/dist/types/picked.d.ts +61 -52
  51. package/dist/types/picked.d.ts.map +1 -1
  52. package/dist/types/plugins/create-experience/create-experience.d.ts +61 -29
  53. package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
  54. package/dist/types/plugins/create-experience/index.d.ts +2 -2
  55. package/dist/types/plugins/create-experience/index.d.ts.map +1 -1
  56. package/dist/types/plugins/create-experience/plugin.d.ts.map +1 -1
  57. package/dist/types/plugins/dynamic-experiences/plugin.d.ts +21 -4
  58. package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
  59. package/dist/types/plugins/dynamic-experiences/types.d.ts +47 -0
  60. package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
  61. package/dist/types/plugins/experience-browser-storage/plugin.d.ts +1 -2
  62. package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +1 -1
  63. package/dist/types/plugins/history-browser-storage/plugin.d.ts +0 -1
  64. package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
  65. package/dist/types/plugins/responses-browser-storage/plugin.d.ts +1 -2
  66. package/dist/types/plugins/responses-browser-storage/plugin.d.ts.map +1 -1
  67. package/dist/types/plugins/responses-indexeddb/plugin.d.ts.map +1 -1
  68. package/dist/types/plugins/single-page-app/plugin.d.ts +1 -1
  69. package/dist/types/plugins/single-page-app/plugin.d.ts.map +1 -1
  70. package/dist/types/utils/dom.d.ts +3 -0
  71. package/dist/types/utils/dom.d.ts.map +1 -1
  72. package/dist/types/utils/events.d.ts +2 -2
  73. package/dist/types/utils/events.d.ts.map +1 -1
  74. package/dist/types/utils/global-obj.d.ts +1 -0
  75. package/dist/types/utils/global-obj.d.ts.map +1 -1
  76. package/dist/types/utils/indexed-db.d.ts +1 -2
  77. package/dist/types/utils/indexed-db.d.ts.map +1 -1
  78. package/dist/types/utils/key.d.ts +12 -0
  79. package/dist/types/utils/key.d.ts.map +1 -0
  80. package/dist/types/utils/logger.d.ts.map +1 -1
  81. package/dist/types/utils/node-tree/min-max-steps-to-leaf.d.ts.map +1 -1
  82. package/dist/types/utils/node-tree/min-max-steps-to-origin.d.ts.map +1 -1
  83. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts +3 -3
  84. package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts.map +1 -1
  85. package/dist/types/utils/nodes.d.ts +25 -2
  86. package/dist/types/utils/nodes.d.ts.map +1 -1
  87. package/dist/types/utils/object.d.ts +8 -0
  88. package/dist/types/utils/object.d.ts.map +1 -1
  89. package/dist/types/utils/picked-config.d.ts +1 -1
  90. package/dist/types/utils/picked-config.d.ts.map +1 -1
  91. package/dist/types/utils/search-params.d.ts.map +1 -1
  92. package/dist/types/utils/storage.d.ts.map +1 -1
  93. package/package.json +1 -11
  94. package/dist/cjs/form/index.js +0 -1
  95. package/dist/esm/form/index.js +0 -428
  96. package/dist/experience-instance-DZiAwXph.js +0 -481
  97. package/dist/experience-instance-Ddk4Jktn.cjs +0 -1
  98. package/dist/object-CUJOjanb.cjs +0 -1
  99. package/dist/rules-logic-B7vJrWyO.js +0 -231
  100. package/dist/rules-logic-CXr4wXcG.cjs +0 -1
  101. package/dist/storage-B6lQtc4-.cjs +0 -1
  102. package/dist/types/form/build-responses.d.ts +0 -14
  103. package/dist/types/form/build-responses.d.ts.map +0 -1
  104. package/dist/types/form/create-field-evaluator.d.ts +0 -19
  105. package/dist/types/form/create-field-evaluator.d.ts.map +0 -1
  106. package/dist/types/form/create-field-validation.d.ts +0 -44
  107. package/dist/types/form/create-field-validation.d.ts.map +0 -1
  108. package/dist/types/form/create-form.d.ts +0 -66
  109. package/dist/types/form/create-form.d.ts.map +0 -1
  110. package/dist/types/form/create-submit-pipeline.d.ts +0 -58
  111. package/dist/types/form/create-submit-pipeline.d.ts.map +0 -1
  112. package/dist/types/form/get-step-fields.d.ts +0 -5
  113. package/dist/types/form/get-step-fields.d.ts.map +0 -1
  114. package/dist/types/form/index.d.ts +0 -10
  115. package/dist/types/form/index.d.ts.map +0 -1
  116. package/dist/types/plugins/create-experience/serialization.d.ts +0 -6
  117. package/dist/types/plugins/create-experience/serialization.d.ts.map +0 -1
  118. /package/dist/{id-CRqy981z.js → id-BniPxOdF.js} +0 -0
  119. /package/dist/{id-Bv44ilEo.cjs → id-CIbS4P60.cjs} +0 -0
@@ -8,7 +8,7 @@ function n(n, r) {
8
8
  }
9
9
  //#endregion
10
10
  //#region src/utils/version.ts
11
- var r = () => "0.0.1-dev.1774231221701", i = "v1";
11
+ var r = () => "0.0.1-dev.1774244905386", i = "v1";
12
12
  function a(e, t) {
13
13
  return new URL(`/api/${i}/${t}`, e).toString();
14
14
  }
@@ -1 +1 @@
1
- var e=`Picked-Client`,t=`Picked-Version`;function n(n,r){return{[e]:n,[t]:r}}var r=()=>`0.0.1-dev.1774231221701`,i=`v1`;function a(e,t){return new URL(`/api/${i}/${t}`,e).toString()}function o(e){return{...n(`sdk`,r()),...e}}async function s(e,t,n){let r=a(e,t);return fetch(r,{headers:o(n)})}async function c(e,t,n,r){let i=a(e,t);return fetch(i,{method:`POST`,headers:{"Content-Type":`application/json`,...o(r)},body:JSON.stringify(n)})}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
1
+ var e=`Picked-Client`,t=`Picked-Version`;function n(n,r){return{[e]:n,[t]:r}}var r=()=>`0.0.1-dev.1774244905386`,i=`v1`;function a(e,t){return new URL(`/api/${i}/${t}`,e).toString()}function o(e){return{...n(`sdk`,r()),...e}}async function s(e,t,n){let r=a(e,t);return fetch(r,{headers:o(n)})}async function c(e,t,n,r){let i=a(e,t);return fetch(i,{method:`POST`,headers:{"Content-Type":`application/json`,...o(r)},body:JSON.stringify(n)})}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
package/dist/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../rules-logic-CXr4wXcG.cjs`),t=require(`../object-CUJOjanb.cjs`),n=require(`../logger-fbvQC40v.cjs`),r=require(`../supports-Dsjg-82e.cjs`),i=require(`../experience-instance-Ddk4Jktn.cjs`),a=require(`../storage-B6lQtc4-.cjs`),o=require(`../api-BEXzPJHZ.cjs`),s=require(`../id-Bv44ilEo.cjs`);let c=require(`effector`),l=require(`@withease/factories`);var u=(0,c.createDomain)(`experience`),d=(0,l.createFactory)(({client:e,experience:t})=>{let n=u.store(t),r=(0,c.createApi)(n,{merge(e,t){return{...e,...t.experience}}}),i=n.map(e=>({name:e.name,decisionLogic:e.condition,targetSelectors:e.targets,initializeOpenLogic:t.initializeOpen})),a=e.components.listStore.map(e=>(t.componentName?e.find(e=>e.name===t.componentName):void 0)||e.find(e=>e.name===`experience:${t.id}`)||e.find(e=>e.name===`experience`),{skipVoid:!1}),o=n.map(e=>({steps:e.steps,nodes:e.nodes,edges:e.edges,conditionals:e.conditionals})),s=n.map(e=>e.fields),l=t.actions??[];return{id:t.id,configStore:i,treeStore:o,fieldsStore:s,componentStore:a,actions:l,merge:r.merge}});function f(e){return(0,l.invoke)(d,e)}var p=(0,l.createFactory)(({client:e})=>{let t=u.store({}),n=(0,c.createApi)(t,{register(e,t){return{...e,[t.id]:t}}});function r(r){let i=t.getState()[r.id];if(i){i.merge({experience:r,strategy:`override`});return}let a=f({client:e,experience:r});n.register(a)}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}let o=(0,c.attach)({source:t,effect:async(t,{id:n,options:r})=>{let i=t[n];if(!i){`${n}`;return}if(r?.bypassCondition){g(e,i,r);return}await v(e,i)&&g(e,i,r)}});return{register:r,get:a,getById:a,launch:o,open:(0,c.attach)({source:e.experienceInstances.listStore,effect:(e,{id:t,options:n})=>{let r=e.filter(e=>e.experienceId===t);if(r.length>0)for(let e of r)e.open();else o({id:t,options:{...n,initialiseOpen:!0}})}}),listStore:i}});function m(e){return(0,l.invoke)(p,e)}var h=(e,t)=>{t.register(e)},g=(e,t,n)=>{let{targetSelectors:r}=t.configStore.getState(),a=i.o(r,t.id);a.forEach(({elements:e})=>e.forEach(e=>i.c(e,t.id))),i.i(a,t.id).forEach(r=>{n?e.experienceInstances.spawn(t,r,n):e.experienceInstances.spawn(t,r)})},_=async e=>{await Promise.all(e.experiences.listStore.getState().map(async t=>{await v(e,t)&&g(e,t)}))},v=async(t,n)=>{if(!t.preconditionPassed||!t.session?.isUser)return!1;let{decisionLogic:r,targetSelectors:a}=n.configStore.getState();return i.o(a,n.id).length<1||a.length===0?!1:r===void 0?!0:e.n(r)?await e.t(t,r)===!0:!0},ee=(e,t,n)=>{let r=t.name,i=t.setup(e);if(i){let e=n[r]??{};n[r]=Object.freeze({...e,...i})}},y=(0,c.createDomain)(`component`),b=(0,l.createFactory)(({client:e,component:t,name:n})=>({name:n,component:t,frameworkStore:e.frameworks.getByName(t.frameworkName)}));function x(e){return(0,l.invoke)(b,e)}var S=(0,l.createFactory)(({client:e})=>{let t=y.store({}),n=(0,c.createApi)(t,{register(e,t){return{...e,[t.name]:t}}});function r(r,i){t.getState()[r]&&`${r}`;let a=x({client:e,name:r,component:i});n.register(a)}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:r,getByName:a,listStore:i}});function te(e){return(0,l.invoke)(S,e)}var C=(e,t,n)=>{n.register(e,t)},ne=(0,c.createDomain)(`framework`),re=(0,l.createFactory)(({client:e})=>{let t=ne.store({}),n=(0,c.createApi)(t,{register(e,t){return{...e,[t.name]:t.framework}}});function r(e,r){t.getState()[e]&&`${e}`,n.register({name:e,framework:r})}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:r,getByName:a,listStore:i}});function ie(e){return(0,l.invoke)(re,e)}var ae=(e,t)=>{t.register(e.name,e)},w=6e3,T=a.t(`last_ping`,`global`),E=async e=>{try{let t=Date.now(),n=a.n.get(T),r=0;if(n.isSet()&&(r=n.json()??0),r&&t-r<w)return!0;let i={projectId:e.projectId,path:window.location.pathname},s={},c=document.getElementById(`picked_script`)?.dataset.verceltoken;c&&(s[`x-vercel-protection-bypass`]=c);let l=(await o.n(e.apiUrl,`ping`,i,s)).ok;return l&&n.set(t),l}catch{return!1}};function D(e){let t=typeof window<`u`,n={client:e,responses:e.responses.listStore.getState(),fields:e.fields.listStore.getState(),location:t?window.location:void 0,document:t?window.document:void 0,sessionStorage:t?window.sessionStorage:void 0,localStorage:t?window.localStorage:void 0};return Object.freeze(n)}var O=(0,c.createDomain)(`predicate`),k=(0,l.createFactory)(({client:e})=>{let t=O.store({}),n=(0,c.createApi)(t,{register(e,t){return{...e,[t.name]:{name:t.name,predicate:t.predicate}}}});function r(e,r){t.getState()[e]&&`${e}`,n.register(Object.freeze({name:e,predicate:r}))}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e]?.predicate,{skipVoid:!1})}function o(t){let n=(0,c.createStore)(()=>void 0,{skipVoid:!1}),r=(0,c.createEffect)(async()=>{let n=a(t).getState();if(!n)return;let r=D(e);return(...e)=>n({...r,args:e})});return(0,c.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:r}),(0,c.sample)({clock:r.doneData,filter:e=>e!==void 0,target:n}),r(),n}return{register:r,getByName:a,listStore:i,getEvokablePredicate:o}});function A(e){return(0,l.invoke)(k,e)}var j=(e,t,n)=>{n.register(e,t)},M=(0,c.createDomain)(`feature`),N=(0,l.createFactory)(({client:e})=>{let t=M.store({}),n=M.store([]),r=(0,c.createApi)(t,{register(e,t){return{...e,[t.id]:t.feature}}});function i(e,n){t.getState()[e]&&`${e}`;let i={id:e,feature:{...n,id:e}};r.register(Object.freeze({id:e,feature:i}))}let o=(0,c.createEffect)(async({id:e,key:t,storage:n=`local`})=>{let r=a.t(`feature:${e}:${t}`,`global`),i=(n===`session`?a.r:a.n).get(r).boolean();return i===null?null:{id:e,key:t,bucket:i,storage:n}}),s=(0,c.createEffect)(e=>{if(!e)return null;let t=a.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?a.r:a.n).set(t,e.bucket)}),l=new Map,u=(0,c.attach)({source:{allFeaturesStore:t,resolvedFeaturesStore:n},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let a=t.find(e=>e.id===n&&e.key===i);if(a)return a;let o=e[n];if(!o)throw Error(`Feature with id '${n}' not found`);let s=l.get(`${n}:${i}`);if(s!==void 0){let e=await s;return{id:o.id,bucket:e,key:i,storage:o.feature.storage}}let c=r();l.set(`${n}:${i}`,c);let u=await c;return{id:o.id,bucket:u,key:i,storage:o.feature.storage}}});(0,c.sample)({clock:r.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage}},target:o}),(0,c.sample)({source:t,clock:u.doneData,fn:(e,t)=>{let{id:n,bucket:r,storage:i}=t,a=e[n]?.feature.key;return a?{key:a,id:n,bucket:r,storage:i}:null},target:s});let d=(0,c.combine)({allFeaturesStore:t,resolvedFeaturesStore:n}).map(({allFeaturesStore:e,resolvedFeaturesStore:t})=>Object.values(e).map(e=>{let n=t.find(t=>t.id===e.id&&t.key===e.feature.key);return n?{id:e.id,name:e.feature.name,key:e.feature.key,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,getBucket:async()=>await u(e.feature),isResolved:!1}}));(0,c.sample)({clock:u.doneData,source:{resolvedFeatures:n},filter:({resolvedFeatures:e},{id:t,key:n})=>!e.some(e=>e.id===t&&e.key===n),fn:(e,t)=>t,target:e.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,c.sample)({clock:[o.doneData,u.doneData],source:n,fn:(e,t)=>!t||e.some(e=>e.id===t.id&&e.key===t.key)?e:[...e,t],target:n});function f(e){return d.map(t=>t.find(t=>t.id===e))}function p(e){return t.map(t=>t[e],{skipVoid:!1})}function m(e){let t=(0,c.createStore)(async()=>void 0,{skipVoid:!1}),r=(0,c.createEffect)(async()=>{let t=f(e).getState();if(t)return async()=>(await t.getBucket()).bucket});return(0,c.sample)({source:n,filter:t=>t.some(t=>t.id===e),target:r}),(0,c.sample)({clock:r.doneData,filter:e=>e!==void 0,target:t}),r(),t}return{register:i,getById:f,getByName:p,listStore:d,getEvokableFeature:m}});function P(e){return(0,l.invoke)(N,e)}var F=(e,t,n)=>{n.register(e,t)},I=(0,c.createDomain)(`history`);function L(e,t){return{id:s.t(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}var R=(0,l.createFactory)(()=>{let e=I.store({entries:[]}),t=I.event(),n=I.event(),r=I.event(),a=I.event();e.on(t,(e,t)=>({entries:[...e.entries,L(t.experienceId,t.node)]})),e.on(n,(e,t)=>({entries:[...e.entries.slice(0,-1),L(t.experienceId,t.node)]})),e.on(a,(e,t)=>t);function o(e,t){let n={lastStepIndex:-1,secondLastStepIndex:-1};for(let r=e.length-1;r>=0;r--){let a=e[r],o=a?.node;if(!(!o||!i.r(o))&&!(t&&a.experienceId!==t))if(n.lastStepIndex===-1)n.lastStepIndex=r;else{n.secondLastStepIndex=r;break}}return n}return e.on(r,(e,t)=>{let{secondLastStepIndex:n}=o(e.entries,t.experienceId),r=n===-1?e.entries:e.entries.slice(0,n+1);return{...e,entries:r}}),{push:t,replace:n,back:r,restore:a,entriesStore:e.map(e=>e.entries)}});function z(){return(0,l.invoke)(R)}var B=0,V=e=>{let t=(0,c.createStore)([]);return(0,c.sample)({clock:e,source:t,fn:(e,t)=>[...e,{id:B++,at:new Date,payload:t}],target:t}),t},H=(0,c.createDomain)(`field`),U=(0,l.createFactory)(()=>{let e=H.store({}),t=(0,c.createApi)(e,{register(e,t){return{...e,[t.field.id]:t.field}},updateById(e,t){let n=e[t.fieldId];return n?{...e,[t.fieldId]:Object.assign({},n,t.updates)}:e}});function n(e){t.register({field:e})}function r(e,n){t.updateById({fieldId:e,updates:n})}let i=e.map(e=>Object.values(e));function a(t){return e.map(e=>e[t]||null)}function o(t){return e.map(e=>Object.values(e).find(e=>e.name===t)||null)}return{register:n,update:r,getById:a,listStore:i,getByName:o}});function W(){return(0,l.invoke)(U)}var G=(e,t)=>{t.register(e)},K=(0,c.createDomain)(`action`),q=(0,l.createFactory)(()=>{let e=K.store({}),t=(0,c.createApi)(e,{register(e,t){return{...e,[t.name]:{name:t.name,action:t.action}}}});function n(e,n){t.register({name:e,action:n})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t],{skipVoid:!1})}function a(t){return e.map(e=>{let n=e[t];return n?n.action:void 0},{skipVoid:!1})}return{register:n,getByName:i,listStore:r,getEvokableAction:a}});function oe(){return(0,l.invoke)(q)}var se=(e,t,n)=>{n.register(e,t)};function J(e){return e==null||e===``||Array.isArray(e)&&!e.length}function ce(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e===null}function Y(e){try{return JSON.stringify(e),!0}catch{return!1}}var le=(0,c.createDomain)(`response`),ue=(0,l.createFactory)(({client:n})=>{let r=le.store({}),i=(0,c.createEvent)(),a=(0,c.createEvent)(),o=(0,c.createApi)(r,{register(e,t){return{...e,[t.fieldId]:t.response}},registerBatch(e,t){return{...e,...t}},clear(e,t){let{[t]:n,...r}=e;return r},clearAll(){return{}}});function s(e,t){if(typeof e==`string`){if(t===void 0)throw Error(`Response is required when registering a single field`);o.register({fieldId:e,response:t})}else o.registerBatch(e)}async function l(r,i){let a=[];return await Promise.allSettled(Object.entries(i).map(async([o,s])=>{let c=s,l=n.fields.getById(o).getState();if(!l){a.push({fieldId:o,userMessage:`Field '${o}' not found`,systemMessage:`No field with ID '${o}' exists. Available field IDs are: ${Object.keys(n.fields.listStore.getState()).join(`,`)}.`,value:c});return}if(l.multiple&&(typeof c==`string`||typeof c==`number`||typeof c==`boolean`)&&(c=[c]),l.validation&&!t.t(l.validation)&&!J(c)){let t={...r,...i},s=await e.t(n,l.validation,{$input:c,responses:t});if(typeof s==`string`){a.push({fieldId:o,userMessage:s,systemMessage:`Field validation resulted in an error: ${s}.`,value:c});return}if(s===!1){a.push({fieldId:o,userMessage:`This field is invalid`,systemMessage:`Field validation resulted in an unspecified error.`,value:c});return}}if(l.required&&J(c)){a.push({fieldId:o,userMessage:`This field is required`,systemMessage:`Field is required.`,value:c});return}if(!l.multiple&&Array.isArray(c)&&c.length>1){a.push({fieldId:o,userMessage:`This field expects a single response`,systemMessage:`Field expects a single response.`,value:c});return}if(l.type===`object`&&!J(c))if(l.multiple){if(!Array.isArray(c)){a.push({fieldId:o,userMessage:`This field expects multiple values`,systemMessage:`Field expects an array of objects.`,value:c});return}for(let e of c){if(typeof e!=`object`||!e){a.push({fieldId:o,userMessage:`This field expects object values`,systemMessage:`Field expects an array of objects, but received non-object value.`,value:c});return}if(!Y(e)){a.push({fieldId:o,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:c});return}}}else{if(Array.isArray(c)){a.push({fieldId:o,userMessage:`This field expects a single value`,systemMessage:`Field expects a single object, not an array.`,value:c});return}if(typeof c!=`object`||!c){a.push({fieldId:o,userMessage:`This field expects an object value`,systemMessage:`Field expects an object value.`,value:c});return}if(!Y(c)){a.push({fieldId:o,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:c});return}}if(Array.isArray(l.options)&&l.options.length>0){let e=Array.isArray(c)?c:[c];if(l.type===`object`){let t=l.options.map(e=>JSON.stringify(e.value));e.every(e=>t.includes(JSON.stringify(e)))||a.push({fieldId:o,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option from the defined choices.`,value:c})}else{let t=l.options.map(e=>e.value);e.every(e=>!ce(e)||e===null?!1:t.includes(e))||a.push({fieldId:o,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option. Valid options are: ${t.join(`, `)}`,value:c})}}})),{responsesToCommit:i,validationErrors:a}}let u=(0,c.attach)({source:r,effect:(e,t)=>l(e,t)});async function d(e){return u(e)}let f=(0,c.attach)({source:r,effect:async(e,t)=>{let{responsesToCommit:n,validationErrors:r}=await l(e,t);return r.length?{errors:r}:(o.registerBatch(n),{errors:[]})}});async function p(e){return f(e)}let m=r.map(e=>e),h=r.map(e=>Object.keys(e).map(t=>({fieldId:t,value:e[t]})));function g(e){return(0,c.combine)({f:n.fields.getById(e),r:r.map(t=>t[e]||null)},({f:e,r:t})=>t||(e?.defaultValue?e.defaultValue:null))}function _(e){return(0,c.combine)({f:n.fields.getByName(e),s:r},({f:e,s:t})=>e&&t[e.id]||(e?.defaultValue?e.defaultValue:null))}return(0,c.sample)({clock:i,target:o.clearAll}),(0,c.sample)({clock:a,target:o.clear}),{register:s,clearAll:i,clear:a,commit:p,getResponsesToCommit:d,listStore:h,getAllStore:m,getByFieldId:g,getByFieldName:_}});function de(e){return(0,l.invoke)(ue,e)}function fe(){if(r.r()){let e=[document.currentScript,document.getElementById(`picked_script`),document.getElementById(`picked`),document.getElementById(`cvly`),document.getElementById(`cvly-x`)];for(let t of e)if(t?.dataset.api)return t.dataset.api}return`https://api.picked.app`}function pe(){if(!r.d())return{};let e=new URLSearchParams(window.location.search),t={},n=new Set;for(let[t]of e.entries())t.startsWith(`picked-`)&&n.add(t);for(let r of n){let n=r.replace(`picked-`,``);t[n]=e.getAll(r)}let i=a.t(`s`);if(n.size>0)a.r.set(i,t);else{let e=a.r.get(i);if(e)return e.json()||{}}return t}function me(){return r.n()?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).substring(2,15)}-${Math.random().toString(36).substring(2,15)}-${Math.random().toString(36).substring(2,15)}`}var he=a.t(`session`,`global`),ge=()=>{let e=a.n.get(he),t;e.isSet()&&(t=e.json());let n=t=>e.set({id:t.id,isUser:t.isUser,identifiers:t.identifiers}),r={id:t?.id??me(),isUser:t?.isUser??void 0,identifiers:t?.identifiers??void 0,setIsUser(e){this.isUser=e,n(this)},setIdentifier(e,t){this.identifiers={...this.identifiers,[e]:t},n(this)},removeIdentifier(e){this.identifiers&&(this.identifiers=Object.fromEntries(Object.entries(this.identifiers).filter(([t])=>t!==e)),this.identifiers=Object.keys(this.identifiers).length?this.identifiers:void 0,n(this))}};return n(r),r},_e=()=>r.o()?ge():null;function X(){if(r.d())return globalThis.window.pickedConfig}function ve(){if(!r.d())return;let e=X(),t=e?.organizationId,n=e?.projectId;return t&&n?{organizationId:t,projectId:n}:void 0}function ye(){if(!r.r())return;let e=document.getElementById(`picked_script`)||document.querySelector(`script#picked`)||document.getElementById(`cvly`);if(!e)return;let t=e.dataset.organizationid||e.getAttribute(`organization-id`),n=e.dataset.projectid||e.getAttribute(`project-id`);return t&&n?{organizationId:t,projectId:n}:void 0}function be(e){let{organizationId:t,projectId:n}=e;if(t&&n)return{organizationId:t,projectId:n};let r=ve();if(r)return r;let i=ye();if(i)return i;throw Error(`organizationId and projectId are required. You can provide them via one of:
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../experience-instance-DImQh64e.cjs`),t=require(`../object-BReQiaSS.cjs`),n=require(`../logger-fbvQC40v.cjs`),r=require(`../supports-Dsjg-82e.cjs`),i=require(`../storage-BFjb8azI.cjs`),a=require(`../api-dkMxUUe0.cjs`),o=require(`../id-CIbS4P60.cjs`);let s=require(`effector`),c=require(`@withease/factories`);var l=(0,s.createDomain)(`experience`),u=(0,c.createFactory)(({client:t,experience:n})=>{let r=l.store(n),i=(0,s.createApi)(r,{merge(e,t){return{...e,...t.experience}}}),a=r.map(e=>({name:e.name,decisionLogic:e.condition,targetSelectors:e.targets,initializeOpenLogic:n.initializeOpen})),o=n.component?{name:`experience:${n.id}`,component:n.component,frameworkStore:t.frameworks.getByName(n.component.frameworkName)}:void 0,c=t.components.listStore.map(e=>o||(n.componentName?e.find(e=>e.name===n.componentName):void 0)||e.find(e=>e.name===`experience:${n.id}`)||e.find(e=>e.name===`experience`),{skipVoid:!1}),u=(0,s.combine)(r,t.steps.listStore,t.conditions.listStore,(t,n,r)=>{let i=t.nodes.filter(e.i).map(t=>{let r=e.o(t);return n.find(e=>e.id===r||e.key===r)}).filter(e=>e!==void 0),a=t.nodes.filter(e.r).map(t=>r.find(n=>n.id===e.a(t))).filter(e=>e!==void 0);return{steps:i,nodes:t.nodes,edges:t.edges,conditions:a}}),d=n.actions??[];return{id:n.id,key:n.key,name:n.name,configStore:a,treeStore:u,componentStore:c,actions:d,merge:i.merge}});function d(e){return(0,c.invoke)(u,e)}var f=(0,c.createFactory)(({client:e})=>{let t=l.store({}),n=l.store({}),r=(0,s.createApi)(t,{register(e,t){return{...e,[t.id]:t}}}),i=(0,s.createApi)(n,{register(e,{key:t,id:n}){return{...e,[t]:n}}});function a(n){let a=t.getState()[n.id];if(a){a.merge({experience:n,strategy:`override`}),i.register({key:n.key,id:n.id});return}let o=d({client:e,experience:n});r.register(o),i.register({key:n.key,id:n.id})}let o=t.map(e=>Object.values(e));function c(e){return(0,s.combine)(t,n,(t,n)=>t[n[e]??``]??t[e],{skipVoid:!1})}let u=(0,s.attach)({source:{experiences:t,keys:n},effect:async({experiences:t,keys:n},{key:r,options:i})=>{let a=t[n[r]??``]??t[r];if(!a){`${r}`;return}if(i?.bypassCondition){m(e,a,i);return}await g(e,a)&&m(e,a,i)}});return{register:a,get:c,launch:u,open:(0,s.attach)({source:{instances:e.experienceInstances.listStore,keys:n},effect:({instances:e,keys:t},{key:n,options:r})=>{let i=t[n]??n,a=e.filter(e=>e.experienceId===i);if(a.length>0)for(let e of a)e.open();else u({key:i,options:{...r,initialiseOpen:!0}})}}),listStore:o}});function p(e){return(0,c.invoke)(f,e)}var m=(t,n,r)=>{let{targetSelectors:i}=n.configStore.getState(),a=e.l(i,n.id);a.forEach(({elements:t})=>t.forEach(t=>e.d(t,n.id))),e.s(a,n.id).forEach(e=>{r?t.experienceInstances.spawn(n,e,r):t.experienceInstances.spawn(n,e)})},h=async e=>{await Promise.all(e.experiences.listStore.getState().map(async t=>{await g(e,t)&&m(e,t)}))},g=async(t,n)=>{if(!t.preconditionPassed||!t.session?.isUser)return!1;let{decisionLogic:r,targetSelectors:i}=n.configStore.getState();return e.l(i,n.id).length<1||i.length===0?!1:r===void 0?!0:e.p(r)?await e.f(t,r)===!0:!0},_=(e,t,n)=>{let r=t.name,i=t.setup(e);if(i){let e=n[r]??{};n[r]=Object.freeze({...e,...i})}},ee=(0,s.createDomain)(`component`),te=(0,c.createFactory)(({client:e,component:t,name:n})=>({name:n,component:t,frameworkStore:e.frameworks.getByName(t.frameworkName)}));function ne(e){return(0,c.invoke)(te,e)}var re=(0,c.createFactory)(({client:e})=>{let t=ee.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:t}}});function r(r,i){t.getState()[r]&&`${r}`;let a=ne({client:e,name:r,component:i});n.register(a)}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:r,getByName:a,listStore:i}});function ie(e){return(0,c.invoke)(re,e)}var v=(e,t,n)=>{n.register(e,t)},y=(0,s.createDomain)(`framework`),b=(0,c.createFactory)(({client:e})=>{let t=y.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:t.framework}}});function r(e,r){t.getState()[e]&&`${e}`,n.register({name:e,framework:r})}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:r,getByName:a,listStore:i}});function x(e){return(0,c.invoke)(b,e)}var S=(e,t)=>{t.register(e.name,e)},ae=6e3,oe=i.t(`last_ping`,`global`),C=async e=>{try{let t=Date.now(),n=i.n.get(oe),r=0;if(n.isSet()&&(r=n.json()??0),r&&t-r<ae)return!0;let o={projectId:e.projectId,path:window.location.pathname},s={},c=document.getElementById(`picked_script`)?.dataset.verceltoken;c&&(s[`x-vercel-protection-bypass`]=c);let l=(await a.n(e.apiUrl,`ping`,o,s)).ok;return l&&n.set(t),l}catch{return!1}};function w(e){let t=typeof window<`u`,n={client:e,responses:e.responses.listStore.getState(),fields:e.fields.listStore.getState(),location:t?window.location:void 0,document:t?window.document:void 0,sessionStorage:t?window.sessionStorage:void 0,localStorage:t?window.localStorage:void 0};return Object.freeze(n)}var T=(0,s.createDomain)(`predicate`),E=(0,c.createFactory)(({client:e})=>{let t=T.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:{name:t.name,predicate:t.predicate}}}});function r(e,r){t.getState()[e]&&`${e}`,n.register(Object.freeze({name:e,predicate:r}))}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e]?.predicate,{skipVoid:!1})}function o(t){let n=(0,s.createStore)(()=>void 0,{skipVoid:!1}),r=(0,s.createEffect)(async()=>{let n=a(t).getState();if(!n)return;let r=w(e);return(...e)=>n({...r,args:e})});return(0,s.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:r}),(0,s.sample)({clock:r.doneData,filter:e=>e!==void 0,target:n}),r(),n}return{register:r,getByName:a,listStore:i,getEvokablePredicate:o}});function D(e){return(0,c.invoke)(E,e)}var O=(e,t,n)=>{n.register(e,t)},k=(0,s.createDomain)(`feature`),A=(0,c.createFactory)(({client:e})=>{let t=k.store({}),n=k.store([]),r=(0,s.createApi)(t,{register(e,t){return{...e,[t.id]:t.feature}}});function a(e,n){t.getState()[e]&&`${e}`;let i={id:e,feature:{...n,id:e}};r.register(Object.freeze({id:e,feature:i}))}let o=(0,s.createEffect)(async({id:e,key:t,storage:n=`local`})=>{let r=i.t(`feature:${e}:${t}`,`global`),a=(n===`session`?i.r:i.n).get(r).boolean();return a===null?null:{id:e,key:t,bucket:a,storage:n}}),c=(0,s.createEffect)(e=>{if(!e)return null;let t=i.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?i.r:i.n).set(t,e.bucket)}),l=new Map,u=(0,s.attach)({source:{allFeaturesStore:t,resolvedFeaturesStore:n},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let a=t.find(e=>e.id===n&&e.key===i);if(a)return a;let o=e[n];if(!o)throw Error(`Feature with id '${n}' not found`);let s=l.get(`${n}:${i}`);if(s!==void 0){let e=await s;return{id:o.id,bucket:e,key:i,storage:o.feature.storage}}let c=r();l.set(`${n}:${i}`,c);let u=await c;return{id:o.id,bucket:u,key:i,storage:o.feature.storage}}});(0,s.sample)({clock:r.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage}},target:o}),(0,s.sample)({source:t,clock:u.doneData,fn:(e,t)=>{let{id:n,bucket:r,storage:i}=t,a=e[n]?.feature.key;return a?{key:a,id:n,bucket:r,storage:i}:null},target:c});let d=(0,s.combine)({allFeaturesStore:t,resolvedFeaturesStore:n}).map(({allFeaturesStore:e,resolvedFeaturesStore:t})=>Object.values(e).map(e=>{let n=t.find(t=>t.id===e.id&&t.key===e.feature.key);return n?{id:e.id,name:e.feature.name,key:e.feature.key,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,getBucket:async()=>await u(e.feature),isResolved:!1}}));(0,s.sample)({clock:u.doneData,source:{resolvedFeatures:n},filter:({resolvedFeatures:e},{id:t,key:n})=>!e.some(e=>e.id===t&&e.key===n),fn:(e,t)=>t,target:e.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,s.sample)({clock:[o.doneData,u.doneData],source:n,fn:(e,t)=>!t||e.some(e=>e.id===t.id&&e.key===t.key)?e:[...e,t],target:n});function f(e){return d.map(t=>t.find(t=>t.id===e))}function p(e){return t.map(t=>t[e],{skipVoid:!1})}function m(e){let t=(0,s.createStore)(async()=>void 0,{skipVoid:!1}),r=(0,s.createEffect)(async()=>{let t=f(e).getState();if(t)return async()=>(await t.getBucket()).bucket});return(0,s.sample)({source:n,filter:t=>t.some(t=>t.id===e),target:r}),(0,s.sample)({clock:r.doneData,filter:e=>e!==void 0,target:t}),r(),t}return{register:a,getById:f,getByName:p,listStore:d,getEvokableFeature:m}});function j(e){return(0,c.invoke)(A,e)}var M=(e,t,n)=>{n.register(e,t)},N=(0,s.createDomain)(`history`);function P(e,t){return{id:o.t(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}var F=(0,c.createFactory)(()=>{let t=N.store({entries:[]}),n=N.event(),r=N.event(),i=N.event(),a=N.event();t.on(n,(e,t)=>({entries:[...e.entries,P(t.experienceId,t.node)]})),t.on(r,(e,t)=>({entries:[...e.entries.slice(0,-1),P(t.experienceId,t.node)]})),t.on(a,(e,t)=>t);function o(t,n){let r={lastStepIndex:-1,secondLastStepIndex:-1};for(let i=t.length-1;i>=0;i--){let a=t[i],o=a?.node;if(!(!o||!e.i(o))&&!(n&&a?.experienceId!==n))if(r.lastStepIndex===-1)r.lastStepIndex=i;else{r.secondLastStepIndex=i;break}}return r}return t.on(i,(e,t)=>{let{secondLastStepIndex:n}=o(e.entries,t.experienceId),r=n===-1?e.entries:e.entries.slice(0,n+1);return{...e,entries:r}}),{push:n,replace:r,back:i,restore:a,entriesStore:t.map(e=>e.entries)}});function I(){return(0,c.invoke)(F)}var L=0,R=e=>{let t=(0,s.createStore)([]);return(0,s.sample)({clock:e,source:t,fn:(e,t)=>[...e,{id:L++,at:new Date,payload:t}],target:t}),t},z=(0,s.createDomain)(`field`),B=(0,c.createFactory)(()=>{let e=z.store({}),t=(0,s.createApi)(e,{register(e,t){return{...e,[t.field.id]:t.field}}});function n(e){t.register({field:e})}function r(n,r){let i=e.getState()[n]??null;if(!i)return;let a=Object.assign({},i,{...r});t.register({field:{...a}})}let i=e.map(e=>Object.values(e));function a(t){return e.map(e=>e[t]??null)}function o(t){return e.map(e=>Object.values(e).find(e=>e.key===t)??null)}function c(t){return e.map(e=>Object.values(e).find(e=>e.name===t)??null)}return{register:n,update:r,getById:a,getByKey:o,listStore:i,getByName:c}});function V(){return(0,c.invoke)(B)}var H=(e,t)=>{t.register(e)},U=(0,s.createDomain)(`step`),W=(0,c.createFactory)(()=>{let e=U.store({}),t=(0,s.createApi)(e,{register(e,t){return{...e,[t.step.id]:t.step}}});function n(e){t.register({step:e})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t]??null)}return{register:n,getById:i,listStore:r}});function G(){return(0,c.invoke)(W)}function K(e,t){t.register(e)}var q=(0,s.createDomain)(`action`),se=(0,c.createFactory)(()=>{let e=q.store({}),t=(0,s.createApi)(e,{register(e,t){return{...e,[t.name]:{name:t.name,action:t.action}}}});function n(e,n){t.register({name:e,action:n})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t],{skipVoid:!1})}function a(t){return e.map(e=>{let n=e[t];return n?n.action:void 0},{skipVoid:!1})}return{register:n,getByName:i,listStore:r,getEvokableAction:a}});function ce(){return(0,c.invoke)(se)}var J=(e,t,n)=>{n.register(e,t)};function Y(e){return e==null||e===``||Array.isArray(e)&&!e.length}function le(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e===null}function X(e){try{return JSON.stringify(e),!0}catch{return!1}}function ue(e,t){return t.find(t=>t.id===e)??t.find(t=>t.key===e)??null}function de(e,t){return e.multiple&&(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)?[t]:t}function fe(e,t,n){if(e.type!==`object`||Y(n))return null;if(e.multiple){if(!Array.isArray(n))return{fieldId:t,userMessage:`This field expects multiple values`,systemMessage:`Field expects an array of objects.`,value:n};for(let e of n){if(typeof e!=`object`||!e)return{fieldId:t,userMessage:`This field expects object values`,systemMessage:`Field expects an array of objects, but received non-object value.`,value:n};if(!X(e))return{fieldId:t,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:n}}return null}return Array.isArray(n)?{fieldId:t,userMessage:`This field expects a single value`,systemMessage:`Field expects a single object, not an array.`,value:n}:typeof n!=`object`||!n?{fieldId:t,userMessage:`This field expects an object value`,systemMessage:`Field expects an object value.`,value:n}:X(n)?null:{fieldId:t,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:n}}function pe(e,t,n){if(!Array.isArray(e.options)||e.options.length===0)return null;let r=Array.isArray(n)?n:[n];if(e.type===`object`){let i=e.options.map(e=>JSON.stringify(e.value));return r.every(e=>i.includes(JSON.stringify(e)))?null:{fieldId:t,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option from the defined choices.`,value:n}}let i=e.options.map(e=>e.value);return r.every(e=>!le(e)||e===null?!1:i.includes(e))?null:{fieldId:t,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option. Valid options are: ${i.join(`, `)}`,value:n}}var me=(0,s.createDomain)(`response`),he=(0,c.createFactory)(({client:n})=>{let r=me.store({}),i=(0,s.createEvent)(),a=(0,s.createEvent)(),o=(0,s.createApi)(r,{register(e,t){return{...e,[t.fieldId]:t.response}},registerBatch(e,t){return{...e,...t}},clear(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>e!==t))},clearAll(){return{}}});function c(e,t){if(typeof e==`string`){if(t===void 0)throw Error(`Response is required when registering a single field`);o.register({fieldId:e,response:t})}else o.registerBatch(e)}async function l(r,i,a){if(r.validation&&!t.t(r.validation)&&!Y(a)){let t=await e.f(n,r.validation,{$input:a});if(typeof t==`string`)return{fieldId:i,userMessage:t,systemMessage:`Field validation resulted in an error: ${t}.`,value:a};if(t===!1)return{fieldId:i,userMessage:`This field is invalid`,systemMessage:`Field validation resulted in an unspecified error.`,value:a}}return r.required&&Y(a)?{fieldId:i,userMessage:`This field is required`,systemMessage:`Field is required.`,value:a}:!r.multiple&&Array.isArray(a)&&a.length>1?{fieldId:i,userMessage:`This field expects a single response`,systemMessage:`Field expects a single response.`,value:a}:null}async function u(e){let t=[],r={},i=n.fields.listStore.getState();return await Promise.allSettled(Object.entries(e).map(async([e,n])=>{let a=ue(e,i);if(!a){t.push({fieldId:e,userMessage:`Field '${e}' not found`,systemMessage:`No field with ID or key '${e}' exists. Available field IDs are: ${i.map(e=>e.id).join(`,`)}.`,value:n});return}let o=a.id,s=de(a,n),c=await l(a,o,s);if(c){t.push(c);return}let u=fe(a,o,s);if(u){t.push(u);return}let d=pe(a,o,s);d&&t.push(d),r[o]=n})),{responsesToCommit:r,validationErrors:t}}async function d(e){let{responsesToCommit:t,validationErrors:n}=await u(e);return n.length?{errors:n}:(o.registerBatch(t),{errors:[]})}let f=r.map(e=>e),p=(0,s.combine)({responses:r,fields:n.fields.listStore},({responses:e,fields:t})=>{let n={};for(let[r,i]of Object.entries(e)){let e=t.find(e=>e.id===r);n[e?.key??r]=i}return n}),m=(0,s.combine)({responses:r,fields:n.fields.listStore},({responses:e,fields:t})=>Object.entries(e).map(([e,n])=>({fieldId:e,fieldKey:t.find(t=>t.id===e)?.key??e,value:n})));function h(e){return(0,s.combine)({f:n.fields.listStore.map(t=>t.find(t=>t.id===e)??null),r:r.map(t=>t[e]??null)},({f:e,r:t})=>t===null?e?.defaultValue?e.defaultValue:null:t)}function g(e){return(0,s.combine)({f:n.fields.getByKey(e),s:r},({f:e,s:t})=>(e?t[e.id]??null:null)||(e?.defaultValue?e.defaultValue:null))}function _(e){return(0,s.combine)({f:n.fields.getByName(e),s:r},({f:e,s:t})=>e&&t[e.id]||(e?.defaultValue?e.defaultValue:null))}return(0,s.sample)({clock:i,target:o.clearAll}),(0,s.sample)({clock:a,target:o.clear}),{register:c,clearAll:i,clear:a,commit:d,getResponsesToCommit:u,listStore:m,getAllStore:f,getAllByKeyStore:p,getByFieldId:h,getByFieldKey:g,getByFieldName:_}});function ge(e){return(0,c.invoke)(he,e)}var _e=(0,s.createDomain)(`condition`),ve=(0,c.createFactory)(()=>{let e=_e.store({}),t=(0,s.createApi)(e,{register(e,t){return{...e,[t.condition.id]:t.condition}}});function n(e){t.register({condition:e})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t]??null)}function a(t){return e.map(e=>Object.values(e).find(e=>e.key===t)??null)}return{register:n,getById:i,getByKey:a,listStore:r}});function ye(){return(0,c.invoke)(ve)}function be(){if(r.r()){let e=[document.currentScript,document.getElementById(`picked_script`),document.getElementById(`picked`),document.getElementById(`cvly`),document.getElementById(`cvly-x`)];for(let t of e)if(t?.dataset.api)return t.dataset.api}return`https://api.picked.app`}function xe(){if(!r.d())return{};let e=new URLSearchParams(window.location.search),t={},n=new Set;for(let[t]of e.entries())t.startsWith(`picked-`)&&n.add(t);for(let r of n){let n=r.replace(`picked-`,``);t[n]=e.getAll(r)}let a=i.t(`s`);if(n.size>0)i.r.set(a,t);else{let e=i.r.get(a);if(e)return e.json()||{}}return t}function Se(){return r.n()?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).substring(2,15)}-${Math.random().toString(36).substring(2,15)}-${Math.random().toString(36).substring(2,15)}`}var Ce=i.t(`session`,`global`),we=()=>{let e=i.n.get(Ce),t;e.isSet()&&(t=e.json());let n=t=>e.set({id:t.id,isUser:t.isUser,identifiers:t.identifiers}),r={id:t?.id??Se(),isUser:t?.isUser??void 0,identifiers:t?.identifiers??void 0,setIsUser(e){this.isUser=e,n(this)},setIdentifier(e,t){this.identifiers={...this.identifiers,[e]:t},n(this)},removeIdentifier(e){this.identifiers&&(this.identifiers=Object.fromEntries(Object.entries(this.identifiers).filter(([t])=>t!==e)),this.identifiers=Object.keys(this.identifiers).length?this.identifiers:void 0,n(this))}};return n(r),r},Te=()=>r.o()?we():null;function Z(){if(r.d())return globalThis.window.pickedConfig}function Ee(){if(!r.d())return;let e=Z(),t=e?.organizationId,n=e?.projectId;return t&&n?{organizationId:t,projectId:n}:void 0}function De(){if(!r.r())return;let e=document.getElementById(`picked_script`)||document.querySelector(`script#picked`)||document.getElementById(`cvly`);if(!e)return;let t=e.dataset.organizationid||e.getAttribute(`organization-id`),n=e.dataset.projectid||e.getAttribute(`project-id`);return t&&n?{organizationId:t,projectId:n}:void 0}function Oe(e){let{organizationId:t,projectId:n}=e;if(t&&n)return{organizationId:t,projectId:n};let r=Ee();if(r)return r;let i=De();if(i)return i;throw Error(`organizationId and projectId are required. You can provide them via one of:
2
2
  (1) createClient({ organizationId, projectId }) options;
3
3
  (2) window.pickedConfig = { organizationId, projectId };
4
- (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes data-organizationid/data-projectid (or organization-id/project-id) attributes.`)}function Z(e){return e==null||e===``||Number.isNaN(e)}var xe={default:(e,t)=>Z(e)?String(t??``):String(e),append:(e,t)=>t&&!Z(e)?`${e} ${t}`:e,prepend:(e,t)=>t&&!Z(e)?`${t} ${e}`:e,upper:e=>typeof e==`string`?e.toUpperCase():e,lower:e=>typeof e==`string`?e.toLowerCase():e,capitalize:e=>typeof e==`string`?e.charAt(0).toUpperCase()+e.slice(1):e,list:e=>{if(!e||typeof e!=`object`)return e;let t=new Intl.ListFormat(`en`,{style:`long`,type:`conjunction`});if(Array.isArray(e))return t.format(e.map(String));if(e instanceof Map){let n=Array.from(e.entries()).map(([e,t])=>`${e}: ${t}`);return t.format(n)}return e instanceof Set?t.format(Array.from(e).map(String)):e}};function Q(e){return typeof e==`object`&&!!e}function Se(e,t){let n=t;for(let t of e.split(`.`))if(Q(n)&&t in n)n=n[t];else return;return typeof n==`function`?n():n}function Ce(e,t){let n=e.split(`|`).map(e=>e.trim()),r=Se(n.shift()??``,t);for(let e of n){let[t,...n]=e.split(`:`),i=t?.trim()??``,a=n.join(`:`).trim().replaceAll(/(?:^['"]|['"]$)/g,``),o=xe[i];o&&(r=o(r,a))}return Z(r)?``:typeof r==`object`?JSON.stringify(r):String(r)}function we(e,t){let n=``,r=0;for(;r<e.length;)if(e[r]===`{`&&e[r+1]===`{`){r+=2;let i=``;for(;r<e.length;){if(e[r]===`}`&&e[r+1]===`}`){r+=2;break}i+=e[r++]}n+=Ce(i.trim(),t)}else n+=e[r++];return n}var $=class{static logger=n.t;options;isReady=!1;plugins={};pluginStartHooks=[];eventBus=(0,c.createEvent)();events;organizationId;projectId;apiUrl;dashboardUrl;documentationSiteUrl;session;precondition;condition;preconditionPassed;searchParams=pe();history=z();components=te({client:this});experienceInstances=i.n({client:this});experiences=m({client:this});frameworks=ie({client:this});predicates=A({client:this});features=P({client:this});responses=de({client:this});fields=W();actions=oe();constructor(e){this.events=V(this.eventBus);let{organizationId:t,projectId:n}=be(e);this.organizationId=t,this.projectId=n,this.options=Object.freeze(e),this.apiUrl=e.apiUrl||fe(),this.dashboardUrl=e.dashboardUrl??`https://dashboard.picked.app`,this.documentationSiteUrl=e.documentationSiteUrl??`https://docs.picked.app`,this.session=_e(),this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.setupActions(),this.setupComponents(),this.precondition=e.precondition,this.condition=e.condition,this.eventBus({type:`load`,version:o.r()})}start=()=>{E(this),(async()=>{if(!r.r())return;await this.runPluginStartHooks();let e=await this.evaluateGate(this.precondition);this.preconditionPassed=e;let t;e&&(t=await this.evaluateGate(this.condition));let n=e&&t===!0;if(typeof t==`boolean`&&this.session){let e=t;this.session.setIsUser(e),this.eventBus({type:`user_decide`,value:e})}if(this.eventBus({type:`initialize`}),n&&_(this),await i.a(),n&&_(this),this.eventBus({type:`ready`}),this.isReady=!0,this.session){let{id:e,isUser:t,identifiers:n}=this.session;this.eventBus({type:`session`,id:e,isUser:t,identifiers:n})}})()};registerFramework=e=>{ae(e,this.frameworks)};registerComponent=(e,t)=>{C(e,t,this.components)};registerPlugin=e=>{ee(this,e,this.plugins);let t=this.plugins[e.name];t?.onStart&&this.pluginStartHooks.push(t.onStart)};registerFeature=(e,t)=>{F(e,t,this.features)};registerPredicate=(e,t)=>{j(e,t,this.predicates)};registerField=e=>{G(e,this.fields)};registerAction=(e,t)=>{se(e,t,this.actions)};registerExperience=e=>{e.component&&C(`experience:${e.id}`,e.component,this.components),h(e,this.experiences)};getStateSnapshot=()=>D(this);launchExperienceById=async(e,t)=>{this.experiences.launch({id:e,options:t})};openExperienceById=async e=>{this.experiences.open({id:e})};async runPluginStartHooks(){for(let e of this.pluginStartHooks)await e()}async evaluateGate(t){return t===void 0?!0:typeof t==`boolean`?t:await e.t(this,t)===!0}setupPlugins(){this.options.plugins?.forEach(e=>{if(Array.isArray(e)){e.forEach(e=>{this.registerPlugin(e)});return}let t=typeof e==`function`?e():e;if(Array.isArray(t)){t.forEach(e=>this.registerPlugin(e));return}this.registerPlugin(t)})}setupFeatures(){let e=this.options.features;e&&Object.entries(e).forEach(([e,t])=>{let n=typeof t==`function`?t():t;this.registerFeature(e,n)}),this.searchParams.feature&&this.searchParams.feature.forEach(e=>{try{let[t,n]=e.split(`:`);if(!t||!n)return;let r=n;r===`true`&&(r=!0),r===`false`&&(r=!1),this.registerFeature(t,{key:`${r}`,name:t,decide:()=>r,storage:`session`})}catch{}})}setupPredicates(){let e=this.options.predicates;e&&Object.entries(e).forEach(([e,t])=>{if(typeof t!=`function`){`${e}`;return}this.registerPredicate(e,t)})}setupActions(){let e=this.options.actions;e&&Object.entries(e).forEach(([e,t])=>{if(typeof t!=`function`){`${e}`;return}this.registerAction(e,t)})}setupComponents(){let e=this.options.components;e&&Object.entries(e).forEach(([e,t])=>{this.registerComponent(e,t)})}getPluginConfig=e=>this.plugins[e]??{};renderString=(e,t)=>{let n=this.responses.listStore.getState().reduce((e,t)=>(e[t.fieldId]=t.value,e),{});return we(e,{...t,responses:n})}};function Te(e){return{$$type:`lazy-component`,load:e}}function Ee(e){return typeof e==`object`&&!!e&&`$$type`in e&&e.$$type===`lazy-component`}var De=e=>{let t=new $(e);return r.p(t),t};exports.Picked=$,exports.createClient=De,exports.createStorageKey=a.t,exports.evaluateRuleLogic=e.t,exports.getPickedConfig=X,exports.isLazyLoader=Ee,exports.isPickedRoot=i.s,exports.lazyComponent=Te,exports.localStore=a.n,exports.sessionStore=a.r,exports.subscribe=a.i,exports.supportsCookies=r.t,exports.supportsCryptoRandomUUID=r.n,exports.supportsDocument=r.r,exports.supportsHistory=r.i,exports.supportsIntersectionObserver=r.a,exports.supportsLocalStorage=r.o,exports.supportsLocation=r.s,exports.supportsSessionStorage=r.c,exports.supportsShadowRoot=r.l,exports.supportsWebComponents=r.u,exports.supportsWindow=r.d;
4
+ (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes data-organizationid/data-projectid (or organization-id/project-id) attributes.`)}function Q(e){return e==null||e===``||Number.isNaN(e)}var ke={default:(e,t)=>Q(e)?String(t??``):String(e),append:(e,t)=>t&&!Q(e)?`${e} ${t}`:e,prepend:(e,t)=>t&&!Q(e)?`${t} ${e}`:e,upper:e=>typeof e==`string`?e.toUpperCase():e,lower:e=>typeof e==`string`?e.toLowerCase():e,capitalize:e=>typeof e==`string`?e.charAt(0).toUpperCase()+e.slice(1):e,list:e=>{if(!e||typeof e!=`object`)return e;let t=new Intl.ListFormat(`en`,{style:`long`,type:`conjunction`});if(Array.isArray(e))return t.format(e.map(String));if(e instanceof Map){let n=Array.from(e.entries()).map(([e,t])=>`${e}: ${t}`);return t.format(n)}return e instanceof Set?t.format(Array.from(e).map(String)):e}};function Ae(e){return typeof e==`object`&&!!e}function je(e,t){let n=t;for(let t of e.split(`.`))if(Ae(n)&&t in n)n=n[t];else return;return typeof n==`function`?n():n}function Me(e,t){let n=e.split(`|`).map(e=>e.trim()),r=je(n.shift()??``,t);for(let e of n){let[t,...n]=e.split(`:`),i=t?.trim()??``,a=n.join(`:`).trim().replaceAll(/(?:^['"]|['"]$)/g,``),o=ke[i];o&&(r=o(r,a))}return Q(r)?``:typeof r==`object`?JSON.stringify(r):String(r)}function Ne(e,t){let n=``,r=0;for(;r<e.length;)if(e[r]===`{`&&e[r+1]===`{`){r+=2;let i=``;for(;r<e.length;){if(e[r]===`}`&&e[r+1]===`}`){r+=2;break}i+=e[r++]}n+=Me(i.trim(),t)}else n+=e[r++];return n}var $=class{static logger=n.t;options;isReady=!1;project;plugins={};pluginStartHooks=[];eventBus=(0,s.createEvent)();events;organizationId;projectId;apiUrl;dashboardUrl;documentationSiteUrl;session;precondition;condition;preconditionPassed;searchParams=xe();history=I();components=ie({client:this});experienceInstances=e.n({client:this});experiences=p({client:this});frameworks=x({client:this});predicates=D({client:this});features=j({client:this});conditions=ye();fields=V();responses=ge({client:this});steps=G();actions=ce();constructor(e){this.events=R(this.eventBus);let{organizationId:t,projectId:n}=Oe(e);this.organizationId=t,this.projectId=n,this.options=Object.freeze(e),this.apiUrl=e.apiUrl||be(),this.dashboardUrl=e.dashboardUrl??`https://dashboard.picked.app`,this.documentationSiteUrl=e.documentationSiteUrl??`https://docs.picked.app`,this.session=Te(),this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.setupActions(),this.setupComponents(),this.precondition=e.precondition,this.condition=e.condition,this.eventBus({type:`load`,version:a.r()})}start=()=>{C(this),(async()=>{if(!r.r())return;await this.runPluginStartHooks();let t=await this.evaluateGate(this.precondition);this.preconditionPassed=t;let n;t&&(n=await this.evaluateGate(this.condition));let i=t&&n===!0;if(typeof n==`boolean`&&this.session){let e=n;this.session.setIsUser(e),this.eventBus({type:`user_decide`,value:e})}if(this.eventBus({type:`initialize`}),i&&h(this),await e.c(),i&&h(this),this.eventBus({type:`ready`}),this.isReady=!0,this.session){let{id:e,isUser:t,identifiers:n}=this.session;this.eventBus({type:`session`,id:e,isUser:t,identifiers:n})}})()};registerFramework=e=>{S(e,this.frameworks)};registerComponent=(e,t)=>{v(e,t,this.components)};registerPlugin=e=>{_(this,e,this.plugins);let t=this.plugins[e.name];t?.onStart&&this.pluginStartHooks.push(t.onStart)};registerFeature=(e,t)=>{M(e,t,this.features)};registerPredicate=(e,t)=>{O(e,t,this.predicates)};registerCondition=e=>{this.conditions.register(e)};registerField=e=>{H(e,this.fields)};registerStep=e=>{K(e,this.steps)};registerAction=(e,t)=>{J(e,t,this.actions)};registerExperience=e=>{e.component&&v(`experience:${e.id}`,e.component,this.components),this.experiences.register(e)};getStateSnapshot=()=>w(this);launchExperienceById=async(e,t)=>{this.experiences.launch({key:e,options:t})};openExperienceById=async e=>{this.experiences.open({key:e})};async runPluginStartHooks(){for(let e of this.pluginStartHooks)await e()}async evaluateGate(t){return t===void 0?!0:typeof t==`boolean`?t:await e.f(this,t)===!0}setupPlugins(){this.options.plugins?.forEach(e=>{if(Array.isArray(e)){e.forEach(e=>{this.registerPlugin(e)});return}let t=typeof e==`function`?e():e;if(Array.isArray(t)){t.forEach(e=>this.registerPlugin(e));return}this.registerPlugin(t)})}setupFeatures(){let e=this.options.features;e&&Object.entries(e).forEach(([e,t])=>{let n=typeof t==`function`?t():t;this.registerFeature(e,n)}),this.searchParams.feature&&this.searchParams.feature.forEach(e=>{try{let[t,n]=e.split(`:`);if(!t||!n)return;let r=n;r===`true`&&(r=!0),r===`false`&&(r=!1),this.registerFeature(t,{key:`${r}`,name:t,decide:()=>r,storage:`session`})}catch{}})}setupPredicates(){let e=this.options.predicates;e&&Object.entries(e).forEach(([e,t])=>{if(typeof t!=`function`){`${e}`;return}this.registerPredicate(e,t)})}setupActions(){let e=this.options.actions;e&&Object.entries(e).forEach(([e,t])=>{if(typeof t!=`function`){`${e}`;return}this.registerAction(e,t)})}setupComponents(){let e=this.options.components;e&&Object.entries(e).forEach(([e,t])=>{this.registerComponent(e,t)})}getPluginConfig=e=>this.plugins[e]??{};renderString=(e,t)=>{let n=this.responses.listStore.getState().reduce((e,t)=>(e[t.fieldId]=t.value,e),{});return Ne(e,{...t,responses:n})}};function Pe(e){return{$$type:`lazy-component`,load:e}}function Fe(e){return typeof e==`object`&&!!e&&`$$type`in e&&e.$$type===`lazy-component`}var Ie=e=>{let t=new $(e);return r.p(t),t};exports.Picked=$,exports.createClient=Ie,exports.createStorageKey=i.t,exports.evaluateRuleLogic=e.f,exports.getPickedConfig=Z,exports.isLazyLoader=Fe,exports.isPickedRoot=e.u,exports.lazyComponent=Pe,exports.localStore=i.n,exports.sessionStore=i.r,exports.subscribe=i.i,exports.supportsCookies=r.t,exports.supportsCryptoRandomUUID=r.n,exports.supportsDocument=r.r,exports.supportsHistory=r.i,exports.supportsIntersectionObserver=r.a,exports.supportsLocalStorage=r.o,exports.supportsLocation=r.s,exports.supportsSessionStorage=r.c,exports.supportsShadowRoot=r.l,exports.supportsWebComponents=r.u,exports.supportsWindow=r.d;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../id-Bv44ilEo.cjs`);var t={serialize(e){return JSON.stringify(e)},deserialize(e){return JSON.parse(e)}},n=e=>({name:`create-experience`,setup:n=>{e.experiences.forEach(e=>{let r=e.serialize(),i=t.deserialize(r);i.component=e.component,n.registerExperience(i),i.fields.forEach(e=>{n.registerField(e)})})}}),r=(n,r)=>({id:e.t(`node`),experience:r,type:`action`,action:n.action,addNext(e){if(!e.node)throw Error(`Cannot connect to node`);let t=s({sourceNode:this,destinationNode:e.node,sourceNodeHandle:null},r);r.edges.push(t)},onSuccess(e){if(!e.node)throw Error(`Cannot connect to node`);let t=s({sourceNode:this,destinationNode:e.node,sourceNodeHandle:`true`},r);r.edges.push(t)},onFail(e){if(!e.node)throw Error(`Cannot connect to node`);let t=s({sourceNode:this,destinationNode:e.node,sourceNodeHandle:`false`},r);r.edges.push(t)},serialize(){return t.serialize({id:this.id,type:this.type,action:this.action})}}),i=t=>({id:t.id??e.t(`step`),label:t.label,fields:t.fields??[],addField(e){let t=`serialize`in e?e:l(e);return this.fields.includes(t)||this.fields.push(t),t}}),a=(n,r)=>{let i={id:n.id??e.t(`step`),label:n.label,experience:r,fields:n.fields??[],node:null,nextStep(e){return this.experience.addStep(e,this)},nextConditional(e){return this.experience.addConditional(e,this)},addNextExperience(e){return this.experience.addExperience(e,this)},addField(e){return this.experience.addField(e,this)},serialize(){return t.serialize({id:this.id,label:this.label,fieldIds:this.fields.map(e=>e.id)})}};return o({step:i,type:`step`},r),i},o=(n,r)=>{let i={id:e.t(`node`),experience:r};if(n.type===`step`){let e={...i,type:`step`,connectedStep:n.step,serialize(){return t.serialize({id:this.id,type:this.type,stepId:this.connectedStep.id,label:this.connectedStep.label})}};return e.connectedStep.node=e,e}if(n.type===`conditional`){let e={...i,type:`conditional`,connectedConditional:n.conditional,serialize(){return t.serialize({id:this.id,type:this.type,conditionalId:this.connectedConditional.id})}};return e.connectedConditional.node=e,e}return n.type===`experience`?{...i,type:`experience`,connectedExperience:n.experience,serialize(){return t.serialize({id:this.id,type:this.type,experienceId:this.connectedExperience.id})}}:{...i,type:`origin`,serialize(){return t.serialize({id:this.id,type:this.type})}}},s=(n,r)=>({id:e.t(`edge`),sourceNode:n.sourceNode,sourceNodeHandle:n.sourceNodeHandle,destinationNode:n.destinationNode,experience:r,serialize(){return t.serialize({id:this.id,sourceNodeHandle:this.sourceNodeHandle??void 0,sourceNodeId:this.sourceNode.id,destinationNodeId:this.destinationNode.id})}}),c=(n,r)=>{let i={id:e.t(`conditional`),label:n.label,condition:n.condition,node:null,experience:r,addTrue(e){if(!this.node||!e.node)throw Error(`todo no node`);let t=s({sourceNode:this.node,destinationNode:e.node,sourceNodeHandle:`true`},this.experience);this.experience.edges.push(t)},addFalse(e){if(!this.node||!e.node)throw Error(`todo no node`);let t=s({sourceNode:this.node,destinationNode:e.node,sourceNodeHandle:`false`},this.experience);this.experience.edges.push(t)},serialize(){return t.serialize({id:this.id,label:this.label,condition:this.condition})}};return o({conditional:i,type:`conditional`},r),i},l=n=>({id:n.id,name:n.name,type:n.type,label:n.label,placeholder:n.placeholder,description:n.description,helpText:n.helpText,defaultValue:n.defaultValue??null,multiple:n.multiple,validation:n.validation??{},condition:n.condition,required:n.required,options:n.options?.map(t=>({id:`id`in t?t.id:e.t(`option`),...t}))??null,policies:n.policies,serialize(){let e={id:this.id,name:this.name,label:this.label,placeholder:this.placeholder,required:this.required,description:this.description,helpText:this.helpText,validation:this.validation,condition:this.condition,policies:this.policies},n=typeof this.defaultValue==`string`?this.defaultValue:void 0,r=typeof this.defaultValue==`number`?this.defaultValue:void 0,i=typeof this.defaultValue==`boolean`?this.defaultValue:void 0;switch(this.type){case`text`:if(this.multiple){let n;if(Array.isArray(this.defaultValue)){n=[];for(let e of this.defaultValue)typeof e==`string`&&n.push(e);n.length===0&&(n=void 0)}return t.serialize({...e,type:`text`,multiple:!0,defaultValue:n,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:`${e.value}`,condition:e.condition})):null})}return t.serialize({...e,type:`text`,multiple:!1,defaultValue:n,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:`${e.value}`,condition:e.condition})):null});case`number`:if(this.multiple){let n;if(Array.isArray(this.defaultValue)){n=[];for(let e of this.defaultValue)typeof e==`number`&&n.push(e);n.length===0&&(n=void 0)}return t.serialize({...e,type:`number`,multiple:!0,defaultValue:n,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:Number(e.value),condition:e.condition})):null})}return t.serialize({...e,type:`number`,multiple:!1,defaultValue:r,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:Number(e.value),condition:e.condition})):null});case`boolean`:if(this.multiple){let n;if(Array.isArray(this.defaultValue)){n=[];for(let e of this.defaultValue)typeof e==`boolean`&&n.push(e);n.length===0&&(n=void 0)}return t.serialize({...e,type:`boolean`,multiple:!0,defaultValue:n,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:!!e.value,condition:e.condition})):null})}return t.serialize({...e,type:`boolean`,multiple:!1,defaultValue:i,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:!!e.value,condition:e.condition})):null});case`object`:return this.multiple?t.serialize({...e,type:`object`,multiple:!0,defaultValue:this.defaultValue,options:this.options?this.options.map(e=>({id:e.id,label:e.label,description:e.description,value:e.value,condition:e.condition})):null}):t.serialize({...e,type:`object`,multiple:!1,defaultValue:this.defaultValue,options:this.options?this.options.map(e=>({id:e.id,label:e.label,description:e.description,value:e.value,condition:e.condition})):null});default:throw Error(`Unsupported field type`)}}}),u=e=>({id:e.id,component:e.component,name:e.name,initializeOpen:e.initializeOpen,condition:e.condition,targets:e.targets,steps:[],nodes:[],edges:[],fields:[],conditionals:[],addStep(e,t){let n=t?.node;this.nodes.length===0&&(n=o({type:`origin`},this),this.nodes.push(n));let r=`serialize`in e?e:a(e,this);if(n){if(!r.node)throw Error(`todo no node`);let e=s({sourceNode:n,destinationNode:r.node,sourceNodeHandle:null},this);this.edges.push(e)}return r.fields.length>0&&r.fields.forEach(e=>{this.fields.includes(e)||this.fields.push(e)}),this.steps.includes(r)||(this.steps.push(r),r.node&&this.nodes.push(r.node)),r},addAction(e,t){let n=t?.node;this.nodes.length===0&&(n=o({type:`origin`},this),this.nodes.push(n));let i=`serialize`in e?e:r(e,this);if(n){let e=s({sourceNode:n,destinationNode:i,sourceNodeHandle:null},this);this.edges.push(e)}return this.nodes.push(i),i},addConditional(e,t){let n=t?.node;this.nodes.length===0&&(n=o({type:`origin`},this),this.nodes.push(n));let r=`serialize`in e?e:c(e,this);if(n){if(!r.node)throw Error(`todo no node`);let e=s({sourceNode:n,destinationNode:r.node,sourceNodeHandle:null},this);this.edges.push(e)}return this.conditionals.includes(r)||(this.conditionals.push(r),r.node&&this.nodes.push(r.node)),r},addExperience(e,t){let n=t?.node;this.nodes.length===0&&(n=o({type:`origin`},this),this.nodes.push(n));let r=o({type:`experience`,experience:e},this);if(this.nodes.push(r),n){let e=s({sourceNode:n,destinationNode:r,sourceNodeHandle:null},this);this.edges.push(e)}return e},addField(e,t){let n=`serialize`in e?e:l(e);return t&&t.fields.push(n),this.fields.includes(n)||this.fields.push(n),n},serialize(){return t.serialize({id:this.id,component:this.component,name:this.name,initializeOpen:this.initializeOpen,condition:this.condition,targets:this.targets,steps:this.steps.map(e=>t.deserialize(e.serialize())),nodes:this.nodes.map(e=>t.deserialize(e.serialize())),edges:this.edges.map(e=>t.deserialize(e.serialize())),conditionals:this.conditionals.map(e=>t.deserialize(e.serialize())),fields:this.fields.map(e=>t.deserialize(e.serialize()))})}});exports.createConditional=c,exports.createEdge=s,exports.createExperience=u,exports.createExperiencePlugin=n,exports.createField=l,exports.createNode=o,exports.createStep=i,exports.serialization=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../logger-fbvQC40v.cjs`);const e=require(`../../../id-CIbS4P60.cjs`);var t=e=>({name:`create-experience`,setup:t=>{e.experiences.forEach(e=>{e.fields.forEach(e=>{t.registerField(JSON.parse(e.serialize()))}),e.steps.forEach(e=>{t.registerStep(JSON.parse(e.serialize()))}),e.conditions.forEach(e=>{t.registerCondition(JSON.parse(e.serialize()))});let n=JSON.parse(e.serialize());n.component=e.component,t.registerExperience(n)})}});function n(e){return e.toLowerCase().replaceAll(/[^a-z0-9\s-]/g,``).trim().replaceAll(/\s+/g,`-`)}var r=(t,n)=>({id:e.t(`node`),experience:n,type:`action`,action:t.action,addNext(e){if(!e.node)throw Error(`Cannot connect to node`);let t=s({sourceNode:this,destinationNode:e.node,sourceNodeHandle:null},n);n.edges.push(t)},onSuccess(e){if(!e.node)throw Error(`Cannot connect to node`);let t=s({sourceNode:this,destinationNode:e.node,sourceNodeHandle:`true`},n);n.edges.push(t)},onFail(e){if(!e.node)throw Error(`Cannot connect to node`);let t=s({sourceNode:this,destinationNode:e.node,sourceNodeHandle:`false`},n);n.edges.push(t)},serialize(){return JSON.stringify({id:this.id,type:this.type,action:this.action})}}),i=t=>{let r=t.name??t.label??``,i=t.key??t.id??n(r);return{id:t.id??e.t(`step`),name:r,key:i,label:r,fields:t.fields??[],addField(e){let t=`serialize`in e?e:l(e);return this.fields.includes(t)||this.fields.push(t),t}}},a=(t,r)=>{let i=t.name??t.label??``,a=t.key??t.id??n(i),s={id:t.id??e.t(`step`),name:i,key:a,label:i,experience:r,fields:t.fields??[],node:null,nextStep(e){return this.experience.addStep(e,this)},nextCondition(e){return this.experience.addCondition(e,this)},nextConditional(e){return this.nextCondition(e)},addNextExperience(e){return this.experience.addExperience(e,this)},addField(e){return this.experience.addField(e,this)},serialize(){return JSON.stringify({id:this.id,name:this.name,key:this.key,label:this.name,fieldKeys:this.fields.map(e=>e.key),fieldIds:this.fields.map(e=>e.id)})}};return o({step:s,type:`step`},r),s},o=(t,n)=>{let r={id:e.t(`node`),experience:n};if(t.type===`step`){let e={...r,type:`step`,connectedStep:t.step,serialize(){return JSON.stringify({id:this.id,type:this.type,stepKey:this.connectedStep.key,stepId:this.connectedStep.key,name:this.connectedStep.name,label:this.connectedStep.name})}};return e.connectedStep.node=e,e}if(t.type===`condition`){let e={...r,type:`condition`,connectedCondition:t.condition,serialize(){return JSON.stringify({id:this.id,type:this.type,conditionId:this.connectedCondition.id})}};return e.connectedCondition.node=e,e}return t.type===`experience`?{...r,type:`experience`,connectedExperience:t.experience,serialize(){return JSON.stringify({id:this.id,type:this.type,experienceId:this.connectedExperience.id})}}:{...r,type:`origin`,serialize(){return JSON.stringify({id:this.id,type:this.type})}}},s=(t,n)=>({id:e.t(`edge`),sourceNode:t.sourceNode,sourceNodeHandle:t.sourceNodeHandle,destinationNode:t.destinationNode,experience:n,serialize(){return JSON.stringify({id:this.id,sourceNodeHandle:this.sourceNodeHandle??void 0,sourceNodeId:this.sourceNode.id,destinationNodeId:this.destinationNode.id})}}),c=(t,r)=>{let i=e.t(`conditional`),a=t.name??t.label??i,c={id:i,key:t.key??n(a),name:a,label:t.label,logic:t.condition,node:null,experience:r,addTrue(e){if(!this.node||!e.node)throw Error(`todo no node`);let t=s({sourceNode:this.node,destinationNode:e.node,sourceNodeHandle:`true`},this.experience);this.experience.edges.push(t)},addFalse(e){if(!this.node||!e.node)throw Error(`todo no node`);let t=s({sourceNode:this.node,destinationNode:e.node,sourceNodeHandle:`false`},this.experience);this.experience.edges.push(t)},serialize(){return JSON.stringify({id:this.id,key:this.key,name:this.name,logic:this.logic})}};return o({condition:c,type:`condition`},r),c},l=t=>{let r=t.key??t.id??n(t.name);return t.id!==void 0&&`${t.id}${r}`,{id:t.id??e.t(`field`),key:r,name:t.name,type:t.type,label:t.label,placeholder:t.placeholder,description:t.description,helpText:t.helpText,defaultValue:t.defaultValue??null,multiple:t.multiple,validation:t.validation??{},condition:t.condition,required:t.required,options:t.options?.map(t=>({id:`id`in t?t.id:e.t(`option`),...t}))??null,policies:t.policies,serialize(){let e={id:this.id,key:this.key,name:this.name,label:this.label,placeholder:this.placeholder,required:this.required,description:this.description,helpText:this.helpText,validation:this.validation,condition:this.condition,policies:this.policies},t=typeof this.defaultValue==`string`?this.defaultValue:void 0,n=typeof this.defaultValue==`number`?this.defaultValue:void 0,r=typeof this.defaultValue==`boolean`?this.defaultValue:void 0;switch(this.type){case`text`:if(this.multiple){let t;if(Array.isArray(this.defaultValue)){t=[];for(let e of this.defaultValue)typeof e==`string`&&t.push(e);t.length===0&&(t=void 0)}return JSON.stringify({...e,type:`text`,multiple:!0,defaultValue:t,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:`${e.value}`,condition:e.condition})):null})}return JSON.stringify({...e,type:`text`,multiple:!1,defaultValue:t,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:`${e.value}`,condition:e.condition})):null});case`number`:if(this.multiple){let t;if(Array.isArray(this.defaultValue)){t=[];for(let e of this.defaultValue)typeof e==`number`&&t.push(e);t.length===0&&(t=void 0)}return JSON.stringify({...e,type:`number`,multiple:!0,defaultValue:t,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:Number(e.value),condition:e.condition})):null})}return JSON.stringify({...e,type:`number`,multiple:!1,defaultValue:n,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:Number(e.value),condition:e.condition})):null});case`boolean`:if(this.multiple){let t;if(Array.isArray(this.defaultValue)){t=[];for(let e of this.defaultValue)typeof e==`boolean`&&t.push(e);t.length===0&&(t=void 0)}return JSON.stringify({...e,type:`boolean`,multiple:!0,defaultValue:t,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:!!e.value,condition:e.condition})):null})}return JSON.stringify({...e,type:`boolean`,multiple:!1,defaultValue:r,options:this.options?this.options.map(e=>({id:e.id,label:e.label,value:!!e.value,condition:e.condition})):null});case`object`:return this.multiple?JSON.stringify({...e,type:`object`,multiple:!0,defaultValue:this.defaultValue,options:this.options?this.options.map(e=>({id:e.id,label:e.label,description:e.description,value:e.value,condition:e.condition})):null}):JSON.stringify({...e,type:`object`,multiple:!1,defaultValue:this.defaultValue,options:this.options?this.options.map(e=>({id:e.id,label:e.label,description:e.description,value:e.value,condition:e.condition})):null});default:throw Error(`Unsupported field type`)}}}},u=e=>{let t=e.key??e.id;return{id:e.id,key:t,component:e.component,name:e.name,initializeOpen:e.initializeOpen,condition:e.condition,targets:e.targets,steps:[],nodes:[],edges:[],fields:[],conditions:[],addStep(e,t){let n=t?.node;this.nodes.length===0&&(n=o({type:`origin`},this),this.nodes.push(n));let r=`serialize`in e?e:a(e,this);if(n){if(!r.node)throw Error(`todo no node`);let e=s({sourceNode:n,destinationNode:r.node,sourceNodeHandle:null},this);this.edges.push(e)}return r.fields.length>0&&r.fields.forEach(e=>{this.fields.includes(e)||this.fields.push(e)}),this.steps.includes(r)||(this.steps.push(r),r.node&&this.nodes.push(r.node)),r},addAction(e,t){let n=t?.node;this.nodes.length===0&&(n=o({type:`origin`},this),this.nodes.push(n));let i=`serialize`in e?e:r(e,this);if(n){let e=s({sourceNode:n,destinationNode:i,sourceNodeHandle:null},this);this.edges.push(e)}return this.nodes.push(i),i},addCondition(e,t){let n=t?.node;this.nodes.length===0&&(n=o({type:`origin`},this),this.nodes.push(n));let r=`serialize`in e?e:c(e,this);if(n){if(!r.node)throw Error(`todo no node`);let e=s({sourceNode:n,destinationNode:r.node,sourceNodeHandle:null},this);this.edges.push(e)}return this.conditions.includes(r)||(this.conditions.push(r),r.node&&this.nodes.push(r.node)),r},addConditional(e,t){return this.addCondition(e,t)},addExperience(e,t){let n=t?.node;this.nodes.length===0&&(n=o({type:`origin`},this),this.nodes.push(n));let r=o({type:`experience`,experience:e},this);if(this.nodes.push(r),n){let e=s({sourceNode:n,destinationNode:r,sourceNodeHandle:null},this);this.edges.push(e)}return e},addField(e,t){let n=`serialize`in e?e:l(e);return t&&t.fields.push(n),this.fields.includes(n)||this.fields.push(n),n},serialize(){return JSON.stringify({id:this.id,key:this.key,component:this.component,name:this.name,initializeOpen:this.initializeOpen,condition:this.condition,targets:this.targets,nodes:this.nodes.map(e=>JSON.parse(e.serialize())),edges:this.edges.map(e=>JSON.parse(e.serialize()))})}}};exports.createCondition=c,exports.createEdge=s,exports.createExperience=u,exports.createExperiencePlugin=t,exports.createField=l,exports.createNode=o,exports.createStep=i;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../logger-fbvQC40v.cjs`);const e=require(`../../../api-BEXzPJHZ.cjs`);function t(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function n(e){return t(e)%100}function r(e,t){return t<=0?!1:t>=100?!0:e<t}function i(e){return typeof e!=`object`||!e||!(`id`in e&&`name`in e&&`enabled`in e&&`weight`in e&&`version`in e)?!1:typeof e.id==`string`&&typeof e.name==`string`&&typeof e.enabled==`boolean`&&typeof e.weight==`number`&&typeof e.version==`number`}function a(e){return typeof e!=`object`||!e||!(`features`in e)||!Array.isArray(e.features)?!1:e.features.every(i)}function o(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function s(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 c(e,t,r){let i=s(e),a=e.session?.id;if(!a)throw Error(`Session ID is required for feature registration`);let o=n(a);for(let n of t.features)i.has(n.id)||l(e,n,r,o)}function l(e,t,n,i){e.registerFeature(t.id,{key:`v${t.version}`,name:t.name,storage:n?`session`:`local`,decide:()=>t.enabled?r(i,t.weight):!1})}function u(){let e;try{e=__PICKED_PROJECT_CONFIG__}catch{return}if(e===void 0)return;let t;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return}else t=e;if(a(t))return t}function d(e){try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`}catch{return!1}}function f(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 p(t,n,r){let i=r?.previewToken?`projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}`:`projects/${n}`,o;try{o=await e.t(t,i,r?.headers)}catch(e){return d(t)&&f(e),null}if(!o.ok)return`${o.status.toString()}`,null;let s;try{s=await o.json()}catch{return null}return a(s)?s:null}function m(e){return{name:`dynamic-experiences`,setup:t=>{let n=e?.apiUrl??t.apiUrl;return{onStart:async()=>{let r=o(t);if(r){let e=await p(n,t.projectId,{previewToken:r});e&&c(t,e,!0);return}let i=e?.projectConfig??u();if(i){c(t,i,!1);return}let a=await p(n,t.projectId);a&&c(t,a,!1)}}}}}exports.createClientHeaders=e.i,exports.dynamicExperiencesPlugin=m,exports.fetchProject=p;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../logger-fbvQC40v.cjs`);const e=require(`../../../api-dkMxUUe0.cjs`);function t(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function n(e){return t(e)%100}function r(e,t){return t<=0?!1:t>=100?!0:e<t}function i(e){return typeof e==`object`&&!!e&&`features`in e&&Array.isArray(e.features)}function a(e,t){if(t.conditions)for(let n of t.conditions)e.registerCondition(n)}function o(e,t){e.registerExperience({id:t.id,key:t.key,name:t.name,targets:t.targets??[],nodes:t.nodes,edges:t.edges,actions:t.actions,condition:t.condition,initializeOpen:t.initializeOpen,componentName:t.componentName})}function s(e,t){if(t.fields)for(let n of t.fields)e.registerField(n)}function c(e,t){if(t.steps)for(let n of t.steps)e.registerStep(n)}function l(e,t){if(t.experiences)for(let n of t.experiences)o(e,n)}function u(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function d(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 f(e,t,r){let i=d(e),a=e.session?.id;if(!a)throw Error(`Session ID is required for feature registration`);let o=n(a);for(let n of t.features)i.has(n.id)||p(e,n,r,o)}function p(e,t,n,i){e.registerFeature(t.id,{key:`v${t.version}`,name:t.name,storage:n?`session`:`local`,decide:()=>t.enabled?r(i,t.weight):!1})}function m(){let e;try{e=__PICKED_PROJECT_CONFIG__}catch{return}if(e===void 0)return;let t;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return}else t=e;if(i(t))return t}function h(e){try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`}catch{return!1}}function g(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 _(t,n,r){let a=r?.previewToken?`projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}`:`projects/${n}`,o;try{o=await e.t(t,a,r?.headers)}catch(e){return h(t)&&g(e),null}if(!o.ok)return`${o.status.toString()}`,null;let s;try{s=await o.json()}catch{return null}return i(s)?s:null}function v(e){return{name:`dynamic-experiences`,setup:t=>{let n=e?.apiUrl??t.apiUrl;return{onStart:async()=>{let r=u(t);if(r){let e=await _(n,t.projectId,{previewToken:r});e&&(f(t,e,!0),a(t,e),s(t,e),c(t,e),l(t,e));return}let i=e?.projectConfig??m();if(i){f(t,i,!1),a(t,i),s(t,i),c(t,i),l(t,i);return}let o=await _(n,t.projectId);o&&(f(t,o,!1),a(t,o),s(t,o),c(t,o),l(t,o))}}}}}exports.createClientHeaders=e.i,exports.dynamicExperiencesPlugin=v,exports.fetchProject=_;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../logger-fbvQC40v.cjs`);const e=require(`../../../storage-B6lQtc4-.cjs`);let t=require(`effector`);var n=({storage:n=`local`}={})=>({name:`experience-browser-storage-plugin`,setup:r=>{let i=n===`local`?e.n:e.r,a=(0,t.createEffect)(async t=>{if(!t)return;let n=e.t(`open-close`,`experience`,t),r=i.get(n).boolean();t.setOpen(r??t.isOpenStore.getState())});(0,t.sample)({source:r.eventBus,filter:e=>e.type===`experience_initialize`&&`experience`in e,fn:e=>e.experience,target:a});let o=(0,t.createEffect)(async t=>{let n=e.t(`open-close`,`experience`,t),r=t.isOpenStore.getState();i.set(n,r)}),s=e=>(0,t.sample)({source:e.isOpenStore,fn:()=>e,target:o});r.experienceInstances.listStore.watch(e=>{e.forEach(e=>s(e))})}});exports.experienceBrowserStoragePlugin=n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../logger-fbvQC40v.cjs`);const e=require(`../../../storage-BFjb8azI.cjs`);let t=require(`effector`);var n=({storage:n=`local`}={})=>({name:`experience-browser-storage-plugin`,setup:r=>{let i=n===`local`?e.n:e.r,a=(0,t.createEffect)(async t=>{if(!t)return;let n=e.t(`open-close`,`experience`,t),r=i.get(n).boolean();t.setOpen(r??t.isOpenStore.getState())});(0,t.sample)({source:r.eventBus,filter:e=>e.type===`experience_initialize`&&`experience`in e,fn:e=>e.experience,target:a});let o=(0,t.createEffect)(async t=>{let n=e.t(`open-close`,`experience`,t),r=t.isOpenStore.getState();i.set(n,r)}),s=e=>(0,t.sample)({source:e.isOpenStore,fn:()=>e,target:o});r.experienceInstances.listStore.watch(e=>{e.forEach(e=>s(e))})}});exports.experienceBrowserStoragePlugin=n;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../storage-B6lQtc4-.cjs`);let t=require(`effector`);var n=e.t(`history`,`global`),r=({storage:r=`local`}={})=>({name:`history-browser-storage-plugin`,setup:i=>{let a=r===`local`?e.n:e.r,o=(0,t.createEffect)(async()=>{let e=a.get(n).json();e&&i.history.restore({entries:e})}),s=(0,t.createEffect)(async e=>{a.set(n,e)});(0,t.sample)({source:i.eventBus,filter:e=>e.type===`load`,target:o}),(0,t.sample)({source:i.history.entriesStore,target:s})}});exports.historyBrowserStoragePlugin=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../storage-BFjb8azI.cjs`);let t=require(`effector`);var n=e.t(`history`,`global`),r=({storage:r=`local`}={})=>({name:`history-browser-storage-plugin`,setup:i=>{let a=r===`local`?e.n:e.r,o=(0,t.createEffect)(async()=>{let e=a.get(n).json();e&&i.history.restore({entries:e})}),s=(0,t.createEffect)(async e=>{a.set(n,e)});(0,t.sample)({source:i.eventBus,filter:e=>e.type===`load`,target:o}),(0,t.sample)({source:i.history.entriesStore,target:s})}});exports.historyBrowserStoragePlugin=r;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../storage-B6lQtc4-.cjs`);let t=require(`effector`);var n=e.t(`responses`,`global`),r=(e,t)=>{let n={};return Object.entries(e).forEach(([e,r])=>{t.find(t=>t.id===e)?.policies?.doNotStoreValue||(n[e]=r)}),n},i=({storage:i=`local`}={})=>({name:`responses-browser-storage-plugin`,setup:a=>{let o=i===`local`?e.n:e.r,s=(0,t.createEffect)(async()=>{let e=o.get(n).json();if(!e)return null;a.responses.register(e)}),c=(0,t.attach)({source:{responses:a.responses.getAllStore,fields:a.fields.listStore},effect:({responses:e,fields:t})=>{let i=r(e,t);o.set(n,i)}});(0,t.sample)({source:a.eventBus,filter:e=>e.type===`load`,target:s}),(0,t.sample)({source:a.responses.getAllStore,target:c})}});exports.responsesBrowserStoragePlugin=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../storage-BFjb8azI.cjs`);let t=require(`effector`);var n=e.t(`responses`,`global`),r=(e,t)=>{let n={};return Object.entries(e).forEach(([e,r])=>{t.find(t=>t.id===e)?.policies?.doNotStoreValue||(n[e]=r)}),n},i=({storage:i=`local`}={})=>({name:`responses-browser-storage-plugin`,setup:a=>{let o=i===`local`?e.n:e.r,s=(0,t.createEffect)(async()=>{let e=o.get(n).json();if(!e)return null;a.responses.register(e)}),c=(0,t.attach)({source:{responses:a.responses.getAllStore,fields:a.fields.listStore},effect:({responses:e,fields:t})=>{let i=r(e,t);o.set(n,i)}});(0,t.sample)({source:a.eventBus,filter:e=>e.type===`load`,target:s}),(0,t.sample)({source:a.responses.getAllStore,target:c})}});exports.responsesBrowserStoragePlugin=i;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`effector`);var t=`picked`;async function n(e){let{storeName:n,version:r=1,keyPath:i=`id`}=e;return new Promise((e,a)=>{let o=indexedDB.open(t,r);o.onupgradeneeded=()=>{let e=o.result;e.objectStoreNames.contains(n)||e.createObjectStore(n,i?{keyPath:i}:void 0)},o.onsuccess=()=>e(o.result),o.onerror=()=>a(Error(o.error?.message))})}async function r(e,t){return new Promise((n,r)=>{let i=e.transaction(t,`readonly`).objectStore(t).getAll();i.onsuccess=()=>n(i.result),i.onerror=()=>r(Error(i.error?.message))})}async function i(e,t,n){return new Promise((r,i)=>{let a=e.transaction(t,`readwrite`).objectStore(t).put(n);a.onsuccess=()=>r(),a.onerror=()=>i(Error(a.error?.message))})}async function a(e,t,n){return new Promise((r,i)=>{let a=e.transaction(t,`readwrite`).objectStore(t).delete(n);a.onsuccess=()=>r(),a.onerror=()=>i(Error(a.error?.message))})}async function o(e,t){return new Promise((n,r)=>{let i=e.transaction(t,`readwrite`).objectStore(t).clear();i.onsuccess=()=>n(),i.onerror=()=>r(Error(i.error?.message))})}var s=`responses`,c={storeName:s,keyPath:`fieldId`},l=()=>({name:`responses-indexdb-plugin`,setup:t=>{let l=(0,e.createEffect)(async()=>{let e=(await r(await n(c),s)).reduce((e,{fieldId:t,value:n})=>(e[t]=n,e),{});await t.responses.commit(e)}),u=(0,e.createEffect)(async e=>{await Promise.allSettled(e.map(async e=>{await i(await n(c),s,e)}))}),d=(0,e.createEffect)(async()=>{await o(await n(c),s)}),f=(0,e.createEffect)(async e=>{await a(await n(c),s,e)});(0,e.sample)({source:t.eventBus,filter:e=>e.type===`load`,target:l}),(0,e.sample)({clock:t.responses.listStore,source:{responses:t.responses.listStore,fields:t.fields.listStore},fn:({responses:e,fields:t})=>{let n=new Set(t.filter(e=>!e.policies?.doNotStoreValue).map(e=>e.id));return e.filter(e=>n.has(e.fieldId))},target:u}),(0,e.sample)({clock:t.responses.clearAll,target:d}),(0,e.sample)({clock:t.responses.clear,target:f})}});exports.responsesIndexedDBPlugin=l;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`effector`);var t=`picked`;async function n(e){let{storeName:n,version:r=1,keyPath:i=`id`}=e;return new Promise((e,a)=>{let o=indexedDB.open(t,r);o.onupgradeneeded=()=>{let e=o.result;e.objectStoreNames.contains(n)||e.createObjectStore(n,i?{keyPath:i}:void 0)},o.onsuccess=()=>e(o.result),o.onerror=()=>a(Error(o.error?.message))})}async function r(e,t){return new Promise((n,r)=>{let i=e.transaction(t,`readonly`).objectStore(t).getAll();i.onsuccess=()=>n(i.result),i.onerror=()=>r(Error(i.error?.message))})}async function i(e,t,n){return new Promise((r,i)=>{let a=e.transaction(t,`readwrite`).objectStore(t).put(n);a.onsuccess=()=>r(),a.onerror=()=>i(Error(a.error?.message))})}async function a(e,t,n){return new Promise((r,i)=>{let a=e.transaction(t,`readwrite`).objectStore(t).delete(n);a.onsuccess=()=>r(),a.onerror=()=>i(Error(a.error?.message))})}async function o(e,t){return new Promise((n,r)=>{let i=e.transaction(t,`readwrite`).objectStore(t).clear();i.onsuccess=()=>n(),i.onerror=()=>r(Error(i.error?.message))})}var s=`responses`,c={storeName:s,keyPath:`fieldId`},l=()=>({name:`responses-indexdb-plugin`,setup:t=>{let l=(0,e.createEffect)(async()=>{let e=(await r(await n(c),s)).reduce((e,{fieldId:t,value:n})=>(e[t]=n,e),{});await t.responses.commit(e)}),u=(0,e.createEffect)(async e=>{e.forEach(e=>{n(c).then(t=>{i(t,s,e)}).catch(e=>{console.error(`Failed to store response in IndexedDB:`,e)})})}),d=(0,e.createEffect)(async()=>{await o(await n(c),s)}),f=(0,e.createEffect)(async e=>{await a(await n(c),s,e)});(0,e.sample)({source:t.eventBus,filter:e=>e.type===`load`,target:l}),(0,e.sample)({clock:t.responses.listStore,source:{responses:t.responses.listStore,fields:t.fields.listStore},fn:({responses:e,fields:t})=>{let n=t.filter(e=>!e.policies?.doNotStoreValue);return e.filter(e=>n.some(t=>t.id===e.fieldId))},target:u}),(0,e.sample)({clock:t.responses.clearAll,target:d}),(0,e.sample)({clock:t.responses.clear,target:f})}});exports.responsesIndexedDBPlugin=l;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../object-CUJOjanb.cjs`),t=require(`../../../supports-Dsjg-82e.cjs`);var n=t.f,r,i=e=>({name:`single-page-app`,setup:e=>{t.d()&&a(()=>{requestAnimationFrame(()=>{e.start()})})}});function a(i){if(n.addEventListener(`popstate`,()=>{let e=n.location.href,t=r;r=e,t!==e&&i()}),!t.i())return;function a(e){return function(...t){let n=t.length>2?t[2]:void 0;if(n){let a=r,o=String(n);if(r=o,a===o)return e.apply(this,t);i()}return e.apply(this,t)}}e.n(n.history,`pushState`,a),e.n(n.history,`replaceState`,a)}exports.singlePageAppPlugin=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../object-BReQiaSS.cjs`),t=require(`../../../supports-Dsjg-82e.cjs`);var n=t.f,r,i=e=>({name:`single-page-app`,setup:n=>{e.instrumentHistory&&t.d()&&a(()=>{requestAnimationFrame(()=>{n.start()})})}});function a(i){if(n.addEventListener(`popstate`,()=>{let e=n.location.href,t=r;r=e,t!==e&&i()}),!t.i())return;function a(e){return function(...t){let n=t.length>2?t[2]:void 0;if(n){let a=r,o=String(n);if(r=o,a===o)return e.apply(this,t);i()}return e.apply(this,t)}}e.n(n.history,`pushState`,a),e.n(n.history,`replaceState`,a)}exports.singlePageAppPlugin=i;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../supports-Dsjg-82e.cjs`);var t=()=>({name:`web-components`,setup:t=>{if(!e.d()||!e.u())return;let n=`picked-root`;if(window.customElements.get(n))return;class r extends HTMLElement{connectedCallback(){let e=this.getAttribute(`experience-id`);t.isReady&&e&&t.experiences.launch({id:e})}}window.customElements.define(n,r)}});exports.webComponentsPlugin=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../supports-Dsjg-82e.cjs`);var t=()=>({name:`web-components`,setup:t=>{if(!e.d()||!e.u())return;let n=`picked-root`;if(window.customElements.get(n))return;class r extends HTMLElement{connectedCallback(){let e=this.getAttribute(`experience-id`);t.isReady&&e&&t.experiences.launch({key:e})}}window.customElements.define(n,r)}});exports.webComponentsPlugin=t;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../experience-instance-Ddk4Jktn.cjs`);let t=require(`effector`);function n(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:t=>e(t),reject:e=>t(e)}}function r(r,i){let{promise:a,resolve:o}=n(),s=(0,t.createEvent)(),c=(0,t.createEvent)(),l=(0,t.createEvent)(),u=(0,t.createEvent)(),d=(0,t.createEvent)(),f=r.experiences.listStore.map(t=>t.map(t=>e.t({client:r,experience:t}))),p=(0,t.createStore)({currentExperienceIndex:0,renderedExperiences:[],isComplete:!1}),m=(0,t.createEffect)(async({experience:e,availableRenderers:t,startRendererIndex:n=0})=>{if(!e)return null;for(let i=n;i<t.length;i++){let n=t[i],a=e.componentStore.getState();if(a&&n?.isValidComponent(a.component))return{rendered:await n.render(a.component,r,e),rendererIndex:i}}return null});return p.on(l,(e,t)=>({...e,renderedExperiences:[...e.renderedExperiences,t],currentExperienceIndex:e.currentExperienceIndex+1})).on(d,e=>({...e,currentExperienceIndex:e.currentExperienceIndex+1})).on(u,e=>({...e,isComplete:!0})).reset(s),(0,t.sample)({clock:s,target:c}),(0,t.sample)({clock:c,source:{experiences:f,state:p},filter:({experiences:e,state:t})=>t.currentExperienceIndex<e.length&&!t.isComplete,fn:({experiences:e,state:t})=>({experience:e[t.currentExperienceIndex],availableRenderers:i,startRendererIndex:0}),target:m}),(0,t.sample)({clock:m.doneData,filter:e=>e!==null,fn:e=>e.rendered.body,target:l}),(0,t.sample)({clock:l,target:c}),(0,t.sample)({clock:m.doneData,filter:e=>e===null,target:d}),(0,t.sample)({clock:d,target:c}),(0,t.sample)({clock:[c,d,l],source:{experiences:f,state:p},filter:({experiences:e,state:t})=>t.currentExperienceIndex>=e.length,target:u}),(0,t.sample)({clock:u,target:(0,t.attach)({source:p,effect:e=>{e.isComplete&&o(e.renderedExperiences)}})}),s(),a}exports.render=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../experience-instance-DImQh64e.cjs`);let t=require(`effector`);function n(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:t=>e(t),reject:e=>t(e)}}function r(r,i){let{promise:a,resolve:o}=n(),s=(0,t.createEvent)(),c=(0,t.createEvent)(),l=(0,t.createEvent)(),u=(0,t.createEvent)(),d=(0,t.createEvent)(),f=r.experiences.listStore.map(t=>t.map(t=>e.t({client:r,experience:t}))),p=(0,t.createStore)({currentExperienceIndex:0,renderedExperiences:[],isComplete:!1}),m=(0,t.createEffect)(async({experience:e,availableRenderers:t,startRendererIndex:n=0})=>{if(!e)return null;for(let i=n;i<t.length;i++){let n=t[i],a=e.componentStore.getState();if(a&&n?.isValidComponent(a.component))return{rendered:await n.render(a.component,r,e),rendererIndex:i}}return null});return p.on(l,(e,t)=>({...e,renderedExperiences:[...e.renderedExperiences,t],currentExperienceIndex:e.currentExperienceIndex+1})).on(d,e=>({...e,currentExperienceIndex:e.currentExperienceIndex+1})).on(u,e=>({...e,isComplete:!0})).reset(s),(0,t.sample)({clock:s,target:c}),(0,t.sample)({clock:c,source:{experiences:f,state:p},filter:({experiences:e,state:t})=>t.currentExperienceIndex<e.length&&!t.isComplete,fn:({experiences:e,state:t})=>({experience:e[t.currentExperienceIndex],availableRenderers:i,startRendererIndex:0}),target:m}),(0,t.sample)({clock:m.doneData,filter:e=>e!==null,fn:e=>e.rendered.body,target:l}),(0,t.sample)({clock:l,target:c}),(0,t.sample)({clock:m.doneData,filter:e=>e===null,target:d}),(0,t.sample)({clock:d,target:c}),(0,t.sample)({clock:[c,d,l],source:{experiences:f,state:p},filter:({experiences:e,state:t})=>t.currentExperienceIndex>=e.length,target:u}),(0,t.sample)({clock:u,target:(0,t.attach)({source:p,effect:e=>{e.isComplete&&o(e.renderedExperiences)}})}),s(),a}exports.render=r;