@picked/client 0.0.10-next.3 → 0.0.10-next.5

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"),k=require("../storage-LI3UdcCr.cjs"),V=require("../id-BKIWbSTy.cjs"),N=require("../object-BbFTsGh3.cjs"),v=require("../supports-YvpQZxbh.cjs"),O=f.createDomain("experience"),K=S.createFactory(({client:t,experience:e})=>{const s=O.store(e),o=f.createApi(s,{merge(n,p){return{...n,...p.experience}}}),i=s.map(n=>({type:n.type,name:n.name,decisionLogic:n.decide,targetSelectors:n.targets})),l=t.components.listStore.map(n=>n.find(p=>p.name===`experience:${e.id}`)||n.find(p=>p.name==="experience"),{skipVoid:!1}),r=s.map(n=>({steps:n.steps,nodes:n.nodes,edges:n.edges,conditionals:n.conditionals}));return{id:e.id,configStore:i,treeStore:r,componentStore:l,merge:o.merge}});function z(t){return S.invoke(K,t)}const q=S.createFactory(({client:t})=>{const e=O.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.id]:n}}});function o(r){const n=e.getState()[r.id];if(n){n.merge({experience:r,strategy:"override"});return}const p=z({client:t,experience:r});s.register(p)}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getById:l,listStore:i}});function _(t){return S.invoke(q,t)}const H=(t,e)=>{e.register(t)},L=(t,e)=>{const{targetSelectors:s}=e.configStore.getState(),o=F.getTargetElements(s,e.id);o.forEach(({elements:l})=>l.forEach(r=>F.tagTargetElement(r,e.id))),F.createAppHosts(o,e.id).forEach(l=>{t.experienceInstances.spawn(e,l)})},A=async t=>{await Promise.all(t.experiences.listStore.getState().map(async e=>{await W(t,e)&&L(t,e)}))},W=async(t,e)=>{const{type:s,decisionLogic:o,targetSelectors:i}=e.configStore.getState();return F.getTargetElements(i,e.id).length<1?!1:s==="funnel"?o?await F.evaluateRuleLogic(t,o)===!0:!1:i.length===0?!1:F.isRulesLogic(o)?await F.evaluateRuleLogic(t,o)===!0:!0},G=(t,e,s)=>{const o=e.name,i=e.setup(t);if(i){const l=s[o]??{};s[o]=Object.freeze({...l,...i})}},Y=f.createDomain("component"),J=S.createFactory(({client:t,component:e,name:s})=>{const o=t.frameworks.getByName(e.frameworkName);return{name:s,component:e,frameworkStore:o}});function Q(t){return S.invoke(J,t)}const X=S.createFactory(({client:t})=>{const e=Y.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:n}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Component '${r}' already registered. Registering again will override the previous registration.`);const w=Q({client:t,name:r,component:n});s.register(w)}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function Z(t){return S.invoke(X,t)}const $=(t,e,s)=>{s.register(t,e)},ee=f.createDomain("framework"),te=S.createFactory(({client:t})=>{const e=ee.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:n.framework}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Framework '${r}' already registered. Registering again will override the previous registration.`),s.register({name:r,framework:n})}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function re(t){return S.invoke(te,t)}const se=(t,e)=>{e.register(t.name,t)},ne=6e3,B=k.createStorageKey("last_ping","global"),oe=t=>`${t}/api/v1/ping`,ie=async t=>{try{const e=Date.now(),s=localStorage.getItem(B);if(s&&e-parseInt(s)<ne)return!0;const o=oe(t.apiUrl),i={projectId:t.projectId,path:window.location.pathname},l=JSON.stringify(i),r={"Content-Type":"application/json"},n=document.getElementById("picked_script"),p=n==null?void 0:n.dataset.verceltoken;p&&(r["x-vercel-protection-bypass"]=p);const c=(await fetch(o,{method:"POST",headers:r,body:l})).ok;return c&&localStorage.setItem(B,e.toString()),c}catch(e){return x.logger("error",e),!1}};function ae(t){const e=typeof window<"u",s={client:t,responses:t.responses.listStore.getState(),fields:t.fields.listStore.getState(),location:e?window.location:void 0,document:e?window.document:void 0,sessionStorage:e?window.sessionStorage:void 0,localStorage:e?window.localStorage:void 0};return Object.freeze(s)}const ce=f.createDomain("predicate"),ue=S.createFactory(({client:t})=>{const e=ce.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:{name:n.name,predicate:n.predicate}}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Predicate '${r}' already registered. Registering again will override the previous registration.`),s.register(Object.freeze({name:r,predicate:n}))}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function le(t){return S.invoke(ue,t)}const pe=(t,e,s)=>{s.register(t,e)},j=f.createDomain("feature"),ge=S.createFactory(()=>{const t=j.store({}),e=j.store([]),s=f.createApi(t,{register(c,m){return{...c,[m.id]:m.feature}}});function o(c,m){t.getState()[c]&&x.logger("warn",`Feature '${c}' already registered. Registering again will override the previous registration.`);const g={id:c,feature:{...m,id:c}};s.register(Object.freeze({id:c,feature:g}))}const i=f.createEffect(async({id:c,key:m,storage:a="local"})=>{const g=k.createStorageKey(`feature:${c}:${m}`,"global"),y=(a==="session"?k.sessionStore:k.localStore).get(g).boolean();if(y!==null)return{id:c,bucket:y}}),l=f.createEffect(c=>{if(!c)return null;const m=k.createStorageKey(`feature:${c.id}:${c.key}`,"global");(c.storage==="session"?k.sessionStore:k.localStore).set(m,c.bucket)}),r=new Map,n=f.attach({source:{allFeaturesStore:t,resolvedFeaturesStore:e},effect:async({allFeaturesStore:c,resolvedFeaturesStore:m},{id:a,decide:g,key:d})=>{const y=m.find(E=>E.id===a);if(y)return y;const u=c[a];if(!u)throw new Error(`Feature with id '${a}' not found`);const b=r.get(`${a}:${d}`);if(b!==void 0){const E=await b;return{id:u.id,bucket:E,storage:u.feature.storage}}const I=g();r.set(`${a}:${d}`,I);const P=await I;return{id:u.id,bucket:P,storage:u.feature.storage}}});f.sample({clock:s.register,fn:c=>{const{id:m,feature:a}=c;return{id:m,key:a.feature.key,storage:a.feature.storage}},target:i}),f.sample({source:e,clock:[i.doneData,n.doneData],fn:(c,m)=>!m||c.some(a=>a.id===m.id)?c:[...c,m],target:e}),f.sample({source:t,clock:n.doneData,fn:(c,m)=>{var u;const{id:a,bucket:g,storage:d}=m,y=(u=c[a])==null?void 0:u.feature.key;return y?{key:y,id:a,bucket:g,storage:d}:null},target:l});const p=f.combine({allFeaturesStore:t,resolvedFeaturesStore:e}).map(({allFeaturesStore:c,resolvedFeaturesStore:m})=>Object.values(c).map(a=>{const g=m.find(d=>d.id===a.id);return g?{id:a.id,name:a.feature.name,key:a.feature.key,getBucket:()=>({id:a.id,bucket:g.bucket}),isResolved:!0}:{id:a.id,name:a.feature.name,key:a.feature.key,getBucket:async()=>await n(a.feature),isResolved:!1}}));function w(c){return t.map(m=>m[c],{skipVoid:!1})}return{register:o,getByName:w,listStore:p}});function de(){return S.invoke(ge)}const fe=(t,e,s)=>{s.register(t,e)},R=f.createDomain("history");function C(t,e){return{id:V.generateId(`history-entry-${Date.now()}-${Math.random()}}`),node:e,at:Date.now(),experienceId:t}}const me=S.createFactory(()=>{const t=R.store({entries:[]}),e=R.event(),s=R.event(),o=R.event(),i=R.event();t.on(e,(r,n)=>({entries:[...r.entries,C(n.experienceId,n.node)]})),t.on(s,(r,n)=>({entries:[...r.entries.slice(0,-1),C(n.experienceId,n.node)]})),t.on(i,(r,n)=>n);function l(r,n){const p={lastStepIndex:-1,secondLastStepIndex:-1};for(let w=r.length-1;w>=0;w--){const c=r[w],m=c==null?void 0:c.node;if(!(!m||!F.isStepNode(m))&&!(n&&(c==null?void 0:c.experienceId)!==n))if(p.lastStepIndex===-1)p.lastStepIndex=w;else{p.secondLastStepIndex=w;break}}return p}return t.on(o,(r,n)=>{const{secondLastStepIndex:p}=l(r.entries,n.experienceId),w=p!==-1?r.entries.slice(0,p+1):r.entries;return{...r,entries:w}}),{push:e,replace:s,back:o,restore:i,entriesStore:t.map(r=>r.entries)}});function ye(){return S.invoke(me)}const he=()=>f.createEvent(),Se=f.createDomain("field"),ve=S.createFactory(()=>{const t=Se.store({}),e=f.createApi(t,{register(r,n){return{...r,[n.field.id]:n.field}}});function s(r){e.register({field:r})}const o=t.map(r=>Object.values(r));function i(r){return t.map(n=>n[r]||null)}function l(r){return t.map(n=>Object.values(n).find(p=>p.name===r)||null)}return{register:s,getById:i,listStore:o,getByName:l}});function ke(){return S.invoke(ve)}const we=(t,e)=>{e.register(t)},Fe=f.createDomain("response"),be=S.createFactory(({client:t})=>{const e=Fe.store({}),s=f.createEvent(),o=f.createEvent(),i=f.createApi(e,{register(a,g){return{...a,[g.fieldId]:g.response}},registerBatch(a,g){return{...a,...g}},clear(a,g){const{[g]:d,...y}=a;return y},clearAll(){return{}}});function l(a,g){i.register({fieldId:a,response:g})}async function r(a){const g=[];return await Promise.allSettled(Object.entries(a).map(async([d,y])=>{let u=y;const b=t.fields.getById(d).getState();if(!b){g.push({fieldId:d,userMessage:`Field '${d}' not found`,systemMessage:`No field with ID '${d}' exists. Available field IDs are: ${Object.keys(t.fields.listStore.getState()).join(",")}.`,value:u});return}if(b.multiple&&(typeof u=="string"||typeof u=="number"||typeof u=="boolean")&&(u=[u]),b.validation&&!N.isEmpty(b.validation)){const I=await F.evaluateRuleLogic(t,b.validation,{$input:u});if(typeof I=="string"){g.push({fieldId:d,userMessage:I,systemMessage:`Field validation resulted in an error: ${I}.`,value:u});return}if(I===!1){g.push({fieldId:d,userMessage:"This field is invalid",systemMessage:"Field validation resulted in an unspecified error.",value:u});return}}if(b.required&&(typeof u>"u"||u===null||u===""||Array.isArray(u)&&!u.length)){g.push({fieldId:d,userMessage:"This field is required",systemMessage:"Field is required.",value:u});return}if(!b.multiple&&Array.isArray(u)&&u.length>1){g.push({fieldId:d,userMessage:"This field expects a single response",systemMessage:"Field expects a single response.",value:u});return}if(b.options){const I=b.options.map(E=>E.value),P=Array.isArray(u)?u:[u];Array.isArray(u)&&(P.every(E=>I.includes(E))||g.push({fieldId:d,userMessage:"This field expects a valid option",systemMessage:`Field expects a valid option. Valid options are: ${I.join(", ")}`,value:u}))}})),{responsesToCommit:a,validationErrors:g}}async function n(a){const{responsesToCommit:g,validationErrors:d}=await r(a);return d.length?{errors:d}:(i.registerBatch(g),{errors:[]})}const p=e.map(a=>a),w=e.map(a=>Object.keys(a).map(d=>({fieldId:d,value:a[d]})));function c(a){const g=t.fields.getById(a),d=e.map(y=>y[a]||null);return f.combine({f:g,r:d},({f:y,r:u})=>u||(y!=null&&y.defaultValue?y.defaultValue:null))}function m(a){const g=t.fields.getByName(a);return f.combine({f:g,s:e},({f:d,s:y})=>{const u=d&&y[d.id]||null;return u||(d!=null&&d.defaultValue?d.defaultValue:null)})}return f.sample({clock:s,target:i.clearAll}),f.sample({clock:o,target:i.clear}),{register:l,clearAll:s,clear:o,commit:n,getResponsesToCommit:r,listStore:w,getAllStore:p,getByFieldId:c,getByFieldName:m}});function Ie(t){return S.invoke(be,t)}const xe=()=>"0.0.10-next.3";function Ee(){if(v.supportsDocument()){const t=[document.currentScript,document.getElementById("picked_script"),document.getElementById("picked"),document.getElementById("cvly"),document.getElementById("cvly-x")];for(const e of t)if(e!=null&&e.dataset.api)return e.dataset.api}return"https://api.picked.app"}function Re(){if(!v.supportsWindow())return{};const t=new URLSearchParams(window.location.search),e={},s=new Set;for(const[i]of t.entries())i.startsWith("picked-")&&s.add(i);for(const i of s){const l=i.replace("picked-","");e[l]=t.getAll(i)}const o=k.createStorageKey("s");if(s.size>0)k.sessionStore.set(o,e);else{const i=k.sessionStore.get(o);if(i)return i.json()||{}}return e}function Pe(){if(v.supportsCryptoRandomUUID())return crypto.randomUUID();const t=Date.now().toString(36),e=Math.random().toString(36).substring(2,15),s=Math.random().toString(36).substring(2,15),o=Math.random().toString(36).substring(2,15);return`${t}-${e}-${s}-${o}`}const De=()=>({id:Pe()}),Ae=k.createStorageKey("session","global"),$e=()=>{if(!v.supportsLocalStorage())return null;const t=k.localStore.get(Ae);let e=t.isSet()?t.json():null;return e||(e=De(),t.set(e)),e},Be=()=>$e();class D{constructor(e){h(this,"options");h(this,"isReady",!1);h(this,"project");h(this,"plugins",{});h(this,"eventBus",he());h(this,"organizationId");h(this,"projectId");h(this,"apiUrl");h(this,"session");h(this,"searchParams",Re());h(this,"history",ye());h(this,"components",Z({client:this}));h(this,"experienceInstances",F.createExperienceInstanceIndex({client:this}));h(this,"experiences",_({client:this}));h(this,"frameworks",re({client:this}));h(this,"predicates",le({client:this}));h(this,"features",de());h(this,"responses",Ie({client:this}));h(this,"fields",ke());x.logger("info","Picked client initializing."),this.organizationId=e.organizationId,this.projectId=e.projectId,this.options=Object.freeze(e),this.apiUrl=e.apiUrl||Ee(),this.session=Be(),this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.eventBus({type:"initialized",version:xe()}),x.logger("info","Picked client initialized.")}start(){ie(this),(async()=>{v.supportsDocument()&&(document.body&&A(this),await F.domInteractive(),await A(this),this.eventBus({type:"ready"}),this.isReady=!0,this.session&&this.eventBus({type:"session",...this.session}))})()}registerFramework(e){se(e,this.frameworks)}registerComponent(e,s){$(e,s,this.components)}registerPlugin(e){G(this,e,this.plugins)}registerFeature(e,s){fe(e,s,this.features)}registerPredicate(e,s){pe(e,s,this.predicates)}registerField(e){we(e,this.fields)}registerExperience(e){e.component&&$(`experience:${e.id}`,e.component,this.components),H(e,this.experiences)}getStateSnapshot(){return ae(this)}async launchExperienceById(e){const s=this.experiences.getById(e).getState();if(!s){x.logger("warn",`Experience with id '${e}' not found.`);return}L(this,s)}setupPlugins(){var e;(e=this.options.plugins)==null||e.forEach(s=>{if(Array.isArray(s)){s.forEach(i=>{this.registerPlugin(i)});return}const o=typeof s=="function"?s():s;if(Array.isArray(o)){o.forEach(i=>this.registerPlugin(i));return}this.registerPlugin(o)})}setupFeatures(){const e=this.options.features;e&&(Object.entries(e).forEach(([s,o])=>{const i=typeof o=="function"?o():o;this.registerFeature(s,i)}),this.searchParams.feature&&this.searchParams.feature.forEach(s=>{try{const[o,i]=s.split(":");if(!o||!i)return;let l=i;l==="true"&&(l=!0),l==="false"&&(l=!1),this.registerFeature(o,{key:`${l}`,name:o,decide:()=>l,storage:"session"})}catch{}}))}setupPredicates(){const e=this.options.predicates;e&&Object.entries(e).forEach(([s,o])=>{if(typeof o!="function"){x.logger("warn",`Predicate "${s}" is not a function.`);return}this.registerPredicate(s,o)})}getPluginConfig(e){return this.plugins[e]??{}}}h(D,"logger",x.logger);function M(t){var e;return((e=t.options)==null?void 0:e.some(s=>"condition"in s))??!1}function je(t){return t.some(e=>e.condition||M(e))}async function Ce(t,e){return e.length===0||!je(e)?e:(await Promise.all(e.map(async o=>{if(!(o.condition?await F.evaluateRuleLogic(t,o.condition):!0))return null;if(!o.options||!M(o))return o;const r=(await Promise.all(o.options.map(async p=>p.condition?await F.evaluateRuleLogic(t,p.condition)?p:null:p))).filter(p=>p!==null);return r.length===o.options.length?o:r.length===0?null:{...o,options:r}}))).filter(o=>o!==null)}const Oe=t=>{const e=new D(t);return v.bindClient(e),e};exports.evaluateRuleLogic=F.evaluateRuleLogic;exports.isPickedRoot=F.isPickedRoot;exports.createStorageKey=k.createStorageKey;exports.localStore=k.localStore;exports.sessionStore=k.sessionStore;exports.subscribe=k.subscribe;exports.supportsCookies=v.supportsCookies;exports.supportsCryptoRandomUUID=v.supportsCryptoRandomUUID;exports.supportsDocument=v.supportsDocument;exports.supportsHistory=v.supportsHistory;exports.supportsIntersectionObserver=v.supportsIntersectionObserver;exports.supportsLocalStorage=v.supportsLocalStorage;exports.supportsLocation=v.supportsLocation;exports.supportsSessionStorage=v.supportsSessionStorage;exports.supportsShadowRoot=v.supportsShadowRoot;exports.supportsWebComponents=v.supportsWebComponents;exports.supportsWindow=v.supportsWindow;exports.Picked=D;exports.createClient=Oe;exports.getStepFields=Ce;
1
+ "use strict";var T=Object.defineProperty;var U=(t,e,s)=>e in t?T(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var h=(t,e,s)=>U(t,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("effector"),S=require("@withease/factories"),F=require("../experience-instance-DXWLnF-R.cjs"),x=require("../logger-BsmHUUw1.cjs"),k=require("../storage-LI3UdcCr.cjs"),V=require("../id-BKIWbSTy.cjs"),N=require("../object-BbFTsGh3.cjs"),v=require("../supports-YvpQZxbh.cjs"),O=f.createDomain("experience"),K=S.createFactory(({client:t,experience:e})=>{const s=O.store(e),o=f.createApi(s,{merge(n,p){return{...n,...p.experience}}}),i=s.map(n=>({type:n.type,name:n.name,decisionLogic:n.decide,targetSelectors:n.targets})),l=t.components.listStore.map(n=>n.find(p=>p.name===`experience:${e.id}`)||n.find(p=>p.name==="experience"),{skipVoid:!1}),r=s.map(n=>({steps:n.steps,nodes:n.nodes,edges:n.edges,conditionals:n.conditionals}));return{id:e.id,configStore:i,treeStore:r,componentStore:l,merge:o.merge}});function z(t){return S.invoke(K,t)}const q=S.createFactory(({client:t})=>{const e=O.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.id]:n}}});function o(r){const n=e.getState()[r.id];if(n){n.merge({experience:r,strategy:"override"});return}const p=z({client:t,experience:r});s.register(p)}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getById:l,listStore:i}});function _(t){return S.invoke(q,t)}const H=(t,e)=>{e.register(t)},L=(t,e)=>{const{targetSelectors:s}=e.configStore.getState(),o=F.getTargetElements(s,e.id);o.forEach(({elements:l})=>l.forEach(r=>F.tagTargetElement(r,e.id))),F.createAppHosts(o,e.id).forEach(l=>{t.experienceInstances.spawn(e,l)})},A=async t=>{await Promise.all(t.experiences.listStore.getState().map(async e=>{await W(t,e)&&L(t,e)}))},W=async(t,e)=>{const{type:s,decisionLogic:o,targetSelectors:i}=e.configStore.getState();return F.getTargetElements(i,e.id).length<1?!1:s==="funnel"?o?await F.evaluateRuleLogic(t,o)===!0:!1:i.length===0?!1:F.isRulesLogic(o)?await F.evaluateRuleLogic(t,o)===!0:!0},G=(t,e,s)=>{const o=e.name,i=e.setup(t);if(i){const l=s[o]??{};s[o]=Object.freeze({...l,...i})}},Y=f.createDomain("component"),J=S.createFactory(({client:t,component:e,name:s})=>{const o=t.frameworks.getByName(e.frameworkName);return{name:s,component:e,frameworkStore:o}});function Q(t){return S.invoke(J,t)}const X=S.createFactory(({client:t})=>{const e=Y.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:n}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Component '${r}' already registered. Registering again will override the previous registration.`);const w=Q({client:t,name:r,component:n});s.register(w)}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function Z(t){return S.invoke(X,t)}const $=(t,e,s)=>{s.register(t,e)},ee=f.createDomain("framework"),te=S.createFactory(({client:t})=>{const e=ee.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:n.framework}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Framework '${r}' already registered. Registering again will override the previous registration.`),s.register({name:r,framework:n})}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function re(t){return S.invoke(te,t)}const se=(t,e)=>{e.register(t.name,t)},ne=6e3,B=k.createStorageKey("last_ping","global"),oe=t=>`${t}/api/v1/ping`,ie=async t=>{try{const e=Date.now(),s=localStorage.getItem(B);if(s&&e-parseInt(s)<ne)return!0;const o=oe(t.apiUrl),i={projectId:t.projectId,path:window.location.pathname},l=JSON.stringify(i),r={"Content-Type":"application/json"},n=document.getElementById("picked_script"),p=n==null?void 0:n.dataset.verceltoken;p&&(r["x-vercel-protection-bypass"]=p);const c=(await fetch(o,{method:"POST",headers:r,body:l})).ok;return c&&localStorage.setItem(B,e.toString()),c}catch(e){return x.logger("error",e),!1}};function ae(t){const e=typeof window<"u",s={client:t,responses:t.responses.listStore.getState(),fields:t.fields.listStore.getState(),location:e?window.location:void 0,document:e?window.document:void 0,sessionStorage:e?window.sessionStorage:void 0,localStorage:e?window.localStorage:void 0};return Object.freeze(s)}const ce=f.createDomain("predicate"),ue=S.createFactory(({client:t})=>{const e=ce.store({}),s=f.createApi(e,{register(r,n){return{...r,[n.name]:{name:n.name,predicate:n.predicate}}}});function o(r,n){e.getState()[r]&&x.logger("warn",`Predicate '${r}' already registered. Registering again will override the previous registration.`),s.register(Object.freeze({name:r,predicate:n}))}const i=e.map(r=>Object.values(r));function l(r){return e.map(n=>n[r],{skipVoid:!1})}return{register:o,getByName:l,listStore:i}});function le(t){return S.invoke(ue,t)}const pe=(t,e,s)=>{s.register(t,e)},j=f.createDomain("feature"),ge=S.createFactory(()=>{const t=j.store({}),e=j.store([]),s=f.createApi(t,{register(c,m){return{...c,[m.id]:m.feature}}});function o(c,m){t.getState()[c]&&x.logger("warn",`Feature '${c}' already registered. Registering again will override the previous registration.`);const g={id:c,feature:{...m,id:c}};s.register(Object.freeze({id:c,feature:g}))}const i=f.createEffect(async({id:c,key:m,storage:a="local"})=>{const g=k.createStorageKey(`feature:${c}:${m}`,"global"),y=(a==="session"?k.sessionStore:k.localStore).get(g).boolean();if(y!==null)return{id:c,bucket:y}}),l=f.createEffect(c=>{if(!c)return null;const m=k.createStorageKey(`feature:${c.id}:${c.key}`,"global");(c.storage==="session"?k.sessionStore:k.localStore).set(m,c.bucket)}),r=new Map,n=f.attach({source:{allFeaturesStore:t,resolvedFeaturesStore:e},effect:async({allFeaturesStore:c,resolvedFeaturesStore:m},{id:a,decide:g,key:d})=>{const y=m.find(E=>E.id===a);if(y)return y;const u=c[a];if(!u)throw new Error(`Feature with id '${a}' not found`);const b=r.get(`${a}:${d}`);if(b!==void 0){const E=await b;return{id:u.id,bucket:E,storage:u.feature.storage}}const I=g();r.set(`${a}:${d}`,I);const P=await I;return{id:u.id,bucket:P,storage:u.feature.storage}}});f.sample({clock:s.register,fn:c=>{const{id:m,feature:a}=c;return{id:m,key:a.feature.key,storage:a.feature.storage}},target:i}),f.sample({source:e,clock:[i.doneData,n.doneData],fn:(c,m)=>!m||c.some(a=>a.id===m.id)?c:[...c,m],target:e}),f.sample({source:t,clock:n.doneData,fn:(c,m)=>{var u;const{id:a,bucket:g,storage:d}=m,y=(u=c[a])==null?void 0:u.feature.key;return y?{key:y,id:a,bucket:g,storage:d}:null},target:l});const p=f.combine({allFeaturesStore:t,resolvedFeaturesStore:e}).map(({allFeaturesStore:c,resolvedFeaturesStore:m})=>Object.values(c).map(a=>{const g=m.find(d=>d.id===a.id);return g?{id:a.id,name:a.feature.name,key:a.feature.key,getBucket:()=>({id:a.id,bucket:g.bucket}),isResolved:!0}:{id:a.id,name:a.feature.name,key:a.feature.key,getBucket:async()=>await n(a.feature),isResolved:!1}}));function w(c){return t.map(m=>m[c],{skipVoid:!1})}return{register:o,getByName:w,listStore:p}});function de(){return S.invoke(ge)}const fe=(t,e,s)=>{s.register(t,e)},R=f.createDomain("history");function C(t,e){return{id:V.generateId(`history-entry-${Date.now()}-${Math.random()}}`),node:e,at:Date.now(),experienceId:t}}const me=S.createFactory(()=>{const t=R.store({entries:[]}),e=R.event(),s=R.event(),o=R.event(),i=R.event();t.on(e,(r,n)=>({entries:[...r.entries,C(n.experienceId,n.node)]})),t.on(s,(r,n)=>({entries:[...r.entries.slice(0,-1),C(n.experienceId,n.node)]})),t.on(i,(r,n)=>n);function l(r,n){const p={lastStepIndex:-1,secondLastStepIndex:-1};for(let w=r.length-1;w>=0;w--){const c=r[w],m=c==null?void 0:c.node;if(!(!m||!F.isStepNode(m))&&!(n&&(c==null?void 0:c.experienceId)!==n))if(p.lastStepIndex===-1)p.lastStepIndex=w;else{p.secondLastStepIndex=w;break}}return p}return t.on(o,(r,n)=>{const{secondLastStepIndex:p}=l(r.entries,n.experienceId),w=p!==-1?r.entries.slice(0,p+1):r.entries;return{...r,entries:w}}),{push:e,replace:s,back:o,restore:i,entriesStore:t.map(r=>r.entries)}});function ye(){return S.invoke(me)}const he=()=>f.createEvent(),Se=f.createDomain("field"),ve=S.createFactory(()=>{const t=Se.store({}),e=f.createApi(t,{register(r,n){return{...r,[n.field.id]:n.field}}});function s(r){e.register({field:r})}const o=t.map(r=>Object.values(r));function i(r){return t.map(n=>n[r]||null)}function l(r){return t.map(n=>Object.values(n).find(p=>p.name===r)||null)}return{register:s,getById:i,listStore:o,getByName:l}});function ke(){return S.invoke(ve)}const we=(t,e)=>{e.register(t)},Fe=f.createDomain("response"),be=S.createFactory(({client:t})=>{const e=Fe.store({}),s=f.createEvent(),o=f.createEvent(),i=f.createApi(e,{register(a,g){return{...a,[g.fieldId]:g.response}},registerBatch(a,g){return{...a,...g}},clear(a,g){const{[g]:d,...y}=a;return y},clearAll(){return{}}});function l(a,g){i.register({fieldId:a,response:g})}async function r(a){const g=[];return await Promise.allSettled(Object.entries(a).map(async([d,y])=>{let u=y;const b=t.fields.getById(d).getState();if(!b){g.push({fieldId:d,userMessage:`Field '${d}' not found`,systemMessage:`No field with ID '${d}' exists. Available field IDs are: ${Object.keys(t.fields.listStore.getState()).join(",")}.`,value:u});return}if(b.multiple&&(typeof u=="string"||typeof u=="number"||typeof u=="boolean")&&(u=[u]),b.validation&&!N.isEmpty(b.validation)){const I=await F.evaluateRuleLogic(t,b.validation,{$input:u});if(typeof I=="string"){g.push({fieldId:d,userMessage:I,systemMessage:`Field validation resulted in an error: ${I}.`,value:u});return}if(I===!1){g.push({fieldId:d,userMessage:"This field is invalid",systemMessage:"Field validation resulted in an unspecified error.",value:u});return}}if(b.required&&(typeof u>"u"||u===null||u===""||Array.isArray(u)&&!u.length)){g.push({fieldId:d,userMessage:"This field is required",systemMessage:"Field is required.",value:u});return}if(!b.multiple&&Array.isArray(u)&&u.length>1){g.push({fieldId:d,userMessage:"This field expects a single response",systemMessage:"Field expects a single response.",value:u});return}if(b.options){const I=b.options.map(E=>E.value),P=Array.isArray(u)?u:[u];Array.isArray(u)&&(P.every(E=>I.includes(E))||g.push({fieldId:d,userMessage:"This field expects a valid option",systemMessage:`Field expects a valid option. Valid options are: ${I.join(", ")}`,value:u}))}})),{responsesToCommit:a,validationErrors:g}}async function n(a){const{responsesToCommit:g,validationErrors:d}=await r(a);return d.length?{errors:d}:(i.registerBatch(g),{errors:[]})}const p=e.map(a=>a),w=e.map(a=>Object.keys(a).map(d=>({fieldId:d,value:a[d]})));function c(a){const g=t.fields.getById(a),d=e.map(y=>y[a]||null);return f.combine({f:g,r:d},({f:y,r:u})=>u||(y!=null&&y.defaultValue?y.defaultValue:null))}function m(a){const g=t.fields.getByName(a);return f.combine({f:g,s:e},({f:d,s:y})=>{const u=d&&y[d.id]||null;return u||(d!=null&&d.defaultValue?d.defaultValue:null)})}return f.sample({clock:s,target:i.clearAll}),f.sample({clock:o,target:i.clear}),{register:l,clearAll:s,clear:o,commit:n,getResponsesToCommit:r,listStore:w,getAllStore:p,getByFieldId:c,getByFieldName:m}});function Ie(t){return S.invoke(be,t)}const xe=()=>"0.0.10-next.5";function Ee(){if(v.supportsDocument()){const t=[document.currentScript,document.getElementById("picked_script"),document.getElementById("picked"),document.getElementById("cvly"),document.getElementById("cvly-x")];for(const e of t)if(e!=null&&e.dataset.api)return e.dataset.api}return"https://api.picked.app"}function Re(){if(!v.supportsWindow())return{};const t=new URLSearchParams(window.location.search),e={},s=new Set;for(const[i]of t.entries())i.startsWith("picked-")&&s.add(i);for(const i of s){const l=i.replace("picked-","");e[l]=t.getAll(i)}const o=k.createStorageKey("s");if(s.size>0)k.sessionStore.set(o,e);else{const i=k.sessionStore.get(o);if(i)return i.json()||{}}return e}function Pe(){if(v.supportsCryptoRandomUUID())return crypto.randomUUID();const t=Date.now().toString(36),e=Math.random().toString(36).substring(2,15),s=Math.random().toString(36).substring(2,15),o=Math.random().toString(36).substring(2,15);return`${t}-${e}-${s}-${o}`}const De=()=>({id:Pe()}),Ae=k.createStorageKey("session","global"),$e=()=>{if(!v.supportsLocalStorage())return null;const t=k.localStore.get(Ae);let e=t.isSet()?t.json():null;return e||(e=De(),t.set(e)),e},Be=()=>$e();class D{constructor(e){h(this,"options");h(this,"isReady",!1);h(this,"project");h(this,"plugins",{});h(this,"eventBus",he());h(this,"organizationId");h(this,"projectId");h(this,"apiUrl");h(this,"session");h(this,"searchParams",Re());h(this,"history",ye());h(this,"components",Z({client:this}));h(this,"experienceInstances",F.createExperienceInstanceIndex({client:this}));h(this,"experiences",_({client:this}));h(this,"frameworks",re({client:this}));h(this,"predicates",le({client:this}));h(this,"features",de());h(this,"responses",Ie({client:this}));h(this,"fields",ke());x.logger("info","Picked client initializing."),this.organizationId=e.organizationId,this.projectId=e.projectId,this.options=Object.freeze(e),this.apiUrl=e.apiUrl||Ee(),this.session=Be(),this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.eventBus({type:"initialized",version:xe()}),x.logger("info","Picked client initialized.")}start(){ie(this),(async()=>{v.supportsDocument()&&(document.body&&A(this),await F.domInteractive(),await A(this),this.eventBus({type:"ready"}),this.isReady=!0,this.session&&this.eventBus({type:"session",...this.session}))})()}registerFramework(e){se(e,this.frameworks)}registerComponent(e,s){$(e,s,this.components)}registerPlugin(e){G(this,e,this.plugins)}registerFeature(e,s){fe(e,s,this.features)}registerPredicate(e,s){pe(e,s,this.predicates)}registerField(e){we(e,this.fields)}registerExperience(e){e.component&&$(`experience:${e.id}`,e.component,this.components),H(e,this.experiences)}getStateSnapshot(){return ae(this)}async launchExperienceById(e){const s=this.experiences.getById(e).getState();if(!s){x.logger("warn",`Experience with id '${e}' not found.`);return}L(this,s)}setupPlugins(){var e;(e=this.options.plugins)==null||e.forEach(s=>{if(Array.isArray(s)){s.forEach(i=>{this.registerPlugin(i)});return}const o=typeof s=="function"?s():s;if(Array.isArray(o)){o.forEach(i=>this.registerPlugin(i));return}this.registerPlugin(o)})}setupFeatures(){const e=this.options.features;e&&(Object.entries(e).forEach(([s,o])=>{const i=typeof o=="function"?o():o;this.registerFeature(s,i)}),this.searchParams.feature&&this.searchParams.feature.forEach(s=>{try{const[o,i]=s.split(":");if(!o||!i)return;let l=i;l==="true"&&(l=!0),l==="false"&&(l=!1),this.registerFeature(o,{key:`${l}`,name:o,decide:()=>l,storage:"session"})}catch{}}))}setupPredicates(){const e=this.options.predicates;e&&Object.entries(e).forEach(([s,o])=>{if(typeof o!="function"){x.logger("warn",`Predicate "${s}" is not a function.`);return}this.registerPredicate(s,o)})}getPluginConfig(e){return this.plugins[e]??{}}}h(D,"logger",x.logger);function M(t){var e;return((e=t.options)==null?void 0:e.some(s=>"condition"in s))??!1}function je(t){return t.some(e=>e.condition||M(e))}async function Ce(t,e){return e.length===0||!je(e)?e:(await Promise.all(e.map(async o=>{if(!(o.condition?await F.evaluateRuleLogic(t,o.condition):!0))return null;if(!o.options||!M(o))return o;const r=(await Promise.all(o.options.map(async p=>p.condition?await F.evaluateRuleLogic(t,p.condition)?p:null:p))).filter(p=>p!==null);return r.length===o.options.length?o:r.length===0?null:{...o,options:r}}))).filter(o=>o!==null)}const Oe=t=>{const e=new D(t);return v.bindClient(e),e};exports.evaluateRuleLogic=F.evaluateRuleLogic;exports.isPickedRoot=F.isPickedRoot;exports.createStorageKey=k.createStorageKey;exports.localStore=k.localStore;exports.sessionStore=k.sessionStore;exports.subscribe=k.subscribe;exports.supportsCookies=v.supportsCookies;exports.supportsCryptoRandomUUID=v.supportsCryptoRandomUUID;exports.supportsDocument=v.supportsDocument;exports.supportsHistory=v.supportsHistory;exports.supportsIntersectionObserver=v.supportsIntersectionObserver;exports.supportsLocalStorage=v.supportsLocalStorage;exports.supportsLocation=v.supportsLocation;exports.supportsSessionStorage=v.supportsSessionStorage;exports.supportsShadowRoot=v.supportsShadowRoot;exports.supportsWebComponents=v.supportsWebComponents;exports.supportsWindow=v.supportsWindow;exports.Picked=D;exports.createClient=Oe;exports.getStepFields=Ce;
@@ -1 +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
@@ -3,8 +3,8 @@ var W = (t, e, s) => e in t ? G(t, e, { enumerable: !0, configurable: !0, writab
3
3
  var h = (t, e, s) => W(t, typeof e != "symbol" ? e + "" : e, s);
4
4
  import { createDomain as x, createApi as I, createEffect as O, attach as Y, sample as P, combine as A, createEvent as C } from "effector";
5
5
  import { createFactory as k, invoke as b } from "@withease/factories";
6
- import { g as U, t as J, c as Q, e as R, i as X, a as Z, b as ee, d as te } from "../experience-instance-BEKoIaYp.js";
7
- import { f as gt } 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
10
  import { a as mt } from "../storage-BxBBl9Bw.js";
@@ -579,7 +579,7 @@ const Ue = (t, e) => {
579
579
  function He(t) {
580
580
  return b(_e, t);
581
581
  }
582
- const Ke = () => "0.0.10-next.3";
582
+ const Ke = () => "0.0.10-next.5";
583
583
  function qe() {
584
584
  if (z()) {
585
585
  const t = [
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picked/client",
3
- "version": "0.0.10-next.3",
3
+ "version": "0.0.10-next.5",
4
4
  "dependencies": {
5
5
  "@withease/factories": "^1.0.5"
6
6
  },