@picked/client 0.0.10 → 0.0.11

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-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
+ "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.11";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 +1 @@
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
+ "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 +1 @@
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;
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;
package/dist/esm/index.js CHANGED
@@ -1,20 +1,20 @@
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";
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 I, createApi as x, createEffect as O, attach as Y, 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 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";
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";
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 ft } from "../storage-BxBBl9Bw.js";
10
+ import { a as mt } 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 ht, j as St, e as wt, g as vt, i as kt, k as bt } from "../supports-BjhuLJ8z.js";
15
- const _ = x("experience"), ce = k(
14
+ import { h as yt, f as St, j as wt, e as vt, g as kt, i as bt, k as It } from "../supports-BjhuLJ8z.js";
15
+ const _ = I("experience"), ce = k(
16
16
  ({ client: t, experience: e }) => {
17
- const s = _.store(e), o = I(s, {
17
+ const s = _.store(e), o = x(s, {
18
18
  merge(n, d) {
19
19
  return {
20
20
  ...n,
@@ -48,7 +48,7 @@ function ue(t) {
48
48
  return b(ce, t);
49
49
  }
50
50
  const le = k(({ client: t }) => {
51
- const e = _.store({}), s = I(e, {
51
+ const e = _.store({}), s = x(e, {
52
52
  register(r, n) {
53
53
  return {
54
54
  ...r,
@@ -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) => Y(r, e.id))
86
+ ({ elements: l }) => l.forEach((r) => J(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"), ye = k(
105
+ }, me = I("component"), he = k(
106
106
  ({ client: t, component: e, name: s }) => {
107
107
  const o = t.frameworks.getByName(e.frameworkName);
108
108
  return {
@@ -112,11 +112,11 @@ const pe = (t, e) => {
112
112
  };
113
113
  }
114
114
  );
115
- function he(t) {
116
- return b(ye, t);
115
+ function ye(t) {
116
+ return b(he, t);
117
117
  }
118
118
  const Se = k(({ client: t }) => {
119
- const e = me.store({}), s = I(e, {
119
+ const e = me.store({}), s = x(e, {
120
120
  register(r, n) {
121
121
  return {
122
122
  ...r,
@@ -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 h = he({ client: t, name: r, component: n });
133
- s.register(h);
132
+ const y = ye({ client: t, name: r, component: n });
133
+ s.register(y);
134
134
  }
135
135
  const i = e.map((r) => Object.values(r));
136
136
  function l(r) {
@@ -147,8 +147,8 @@ function we(t) {
147
147
  }
148
148
  const T = (t, e, s) => {
149
149
  s.register(t, e);
150
- }, ve = x("framework"), ke = k(({ client: t }) => {
151
- const e = ve.store({}), s = I(e, {
150
+ }, ve = I("framework"), ke = k(({ client: t }) => {
151
+ const e = ve.store({}), s = x(e, {
152
152
  register(r, n) {
153
153
  return {
154
154
  ...r,
@@ -175,12 +175,12 @@ const T = (t, e, s) => {
175
175
  function be(t) {
176
176
  return b(ke, t);
177
177
  }
178
- const xe = (t, e) => {
178
+ const Ie = (t, e) => {
179
179
  e.register(t.name, t);
180
- }, Ie = 6e3, V = $("last_ping", "global"), Fe = (t) => `${t}/api/v1/ping`, Ee = async (t) => {
180
+ }, xe = 6e3, V = $("last_ping", "global"), Fe = (t) => `${t}/api/v1/ping`, Ee = async (t) => {
181
181
  try {
182
182
  const e = Date.now(), s = localStorage.getItem(V);
183
- if (s && e - parseInt(s) < Ie)
183
+ if (s && e - parseInt(s) < xe)
184
184
  return !0;
185
185
  const o = Fe(t.apiUrl), i = {
186
186
  projectId: t.projectId,
@@ -211,8 +211,8 @@ function Pe(t) {
211
211
  };
212
212
  return Object.freeze(s);
213
213
  }
214
- const Re = x("predicate"), $e = k(({ client: t }) => {
215
- const e = Re.store({}), s = I(e, {
214
+ const Re = I("predicate"), $e = k(({ client: t }) => {
215
+ const e = Re.store({}), s = x(e, {
216
216
  register(r, n) {
217
217
  return {
218
218
  ...r,
@@ -244,8 +244,8 @@ function Be(t) {
244
244
  }
245
245
  const je = (t, e, s) => {
246
246
  s.register(t, e);
247
- }, N = x("feature"), Ae = k(() => {
248
- const t = N.store({}), e = N.store([]), s = I(t, {
247
+ }, N = I("feature"), Ae = k(() => {
248
+ const t = N.store({}), e = N.store([]), s = x(t, {
249
249
  register(c, f) {
250
250
  return {
251
251
  ...c,
@@ -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 = J({
290
+ }), r = /* @__PURE__ */ new Map(), n = Y({
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) {
300
+ if (S !== void 0) {
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 h(c) {
353
+ function y(c) {
354
354
  return t.map((f) => f[c], { skipVoid: !1 });
355
355
  }
356
356
  return {
357
357
  register: o,
358
- getByName: h,
358
+ getByName: y,
359
359
  listStore: d
360
360
  };
361
361
  });
@@ -364,7 +364,7 @@ function Ce() {
364
364
  }
365
365
  const De = (t, e, s) => {
366
366
  s.register(t, e);
367
- }, E = x("history");
367
+ }, E = I("history");
368
368
  function L(t, e) {
369
369
  return {
370
370
  // eslint-disable-next-line sonarjs/pseudo-random
@@ -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 h = r.length - 1; h >= 0; h--) {
390
- const c = r[h], f = c == null ? void 0 : c.node;
389
+ for (let y = r.length - 1; y >= 0; y--) {
390
+ const c = r[y], 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 = h;
393
+ d.lastStepIndex = y;
394
394
  else {
395
- d.secondLastStepIndex = h;
395
+ d.secondLastStepIndex = y;
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), h = d !== -1 ? r.entries.slice(0, d + 1) : r.entries;
402
+ const { secondLastStepIndex: d } = l(r.entries, n.experienceId), y = d !== -1 ? r.entries.slice(0, d + 1) : r.entries;
403
403
  return {
404
404
  ...r,
405
- entries: h
405
+ entries: y
406
406
  };
407
407
  }), {
408
408
  push: e,
@@ -415,8 +415,8 @@ const Oe = k(() => {
415
415
  function Me() {
416
416
  return b(Oe);
417
417
  }
418
- const Te = () => C(), Ve = x("field"), Ne = k(() => {
419
- const t = Ve.store({}), e = I(t, {
418
+ const Te = () => C(), Ve = I("field"), Ne = k(() => {
419
+ const t = Ve.store({}), e = x(t, {
420
420
  register(r, n) {
421
421
  return {
422
422
  ...r,
@@ -446,8 +446,8 @@ function Le() {
446
446
  }
447
447
  const Ue = (t, e) => {
448
448
  e.register(t);
449
- }, ze = x("response"), _e = k(({ client: t }) => {
450
- const e = ze.store({}), s = C(), o = C(), i = I(e, {
449
+ }, ze = I("response"), _e = k(({ client: t }) => {
450
+ const e = ze.store({}), s = C(), o = C(), i = x(e, {
451
451
  register(a, p) {
452
452
  return {
453
453
  ...a,
@@ -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), h = e.map((a) => Object.keys(a).map((g) => ({
546
+ const d = e.map((a) => a), y = 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: h,
573
+ listStore: y,
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";
582
+ const Ke = () => "0.0.11";
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 We() {
598
+ function Ge() {
599
599
  if (!ne())
600
600
  return {};
601
601
  const t = new URLSearchParams(window.location.search), e = {}, s = /* @__PURE__ */ new Set();
@@ -615,53 +615,50 @@ function We() {
615
615
  }
616
616
  return e;
617
617
  }
618
- function Ge() {
618
+ function We() {
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 Je = () => ({
625
- id: Ge()
626
- }), Ye = () => {
624
+ const Ye = () => ({
625
+ id: We()
626
+ }), Je = $("session", "global"), Qe = () => {
627
627
  if (!oe()) return null;
628
- const t = D.get("session");
628
+ const t = D.get(Je);
629
629
  let e = t.isSet() ? t.json() : null;
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
- };
630
+ return e || (e = Ye(), t.set(e)), e;
631
+ }, Xe = () => Qe();
635
632
  class K {
636
633
  constructor(e) {
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.");
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.");
657
654
  }
658
655
  start() {
659
656
  Ee(this), (async () => {
660
- z() && (document.body && await M(this), await te(), await M(this), this.eventBus({ type: "ready" }), this.isReady = !0);
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 }));
661
658
  })();
662
659
  }
663
660
  registerFramework(e) {
664
- xe(e, this.frameworks);
661
+ Ie(e, this.frameworks);
665
662
  }
666
663
  registerComponent(e, s) {
667
664
  T(e, s, this.components);
@@ -755,16 +752,16 @@ class K {
755
752
  return this.plugins[e] ?? {};
756
753
  }
757
754
  }
758
- y(K, "logger", v);
755
+ h(K, "logger", v);
759
756
  function q(t) {
760
757
  var e;
761
758
  return ((e = t.options) == null ? void 0 : e.some((s) => "condition" in s)) ?? !1;
762
759
  }
763
- function Xe(t) {
760
+ function Ze(t) {
764
761
  return t.some((e) => e.condition || q(e));
765
762
  }
766
- async function ct(t, e) {
767
- return e.length === 0 || !Xe(e) ? e : (await Promise.all(
763
+ async function ut(t, e) {
764
+ return e.length === 0 || !Ze(e) ? e : (await Promise.all(
768
765
  e.map(async (o) => {
769
766
  if (!(o.condition ? await R(t, o.condition) : !0))
770
767
  return null;
@@ -777,29 +774,29 @@ async function ct(t, e) {
777
774
  })
778
775
  )).filter((o) => o !== null);
779
776
  }
780
- const ut = (t) => {
777
+ const lt = (t) => {
781
778
  const e = new K(t);
782
779
  return ae(e), e;
783
780
  };
784
781
  export {
785
782
  K as Picked,
786
- ut as createClient,
783
+ lt as createClient,
787
784
  $ as createStorageKey,
788
785
  R as evaluateRuleLogic,
789
- ct as getStepFields,
790
- pt as isPickedRoot,
786
+ ut as getStepFields,
787
+ gt as isPickedRoot,
791
788
  D as localStore,
792
789
  B as sessionStore,
793
- ft as subscribe,
790
+ mt as subscribe,
794
791
  yt as supportsCookies,
795
792
  ie as supportsCryptoRandomUUID,
796
793
  z as supportsDocument,
797
- ht as supportsHistory,
798
- St as supportsIntersectionObserver,
794
+ St as supportsHistory,
795
+ wt as supportsIntersectionObserver,
799
796
  oe as supportsLocalStorage,
800
- wt as supportsLocation,
801
- vt as supportsSessionStorage,
802
- kt as supportsShadowRoot,
803
- bt as supportsWebComponents,
797
+ vt as supportsLocation,
798
+ kt as supportsSessionStorage,
799
+ bt as supportsShadowRoot,
800
+ It as supportsWebComponents,
804
801
  ne as supportsWindow
805
802
  };
@@ -1,37 +1,41 @@
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"
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"
5
5
  } = {}) => ({
6
6
  name: "responses-browser-storage-plugin",
7
7
  setup: (e) => {
8
- const t = g === "local" ? d : y, u = p(async () => {
9
- const s = t.get(a).json();
8
+ const n = i === "local" ? h : E, u = d(async () => {
9
+ const s = n.get(p).json();
10
10
  if (!s)
11
11
  return null;
12
- Object.entries(s).forEach(([r, o]) => {
13
- e.responses.register(r, o);
12
+ Object.entries(s).forEach(([t, o]) => {
13
+ e.responses.register(t, o);
14
14
  });
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);
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
+ }
24
28
  });
25
- i({
29
+ l({
26
30
  source: e.eventBus,
27
31
  filter: (s) => s.type === "initialized",
28
32
  target: u
29
- }), i({
33
+ }), l({
30
34
  source: e.responses.getAllStore,
31
35
  target: f
32
36
  });
33
37
  }
34
38
  });
35
39
  export {
36
- R as responsesBrowserStoragePlugin
40
+ y as responsesBrowserStoragePlugin
37
41
  };
@@ -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-BEKoIaYp.js";
2
+ import { h as F } from "../../experience-instance-XlIuqLrL.js";
3
3
  function R() {
4
4
  let c, p;
5
5
  return {
@@ -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 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
+ "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,4 +1,4 @@
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";
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";
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", kt = "picked-root";
278
+ const P = "picked-root", R = "picked-target", It = "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: `${kt}[experience-id="${e}"]`,
284
+ selector: `${It}[experience-id="${e}"]`,
285
285
  placement: "replace"
286
286
  }
287
287
  ].flatMap((n) => {
288
288
  const i = wt(n.selector).filter(
289
- (a) => !It(a, e) && !Nt(a, e)
289
+ (a) => !kt(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) => Bt(n, r.placement, e)));
298
+ return t.flatMap((r) => r.elements.map((n) => _t(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 It(t, e) {
303
+ function kt(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 Bt(t, e, r) {
313
+ function _t(t, e, r) {
314
314
  let n;
315
315
  const i = bt(r);
316
316
  if (t instanceof Document)
@@ -337,13 +337,13 @@ function Bt(t, e, r) {
337
337
  }
338
338
  return n;
339
339
  }
340
- function _t(t) {
340
+ function At(t) {
341
341
  return t.type === "conditional";
342
342
  }
343
343
  function $(t) {
344
344
  return t.type === "step";
345
345
  }
346
- function vt(t) {
346
+ function Bt(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
- })), At = (t, e, r) => et(t, e, r, !0, /* @__PURE__ */ new Set()), nt = (t, e, r, n, i = /* @__PURE__ */ new Set()) => {
355
+ })), vt = (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 ? At(s, l, g) : []
423
+ ({ nodes: s, edges: l }, g) => g ? vt(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 v = B(async () => {
453
+ const B = _(async () => {
454
454
  t.history.back({ experienceId: e.id });
455
- }), L = _({
455
+ }), L = A({
456
456
  source: e.treeStore,
457
457
  effect: async (s, l) => {
458
- const g = s.nodes.find((A) => $(A) && A.stepId === l);
458
+ const g = s.nodes.find((v) => $(v) && v.stepId === l);
459
459
  g && t.history.push({ experienceId: e.id, node: g });
460
460
  }
461
- }), V = _({
461
+ }), V = A({
462
462
  source: y,
463
463
  effect: (s) => {
464
464
  }
465
- }), H = _({
465
+ }), H = A({
466
466
  source: e.treeStore,
467
467
  effect: async ({ nodes: s }) => ot(s)
468
- }), j = _({
468
+ }), j = A({
469
469
  source: e.treeStore,
470
470
  effect: async ({ nodes: s, edges: l }, g) => K(g, s, l)
471
- }), G = _({
471
+ }), G = A({
472
472
  source: e.treeStore,
473
- effect: async ({ nodes: s, edges: l, conditionals: g }, A) => {
474
- if (!A)
473
+ effect: async ({ nodes: s, edges: l, conditionals: g }, v) => {
474
+ if (!v)
475
475
  return;
476
- const q = g.find((ut) => ut.id === A.conditionalId);
476
+ const q = g.find((ut) => ut.id === v.conditionalId);
477
477
  if (!q)
478
478
  return;
479
- const at = A.id, ct = await yt(t, q.condition);
479
+ const at = v.id, ct = await yt(t, q.condition);
480
480
  return Tt(!!ct, at, s, l);
481
481
  }
482
- }), st = B((s) => {
482
+ }), st = _((s) => {
483
483
  if (s)
484
484
  return t.launchExperienceById(s.experienceId);
485
- }), W = _({
485
+ }), W = A({
486
486
  source: [y, e.treeStore],
487
487
  effect: async ([s, { nodes: l, edges: g }]) => K(s, l, g)
488
- }), T = _({
488
+ }), T = A({
489
489
  source: [y, e.treeStore],
490
490
  effect: async ([s, { nodes: l, edges: g }]) => K(s, l, g)
491
- }), it = B((s) => {
491
+ }), it = _((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 ? _t(s) ? "condition" : $(s) ? "step" : vt(s) ? "launchExperience" : X(s) ? "origin" : "other" : "none",
496
+ match: (s) => s ? At(s) ? "condition" : $(s) ? "step" : Bt(s) ? "launchExperience" : X(s) ? "origin" : "other" : "none",
497
497
  cases: {
498
498
  none: H,
499
499
  origin: j,
@@ -544,16 +544,7 @@ const U = ft("experience-instance"), Ft = Q(
544
544
  }))
545
545
  }), S({
546
546
  clock: a,
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
- }))
547
+ target: B
557
548
  }), S({ clock: o, target: L }), S({
558
549
  source: F([
559
550
  G.pending,
@@ -622,8 +613,8 @@ const $t = Q(({ client: t }) => {
622
613
  };
623
614
  },
624
615
  unregister(f, m) {
625
- var v;
626
- const x = m.experienceId, N = (v = f[x]) == null ? void 0 : v.filter(
616
+ var B;
617
+ const x = m.experienceId, N = (B = f[x]) == null ? void 0 : B.filter(
627
618
  (L) => L !== m
628
619
  );
629
620
  return {
@@ -631,19 +622,19 @@ const $t = Q(({ client: t }) => {
631
622
  [x]: N ?? []
632
623
  };
633
624
  }
634
- }), o = B(
625
+ }), o = _(
635
626
  ({ experience: f, target: m }) => Ot({ client: t, experience: f, target: m })
636
- ), c = B((f) => {
627
+ ), c = _((f) => {
637
628
  a.register(f);
638
- }), u = B(
629
+ }), u = _(
639
630
  (f) => {
640
631
  f.target && Et(f.target, () => {
641
632
  i(f);
642
633
  });
643
634
  }
644
- ), h = B((f) => {
635
+ ), h = _((f) => {
645
636
  a.unregister(f);
646
- }), E = B((f) => {
637
+ }), E = _((f) => {
647
638
  const m = f.componentStore.getState();
648
639
  if (!m) {
649
640
  D("warn", "No app component registered. Skipping init.");
@@ -665,9 +656,9 @@ const $t = Q(({ client: t }) => {
665
656
  );
666
657
  return;
667
658
  }
668
- const v = xt(N);
659
+ const B = xt(N);
669
660
  try {
670
- x.render(v, m.component, t, f);
661
+ x.render(B, m.component, t, f);
671
662
  } catch (L) {
672
663
  D("error", L);
673
664
  }
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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
+ {"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 +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;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
+ {"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 +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,MA+CvC,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,MAiDvC,CAAA"}
@@ -1,6 +1,5 @@
1
- import { Picked } from '../picked';
2
1
  export interface Session {
3
2
  id: string;
4
3
  }
5
- export declare const initialiseSession: (client: Picked) => Session | null;
4
+ export declare const initialiseSession: () => Session | null;
6
5
  //# 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":"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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picked/client",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "dependencies": {
5
5
  "@withease/factories": "^1.0.5"
6
6
  },