@picked/client 0.0.50-next.4 → 0.0.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-BwTaomem.cjs +1 -0
- package/dist/{api-CHaIe0uL.js → api-DWBcrf98.js} +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/plugins/dynamic-experiences/index.js +1 -1
- package/package.json +1 -1
- package/dist/api-C2lg7yBn.cjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Picked-Client`,t=`Picked-Version`;function n(n,r){return{[e]:n,[t]:r}}var r=()=>`0.0.50`,i=`v1`;function a(e,t){return new URL(`/api/${i}/${t}`,e).toString()}function o(e){return{...n(`sdk`,r()),...e}}async function s(e,t,n){let r=a(e,t);return fetch(r,{headers:o(n)})}async function c(e,t,n,r){let i=a(e,t);return fetch(i,{method:`POST`,headers:{"Content-Type":`application/json`,...o(r)},body:JSON.stringify(n)})}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../experience-instance-BUTnwbSJ.cjs`),t=require(`../object-BReQiaSS.cjs`),n=require(`../logger-fbvQC40v.cjs`),r=require(`../supports-Dsjg-82e.cjs`),i=require(`../storage-BFjb8azI.cjs`),a=require(`../api-C2lg7yBn.cjs`),o=require(`../id-CIbS4P60.cjs`);let s=require(`effector`),c=require(`@withease/factories`);var l=(0,s.createDomain)(`experience`),u=(0,c.createFactory)(({client:e,experience:t})=>{let n=l.store(t),r=(0,s.createApi)(n,{merge(e,t){return{...e,...t.experience}}}),i=n.map(e=>({name:e.name,decisionLogic:e.condition,targetSelectors:e.targets,initializeOpenLogic:t.initializeOpen})),a=e.components.listStore.map(e=>(t.componentName?e.find(e=>e.name===t.componentName):void 0)||e.find(e=>e.name===`experience:${t.id}`)||e.find(e=>e.name===`experience`),{skipVoid:!1}),o=n.map(e=>({steps:e.steps,nodes:e.nodes,edges:e.edges,conditionals:e.conditionals})),c=n.map(e=>e.fields),u=t.actions??[];return{id:t.id,configStore:i,treeStore:o,fieldsStore:c,componentStore:a,actions:u,merge:r.merge}});function d(e){return(0,c.invoke)(u,e)}var f=(0,c.createFactory)(({client:e})=>{let t=l.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.id]:t}}});function r(r){let i=t.getState()[r.id];if(i){i.merge({experience:r,strategy:`override`});return}let a=d({client:e,experience:r});n.register(a)}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}let o=(0,s.attach)({source:t,effect:async(t,{id:n,options:r})=>{let i=t[n];if(!i){`${n}`;return}if(r?.bypassCondition){h(e,i,r);return}await _(e,i)&&h(e,i,r)}});return{register:r,get:a,getById:a,launch:o,open:(0,s.attach)({source:e.experienceInstances.listStore,effect:(e,{id:t,options:n})=>{let r=e.filter(e=>e.experienceId===t);if(r.length>0)for(let e of r)e.open();else o({id:t,options:{...n,initialiseOpen:!0}})}}),listStore:i}});function p(e){return(0,c.invoke)(f,e)}var m=(e,t)=>{t.register(e)},h=(t,n,r)=>{let{targetSelectors:i}=n.configStore.getState(),a=e.o(i,n.id);a.forEach(({elements:t})=>t.forEach(t=>e.c(t,n.id))),e.i(a,n.id).forEach(e=>{r?t.experienceInstances.spawn(n,e,r):t.experienceInstances.spawn(n,e)})},g=async e=>{await Promise.all(e.experiences.listStore.getState().map(async t=>{await _(e,t)&&h(e,t)}))},_=async(t,n)=>{if(!t.preconditionPassed||!t.session?.isUser)return!1;let{decisionLogic:r,targetSelectors:i}=n.configStore.getState();return e.o(i,n.id).length<1||i.length===0?!1:r===void 0?!0:e.u(r)?await e.l(t,r)===!0:!0},ee=(e,t,n)=>{let r=t.name,i=t.setup(e);if(i){let e=n[r]??{};n[r]=Object.freeze({...e,...i})}},v=(0,s.createDomain)(`component`),y=(0,c.createFactory)(({client:e,component:t,name:n})=>({name:n,component:t,frameworkStore:e.frameworks.getByName(t.frameworkName)}));function b(e){return(0,c.invoke)(y,e)}var x=(0,c.createFactory)(({client:e})=>{let t=v.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:t}}});function r(r,i){t.getState()[r]&&`${r}`;let a=b({client:e,name:r,component:i});n.register(a)}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:r,getByName:a,listStore:i}});function te(e){return(0,c.invoke)(x,e)}var S=(e,t,n)=>{n.register(e,t)},ne=(0,s.createDomain)(`framework`),re=(0,c.createFactory)(({client:e})=>{let t=ne.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:t.framework}}});function r(e,r){t.getState()[e]&&`${e}`,n.register({name:e,framework:r})}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:r,getByName:a,listStore:i}});function ie(e){return(0,c.invoke)(re,e)}var ae=(e,t)=>{t.register(e.name,e)},oe=6e3,C=i.t(`last_ping`,`global`),w=async e=>{try{let t=Date.now(),n=i.n.get(C),r=0;if(n.isSet()&&(r=n.json()??0),r&&t-r<oe)return!0;let o={projectId:e.projectId,path:window.location.pathname},s={},c=document.getElementById(`picked_script`)?.dataset.verceltoken;c&&(s[`x-vercel-protection-bypass`]=c);let l=(await a.n(e.apiUrl,`ping`,o,s)).ok;return l&&n.set(t),l}catch{return!1}};function T(e){let t=typeof window<`u`,n={client:e,responses:e.responses.listStore.getState(),fields:e.fields.listStore.getState(),location:t?window.location:void 0,document:t?window.document:void 0,sessionStorage:t?window.sessionStorage:void 0,localStorage:t?window.localStorage:void 0};return Object.freeze(n)}var E=(0,s.createDomain)(`predicate`),D=(0,c.createFactory)(({client:e})=>{let t=E.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:{name:t.name,predicate:t.predicate}}}});function r(e,r){t.getState()[e]&&`${e}`,n.register(Object.freeze({name:e,predicate:r}))}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e]?.predicate,{skipVoid:!1})}function o(t){let n=(0,s.createStore)(()=>void 0,{skipVoid:!1}),r=(0,s.createEffect)(async()=>{let n=a(t).getState();if(!n)return;let r=T(e);return(...e)=>n({...r,args:e})});return(0,s.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:r}),(0,s.sample)({clock:r.doneData,filter:e=>e!==void 0,target:n}),r(),n}return{register:r,getByName:a,listStore:i,getEvokablePredicate:o}});function O(e){return(0,c.invoke)(D,e)}var k=(e,t,n)=>{n.register(e,t)},A=(0,s.createDomain)(`feature`),j=(0,c.createFactory)(({client:e})=>{let t=A.store({}),n=A.store([]),r=(0,s.createApi)(t,{register(e,t){return{...e,[t.id]:t.feature}}});function a(e,n){t.getState()[e]&&`${e}`;let i={id:e,feature:{...n,id:e}};r.register(Object.freeze({id:e,feature:i}))}let o=(0,s.createEffect)(async({id:e,key:t,storage:n=`local`})=>{let r=i.t(`feature:${e}:${t}`,`global`),a=(n===`session`?i.r:i.n).get(r).boolean();return a===null?null:{id:e,key:t,bucket:a,storage:n}}),c=(0,s.createEffect)(e=>{if(!e)return null;let t=i.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?i.r:i.n).set(t,e.bucket)}),l=new Map,u=(0,s.attach)({source:{allFeaturesStore:t,resolvedFeaturesStore:n},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let a=t.find(e=>e.id===n&&e.key===i);if(a)return a;let o=e[n];if(!o)throw Error(`Feature with id '${n}' not found`);let s=l.get(`${n}:${i}`);if(s!==void 0){let e=await s;return{id:o.id,bucket:e,key:i,storage:o.feature.storage}}let c=r();l.set(`${n}:${i}`,c);let u=await c;return{id:o.id,bucket:u,key:i,storage:o.feature.storage}}});(0,s.sample)({clock:r.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage}},target:o}),(0,s.sample)({source:t,clock:u.doneData,fn:(e,t)=>{let{id:n,bucket:r,storage:i}=t,a=e[n]?.feature.key;return a?{key:a,id:n,bucket:r,storage:i}:null},target:c});let d=(0,s.combine)({allFeaturesStore:t,resolvedFeaturesStore:n}).map(({allFeaturesStore:e,resolvedFeaturesStore:t})=>Object.values(e).map(e=>{let n=t.find(t=>t.id===e.id&&t.key===e.feature.key);return n?{id:e.id,name:e.feature.name,key:e.feature.key,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,getBucket:async()=>await u(e.feature),isResolved:!1}}));(0,s.sample)({clock:u.doneData,source:{resolvedFeatures:n},filter:({resolvedFeatures:e},{id:t,key:n})=>!e.some(e=>e.id===t&&e.key===n),fn:(e,t)=>t,target:e.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,s.sample)({clock:[o.doneData,u.doneData],source:n,fn:(e,t)=>!t||e.some(e=>e.id===t.id&&e.key===t.key)?e:[...e,t],target:n});function f(e){return d.map(t=>t.find(t=>t.id===e))}function p(e){return t.map(t=>t[e],{skipVoid:!1})}function m(e){let t=(0,s.createStore)(async()=>void 0,{skipVoid:!1}),r=(0,s.createEffect)(async()=>{let t=f(e).getState();if(t)return async()=>(await t.getBucket()).bucket});return(0,s.sample)({source:n,filter:t=>t.some(t=>t.id===e),target:r}),(0,s.sample)({clock:r.doneData,filter:e=>e!==void 0,target:t}),r(),t}return{register:a,getById:f,getByName:p,listStore:d,getEvokableFeature:m}});function M(e){return(0,c.invoke)(j,e)}var N=(e,t,n)=>{n.register(e,t)},P=(0,s.createDomain)(`history`);function F(e,t){return{id:o.t(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}var I=(0,c.createFactory)(()=>{let t=P.store({entries:[]}),n=P.event(),r=P.event(),i=P.event(),a=P.event();t.on(n,(e,t)=>({entries:[...e.entries,F(t.experienceId,t.node)]})),t.on(r,(e,t)=>({entries:[...e.entries.slice(0,-1),F(t.experienceId,t.node)]})),t.on(a,(e,t)=>t);function o(t,n){let r={lastStepIndex:-1,secondLastStepIndex:-1};for(let i=t.length-1;i>=0;i--){let a=t[i],o=a?.node;if(!(!o||!e.r(o))&&!(n&&a?.experienceId!==n))if(r.lastStepIndex===-1)r.lastStepIndex=i;else{r.secondLastStepIndex=i;break}}return r}return t.on(i,(e,t)=>{let{secondLastStepIndex:n}=o(e.entries,t.experienceId),r=n===-1?e.entries:e.entries.slice(0,n+1);return{...e,entries:r}}),{push:n,replace:r,back:i,restore:a,entriesStore:t.map(e=>e.entries)}});function L(){return(0,c.invoke)(I)}var R=0,z=e=>{let t=(0,s.createStore)([]);return(0,s.sample)({clock:e,source:t,fn:(e,t)=>[...e,{id:R++,at:new Date,payload:t}],target:t}),t},B=(0,s.createDomain)(`field`),V=(0,c.createFactory)(()=>{let e=B.store({}),t=(0,s.createApi)(e,{register(e,t){return{...e,[t.field.id]:t.field}}});function n(e){t.register({field:e})}function r(e,n){let r=a(e).getState();if(!r)return;let i=Object.assign({},r,{...n});t.register({field:{...i}})}let i=e.map(e=>Object.values(e));function a(t){return e.map(e=>e[t]||null)}function o(t){return e.map(e=>Object.values(e).find(e=>e.name===t)||null)}return{register:n,update:r,getById:a,listStore:i,getByName:o}});function H(){return(0,c.invoke)(V)}var U=(e,t)=>{t.register(e)},W=(0,s.createDomain)(`action`),G=(0,c.createFactory)(()=>{let e=W.store({}),t=(0,s.createApi)(e,{register(e,t){return{...e,[t.name]:{name:t.name,action:t.action}}}});function n(e,n){t.register({name:e,action:n})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t],{skipVoid:!1})}function a(t){return e.map(e=>{let n=e[t];return n?n.action:void 0},{skipVoid:!1})}return{register:n,getByName:i,listStore:r,getEvokableAction:a}});function K(){return(0,c.invoke)(G)}var se=(e,t,n)=>{n.register(e,t)};function q(e){return e==null||e===``||Array.isArray(e)&&!e.length}function ce(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e===null}function J(e){try{return JSON.stringify(e),!0}catch{return!1}}var le=(0,s.createDomain)(`response`),ue=(0,c.createFactory)(({client:n})=>{let r=le.store({}),i=(0,s.createEvent)(),a=(0,s.createEvent)(),o=(0,s.createApi)(r,{register(e,t){return{...e,[t.fieldId]:t.response}},registerBatch(e,t){return{...e,...t}},clear(e,t){let{[t]:n,...r}=e;return r},clearAll(){return{}}});function c(e,t){if(typeof e==`string`){if(t===void 0)throw Error(`Response is required when registering a single field`);o.register({fieldId:e,response:t})}else o.registerBatch(e)}async function l(r){let i=[];return await Promise.allSettled(Object.entries(r).map(async([r,a])=>{let o=a,s=n.fields.getById(r).getState();if(!s){i.push({fieldId:r,userMessage:`Field '${r}' not found`,systemMessage:`No field with ID '${r}' exists. Available field IDs are: ${Object.keys(n.fields.listStore.getState()).join(`,`)}.`,value:o});return}if(s.multiple&&(typeof o==`string`||typeof o==`number`||typeof o==`boolean`)&&(o=[o]),s.validation&&!t.t(s.validation)&&!q(o)){let t=await e.l(n,s.validation,{$input:o});if(typeof t==`string`){i.push({fieldId:r,userMessage:t,systemMessage:`Field validation resulted in an error: ${t}.`,value:o});return}if(t===!1){i.push({fieldId:r,userMessage:`This field is invalid`,systemMessage:`Field validation resulted in an unspecified error.`,value:o});return}}if(s.required&&q(o)){i.push({fieldId:r,userMessage:`This field is required`,systemMessage:`Field is required.`,value:o});return}if(!s.multiple&&Array.isArray(o)&&o.length>1){i.push({fieldId:r,userMessage:`This field expects a single response`,systemMessage:`Field expects a single response.`,value:o});return}if(s.type===`object`&&!q(o))if(s.multiple){if(!Array.isArray(o)){i.push({fieldId:r,userMessage:`This field expects multiple values`,systemMessage:`Field expects an array of objects.`,value:o});return}for(let e of o){if(typeof e!=`object`||!e){i.push({fieldId:r,userMessage:`This field expects object values`,systemMessage:`Field expects an array of objects, but received non-object value.`,value:o});return}if(!J(e)){i.push({fieldId:r,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:o});return}}}else{if(Array.isArray(o)){i.push({fieldId:r,userMessage:`This field expects a single value`,systemMessage:`Field expects a single object, not an array.`,value:o});return}if(typeof o!=`object`||!o){i.push({fieldId:r,userMessage:`This field expects an object value`,systemMessage:`Field expects an object value.`,value:o});return}if(!J(o)){i.push({fieldId:r,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:o});return}}if(Array.isArray(s.options)&&s.options.length>0){let e=Array.isArray(o)?o:[o];if(s.type===`object`){let t=s.options.map(e=>JSON.stringify(e.value));e.every(e=>t.includes(JSON.stringify(e)))||i.push({fieldId:r,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option from the defined choices.`,value:o})}else{let t=s.options.map(e=>e.value);e.every(e=>!ce(e)||e===null?!1:t.includes(e))||i.push({fieldId:r,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option. Valid options are: ${t.join(`, `)}`,value:o})}}})),{responsesToCommit:r,validationErrors:i}}async function u(e){let{responsesToCommit:t,validationErrors:n}=await l(e);return n.length?{errors:n}:(o.registerBatch(t),{errors:[]})}let d=r.map(e=>e),f=r.map(e=>Object.keys(e).map(t=>({fieldId:t,value:e[t]})));function p(e){return(0,s.combine)({f:n.fields.getById(e),r:r.map(t=>t[e]||null)},({f:e,r:t})=>t||(e?.defaultValue?e.defaultValue:null))}function m(e){return(0,s.combine)({f:n.fields.getByName(e),s:r},({f:e,s:t})=>e&&t[e.id]||(e?.defaultValue?e.defaultValue:null))}return(0,s.sample)({clock:i,target:o.clearAll}),(0,s.sample)({clock:a,target:o.clear}),{register:c,clearAll:i,clear:a,commit:u,getResponsesToCommit:l,listStore:f,getAllStore:d,getByFieldId:p,getByFieldName:m}});function de(e){return(0,c.invoke)(ue,e)}function fe(){if(r.r()){let e=[document.currentScript,document.getElementById(`picked_script`),document.getElementById(`picked`),document.getElementById(`cvly`),document.getElementById(`cvly-x`)];for(let t of e)if(t?.dataset.api)return t.dataset.api}return`https://api.picked.app`}function pe(){if(!r.d())return{};let e=new URLSearchParams(window.location.search),t={},n=new Set;for(let[t]of e.entries())t.startsWith(`picked-`)&&n.add(t);for(let r of n){let n=r.replace(`picked-`,``);t[n]=e.getAll(r)}let a=i.t(`s`);if(n.size>0)i.r.set(a,t);else{let e=i.r.get(a);if(e)return e.json()||{}}return t}function me(){return r.n()?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).substring(2,15)}-${Math.random().toString(36).substring(2,15)}-${Math.random().toString(36).substring(2,15)}`}var he=i.t(`session`,`global`),ge=()=>{let e=i.n.get(he),t;e.isSet()&&(t=e.json());let n=t=>e.set({id:t.id,isUser:t.isUser,identifiers:t.identifiers}),r={id:t?.id??me(),isUser:t?.isUser??void 0,identifiers:t?.identifiers??void 0,setIsUser(e){this.isUser=e,n(this)},setIdentifier(e,t){this.identifiers={...this.identifiers,[e]:t},n(this)},removeIdentifier(e){this.identifiers&&(this.identifiers=Object.fromEntries(Object.entries(this.identifiers).filter(([t])=>t!==e)),this.identifiers=Object.keys(this.identifiers).length?this.identifiers:void 0,n(this))}};return n(r),r},_e=()=>r.o()?ge():null;function Y(){if(r.d())return globalThis.window.pickedConfig}function ve(){if(!r.d())return;let e=Y(),t=e?.organizationId,n=e?.projectId;return t&&n?{organizationId:t,projectId:n}:void 0}function ye(){if(!r.r())return;let e=document.getElementById(`picked_script`)||document.querySelector(`script#picked`)||document.getElementById(`cvly`);if(!e)return;let t=e.dataset.organizationid||e.getAttribute(`organization-id`),n=e.dataset.projectid||e.getAttribute(`project-id`);return t&&n?{organizationId:t,projectId:n}:void 0}function be(e){let{organizationId:t,projectId:n}=e;if(t&&n)return{organizationId:t,projectId:n};let r=ve();if(r)return r;let i=ye();if(i)return i;throw Error(`organizationId and projectId are required. You can provide them via one of:
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../experience-instance-BUTnwbSJ.cjs`),t=require(`../object-BReQiaSS.cjs`),n=require(`../logger-fbvQC40v.cjs`),r=require(`../supports-Dsjg-82e.cjs`),i=require(`../storage-BFjb8azI.cjs`),a=require(`../api-BwTaomem.cjs`),o=require(`../id-CIbS4P60.cjs`);let s=require(`effector`),c=require(`@withease/factories`);var l=(0,s.createDomain)(`experience`),u=(0,c.createFactory)(({client:e,experience:t})=>{let n=l.store(t),r=(0,s.createApi)(n,{merge(e,t){return{...e,...t.experience}}}),i=n.map(e=>({name:e.name,decisionLogic:e.condition,targetSelectors:e.targets,initializeOpenLogic:t.initializeOpen})),a=e.components.listStore.map(e=>(t.componentName?e.find(e=>e.name===t.componentName):void 0)||e.find(e=>e.name===`experience:${t.id}`)||e.find(e=>e.name===`experience`),{skipVoid:!1}),o=n.map(e=>({steps:e.steps,nodes:e.nodes,edges:e.edges,conditionals:e.conditionals})),c=n.map(e=>e.fields),u=t.actions??[];return{id:t.id,configStore:i,treeStore:o,fieldsStore:c,componentStore:a,actions:u,merge:r.merge}});function d(e){return(0,c.invoke)(u,e)}var f=(0,c.createFactory)(({client:e})=>{let t=l.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.id]:t}}});function r(r){let i=t.getState()[r.id];if(i){i.merge({experience:r,strategy:`override`});return}let a=d({client:e,experience:r});n.register(a)}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}let o=(0,s.attach)({source:t,effect:async(t,{id:n,options:r})=>{let i=t[n];if(!i){`${n}`;return}if(r?.bypassCondition){h(e,i,r);return}await _(e,i)&&h(e,i,r)}});return{register:r,get:a,getById:a,launch:o,open:(0,s.attach)({source:e.experienceInstances.listStore,effect:(e,{id:t,options:n})=>{let r=e.filter(e=>e.experienceId===t);if(r.length>0)for(let e of r)e.open();else o({id:t,options:{...n,initialiseOpen:!0}})}}),listStore:i}});function p(e){return(0,c.invoke)(f,e)}var m=(e,t)=>{t.register(e)},h=(t,n,r)=>{let{targetSelectors:i}=n.configStore.getState(),a=e.o(i,n.id);a.forEach(({elements:t})=>t.forEach(t=>e.c(t,n.id))),e.i(a,n.id).forEach(e=>{r?t.experienceInstances.spawn(n,e,r):t.experienceInstances.spawn(n,e)})},g=async e=>{await Promise.all(e.experiences.listStore.getState().map(async t=>{await _(e,t)&&h(e,t)}))},_=async(t,n)=>{if(!t.preconditionPassed||!t.session?.isUser)return!1;let{decisionLogic:r,targetSelectors:i}=n.configStore.getState();return e.o(i,n.id).length<1||i.length===0?!1:r===void 0?!0:e.u(r)?await e.l(t,r)===!0:!0},ee=(e,t,n)=>{let r=t.name,i=t.setup(e);if(i){let e=n[r]??{};n[r]=Object.freeze({...e,...i})}},v=(0,s.createDomain)(`component`),y=(0,c.createFactory)(({client:e,component:t,name:n})=>({name:n,component:t,frameworkStore:e.frameworks.getByName(t.frameworkName)}));function b(e){return(0,c.invoke)(y,e)}var x=(0,c.createFactory)(({client:e})=>{let t=v.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:t}}});function r(r,i){t.getState()[r]&&`${r}`;let a=b({client:e,name:r,component:i});n.register(a)}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:r,getByName:a,listStore:i}});function te(e){return(0,c.invoke)(x,e)}var S=(e,t,n)=>{n.register(e,t)},ne=(0,s.createDomain)(`framework`),re=(0,c.createFactory)(({client:e})=>{let t=ne.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:t.framework}}});function r(e,r){t.getState()[e]&&`${e}`,n.register({name:e,framework:r})}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:r,getByName:a,listStore:i}});function ie(e){return(0,c.invoke)(re,e)}var ae=(e,t)=>{t.register(e.name,e)},oe=6e3,C=i.t(`last_ping`,`global`),w=async e=>{try{let t=Date.now(),n=i.n.get(C),r=0;if(n.isSet()&&(r=n.json()??0),r&&t-r<oe)return!0;let o={projectId:e.projectId,path:window.location.pathname},s={},c=document.getElementById(`picked_script`)?.dataset.verceltoken;c&&(s[`x-vercel-protection-bypass`]=c);let l=(await a.n(e.apiUrl,`ping`,o,s)).ok;return l&&n.set(t),l}catch{return!1}};function T(e){let t=typeof window<`u`,n={client:e,responses:e.responses.listStore.getState(),fields:e.fields.listStore.getState(),location:t?window.location:void 0,document:t?window.document:void 0,sessionStorage:t?window.sessionStorage:void 0,localStorage:t?window.localStorage:void 0};return Object.freeze(n)}var E=(0,s.createDomain)(`predicate`),D=(0,c.createFactory)(({client:e})=>{let t=E.store({}),n=(0,s.createApi)(t,{register(e,t){return{...e,[t.name]:{name:t.name,predicate:t.predicate}}}});function r(e,r){t.getState()[e]&&`${e}`,n.register(Object.freeze({name:e,predicate:r}))}let i=t.map(e=>Object.values(e));function a(e){return t.map(t=>t[e]?.predicate,{skipVoid:!1})}function o(t){let n=(0,s.createStore)(()=>void 0,{skipVoid:!1}),r=(0,s.createEffect)(async()=>{let n=a(t).getState();if(!n)return;let r=T(e);return(...e)=>n({...r,args:e})});return(0,s.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:r}),(0,s.sample)({clock:r.doneData,filter:e=>e!==void 0,target:n}),r(),n}return{register:r,getByName:a,listStore:i,getEvokablePredicate:o}});function O(e){return(0,c.invoke)(D,e)}var k=(e,t,n)=>{n.register(e,t)},A=(0,s.createDomain)(`feature`),j=(0,c.createFactory)(({client:e})=>{let t=A.store({}),n=A.store([]),r=(0,s.createApi)(t,{register(e,t){return{...e,[t.id]:t.feature}}});function a(e,n){t.getState()[e]&&`${e}`;let i={id:e,feature:{...n,id:e}};r.register(Object.freeze({id:e,feature:i}))}let o=(0,s.createEffect)(async({id:e,key:t,storage:n=`local`})=>{let r=i.t(`feature:${e}:${t}`,`global`),a=(n===`session`?i.r:i.n).get(r).boolean();return a===null?null:{id:e,key:t,bucket:a,storage:n}}),c=(0,s.createEffect)(e=>{if(!e)return null;let t=i.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?i.r:i.n).set(t,e.bucket)}),l=new Map,u=(0,s.attach)({source:{allFeaturesStore:t,resolvedFeaturesStore:n},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let a=t.find(e=>e.id===n&&e.key===i);if(a)return a;let o=e[n];if(!o)throw Error(`Feature with id '${n}' not found`);let s=l.get(`${n}:${i}`);if(s!==void 0){let e=await s;return{id:o.id,bucket:e,key:i,storage:o.feature.storage}}let c=r();l.set(`${n}:${i}`,c);let u=await c;return{id:o.id,bucket:u,key:i,storage:o.feature.storage}}});(0,s.sample)({clock:r.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage}},target:o}),(0,s.sample)({source:t,clock:u.doneData,fn:(e,t)=>{let{id:n,bucket:r,storage:i}=t,a=e[n]?.feature.key;return a?{key:a,id:n,bucket:r,storage:i}:null},target:c});let d=(0,s.combine)({allFeaturesStore:t,resolvedFeaturesStore:n}).map(({allFeaturesStore:e,resolvedFeaturesStore:t})=>Object.values(e).map(e=>{let n=t.find(t=>t.id===e.id&&t.key===e.feature.key);return n?{id:e.id,name:e.feature.name,key:e.feature.key,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,getBucket:async()=>await u(e.feature),isResolved:!1}}));(0,s.sample)({clock:u.doneData,source:{resolvedFeatures:n},filter:({resolvedFeatures:e},{id:t,key:n})=>!e.some(e=>e.id===t&&e.key===n),fn:(e,t)=>t,target:e.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,s.sample)({clock:[o.doneData,u.doneData],source:n,fn:(e,t)=>!t||e.some(e=>e.id===t.id&&e.key===t.key)?e:[...e,t],target:n});function f(e){return d.map(t=>t.find(t=>t.id===e))}function p(e){return t.map(t=>t[e],{skipVoid:!1})}function m(e){let t=(0,s.createStore)(async()=>void 0,{skipVoid:!1}),r=(0,s.createEffect)(async()=>{let t=f(e).getState();if(t)return async()=>(await t.getBucket()).bucket});return(0,s.sample)({source:n,filter:t=>t.some(t=>t.id===e),target:r}),(0,s.sample)({clock:r.doneData,filter:e=>e!==void 0,target:t}),r(),t}return{register:a,getById:f,getByName:p,listStore:d,getEvokableFeature:m}});function M(e){return(0,c.invoke)(j,e)}var N=(e,t,n)=>{n.register(e,t)},P=(0,s.createDomain)(`history`);function F(e,t){return{id:o.t(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}var I=(0,c.createFactory)(()=>{let t=P.store({entries:[]}),n=P.event(),r=P.event(),i=P.event(),a=P.event();t.on(n,(e,t)=>({entries:[...e.entries,F(t.experienceId,t.node)]})),t.on(r,(e,t)=>({entries:[...e.entries.slice(0,-1),F(t.experienceId,t.node)]})),t.on(a,(e,t)=>t);function o(t,n){let r={lastStepIndex:-1,secondLastStepIndex:-1};for(let i=t.length-1;i>=0;i--){let a=t[i],o=a?.node;if(!(!o||!e.r(o))&&!(n&&a?.experienceId!==n))if(r.lastStepIndex===-1)r.lastStepIndex=i;else{r.secondLastStepIndex=i;break}}return r}return t.on(i,(e,t)=>{let{secondLastStepIndex:n}=o(e.entries,t.experienceId),r=n===-1?e.entries:e.entries.slice(0,n+1);return{...e,entries:r}}),{push:n,replace:r,back:i,restore:a,entriesStore:t.map(e=>e.entries)}});function L(){return(0,c.invoke)(I)}var R=0,z=e=>{let t=(0,s.createStore)([]);return(0,s.sample)({clock:e,source:t,fn:(e,t)=>[...e,{id:R++,at:new Date,payload:t}],target:t}),t},B=(0,s.createDomain)(`field`),V=(0,c.createFactory)(()=>{let e=B.store({}),t=(0,s.createApi)(e,{register(e,t){return{...e,[t.field.id]:t.field}}});function n(e){t.register({field:e})}function r(e,n){let r=a(e).getState();if(!r)return;let i=Object.assign({},r,{...n});t.register({field:{...i}})}let i=e.map(e=>Object.values(e));function a(t){return e.map(e=>e[t]||null)}function o(t){return e.map(e=>Object.values(e).find(e=>e.name===t)||null)}return{register:n,update:r,getById:a,listStore:i,getByName:o}});function H(){return(0,c.invoke)(V)}var U=(e,t)=>{t.register(e)},W=(0,s.createDomain)(`action`),G=(0,c.createFactory)(()=>{let e=W.store({}),t=(0,s.createApi)(e,{register(e,t){return{...e,[t.name]:{name:t.name,action:t.action}}}});function n(e,n){t.register({name:e,action:n})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t],{skipVoid:!1})}function a(t){return e.map(e=>{let n=e[t];return n?n.action:void 0},{skipVoid:!1})}return{register:n,getByName:i,listStore:r,getEvokableAction:a}});function K(){return(0,c.invoke)(G)}var se=(e,t,n)=>{n.register(e,t)};function q(e){return e==null||e===``||Array.isArray(e)&&!e.length}function ce(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e===null}function J(e){try{return JSON.stringify(e),!0}catch{return!1}}var le=(0,s.createDomain)(`response`),ue=(0,c.createFactory)(({client:n})=>{let r=le.store({}),i=(0,s.createEvent)(),a=(0,s.createEvent)(),o=(0,s.createApi)(r,{register(e,t){return{...e,[t.fieldId]:t.response}},registerBatch(e,t){return{...e,...t}},clear(e,t){let{[t]:n,...r}=e;return r},clearAll(){return{}}});function c(e,t){if(typeof e==`string`){if(t===void 0)throw Error(`Response is required when registering a single field`);o.register({fieldId:e,response:t})}else o.registerBatch(e)}async function l(r){let i=[];return await Promise.allSettled(Object.entries(r).map(async([r,a])=>{let o=a,s=n.fields.getById(r).getState();if(!s){i.push({fieldId:r,userMessage:`Field '${r}' not found`,systemMessage:`No field with ID '${r}' exists. Available field IDs are: ${Object.keys(n.fields.listStore.getState()).join(`,`)}.`,value:o});return}if(s.multiple&&(typeof o==`string`||typeof o==`number`||typeof o==`boolean`)&&(o=[o]),s.validation&&!t.t(s.validation)&&!q(o)){let t=await e.l(n,s.validation,{$input:o});if(typeof t==`string`){i.push({fieldId:r,userMessage:t,systemMessage:`Field validation resulted in an error: ${t}.`,value:o});return}if(t===!1){i.push({fieldId:r,userMessage:`This field is invalid`,systemMessage:`Field validation resulted in an unspecified error.`,value:o});return}}if(s.required&&q(o)){i.push({fieldId:r,userMessage:`This field is required`,systemMessage:`Field is required.`,value:o});return}if(!s.multiple&&Array.isArray(o)&&o.length>1){i.push({fieldId:r,userMessage:`This field expects a single response`,systemMessage:`Field expects a single response.`,value:o});return}if(s.type===`object`&&!q(o))if(s.multiple){if(!Array.isArray(o)){i.push({fieldId:r,userMessage:`This field expects multiple values`,systemMessage:`Field expects an array of objects.`,value:o});return}for(let e of o){if(typeof e!=`object`||!e){i.push({fieldId:r,userMessage:`This field expects object values`,systemMessage:`Field expects an array of objects, but received non-object value.`,value:o});return}if(!J(e)){i.push({fieldId:r,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:o});return}}}else{if(Array.isArray(o)){i.push({fieldId:r,userMessage:`This field expects a single value`,systemMessage:`Field expects a single object, not an array.`,value:o});return}if(typeof o!=`object`||!o){i.push({fieldId:r,userMessage:`This field expects an object value`,systemMessage:`Field expects an object value.`,value:o});return}if(!J(o)){i.push({fieldId:r,userMessage:`This field contains non-serializable data`,systemMessage:`Field value contains non-JSON-serializable data (functions, circular references, etc.).`,value:o});return}}if(Array.isArray(s.options)&&s.options.length>0){let e=Array.isArray(o)?o:[o];if(s.type===`object`){let t=s.options.map(e=>JSON.stringify(e.value));e.every(e=>t.includes(JSON.stringify(e)))||i.push({fieldId:r,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option from the defined choices.`,value:o})}else{let t=s.options.map(e=>e.value);e.every(e=>!ce(e)||e===null?!1:t.includes(e))||i.push({fieldId:r,userMessage:`This field expects a valid option`,systemMessage:`Field expects a valid option. Valid options are: ${t.join(`, `)}`,value:o})}}})),{responsesToCommit:r,validationErrors:i}}async function u(e){let{responsesToCommit:t,validationErrors:n}=await l(e);return n.length?{errors:n}:(o.registerBatch(t),{errors:[]})}let d=r.map(e=>e),f=r.map(e=>Object.keys(e).map(t=>({fieldId:t,value:e[t]})));function p(e){return(0,s.combine)({f:n.fields.getById(e),r:r.map(t=>t[e]||null)},({f:e,r:t})=>t||(e?.defaultValue?e.defaultValue:null))}function m(e){return(0,s.combine)({f:n.fields.getByName(e),s:r},({f:e,s:t})=>e&&t[e.id]||(e?.defaultValue?e.defaultValue:null))}return(0,s.sample)({clock:i,target:o.clearAll}),(0,s.sample)({clock:a,target:o.clear}),{register:c,clearAll:i,clear:a,commit:u,getResponsesToCommit:l,listStore:f,getAllStore:d,getByFieldId:p,getByFieldName:m}});function de(e){return(0,c.invoke)(ue,e)}function fe(){if(r.r()){let e=[document.currentScript,document.getElementById(`picked_script`),document.getElementById(`picked`),document.getElementById(`cvly`),document.getElementById(`cvly-x`)];for(let t of e)if(t?.dataset.api)return t.dataset.api}return`https://api.picked.app`}function pe(){if(!r.d())return{};let e=new URLSearchParams(window.location.search),t={},n=new Set;for(let[t]of e.entries())t.startsWith(`picked-`)&&n.add(t);for(let r of n){let n=r.replace(`picked-`,``);t[n]=e.getAll(r)}let a=i.t(`s`);if(n.size>0)i.r.set(a,t);else{let e=i.r.get(a);if(e)return e.json()||{}}return t}function me(){return r.n()?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).substring(2,15)}-${Math.random().toString(36).substring(2,15)}-${Math.random().toString(36).substring(2,15)}`}var he=i.t(`session`,`global`),ge=()=>{let e=i.n.get(he),t;e.isSet()&&(t=e.json());let n=t=>e.set({id:t.id,isUser:t.isUser,identifiers:t.identifiers}),r={id:t?.id??me(),isUser:t?.isUser??void 0,identifiers:t?.identifiers??void 0,setIsUser(e){this.isUser=e,n(this)},setIdentifier(e,t){this.identifiers={...this.identifiers,[e]:t},n(this)},removeIdentifier(e){this.identifiers&&(this.identifiers=Object.fromEntries(Object.entries(this.identifiers).filter(([t])=>t!==e)),this.identifiers=Object.keys(this.identifiers).length?this.identifiers:void 0,n(this))}};return n(r),r},_e=()=>r.o()?ge():null;function Y(){if(r.d())return globalThis.window.pickedConfig}function ve(){if(!r.d())return;let e=Y(),t=e?.organizationId,n=e?.projectId;return t&&n?{organizationId:t,projectId:n}:void 0}function ye(){if(!r.r())return;let e=document.getElementById(`picked_script`)||document.querySelector(`script#picked`)||document.getElementById(`cvly`);if(!e)return;let t=e.dataset.organizationid||e.getAttribute(`organization-id`),n=e.dataset.projectid||e.getAttribute(`project-id`);return t&&n?{organizationId:t,projectId:n}:void 0}function be(e){let{organizationId:t,projectId:n}=e;if(t&&n)return{organizationId:t,projectId:n};let r=ve();if(r)return r;let i=ye();if(i)return i;throw Error(`organizationId and projectId are required. You can provide them via one of:
|
|
2
2
|
(1) createClient({ organizationId, projectId }) options;
|
|
3
3
|
(2) window.pickedConfig = { organizationId, projectId };
|
|
4
4
|
(3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes data-organizationid/data-projectid (or organization-id/project-id) attributes.`)}function X(e){return e==null||e===``||Number.isNaN(e)}var xe={default:(e,t)=>X(e)?String(t??``):String(e),append:(e,t)=>t&&!X(e)?`${e} ${t}`:e,prepend:(e,t)=>t&&!X(e)?`${t} ${e}`:e,upper:e=>typeof e==`string`?e.toUpperCase():e,lower:e=>typeof e==`string`?e.toLowerCase():e,capitalize:e=>typeof e==`string`?e.charAt(0).toUpperCase()+e.slice(1):e,list:e=>{if(!e||typeof e!=`object`)return e;let t=new Intl.ListFormat(`en`,{style:`long`,type:`conjunction`});if(Array.isArray(e))return t.format(e.map(String));if(e instanceof Map){let n=Array.from(e.entries()).map(([e,t])=>`${e}: ${t}`);return t.format(n)}return e instanceof Set?t.format(Array.from(e).map(String)):e}};function Se(e){return typeof e==`object`&&!!e}function Z(e,t){let n=t;for(let t of e.split(`.`))if(Se(n)&&t in n)n=n[t];else return;return typeof n==`function`?n():n}function Ce(e,t){let n=e.split(`|`).map(e=>e.trim()),r=Z(n.shift()??``,t);for(let e of n){let[t,...n]=e.split(`:`),i=t?.trim()??``,a=n.join(`:`).trim().replaceAll(/(?:^['"]|['"]$)/g,``),o=xe[i];o&&(r=o(r,a))}return X(r)?``:typeof r==`object`?JSON.stringify(r):String(r)}function we(e,t){let n=``,r=0;for(;r<e.length;)if(e[r]===`{`&&e[r+1]===`{`){r+=2;let i=``;for(;r<e.length;){if(e[r]===`}`&&e[r+1]===`}`){r+=2;break}i+=e[r++]}n+=Ce(i.trim(),t)}else n+=e[r++];return n}var Q=class{static logger=n.t;options;isReady=!1;project;plugins={};pluginStartHooks=[];eventBus=(0,s.createEvent)();events;organizationId;projectId;apiUrl;dashboardUrl;documentationSiteUrl;session;precondition;condition;preconditionPassed;searchParams=pe();history=L();components=te({client:this});experienceInstances=e.n({client:this});experiences=p({client:this});frameworks=ie({client:this});predicates=O({client:this});features=M({client:this});responses=de({client:this});fields=H();actions=K();constructor(e){this.events=z(this.eventBus);let{organizationId:t,projectId:n}=be(e);this.organizationId=t,this.projectId=n,this.options=Object.freeze(e),this.apiUrl=e.apiUrl||fe(),this.dashboardUrl=e.dashboardUrl??`https://dashboard.picked.app`,this.documentationSiteUrl=e.documentationSiteUrl??`https://docs.picked.app`,this.session=_e(),this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.setupActions(),this.setupComponents(),this.precondition=e.precondition,this.condition=e.condition,this.eventBus({type:`load`,version:a.r()})}start=()=>{w(this),(async()=>{if(!r.r())return;await this.runPluginStartHooks();let t=await this.evaluateGate(this.precondition);this.preconditionPassed=t;let n;t&&(n=await this.evaluateGate(this.condition));let i=t&&n===!0;if(typeof n==`boolean`&&this.session){let e=n;this.session.setIsUser(e),this.eventBus({type:`user_decide`,value:e})}if(this.eventBus({type:`initialize`}),i&&g(this),await e.a(),i&&g(this),this.eventBus({type:`ready`}),this.isReady=!0,this.session){let{id:e,isUser:t,identifiers:n}=this.session;this.eventBus({type:`session`,id:e,isUser:t,identifiers:n})}})()};registerFramework=e=>{ae(e,this.frameworks)};registerComponent=(e,t)=>{S(e,t,this.components)};registerPlugin=e=>{ee(this,e,this.plugins);let t=this.plugins[e.name];t?.onStart&&this.pluginStartHooks.push(t.onStart)};registerFeature=(e,t)=>{N(e,t,this.features)};registerPredicate=(e,t)=>{k(e,t,this.predicates)};registerField=e=>{U(e,this.fields)};registerAction=(e,t)=>{se(e,t,this.actions)};registerExperience=e=>{e.component&&S(`experience:${e.id}`,e.component,this.components),m(e,this.experiences)};getStateSnapshot=()=>T(this);launchExperienceById=async(e,t)=>{this.experiences.launch({id:e,options:t})};openExperienceById=async e=>{this.experiences.open({id:e})};async runPluginStartHooks(){for(let e of this.pluginStartHooks)await e()}async evaluateGate(t){return t===void 0?!0:typeof t==`boolean`?t:await e.l(this,t)===!0}setupPlugins(){this.options.plugins?.forEach(e=>{if(Array.isArray(e)){e.forEach(e=>{this.registerPlugin(e)});return}let t=typeof e==`function`?e():e;if(Array.isArray(t)){t.forEach(e=>this.registerPlugin(e));return}this.registerPlugin(t)})}setupFeatures(){let e=this.options.features;e&&Object.entries(e).forEach(([e,t])=>{let n=typeof t==`function`?t():t;this.registerFeature(e,n)}),this.searchParams.feature&&this.searchParams.feature.forEach(e=>{try{let[t,n]=e.split(`:`);if(!t||!n)return;let r=n;r===`true`&&(r=!0),r===`false`&&(r=!1),this.registerFeature(t,{key:`${r}`,name:t,decide:()=>r,storage:`session`})}catch{}})}setupPredicates(){let e=this.options.predicates;e&&Object.entries(e).forEach(([e,t])=>{if(typeof t!=`function`){`${e}`;return}this.registerPredicate(e,t)})}setupActions(){let e=this.options.actions;e&&Object.entries(e).forEach(([e,t])=>{if(typeof t!=`function`){`${e}`;return}this.registerAction(e,t)})}setupComponents(){let e=this.options.components;e&&Object.entries(e).forEach(([e,t])=>{this.registerComponent(e,t)})}getPluginConfig=e=>this.plugins[e]??{};renderString=(e,t)=>{let n=this.responses.listStore.getState().reduce((e,t)=>(e[t.fieldId]=t.value,e),{});return we(e,{...t,responses:n})}};function $(e){return e.options?.some(e=>`condition`in e)??!1}function Te(e){return e.some(e=>e.condition||$(e))}async function Ee(t,n){return n.length===0||!Te(n)?n:(await Promise.all(n.map(async n=>{if(!(!n.condition||await e.l(t,n.condition)))return null;if(!n.options||!$(n))return n;let r=(await Promise.all(n.options.map(async n=>n.condition?await e.l(t,n.condition)?n:null:n))).filter(e=>e!==null);return r.length===n.options.length?n:r.length===0?null:{...n,options:r}}))).filter(e=>e!==null)}function De(e){return{$$type:`lazy-component`,load:e}}function Oe(e){return typeof e==`object`&&!!e&&`$$type`in e&&e.$$type===`lazy-component`}var ke=e=>{let t=new Q(e);return r.p(t),t};exports.Picked=Q,exports.createClient=ke,exports.createStorageKey=i.t,exports.evaluateRuleLogic=e.l,exports.getPickedConfig=Y,exports.getStepFields=Ee,exports.isLazyLoader=Oe,exports.isPickedRoot=e.s,exports.lazyComponent=De,exports.localStore=i.n,exports.sessionStore=i.r,exports.subscribe=i.i,exports.supportsCookies=r.t,exports.supportsCryptoRandomUUID=r.n,exports.supportsDocument=r.r,exports.supportsHistory=r.i,exports.supportsIntersectionObserver=r.a,exports.supportsLocalStorage=r.o,exports.supportsLocation=r.s,exports.supportsSessionStorage=r.c,exports.supportsShadowRoot=r.l,exports.supportsWebComponents=r.u,exports.supportsWindow=r.d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../logger-fbvQC40v.cjs`);const e=require(`../../../api-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../logger-fbvQC40v.cjs`);const e=require(`../../../api-BwTaomem.cjs`);function t(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function n(e){return t(e)%100}function r(e,t){return t<=0?!1:t>=100?!0:e<t}function i(e){return typeof e!=`object`||!e||!(`id`in e&&`name`in e&&`enabled`in e&&`weight`in e&&`version`in e)?!1:typeof e.id==`string`&&typeof e.name==`string`&&typeof e.enabled==`boolean`&&typeof e.weight==`number`&&typeof e.version==`number`}function a(e){return typeof e!=`object`||!e||!(`features`in e)||!Array.isArray(e.features)?!1:e.features.every(i)}function o(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function s(e){let t=new Set,n=e.searchParams.feature;if(!n)return t;for(let e of n){let n=e.indexOf(`:`);n>0&&t.add(e.substring(0,n))}return t}function c(e,t,r){let i=s(e),a=e.session?.id;if(!a)throw Error(`Session ID is required for feature registration`);let o=n(a);for(let n of t.features)i.has(n.id)||l(e,n,r,o)}function l(e,t,n,i){e.registerFeature(t.id,{key:`v${t.version}`,name:t.name,storage:n?`session`:`local`,decide:()=>t.enabled?r(i,t.weight):!1})}function u(){let e;try{e=__PICKED_PROJECT_CONFIG__}catch{return}if(e===void 0)return;let t;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return}else t=e;if(a(t))return t}function d(e){try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`}catch{return!1}}function f(e){if(typeof e!=`object`||!e||!(`cause`in e))return!1;let{cause:t}=e;return typeof t!=`object`||!t||!(`code`in t)?!1:t.code===`ECONNREFUSED`}async function p(t,n,r){let i=r?.previewToken?`projects/${n}?preview_token=${encodeURIComponent(r.previewToken)}`:`projects/${n}`,o;try{o=await e.t(t,i,r?.headers)}catch(e){return d(t)&&f(e),null}if(!o.ok)return`${o.status.toString()}`,null;let s;try{s=await o.json()}catch{return null}return a(s)?s:null}function m(e){return{name:`dynamic-experiences`,setup:t=>{let n=e?.apiUrl??t.apiUrl;return{onStart:async()=>{let r=o(t);if(r){let e=await p(n,t.projectId,{previewToken:r});e&&c(t,e,!0);return}let i=e?.projectConfig??u();if(i){c(t,i,!1);return}let a=await p(n,t.projectId);a&&c(t,a,!1)}}}}}exports.createClientHeaders=e.i,exports.dynamicExperiencesPlugin=m,exports.fetchProject=p;
|
package/dist/esm/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { t as l } from "../object-Clj5zVr1.js";
|
|
|
3
3
|
import { t as u } from "../logger-6z_gb4rA.js";
|
|
4
4
|
import { a as d, c as f, d as p, i as ee, l as m, n as h, o as g, p as te, r as _, s as ne, t as re, u as ie } from "../supports-0XIfd4-R.js";
|
|
5
5
|
import { i as ae, n as v, r as y, t as b } from "../storage-DyxpJ0pg.js";
|
|
6
|
-
import { n as x, r as oe } from "../api-
|
|
6
|
+
import { n as x, r as oe } from "../api-DWBcrf98.js";
|
|
7
7
|
import { t as se } from "../id-BniPxOdF.js";
|
|
8
8
|
import { attach as S, combine as C, createApi as w, createDomain as T, createEffect as E, createEvent as D, createStore as O, sample as k } from "effector";
|
|
9
9
|
import { createFactory as A, invoke as j } from "@withease/factories";
|
package/package.json
CHANGED
package/dist/api-C2lg7yBn.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Picked-Client`,t=`Picked-Version`;function n(n,r){return{[e]:n,[t]:r}}var r=()=>`0.0.50-next.4`,i=`v1`;function a(e,t){return new URL(`/api/${i}/${t}`,e).toString()}function o(e){return{...n(`sdk`,r()),...e}}async function s(e,t,n){let r=a(e,t);return fetch(r,{headers:o(n)})}async function c(e,t,n,r){let i=a(e,t);return fetch(i,{method:`POST`,headers:{"Content-Type":`application/json`,...o(r)},body:JSON.stringify(n)})}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|