@picked/client 0.0.50-next.3 → 0.0.50

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 (51) hide show
  1. package/dist/api-BwTaomem.cjs +1 -0
  2. package/dist/api-DWBcrf98.js +37 -0
  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/plugins/window-object/index.js +1 -1
  13. package/dist/cjs/server/index.js +1 -1
  14. package/dist/esm/index.js +1126 -1220
  15. package/dist/esm/plugins/create-experience/index.js +461 -468
  16. package/dist/esm/plugins/dynamic-experiences/index.js +106 -123
  17. package/dist/esm/plugins/experience-browser-storage/index.js +32 -37
  18. package/dist/esm/plugins/history-browser-storage/index.js +23 -25
  19. package/dist/esm/plugins/responses-browser-storage/index.js +36 -39
  20. package/dist/esm/plugins/responses-indexeddb/index.js +81 -80
  21. package/dist/esm/plugins/single-page-app/index.js +31 -35
  22. package/dist/esm/plugins/web-components/index.js +18 -20
  23. package/dist/esm/plugins/window-object/index.js +9 -9
  24. package/dist/esm/server/index.js +95 -89
  25. package/dist/experience-instance-BRpI9I4s.js +710 -0
  26. package/dist/experience-instance-BUTnwbSJ.cjs +1 -0
  27. package/dist/id-BniPxOdF.js +4 -0
  28. package/dist/id-CIbS4P60.cjs +1 -0
  29. package/dist/logger-6z_gb4rA.js +4 -0
  30. package/dist/logger-fbvQC40v.cjs +1 -0
  31. package/dist/object-BReQiaSS.cjs +1 -0
  32. package/dist/object-Clj5zVr1.js +24 -0
  33. package/dist/storage-BFjb8azI.cjs +1 -0
  34. package/dist/storage-DyxpJ0pg.js +101 -0
  35. package/dist/supports-0XIfd4-R.js +85 -0
  36. package/dist/supports-Dsjg-82e.cjs +1 -0
  37. package/package.json +5 -5
  38. package/dist/api-4mY9vhi4.cjs +0 -1
  39. package/dist/api-D1FqIUly.js +0 -32
  40. package/dist/experience-instance-BsXG5XJ4.cjs +0 -1
  41. package/dist/experience-instance-fvSEb72i.js +0 -819
  42. package/dist/id-BKIWbSTy.cjs +0 -1
  43. package/dist/id-BW-g3y32.js +0 -6
  44. package/dist/logger-BsmHUUw1.cjs +0 -1
  45. package/dist/logger-C9a75KZn.js +0 -5
  46. package/dist/object-BbFTsGh3.cjs +0 -1
  47. package/dist/object-JwZ58NOH.js +0 -28
  48. package/dist/storage-Be5xWNPC.cjs +0 -1
  49. package/dist/storage-Co_LbKr_.js +0 -239
  50. package/dist/supports-8YT4QKI7.js +0 -95
  51. package/dist/supports-YvpQZxbh.cjs +0 -1
@@ -0,0 +1 @@
1
+ var e=`Picked-Client`,t=`Picked-Version`;function n(n,r){return{[e]:n,[t]:r}}var r=()=>`0.0.50`,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}});
@@ -0,0 +1,37 @@
1
+ //#region src/utils/client-headers.ts
2
+ var e = "Picked-Client", t = "Picked-Version";
3
+ function n(n, r) {
4
+ return {
5
+ [e]: n,
6
+ [t]: r
7
+ };
8
+ }
9
+ //#endregion
10
+ //#region src/utils/version.ts
11
+ var r = () => "0.0.50", i = "v1";
12
+ function a(e, t) {
13
+ return new URL(`/api/${i}/${t}`, e).toString();
14
+ }
15
+ function o(e) {
16
+ return {
17
+ ...n("sdk", r()),
18
+ ...e
19
+ };
20
+ }
21
+ async function s(e, t, n) {
22
+ let r = a(e, t);
23
+ return fetch(r, { headers: o(n) });
24
+ }
25
+ async function c(e, t, n, r) {
26
+ let i = a(e, t);
27
+ return fetch(i, {
28
+ method: "POST",
29
+ headers: {
30
+ "Content-Type": "application/json",
31
+ ...o(r)
32
+ },
33
+ body: JSON.stringify(n)
34
+ });
35
+ }
36
+ //#endregion
37
+ export { n as i, c as n, r, s as t };
package/dist/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("effector"),S=require("@withease/factories"),I=require("../experience-instance-BsXG5XJ4.cjs"),E=require("../logger-BsmHUUw1.cjs"),w=require("../storage-Be5xWNPC.cjs"),U=require("../api-4mY9vhi4.cjs"),K=require("../id-BKIWbSTy.cjs"),G=require("../object-BbFTsGh3.cjs"),k=require("../supports-YvpQZxbh.cjs"),L=g.createDomain("experience"),W=S.createFactory(({client:t,experience:e})=>{const r=L.store(e),s=g.createApi(r,{merge(l,m){return{...l,...m.experience}}}),n=r.map(l=>({name:l.name,decisionLogic:l.condition,targetSelectors:l.targets,initializeOpenLogic:e.initializeOpen})),p=t.components.listStore.map(l=>(e.componentName?l.find(m=>m.name===e.componentName):void 0)||l.find(m=>m.name===`experience:${e.id}`)||l.find(m=>m.name==="experience"),{skipVoid:!1}),a=r.map(l=>({steps:l.steps,nodes:l.nodes,edges:l.edges,conditionals:l.conditionals})),i=r.map(l=>l.fields),c=e.actions??[];return{id:e.id,configStore:n,treeStore:a,fieldsStore:i,componentStore:p,actions:c,merge:s.merge}});function J(t){return S.invoke(W,t)}const Y=S.createFactory(({client:t})=>{const e=L.store({}),r=g.createApi(e,{register(c,l){return{...c,[l.id]:l}}});function s(c){const l=e.getState()[c.id];if(l){l.merge({experience:c,strategy:"override"});return}const m=J({client:t,experience:c});r.register(m)}const n=e.map(c=>Object.values(c));function p(c){return e.map(l=>l[c],{skipVoid:!1})}const a=g.attach({source:e,effect:async(c,{id:l,options:m})=>{const b=c[l];if(!b){E.logger("warn",`Experience with id '${l}' not found.`);return}if(m?.bypassCondition){$(t,b,m);return}await V(t,b)&&$(t,b,m)}}),i=g.attach({source:t.experienceInstances.listStore,effect:(c,{id:l,options:m})=>{const b=c.filter(y=>y.experienceId===l);if(b.length>0)for(const y of b)y.open();else a({id:l,options:{...m,initialiseOpen:!0}})}});return{register:s,get:p,getById:p,launch:a,open:i,listStore:n}});function Q(t){return S.invoke(Y,t)}const X=(t,e)=>{e.register(t)},$=(t,e,r)=>{const{targetSelectors:s}=e.configStore.getState(),n=I.getTargetElements(s,e.id);n.forEach(({elements:a})=>a.forEach(i=>I.tagTargetElement(i,e.id))),I.createAppHosts(n,e.id).forEach(a=>{r?t.experienceInstances.spawn(e,a,r):t.experienceInstances.spawn(e,a)})},z=async t=>{await Promise.all(t.experiences.listStore.getState().map(async e=>{await V(t,e)&&$(t,e)}))},V=async(t,e)=>{if(!t.preconditionPassed||!t.session?.isUser)return!1;const{decisionLogic:r,targetSelectors:s}=e.configStore.getState();return I.getTargetElements(s,e.id).length<1||s.length===0?!1:r===void 0?!0:I.isRulesLogic(r)?await I.evaluateRuleLogic(t,r)===!0:!0},Z=(t,e,r)=>{const s=e.name,n=e.setup(t);if(n){const p=r[s]??{};r[s]=Object.freeze({...p,...n})}},ee=g.createDomain("component"),te=S.createFactory(({client:t,component:e,name:r})=>{const s=t.frameworks.getByName(e.frameworkName);return{name:r,component:e,frameworkStore:s}});function re(t){return S.invoke(te,t)}const se=S.createFactory(({client:t})=>{const e=ee.store({}),r=g.createApi(e,{register(a,i){return{...a,[i.name]:i}}});function s(a,i){e.getState()[a]&&E.logger("warn",`Component '${a}' already registered. Registering again will override the previous registration.`);const l=re({client:t,name:a,component:i});r.register(l)}const n=e.map(a=>Object.values(a));function p(a){return e.map(i=>i[a],{skipVoid:!1})}return{register:s,getByName:p,listStore:n}});function ne(t){return S.invoke(se,t)}const D=(t,e,r)=>{r.register(t,e)},ie=g.createDomain("framework"),oe=S.createFactory(({client:t})=>{const e=ie.store({}),r=g.createApi(e,{register(a,i){return{...a,[i.name]:i.framework}}});function s(a,i){e.getState()[a]&&E.logger("warn",`Framework '${a}' already registered. Registering again will override the previous registration.`),r.register({name:a,framework:i})}const n=e.map(a=>Object.values(a));function p(a){return e.map(i=>i[a],{skipVoid:!1})}return{register:s,getByName:p,listStore:n}});function ae(t){return S.invoke(oe,t)}const ce=(t,e)=>{e.register(t.name,t)},ue=6e3,le=w.createStorageKey("last_ping","global"),de=async t=>{try{const e=Date.now(),r=w.localStore.get(le);let s=0;if(r.isSet()&&(s=r.json()??0),s&&e-s<ue)return!0;const n={projectId:t.projectId,path:window.location.pathname},p={},i=document.getElementById("picked_script")?.dataset.verceltoken;i&&(p["x-vercel-protection-bypass"]=i);const l=(await U.post(t.apiUrl,"ping",n,p)).ok;return l&&r.set(e),l}catch(e){return E.logger("error",e),!1}};function N(t){const e=typeof window<"u",r={client:t,responses:t.responses.listStore.getState(),fields:t.fields.listStore.getState(),location:e?window.location:void 0,document:e?window.document:void 0,sessionStorage:e?window.sessionStorage:void 0,localStorage:e?window.localStorage:void 0};return Object.freeze(r)}const pe=g.createDomain("predicate"),fe=S.createFactory(({client:t})=>{const e=pe.store({}),r=g.createApi(e,{register(i,c){return{...i,[c.name]:{name:c.name,predicate:c.predicate}}}});function s(i,c){e.getState()[i]&&E.logger("warn",`Predicate '${i}' already registered. Registering again will override the previous registration.`),r.register(Object.freeze({name:i,predicate:c}))}const n=e.map(i=>Object.values(i));function p(i){return e.map(c=>c[i]?.predicate,{skipVoid:!1})}function a(i){const c=g.createStore(()=>{},{skipVoid:!1}),l=g.createEffect(async()=>{const m=p(i).getState();if(!m)return;const b=N(t);return(...y)=>m({...b,args:y})});return g.sample({source:{responses:t.responses.listStore,fields:t.fields.listStore},target:l}),g.sample({clock:l.doneData,filter:m=>m!==void 0,target:c}),l(),c}return{register:s,getByName:p,listStore:n,getEvokablePredicate:a}});function ge(t){return S.invoke(fe,t)}const me=(t,e,r)=>{r.register(t,e)},B=g.createDomain("feature"),ye=S.createFactory(({client:t})=>{const e=B.store({}),r=B.store([]),s=g.createApi(e,{register(o,u){return{...o,[u.id]:u.feature}}});function n(o,u){e.getState()[o]&&E.logger("warn",`Feature '${o}' already registered. Registering again will override the previous registration.`);const d={id:o,feature:{...u,id:o}};s.register(Object.freeze({id:o,feature:d}))}const p=g.createEffect(async({id:o,key:u,storage:f="local"})=>{const d=w.createStorageKey(`feature:${o}:${u}`,"global"),v=(f==="session"?w.sessionStore:w.localStore).get(d).boolean();return v===null?null:{id:o,key:u,bucket:v,storage:f}}),a=g.createEffect(o=>{if(!o)return null;const u=w.createStorageKey(`feature:${o.id}:${o.key}`,"global");(o.storage==="session"?w.sessionStore:w.localStore).set(u,o.bucket)}),i=new Map,c=g.attach({source:{allFeaturesStore:e,resolvedFeaturesStore:r},effect:async({allFeaturesStore:o,resolvedFeaturesStore:u},{id:f,decide:d,key:h})=>{const v=u.find(P=>P.id===f&&P.key===h);if(v)return v;const x=o[f];if(!x)throw new Error(`Feature with id '${f}' not found`);const A=i.get(`${f}:${h}`);if(A!==void 0){const P=await A;return{id:x.id,bucket:P,key:h,storage:x.feature.storage}}const F=d();i.set(`${f}:${h}`,F);const H=await F;return{id:x.id,bucket:H,key:h,storage:x.feature.storage}}});g.sample({clock:s.register,fn:o=>{const{id:u,feature:f}=o;return{id:u,key:f.feature.key,storage:f.feature.storage}},target:p}),g.sample({source:e,clock:c.doneData,fn:(o,u)=>{const{id:f,bucket:d,storage:h}=u,v=o[f]?.feature.key;return v?{key:v,id:f,bucket:d,storage:h}:null},target:a});const l=g.combine({allFeaturesStore:e,resolvedFeaturesStore:r}).map(({allFeaturesStore:o,resolvedFeaturesStore:u})=>Object.values(o).map(f=>{const d=u.find(h=>h.id===f.id&&h.key===f.feature.key);return d?{id:f.id,name:f.feature.name,key:f.feature.key,getBucket:()=>({id:f.id,bucket:d.bucket}),isResolved:!0}:{id:f.id,name:f.feature.name,key:f.feature.key,getBucket:async()=>await c(f.feature),isResolved:!1}}));g.sample({clock:c.doneData,source:{resolvedFeatures:r},filter:({resolvedFeatures:o},{id:u,key:f})=>!o.some(h=>h.id===u&&h.key===f),fn:(o,u)=>u,target:t.eventBus.prepend(o=>({type:"feature_decide",feature:o}))}),g.sample({clock:[p.doneData,c.doneData],source:r,fn:(o,u)=>!u||o.some(d=>d.id===u.id&&d.key===u.key)?o:[...o,u],target:r});function m(o){return l.map(u=>u.find(f=>f.id===o))}function b(o){return e.map(u=>u[o],{skipVoid:!1})}function y(o){const u=g.createStore(async()=>{},{skipVoid:!1}),f=g.createEffect(async()=>{const d=m(o).getState();if(d)return async()=>(await d.getBucket()).bucket});return g.sample({source:r,filter:d=>d.some(h=>h.id===o),target:f}),g.sample({clock:f.doneData,filter:d=>d!==void 0,target:u}),f(),u}return{register:n,getById:m,getByName:b,listStore:l,getEvokableFeature:y}});function he(t){return S.invoke(ye,t)}const Se=(t,e,r)=>{r.register(t,e)},j=g.createDomain("history");function O(t,e){return{id:K.generateId(`history-entry-${Date.now()}-${Math.random()}}`),node:e,at:Date.now(),experienceId:t}}const ve=S.createFactory(()=>{const t=j.store({entries:[]}),e=j.event(),r=j.event(),s=j.event(),n=j.event();t.on(e,(a,i)=>({entries:[...a.entries,O(i.experienceId,i.node)]})),t.on(r,(a,i)=>({entries:[...a.entries.slice(0,-1),O(i.experienceId,i.node)]})),t.on(n,(a,i)=>i);function p(a,i){const c={lastStepIndex:-1,secondLastStepIndex:-1};for(let l=a.length-1;l>=0;l--){const m=a[l],b=m?.node;if(!(!b||!I.isStepNode(b))&&!(i&&m?.experienceId!==i))if(c.lastStepIndex===-1)c.lastStepIndex=l;else{c.secondLastStepIndex=l;break}}return c}return t.on(s,(a,i)=>{const{secondLastStepIndex:c}=p(a.entries,i.experienceId),l=c!==-1?a.entries.slice(0,c+1):a.entries;return{...a,entries:l}}),{push:e,replace:r,back:s,restore:n,entriesStore:t.map(a=>a.entries)}});function ke(){return S.invoke(ve)}let we=0;const be=t=>{const e=g.createStore([]);return g.sample({clock:t,source:e,fn:(r,s)=>[...r,{id:we++,at:new Date,payload:s}],target:e}),e},Ie=g.createDomain("field"),Fe=S.createFactory(()=>{const t=Ie.store({}),e=g.createApi(t,{register(i,c){return{...i,[c.field.id]:c.field}}});function r(i){e.register({field:i})}function s(i,c){const l=p(i).getState();if(!l)return;const m=Object.assign({},l,{...c});e.register({field:{...m}})}const n=t.map(i=>Object.values(i));function p(i){return t.map(c=>c[i]||null)}function a(i){return t.map(c=>Object.values(c).find(l=>l.name===i)||null)}return{register:r,update:s,getById:p,listStore:n,getByName:a}});function Ee(){return S.invoke(Fe)}const xe=(t,e)=>{e.register(t)},je=g.createDomain("action"),Ae=S.createFactory(()=>{const t=je.store({}),e=g.createApi(t,{register(a,i){return{...a,[i.name]:{name:i.name,action:i.action}}}});function r(a,i){e.register({name:a,action:i})}const s=t.map(a=>Object.values(a));function n(a){return t.map(i=>i[a],{skipVoid:!1})}function p(a){return t.map(i=>{const c=i[a];return c?c.action:void 0},{skipVoid:!1})}return{register:r,getByName:n,listStore:s,getEvokableAction:p}});function Pe(){return S.invoke(Ae)}const Re=(t,e,r)=>{r.register(t,e)};function C(t){return typeof t>"u"||t===null||t===""||Array.isArray(t)&&!t.length}function Ce(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null}function M(t){try{return JSON.stringify(t),!0}catch{return!1}}const $e=g.createDomain("response"),ze=S.createFactory(({client:t})=>{const e=$e.store({}),r=g.createEvent(),s=g.createEvent(),n=g.createApi(e,{register(y,o){return{...y,[o.fieldId]:o.response}},registerBatch(y,o){return{...y,...o}},clear(y,o){const{[o]:u,...f}=y;return f},clearAll(){return{}}});function p(y,o){if(typeof y=="string"){if(o===void 0)throw new Error("Response is required when registering a single field");n.register({fieldId:y,response:o})}else n.registerBatch(y)}async function a(y){const o=[];return await Promise.allSettled(Object.entries(y).map(async([u,f])=>{let d=f;const h=t.fields.getById(u).getState();if(!h){o.push({fieldId:u,userMessage:`Field '${u}' not found`,systemMessage:`No field with ID '${u}' exists. Available field IDs are: ${Object.keys(t.fields.listStore.getState()).join(",")}.`,value:d});return}if(h.multiple&&(typeof d=="string"||typeof d=="number"||typeof d=="boolean")&&(d=[d]),h.validation&&!G.isEmpty(h.validation)&&!C(d)){const v=await I.evaluateRuleLogic(t,h.validation,{$input:d});if(typeof v=="string"){o.push({fieldId:u,userMessage:v,systemMessage:`Field validation resulted in an error: ${v}.`,value:d});return}if(v===!1){o.push({fieldId:u,userMessage:"This field is invalid",systemMessage:"Field validation resulted in an unspecified error.",value:d});return}}if(h.required&&C(d)){o.push({fieldId:u,userMessage:"This field is required",systemMessage:"Field is required.",value:d});return}if(!h.multiple&&Array.isArray(d)&&d.length>1){o.push({fieldId:u,userMessage:"This field expects a single response",systemMessage:"Field expects a single response.",value:d});return}if(h.type==="object"&&!C(d))if(h.multiple){if(!Array.isArray(d)){o.push({fieldId:u,userMessage:"This field expects multiple values",systemMessage:"Field expects an array of objects.",value:d});return}for(const v of d){if(typeof v!="object"||v===null){o.push({fieldId:u,userMessage:"This field expects object values",systemMessage:"Field expects an array of objects, but received non-object value.",value:d});return}if(!M(v)){o.push({fieldId:u,userMessage:"This field contains non-serializable data",systemMessage:"Field value contains non-JSON-serializable data (functions, circular references, etc.).",value:d});return}}}else{if(Array.isArray(d)){o.push({fieldId:u,userMessage:"This field expects a single value",systemMessage:"Field expects a single object, not an array.",value:d});return}if(typeof d!="object"||d===null){o.push({fieldId:u,userMessage:"This field expects an object value",systemMessage:"Field expects an object value.",value:d});return}if(!M(d)){o.push({fieldId:u,userMessage:"This field contains non-serializable data",systemMessage:"Field value contains non-JSON-serializable data (functions, circular references, etc.).",value:d});return}}if(Array.isArray(h.options)&&h.options.length>0){const v=Array.isArray(d)?d:[d];if(h.type==="object"){const x=h.options.map(F=>JSON.stringify(F.value));v.every(F=>x.includes(JSON.stringify(F)))||o.push({fieldId:u,userMessage:"This field expects a valid option",systemMessage:"Field expects a valid option from the defined choices.",value:d})}else{const x=h.options.map(F=>F.value);v.every(F=>!Ce(F)||F===null?!1:x.includes(F))||o.push({fieldId:u,userMessage:"This field expects a valid option",systemMessage:`Field expects a valid option. Valid options are: ${x.join(", ")}`,value:d})}}})),{responsesToCommit:y,validationErrors:o}}async function i(y){const{responsesToCommit:o,validationErrors:u}=await a(y);return u.length?{errors:u}:(n.registerBatch(o),{errors:[]})}const c=e.map(y=>y),l=e.map(y=>Object.keys(y).map(u=>({fieldId:u,value:y[u]})));function m(y){const o=t.fields.getById(y),u=e.map(f=>f[y]||null);return g.combine({f:o,r:u},({f,r:d})=>d||(f?.defaultValue?f.defaultValue:null))}function b(y){const o=t.fields.getByName(y);return g.combine({f:o,s:e},({f:u,s:f})=>{const d=u&&f[u.id]||null;return d||(u?.defaultValue?u.defaultValue:null)})}return g.sample({clock:r,target:n.clearAll}),g.sample({clock:s,target:n.clear}),{register:p,clearAll:r,clear:s,commit:i,getResponsesToCommit:a,listStore:l,getAllStore:c,getByFieldId:m,getByFieldName:b}});function De(t){return S.invoke(ze,t)}function Be(){if(k.supportsDocument()){const t=[document.currentScript,document.getElementById("picked_script"),document.getElementById("picked"),document.getElementById("cvly"),document.getElementById("cvly-x")];for(const e of t)if(e?.dataset.api)return e.dataset.api}return"https://api.picked.app"}function Oe(){if(!k.supportsWindow())return{};const t=new URLSearchParams(window.location.search),e={},r=new Set;for(const[n]of t.entries())n.startsWith("picked-")&&r.add(n);for(const n of r){const p=n.replace("picked-","");e[p]=t.getAll(n)}const s=w.createStorageKey("s");if(r.size>0)w.sessionStore.set(s,e);else{const n=w.sessionStore.get(s);if(n)return n.json()||{}}return e}function Me(){if(k.supportsCryptoRandomUUID())return crypto.randomUUID();const t=Date.now().toString(36),e=Math.random().toString(36).substring(2,15),r=Math.random().toString(36).substring(2,15),s=Math.random().toString(36).substring(2,15);return`${t}-${e}-${r}-${s}`}const Ue=w.createStorageKey("session","global"),Le=()=>{const t=w.localStore.get(Ue);let e;t.isSet()&&(e=t.json());const r=n=>t.set({id:n.id,isUser:n.isUser,identifiers:n.identifiers}),s={id:e?.id??Me(),isUser:e?.isUser??void 0,identifiers:e?.identifiers??void 0,setIsUser(n){this.isUser=n,r(this)},setIdentifier(n,p){this.identifiers={...this.identifiers,[n]:p},r(this)},removeIdentifier(n){this.identifiers&&(this.identifiers=Object.fromEntries(Object.entries(this.identifiers).filter(([p])=>p!==n)),this.identifiers=Object.keys(this.identifiers).length?this.identifiers:void 0,r(this))}};return r(s),s},Ve=()=>k.supportsLocalStorage()?Le():null;function T(){if(k.supportsWindow())return globalThis.window.pickedConfig}function Ne(){if(!k.supportsWindow())return;const t=T(),e=t?.organizationId,r=t?.projectId;return e&&r?{organizationId:e,projectId:r}:void 0}function Te(){if(!k.supportsDocument())return;const t=document.getElementById("picked_script")||document.querySelector("script#picked")||document.getElementById("cvly");if(!t)return;const e=t.dataset.organizationid||t.getAttribute("organization-id"),r=t.dataset.projectid||t.getAttribute("project-id");return e&&r?{organizationId:e,projectId:r}:void 0}function _e(t){const{organizationId:e,projectId:r}=t;if(e&&r)return{organizationId:e,projectId:r};const s=Ne();if(s)return s;const n=Te();if(n)return n;throw new 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-BUTnwbSJ.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-BwTaomem.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:e,experience:t})=>{let n=l.store(t),r=(0,s.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})),c=n.map(e=>e.fields),u=t.actions??[];return{id:t.id,configStore:i,treeStore:o,fieldsStore:c,componentStore:a,actions:u,merge:r.merge}});function d(e){return(0,c.invoke)(u,e)}var f=(0,c.createFactory)(({client:e})=>{let t=l.store({}),n=(0,s.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=d({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,s.attach)({source:t,effect:async(t,{id:n,options:r})=>{let i=t[n];if(!i){`${n}`;return}if(r?.bypassCondition){h(e,i,r);return}await _(e,i)&&h(e,i,r)}});return{register:r,get:a,getById:a,launch:o,open:(0,s.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 p(e){return(0,c.invoke)(f,e)}var m=(e,t)=>{t.register(e)},h=(t,n,r)=>{let{targetSelectors:i}=n.configStore.getState(),a=e.o(i,n.id);a.forEach(({elements:t})=>t.forEach(t=>e.c(t,n.id))),e.i(a,n.id).forEach(e=>{r?t.experienceInstances.spawn(n,e,r):t.experienceInstances.spawn(n,e)})},g=async e=>{await Promise.all(e.experiences.listStore.getState().map(async t=>{await _(e,t)&&h(e,t)}))},_=async(t,n)=>{if(!t.preconditionPassed||!t.session?.isUser)return!1;let{decisionLogic:r,targetSelectors:i}=n.configStore.getState();return e.o(i,n.id).length<1||i.length===0?!1:r===void 0?!0:e.u(r)?await e.l(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})}},v=(0,s.createDomain)(`component`),y=(0,c.createFactory)(({client:e,component:t,name:n})=>({name:n,component:t,frameworkStore:e.frameworks.getByName(t.frameworkName)}));function b(e){return(0,c.invoke)(y,e)}var x=(0,c.createFactory)(({client:e})=>{let t=v.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:t}}});function r(r,i){t.getState()[r]&&`${r}`;let a=b({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,c.invoke)(x,e)}var S=(e,t,n)=>{n.register(e,t)},ne=(0,s.createDomain)(`framework`),re=(0,c.createFactory)(({client:e})=>{let t=ne.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 ie(e){return(0,c.invoke)(re,e)}var ae=(e,t)=>{t.register(e.name,e)},oe=6e3,C=i.t(`last_ping`,`global`),w=async e=>{try{let t=Date.now(),n=i.n.get(C),r=0;if(n.isSet()&&(r=n.json()??0),r&&t-r<oe)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 T(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 E=(0,s.createDomain)(`predicate`),D=(0,c.createFactory)(({client:e})=>{let t=E.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=T(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 O(e){return(0,c.invoke)(D,e)}var k=(e,t,n)=>{n.register(e,t)},A=(0,s.createDomain)(`feature`),j=(0,c.createFactory)(({client:e})=>{let t=A.store({}),n=A.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 M(e){return(0,c.invoke)(j,e)}var N=(e,t,n)=>{n.register(e,t)},P=(0,s.createDomain)(`history`);function F(e,t){return{id:o.t(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}var I=(0,c.createFactory)(()=>{let t=P.store({entries:[]}),n=P.event(),r=P.event(),i=P.event(),a=P.event();t.on(n,(e,t)=>({entries:[...e.entries,F(t.experienceId,t.node)]})),t.on(r,(e,t)=>({entries:[...e.entries.slice(0,-1),F(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.r(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 L(){return(0,c.invoke)(I)}var R=0,z=e=>{let t=(0,s.createStore)([]);return(0,s.sample)({clock:e,source:t,fn:(e,t)=>[...e,{id:R++,at:new Date,payload:t}],target:t}),t},B=(0,s.createDomain)(`field`),V=(0,c.createFactory)(()=>{let e=B.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(e,n){let r=a(e).getState();if(!r)return;let i=Object.assign({},r,{...n});t.register({field:{...i}})}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 H(){return(0,c.invoke)(V)}var U=(e,t)=>{t.register(e)},W=(0,s.createDomain)(`action`),G=(0,c.createFactory)(()=>{let e=W.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 K(){return(0,c.invoke)(G)}var se=(e,t,n)=>{n.register(e,t)};function q(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 J(e){try{return JSON.stringify(e),!0}catch{return!1}}var le=(0,s.createDomain)(`response`),ue=(0,c.createFactory)(({client:n})=>{let r=le.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){let{[t]:n,...r}=e;return r},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){let i=[];return await Promise.allSettled(Object.entries(r).map(async([r,a])=>{let o=a,s=n.fields.getById(r).getState();if(!s){i.push({fieldId:r,userMessage:`Field '${r}' not found`,systemMessage:`No field with ID '${r}' exists. Available field IDs are: ${Object.keys(n.fields.listStore.getState()).join(`,`)}.`,value:o});return}if(s.multiple&&(typeof o==`string`||typeof o==`number`||typeof o==`boolean`)&&(o=[o]),s.validation&&!t.t(s.validation)&&!q(o)){let t=await e.l(n,s.validation,{$input:o});if(typeof t==`string`){i.push({fieldId:r,userMessage:t,systemMessage:`Field validation resulted in an error: ${t}.`,value:o});return}if(t===!1){i.push({fieldId:r,userMessage:`This field is invalid`,systemMessage:`Field validation resulted in an unspecified error.`,value:o});return}}if(s.required&&q(o)){i.push({fieldId:r,userMessage:`This field is required`,systemMessage:`Field is required.`,value:o});return}if(!s.multiple&&Array.isArray(o)&&o.length>1){i.push({fieldId:r,userMessage:`This field expects a single response`,systemMessage:`Field expects a single response.`,value:o});return}if(s.type===`object`&&!q(o))if(s.multiple){if(!Array.isArray(o)){i.push({fieldId:r,userMessage:`This field expects multiple values`,systemMessage:`Field expects an array of objects.`,value:o});return}for(let e of o){if(typeof e!=`object`||!e){i.push({fieldId:r,userMessage:`This field expects object values`,systemMessage:`Field expects an array of objects, but received non-object value.`,value:o});return}if(!J(e)){i.push({fieldId:r,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:o});return}}}else{if(Array.isArray(o)){i.push({fieldId:r,userMessage:`This field expects a single value`,systemMessage:`Field expects a single object, not an array.`,value:o});return}if(typeof o!=`object`||!o){i.push({fieldId:r,userMessage:`This field expects an object value`,systemMessage:`Field expects an object value.`,value:o});return}if(!J(o)){i.push({fieldId:r,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:o});return}}if(Array.isArray(s.options)&&s.options.length>0){let e=Array.isArray(o)?o:[o];if(s.type===`object`){let t=s.options.map(e=>JSON.stringify(e.value));e.every(e=>t.includes(JSON.stringify(e)))||i.push({fieldId:r,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option from the defined choices.`,value:o})}else{let t=s.options.map(e=>e.value);e.every(e=>!ce(e)||e===null?!1:t.includes(e))||i.push({fieldId:r,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option. Valid options are: ${t.join(`, `)}`,value:o})}}})),{responsesToCommit:r,validationErrors:i}}async function u(e){let{responsesToCommit:t,validationErrors:n}=await l(e);return n.length?{errors:n}:(o.registerBatch(t),{errors:[]})}let d=r.map(e=>e),f=r.map(e=>Object.keys(e).map(t=>({fieldId:t,value:e[t]})));function p(e){return(0,s.combine)({f:n.fields.getById(e),r:r.map(t=>t[e]||null)},({f:e,r:t})=>t||(e?.defaultValue?e.defaultValue:null))}function m(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:u,getResponsesToCommit:l,listStore:f,getAllStore:d,getByFieldId:p,getByFieldName:m}});function de(e){return(0,c.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 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 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=i.t(`session`,`global`),ge=()=>{let e=i.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 Y(){if(r.d())return globalThis.window.pickedConfig}function ve(){if(!r.d())return;let e=Y(),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:
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 R(t){return t==null||t===""||Number.isNaN(t)}const qe={default:(t,e)=>R(t)?String(e??""):String(t),append:(t,e)=>e&&!R(t)?`${t} ${e}`:t,prepend:(t,e)=>e&&!R(t)?`${e} ${t}`:t,upper:t=>typeof t=="string"?t.toUpperCase():t,lower:t=>typeof t=="string"?t.toLowerCase():t,capitalize:t=>typeof t=="string"?t.charAt(0).toUpperCase()+t.slice(1):t,list:t=>{if(!t||typeof t!="object")return t;const e=new Intl.ListFormat("en",{style:"long",type:"conjunction"});if(Array.isArray(t))return e.format(t.map(String));if(t instanceof Map){const r=Array.from(t.entries()).map(([s,n])=>`${s}: ${n}`);return e.format(r)}return t instanceof Set?e.format(Array.from(t).map(String)):t}};function He(t){return typeof t=="object"&&t!==null}function Ke(t,e){let r=e;for(const s of t.split("."))if(He(r)&&s in r)r=r[s];else return;return typeof r=="function"?r():r}function Ge(t,e){const r=t.split("|").map(p=>p.trim()),s=r.shift()??"";let n=Ke(s,e);for(const p of r){const[a,...i]=p.split(":"),c=a?.trim()??"",l=i.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g,""),m=qe[c];m&&(n=m(n,l))}return R(n)?"":typeof n=="object"?JSON.stringify(n):String(n)}function We(t,e){let r="",s=0;for(;s<t.length;)if(t[s]==="{"&&t[s+1]==="{"){s+=2;let n="";for(;s<t.length;){if(t[s]==="}"&&t[s+1]==="}"){s+=2;break}n+=t[s++]}r+=Ge(n.trim(),e)}else r+=t[s++];return r}class _{static logger=E.logger;options;isReady=!1;project;plugins={};pluginStartHooks=[];eventBus=g.createEvent();events;organizationId;projectId;apiUrl;dashboardUrl;documentationSiteUrl;session;precondition;condition;preconditionPassed;searchParams=Oe();history=ke();components=ne({client:this});experienceInstances=I.createExperienceInstanceIndex({client:this});experiences=Q({client:this});frameworks=ae({client:this});predicates=ge({client:this});features=he({client:this});responses=De({client:this});fields=Ee();actions=Pe();constructor(e){E.logger("info","Picked client initializing."),this.events=be(this.eventBus);const{organizationId:r,projectId:s}=_e(e);this.organizationId=r,this.projectId=s,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=Ve(),this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.setupActions(),this.setupComponents(),this.precondition=e.precondition,this.condition=e.condition,this.eventBus({type:"load",version:U.getVersion()}),E.logger("info","Picked client initialized.")}start=()=>{de(this),(async()=>{if(!k.supportsDocument())return;await this.runPluginStartHooks();const r=await this.evaluateGate(this.precondition);this.preconditionPassed=r;let s;r&&(s=await this.evaluateGate(this.condition));const n=r&&s===!0;if(typeof s=="boolean"&&this.session){const p=s;this.session.setIsUser(p),this.eventBus({type:"user_decide",value:p})}if(this.eventBus({type:"initialize"}),n&&z(this),await I.domInteractive(),n&&z(this),this.eventBus({type:"ready"}),this.isReady=!0,this.session){const{id:p,isUser:a,identifiers:i}=this.session;this.eventBus({type:"session",id:p,isUser:a,identifiers:i})}})()};registerFramework=e=>{ce(e,this.frameworks)};registerComponent=(e,r)=>{D(e,r,this.components)};registerPlugin=e=>{Z(this,e,this.plugins);const r=this.plugins[e.name];r?.onStart&&this.pluginStartHooks.push(r.onStart)};registerFeature=(e,r)=>{Se(e,r,this.features)};registerPredicate=(e,r)=>{me(e,r,this.predicates)};registerField=e=>{xe(e,this.fields)};registerAction=(e,r)=>{Re(e,r,this.actions)};registerExperience=e=>{e.component&&D(`experience:${e.id}`,e.component,this.components),X(e,this.experiences)};getStateSnapshot=()=>N(this);launchExperienceById=async(e,r)=>{this.experiences.launch({id:e,options:r})};openExperienceById=async e=>{this.experiences.open({id:e})};async runPluginStartHooks(){for(const e of this.pluginStartHooks)await e()}async evaluateGate(e){return e===void 0?!0:typeof e=="boolean"?e:await I.evaluateRuleLogic(this,e)===!0}setupPlugins(){this.options.plugins?.forEach(e=>{if(Array.isArray(e)){e.forEach(s=>{this.registerPlugin(s)});return}const r=typeof e=="function"?e():e;if(Array.isArray(r)){r.forEach(s=>this.registerPlugin(s));return}this.registerPlugin(r)})}setupFeatures(){const e=this.options.features;e&&Object.entries(e).forEach(([r,s])=>{const n=typeof s=="function"?s():s;this.registerFeature(r,n)}),this.searchParams.feature&&this.searchParams.feature.forEach(r=>{try{const[s,n]=r.split(":");if(!s||!n)return;let p=n;p==="true"&&(p=!0),p==="false"&&(p=!1),this.registerFeature(s,{key:`${p}`,name:s,decide:()=>p,storage:"session"})}catch{}})}setupPredicates(){const e=this.options.predicates;e&&Object.entries(e).forEach(([r,s])=>{if(typeof s!="function"){E.logger("warn",`Predicate "${r}" is not a function.`);return}this.registerPredicate(r,s)})}setupActions(){const e=this.options.actions;e&&Object.entries(e).forEach(([r,s])=>{if(typeof s!="function"){E.logger("warn",`Action "${r}" is not a function.`);return}this.registerAction(r,s)})}setupComponents(){const e=this.options.components;e&&Object.entries(e).forEach(([r,s])=>{this.registerComponent(r,s)})}getPluginConfig=e=>this.plugins[e]??{};renderString=(e,r)=>{const s=this.responses.listStore.getState().reduce((n,p)=>(n[p.fieldId]=p.value,n),{});return We(e,{...r,responses:s})}}function q(t){return t.options?.some(e=>"condition"in e)??!1}function Je(t){return t.some(e=>e.condition||q(e))}async function Ye(t,e){return e.length===0||!Je(e)?e:(await Promise.all(e.map(async s=>{if(!(s.condition?await I.evaluateRuleLogic(t,s.condition):!0))return null;if(!s.options||!q(s))return s;const a=(await Promise.all(s.options.map(async c=>c.condition?await I.evaluateRuleLogic(t,c.condition)?c:null:c))).filter(c=>c!==null);return a.length===s.options.length?s:a.length===0?null:{...s,options:a}}))).filter(s=>s!==null)}function Qe(t){return{$$type:"lazy-component",load:t}}function Xe(t){return typeof t=="object"&&t!==null&&"$$type"in t&&t.$$type==="lazy-component"}const Ze=t=>{const e=new _(t);return k.bindClient(e),e};exports.evaluateRuleLogic=I.evaluateRuleLogic;exports.isPickedRoot=I.isPickedRoot;exports.createStorageKey=w.createStorageKey;exports.localStore=w.localStore;exports.sessionStore=w.sessionStore;exports.subscribe=w.subscribe;exports.supportsCookies=k.supportsCookies;exports.supportsCryptoRandomUUID=k.supportsCryptoRandomUUID;exports.supportsDocument=k.supportsDocument;exports.supportsHistory=k.supportsHistory;exports.supportsIntersectionObserver=k.supportsIntersectionObserver;exports.supportsLocalStorage=k.supportsLocalStorage;exports.supportsLocation=k.supportsLocation;exports.supportsSessionStorage=k.supportsSessionStorage;exports.supportsShadowRoot=k.supportsShadowRoot;exports.supportsWebComponents=k.supportsWebComponents;exports.supportsWindow=k.supportsWindow;exports.Picked=_;exports.createClient=Ze;exports.getPickedConfig=T;exports.getStepFields=Ye;exports.isLazyLoader=Xe;exports.lazyComponent=Qe;
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 X(e){return e==null||e===``||Number.isNaN(e)}var xe={default:(e,t)=>X(e)?String(t??``):String(e),append:(e,t)=>t&&!X(e)?`${e} ${t}`:e,prepend:(e,t)=>t&&!X(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 Se(e){return typeof e==`object`&&!!e}function Z(e,t){let n=t;for(let t of e.split(`.`))if(Se(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=Z(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 X(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 Q=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=pe();history=L();components=te({client:this});experienceInstances=e.n({client:this});experiences=p({client:this});frameworks=ie({client:this});predicates=O({client:this});features=M({client:this});responses=de({client:this});fields=H();actions=K();constructor(e){this.events=z(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:a.r()})}start=()=>{w(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&&g(this),await e.a(),i&&g(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)=>{S(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)=>{N(e,t,this.features)};registerPredicate=(e,t)=>{k(e,t,this.predicates)};registerField=e=>{U(e,this.fields)};registerAction=(e,t)=>{se(e,t,this.actions)};registerExperience=e=>{e.component&&S(`experience:${e.id}`,e.component,this.components),m(e,this.experiences)};getStateSnapshot=()=>T(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.l(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 $(e){return e.options?.some(e=>`condition`in e)??!1}function Te(e){return e.some(e=>e.condition||$(e))}async function Ee(t,n){return n.length===0||!Te(n)?n:(await Promise.all(n.map(async n=>{if(!(!n.condition||await e.l(t,n.condition)))return null;if(!n.options||!$(n))return n;let r=(await Promise.all(n.options.map(async n=>n.condition?await e.l(t,n.condition)?n:null:n))).filter(e=>e!==null);return r.length===n.options.length?n:r.length===0?null:{...n,options:r}}))).filter(e=>e!==null)}function De(e){return{$$type:`lazy-component`,load:e}}function Oe(e){return typeof e==`object`&&!!e&&`$$type`in e&&e.$$type===`lazy-component`}var ke=e=>{let t=new Q(e);return r.p(t),t};exports.Picked=Q,exports.createClient=ke,exports.createStorageKey=i.t,exports.evaluateRuleLogic=e.l,exports.getPickedConfig=Y,exports.getStepFields=Ee,exports.isLazyLoader=Oe,exports.isPickedRoot=e.s,exports.lazyComponent=De,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
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("../../../id-BKIWbSTy.cjs"),r={serialize(i){return JSON.stringify(i)},deserialize(i){return JSON.parse(i)}},m=i=>({name:"create-experience",setup:d=>{i.experiences.forEach(t=>{const s=t.serialize(),o=r.deserialize(s);o.component=t.component,d.registerExperience(o),o.fields.forEach(f=>{d.registerField(f)})})}}),y=(i,d)=>({id:p.generateId("node"),experience:d,type:"action",action:i.action,addNext(s){if(!s.node)throw new Error("Cannot connect to node");const o=c({sourceNode:this,destinationNode:s.node,sourceNodeHandle:null},d);d.edges.push(o)},onSuccess(s){if(!s.node)throw new Error("Cannot connect to node");const o=c({sourceNode:this,destinationNode:s.node,sourceNodeHandle:"true"},d);d.edges.push(o)},onFail(s){if(!s.node)throw new Error("Cannot connect to node");const o=c({sourceNode:this,destinationNode:s.node,sourceNodeHandle:"false"},d);d.edges.push(o)},serialize(){return r.serialize({id:this.id,type:this.type,action:this.action})}}),z=i=>({id:i.id??p.generateId("step"),label:i.label,fields:i.fields??[],addField(d){const t="serialize"in d?d:g(d);return this.fields.includes(t)||this.fields.push(t),t}}),b=(i,d)=>{const t={id:i.id??p.generateId("step"),label:i.label,experience:d,fields:i.fields??[],node:null,nextStep(s){return this.experience.addStep(s,this)},nextConditional(s){return this.experience.addConditional(s,this)},addNextExperience(s){return this.experience.addExperience(s,this)},addField(s){return this.experience.addField(s,this)},serialize(){return r.serialize({id:this.id,label:this.label,fieldIds:this.fields.map(s=>s.id)})}};return h({step:t,type:"step"},d),t},h=(i,d)=>{const t={id:p.generateId("node"),experience:d};if(i.type==="step"){const o={...t,type:"step",connectedStep:i.step,serialize(){return r.serialize({id:this.id,type:this.type,stepId:this.connectedStep.id,label:this.connectedStep.label})}};return o.connectedStep.node=o,o}if(i.type==="conditional"){const o={...t,type:"conditional",connectedConditional:i.conditional,serialize(){return r.serialize({id:this.id,type:this.type,conditionalId:this.connectedConditional.id})}};return o.connectedConditional.node=o,o}return i.type==="experience"?{...t,type:"experience",connectedExperience:i.experience,serialize(){return r.serialize({id:this.id,type:this.type,experienceId:this.connectedExperience.id})}}:{...t,type:"origin",serialize(){return r.serialize({id:this.id,type:this.type})}}},c=(i,d)=>({id:p.generateId("edge"),sourceNode:i.sourceNode,sourceNodeHandle:i.sourceNodeHandle,destinationNode:i.destinationNode,experience:d,serialize(){return r.serialize({id:this.id,sourceNodeHandle:this.sourceNodeHandle??void 0,sourceNodeId:this.sourceNode.id,destinationNodeId:this.destinationNode.id})}}),N=(i,d)=>{const t={id:p.generateId("conditional"),label:i.label,condition:i.condition,node:null,experience:d,addTrue(s){if(!this.node||!s.node)throw new Error("todo no node");const o=c({sourceNode:this.node,destinationNode:s.node,sourceNodeHandle:"true"},this.experience);this.experience.edges.push(o)},addFalse(s){if(!this.node||!s.node)throw new Error("todo no node");const o=c({sourceNode:this.node,destinationNode:s.node,sourceNodeHandle:"false"},this.experience);this.experience.edges.push(o)},serialize(){return r.serialize({id:this.id,label:this.label,condition:this.condition})}};return h({conditional:t,type:"conditional"},d),t},g=i=>({id:i.id,name:i.name,type:i.type,label:i.label,placeholder:i.placeholder,description:i.description,helpText:i.helpText,defaultValue:i.defaultValue??null,multiple:i.multiple,validation:i.validation??{},condition:i.condition,required:i.required,options:i.options?.map(t=>({id:"id"in t?t.id:p.generateId("option"),...t}))??null,policies:i.policies,serialize(){const t={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},s=typeof this.defaultValue=="string"?this.defaultValue:void 0,o=typeof this.defaultValue=="number"?this.defaultValue:void 0,f=typeof this.defaultValue=="boolean"?this.defaultValue:void 0;switch(this.type){case"text":if(this.multiple){let e;if(Array.isArray(this.defaultValue)){e=[];for(const n of this.defaultValue)typeof n=="string"&&e.push(n);e.length===0&&(e=void 0)}return r.serialize({...t,type:"text",multiple:!0,defaultValue:e,options:this.options?this.options.map(n=>({id:n.id,label:n.label,value:`${n.value}`,condition:n.condition})):null})}return r.serialize({...t,type:"text",multiple:!1,defaultValue:s,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 e;if(Array.isArray(this.defaultValue)){e=[];for(const n of this.defaultValue)typeof n=="number"&&e.push(n);e.length===0&&(e=void 0)}return r.serialize({...t,type:"number",multiple:!0,defaultValue:e,options:this.options?this.options.map(n=>({id:n.id,label:n.label,value:Number(n.value),condition:n.condition})):null})}return r.serialize({...t,type:"number",multiple:!1,defaultValue:o,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 e;if(Array.isArray(this.defaultValue)){e=[];for(const n of this.defaultValue)typeof n=="boolean"&&e.push(n);e.length===0&&(e=void 0)}return r.serialize({...t,type:"boolean",multiple:!0,defaultValue:e,options:this.options?this.options.map(n=>({id:n.id,label:n.label,value:!!n.value,condition:n.condition})):null})}return r.serialize({...t,type:"boolean",multiple:!1,defaultValue:f,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?r.serialize({...t,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}):r.serialize({...t,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 new Error("Unsupported field type")}}}),v=i=>{const d=[],t=[],s=[],o=[],f=[];return{id:i.id,component:i.component,name:i.name,initializeOpen:i.initializeOpen,condition:i.condition,targets:i.targets,steps:d,nodes:t,edges:s,fields:f,conditionals:o,addStep(e,n){let l=n?.node;this.nodes.length===0&&(l=h({type:"origin"},this),this.nodes.push(l));const a="serialize"in e?e:b(e,this);if(l){if(!a.node)throw new Error("todo no node");const u=c({sourceNode:l,destinationNode:a.node,sourceNodeHandle:null},this);this.edges.push(u)}return a.fields.length>0&&a.fields.forEach(u=>{this.fields.includes(u)||this.fields.push(u)}),this.steps.includes(a)||(this.steps.push(a),a.node&&this.nodes.push(a.node)),a},addAction(e,n){let l=n?.node;this.nodes.length===0&&(l=h({type:"origin"},this),this.nodes.push(l));const a="serialize"in e?e:y(e,this);if(l){const u=c({sourceNode:l,destinationNode:a,sourceNodeHandle:null},this);this.edges.push(u)}return this.nodes.push(a),a},addConditional(e,n){let l=n?.node;this.nodes.length===0&&(l=h({type:"origin"},this),this.nodes.push(l));const a="serialize"in e?e:N(e,this);if(l){if(!a.node)throw new Error("todo no node");const u=c({sourceNode:l,destinationNode:a.node,sourceNodeHandle:null},this);this.edges.push(u)}return this.conditionals.includes(a)||(this.conditionals.push(a),a.node&&this.nodes.push(a.node)),a},addExperience(e,n){let l=n?.node;this.nodes.length===0&&(l=h({type:"origin"},this),this.nodes.push(l));const a=h({type:"experience",experience:e},this);if(this.nodes.push(a),l){const u=c({sourceNode:l,destinationNode:a,sourceNodeHandle:null},this);this.edges.push(u)}return e},addField(e,n){const l="serialize"in e?e:g(e);return n&&n.fields.push(l),this.fields.includes(l)||this.fields.push(l),l},serialize(){return r.serialize({id:this.id,component:this.component,name:this.name,initializeOpen:this.initializeOpen,condition:this.condition,targets:this.targets,steps:this.steps.map(e=>r.deserialize(e.serialize())),nodes:this.nodes.map(e=>r.deserialize(e.serialize())),edges:this.edges.map(e=>r.deserialize(e.serialize())),conditionals:this.conditionals.map(e=>r.deserialize(e.serialize())),fields:this.fields.map(e=>r.deserialize(e.serialize()))})}}};exports.createConditional=N;exports.createEdge=c;exports.createExperience=v;exports.createExperiencePlugin=m;exports.createField=g;exports.createNode=h;exports.createStep=z;exports.serialization=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../id-CIbS4P60.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 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../../../api-4mY9vhi4.cjs"),a=require("../../../logger-BsmHUUw1.cjs");function d(e){let r=2166136261;for(let n=0;n<e.length;n++)r^=e.charCodeAt(n),r=Math.imul(r,16777619);return r>>>0}function g(e){return d(e)%100}function p(e,r){return r<=0?!1:r>=100?!0:e<r}function h(e){return typeof e!="object"||e===null||!("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 l(e){return typeof e!="object"||e===null||!("features"in e)||!Array.isArray(e.features)?!1:e.features.every(h)}function y(e){const r=e.searchParams["preview-token"];if(r&&r.length>0)return r[0]}function m(e){const r=new Set,n=e.searchParams.feature;if(!n)return r;for(const i of n){const t=i.indexOf(":");t>0&&r.add(i.substring(0,t))}return r}function c(e,r,n){const i=m(e),t=e.session?.id;if(!t)throw new Error("Session ID is required for feature registration");const o=g(t);for(const s of r.features)i.has(s.id)||v(e,s,n,o)}function v(e,r,n,i){e.registerFeature(r.id,{key:`v${r.version}`,name:r.name,storage:n?"session":"local",decide:()=>r.enabled?p(i,r.weight):!1})}function w(){let e;try{e=__PICKED_PROJECT_CONFIG__}catch{return}if(e===void 0)return;let r;if(typeof e=="string")try{r=JSON.parse(e)}catch{a.logger("warn","Build-time project config is not valid JSON");return}else r=e;if(l(r))return r;a.logger("warn","Build-time project config has invalid shape, falling back to runtime fetch")}function j(e){try{const r=new URL(e).hostname;return r==="localhost"||r==="127.0.0.1"||r==="::1"}catch{return!1}}function b(e){if(typeof e!="object"||e===null||!("cause"in e))return!1;const{cause:r}=e;return typeof r!="object"||r===null||!("code"in r)?!1:r.code==="ECONNREFUSED"}async function u(e,r,n){const i=n?.previewToken?`projects/${r}?preview_token=${encodeURIComponent(n.previewToken)}`:`projects/${r}`;let t;try{t=await f.get(e,i,n?.headers)}catch(s){return j(e)&&b(s)||a.logger("warn","Failed to fetch project config",s),null}if(!t.ok)return a.logger("warn",`Project config request failed with status ${t.status.toString()}`),null;let o;try{o=await t.json()}catch{return a.logger("warn","Failed to parse project config response"),null}return l(o)?o:(a.logger("warn","Invalid project config response shape"),null)}function P(e){return{name:"dynamic-experiences",setup:r=>{const n=e?.apiUrl??r.apiUrl;return{onStart:async()=>{const i=y(r);if(i){const s=await u(n,r.projectId,{previewToken:i});s&&c(r,s,!0);return}const t=e?.projectConfig??w();if(t){c(r,t,!1);return}const o=await u(n,r.projectId);o&&c(r,o,!1)}}}}}exports.createClientHeaders=f.createClientHeaders;exports.dynamicExperiencesPlugin=P;exports.fetchProject=u;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../logger-fbvQC40v.cjs`);const e=require(`../../../api-BwTaomem.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 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("effector"),o=require("../../../storage-Be5xWNPC.cjs"),g=require("../../../logger-BsmHUUw1.cjs"),S=({storage:c="local"}={})=>({name:"experience-browser-storage-plugin",setup:s=>{const i=c==="local"?o.localStore:o.sessionStore,a=r.createEffect(async e=>{if(!e){g.logger("warn","No experience instance provided to loadExperienceVisiblityFx.");return}const t=o.createStorageKey("open-close","experience",e),n=i.get(t).boolean();e.setOpen(n??e.isOpenStore.getState())});r.sample({source:s.eventBus,filter:e=>e.type==="experience_initialize"&&"experience"in e,fn:e=>e.experience,target:a});const l=r.createEffect(async e=>{const t=o.createStorageKey("open-close","experience",e),n=e.isOpenStore.getState();i.set(t,n)}),p=e=>r.sample({source:e.isOpenStore,fn:()=>e,target:l});s.experienceInstances.listStore.watch(e=>{e.forEach(t=>p(t))})}});exports.experienceBrowserStoragePlugin=S;
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
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("effector"),o=require("../../../storage-Be5xWNPC.cjs"),a=o.createStorageKey("history","global"),l=({storage:i="local"}={})=>({name:"history-browser-storage-plugin",setup:r=>{const s=i==="local"?o.localStore:o.sessionStore,n=t.createEffect(async()=>{const e=s.get(a).json();e&&r.history.restore({entries:e})}),c=t.createEffect(async e=>{s.set(a,e)});t.sample({source:r.eventBus,filter:e=>e.type==="load",target:n}),t.sample({source:r.history.entriesStore,target:c})}});exports.historyBrowserStoragePlugin=l;
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
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("effector"),c=require("../../../storage-Be5xWNPC.cjs"),p=c.createStorageKey("responses","global"),u=(n,e)=>{const o={};return Object.entries(n).forEach(([r,l])=>{!e.find(a=>a.id===r)?.policies?.doNotStoreValue&&(o[r]=l)}),o},g=({storage:n="local"}={})=>({name:"responses-browser-storage-plugin",setup:e=>{const o=n==="local"?c.localStore:c.sessionStore,r=t.createEffect(async()=>{const s=o.get(p).json();if(!s)return null;e.responses.register(s)}),l=t.attach({source:{responses:e.responses.getAllStore,fields:e.fields.listStore},effect:({responses:s,fields:i})=>{const a=u(s,i);o.set(p,a)}});t.sample({source:e.eventBus,filter:s=>s.type==="load",target:r}),t.sample({source:e.responses.getAllStore,target:l})}});exports.responsesBrowserStoragePlugin=g;
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
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("effector"),w="picked";async function d(r){const{storeName:o,version:c=1,keyPath:n="id"}=r;return new Promise((a,t)=>{const e=indexedDB.open(w,c);e.onupgradeneeded=()=>{const s=e.result;s.objectStoreNames.contains(o)||s.createObjectStore(o,n?{keyPath:n}:void 0)},e.onsuccess=()=>a(e.result),e.onerror=()=>t(new Error(e.error?.message))})}async function g(r,o){return new Promise((c,n)=>{const e=r.transaction(o,"readonly").objectStore(o).getAll();e.onsuccess=()=>c(e.result),e.onerror=()=>n(new Error(e.error?.message))})}async function x(r,o,c){return new Promise((n,a)=>{const s=r.transaction(o,"readwrite").objectStore(o).put(c);s.onsuccess=()=>n(),s.onerror=()=>a(new Error(s.error?.message))})}async function y(r,o,c){return new Promise((n,a)=>{const s=r.transaction(o,"readwrite").objectStore(o).delete(c);s.onsuccess=()=>n(),s.onerror=()=>a(new Error(s.error?.message))})}async function b(r,o){return new Promise((c,n)=>{const e=r.transaction(o,"readwrite").objectStore(o).clear();e.onsuccess=()=>c(),e.onerror=()=>n(new Error(e.error?.message))})}const u="responses",p={storeName:u,keyPath:"fieldId"},E=()=>({name:"responses-indexdb-plugin",setup:r=>{const o=i.createEffect(async()=>{const t=await d(p),s=(await g(t,u)).reduce((l,{fieldId:f,value:m})=>(l[f]=m,l),{});await r.responses.commit(s)}),c=i.createEffect(async t=>{t.forEach(e=>{d(p).then(s=>{x(s,u,e)}).catch(s=>{console.error("Failed to store response in IndexedDB:",s)})})}),n=i.createEffect(async()=>{const t=await d(p);await b(t,u)}),a=i.createEffect(async t=>{const e=await d(p);await y(e,u,t)});i.sample({source:r.eventBus,filter:t=>t.type==="load",target:o}),i.sample({clock:r.responses.listStore,source:{responses:r.responses.listStore,fields:r.fields.listStore},fn:({responses:t,fields:e})=>{const s=e.filter(l=>!l.policies?.doNotStoreValue);return t.filter(l=>s.some(f=>f.id===l.fieldId))},target:c}),i.sample({clock:r.responses.clearAll,target:n}),i.sample({clock:r.responses.clear,target:a})}});exports.responsesIndexedDBPlugin=E;
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
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../supports-YvpQZxbh.cjs"),c=require("../../../object-BbFTsGh3.cjs"),o=i.GLOBAL_OBJ;let s;const l=n=>({name:"single-page-app",setup:r=>{n.instrumentHistory&&i.supportsWindow()&&f(()=>{requestAnimationFrame(()=>{r.start()})})}});function f(n){if(o.addEventListener("popstate",()=>{const e=o.location.href,t=s;s=e,t!==e&&n()}),!i.supportsHistory())return;function r(e){return function(...t){const p=t.length>2?t[2]:void 0;if(p){const a=s,u=String(p);if(s=u,a===u)return e.apply(this,t);n()}return e.apply(this,t)}}c.patchMethod(o.history,"pushState",r),c.patchMethod(o.history,"replaceState",r)}exports.singlePageAppPlugin=l;
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
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../../supports-YvpQZxbh.cjs"),i=()=>({name:"web-components",setup:e=>{if(!o.supportsWindow()||!o.supportsWebComponents())return;const t="picked-root";if(window.customElements.get(t))return;class s extends HTMLElement{connectedCallback(){const n=this.getAttribute("experience-id");e.isReady&&n&&e.experiences.launch({id:n})}}window.customElements.define(t,s)}});exports.webComponentsPlugin=i;
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 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../supports-YvpQZxbh.cjs"),i=()=>({name:"window",setup:e=>{t.supportsWindow()&&(window.Picked=e)}});exports.windowObjectPlugin=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../supports-Dsjg-82e.cjs`);var t=()=>({name:`window`,setup:t=>{e.d()&&(window.Picked=t)}});exports.windowObjectPlugin=t;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("effector"),k=require("../../experience-instance-BsXG5XJ4.cjs");function S(){let c,i;return{promise:new Promise((t,o)=>{c=t,i=o}),resolve:t=>c(t),reject:t=>i(t)}}function C(c,i){const{promise:E,resolve:t}=S(),o=r.createEvent(),s=r.createEvent(),l=r.createEvent(),x=r.createEvent(),p=r.createEvent(),f=c.experiences.listStore.map(e=>e.map(n=>k.createExperienceInstance({client:c,experience:n}))),a=r.createStore({currentExperienceIndex:0,renderedExperiences:[],isComplete:!1}),u=r.createEffect(async({experience:e,availableRenderers:n,startRendererIndex:v=0})=>{if(!e)return null;for(let d=v;d<n.length;d++){const g=n[d],m=e.componentStore.getState();if(m&&g?.isValidComponent(m.component))return{rendered:await g.render(m.component,c,e),rendererIndex:d}}return null});a.on(l,(e,n)=>({...e,renderedExperiences:[...e.renderedExperiences,n],currentExperienceIndex:e.currentExperienceIndex+1})).on(p,e=>({...e,currentExperienceIndex:e.currentExperienceIndex+1})).on(x,e=>({...e,isComplete:!0})).reset(o),r.sample({clock:o,target:s}),r.sample({clock:s,source:{experiences:f,state:a},filter:({experiences:e,state:n})=>n.currentExperienceIndex<e.length&&!n.isComplete,fn:({experiences:e,state:n})=>({experience:e[n.currentExperienceIndex],availableRenderers:i,startRendererIndex:0}),target:u}),r.sample({clock:u.doneData,filter:e=>e!==null,fn:e=>e.rendered.body,target:l}),r.sample({clock:l,target:s}),r.sample({clock:u.doneData,filter:e=>e===null,target:p}),r.sample({clock:p,target:s}),r.sample({clock:[s,p,l],source:{experiences:f,state:a},filter:({experiences:e,state:n})=>n.currentExperienceIndex>=e.length,target:x});const I=r.attach({source:a,effect:e=>{e.isComplete&&t(e.renderedExperiences)}});return r.sample({clock:x,target:I}),o(),E}exports.render=C;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../experience-instance-BUTnwbSJ.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;