@picked/client 0.0.10-next.5 → 0.0.10

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.
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var T=Object.defineProperty;var U=(t,e,s)=>e in t?T(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var h=(t,e,s)=>U(t,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("effector"),S=require("@withease/factories"),F=require("../experience-instance-DXWLnF-R.cjs"),x=require("../logger-BsmHUUw1.cjs"),k=require("../storage-LI3UdcCr.cjs"),V=require("../id-BKIWbSTy.cjs"),N=require("../object-BbFTsGh3.cjs"),v=require("../supports-YvpQZxbh.cjs"),O=f.createDomain("experience"),K=S.createFactory(({client:t,experience:e})=>{const s=O.store(e),o=f.createApi(s,{merge(n,p){return{...n,...p.experience}}}),i=s.map(n=>({type:n.type,name:n.name,decisionLogic:n.decide,targetSelectors:n.targets})),l=t.components.listStore.map(n=>n.find(p=>p.name===`experience:${e.id}`)||n.find(p=>p.name==="experience"),{skipVoid:!1}),r=s.map(n=>({steps:n.steps,nodes:n.nodes,edges:n.edges,conditionals:n.conditionals}));return{id:e.id,configStore:i,treeStore:r,componentStore:l,merge:o.merge}});function z(t){return S.invoke(K,t)}const q=S.createFactory(({client:t})=>{const e=O.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.id]:n}}});function o(r){const n=e.getState()[r.id];if(n){n.merge({experience:r,strategy:"override"});return}const p=z({client:t,experience:r});s.register(p)}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getById:l,listStore:i}});function _(t){return S.invoke(q,t)}const H=(t,e)=>{e.register(t)},L=(t,e)=>{const{targetSelectors:s}=e.configStore.getState(),o=F.getTargetElements(s,e.id);o.forEach(({elements:l})=>l.forEach(r=>F.tagTargetElement(r,e.id))),F.createAppHosts(o,e.id).forEach(l=>{t.experienceInstances.spawn(e,l)})},A=async t=>{await Promise.all(t.experiences.listStore.getState().map(async e=>{await W(t,e)&&L(t,e)}))},W=async(t,e)=>{const{type:s,decisionLogic:o,targetSelectors:i}=e.configStore.getState();return F.getTargetElements(i,e.id).length<1?!1:s==="funnel"?o?await F.evaluateRuleLogic(t,o)===!0:!1:i.length===0?!1:F.isRulesLogic(o)?await F.evaluateRuleLogic(t,o)===!0:!0},G=(t,e,s)=>{const o=e.name,i=e.setup(t);if(i){const l=s[o]??{};s[o]=Object.freeze({...l,...i})}},Y=f.createDomain("component"),J=S.createFactory(({client:t,component:e,name:s})=>{const o=t.frameworks.getByName(e.frameworkName);return{name:s,component:e,frameworkStore:o}});function Q(t){return S.invoke(J,t)}const X=S.createFactory(({client:t})=>{const e=Y.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:n}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Component '${r}' already registered. Registering again will override the previous registration.`);const w=Q({client:t,name:r,component:n});s.register(w)}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function Z(t){return S.invoke(X,t)}const $=(t,e,s)=>{s.register(t,e)},ee=f.createDomain("framework"),te=S.createFactory(({client:t})=>{const e=ee.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:n.framework}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Framework '${r}' already registered. Registering again will override the previous registration.`),s.register({name:r,framework:n})}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function re(t){return S.invoke(te,t)}const se=(t,e)=>{e.register(t.name,t)},ne=6e3,B=k.createStorageKey("last_ping","global"),oe=t=>`${t}/api/v1/ping`,ie=async t=>{try{const e=Date.now(),s=localStorage.getItem(B);if(s&&e-parseInt(s)<ne)return!0;const o=oe(t.apiUrl),i={projectId:t.projectId,path:window.location.pathname},l=JSON.stringify(i),r={"Content-Type":"application/json"},n=document.getElementById("picked_script"),p=n==null?void 0:n.dataset.verceltoken;p&&(r["x-vercel-protection-bypass"]=p);const c=(await fetch(o,{method:"POST",headers:r,body:l})).ok;return c&&localStorage.setItem(B,e.toString()),c}catch(e){return x.logger("error",e),!1}};function ae(t){const e=typeof window<"u",s={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(s)}const ce=f.createDomain("predicate"),ue=S.createFactory(({client:t})=>{const e=ce.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:{name:n.name,predicate:n.predicate}}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Predicate '${r}' already registered. Registering again will override the previous registration.`),s.register(Object.freeze({name:r,predicate:n}))}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function le(t){return S.invoke(ue,t)}const pe=(t,e,s)=>{s.register(t,e)},j=f.createDomain("feature"),ge=S.createFactory(()=>{const t=j.store({}),e=j.store([]),s=f.createApi(t,{register(c,m){return{...c,[m.id]:m.feature}}});function o(c,m){t.getState()[c]&&x.logger("warn",`Feature '${c}' already registered. Registering again will override the previous registration.`);const g={id:c,feature:{...m,id:c}};s.register(Object.freeze({id:c,feature:g}))}const i=f.createEffect(async({id:c,key:m,storage:a="local"})=>{const g=k.createStorageKey(`feature:${c}:${m}`,"global"),y=(a==="session"?k.sessionStore:k.localStore).get(g).boolean();if(y!==null)return{id:c,bucket:y}}),l=f.createEffect(c=>{if(!c)return null;const m=k.createStorageKey(`feature:${c.id}:${c.key}`,"global");(c.storage==="session"?k.sessionStore:k.localStore).set(m,c.bucket)}),r=new Map,n=f.attach({source:{allFeaturesStore:t,resolvedFeaturesStore:e},effect:async({allFeaturesStore:c,resolvedFeaturesStore:m},{id:a,decide:g,key:d})=>{const y=m.find(E=>E.id===a);if(y)return y;const u=c[a];if(!u)throw new Error(`Feature with id '${a}' not found`);const b=r.get(`${a}:${d}`);if(b!==void 0){const E=await b;return{id:u.id,bucket:E,storage:u.feature.storage}}const I=g();r.set(`${a}:${d}`,I);const P=await I;return{id:u.id,bucket:P,storage:u.feature.storage}}});f.sample({clock:s.register,fn:c=>{const{id:m,feature:a}=c;return{id:m,key:a.feature.key,storage:a.feature.storage}},target:i}),f.sample({source:e,clock:[i.doneData,n.doneData],fn:(c,m)=>!m||c.some(a=>a.id===m.id)?c:[...c,m],target:e}),f.sample({source:t,clock:n.doneData,fn:(c,m)=>{var u;const{id:a,bucket:g,storage:d}=m,y=(u=c[a])==null?void 0:u.feature.key;return y?{key:y,id:a,bucket:g,storage:d}:null},target:l});const p=f.combine({allFeaturesStore:t,resolvedFeaturesStore:e}).map(({allFeaturesStore:c,resolvedFeaturesStore:m})=>Object.values(c).map(a=>{const g=m.find(d=>d.id===a.id);return g?{id:a.id,name:a.feature.name,key:a.feature.key,getBucket:()=>({id:a.id,bucket:g.bucket}),isResolved:!0}:{id:a.id,name:a.feature.name,key:a.feature.key,getBucket:async()=>await n(a.feature),isResolved:!1}}));function w(c){return t.map(m=>m[c],{skipVoid:!1})}return{register:o,getByName:w,listStore:p}});function de(){return S.invoke(ge)}const fe=(t,e,s)=>{s.register(t,e)},R=f.createDomain("history");function C(t,e){return{id:V.generateId(`history-entry-${Date.now()}-${Math.random()}}`),node:e,at:Date.now(),experienceId:t}}const me=S.createFactory(()=>{const t=R.store({entries:[]}),e=R.event(),s=R.event(),o=R.event(),i=R.event();t.on(e,(r,n)=>({entries:[...r.entries,C(n.experienceId,n.node)]})),t.on(s,(r,n)=>({entries:[...r.entries.slice(0,-1),C(n.experienceId,n.node)]})),t.on(i,(r,n)=>n);function l(r,n){const p={lastStepIndex:-1,secondLastStepIndex:-1};for(let w=r.length-1;w>=0;w--){const c=r[w],m=c==null?void 0:c.node;if(!(!m||!F.isStepNode(m))&&!(n&&(c==null?void 0:c.experienceId)!==n))if(p.lastStepIndex===-1)p.lastStepIndex=w;else{p.secondLastStepIndex=w;break}}return p}return t.on(o,(r,n)=>{const{secondLastStepIndex:p}=l(r.entries,n.experienceId),w=p!==-1?r.entries.slice(0,p+1):r.entries;return{...r,entries:w}}),{push:e,replace:s,back:o,restore:i,entriesStore:t.map(r=>r.entries)}});function ye(){return S.invoke(me)}const he=()=>f.createEvent(),Se=f.createDomain("field"),ve=S.createFactory(()=>{const t=Se.store({}),e=f.createApi(t,{register(r,n){return{...r,[n.field.id]:n.field}}});function s(r){e.register({field:r})}const o=t.map(r=>Object.values(r));function i(r){return t.map(n=>n[r]||null)}function l(r){return t.map(n=>Object.values(n).find(p=>p.name===r)||null)}return{register:s,getById:i,listStore:o,getByName:l}});function ke(){return S.invoke(ve)}const we=(t,e)=>{e.register(t)},Fe=f.createDomain("response"),be=S.createFactory(({client:t})=>{const e=Fe.store({}),s=f.createEvent(),o=f.createEvent(),i=f.createApi(e,{register(a,g){return{...a,[g.fieldId]:g.response}},registerBatch(a,g){return{...a,...g}},clear(a,g){const{[g]:d,...y}=a;return y},clearAll(){return{}}});function l(a,g){i.register({fieldId:a,response:g})}async function r(a){const g=[];return await Promise.allSettled(Object.entries(a).map(async([d,y])=>{let u=y;const b=t.fields.getById(d).getState();if(!b){g.push({fieldId:d,userMessage:`Field '${d}' not found`,systemMessage:`No field with ID '${d}' exists. Available field IDs are: ${Object.keys(t.fields.listStore.getState()).join(",")}.`,value:u});return}if(b.multiple&&(typeof u=="string"||typeof u=="number"||typeof u=="boolean")&&(u=[u]),b.validation&&!N.isEmpty(b.validation)){const I=await F.evaluateRuleLogic(t,b.validation,{$input:u});if(typeof I=="string"){g.push({fieldId:d,userMessage:I,systemMessage:`Field validation resulted in an error: ${I}.`,value:u});return}if(I===!1){g.push({fieldId:d,userMessage:"This field is invalid",systemMessage:"Field validation resulted in an unspecified error.",value:u});return}}if(b.required&&(typeof u>"u"||u===null||u===""||Array.isArray(u)&&!u.length)){g.push({fieldId:d,userMessage:"This field is required",systemMessage:"Field is required.",value:u});return}if(!b.multiple&&Array.isArray(u)&&u.length>1){g.push({fieldId:d,userMessage:"This field expects a single response",systemMessage:"Field expects a single response.",value:u});return}if(b.options){const I=b.options.map(E=>E.value),P=Array.isArray(u)?u:[u];Array.isArray(u)&&(P.every(E=>I.includes(E))||g.push({fieldId:d,userMessage:"This field expects a valid option",systemMessage:`Field expects a valid option. Valid options are: ${I.join(", ")}`,value:u}))}})),{responsesToCommit:a,validationErrors:g}}async function n(a){const{responsesToCommit:g,validationErrors:d}=await r(a);return d.length?{errors:d}:(i.registerBatch(g),{errors:[]})}const p=e.map(a=>a),w=e.map(a=>Object.keys(a).map(d=>({fieldId:d,value:a[d]})));function c(a){const g=t.fields.getById(a),d=e.map(y=>y[a]||null);return f.combine({f:g,r:d},({f:y,r:u})=>u||(y!=null&&y.defaultValue?y.defaultValue:null))}function m(a){const g=t.fields.getByName(a);return f.combine({f:g,s:e},({f:d,s:y})=>{const u=d&&y[d.id]||null;return u||(d!=null&&d.defaultValue?d.defaultValue:null)})}return f.sample({clock:s,target:i.clearAll}),f.sample({clock:o,target:i.clear}),{register:l,clearAll:s,clear:o,commit:n,getResponsesToCommit:r,listStore:w,getAllStore:p,getByFieldId:c,getByFieldName:m}});function Ie(t){return S.invoke(be,t)}const xe=()=>"0.0.10-next.5";function Ee(){if(v.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!=null&&e.dataset.api)return e.dataset.api}return"https://api.picked.app"}function Re(){if(!v.supportsWindow())return{};const t=new URLSearchParams(window.location.search),e={},s=new Set;for(const[i]of t.entries())i.startsWith("picked-")&&s.add(i);for(const i of s){const l=i.replace("picked-","");e[l]=t.getAll(i)}const o=k.createStorageKey("s");if(s.size>0)k.sessionStore.set(o,e);else{const i=k.sessionStore.get(o);if(i)return i.json()||{}}return e}function Pe(){if(v.supportsCryptoRandomUUID())return crypto.randomUUID();const t=Date.now().toString(36),e=Math.random().toString(36).substring(2,15),s=Math.random().toString(36).substring(2,15),o=Math.random().toString(36).substring(2,15);return`${t}-${e}-${s}-${o}`}const De=()=>({id:Pe()}),Ae=k.createStorageKey("session","global"),$e=()=>{if(!v.supportsLocalStorage())return null;const t=k.localStore.get(Ae);let e=t.isSet()?t.json():null;return e||(e=De(),t.set(e)),e},Be=()=>$e();class D{constructor(e){h(this,"options");h(this,"isReady",!1);h(this,"project");h(this,"plugins",{});h(this,"eventBus",he());h(this,"organizationId");h(this,"projectId");h(this,"apiUrl");h(this,"session");h(this,"searchParams",Re());h(this,"history",ye());h(this,"components",Z({client:this}));h(this,"experienceInstances",F.createExperienceInstanceIndex({client:this}));h(this,"experiences",_({client:this}));h(this,"frameworks",re({client:this}));h(this,"predicates",le({client:this}));h(this,"features",de());h(this,"responses",Ie({client:this}));h(this,"fields",ke());x.logger("info","Picked client initializing."),this.organizationId=e.organizationId,this.projectId=e.projectId,this.options=Object.freeze(e),this.apiUrl=e.apiUrl||Ee(),this.session=Be(),this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.eventBus({type:"initialized",version:xe()}),x.logger("info","Picked client initialized.")}start(){ie(this),(async()=>{v.supportsDocument()&&(document.body&&A(this),await F.domInteractive(),await A(this),this.eventBus({type:"ready"}),this.isReady=!0,this.session&&this.eventBus({type:"session",...this.session}))})()}registerFramework(e){se(e,this.frameworks)}registerComponent(e,s){$(e,s,this.components)}registerPlugin(e){G(this,e,this.plugins)}registerFeature(e,s){fe(e,s,this.features)}registerPredicate(e,s){pe(e,s,this.predicates)}registerField(e){we(e,this.fields)}registerExperience(e){e.component&&$(`experience:${e.id}`,e.component,this.components),H(e,this.experiences)}getStateSnapshot(){return ae(this)}async launchExperienceById(e){const s=this.experiences.getById(e).getState();if(!s){x.logger("warn",`Experience with id '${e}' not found.`);return}L(this,s)}setupPlugins(){var e;(e=this.options.plugins)==null||e.forEach(s=>{if(Array.isArray(s)){s.forEach(i=>{this.registerPlugin(i)});return}const o=typeof s=="function"?s():s;if(Array.isArray(o)){o.forEach(i=>this.registerPlugin(i));return}this.registerPlugin(o)})}setupFeatures(){const e=this.options.features;e&&(Object.entries(e).forEach(([s,o])=>{const i=typeof o=="function"?o():o;this.registerFeature(s,i)}),this.searchParams.feature&&this.searchParams.feature.forEach(s=>{try{const[o,i]=s.split(":");if(!o||!i)return;let l=i;l==="true"&&(l=!0),l==="false"&&(l=!1),this.registerFeature(o,{key:`${l}`,name:o,decide:()=>l,storage:"session"})}catch{}}))}setupPredicates(){const e=this.options.predicates;e&&Object.entries(e).forEach(([s,o])=>{if(typeof o!="function"){x.logger("warn",`Predicate "${s}" is not a function.`);return}this.registerPredicate(s,o)})}getPluginConfig(e){return this.plugins[e]??{}}}h(D,"logger",x.logger);function M(t){var e;return((e=t.options)==null?void 0:e.some(s=>"condition"in s))??!1}function je(t){return t.some(e=>e.condition||M(e))}async function Ce(t,e){return e.length===0||!je(e)?e:(await Promise.all(e.map(async o=>{if(!(o.condition?await F.evaluateRuleLogic(t,o.condition):!0))return null;if(!o.options||!M(o))return o;const r=(await Promise.all(o.options.map(async p=>p.condition?await F.evaluateRuleLogic(t,p.condition)?p:null:p))).filter(p=>p!==null);return r.length===o.options.length?o:r.length===0?null:{...o,options:r}}))).filter(o=>o!==null)}const Oe=t=>{const e=new D(t);return v.bindClient(e),e};exports.evaluateRuleLogic=F.evaluateRuleLogic;exports.isPickedRoot=F.isPickedRoot;exports.createStorageKey=k.createStorageKey;exports.localStore=k.localStore;exports.sessionStore=k.sessionStore;exports.subscribe=k.subscribe;exports.supportsCookies=v.supportsCookies;exports.supportsCryptoRandomUUID=v.supportsCryptoRandomUUID;exports.supportsDocument=v.supportsDocument;exports.supportsHistory=v.supportsHistory;exports.supportsIntersectionObserver=v.supportsIntersectionObserver;exports.supportsLocalStorage=v.supportsLocalStorage;exports.supportsLocation=v.supportsLocation;exports.supportsSessionStorage=v.supportsSessionStorage;exports.supportsShadowRoot=v.supportsShadowRoot;exports.supportsWebComponents=v.supportsWebComponents;exports.supportsWindow=v.supportsWindow;exports.Picked=D;exports.createClient=Oe;exports.getStepFields=Ce;
1
+ "use strict";var T=Object.defineProperty;var U=(t,e,s)=>e in t?T(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var h=(t,e,s)=>U(t,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("effector"),S=require("@withease/factories"),F=require("../experience-instance-D4dHslLZ.cjs"),x=require("../logger-BsmHUUw1.cjs"),w=require("../storage-LI3UdcCr.cjs"),V=require("../id-BKIWbSTy.cjs"),N=require("../object-BbFTsGh3.cjs"),v=require("../supports-YvpQZxbh.cjs"),L=f.createDomain("experience"),z=S.createFactory(({client:t,experience:e})=>{const s=L.store(e),o=f.createApi(s,{merge(n,p){return{...n,...p.experience}}}),i=s.map(n=>({type:n.type,name:n.name,decisionLogic:n.decide,targetSelectors:n.targets})),l=t.components.listStore.map(n=>n.find(p=>p.name===`experience:${e.id}`)||n.find(p=>p.name==="experience"),{skipVoid:!1}),r=s.map(n=>({steps:n.steps,nodes:n.nodes,edges:n.edges,conditionals:n.conditionals}));return{id:e.id,configStore:i,treeStore:r,componentStore:l,merge:o.merge}});function q(t){return S.invoke(z,t)}const K=S.createFactory(({client:t})=>{const e=L.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.id]:n}}});function o(r){const n=e.getState()[r.id];if(n){n.merge({experience:r,strategy:"override"});return}const p=q({client:t,experience:r});s.register(p)}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getById:l,listStore:i}});function _(t){return S.invoke(K,t)}const H=(t,e)=>{e.register(t)},O=(t,e)=>{const{targetSelectors:s}=e.configStore.getState(),o=F.getTargetElements(s,e.id);o.forEach(({elements:l})=>l.forEach(r=>F.tagTargetElement(r,e.id))),F.createAppHosts(o,e.id).forEach(l=>{t.experienceInstances.spawn(e,l)})},$=async t=>{await Promise.all(t.experiences.listStore.getState().map(async e=>{await W(t,e)&&O(t,e)}))},W=async(t,e)=>{const{type:s,decisionLogic:o,targetSelectors:i}=e.configStore.getState();return F.getTargetElements(i,e.id).length<1?!1:s==="funnel"?o?await F.evaluateRuleLogic(t,o)===!0:!1:i.length===0?!1:F.isRulesLogic(o)?await F.evaluateRuleLogic(t,o)===!0:!0},G=(t,e,s)=>{const o=e.name,i=e.setup(t);if(i){const l=s[o]??{};s[o]=Object.freeze({...l,...i})}},J=f.createDomain("component"),Y=S.createFactory(({client:t,component:e,name:s})=>{const o=t.frameworks.getByName(e.frameworkName);return{name:s,component:e,frameworkStore:o}});function Q(t){return S.invoke(Y,t)}const X=S.createFactory(({client:t})=>{const e=J.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:n}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Component '${r}' already registered. Registering again will override the previous registration.`);const k=Q({client:t,name:r,component:n});s.register(k)}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function Z(t){return S.invoke(X,t)}const A=(t,e,s)=>{s.register(t,e)},ee=f.createDomain("framework"),te=S.createFactory(({client:t})=>{const e=ee.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:n.framework}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Framework '${r}' already registered. Registering again will override the previous registration.`),s.register({name:r,framework:n})}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function re(t){return S.invoke(te,t)}const se=(t,e)=>{e.register(t.name,t)},ne=6e3,B=w.createStorageKey("last_ping","global"),oe=t=>`${t}/api/v1/ping`,ie=async t=>{try{const e=Date.now(),s=localStorage.getItem(B);if(s&&e-parseInt(s)<ne)return!0;const o=oe(t.apiUrl),i={projectId:t.projectId,path:window.location.pathname},l=JSON.stringify(i),r={"Content-Type":"application/json"},n=document.getElementById("picked_script"),p=n==null?void 0:n.dataset.verceltoken;p&&(r["x-vercel-protection-bypass"]=p);const c=(await fetch(o,{method:"POST",headers:r,body:l})).ok;return c&&localStorage.setItem(B,e.toString()),c}catch(e){return x.logger("error",e),!1}};function ae(t){const e=typeof window<"u",s={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(s)}const ce=f.createDomain("predicate"),ue=S.createFactory(({client:t})=>{const e=ce.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:{name:n.name,predicate:n.predicate}}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Predicate '${r}' already registered. Registering again will override the previous registration.`),s.register(Object.freeze({name:r,predicate:n}))}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function le(t){return S.invoke(ue,t)}const pe=(t,e,s)=>{s.register(t,e)},j=f.createDomain("feature"),ge=S.createFactory(()=>{const t=j.store({}),e=j.store([]),s=f.createApi(t,{register(c,m){return{...c,[m.id]:m.feature}}});function o(c,m){t.getState()[c]&&x.logger("warn",`Feature '${c}' already registered. Registering again will override the previous registration.`);const g={id:c,feature:{...m,id:c}};s.register(Object.freeze({id:c,feature:g}))}const i=f.createEffect(async({id:c,key:m,storage:a="local"})=>{const g=w.createStorageKey(`feature:${c}:${m}`,"global"),y=(a==="session"?w.sessionStore:w.localStore).get(g).boolean();if(y!==null)return{id:c,bucket:y}}),l=f.createEffect(c=>{if(!c)return null;const m=w.createStorageKey(`feature:${c.id}:${c.key}`,"global");(c.storage==="session"?w.sessionStore:w.localStore).set(m,c.bucket)}),r=new Map,n=f.attach({source:{allFeaturesStore:t,resolvedFeaturesStore:e},effect:async({allFeaturesStore:c,resolvedFeaturesStore:m},{id:a,decide:g,key:d})=>{const y=m.find(E=>E.id===a);if(y)return y;const u=c[a];if(!u)throw new Error(`Feature with id '${a}' not found`);const b=r.get(`${a}:${d}`);if(b){const E=await b;return{id:u.id,bucket:E,storage:u.feature.storage}}const I=g();r.set(`${a}:${d}`,I);const P=await I;return{id:u.id,bucket:P,storage:u.feature.storage}}});f.sample({clock:s.register,fn:c=>{const{id:m,feature:a}=c;return{id:m,key:a.feature.key,storage:a.feature.storage}},target:i}),f.sample({source:e,clock:[i.doneData,n.doneData],fn:(c,m)=>!m||c.some(a=>a.id===m.id)?c:[...c,m],target:e}),f.sample({source:t,clock:n.doneData,fn:(c,m)=>{var u;const{id:a,bucket:g,storage:d}=m,y=(u=c[a])==null?void 0:u.feature.key;return y?{key:y,id:a,bucket:g,storage:d}:null},target:l});const p=f.combine({allFeaturesStore:t,resolvedFeaturesStore:e}).map(({allFeaturesStore:c,resolvedFeaturesStore:m})=>Object.values(c).map(a=>{const g=m.find(d=>d.id===a.id);return g?{id:a.id,name:a.feature.name,key:a.feature.key,getBucket:()=>({id:a.id,bucket:g.bucket}),isResolved:!0}:{id:a.id,name:a.feature.name,key:a.feature.key,getBucket:async()=>await n(a.feature),isResolved:!1}}));function k(c){return t.map(m=>m[c],{skipVoid:!1})}return{register:o,getByName:k,listStore:p}});function de(){return S.invoke(ge)}const fe=(t,e,s)=>{s.register(t,e)},R=f.createDomain("history");function C(t,e){return{id:V.generateId(`history-entry-${Date.now()}-${Math.random()}}`),node:e,at:Date.now(),experienceId:t}}const me=S.createFactory(()=>{const t=R.store({entries:[]}),e=R.event(),s=R.event(),o=R.event(),i=R.event();t.on(e,(r,n)=>({entries:[...r.entries,C(n.experienceId,n.node)]})),t.on(s,(r,n)=>({entries:[...r.entries.slice(0,-1),C(n.experienceId,n.node)]})),t.on(i,(r,n)=>n);function l(r,n){const p={lastStepIndex:-1,secondLastStepIndex:-1};for(let k=r.length-1;k>=0;k--){const c=r[k],m=c==null?void 0:c.node;if(!(!m||!F.isStepNode(m))&&!(n&&(c==null?void 0:c.experienceId)!==n))if(p.lastStepIndex===-1)p.lastStepIndex=k;else{p.secondLastStepIndex=k;break}}return p}return t.on(o,(r,n)=>{const{secondLastStepIndex:p}=l(r.entries,n.experienceId),k=p!==-1?r.entries.slice(0,p+1):r.entries;return{...r,entries:k}}),{push:e,replace:s,back:o,restore:i,entriesStore:t.map(r=>r.entries)}});function ye(){return S.invoke(me)}const he=()=>f.createEvent(),Se=f.createDomain("field"),ve=S.createFactory(()=>{const t=Se.store({}),e=f.createApi(t,{register(r,n){return{...r,[n.field.id]:n.field}}});function s(r){e.register({field:r})}const o=t.map(r=>Object.values(r));function i(r){return t.map(n=>n[r]||null)}function l(r){return t.map(n=>Object.values(n).find(p=>p.name===r)||null)}return{register:s,getById:i,listStore:o,getByName:l}});function ke(){return S.invoke(ve)}const we=(t,e)=>{e.register(t)},Fe=f.createDomain("response"),be=S.createFactory(({client:t})=>{const e=Fe.store({}),s=f.createEvent(),o=f.createEvent(),i=f.createApi(e,{register(a,g){return{...a,[g.fieldId]:g.response}},registerBatch(a,g){return{...a,...g}},clear(a,g){const{[g]:d,...y}=a;return y},clearAll(){return{}}});function l(a,g){i.register({fieldId:a,response:g})}async function r(a){const g=[];return await Promise.allSettled(Object.entries(a).map(async([d,y])=>{let u=y;const b=t.fields.getById(d).getState();if(!b){g.push({fieldId:d,userMessage:`Field '${d}' not found`,systemMessage:`No field with ID '${d}' exists. Available field IDs are: ${Object.keys(t.fields.listStore.getState()).join(",")}.`,value:u});return}if(b.multiple&&(typeof u=="string"||typeof u=="number"||typeof u=="boolean")&&(u=[u]),b.validation&&!N.isEmpty(b.validation)){const I=await F.evaluateRuleLogic(t,b.validation,{$input:u});if(typeof I=="string"){g.push({fieldId:d,userMessage:I,systemMessage:`Field validation resulted in an error: ${I}.`,value:u});return}if(I===!1){g.push({fieldId:d,userMessage:"This field is invalid",systemMessage:"Field validation resulted in an unspecified error.",value:u});return}}if(b.required&&(typeof u>"u"||u===null||u===""||Array.isArray(u)&&!u.length)){g.push({fieldId:d,userMessage:"This field is required",systemMessage:"Field is required.",value:u});return}if(!b.multiple&&Array.isArray(u)&&u.length>1){g.push({fieldId:d,userMessage:"This field expects a single response",systemMessage:"Field expects a single response.",value:u});return}if(b.options){const I=b.options.map(E=>E.value),P=Array.isArray(u)?u:[u];Array.isArray(u)&&(P.every(E=>I.includes(E))||g.push({fieldId:d,userMessage:"This field expects a valid option",systemMessage:`Field expects a valid option. Valid options are: ${I.join(", ")}`,value:u}))}})),{responsesToCommit:a,validationErrors:g}}async function n(a){const{responsesToCommit:g,validationErrors:d}=await r(a);return d.length?{errors:d}:(i.registerBatch(g),{errors:[]})}const p=e.map(a=>a),k=e.map(a=>Object.keys(a).map(d=>({fieldId:d,value:a[d]})));function c(a){const g=t.fields.getById(a),d=e.map(y=>y[a]||null);return f.combine({f:g,r:d},({f:y,r:u})=>u||(y!=null&&y.defaultValue?y.defaultValue:null))}function m(a){const g=t.fields.getByName(a);return f.combine({f:g,s:e},({f:d,s:y})=>{const u=d&&y[d.id]||null;return u||(d!=null&&d.defaultValue?d.defaultValue:null)})}return f.sample({clock:s,target:i.clearAll}),f.sample({clock:o,target:i.clear}),{register:l,clearAll:s,clear:o,commit:n,getResponsesToCommit:r,listStore:k,getAllStore:p,getByFieldId:c,getByFieldName:m}});function Ie(t){return S.invoke(be,t)}const xe=()=>"0.0.10";function Ee(){if(v.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!=null&&e.dataset.api)return e.dataset.api}return"https://api.picked.app"}function Re(){if(!v.supportsWindow())return{};const t=new URLSearchParams(window.location.search),e={},s=new Set;for(const[i]of t.entries())i.startsWith("picked-")&&s.add(i);for(const i of s){const l=i.replace("picked-","");e[l]=t.getAll(i)}const o=w.createStorageKey("s");if(s.size>0)w.sessionStore.set(o,e);else{const i=w.sessionStore.get(o);if(i)return i.json()||{}}return e}function Pe(){if(v.supportsCryptoRandomUUID())return crypto.randomUUID();const t=Date.now().toString(36),e=Math.random().toString(36).substring(2,15),s=Math.random().toString(36).substring(2,15),o=Math.random().toString(36).substring(2,15);return`${t}-${e}-${s}-${o}`}const De=()=>({id:Pe()}),$e=()=>{if(!v.supportsLocalStorage())return null;const t=w.localStore.get("session");let e=t.isSet()?t.json():null;return e||(e=De(),t.set(e)),e},Ae=t=>{const e=$e();return e&&t.eventBus({type:"session",...e}),e};class D{constructor(e){h(this,"options");h(this,"isReady",!1);h(this,"project");h(this,"plugins",{});h(this,"eventBus",he());h(this,"organizationId");h(this,"projectId");h(this,"apiUrl");h(this,"session");h(this,"searchParams",Re());h(this,"history",ye());h(this,"components",Z({client:this}));h(this,"experienceInstances",F.createExperienceInstanceIndex({client:this}));h(this,"experiences",_({client:this}));h(this,"frameworks",re({client:this}));h(this,"predicates",le({client:this}));h(this,"features",de());h(this,"responses",Ie({client:this}));h(this,"fields",ke());x.logger("info","Picked client initializing."),this.organizationId=e.organizationId,this.projectId=e.projectId,this.options=Object.freeze(e),this.apiUrl=e.apiUrl||Ee(),this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.session=Ae(this),this.eventBus({type:"initialized",version:xe()}),x.logger("info","Picked client initialized.")}start(){ie(this),(async()=>{v.supportsDocument()&&(document.body&&await $(this),await F.domInteractive(),await $(this),this.eventBus({type:"ready"}),this.isReady=!0)})()}registerFramework(e){se(e,this.frameworks)}registerComponent(e,s){A(e,s,this.components)}registerPlugin(e){G(this,e,this.plugins)}registerFeature(e,s){fe(e,s,this.features)}registerPredicate(e,s){pe(e,s,this.predicates)}registerField(e){we(e,this.fields)}registerExperience(e){e.component&&A(`experience:${e.id}`,e.component,this.components),H(e,this.experiences)}getStateSnapshot(){return ae(this)}async launchExperienceById(e){const s=this.experiences.getById(e).getState();if(!s){x.logger("warn",`Experience with id '${e}' not found.`);return}O(this,s)}setupPlugins(){var e;(e=this.options.plugins)==null||e.forEach(s=>{if(Array.isArray(s)){s.forEach(i=>{this.registerPlugin(i)});return}const o=typeof s=="function"?s():s;if(Array.isArray(o)){o.forEach(i=>this.registerPlugin(i));return}this.registerPlugin(o)})}setupFeatures(){const e=this.options.features;e&&(Object.entries(e).forEach(([s,o])=>{const i=typeof o=="function"?o():o;this.registerFeature(s,i)}),this.searchParams.feature&&this.searchParams.feature.forEach(s=>{try{const[o,i]=s.split(":");if(!o||!i)return;let l=i;l==="true"&&(l=!0),l==="false"&&(l=!1),this.registerFeature(o,{key:`${l}`,name:o,decide:()=>l,storage:"session"})}catch{}}))}setupPredicates(){const e=this.options.predicates;e&&Object.entries(e).forEach(([s,o])=>{if(typeof o!="function"){x.logger("warn",`Predicate "${s}" is not a function.`);return}this.registerPredicate(s,o)})}getPluginConfig(e){return this.plugins[e]??{}}}h(D,"logger",x.logger);function M(t){var e;return((e=t.options)==null?void 0:e.some(s=>"condition"in s))??!1}function Be(t){return t.some(e=>e.condition||M(e))}async function je(t,e){return e.length===0||!Be(e)?e:(await Promise.all(e.map(async o=>{if(!(o.condition?await F.evaluateRuleLogic(t,o.condition):!0))return null;if(!o.options||!M(o))return o;const r=(await Promise.all(o.options.map(async p=>p.condition?await F.evaluateRuleLogic(t,p.condition)?p:null:p))).filter(p=>p!==null);return r.length===o.options.length?o:r.length===0?null:{...o,options:r}}))).filter(o=>o!==null)}const Ce=t=>{const e=new D(t);return v.bindClient(e),e};exports.evaluateRuleLogic=F.evaluateRuleLogic;exports.isPickedRoot=F.isPickedRoot;exports.createStorageKey=w.createStorageKey;exports.localStore=w.localStore;exports.sessionStore=w.sessionStore;exports.subscribe=w.subscribe;exports.supportsCookies=v.supportsCookies;exports.supportsCryptoRandomUUID=v.supportsCryptoRandomUUID;exports.supportsDocument=v.supportsDocument;exports.supportsHistory=v.supportsHistory;exports.supportsIntersectionObserver=v.supportsIntersectionObserver;exports.supportsLocalStorage=v.supportsLocalStorage;exports.supportsLocation=v.supportsLocation;exports.supportsSessionStorage=v.supportsSessionStorage;exports.supportsShadowRoot=v.supportsShadowRoot;exports.supportsWebComponents=v.supportsWebComponents;exports.supportsWindow=v.supportsWindow;exports.Picked=D;exports.createClient=Ce;exports.getStepFields=je;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("effector"),a=require("../../../storage-LI3UdcCr.cjs"),p=a.createStorageKey("responses","global"),b=({storage:u="local"}={})=>({name:"responses-browser-storage-plugin",setup:s=>{const c=u==="local"?a.localStore:a.sessionStore,g=r.createEffect(async()=>{const e=c.get(p).json();if(!e)return null;Object.entries(e).forEach(([t,o])=>{s.responses.register(t,o)})}),f=r.attach({source:{responses:s.responses.getAllStore,fields:s.fields.listStore},effect:({responses:e,fields:t})=>{const o={};Object.entries(e).forEach(([l,S])=>{var i;const n=t.find(d=>d.id===l);!((i=n==null?void 0:n.policies)!=null&&i.doNotStoreValue)&&(o[l]=S)}),c.set(p,o)}});r.sample({source:s.eventBus,filter:e=>e.type==="initialized",target:g}),r.sample({source:s.responses.getAllStore,target:f})}});exports.responsesBrowserStoragePlugin=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("effector"),l=require("../../../storage-LI3UdcCr.cjs"),c=l.createStorageKey("responses","global"),d=({storage:p="local"}={})=>({name:"responses-browser-storage-plugin",setup:s=>{const r=p==="local"?l.localStore:l.sessionStore,u=o.createEffect(async()=>{const e=r.get(c).json();if(!e)return null;Object.entries(e).forEach(([n,t])=>{s.responses.register(n,t)})}),f=o.createEffect(async e=>{const n=r.get(c).json(),t={};Object.entries(e).forEach(([g,b])=>{var i;const a=s.fields.getById(g).getState();!((i=a==null?void 0:a.policies)!=null&&i.doNotStoreValue)&&(t[g]=b)});const S={...n,...t};r.set(c,S)});o.sample({source:s.eventBus,filter:e=>e.type==="initialized",target:u}),o.sample({source:s.responses.getAllStore,target:f})}});exports.responsesBrowserStoragePlugin=d;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("effector"),k=require("../../experience-instance-DXWLnF-R.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:f,resolve:t}=S(),o=r.createEvent(),s=r.createEvent(),l=r.createEvent(),u=r.createEvent(),p=r.createEvent(),g=c.experiences.listStore.map(e=>e.map(n=>k.createExperienceInstance({client:c,experience:n}))),a=r.createStore({currentExperienceIndex:0,renderedExperiences:[],isComplete:!1}),m=r.createEffect(async({experience:e,availableRenderers:n,startRendererIndex:v=0})=>{if(!e)return null;for(let d=v;d<n.length;d++){const x=n[d],E=e.componentStore.getState();if(E&&(x!=null&&x.isValidComponent(E.component)))return{rendered:await x.render(E.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(u,e=>({...e,isComplete:!0})).reset(o),r.sample({clock:o,target:s}),r.sample({clock:s,source:{experiences:g,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:m}),r.sample({clock:m.doneData,filter:e=>e!==null,fn:e=>e.rendered.body,target:l}),r.sample({clock:l,target:s}),r.sample({clock:m.doneData,filter:e=>e===null,target:p}),r.sample({clock:p,target:s}),r.sample({clock:[s,p,l],source:{experiences:g,state:a},filter:({experiences:e,state:n})=>n.currentExperienceIndex>=e.length,target:u});const I=r.attach({source:a,effect:e=>{e.isComplete&&t(e.renderedExperiences)}});return r.sample({clock:u,target:I}),o(),f}exports.render=C;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("effector"),k=require("../../experience-instance-D4dHslLZ.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:f,resolve:t}=S(),o=r.createEvent(),s=r.createEvent(),l=r.createEvent(),u=r.createEvent(),p=r.createEvent(),g=c.experiences.listStore.map(e=>e.map(n=>k.createExperienceInstance({client:c,experience:n}))),a=r.createStore({currentExperienceIndex:0,renderedExperiences:[],isComplete:!1}),m=r.createEffect(async({experience:e,availableRenderers:n,startRendererIndex:v=0})=>{if(!e)return null;for(let d=v;d<n.length;d++){const x=n[d],E=e.componentStore.getState();if(E&&(x!=null&&x.isValidComponent(E.component)))return{rendered:await x.render(E.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(u,e=>({...e,isComplete:!0})).reset(o),r.sample({clock:o,target:s}),r.sample({clock:s,source:{experiences:g,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:m}),r.sample({clock:m.doneData,filter:e=>e!==null,fn:e=>e.rendered.body,target:l}),r.sample({clock:l,target:s}),r.sample({clock:m.doneData,filter:e=>e===null,target:p}),r.sample({clock:p,target:s}),r.sample({clock:[s,p,l],source:{experiences:g,state:a},filter:({experiences:e,state:n})=>n.currentExperienceIndex>=e.length,target:u});const I=r.attach({source:a,effect:e=>{e.isComplete&&t(e.renderedExperiences)}});return r.sample({clock:u,target:I}),o(),f}exports.render=C;
package/dist/esm/index.js CHANGED
@@ -1,17 +1,17 @@
1
- var G = Object.defineProperty;
2
- var W = (t, e, s) => e in t ? G(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
3
- var h = (t, e, s) => W(t, typeof e != "symbol" ? e + "" : e, s);
4
- import { createDomain as x, createApi as I, createEffect as O, attach as Y, sample as P, combine as A, createEvent as C } from "effector";
1
+ var W = Object.defineProperty;
2
+ var G = (t, e, s) => e in t ? W(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
3
+ var y = (t, e, s) => G(t, typeof e != "symbol" ? e + "" : e, s);
4
+ import { createDomain as x, createApi as I, createEffect as O, attach as J, sample as P, combine as A, createEvent as C } from "effector";
5
5
  import { createFactory as k, invoke as b } from "@withease/factories";
6
- import { g as U, t as J, c as Q, e as R, i as X, a as Z, b as ee, d as te } from "../experience-instance-XlIuqLrL.js";
7
- import { f as gt } from "../experience-instance-XlIuqLrL.js";
6
+ import { g as U, t as Y, c as Q, e as R, i as X, a as Z, b as ee, d as te } from "../experience-instance-BEKoIaYp.js";
7
+ import { f as pt } from "../experience-instance-BEKoIaYp.js";
8
8
  import { l as v } from "../logger-C9a75KZn.js";
9
9
  import { c as $, s as B, l as D } from "../storage-BxBBl9Bw.js";
10
- import { a as mt } from "../storage-BxBBl9Bw.js";
10
+ import { a as ft } from "../storage-BxBBl9Bw.js";
11
11
  import { g as re } from "../id-BW-g3y32.js";
12
12
  import { i as se } from "../object-JwZ58NOH.js";
13
13
  import { s as z, a as ne, b as oe, c as ie, d as ae } from "../supports-BjhuLJ8z.js";
14
- import { h as yt, f as St, j as wt, e as vt, g as kt, i as bt, k as xt } from "../supports-BjhuLJ8z.js";
14
+ import { h as yt, f as ht, j as St, e as wt, g as vt, i as kt, k as bt } from "../supports-BjhuLJ8z.js";
15
15
  const _ = x("experience"), ce = k(
16
16
  ({ client: t, experience: e }) => {
17
17
  const s = _.store(e), o = I(s, {
@@ -83,7 +83,7 @@ const pe = (t, e) => {
83
83
  }, H = (t, e) => {
84
84
  const { targetSelectors: s } = e.configStore.getState(), o = U(s, e.id);
85
85
  o.forEach(
86
- ({ elements: l }) => l.forEach((r) => J(r, e.id))
86
+ ({ elements: l }) => l.forEach((r) => Y(r, e.id))
87
87
  ), Q(o, e.id).forEach((l) => {
88
88
  t.experienceInstances.spawn(e, l);
89
89
  });
@@ -102,7 +102,7 @@ const pe = (t, e) => {
102
102
  const l = s[o] ?? {};
103
103
  s[o] = Object.freeze({ ...l, ...i });
104
104
  }
105
- }, me = x("component"), he = k(
105
+ }, me = x("component"), ye = k(
106
106
  ({ client: t, component: e, name: s }) => {
107
107
  const o = t.frameworks.getByName(e.frameworkName);
108
108
  return {
@@ -112,8 +112,8 @@ const pe = (t, e) => {
112
112
  };
113
113
  }
114
114
  );
115
- function ye(t) {
116
- return b(he, t);
115
+ function he(t) {
116
+ return b(ye, t);
117
117
  }
118
118
  const Se = k(({ client: t }) => {
119
119
  const e = me.store({}), s = I(e, {
@@ -129,8 +129,8 @@ const Se = k(({ client: t }) => {
129
129
  "warn",
130
130
  `Component '${r}' already registered. Registering again will override the previous registration.`
131
131
  );
132
- const y = ye({ client: t, name: r, component: n });
133
- s.register(y);
132
+ const h = he({ client: t, name: r, component: n });
133
+ s.register(h);
134
134
  }
135
135
  const i = e.map((r) => Object.values(r));
136
136
  function l(r) {
@@ -287,7 +287,7 @@ const je = (t, e, s) => {
287
287
  return null;
288
288
  const f = $(`feature:${c.id}:${c.key}`, "global");
289
289
  (c.storage === "session" ? B : D).set(f, c.bucket);
290
- }), r = /* @__PURE__ */ new Map(), n = Y({
290
+ }), r = /* @__PURE__ */ new Map(), n = J({
291
291
  source: { allFeaturesStore: t, resolvedFeaturesStore: e },
292
292
  effect: async ({ allFeaturesStore: c, resolvedFeaturesStore: f }, { id: a, decide: p, key: g }) => {
293
293
  const m = f.find((F) => F.id === a);
@@ -297,7 +297,7 @@ const je = (t, e, s) => {
297
297
  if (!u)
298
298
  throw new Error(`Feature with id '${a}' not found`);
299
299
  const S = r.get(`${a}:${g}`);
300
- if (S !== void 0) {
300
+ if (S) {
301
301
  const F = await S;
302
302
  return { id: u.id, bucket: F, storage: u.feature.storage };
303
303
  }
@@ -350,12 +350,12 @@ const je = (t, e, s) => {
350
350
  };
351
351
  })
352
352
  );
353
- function y(c) {
353
+ function h(c) {
354
354
  return t.map((f) => f[c], { skipVoid: !1 });
355
355
  }
356
356
  return {
357
357
  register: o,
358
- getByName: y,
358
+ getByName: h,
359
359
  listStore: d
360
360
  };
361
361
  });
@@ -386,23 +386,23 @@ const Oe = k(() => {
386
386
  })), t.on(i, (r, n) => n);
387
387
  function l(r, n) {
388
388
  const d = { lastStepIndex: -1, secondLastStepIndex: -1 };
389
- for (let y = r.length - 1; y >= 0; y--) {
390
- const c = r[y], f = c == null ? void 0 : c.node;
389
+ for (let h = r.length - 1; h >= 0; h--) {
390
+ const c = r[h], f = c == null ? void 0 : c.node;
391
391
  if (!(!f || !Z(f)) && !(n && (c == null ? void 0 : c.experienceId) !== n))
392
392
  if (d.lastStepIndex === -1)
393
- d.lastStepIndex = y;
393
+ d.lastStepIndex = h;
394
394
  else {
395
- d.secondLastStepIndex = y;
395
+ d.secondLastStepIndex = h;
396
396
  break;
397
397
  }
398
398
  }
399
399
  return d;
400
400
  }
401
401
  return t.on(o, (r, n) => {
402
- const { secondLastStepIndex: d } = l(r.entries, n.experienceId), y = d !== -1 ? r.entries.slice(0, d + 1) : r.entries;
402
+ const { secondLastStepIndex: d } = l(r.entries, n.experienceId), h = d !== -1 ? r.entries.slice(0, d + 1) : r.entries;
403
403
  return {
404
404
  ...r,
405
- entries: y
405
+ entries: h
406
406
  };
407
407
  }), {
408
408
  push: e,
@@ -543,7 +543,7 @@ const Ue = (t, e) => {
543
543
  const { responsesToCommit: p, validationErrors: g } = await r(a);
544
544
  return g.length ? { errors: g } : (i.registerBatch(p), { errors: [] });
545
545
  }
546
- const d = e.map((a) => a), y = e.map((a) => Object.keys(a).map((g) => ({
546
+ const d = e.map((a) => a), h = e.map((a) => Object.keys(a).map((g) => ({
547
547
  fieldId: g,
548
548
  value: a[g]
549
549
  })));
@@ -570,7 +570,7 @@ const Ue = (t, e) => {
570
570
  clear: o,
571
571
  commit: n,
572
572
  getResponsesToCommit: r,
573
- listStore: y,
573
+ listStore: h,
574
574
  getAllStore: d,
575
575
  getByFieldId: c,
576
576
  getByFieldName: f
@@ -579,7 +579,7 @@ const Ue = (t, e) => {
579
579
  function He(t) {
580
580
  return b(_e, t);
581
581
  }
582
- const Ke = () => "0.0.10-next.5";
582
+ const Ke = () => "0.0.10";
583
583
  function qe() {
584
584
  if (z()) {
585
585
  const t = [
@@ -595,7 +595,7 @@ function qe() {
595
595
  }
596
596
  return "https://api.picked.app";
597
597
  }
598
- function Ge() {
598
+ function We() {
599
599
  if (!ne())
600
600
  return {};
601
601
  const t = new URLSearchParams(window.location.search), e = {}, s = /* @__PURE__ */ new Set();
@@ -615,46 +615,49 @@ function Ge() {
615
615
  }
616
616
  return e;
617
617
  }
618
- function We() {
618
+ function Ge() {
619
619
  if (ie())
620
620
  return crypto.randomUUID();
621
621
  const t = Date.now().toString(36), e = Math.random().toString(36).substring(2, 15), s = Math.random().toString(36).substring(2, 15), o = Math.random().toString(36).substring(2, 15);
622
622
  return `${t}-${e}-${s}-${o}`;
623
623
  }
624
- const Ye = () => ({
625
- id: We()
626
- }), Je = $("session", "global"), Qe = () => {
624
+ const Je = () => ({
625
+ id: Ge()
626
+ }), Ye = () => {
627
627
  if (!oe()) return null;
628
- const t = D.get(Je);
628
+ const t = D.get("session");
629
629
  let e = t.isSet() ? t.json() : null;
630
- return e || (e = Ye(), t.set(e)), e;
631
- }, Xe = () => Qe();
630
+ return e || (e = Je(), t.set(e)), e;
631
+ }, Qe = (t) => {
632
+ const e = Ye();
633
+ return e && t.eventBus({ type: "session", ...e }), e;
634
+ };
632
635
  class K {
633
636
  constructor(e) {
634
- h(this, "options");
635
- h(this, "isReady", !1);
636
- h(this, "project");
637
- h(this, "plugins", {});
638
- h(this, "eventBus", Te());
639
- h(this, "organizationId");
640
- h(this, "projectId");
641
- h(this, "apiUrl");
642
- h(this, "session");
643
- h(this, "searchParams", Ge());
644
- h(this, "history", Me());
645
- h(this, "components", we({ client: this }));
646
- h(this, "experienceInstances", ee({ client: this }));
647
- h(this, "experiences", de({ client: this }));
648
- h(this, "frameworks", be({ client: this }));
649
- h(this, "predicates", Be({ client: this }));
650
- h(this, "features", Ce());
651
- h(this, "responses", He({ client: this }));
652
- h(this, "fields", Le());
653
- v("info", "Picked client initializing."), this.organizationId = e.organizationId, this.projectId = e.projectId, this.options = Object.freeze(e), this.apiUrl = e.apiUrl || qe(), this.session = Xe(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.eventBus({ type: "initialized", version: Ke() }), v("info", "Picked client initialized.");
637
+ y(this, "options");
638
+ y(this, "isReady", !1);
639
+ y(this, "project");
640
+ y(this, "plugins", {});
641
+ y(this, "eventBus", Te());
642
+ y(this, "organizationId");
643
+ y(this, "projectId");
644
+ y(this, "apiUrl");
645
+ y(this, "session");
646
+ y(this, "searchParams", We());
647
+ y(this, "history", Me());
648
+ y(this, "components", we({ client: this }));
649
+ y(this, "experienceInstances", ee({ client: this }));
650
+ y(this, "experiences", de({ client: this }));
651
+ y(this, "frameworks", be({ client: this }));
652
+ y(this, "predicates", Be({ client: this }));
653
+ y(this, "features", Ce());
654
+ y(this, "responses", He({ client: this }));
655
+ y(this, "fields", Le());
656
+ v("info", "Picked client initializing."), this.organizationId = e.organizationId, this.projectId = e.projectId, this.options = Object.freeze(e), this.apiUrl = e.apiUrl || qe(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.session = Qe(this), this.eventBus({ type: "initialized", version: Ke() }), v("info", "Picked client initialized.");
654
657
  }
655
658
  start() {
656
659
  Ee(this), (async () => {
657
- z() && (document.body && M(this), await te(), await M(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session && this.eventBus({ type: "session", ...this.session }));
660
+ z() && (document.body && await M(this), await te(), await M(this), this.eventBus({ type: "ready" }), this.isReady = !0);
658
661
  })();
659
662
  }
660
663
  registerFramework(e) {
@@ -752,16 +755,16 @@ class K {
752
755
  return this.plugins[e] ?? {};
753
756
  }
754
757
  }
755
- h(K, "logger", v);
758
+ y(K, "logger", v);
756
759
  function q(t) {
757
760
  var e;
758
761
  return ((e = t.options) == null ? void 0 : e.some((s) => "condition" in s)) ?? !1;
759
762
  }
760
- function Ze(t) {
763
+ function Xe(t) {
761
764
  return t.some((e) => e.condition || q(e));
762
765
  }
763
- async function ut(t, e) {
764
- return e.length === 0 || !Ze(e) ? e : (await Promise.all(
766
+ async function ct(t, e) {
767
+ return e.length === 0 || !Xe(e) ? e : (await Promise.all(
765
768
  e.map(async (o) => {
766
769
  if (!(o.condition ? await R(t, o.condition) : !0))
767
770
  return null;
@@ -774,29 +777,29 @@ async function ut(t, e) {
774
777
  })
775
778
  )).filter((o) => o !== null);
776
779
  }
777
- const lt = (t) => {
780
+ const ut = (t) => {
778
781
  const e = new K(t);
779
782
  return ae(e), e;
780
783
  };
781
784
  export {
782
785
  K as Picked,
783
- lt as createClient,
786
+ ut as createClient,
784
787
  $ as createStorageKey,
785
788
  R as evaluateRuleLogic,
786
- ut as getStepFields,
787
- gt as isPickedRoot,
789
+ ct as getStepFields,
790
+ pt as isPickedRoot,
788
791
  D as localStore,
789
792
  B as sessionStore,
790
- mt as subscribe,
793
+ ft as subscribe,
791
794
  yt as supportsCookies,
792
795
  ie as supportsCryptoRandomUUID,
793
796
  z as supportsDocument,
794
- St as supportsHistory,
795
- wt as supportsIntersectionObserver,
797
+ ht as supportsHistory,
798
+ St as supportsIntersectionObserver,
796
799
  oe as supportsLocalStorage,
797
- vt as supportsLocation,
798
- kt as supportsSessionStorage,
799
- bt as supportsShadowRoot,
800
- xt as supportsWebComponents,
800
+ wt as supportsLocation,
801
+ vt as supportsSessionStorage,
802
+ kt as supportsShadowRoot,
803
+ bt as supportsWebComponents,
801
804
  ne as supportsWindow
802
805
  };
@@ -1,41 +1,37 @@
1
- import { createEffect as d, attach as m, sample as l } from "effector";
2
- import { c as b, l as h, s as E } from "../../../storage-BxBBl9Bw.js";
3
- const p = b("responses", "global"), y = ({
4
- storage: i = "local"
1
+ import { createEffect as p, sample as i } from "effector";
2
+ import { c as b, l as d, s as y } from "../../../storage-BxBBl9Bw.js";
3
+ const a = b("responses", "global"), R = ({
4
+ storage: g = "local"
5
5
  } = {}) => ({
6
6
  name: "responses-browser-storage-plugin",
7
7
  setup: (e) => {
8
- const n = i === "local" ? h : E, u = d(async () => {
9
- const s = n.get(p).json();
8
+ const t = g === "local" ? d : y, u = p(async () => {
9
+ const s = t.get(a).json();
10
10
  if (!s)
11
11
  return null;
12
- Object.entries(s).forEach(([t, o]) => {
13
- e.responses.register(t, o);
12
+ Object.entries(s).forEach(([r, o]) => {
13
+ e.responses.register(r, o);
14
14
  });
15
- }), f = m({
16
- source: {
17
- responses: e.responses.getAllStore,
18
- fields: e.fields.listStore
19
- },
20
- effect: ({ responses: s, fields: t }) => {
21
- const o = {};
22
- Object.entries(s).forEach(([a, g]) => {
23
- var c;
24
- const r = t.find((S) => S.id === a);
25
- !((c = r == null ? void 0 : r.policies) != null && c.doNotStoreValue) && (o[a] = g);
26
- }), n.set(p, o);
27
- }
15
+ }), f = p(async (s) => {
16
+ const r = t.get(a).json(), o = {};
17
+ Object.entries(s).forEach(([c, m]) => {
18
+ var l;
19
+ const n = e.fields.getById(c).getState();
20
+ !((l = n == null ? void 0 : n.policies) != null && l.doNotStoreValue) && (o[c] = m);
21
+ });
22
+ const S = { ...r, ...o };
23
+ t.set(a, S);
28
24
  });
29
- l({
25
+ i({
30
26
  source: e.eventBus,
31
27
  filter: (s) => s.type === "initialized",
32
28
  target: u
33
- }), l({
29
+ }), i({
34
30
  source: e.responses.getAllStore,
35
31
  target: f
36
32
  });
37
33
  }
38
34
  });
39
35
  export {
40
- y as responsesBrowserStoragePlugin
36
+ R as responsesBrowserStoragePlugin
41
37
  };
@@ -1,5 +1,5 @@
1
1
  import { createEvent as i, createStore as v, createEffect as C, sample as n, attach as S } from "effector";
2
- import { h as F } from "../../experience-instance-XlIuqLrL.js";
2
+ import { h as F } from "../../experience-instance-BEKoIaYp.js";
3
3
  function R() {
4
4
  let c, p;
5
5
  return {
@@ -1,4 +1,4 @@
1
- import { createDomain as ft, createEvent as b, combine as F, createApi as J, sample as S, createEffect as _, attach as A, split as lt } from "effector";
1
+ import { createDomain as ft, createEvent as b, combine as F, createApi as J, sample as S, createEffect as B, attach as _, split as lt } from "effector";
2
2
  import { createFactory as Q, invoke as Y } from "@withease/factories";
3
3
  import { i as pt, s as Z, a as dt } from "./supports-BjhuLJ8z.js";
4
4
  import { l as D } from "./logger-C9a75KZn.js";
@@ -275,18 +275,18 @@ function Et(t, e) {
275
275
  });
276
276
  r.observe(document.body, { childList: !0, subtree: !0 });
277
277
  }
278
- const P = "picked-root", R = "picked-target", It = "picked-root";
278
+ const P = "picked-root", R = "picked-target", kt = "picked-root";
279
279
  function Kt(t, e) {
280
280
  return [
281
281
  ...t,
282
282
  // Target and replace picked-root web components
283
283
  {
284
- selector: `${It}[experience-id="${e}"]`,
284
+ selector: `${kt}[experience-id="${e}"]`,
285
285
  placement: "replace"
286
286
  }
287
287
  ].flatMap((n) => {
288
288
  const i = wt(n.selector).filter(
289
- (a) => !kt(a, e) && !Nt(a, e)
289
+ (a) => !It(a, e) && !Nt(a, e)
290
290
  );
291
291
  return {
292
292
  ...n,
@@ -295,12 +295,12 @@ function Kt(t, e) {
295
295
  });
296
296
  }
297
297
  function Ut(t, e) {
298
- return t.flatMap((r) => r.elements.map((n) => _t(n, r.placement, e)));
298
+ return t.flatMap((r) => r.elements.map((n) => Bt(n, r.placement, e)));
299
299
  }
300
300
  function Vt(t, e) {
301
301
  t.classList.add(R), t.classList.add(`${R}-${e}`);
302
302
  }
303
- function kt(t, e) {
303
+ function It(t, e) {
304
304
  return e ? t.classList.contains(`${R}-${e}`) : t.classList.contains(`${R}`);
305
305
  }
306
306
  function Nt(t, e) {
@@ -310,7 +310,7 @@ function bt(t) {
310
310
  const e = document.createElement("div");
311
311
  return e.style.display = "block", e.classList.add(P), e.classList.add(`${P}-${t}`), e;
312
312
  }
313
- function _t(t, e, r) {
313
+ function Bt(t, e, r) {
314
314
  let n;
315
315
  const i = bt(r);
316
316
  if (t instanceof Document)
@@ -337,13 +337,13 @@ function _t(t, e, r) {
337
337
  }
338
338
  return n;
339
339
  }
340
- function At(t) {
340
+ function _t(t) {
341
341
  return t.type === "conditional";
342
342
  }
343
343
  function $(t) {
344
344
  return t.type === "step";
345
345
  }
346
- function Bt(t) {
346
+ function vt(t) {
347
347
  return t.type === "experience";
348
348
  }
349
349
  function X(t) {
@@ -352,7 +352,7 @@ function X(t) {
352
352
  const et = (t, e, r, n, i = /* @__PURE__ */ new Set()) => i.has(r.id) ? [] : (i.add(r.id), $(r) && !n ? [r] : e.filter((o) => o.sourceNodeId === r.id).flatMap((o) => {
353
353
  const c = t.find((u) => u.id === o.destinationNodeId);
354
354
  return c ? et(t, e, c, !1, i) : [];
355
- })), vt = (t, e, r) => et(t, e, r, !0, /* @__PURE__ */ new Set()), nt = (t, e, r, n, i = /* @__PURE__ */ new Set()) => {
355
+ })), At = (t, e, r) => et(t, e, r, !0, /* @__PURE__ */ new Set()), nt = (t, e, r, n, i = /* @__PURE__ */ new Set()) => {
356
356
  if (i.has(r.id)) return [-1, -1];
357
357
  i.add(r.id);
358
358
  const a = e.filter((u) => u.sourceNodeId === r.id);
@@ -420,7 +420,7 @@ const U = ft("experience-instance"), Ft = Q(
420
420
  ), C = F(
421
421
  e.treeStore,
422
422
  y,
423
- ({ nodes: s, edges: l }, g) => g ? vt(s, l, g) : []
423
+ ({ nodes: s, edges: l }, g) => g ? At(s, l, g) : []
424
424
  ), f = F(
425
425
  e.treeStore,
426
426
  y,
@@ -450,50 +450,50 @@ const U = ft("experience-instance"), Ft = Q(
450
450
  experience: e
451
451
  }))
452
452
  });
453
- const B = _(async () => {
453
+ const v = B(async () => {
454
454
  t.history.back({ experienceId: e.id });
455
- }), L = A({
455
+ }), L = _({
456
456
  source: e.treeStore,
457
457
  effect: async (s, l) => {
458
- const g = s.nodes.find((v) => $(v) && v.stepId === l);
458
+ const g = s.nodes.find((A) => $(A) && A.stepId === l);
459
459
  g && t.history.push({ experienceId: e.id, node: g });
460
460
  }
461
- }), V = A({
461
+ }), V = _({
462
462
  source: y,
463
463
  effect: (s) => {
464
464
  }
465
- }), H = A({
465
+ }), H = _({
466
466
  source: e.treeStore,
467
467
  effect: async ({ nodes: s }) => ot(s)
468
- }), j = A({
468
+ }), j = _({
469
469
  source: e.treeStore,
470
470
  effect: async ({ nodes: s, edges: l }, g) => K(g, s, l)
471
- }), G = A({
471
+ }), G = _({
472
472
  source: e.treeStore,
473
- effect: async ({ nodes: s, edges: l, conditionals: g }, v) => {
474
- if (!v)
473
+ effect: async ({ nodes: s, edges: l, conditionals: g }, A) => {
474
+ if (!A)
475
475
  return;
476
- const q = g.find((ut) => ut.id === v.conditionalId);
476
+ const q = g.find((ut) => ut.id === A.conditionalId);
477
477
  if (!q)
478
478
  return;
479
- const at = v.id, ct = await yt(t, q.condition);
479
+ const at = A.id, ct = await yt(t, q.condition);
480
480
  return Tt(!!ct, at, s, l);
481
481
  }
482
- }), st = _((s) => {
482
+ }), st = B((s) => {
483
483
  if (s)
484
484
  return t.launchExperienceById(s.experienceId);
485
- }), W = A({
485
+ }), W = _({
486
486
  source: [y, e.treeStore],
487
487
  effect: async ([s, { nodes: l, edges: g }]) => K(s, l, g)
488
- }), T = A({
488
+ }), T = _({
489
489
  source: [y, e.treeStore],
490
490
  effect: async ([s, { nodes: l, edges: g }]) => K(s, l, g)
491
- }), it = _((s) => {
491
+ }), it = B((s) => {
492
492
  t.history.push({ experienceId: e.id, node: s });
493
493
  });
494
494
  return lt({
495
495
  source: y,
496
- match: (s) => s ? At(s) ? "condition" : $(s) ? "step" : Bt(s) ? "launchExperience" : X(s) ? "origin" : "other" : "none",
496
+ match: (s) => s ? _t(s) ? "condition" : $(s) ? "step" : vt(s) ? "launchExperience" : X(s) ? "origin" : "other" : "none",
497
497
  cases: {
498
498
  none: H,
499
499
  origin: j,
@@ -544,7 +544,16 @@ const U = ft("experience-instance"), Ft = Q(
544
544
  }))
545
545
  }), S({
546
546
  clock: a,
547
- target: B
547
+ target: v
548
+ }), S({
549
+ clock: a,
550
+ source: k,
551
+ filter: Boolean,
552
+ target: t.eventBus.prepend((s) => ({
553
+ type: "step_submit",
554
+ step: s,
555
+ experience: e
556
+ }))
548
557
  }), S({ clock: o, target: L }), S({
549
558
  source: F([
550
559
  G.pending,
@@ -613,8 +622,8 @@ const $t = Q(({ client: t }) => {
613
622
  };
614
623
  },
615
624
  unregister(f, m) {
616
- var B;
617
- const x = m.experienceId, N = (B = f[x]) == null ? void 0 : B.filter(
625
+ var v;
626
+ const x = m.experienceId, N = (v = f[x]) == null ? void 0 : v.filter(
618
627
  (L) => L !== m
619
628
  );
620
629
  return {
@@ -622,19 +631,19 @@ const $t = Q(({ client: t }) => {
622
631
  [x]: N ?? []
623
632
  };
624
633
  }
625
- }), o = _(
634
+ }), o = B(
626
635
  ({ experience: f, target: m }) => Ot({ client: t, experience: f, target: m })
627
- ), c = _((f) => {
636
+ ), c = B((f) => {
628
637
  a.register(f);
629
- }), u = _(
638
+ }), u = B(
630
639
  (f) => {
631
640
  f.target && Et(f.target, () => {
632
641
  i(f);
633
642
  });
634
643
  }
635
- ), h = _((f) => {
644
+ ), h = B((f) => {
636
645
  a.unregister(f);
637
- }), E = _((f) => {
646
+ }), E = B((f) => {
638
647
  const m = f.componentStore.getState();
639
648
  if (!m) {
640
649
  D("warn", "No app component registered. Skipping init.");
@@ -656,9 +665,9 @@ const $t = Q(({ client: t }) => {
656
665
  );
657
666
  return;
658
667
  }
659
- const B = xt(N);
668
+ const v = xt(N);
660
669
  try {
661
- x.render(B, m.component, t, f);
670
+ x.render(v, m.component, t, f);
662
671
  } catch (L) {
663
672
  D("error", L);
664
673
  }
@@ -1 +1 @@
1
- "use strict";const a=require("effector"),D=require("@withease/factories"),F=require("./supports-YvpQZxbh.cjs"),M=require("./logger-BsmHUUw1.cjs"),ce=require("./object-BbFTsGh3.cjs");function ae(e){return typeof e=="number"&&!isNaN(e)}function T(e){return typeof e=="string"}function w(e){return Array.isArray(e)}function z(e){return e instanceof Promise}function V(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===1}function g(e){if(ae(e))return e;const t=parseFloat(`${e}`);return isNaN(t)?0:t}function A(e){return`${e}`}const ue={"==":(e,t)=>e==t,"===":(e,t)=>e===t,"!=":(e,t)=>e!=t,"!==":(e,t)=>e!==t,">":(e,t)=>g(e)>g(t),">=":(e,t)=>g(e)>=g(t),"<":(e,t,r)=>{const n=g(e),i=g(t);if(r===void 0)return n<i;const c=g(r);return n<i&&i<c},"<=":(e,t,r)=>{const n=g(e),i=g(t);if(r===void 0)return n<=i;const c=g(r);return n<=i&&i<=c},"!!":async e=>await I(e),"!":async e=>!await I(e),"%":(e,t)=>g(e)%g(t),log:e=>(console.log(e),e),in:(e,t)=>t?T(t)?t.indexOf(A(e))!==-1:w(t)?t.includes(e):!1:!1,cat:(...e)=>e.map(A).join(""),substr:(e,t,r)=>{const n=A(e),i=g(t);if(r===void 0)return n.substr(i);const c=g(r);if(c<0){const o=n.substr(i);return o.substr(0,o.length+c)}return n.substr(i,c)},"+":(...e)=>e.reduce((t,r)=>g(t)+g(r),0),"*":(...e)=>e.reduce((t,r)=>g(t)*g(r),1),"-":(e,t)=>{const r=g(e);return t===void 0?-r:r-g(t)},"/":(e,t)=>g(e)/g(t),min:(...e)=>Math.min(...e.map(g)),max:(...e)=>Math.max(...e.map(g)),merge:(...e)=>e.reduce((t,r)=>w(r)?t.concat(r):t.concat([r]),[]),var(e,t){const r=arguments.length>1?t:null;if(e===""||e==="."||e===null||e===void 0)return this;if(typeof e=="number"&&Array.isArray(this))return e>=0&&e<this.length?this[e]:r;const n=A(e);if(n===""||n===".")return this;const i=n.split(".");let c=this;for(const o of i){if(c==null)return r;if(Array.isArray(c)){const u=parseInt(o,10);isNaN(u)?c=c[o]:c=c[u]}else c=c[o]}return c!==void 0?c:r},async missing(...e){const t=w(e[0])?e[0]:e,r=[];for(const n of t){const i=await d({var:n},this);(i===null||i==="")&&r.push(`${n}`)}return r},async missing_some(e,t){const r=await d({missing:t},this);if(!w(r)||!w(t))return[];const n=r.filter(T);return t.filter(T).length-n.length>=g(e)?[]:n},invoke(e){return typeof e!="function"?null:e()},regexp_matches(e,t){let r=e,n="";if(w(e)){const[c,o]=e;r=c,n=o}return!T(r)||!T(n)?!1:new RegExp(r,n).test(A(t))},throw(e){throw new Error(A(e))}};async function d(e,t){if(!e)return e;if(z(e))return d(await e,t);if(w(e))return Promise.all(e.map(o=>d(o,t)));if(!V(e))return e;const r=fe(e);let n=r?e[r]??[]:[];switch(w(n)||(n=[n]),r){case"if":case"?:":for(let o=0;o<n.length-1;o+=2)if(await I(await d(n[o],t)))return d(n[o+1],t);return n.length%2===1?d(n[n.length-1],t):null;case"and":{let o=null;for(const u of n)if(o=await d(u,t),!await I(o))return o;return o}case"or":{let o=null;for(const u of n)if(o=await d(u,t),await I(o))return o;return o}case"map":{const o=await d(n[0],t);return w(o)?await Promise.all(o.map(u=>d(n[1],u))):[]}case"filter":{const o=await d(n[0],t);return w(o)?(await Promise.all(o.map(async f=>{const S=await I(await d(n[1],f));return{item:f,shouldInclude:S}}))).filter(({shouldInclude:f})=>f).map(({item:f})=>f):[]}case"reduce":{const o=await d(n[0],t);if(!w(o))return n.length>2?await d(n[2],t):null;const u=n[1];let S=n.length>2?await d(n[2],t):null;for(const x of o)S=await d(u,{current:x,accumulator:S});return S}case"all":{const o=await d(n[0],t);if(!w(o)||o.length===0)return!1;for(const u of o)if(!await I(await d(n[1],u)))return!1;return!0}case"some":{const o=await d(n[0],t);if(!w(o))return!1;for(const u of o)if(await I(await d(n[1],u)))return!0;return!1}case"none":{const o=await d(n[0],t);if(!w(o))return!0;for(const u of o)if(await I(await d(n[1],u)))return!1;return!0}case"catch":try{return await d(n[0],t)}catch(o){return V(o)?await d(o,t):n[1]?await d(n[1],o):o instanceof Error?o.message:o}}const i=await Promise.all(n.map(o=>d(o,t))),c=r?ue[r]:void 0;if(!c)throw new Error(`Unrecognized operation ${r}`);return c.apply(t,i)}async function I(e){return z(e)?I(await e):!(Array.isArray(e)&&e.length===0)&&!!e}function fe(e){return Object.keys(e)[0]}function le(e){return!ce.isEmpty(e)}async function X(e,t,r){const n=e.getStateSnapshot(),i=e.predicates.listStore.getState().reduce((u,f)=>({...u,[f.name]:()=>f.predicate(n)}),{}),c=e.features.listStore.getState().reduce((u,f)=>({...u,[f.id]:async()=>{const{bucket:S}=await f.getBucket();return S}}),{}),o={...r,responses:e.responses.getAllStore.getState(),location:typeof n.location=="object"?{hash:n.location.hash,host:n.location.host,hostname:n.location.hostname,href:n.location.href,origin:n.location.origin,pathname:n.location.pathname,port:n.location.port,protocol:n.location.protocol,search:n.location.search}:void 0,predicates:i,features:c};return await d(t,o)}function pe(e){return!F.supportsWindow()||!F.supportsDocument()?[]:Array.from(window.document.querySelectorAll(e)).filter(t=>t instanceof HTMLElement)}function de(e){if(!F.supportsShadowRoot())throw new Error("Shadow DOM is not supported in this environment");return e.attachShadow({mode:"closed"})}function ge(){return new Promise((e,t)=>{if(!F.supportsDocument()){t();return}document.readyState!=="loading"?e():document.addEventListener("readystatechange",()=>e(),{once:!0})})}function me(e,t){const r=new MutationObserver(n=>{document.contains(e)||(r.disconnect(),t())});r.observe(document.body,{childList:!0,subtree:!0})}const O="picked-root",R="picked-target",he="picked-root";function Se(e,t){return[...e,{selector:`${he}[experience-id="${t}"]`,placement:"replace"}].flatMap(n=>{const i=pe(n.selector).filter(c=>!Ee(c,t)&&!J(c,t));return{...n,elements:i}})}function ye(e,t){return e.flatMap(r=>r.elements.map(n=>Ie(n,r.placement,t)))}function we(e,t){e.classList.add(R),e.classList.add(`${R}-${t}`)}function Ee(e,t){return t?e.classList.contains(`${R}-${t}`):e.classList.contains(`${R}`)}function J(e,t){return t?e.classList.contains(`${O}-${t}`):e.classList.contains(O)}function xe(e){const t=document.createElement("div");return t.style.display="block",t.classList.add(O),t.classList.add(`${O}-${e}`),t}function Ie(e,t,r){let n;const i=xe(r);if(e instanceof Document)n=e.body.appendChild(i);else{switch(t){case"replace":e.replaceWith(i);break;case"before":e.before(i);break;case"after":e.after(i);break;case"prepend":e.prepend(i);break;default:e.append(i);break}n=i}return n}function ke(e){return e.type==="conditional"}function _(e){return e.type==="step"}function Ne(e){return e.type==="experience"}function W(e){return e.type==="origin"}const Q=(e,t,r,n,i=new Set)=>i.has(r.id)?[]:(i.add(r.id),_(r)&&!n?[r]:t.filter(o=>o.sourceNodeId===r.id).flatMap(o=>{const u=e.find(f=>f.id===o.destinationNodeId);return u?Q(e,t,u,!1,i):[]})),be=(e,t,r)=>Q(e,t,r,!0,new Set),Y=(e,t,r,n,i=new Set)=>{if(i.has(r.id))return[-1,-1];i.add(r.id);const c=t.filter(f=>f.sourceNodeId===r.id);if(c.length===0)return[0,0];let o=1/0,u=-1/0;for(const f of c){const S=e.find(k=>k.id===f.destinationNodeId);if(!S)continue;const[x,y]=Y(e,t,S,!1,new Set(i));x!==-1&&(o=Math.min(o,x+1),u=Math.max(u,y+1))}return o===1/0?[-1,-1]:[o,u]},ve=(e,t,r)=>Y(e,t,r,!0,new Set),Z=(e,t,r,n=new Set)=>{if(n.has(r.id))return[-1,-1];if(n.add(r.id),r.type==="origin")return[0,0];const i=t.filter(u=>u.destinationNodeId===r.id);if(i.length===0)return[-1,-1];let c=1/0,o=-1/0;for(const u of i){const f=e.find(y=>y.id===u.sourceNodeId);if(!f)continue;const[S,x]=Z(e,t,f,new Set(n));S!==-1&&(c=Math.min(c,S+1),o=Math.max(o,x+1))}return c===1/0?[-1,-1]:[c,o]},Ae=(e,t,r)=>Z(e,t,r,new Set),ee=e=>e.find(r=>r.type==="origin")||null,j=(e,t,r)=>{if(!e)return ee(t);const n=r.find(c=>c.sourceNodeId===e.id);if(!n)return null;const i=t.find(c=>c.id===n.destinationNodeId);return i||null};async function _e(e,t,r,n){const i=e?"true":"false",c=n.find(o=>o.sourceNodeHandle===i&&o.sourceNodeId===t);return r.find(o=>o.id===(c==null?void 0:c.destinationNodeId))}const q=a.createDomain("experience-instance"),Be=D.createFactory(({client:e,experience:t,target:r})=>{const n=a.createEvent(),i=a.createEvent(),c=a.createEvent(),o=a.createEvent(),u=t.componentStore,f=q.store("transitioning"),S=e.history.entriesStore.map(s=>s.filter(p=>p.experienceId===t.id)),x=S.map(s=>s.filter(p=>_(p.node))),y=S.map(s=>{var p;return((p=s[s.length-1])==null?void 0:p.node)||null}),k=a.combine(t.treeStore,y,({steps:s},p)=>s.find(m=>p&&_(p)&&m.id===p.stepId)||null),P=a.combine(t.treeStore,y,({nodes:s,edges:p},m)=>m?be(s,p,m):[]),l=a.combine(t.treeStore,y,({nodes:s,edges:p},m)=>m?Ae(s,p,m):[-1,-1]),h=a.combine(t.treeStore,y,({nodes:s,edges:p},m)=>m?ve(s,p,m):[-1,-1]),E=q.store(!0),N=a.createApi(E,{open:()=>!0,close:()=>!1,toggle:s=>!s,set:(s,p)=>p});a.sample({source:E,filter:Boolean,target:e.eventBus.prepend(()=>({type:"experience_open",experience:t}))}),a.sample({source:E,filter:s=>!s,target:e.eventBus.prepend(()=>({type:"experience_close",experience:t}))});const b=a.createEffect(async()=>{e.history.back({experienceId:t.id})}),B=a.attach({source:t.treeStore,effect:async(s,p)=>{const m=s.nodes.find(v=>_(v)&&v.stepId===p);m&&e.history.push({experienceId:t.id,node:m})}}),G=a.attach({source:y,effect:s=>{}}),$=a.attach({source:t.treeStore,effect:async({nodes:s})=>ee(s)}),C=a.attach({source:t.treeStore,effect:async({nodes:s,edges:p},m)=>j(m,s,p)}),H=a.attach({source:t.treeStore,effect:async({nodes:s,edges:p,conditionals:m},v)=>{if(!v)return;const U=m.find(ie=>ie.id===v.conditionalId);if(!U)return;const oe=v.id,se=await X(e,U.condition);return _e(!!se,oe,s,p)}}),ne=a.createEffect(s=>{if(s)return e.launchExperienceById(s.experienceId)}),K=a.attach({source:[y,t.treeStore],effect:async([s,{nodes:p,edges:m}])=>j(s,p,m)}),L=a.attach({source:[y,t.treeStore],effect:async([s,{nodes:p,edges:m}])=>j(s,p,m)}),re=a.createEffect(s=>{e.history.push({experienceId:t.id,node:s})});return a.split({source:y,match:s=>s?ke(s)?"condition":_(s)?"step":Ne(s)?"launchExperience":W(s)?"origin":"other":"none",cases:{none:$,origin:C,condition:H,step:G,launchExperience:ne,__:a.createEvent()}}),a.sample({clock:[H.doneData,C.doneData,$.doneData,L.doneData,K.doneData],filter:Boolean,target:re}),a.sample({clock:i,target:L}),a.sample({clock:i,source:k,filter:Boolean,target:e.eventBus.prepend(s=>({type:"step_submit",step:s,experience:t}))}),a.sample({clock:L.done,source:k,filter:Boolean,target:e.eventBus.prepend(s=>({type:"step_submit_success",step:s,experience:t}))}),a.sample({clock:L.fail,source:k,filter:Boolean,target:e.eventBus.prepend(s=>({type:"step_submit_error",step:s,experience:t}))}),a.sample({clock:c,target:b}),a.sample({clock:o,target:B}),a.sample({source:a.combine([H.pending,C.pending,$.pending,L.pending]),fn:s=>s.some(Boolean)?"transitioning":"ready",target:f}),a.sample({clock:G.doneData,source:k,filter:Boolean,target:e.eventBus.prepend(s=>({type:"step_enter",step:s,experience:t}))}),a.sample({source:y,clock:n,filter:s=>s?W(s):!0,target:K}),n(),{id:Math.random().toString(36).substring(7),experienceId:t.id,configStore:t.configStore,target:r,componentStore:u,stateStore:f,isOpenStore:E,open:N.open,close:N.close,toggleOpen:N.toggle,setOpen:N.set,treeStore:t.treeStore,currentNodeStore:y,currentStepStore:k,nextReachableStepNodesStore:P,stepsToOriginStore:l,stepsToLeafStore:h,goToNextStep:i,goToPreviousStep:c,goToStepById:o,stepsHistoryStore:x}});function te(e){return D.invoke(Be,e)}const Le=D.createFactory(({client:e})=>{const t=q.store({}),r=a.createEvent(),n=a.createEvent(),i=a.createEvent(),c=a.createApi(t,{register(l,h){const E=[...l[h.experienceId]??[]];return E.push(h),{...l,[h.experienceId]:E}},unregister(l,h){var b;const E=h.experienceId,N=(b=l[E])==null?void 0:b.filter(B=>B!==h);return{...l,[E]:N??[]}}}),o=a.createEffect(({experience:l,target:h})=>te({client:e,experience:l,target:h})),u=a.createEffect(l=>{c.register(l)}),f=a.createEffect(l=>{l.target&&me(l.target,()=>{i(l)})}),S=a.createEffect(l=>{c.unregister(l)}),x=a.createEffect(l=>{const h=l.componentStore.getState();if(!h){M.logger("warn","No app component registered. Skipping init.");return}const E=h.frameworkStore.getState();if(!E){M.logger("error",`No framework registered for component '${h.name}'. Skipping rendering.`);return}const N=l.target;if(!N){M.logger("error",`No target element registered for experience '${l.experienceId}'. Skipping rendering.`);return}const b=de(N);try{E.render(b,h.component,e,l)}catch(B){M.logger("error",B)}});a.sample({clock:r,target:o}),a.sample({clock:i,target:S}),a.sample({clock:o.doneData,target:[u,f,n]}),a.sample({clock:o.doneData,target:e.eventBus.prepend(l=>({type:"experience_initialized",experienceInstance:l}))}),a.sample({clock:n,target:x});function y(l,h){r({experience:l,target:h})}const k=t.map(l=>Object.values(l).flat());function P(l){return t.map(h=>h[l]||[],{skipVoid:!1})}return{spawn:y,getByExperienceId:P,listStore:k}});function Te(e){return D.invoke(Le,e)}exports.createAppHosts=ye;exports.createExperienceInstance=te;exports.createExperienceInstanceIndex=Te;exports.domInteractive=ge;exports.evaluateRuleLogic=X;exports.getTargetElements=Se;exports.isPickedRoot=J;exports.isRulesLogic=le;exports.isStepNode=_;exports.tagTargetElement=we;
1
+ "use strict";const a=require("effector"),D=require("@withease/factories"),F=require("./supports-YvpQZxbh.cjs"),M=require("./logger-BsmHUUw1.cjs"),ce=require("./object-BbFTsGh3.cjs");function ae(e){return typeof e=="number"&&!isNaN(e)}function T(e){return typeof e=="string"}function w(e){return Array.isArray(e)}function z(e){return e instanceof Promise}function V(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===1}function g(e){if(ae(e))return e;const t=parseFloat(`${e}`);return isNaN(t)?0:t}function A(e){return`${e}`}const ue={"==":(e,t)=>e==t,"===":(e,t)=>e===t,"!=":(e,t)=>e!=t,"!==":(e,t)=>e!==t,">":(e,t)=>g(e)>g(t),">=":(e,t)=>g(e)>=g(t),"<":(e,t,r)=>{const n=g(e),i=g(t);if(r===void 0)return n<i;const c=g(r);return n<i&&i<c},"<=":(e,t,r)=>{const n=g(e),i=g(t);if(r===void 0)return n<=i;const c=g(r);return n<=i&&i<=c},"!!":async e=>await k(e),"!":async e=>!await k(e),"%":(e,t)=>g(e)%g(t),log:e=>(console.log(e),e),in:(e,t)=>t?T(t)?t.indexOf(A(e))!==-1:w(t)?t.includes(e):!1:!1,cat:(...e)=>e.map(A).join(""),substr:(e,t,r)=>{const n=A(e),i=g(t);if(r===void 0)return n.substr(i);const c=g(r);if(c<0){const o=n.substr(i);return o.substr(0,o.length+c)}return n.substr(i,c)},"+":(...e)=>e.reduce((t,r)=>g(t)+g(r),0),"*":(...e)=>e.reduce((t,r)=>g(t)*g(r),1),"-":(e,t)=>{const r=g(e);return t===void 0?-r:r-g(t)},"/":(e,t)=>g(e)/g(t),min:(...e)=>Math.min(...e.map(g)),max:(...e)=>Math.max(...e.map(g)),merge:(...e)=>e.reduce((t,r)=>w(r)?t.concat(r):t.concat([r]),[]),var(e,t){const r=arguments.length>1?t:null;if(e===""||e==="."||e===null||e===void 0)return this;if(typeof e=="number"&&Array.isArray(this))return e>=0&&e<this.length?this[e]:r;const n=A(e);if(n===""||n===".")return this;const i=n.split(".");let c=this;for(const o of i){if(c==null)return r;if(Array.isArray(c)){const u=parseInt(o,10);isNaN(u)?c=c[o]:c=c[u]}else c=c[o]}return c!==void 0?c:r},async missing(...e){const t=w(e[0])?e[0]:e,r=[];for(const n of t){const i=await d({var:n},this);(i===null||i==="")&&r.push(`${n}`)}return r},async missing_some(e,t){const r=await d({missing:t},this);if(!w(r)||!w(t))return[];const n=r.filter(T);return t.filter(T).length-n.length>=g(e)?[]:n},invoke(e){return typeof e!="function"?null:e()},regexp_matches(e,t){let r=e,n="";if(w(e)){const[c,o]=e;r=c,n=o}return!T(r)||!T(n)?!1:new RegExp(r,n).test(A(t))},throw(e){throw new Error(A(e))}};async function d(e,t){if(!e)return e;if(z(e))return d(await e,t);if(w(e))return Promise.all(e.map(o=>d(o,t)));if(!V(e))return e;const r=fe(e);let n=r?e[r]??[]:[];switch(w(n)||(n=[n]),r){case"if":case"?:":for(let o=0;o<n.length-1;o+=2)if(await k(await d(n[o],t)))return d(n[o+1],t);return n.length%2===1?d(n[n.length-1],t):null;case"and":{let o=null;for(const u of n)if(o=await d(u,t),!await k(o))return o;return o}case"or":{let o=null;for(const u of n)if(o=await d(u,t),await k(o))return o;return o}case"map":{const o=await d(n[0],t);return w(o)?await Promise.all(o.map(u=>d(n[1],u))):[]}case"filter":{const o=await d(n[0],t);return w(o)?(await Promise.all(o.map(async f=>{const S=await k(await d(n[1],f));return{item:f,shouldInclude:S}}))).filter(({shouldInclude:f})=>f).map(({item:f})=>f):[]}case"reduce":{const o=await d(n[0],t);if(!w(o))return n.length>2?await d(n[2],t):null;const u=n[1];let S=n.length>2?await d(n[2],t):null;for(const x of o)S=await d(u,{current:x,accumulator:S});return S}case"all":{const o=await d(n[0],t);if(!w(o)||o.length===0)return!1;for(const u of o)if(!await k(await d(n[1],u)))return!1;return!0}case"some":{const o=await d(n[0],t);if(!w(o))return!1;for(const u of o)if(await k(await d(n[1],u)))return!0;return!1}case"none":{const o=await d(n[0],t);if(!w(o))return!0;for(const u of o)if(await k(await d(n[1],u)))return!1;return!0}case"catch":try{return await d(n[0],t)}catch(o){return V(o)?await d(o,t):n[1]?await d(n[1],o):o instanceof Error?o.message:o}}const i=await Promise.all(n.map(o=>d(o,t))),c=r?ue[r]:void 0;if(!c)throw new Error(`Unrecognized operation ${r}`);return c.apply(t,i)}async function k(e){return z(e)?k(await e):!(Array.isArray(e)&&e.length===0)&&!!e}function fe(e){return Object.keys(e)[0]}function le(e){return!ce.isEmpty(e)}async function X(e,t,r){const n=e.getStateSnapshot(),i=e.predicates.listStore.getState().reduce((u,f)=>({...u,[f.name]:()=>f.predicate(n)}),{}),c=e.features.listStore.getState().reduce((u,f)=>({...u,[f.id]:async()=>{const{bucket:S}=await f.getBucket();return S}}),{}),o={...r,responses:e.responses.getAllStore.getState(),location:typeof n.location=="object"?{hash:n.location.hash,host:n.location.host,hostname:n.location.hostname,href:n.location.href,origin:n.location.origin,pathname:n.location.pathname,port:n.location.port,protocol:n.location.protocol,search:n.location.search}:void 0,predicates:i,features:c};return await d(t,o)}function pe(e){return!F.supportsWindow()||!F.supportsDocument()?[]:Array.from(window.document.querySelectorAll(e)).filter(t=>t instanceof HTMLElement)}function de(e){if(!F.supportsShadowRoot())throw new Error("Shadow DOM is not supported in this environment");return e.attachShadow({mode:"closed"})}function ge(){return new Promise((e,t)=>{if(!F.supportsDocument()){t();return}document.readyState!=="loading"?e():document.addEventListener("readystatechange",()=>e(),{once:!0})})}function me(e,t){const r=new MutationObserver(n=>{document.contains(e)||(r.disconnect(),t())});r.observe(document.body,{childList:!0,subtree:!0})}const O="picked-root",R="picked-target",he="picked-root";function Se(e,t){return[...e,{selector:`${he}[experience-id="${t}"]`,placement:"replace"}].flatMap(n=>{const i=pe(n.selector).filter(c=>!Ee(c,t)&&!J(c,t));return{...n,elements:i}})}function ye(e,t){return e.flatMap(r=>r.elements.map(n=>Ie(n,r.placement,t)))}function we(e,t){e.classList.add(R),e.classList.add(`${R}-${t}`)}function Ee(e,t){return t?e.classList.contains(`${R}-${t}`):e.classList.contains(`${R}`)}function J(e,t){return t?e.classList.contains(`${O}-${t}`):e.classList.contains(O)}function xe(e){const t=document.createElement("div");return t.style.display="block",t.classList.add(O),t.classList.add(`${O}-${e}`),t}function Ie(e,t,r){let n;const i=xe(r);if(e instanceof Document)n=e.body.appendChild(i);else{switch(t){case"replace":e.replaceWith(i);break;case"before":e.before(i);break;case"after":e.after(i);break;case"prepend":e.prepend(i);break;default:e.append(i);break}n=i}return n}function ke(e){return e.type==="conditional"}function B(e){return e.type==="step"}function Ne(e){return e.type==="experience"}function W(e){return e.type==="origin"}const Q=(e,t,r,n,i=new Set)=>i.has(r.id)?[]:(i.add(r.id),B(r)&&!n?[r]:t.filter(o=>o.sourceNodeId===r.id).flatMap(o=>{const u=e.find(f=>f.id===o.destinationNodeId);return u?Q(e,t,u,!1,i):[]})),be=(e,t,r)=>Q(e,t,r,!0,new Set),Y=(e,t,r,n,i=new Set)=>{if(i.has(r.id))return[-1,-1];i.add(r.id);const c=t.filter(f=>f.sourceNodeId===r.id);if(c.length===0)return[0,0];let o=1/0,u=-1/0;for(const f of c){const S=e.find(I=>I.id===f.destinationNodeId);if(!S)continue;const[x,y]=Y(e,t,S,!1,new Set(i));x!==-1&&(o=Math.min(o,x+1),u=Math.max(u,y+1))}return o===1/0?[-1,-1]:[o,u]},ve=(e,t,r)=>Y(e,t,r,!0,new Set),Z=(e,t,r,n=new Set)=>{if(n.has(r.id))return[-1,-1];if(n.add(r.id),r.type==="origin")return[0,0];const i=t.filter(u=>u.destinationNodeId===r.id);if(i.length===0)return[-1,-1];let c=1/0,o=-1/0;for(const u of i){const f=e.find(y=>y.id===u.sourceNodeId);if(!f)continue;const[S,x]=Z(e,t,f,new Set(n));S!==-1&&(c=Math.min(c,S+1),o=Math.max(o,x+1))}return c===1/0?[-1,-1]:[c,o]},Ae=(e,t,r)=>Z(e,t,r,new Set),ee=e=>e.find(r=>r.type==="origin")||null,j=(e,t,r)=>{if(!e)return ee(t);const n=r.find(c=>c.sourceNodeId===e.id);if(!n)return null;const i=t.find(c=>c.id===n.destinationNodeId);return i||null};async function Be(e,t,r,n){const i=e?"true":"false",c=n.find(o=>o.sourceNodeHandle===i&&o.sourceNodeId===t);return r.find(o=>o.id===(c==null?void 0:c.destinationNodeId))}const q=a.createDomain("experience-instance"),_e=D.createFactory(({client:e,experience:t,target:r})=>{const n=a.createEvent(),i=a.createEvent(),c=a.createEvent(),o=a.createEvent(),u=t.componentStore,f=q.store("transitioning"),S=e.history.entriesStore.map(s=>s.filter(p=>p.experienceId===t.id)),x=S.map(s=>s.filter(p=>B(p.node))),y=S.map(s=>{var p;return((p=s[s.length-1])==null?void 0:p.node)||null}),I=a.combine(t.treeStore,y,({steps:s},p)=>s.find(m=>p&&B(p)&&m.id===p.stepId)||null),P=a.combine(t.treeStore,y,({nodes:s,edges:p},m)=>m?be(s,p,m):[]),l=a.combine(t.treeStore,y,({nodes:s,edges:p},m)=>m?Ae(s,p,m):[-1,-1]),h=a.combine(t.treeStore,y,({nodes:s,edges:p},m)=>m?ve(s,p,m):[-1,-1]),E=q.store(!0),N=a.createApi(E,{open:()=>!0,close:()=>!1,toggle:s=>!s,set:(s,p)=>p});a.sample({source:E,filter:Boolean,target:e.eventBus.prepend(()=>({type:"experience_open",experience:t}))}),a.sample({source:E,filter:s=>!s,target:e.eventBus.prepend(()=>({type:"experience_close",experience:t}))});const b=a.createEffect(async()=>{e.history.back({experienceId:t.id})}),_=a.attach({source:t.treeStore,effect:async(s,p)=>{const m=s.nodes.find(v=>B(v)&&v.stepId===p);m&&e.history.push({experienceId:t.id,node:m})}}),G=a.attach({source:y,effect:s=>{}}),$=a.attach({source:t.treeStore,effect:async({nodes:s})=>ee(s)}),C=a.attach({source:t.treeStore,effect:async({nodes:s,edges:p},m)=>j(m,s,p)}),H=a.attach({source:t.treeStore,effect:async({nodes:s,edges:p,conditionals:m},v)=>{if(!v)return;const U=m.find(ie=>ie.id===v.conditionalId);if(!U)return;const oe=v.id,se=await X(e,U.condition);return Be(!!se,oe,s,p)}}),ne=a.createEffect(s=>{if(s)return e.launchExperienceById(s.experienceId)}),K=a.attach({source:[y,t.treeStore],effect:async([s,{nodes:p,edges:m}])=>j(s,p,m)}),L=a.attach({source:[y,t.treeStore],effect:async([s,{nodes:p,edges:m}])=>j(s,p,m)}),re=a.createEffect(s=>{e.history.push({experienceId:t.id,node:s})});return a.split({source:y,match:s=>s?ke(s)?"condition":B(s)?"step":Ne(s)?"launchExperience":W(s)?"origin":"other":"none",cases:{none:$,origin:C,condition:H,step:G,launchExperience:ne,__:a.createEvent()}}),a.sample({clock:[H.doneData,C.doneData,$.doneData,L.doneData,K.doneData],filter:Boolean,target:re}),a.sample({clock:i,target:L}),a.sample({clock:i,source:I,filter:Boolean,target:e.eventBus.prepend(s=>({type:"step_submit",step:s,experience:t}))}),a.sample({clock:L.done,source:I,filter:Boolean,target:e.eventBus.prepend(s=>({type:"step_submit_success",step:s,experience:t}))}),a.sample({clock:L.fail,source:I,filter:Boolean,target:e.eventBus.prepend(s=>({type:"step_submit_error",step:s,experience:t}))}),a.sample({clock:c,target:b}),a.sample({clock:c,source:I,filter:Boolean,target:e.eventBus.prepend(s=>({type:"step_submit",step:s,experience:t}))}),a.sample({clock:o,target:_}),a.sample({source:a.combine([H.pending,C.pending,$.pending,L.pending]),fn:s=>s.some(Boolean)?"transitioning":"ready",target:f}),a.sample({clock:G.doneData,source:I,filter:Boolean,target:e.eventBus.prepend(s=>({type:"step_enter",step:s,experience:t}))}),a.sample({source:y,clock:n,filter:s=>s?W(s):!0,target:K}),n(),{id:Math.random().toString(36).substring(7),experienceId:t.id,configStore:t.configStore,target:r,componentStore:u,stateStore:f,isOpenStore:E,open:N.open,close:N.close,toggleOpen:N.toggle,setOpen:N.set,treeStore:t.treeStore,currentNodeStore:y,currentStepStore:I,nextReachableStepNodesStore:P,stepsToOriginStore:l,stepsToLeafStore:h,goToNextStep:i,goToPreviousStep:c,goToStepById:o,stepsHistoryStore:x}});function te(e){return D.invoke(_e,e)}const Le=D.createFactory(({client:e})=>{const t=q.store({}),r=a.createEvent(),n=a.createEvent(),i=a.createEvent(),c=a.createApi(t,{register(l,h){const E=[...l[h.experienceId]??[]];return E.push(h),{...l,[h.experienceId]:E}},unregister(l,h){var b;const E=h.experienceId,N=(b=l[E])==null?void 0:b.filter(_=>_!==h);return{...l,[E]:N??[]}}}),o=a.createEffect(({experience:l,target:h})=>te({client:e,experience:l,target:h})),u=a.createEffect(l=>{c.register(l)}),f=a.createEffect(l=>{l.target&&me(l.target,()=>{i(l)})}),S=a.createEffect(l=>{c.unregister(l)}),x=a.createEffect(l=>{const h=l.componentStore.getState();if(!h){M.logger("warn","No app component registered. Skipping init.");return}const E=h.frameworkStore.getState();if(!E){M.logger("error",`No framework registered for component '${h.name}'. Skipping rendering.`);return}const N=l.target;if(!N){M.logger("error",`No target element registered for experience '${l.experienceId}'. Skipping rendering.`);return}const b=de(N);try{E.render(b,h.component,e,l)}catch(_){M.logger("error",_)}});a.sample({clock:r,target:o}),a.sample({clock:i,target:S}),a.sample({clock:o.doneData,target:[u,f,n]}),a.sample({clock:o.doneData,target:e.eventBus.prepend(l=>({type:"experience_initialized",experienceInstance:l}))}),a.sample({clock:n,target:x});function y(l,h){r({experience:l,target:h})}const I=t.map(l=>Object.values(l).flat());function P(l){return t.map(h=>h[l]||[],{skipVoid:!1})}return{spawn:y,getByExperienceId:P,listStore:I}});function Te(e){return D.invoke(Le,e)}exports.createAppHosts=ye;exports.createExperienceInstance=te;exports.createExperienceInstanceIndex=Te;exports.domInteractive=ge;exports.evaluateRuleLogic=X;exports.getTargetElements=Se;exports.isPickedRoot=J;exports.isRulesLogic=le;exports.isStepNode=B;exports.tagTargetElement=we;
@@ -1 +1 @@
1
- {"version":3,"file":"experience-instance.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience-instance/experience-instance.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAGjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAmB1C,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAC5E,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACtF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;CACzC;AAED,QAAA,MAAM,+BAA+B,oCAKhC;IACD,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,eAAe,CAAA;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8SF,CAAA;AAED,wBAAgB,wBAAwB,CACtC,CAAC,SAAS,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAC/D,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAE/D;AAED,QAAA,MAAM,oCAAoC,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;wBAqI7D,eAAe,UAAU,WAAW;4BAQhC,UAAU,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS/C,CAAA;AAEF,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS,UAAU,CAAC,OAAO,oCAAoC,CAAC,CAAC,CAAC,CAAC,EACpE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,oCAAoC,CAAC,CAEpE"}
1
+ {"version":3,"file":"experience-instance.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience-instance/experience-instance.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAGjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAmB1C,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAC5E,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACtF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;CACzC;AAED,QAAA,MAAM,+BAA+B,oCAKhC;IACD,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,eAAe,CAAA;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyTF,CAAA;AAED,wBAAgB,wBAAwB,CACtC,CAAC,SAAS,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAC/D,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAE/D;AAED,QAAA,MAAM,oCAAoC,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;wBAqI7D,eAAe,UAAU,WAAW;4BAQhC,UAAU,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS/C,CAAA;AAEF,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS,UAAU,CAAC,OAAO,oCAAoC,CAAC,CAAC,CAAC,CAAC,EACpE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,oCAAoC,CAAC,CAEpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,UAAU,EAIhB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,iBAAiB,EAAe,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAGtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAEL,KAAK,SAAS,EAEf,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAMzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAOnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGnD,qBAAa,MAAM;IACjB,MAAM,CAAC,QAAQ,CAAC,MAAM,0FAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,OAAO,UAAQ;IAEf,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAEhD,SAAgB,QAAQ,gEAAmB;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAEjC,QAAQ,CAAC,YAAY,qDAAoB;IAEzC,QAAQ,CAAC,OAAO;;;;;;;;;;;;;;;;MAAkB;IAElC,QAAQ,CAAC,UAAU;;;;;;;;;;;MAAyC;IAC5D,QAAQ,CAAC,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAkD;IAC9E,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA0C;IAC9D,QAAQ,CAAC,UAAU;;;;MAAyC;IAC5D,QAAQ,CAAC,UAAU;;;;;;;;;;MAAyC;IAC5D,QAAQ,CAAC,QAAQ;;;;MAAuB;IACxC,QAAQ,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;MAAwC;IAC1D,QAAQ,CAAC,MAAM;;;;;MAAqB;gBAExB,OAAO,EAAE,mBAAmB;IAmBxC,KAAK,IAAI,IAAI;IAkCb,iBAAiB,CAAC,SAAS,EAAE,SAAS;IAItC,iBAAiB,CAAC,IAAI,EAAE,MAAM,mBAAmB,EAAE,SAAS,EAAE,gBAAgB;IAI9E,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAI9C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAIpD,aAAa,CAAC,KAAK,EAAE,KAAK;IAI1B,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAQhD,gBAAgB,IAAI,aAAa;IAI3B,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/D,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,eAAe;IAgBvB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGzF"}
1
+ {"version":3,"file":"picked.d.ts","sourceRoot":"","sources":["../../src/picked.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,UAAU,EAIhB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,iBAAiB,EAAe,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAGtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAEL,KAAK,SAAS,EAEf,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAMzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAOnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGnD,qBAAa,MAAM;IACjB,MAAM,CAAC,QAAQ,CAAC,MAAM,0FAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,OAAO,UAAQ;IAEf,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAEhD,SAAgB,QAAQ,gEAAmB;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAEjC,QAAQ,CAAC,YAAY,qDAAoB;IAEzC,QAAQ,CAAC,OAAO;;;;;;;;;;;;;;;;MAAkB;IAElC,QAAQ,CAAC,UAAU;;;;;;;;;;;MAAyC;IAC5D,QAAQ,CAAC,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAkD;IAC9E,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA0C;IAC9D,QAAQ,CAAC,UAAU;;;;MAAyC;IAC5D,QAAQ,CAAC,UAAU;;;;;;;;;;MAAyC;IAC5D,QAAQ,CAAC,QAAQ;;;;MAAuB;IACxC,QAAQ,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;MAAwC;IAC1D,QAAQ,CAAC,MAAM;;;;;MAAqB;gBAExB,OAAO,EAAE,mBAAmB;IAoBxC,KAAK,IAAI,IAAI;IA8Bb,iBAAiB,CAAC,SAAS,EAAE,SAAS;IAItC,iBAAiB,CAAC,IAAI,EAAE,MAAM,mBAAmB,EAAE,SAAS,EAAE,gBAAgB;IAI9E,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAI9C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAIpD,aAAa,CAAC,KAAK,EAAE,KAAK;IAI1B,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAQhD,gBAAgB,IAAI,aAAa;IAI3B,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/D,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,eAAe;IAgBvB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/responses-browser-storage/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAK1D,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,eAAO,MAAM,6BAA6B,GAAI,eAE3C,6BAAkC,KAAG,MAiDvC,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/responses-browser-storage/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAK1D,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B;AAED,eAAO,MAAM,6BAA6B,GAAI,eAE3C,6BAAkC,KAAG,MA+CvC,CAAA"}
@@ -1,5 +1,6 @@
1
+ import { Picked } from '../picked';
1
2
  export interface Session {
2
3
  id: string;
3
4
  }
4
- export declare const initialiseSession: () => Session | null;
5
+ export declare const initialiseSession: (client: Picked) => Session | null;
5
6
  //# sourceMappingURL=user-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-session.d.ts","sourceRoot":"","sources":["../../../src/utils/user-session.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;CACX;AAwCD,eAAO,MAAM,iBAAiB,sBAE7B,CAAA"}
1
+ {"version":3,"file":"user-session.d.ts","sourceRoot":"","sources":["../../../src/utils/user-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAIvC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;CACX;AAsCD,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,mBAQ/C,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picked/client",
3
- "version": "0.0.10-next.5",
3
+ "version": "0.0.10",
4
4
  "dependencies": {
5
5
  "@withease/factories": "^1.0.5"
6
6
  },