@picked/client 0.0.79-next.2 → 0.0.79

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.
@@ -1 +1 @@
1
- require("./logger-CSTvAyyB.cjs");const e=require("./version-B3XxQZ-T.cjs");let t=require("@picked/delivery-api-client");function n(n){return{...n,headers:{...(0,t.createClientHeaders)(`sdk`,e.t()),...n?.headers},onWarn:(e,t)=>{}}}async function r(e,r,i){return(0,t.fetchProject)(e,r,n(i))}async function i(e,r,i,a){return(0,t.fetchExperienceContent)(e,r,i,n(a))}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
1
+ require("./logger-CSTvAyyB.cjs");const e=require("./version-DT_CPre0.cjs");let t=require("@picked/delivery-api-client");function n(n){return{...n,headers:{...(0,t.createClientHeaders)(`sdk`,e.t()),...n?.headers},onWarn:(e,t)=>{}}}async function r(e,r,i){return(0,t.fetchProject)(e,r,n(i))}async function i(e,r,i,a){return(0,t.fetchExperienceContent)(e,r,i,n(a))}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
@@ -1,5 +1,5 @@
1
1
  import "./logger-DMN6TxJJ.js";
2
- import { t as e } from "./version-C4B3GmRj.js";
2
+ import { t as e } from "./version-CVqMHRIa.js";
3
3
  import { createClientHeaders as t, fetchExperienceContent as n, fetchProject as r } from "@picked/delivery-api-client";
4
4
  //#region src/data-source/api.ts
5
5
  function i(n) {
package/dist/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../object-CIkt7Fkr.cjs"),t=require("../rules-logic-CGZIYgAI.cjs"),n=require("../logger-CSTvAyyB.cjs"),r=require("../supports-DBzjGaWD.cjs"),i=require("../dom-DlLH3FxV.cjs"),a=require("../experience-instance-Dej3P1sE.cjs"),o=require("../storage-DUw9UJ2h.cjs"),s=require("../version-B3XxQZ-T.cjs"),c=require("../id-Js-62re-.cjs"),l=require("../inert-script-report-ijRHPtcY.cjs");let u=require("effector"),d=require("@withease/factories");var f=(0,u.createDomain)(`experience`),p=(0,d.createFactory)(({client:e,experience:n})=>{let r=f.store(n),o=(0,u.createApi)(r,{merge(e,t){return{...e,...t.experience}}}),s=r.map(e=>({name:e.name,decisionLogic:e.condition,targetSelectors:e.targets,initializeOpenLogic:e.initializeOpen})),c=(0,u.combine)(r,e.components.listStore,(e,t)=>(e.componentName?t.find(t=>t.name===e.componentName):void 0)||t.find(t=>t.name===`experience:${e.id}`)||t.find(e=>e.name===`experience`),{skipVoid:!1}),l=(0,u.combine)(r,e.steps.indexStore,e.conditions.indexStore,(e,t,n)=>{let r=e.nodes.filter(a.u).map(e=>t[e.stepId]).filter(e=>e!==void 0),i=e.nodes.filter(a.l).map(e=>n[e.conditionId]).filter(e=>e!==void 0);return{steps:r,nodes:e.nodes,edges:e.edges,conditions:i}}),d=n.actions??[],p,m=(0,u.attach)({source:s,effect:(t,r)=>{let a=i.i(t.targetSelectors,n.id);a.forEach(({elements:e})=>e.forEach(e=>i.s(e,n.id))),i.t(a,n.id,n.key).forEach(t=>{r?e.experienceInstances.spawn(p,t,r):e.experienceInstances.spawn(p,t)})}}),h=(0,u.combine)({preconditionPassed:e.preconditionPassedStore,isUser:e.session.store.map(e=>e.isUser,{skipVoid:!1}),config:s}),g=(0,u.attach)({source:h,effect:async({preconditionPassed:r,isUser:a,config:o})=>{if(!r||!a)return!1;let{decisionLogic:s,targetSelectors:c}=o;return c.length===0||i.i(c,n.id).length<1?!1:s===void 0||!t.n(s)||await t.t(e,s)===!0}}),_=(0,u.createEffect)(async()=>{if(!e.contentLoader)return!0;try{await e.contentLoader({id:n.id,key:n.key})}catch{`${n.id}`}return!0}),v=(0,u.createEvent)(),y=(0,u.createEvent)(),b=f.createStore(void 0,{skipVoid:!1}).on(v,(e,t)=>t).on(y,(e,t)=>t);return(0,u.sample)({clock:v,target:g}),(0,u.sample)({clock:g.doneData,source:b,filter:(e,t)=>t,fn:e=>e,target:m}),(0,u.sample)({clock:g.doneData,filter:Boolean,target:_}),(0,u.sample)({clock:y,source:b,fn:e=>e,target:m}),(0,u.sample)({clock:y,target:_}),p={id:n.id,key:n.key,name:n.name,configStore:s,treeStore:l,componentStore:c,actions:d,merge:o.merge,initialiseFx:m,shouldInitialiseFx:g,initialiseRequested:v,initialiseDirectly:y,prepareExperienceContentFx:_},p});function m(e){return(0,d.invoke)(p,e)}var h=(0,d.createFactory)(({client:e})=>{let t=f.store({}),n=(0,u.createApi)(t,{register(e,t){return{...e,[t.id]:t}}}),r=(0,u.createEvent)(),i=(0,u.createEffect)(t=>{n.register(m({client:e,experience:t}))});(0,u.sample)({clock:r,source:t,filter:(e,t)=>e[t.id]!==void 0,fn:(e,t)=>({existing:e[t.id],experience:t})}).watch(({existing:e,experience:t})=>{e?.merge({experience:t,strategy:`override`})}),(0,u.sample)({clock:r,source:t,filter:(e,t)=>e[t.id]===void 0,fn:(e,t)=>t,target:i});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e],{skipVoid:!1})}function s(e){return t.map(t=>Object.values(t).find(t=>t.key===e)??t[e],{skipVoid:!1})}let c=(0,u.attach)({source:t,effect:(e,t)=>{let n=`key`in t?Object.values(e).find(e=>e.key===t.key):e[t.id];if(!n){`key`in t?`${t.key}`:`${t.id}`;return}let{options:r}=t;r?.bypassCondition?n.initialiseDirectly(r):n.initialiseRequested(r)}});return{register:r,get:o,getById:o,getByKey:s,launch:c,open:(0,u.attach)({source:{experiences:t,instances:e.experienceInstances.listStore},effect:async({experiences:e,instances:t},n)=>{let r=`key`in n?Object.values(e).find(e=>e.key===n.key):e[n.id],i=t.filter(e=>e.experienceId===r?.id);if(i.length>0){for(let e of i)e.open();return}let a=`key`in n?{key:n.key,options:{...n.options,initialiseOpen:!0}}:{id:n.id,options:{...n.options,initialiseOpen:!0}};await c(a)}}),listStore:a,initialiseExperiencesFx:(0,u.attach)({source:a,effect:e=>{for(let t of e)t.initialiseRequested(void 0)}})}});function g(e){return(0,d.invoke)(h,e)}var _=async e=>{await e.experiences.initialiseExperiencesFx()};function v(e){return(0,u.createEffect)(async()=>{await e()})}var y=(e,t,n)=>{let r=t.name,i=t.setup(e),a=n[r]??{};n[r]=Object.freeze({...a,...i})},b=(0,u.createDomain)(`component`),x=(0,d.createFactory)(({client:e,component:t,name:n})=>({name:n,component:t,frameworkStore:e.frameworks.getByName(t.frameworkName)}));function S(e){return(0,d.invoke)(x,e)}var C=(0,d.createFactory)(({client:e})=>{let t=b.store({}),r=(0,u.createApi)(t,{register(e,t){return{...e,[t.name]:t}}}),i=(0,u.createEvent)();(0,u.sample)({clock:i,source:t,filter:(e,{name:t})=>e[t]!==void 0,fn:(e,{name:t})=>`Component '${t}' already registered. Registering again will override the previous registration.`}).watch(e=>n.t(`warn`,e)),(0,u.sample)({clock:i,fn:({name:t,component:n})=>S({client:e,name:t,component:n}),target:r.register});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:i,getByName:o,listStore:a}});function w(e){return(0,d.invoke)(C,e)}var T=(e,t,n)=>{n.register({name:e,component:t})},E=(0,u.createDomain)(`framework`),D=(0,d.createFactory)(e=>{let t=E.store({}),r=(0,u.createApi)(t,{register(e,t){return{...e,[t.name]:t.framework}}}),i=(0,u.createEvent)();(0,u.sample)({clock:i,source:t,filter:(e,{name:t})=>e[t]!==void 0,fn:(e,{name:t})=>`Framework '${t}' already registered. Registering again will override the previous registration.`}).watch(e=>n.t(`warn`,e)),(0,u.sample)({clock:i,target:r.register});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:i,getByName:o,listStore:a}});function ee(e){return(0,d.invoke)(D,e)}var O=(e,t)=>{t.register({name:e.name,framework:e})},te=(0,d.createFactory)(({client:e})=>{let t=`window`in globalThis,n={location:t?globalThis.location:void 0,document:t?globalThis.document:void 0,sessionStorage:t?globalThis.sessionStorage:void 0,localStorage:t?globalThis.localStorage:void 0};return(0,u.combine)(e.responses.listStore,e.fields.listStore,(t,r)=>Object.freeze({client:e,responses:t,fields:r,...n}))});function k(e){return(0,d.invoke)(te,e)}function ne(e){return typeof e==`number`&&!isNaN(e)}function A(e){return typeof e==`string`}function j(e){return Array.isArray(e)}function M(e){return e instanceof Promise}function N(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.keys(e).length===1}function P(e){if(ne(e))return e;let t=parseFloat(`${e}`);return isNaN(t)?0:t}function F(e){return`${e}`}var re={"==":(e,t)=>e==t,"===":(e,t)=>e===t,"!=":(e,t)=>e!=t,"!==":(e,t)=>e!==t,">":(e,t)=>P(e)>P(t),">=":(e,t)=>P(e)>=P(t),"<":(e,t,n)=>{let r=P(e),i=P(t);if(n===void 0)return r<i;let a=P(n);return r<i&&i<a},"<=":(e,t,n)=>{let r=P(e),i=P(t);if(n===void 0)return r<=i;let a=P(n);return r<=i&&i<=a},"!!":async e=>await L(e),"!":async e=>!await L(e),"%":(e,t)=>P(e)%P(t),log:e=>(console.log(e),e),in:(e,t)=>t?A(t)?t.indexOf(F(e))!==-1:j(t)?t.includes(e):!1:!1,cat:(...e)=>e.map(F).join(``),substr:(e,t,n)=>{let r=F(e),i=P(t);if(n===void 0)return r.substr(i);let a=P(n);if(a<0){let e=r.substr(i);return e.substr(0,e.length+a)}return r.substr(i,a)},"+":(...e)=>e.reduce((e,t)=>P(e)+P(t),0),"*":(...e)=>e.reduce((e,t)=>P(e)*P(t),1),"-":(e,t)=>{let n=P(e);return t===void 0?-n:n-P(t)},"/":(e,t)=>P(e)/P(t),min:(...e)=>Math.min(...e.map(P)),max:(...e)=>Math.max(...e.map(P)),merge:(...e)=>e.reduce((e,t)=>j(t)?e.concat(t):e.concat([t]),[]),var(e,t){let n=arguments.length>1?t:null;if(e===``||e===`.`||e==null)return this;if(typeof e==`number`&&Array.isArray(this))return e>=0&&e<this.length?this[e]:n;let r=F(e);if(r===``||r===`.`)return this;let i=r.split(`.`),a=this;for(let e of i){if(a==null)return n;if(Array.isArray(a)){let t=parseInt(e,10);a=isNaN(t)?a[e]:a[t]}else a=a[e]}return a===void 0?n:a},async missing(...e){let t=j(e[0])?e[0]:e,n=[];for(let e of t){let t=await I({var:e},this);(t===null||t===``)&&n.push(`${e}`)}return n},async missing_some(e,t){let n=await I({missing:t},this);if(!j(n)||!j(t))return[];let r=n.filter(A);return t.filter(A).length-r.length>=P(e)?[]:r},invoke(...e){let[t,...n]=e;return typeof t==`function`?Reflect.apply(t,null,n):null},startsWith:(e,t)=>A(e)&&A(t)&&e.startsWith(t),endsWith:(e,t)=>A(e)&&A(t)&&e.endsWith(t),regexp_matches(e,t){let n=e,r=``;if(j(e)){let[t,i]=e;n=t,r=i}return!A(n)||!A(r)?!1:new RegExp(n,r).test(F(t))},throw(e){throw Error(F(e))}};async function I(e,t){if(!e)return e;if(M(e))return I(await e,t);if(j(e))return Promise.all(e.map(e=>I(e,t)));if(!N(e))return e;let n=ie(e),r=n?e[n]??[]:[];switch(j(r)||(r=[r]),n){case`if`:case`?:`:for(let e=0;e<r.length-1;e+=2)if(await L(await I(r[e],t)))return I(r[e+1],t);return r.length%2==1?I(r[r.length-1],t):null;case`and`:{let e=null;for(let n of r)if(e=await I(n,t),!await L(e))return e;return e}case`or`:{let e=null;for(let n of r)if(e=await I(n,t),await L(e))return e;return e}case`map`:{let e=await I(r[0],t);return j(e)?await Promise.all(e.map(e=>I(r[1],e))):[]}case`filter`:{let e=await I(r[0],t);return j(e)?(await Promise.all(e.map(async e=>({item:e,shouldInclude:await L(await I(r[1],e))})))).filter(({shouldInclude:e})=>e).map(({item:e})=>e):[]}case`reduce`:{let e=await I(r[0],t);if(!j(e))return r.length>2?await I(r[2],t):null;let n=r[1],i=r.length>2?await I(r[2],t):null;for(let t of e)i=await I(n,{current:t,accumulator:i});return i}case`all`:{let e=await I(r[0],t);if(!j(e)||e.length===0)return!1;for(let t of e)if(!await L(await I(r[1],t)))return!1;return!0}case`some`:{let e=await I(r[0],t);if(!j(e))return!1;for(let t of e)if(await L(await I(r[1],t)))return!0;return!1}case`none`:{let e=await I(r[0],t);if(!j(e))return!0;for(let t of e)if(await L(await I(r[1],t)))return!1;return!0}case`catch`:try{return await I(r[0],t)}catch(e){return N(e)?await I(e,t):r[1]?await I(r[1],e):e instanceof Error?e.message:e}}let i=await Promise.all(r.map(e=>I(e,t))),a=n?re[n]:void 0;if(!a)throw Error(`Unrecognized operation ${n}`);return a.apply(t,i)}async function L(e){return M(e)?L(await e):!(Array.isArray(e)&&e.length===0)&&!!e}function ie(e){return Object.keys(e)[0]}function ae(e,t,n){return new Proxy(Object.create(null),{get(r,i){if(typeof i!=`string`)return;let a=e.find(e=>e.key===i);if(a!==void 0)return async()=>!n.has(i)&&await I(a.logic,{...t,conditions:ae(e,t,new Set(n).add(i))})===!0}})}var oe=(0,d.createFactory)(({client:e})=>(0,u.attach)({source:{stateSnapshot:e.stateSnapshotStore,predicates:e.predicates.listStore,actions:e.actions.listStore,features:e.features.listStore,responses:e.responses.getAllStore,conditions:e.conditions.listStore},effect:async({stateSnapshot:e,predicates:t,actions:n,features:r,responses:i,conditions:a},{rule:o,context:s})=>{let c=t.reduce((t,n)=>(t[n.name]=async(...t)=>await n.predicate({...e,args:t}),t),{}),l=n.reduce((t,n)=>(t[n.key]=async(...t)=>await n.action({...e,args:t},null)??void 0,t),{}),u=r.reduce((e,t)=>(e[t.id]=async()=>{let{bucket:e}=await t.getBucket();return e},e),{}),d={responses:i,location:typeof e.location==`object`?{hash:e.location.hash,host:e.location.host,hostname:e.location.hostname,href:e.location.href,origin:e.location.origin,pathname:e.location.pathname,port:e.location.port,protocol:e.location.protocol,search:e.location.search}:void 0,predicates:c,actions:l,features:u,...s};return await I(o,{...d,conditions:ae(a,d,new Set)})}}));function se(e){return(0,d.invoke)(oe,e)}var R=(0,u.createDomain)(`lifecycle`),ce=(0,d.createFactory)(({client:e})=>{let n=R.store(!1),a=(0,u.createStore)(void 0,{skipVoid:!1,domain:R}),o=(0,u.createStore)(void 0,{skipVoid:!1,domain:R}),s=R.store(`idle`),c=R.store([]),l=(0,u.createStore)(void 0,{skipVoid:!1,domain:R}),d=(0,u.createStore)(void 0,{skipVoid:!1,domain:R}),f=(0,u.createEvent)(),p=(0,u.createEvent)(),m=(0,u.createEvent)(),h=(0,u.createEvent)(),g=(0,u.createEvent)(),v=(0,u.createEvent)();c.on(h,(e,t)=>[...e,t]),l.on(g,(e,t)=>t),d.on(v,(e,t)=>t),n.on(p,()=>!0);let y=(0,u.createEffect)(async()=>{await i.r()}),b=(0,u.createEffect)(async()=>{await _(e)}),x=(0,u.attach)({effect:b}),S=(0,u.attach)({source:c,effect:async e=>{for(let t of e)await t()}}),C=(0,u.attach)({source:l,effect:async n=>n===void 0?!0:typeof n==`boolean`?n:await t.t(e,n)===!0}),w=(0,u.attach)({source:d,effect:async n=>n===void 0?!0:typeof n==`boolean`?n:await t.t(e,n)===!0}),T=(0,u.sample)({clock:f,source:s,filter:e=>e===`idle`&&r.i(),fn:()=>void 0});(0,u.sample)({clock:T,fn:()=>`starting`,target:s}),T.watch(e.performance.markBegin),p.watch(e.performance.measure),(0,u.sample)({clock:T,target:S}),(0,u.sample)({clock:T,target:y}),(0,u.sample)({clock:S.done,target:C}),(0,u.sample)({clock:C.doneData,target:a}),(0,u.sample)({clock:w.doneData,target:o}),(0,u.sample)({clock:C.doneData,filter:e=>e,target:w}),(0,u.sample)({clock:w.doneData,target:e.session.setIsUser}),(0,u.sample)({clock:w.doneData,fn:e=>({type:`user_decide`,value:e}),target:e.eventBus}),(0,u.sample)({clock:C.doneData,filter:e=>!e,fn:()=>void 0,target:m}),(0,u.sample)({clock:w.doneData,fn:()=>void 0,target:m}),(0,u.sample)({clock:m,fn:()=>({type:`initialize`}),target:e.eventBus});let E=(0,u.createStore)(!1).on(y.done,()=>!0),D=(0,u.createStore)(!1).on(m,()=>!0),ee=(0,u.createStore)(!1).on(x.done,()=>!0),O=(0,u.combine)(a,o,(e,t)=>e===!0&&t===!0);(0,u.sample)({clock:m,source:O,filter:e=>e,fn:()=>void 0,target:b});let te=(0,u.combine)(E,D,O,(e,t,n)=>e&&t&&n);(0,u.sample)({clock:te,filter:e=>e,fn:()=>void 0,target:x});let k=(0,u.combine)(E,D,O,ee,(e,t,n,r)=>e&&t&&(!n||r));return(0,u.sample)({clock:k,filter:e=>e,fn:()=>void 0,target:p}),(0,u.sample)({clock:p,fn:()=>`ready`,target:s}),(0,u.sample)({clock:p,fn:()=>({type:`ready`}),target:e.eventBus}),(0,u.sample)({clock:p,source:e.session.store,fn:({id:e,isUser:t,identifiers:n})=>({type:`session`,id:e,isUser:t,identifiers:n}),target:e.eventBus}),(0,u.sample)({clock:[S.fail,C.fail,w.fail,b.fail,x.fail,y.fail],fn:()=>`failed`,target:s}),{start:f,readyStore:n,preconditionPassedStore:a,conditionPassedStore:o,lifecycleStageStore:s,registerPluginStartHook:h,setPrecondition:g,setCondition:v}});function le(e){return(0,d.invoke)(ce,e)}var ue=(0,u.createDomain)(`predicate`),de=(0,d.createFactory)(({client:e})=>{let t=ue.store({}),r=(0,u.createApi)(t,{register(e,t){return{...e,[t.name]:{name:t.name,predicate:t.predicate}}}}),i=(0,u.createEvent)();(0,u.sample)({clock:i,source:t,filter:(e,{name:t})=>e[t]!==void 0,fn:(e,{name:t})=>`Predicate '${t}' already registered. Registering again will override the previous registration.`}).watch(e=>n.t(`warn`,e)),(0,u.sample)({clock:i,fn:({name:e,predicate:t})=>Object.freeze({name:e,predicate:t}),target:r.register});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e]?.predicate,{skipVoid:!1})}function s(t){let n=(0,u.createStore)(()=>void 0,{skipVoid:!1}),r=(0,u.attach)({source:{predicate:o(t),snapshot:e.stateSnapshotStore},effect:({predicate:e,snapshot:t})=>{if(e)return(...n)=>e({...t,args:n})}});return(0,u.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:r}),(0,u.sample)({clock:r.doneData,filter:e=>e!==void 0,target:n}),r(),n}return{register:i,getByName:o,listStore:a,getEvokablePredicate:s}});function fe(e){return(0,d.invoke)(de,e)}var pe=(e,t,n)=>{n.register({name:e,predicate:t})},z=(0,u.createDomain)(`history`);function B(e,t){return{id:c.t(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}var me=(0,d.createFactory)(()=>{let e=z.store({entries:[]}),t=z.event(),n=z.event(),r=z.event(),i=z.event();e.on(t,(e,t)=>({entries:[...e.entries,B(t.experienceId,t.node)]})),e.on(n,(e,t)=>({entries:[...e.entries.slice(0,-1),B(t.experienceId,t.node)]})),e.on(i,(e,t)=>t);function o(e,t){let n={lastStepIndex:-1,secondLastStepIndex:-1};for(let r=e.length-1;r>=0;r--){let i=e[r],o=i?.node;if(!(!o||!a.u(o))&&!(t&&i.experienceId!==t))if(n.lastStepIndex===-1)n.lastStepIndex=r;else{n.secondLastStepIndex=r;break}}return n}return e.on(r,(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:t,replace:n,back:r,restore:i,entriesStore:e.map(e=>e.entries)}});function he(){return(0,d.invoke)(me)}var ge=0,_e=e=>{let t=(0,u.createStore)([]);return t.on(e,(e,t)=>[...e,{id:ge++,at:new Date,payload:t}]),t};function V(e){let{doNotTrackValue:t,doNotStoreValue:n}=e??{},r=e?.trackValue??t===!1,i=e?.storeValue??n===!1;return{trackValue:r,storeValue:i,doNotTrackValue:!r,doNotStoreValue:!i}}var ve=(0,u.createDomain)(`field`),ye=(0,d.createFactory)(()=>{let e=ve.store({}),t=(0,u.createApi)(e,{register(e,t){let n=Object.assign({},t.field,{policies:V(t.field.policies)});return{...e,[n.id]:n}},updateByKey(e,t){let n=Object.values(e).find(e=>e.key===t.fieldKey);if(!n)return e;let r=Object.assign({},n,t.updates);return{...e,[n.id]:Object.assign({},r,{policies:V(r.policies)})}}});function n(e){t.register({field:e})}let r={};e.watch(e=>{r=e});function i(e,n){let i=Object.values(r).find(t=>t.key===e)?.key;i&&t.updateByKey({fieldKey:i,updates:n})}let a=e.map(e=>Object.values(e));function o(t){return e.map(e=>e[t]??null,{skipVoid:!1})}function s(t){return e.map(e=>Object.values(e).find(e=>e.key===t)??null,{skipVoid:!1})}function c(t){return e.map(e=>Object.values(e).find(e=>e.name===t)??null,{skipVoid:!1})}return{register:n,update:i,getById:o,getByKey:s,listStore:a,getByName:c}});function be(){return(0,d.invoke)(ye)}var xe=(0,u.createDomain)(`step`),Se=(0,d.createFactory)(()=>{let e=xe.store({}),t=(0,u.createApi)(e,{register(e,t){return{...e,[t.step.id]:t.step}}});function n(e){t.register({step:e})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t]??null,{skipVoid:!1})}function a(t){return e.map(e=>Object.values(e).find(e=>e.key===t)??null,{skipVoid:!1})}return{register:n,getById:i,getByKey:a,listStore:r,indexStore:e}});function Ce(){return(0,d.invoke)(Se)}function we(e,t){t.register(e)}var Te=(0,u.createDomain)(`content`),Ee=(0,d.createFactory)(()=>{let e=Te.store({}),t=(0,u.createApi)(e,{register(e,t){return{...e,[t.content.id]:t.content}},patch(e,t){let n=e[t.id];if(!n)return e;let r=t.apply(n.data);return r===n.data?e:{...e,[t.id]:{...n,data:r}}}});function n(e){t.register({content:e})}function r(e,n){t.patch({id:e,apply:n})}let i=e.map(e=>Object.values(e));function a(t){return e.map(e=>e[t]??null,{skipVoid:!1})}return{register:n,patch:r,getById:a,listStore:i,indexStore:e}});function De(){return(0,d.invoke)(Ee)}function Oe(e,t){t.register(e)}var ke=(0,u.createDomain)(`action`),Ae=(0,d.createFactory)(({client:e})=>{let t=ke.store({}),r=(0,u.createApi)(t,{register(e,t){return{...e,[t.key]:{key:t.key,action:t.action}}}}),i=(0,u.createEvent)();(0,u.sample)({clock:i,source:t,filter:(e,{key:t})=>e[t]!==void 0,fn:(e,{key:t})=>`Action '${t}' already registered. Registering again will override the previous registration.`}).watch(e=>n.t(`warn`,e)),(0,u.sample)({clock:i,fn:({key:e,action:t})=>Object.freeze({key:e,action:t}),target:r.register});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e]?.action,{skipVoid:!1})}function s(t,n){let r=(0,u.createStore)(()=>void 0,{skipVoid:!1}),i=n?{experience:n.experience}:null,a=(0,u.attach)({source:{action:o(t),snapshot:e.stateSnapshotStore},effect:({action:e,snapshot:t})=>{if(e)return(...n)=>e({...t,args:n},i)}});return(0,u.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:a}),(0,u.sample)({clock:a.doneData,filter:e=>e!==void 0,target:r}),a(),r}return{register:i,getByKey:o,listStore:a,getEvokableAction:s}});function je(e){return(0,d.invoke)(Ae,e)}var Me=(e,t,n)=>{n.register({key:e,action:t})};function H(e,t,n,r){return{fieldKey:e.key,userMessage:n,systemMessage:r,value:t}}function U(e){return e===null||e===``||Array.isArray(e)&&!e.length}function Ne(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e===null}function W(e){try{return JSON.stringify(e),!0}catch{return!1}}function Pe(e,t){return t.find(t=>t.key===e)??null}function Fe(e,t){return e.multiple&&(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)?[t]:t}function Ie(e,t){if(e.type!==`object`||U(t))return null;if(e.multiple){if(!Array.isArray(t))return H(e,t,`This field expects multiple values`,`Field expects an array of objects.`);for(let n of t){if(typeof n!=`object`||!n)return H(e,t,`This field expects object values`,`Field expects an array of objects, but received non-object value.`);if(!W(n))return H(e,t,`This field contains non-serializable data`,`Field value contains non-JSON-serializable data (functions, circular references, etc.).`)}return null}return Array.isArray(t)?H(e,t,`This field expects a single value`,`Field expects a single object, not an array.`):typeof t!=`object`||!t?H(e,t,`This field expects an object value`,`Field expects an object value.`):W(t)?null:H(e,t,`This field contains non-serializable data`,`Field value contains non-JSON-serializable data (functions, circular references, etc.).`)}function Le(e,t){if(U(t)||!Array.isArray(e.options)||e.options.length===0)return null;let n=Array.isArray(t)?t:[t];if(e.type===`object`){let r=new Set(e.options.map(e=>JSON.stringify(e.value)));return n.every(e=>r.has(JSON.stringify(e)))?null:H(e,t,`This field expects a valid option`,`Field expects a valid option from the defined choices.`)}let r=e.options.map(e=>e.value);return n.every(e=>!Ne(e)||e===null?!1:r.includes(e))?null:H(e,t,`This field expects a valid option`,`Field expects a valid option. Valid options are: ${r.join(`, `)}`)}async function Re(t,n,r,i){if(n.validation&&!e.t(n.validation)&&!U(r)){let e=i?{$input:r,responses:i}:{$input:r},a=await t(n.validation,e);if(typeof a==`string`)return H(n,r,a,`Field validation resulted in an error: ${a}.`);if(a===!1)return H(n,r,`This field is invalid`,`Field validation resulted in an unspecified error.`)}return n.required&&U(r)?H(n,r,`This field is required`,`Field is required.`):!n.multiple&&Array.isArray(r)&&r.length>1?H(n,r,`This field expects a single response`,`Field expects a single response.`):null}var ze=(0,u.createDomain)(`response`),Be=(0,d.createFactory)(({client:e})=>{let n=ze.store({}),r=(0,u.createEvent)(),i=(0,u.createEvent)(),a=(0,u.createApi)(n,{register(e,t){return{...e,[t.fieldKey]:t.response}},registerBatch(e,t){return{...e,...t}},clear(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>e!==t))},clearAll(){return{}}});function o(e,t){if(typeof e==`string`){if(t===void 0)throw Error(`Response is required when registering a single field`);a.register({fieldKey:e,response:t})}else a.registerBatch(e)}let s=(n,r)=>t.t(e,n,r),c=(0,u.attach)({source:{allFields:e.fields.listStore,existingResponses:n},effect:async({allFields:e,existingResponses:t},n)=>{let r=[],i={},a={...t,...n},o=Object.entries(n),c=await Promise.allSettled(o.map(async([t,n])=>{let o=Pe(t,e);if(!o){r.push({fieldKey:t,userMessage:`Field '${t}' not found`,systemMessage:`No field with key '${t}' exists. Available field keys are: ${e.map(e=>e.key).join(`,`)}.`,value:n});return}let c=Fe(o,n),l=await Re(s,o,c,a);if(l){r.push(l);return}let u=Ie(o,c);if(u){r.push(u);return}let d=Le(o,c);if(d){r.push(d);return}i[o.key]=n}));for(let[e,t]of c.entries()){if(t.status!==`rejected`)continue;let n=o[e];if(!n)continue;let[i,a]=n,s=t.reason instanceof Error?t.reason.message:String(t.reason);r.push({fieldKey:i,userMessage:`An unexpected error occurred validating this field`,systemMessage:`Validation threw for field '${i}': ${s}`,value:a})}return{responsesToCommit:i,validationErrors:r}}});async function l(e){return c(e)}let d=(0,u.attach)({source:n,effect:async(e,t)=>{let{responsesToCommit:n,validationErrors:r}=await c(t);return r.length?{errors:r}:(a.registerBatch(n),{errors:[]})}});async function f(e){return d(e)}let p=n.map(e=>e),m=n.map(e=>Object.entries(e).map(([e,t])=>({fieldKey:e,value:t})));function h(e){return(0,u.combine)({f:e,s:n},({f:e,s:t})=>{let n=e?t[e.key]??null:null;return n===null?e?.defaultValue!==void 0&&e.defaultValue!==null?e.defaultValue:null:n})}function g(t){return h(e.fields.getById(t))}function _(t){return h(e.fields.getByKey(t))}function v(t){return h(e.fields.getByName(t))}return(0,u.sample)({clock:r,target:a.clearAll}),(0,u.sample)({clock:i,target:a.clear}),{register:o,clearAll:r,clear:i,commit:f,getResponsesToCommit:l,listStore:m,getAllStore:p,getByFieldId:g,getByFieldKey:_,getByFieldName:v}});function Ve(e){return(0,d.invoke)(Be,e)}var He=(0,u.createDomain)(`condition`),Ue=(0,d.createFactory)(()=>{let e=He.store({}),t=(0,u.createApi)(e,{register(e,t){return{...e,[t.condition.id]:t.condition}}});function n(e){t.register({condition:e})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t]??null,{skipVoid:!1})}function a(t){return e.map(e=>Object.values(e).find(e=>e.key===t)??null,{skipVoid:!1})}return{register:n,getById:i,getByKey:a,listStore:r,indexStore:e}});function We(){return(0,d.invoke)(Ue)}function Ge(){if(r.i()){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 G(){if(!r.f())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 i=o.t(`s`);if(n.size>0)o.r.set(i,t);else{let e=o.r.get(i);if(e)return e.json()||{}}return t}var Ke=`picked:start:begin`,qe=`picked:start`;function K(){try{return r.f()&&!!r.p.window&&`performance`in r.p}catch{return!1}}function Je(){let e=null,t=null;return{markBegin:()=>{if(K())try{e=performance.mark(Ke).startTime}catch{}},measure:()=>{if(!(!K()||e===null))try{t=performance.measure(qe,{start:e})}catch{}},get startMeasure(){return t}}}function Ye(){let e=null;return{observeDeliveryAPIRequests:t=>{e=t},get deliveryAPIRequestObserver(){return e}}}var q=o.t(`session`,`global`);function Xe(){return r.r()?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)}`}function Ze(){if(!r.s())return null;let e=o.n.get(q);if(!e.isSet())return null;try{return e.json()}catch{return null}}var Qe=(0,d.createFactory)(()=>{let e=Ze(),t={id:e?.id??Xe()};e?.isUser!==void 0&&(t.isUser=e.isUser),e?.identifiers&&Object.keys(e.identifiers).length>0&&(t.identifiers=e.identifiers);let n=(0,u.createStore)(t),i=(0,u.createApi)(n,{setIsUser:(e,t)=>({...e,isUser:t}),setIdentifier:(e,{key:t,value:n})=>({...e,identifiers:{...e.identifiers??{},[t]:n}}),removeIdentifier:(e,t)=>{let n=e.identifiers;if(!n||!(t in n))return e;let r={};for(let[e,i]of Object.entries(n))e!==t&&(r[e]=i);let i={id:e.id};return e.isUser!==void 0&&(i.isUser=e.isUser),Object.keys(r).length>0&&(i.identifiers=r),i}}),a=(0,u.attach)({source:n,effect:e=>{if(r.s())try{o.n.get(q).set(e)}catch{}}});return(0,u.sample)({source:n,target:a}),{store:n,setIsUser:i.setIsUser,setIdentifier:i.setIdentifier,removeIdentifier:i.removeIdentifier}});function $e(){return(0,d.invoke)(Qe,void 0)}function et(){if(r.f())return globalThis.window.pickedConfig}function tt(){if(r.f())return et()?.projectId}function nt(){if(!r.i())return;let e=document.getElementById(`picked_script`)||document.querySelector(`script#picked`)||document.getElementById(`cvly`);if(e)return e.dataset.projectid||e.getAttribute(`project-id`)||void 0}function rt(e){if(e.projectId)return e.projectId;let t=tt();if(t)return t;let n=nt();if(n)return n;throw Error(`projectId is required. You can provide it via one of:
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../object-CIkt7Fkr.cjs"),t=require("../rules-logic-CGZIYgAI.cjs"),n=require("../logger-CSTvAyyB.cjs"),r=require("../supports-DBzjGaWD.cjs"),i=require("../dom-DlLH3FxV.cjs"),a=require("../experience-instance-Dej3P1sE.cjs"),o=require("../storage-DUw9UJ2h.cjs"),s=require("../version-DT_CPre0.cjs"),c=require("../id-Js-62re-.cjs"),l=require("../inert-script-report-ijRHPtcY.cjs");let u=require("effector"),d=require("@withease/factories");var f=(0,u.createDomain)(`experience`),p=(0,d.createFactory)(({client:e,experience:n})=>{let r=f.store(n),o=(0,u.createApi)(r,{merge(e,t){return{...e,...t.experience}}}),s=r.map(e=>({name:e.name,decisionLogic:e.condition,targetSelectors:e.targets,initializeOpenLogic:e.initializeOpen})),c=(0,u.combine)(r,e.components.listStore,(e,t)=>(e.componentName?t.find(t=>t.name===e.componentName):void 0)||t.find(t=>t.name===`experience:${e.id}`)||t.find(e=>e.name===`experience`),{skipVoid:!1}),l=(0,u.combine)(r,e.steps.indexStore,e.conditions.indexStore,(e,t,n)=>{let r=e.nodes.filter(a.u).map(e=>t[e.stepId]).filter(e=>e!==void 0),i=e.nodes.filter(a.l).map(e=>n[e.conditionId]).filter(e=>e!==void 0);return{steps:r,nodes:e.nodes,edges:e.edges,conditions:i}}),d=n.actions??[],p,m=(0,u.attach)({source:s,effect:(t,r)=>{let a=i.i(t.targetSelectors,n.id);a.forEach(({elements:e})=>e.forEach(e=>i.s(e,n.id))),i.t(a,n.id,n.key).forEach(t=>{r?e.experienceInstances.spawn(p,t,r):e.experienceInstances.spawn(p,t)})}}),h=(0,u.combine)({preconditionPassed:e.preconditionPassedStore,isUser:e.session.store.map(e=>e.isUser,{skipVoid:!1}),config:s}),g=(0,u.attach)({source:h,effect:async({preconditionPassed:r,isUser:a,config:o})=>{if(!r||!a)return!1;let{decisionLogic:s,targetSelectors:c}=o;return c.length===0||i.i(c,n.id).length<1?!1:s===void 0||!t.n(s)||await t.t(e,s)===!0}}),_=(0,u.createEffect)(async()=>{if(!e.contentLoader)return!0;try{await e.contentLoader({id:n.id,key:n.key})}catch{`${n.id}`}return!0}),v=(0,u.createEvent)(),y=(0,u.createEvent)(),b=f.createStore(void 0,{skipVoid:!1}).on(v,(e,t)=>t).on(y,(e,t)=>t);return(0,u.sample)({clock:v,target:g}),(0,u.sample)({clock:g.doneData,source:b,filter:(e,t)=>t,fn:e=>e,target:m}),(0,u.sample)({clock:g.doneData,filter:Boolean,target:_}),(0,u.sample)({clock:y,source:b,fn:e=>e,target:m}),(0,u.sample)({clock:y,target:_}),p={id:n.id,key:n.key,name:n.name,configStore:s,treeStore:l,componentStore:c,actions:d,merge:o.merge,initialiseFx:m,shouldInitialiseFx:g,initialiseRequested:v,initialiseDirectly:y,prepareExperienceContentFx:_},p});function m(e){return(0,d.invoke)(p,e)}var h=(0,d.createFactory)(({client:e})=>{let t=f.store({}),n=(0,u.createApi)(t,{register(e,t){return{...e,[t.id]:t}}}),r=(0,u.createEvent)(),i=(0,u.createEffect)(t=>{n.register(m({client:e,experience:t}))});(0,u.sample)({clock:r,source:t,filter:(e,t)=>e[t.id]!==void 0,fn:(e,t)=>({existing:e[t.id],experience:t})}).watch(({existing:e,experience:t})=>{e?.merge({experience:t,strategy:`override`})}),(0,u.sample)({clock:r,source:t,filter:(e,t)=>e[t.id]===void 0,fn:(e,t)=>t,target:i});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e],{skipVoid:!1})}function s(e){return t.map(t=>Object.values(t).find(t=>t.key===e)??t[e],{skipVoid:!1})}let c=(0,u.attach)({source:t,effect:(e,t)=>{let n=`key`in t?Object.values(e).find(e=>e.key===t.key):e[t.id];if(!n){`key`in t?`${t.key}`:`${t.id}`;return}let{options:r}=t;r?.bypassCondition?n.initialiseDirectly(r):n.initialiseRequested(r)}});return{register:r,get:o,getById:o,getByKey:s,launch:c,open:(0,u.attach)({source:{experiences:t,instances:e.experienceInstances.listStore},effect:async({experiences:e,instances:t},n)=>{let r=`key`in n?Object.values(e).find(e=>e.key===n.key):e[n.id],i=t.filter(e=>e.experienceId===r?.id);if(i.length>0){for(let e of i)e.open();return}let a=`key`in n?{key:n.key,options:{...n.options,initialiseOpen:!0}}:{id:n.id,options:{...n.options,initialiseOpen:!0}};await c(a)}}),listStore:a,initialiseExperiencesFx:(0,u.attach)({source:a,effect:e=>{for(let t of e)t.initialiseRequested(void 0)}})}});function g(e){return(0,d.invoke)(h,e)}var _=async e=>{await e.experiences.initialiseExperiencesFx()};function v(e){return(0,u.createEffect)(async()=>{await e()})}var y=(e,t,n)=>{let r=t.name,i=t.setup(e),a=n[r]??{};n[r]=Object.freeze({...a,...i})},b=(0,u.createDomain)(`component`),x=(0,d.createFactory)(({client:e,component:t,name:n})=>({name:n,component:t,frameworkStore:e.frameworks.getByName(t.frameworkName)}));function S(e){return(0,d.invoke)(x,e)}var C=(0,d.createFactory)(({client:e})=>{let t=b.store({}),r=(0,u.createApi)(t,{register(e,t){return{...e,[t.name]:t}}}),i=(0,u.createEvent)();(0,u.sample)({clock:i,source:t,filter:(e,{name:t})=>e[t]!==void 0,fn:(e,{name:t})=>`Component '${t}' already registered. Registering again will override the previous registration.`}).watch(e=>n.t(`warn`,e)),(0,u.sample)({clock:i,fn:({name:t,component:n})=>S({client:e,name:t,component:n}),target:r.register});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:i,getByName:o,listStore:a}});function w(e){return(0,d.invoke)(C,e)}var T=(e,t,n)=>{n.register({name:e,component:t})},E=(0,u.createDomain)(`framework`),D=(0,d.createFactory)(e=>{let t=E.store({}),r=(0,u.createApi)(t,{register(e,t){return{...e,[t.name]:t.framework}}}),i=(0,u.createEvent)();(0,u.sample)({clock:i,source:t,filter:(e,{name:t})=>e[t]!==void 0,fn:(e,{name:t})=>`Framework '${t}' already registered. Registering again will override the previous registration.`}).watch(e=>n.t(`warn`,e)),(0,u.sample)({clock:i,target:r.register});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e],{skipVoid:!1})}return{register:i,getByName:o,listStore:a}});function ee(e){return(0,d.invoke)(D,e)}var O=(e,t)=>{t.register({name:e.name,framework:e})},te=(0,d.createFactory)(({client:e})=>{let t=`window`in globalThis,n={location:t?globalThis.location:void 0,document:t?globalThis.document:void 0,sessionStorage:t?globalThis.sessionStorage:void 0,localStorage:t?globalThis.localStorage:void 0};return(0,u.combine)(e.responses.listStore,e.fields.listStore,(t,r)=>Object.freeze({client:e,responses:t,fields:r,...n}))});function k(e){return(0,d.invoke)(te,e)}function ne(e){return typeof e==`number`&&!isNaN(e)}function A(e){return typeof e==`string`}function j(e){return Array.isArray(e)}function M(e){return e instanceof Promise}function N(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.keys(e).length===1}function P(e){if(ne(e))return e;let t=parseFloat(`${e}`);return isNaN(t)?0:t}function F(e){return`${e}`}var re={"==":(e,t)=>e==t,"===":(e,t)=>e===t,"!=":(e,t)=>e!=t,"!==":(e,t)=>e!==t,">":(e,t)=>P(e)>P(t),">=":(e,t)=>P(e)>=P(t),"<":(e,t,n)=>{let r=P(e),i=P(t);if(n===void 0)return r<i;let a=P(n);return r<i&&i<a},"<=":(e,t,n)=>{let r=P(e),i=P(t);if(n===void 0)return r<=i;let a=P(n);return r<=i&&i<=a},"!!":async e=>await L(e),"!":async e=>!await L(e),"%":(e,t)=>P(e)%P(t),log:e=>(console.log(e),e),in:(e,t)=>t?A(t)?t.indexOf(F(e))!==-1:j(t)?t.includes(e):!1:!1,cat:(...e)=>e.map(F).join(``),substr:(e,t,n)=>{let r=F(e),i=P(t);if(n===void 0)return r.substr(i);let a=P(n);if(a<0){let e=r.substr(i);return e.substr(0,e.length+a)}return r.substr(i,a)},"+":(...e)=>e.reduce((e,t)=>P(e)+P(t),0),"*":(...e)=>e.reduce((e,t)=>P(e)*P(t),1),"-":(e,t)=>{let n=P(e);return t===void 0?-n:n-P(t)},"/":(e,t)=>P(e)/P(t),min:(...e)=>Math.min(...e.map(P)),max:(...e)=>Math.max(...e.map(P)),merge:(...e)=>e.reduce((e,t)=>j(t)?e.concat(t):e.concat([t]),[]),var(e,t){let n=arguments.length>1?t:null;if(e===``||e===`.`||e==null)return this;if(typeof e==`number`&&Array.isArray(this))return e>=0&&e<this.length?this[e]:n;let r=F(e);if(r===``||r===`.`)return this;let i=r.split(`.`),a=this;for(let e of i){if(a==null)return n;if(Array.isArray(a)){let t=parseInt(e,10);a=isNaN(t)?a[e]:a[t]}else a=a[e]}return a===void 0?n:a},async missing(...e){let t=j(e[0])?e[0]:e,n=[];for(let e of t){let t=await I({var:e},this);(t===null||t===``)&&n.push(`${e}`)}return n},async missing_some(e,t){let n=await I({missing:t},this);if(!j(n)||!j(t))return[];let r=n.filter(A);return t.filter(A).length-r.length>=P(e)?[]:r},invoke(...e){let[t,...n]=e;return typeof t==`function`?Reflect.apply(t,null,n):null},startsWith:(e,t)=>A(e)&&A(t)&&e.startsWith(t),endsWith:(e,t)=>A(e)&&A(t)&&e.endsWith(t),regexp_matches(e,t){let n=e,r=``;if(j(e)){let[t,i]=e;n=t,r=i}return!A(n)||!A(r)?!1:new RegExp(n,r).test(F(t))},throw(e){throw Error(F(e))}};async function I(e,t){if(!e)return e;if(M(e))return I(await e,t);if(j(e))return Promise.all(e.map(e=>I(e,t)));if(!N(e))return e;let n=ie(e),r=n?e[n]??[]:[];switch(j(r)||(r=[r]),n){case`if`:case`?:`:for(let e=0;e<r.length-1;e+=2)if(await L(await I(r[e],t)))return I(r[e+1],t);return r.length%2==1?I(r[r.length-1],t):null;case`and`:{let e=null;for(let n of r)if(e=await I(n,t),!await L(e))return e;return e}case`or`:{let e=null;for(let n of r)if(e=await I(n,t),await L(e))return e;return e}case`map`:{let e=await I(r[0],t);return j(e)?await Promise.all(e.map(e=>I(r[1],e))):[]}case`filter`:{let e=await I(r[0],t);return j(e)?(await Promise.all(e.map(async e=>({item:e,shouldInclude:await L(await I(r[1],e))})))).filter(({shouldInclude:e})=>e).map(({item:e})=>e):[]}case`reduce`:{let e=await I(r[0],t);if(!j(e))return r.length>2?await I(r[2],t):null;let n=r[1],i=r.length>2?await I(r[2],t):null;for(let t of e)i=await I(n,{current:t,accumulator:i});return i}case`all`:{let e=await I(r[0],t);if(!j(e)||e.length===0)return!1;for(let t of e)if(!await L(await I(r[1],t)))return!1;return!0}case`some`:{let e=await I(r[0],t);if(!j(e))return!1;for(let t of e)if(await L(await I(r[1],t)))return!0;return!1}case`none`:{let e=await I(r[0],t);if(!j(e))return!0;for(let t of e)if(await L(await I(r[1],t)))return!1;return!0}case`catch`:try{return await I(r[0],t)}catch(e){return N(e)?await I(e,t):r[1]?await I(r[1],e):e instanceof Error?e.message:e}}let i=await Promise.all(r.map(e=>I(e,t))),a=n?re[n]:void 0;if(!a)throw Error(`Unrecognized operation ${n}`);return a.apply(t,i)}async function L(e){return M(e)?L(await e):!(Array.isArray(e)&&e.length===0)&&!!e}function ie(e){return Object.keys(e)[0]}function ae(e,t,n){return new Proxy(Object.create(null),{get(r,i){if(typeof i!=`string`)return;let a=e.find(e=>e.key===i);if(a!==void 0)return async()=>!n.has(i)&&await I(a.logic,{...t,conditions:ae(e,t,new Set(n).add(i))})===!0}})}var oe=(0,d.createFactory)(({client:e})=>(0,u.attach)({source:{stateSnapshot:e.stateSnapshotStore,predicates:e.predicates.listStore,actions:e.actions.listStore,features:e.features.listStore,responses:e.responses.getAllStore,conditions:e.conditions.listStore},effect:async({stateSnapshot:e,predicates:t,actions:n,features:r,responses:i,conditions:a},{rule:o,context:s})=>{let c=t.reduce((t,n)=>(t[n.name]=async(...t)=>await n.predicate({...e,args:t}),t),{}),l=n.reduce((t,n)=>(t[n.key]=async(...t)=>await n.action({...e,args:t},null)??void 0,t),{}),u=r.reduce((e,t)=>(e[t.id]=async()=>{let{bucket:e}=await t.getBucket();return e},e),{}),d={responses:i,location:typeof e.location==`object`?{hash:e.location.hash,host:e.location.host,hostname:e.location.hostname,href:e.location.href,origin:e.location.origin,pathname:e.location.pathname,port:e.location.port,protocol:e.location.protocol,search:e.location.search}:void 0,predicates:c,actions:l,features:u,...s};return await I(o,{...d,conditions:ae(a,d,new Set)})}}));function se(e){return(0,d.invoke)(oe,e)}var R=(0,u.createDomain)(`lifecycle`),ce=(0,d.createFactory)(({client:e})=>{let n=R.store(!1),a=(0,u.createStore)(void 0,{skipVoid:!1,domain:R}),o=(0,u.createStore)(void 0,{skipVoid:!1,domain:R}),s=R.store(`idle`),c=R.store([]),l=(0,u.createStore)(void 0,{skipVoid:!1,domain:R}),d=(0,u.createStore)(void 0,{skipVoid:!1,domain:R}),f=(0,u.createEvent)(),p=(0,u.createEvent)(),m=(0,u.createEvent)(),h=(0,u.createEvent)(),g=(0,u.createEvent)(),v=(0,u.createEvent)();c.on(h,(e,t)=>[...e,t]),l.on(g,(e,t)=>t),d.on(v,(e,t)=>t),n.on(p,()=>!0);let y=(0,u.createEffect)(async()=>{await i.r()}),b=(0,u.createEffect)(async()=>{await _(e)}),x=(0,u.attach)({effect:b}),S=(0,u.attach)({source:c,effect:async e=>{for(let t of e)await t()}}),C=(0,u.attach)({source:l,effect:async n=>n===void 0?!0:typeof n==`boolean`?n:await t.t(e,n)===!0}),w=(0,u.attach)({source:d,effect:async n=>n===void 0?!0:typeof n==`boolean`?n:await t.t(e,n)===!0}),T=(0,u.sample)({clock:f,source:s,filter:e=>e===`idle`&&r.i(),fn:()=>void 0});(0,u.sample)({clock:T,fn:()=>`starting`,target:s}),T.watch(e.performance.markBegin),p.watch(e.performance.measure),(0,u.sample)({clock:T,target:S}),(0,u.sample)({clock:T,target:y}),(0,u.sample)({clock:S.done,target:C}),(0,u.sample)({clock:C.doneData,target:a}),(0,u.sample)({clock:w.doneData,target:o}),(0,u.sample)({clock:C.doneData,filter:e=>e,target:w}),(0,u.sample)({clock:w.doneData,target:e.session.setIsUser}),(0,u.sample)({clock:w.doneData,fn:e=>({type:`user_decide`,value:e}),target:e.eventBus}),(0,u.sample)({clock:C.doneData,filter:e=>!e,fn:()=>void 0,target:m}),(0,u.sample)({clock:w.doneData,fn:()=>void 0,target:m}),(0,u.sample)({clock:m,fn:()=>({type:`initialize`}),target:e.eventBus});let E=(0,u.createStore)(!1).on(y.done,()=>!0),D=(0,u.createStore)(!1).on(m,()=>!0),ee=(0,u.createStore)(!1).on(x.done,()=>!0),O=(0,u.combine)(a,o,(e,t)=>e===!0&&t===!0);(0,u.sample)({clock:m,source:O,filter:e=>e,fn:()=>void 0,target:b});let te=(0,u.combine)(E,D,O,(e,t,n)=>e&&t&&n);(0,u.sample)({clock:te,filter:e=>e,fn:()=>void 0,target:x});let k=(0,u.combine)(E,D,O,ee,(e,t,n,r)=>e&&t&&(!n||r));return(0,u.sample)({clock:k,filter:e=>e,fn:()=>void 0,target:p}),(0,u.sample)({clock:p,fn:()=>`ready`,target:s}),(0,u.sample)({clock:p,fn:()=>({type:`ready`}),target:e.eventBus}),(0,u.sample)({clock:p,source:e.session.store,fn:({id:e,isUser:t,identifiers:n})=>({type:`session`,id:e,isUser:t,identifiers:n}),target:e.eventBus}),(0,u.sample)({clock:[S.fail,C.fail,w.fail,b.fail,x.fail,y.fail],fn:()=>`failed`,target:s}),{start:f,readyStore:n,preconditionPassedStore:a,conditionPassedStore:o,lifecycleStageStore:s,registerPluginStartHook:h,setPrecondition:g,setCondition:v}});function le(e){return(0,d.invoke)(ce,e)}var ue=(0,u.createDomain)(`predicate`),de=(0,d.createFactory)(({client:e})=>{let t=ue.store({}),r=(0,u.createApi)(t,{register(e,t){return{...e,[t.name]:{name:t.name,predicate:t.predicate}}}}),i=(0,u.createEvent)();(0,u.sample)({clock:i,source:t,filter:(e,{name:t})=>e[t]!==void 0,fn:(e,{name:t})=>`Predicate '${t}' already registered. Registering again will override the previous registration.`}).watch(e=>n.t(`warn`,e)),(0,u.sample)({clock:i,fn:({name:e,predicate:t})=>Object.freeze({name:e,predicate:t}),target:r.register});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e]?.predicate,{skipVoid:!1})}function s(t){let n=(0,u.createStore)(()=>void 0,{skipVoid:!1}),r=(0,u.attach)({source:{predicate:o(t),snapshot:e.stateSnapshotStore},effect:({predicate:e,snapshot:t})=>{if(e)return(...n)=>e({...t,args:n})}});return(0,u.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:r}),(0,u.sample)({clock:r.doneData,filter:e=>e!==void 0,target:n}),r(),n}return{register:i,getByName:o,listStore:a,getEvokablePredicate:s}});function fe(e){return(0,d.invoke)(de,e)}var pe=(e,t,n)=>{n.register({name:e,predicate:t})},z=(0,u.createDomain)(`history`);function B(e,t){return{id:c.t(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}var me=(0,d.createFactory)(()=>{let e=z.store({entries:[]}),t=z.event(),n=z.event(),r=z.event(),i=z.event();e.on(t,(e,t)=>({entries:[...e.entries,B(t.experienceId,t.node)]})),e.on(n,(e,t)=>({entries:[...e.entries.slice(0,-1),B(t.experienceId,t.node)]})),e.on(i,(e,t)=>t);function o(e,t){let n={lastStepIndex:-1,secondLastStepIndex:-1};for(let r=e.length-1;r>=0;r--){let i=e[r],o=i?.node;if(!(!o||!a.u(o))&&!(t&&i.experienceId!==t))if(n.lastStepIndex===-1)n.lastStepIndex=r;else{n.secondLastStepIndex=r;break}}return n}return e.on(r,(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:t,replace:n,back:r,restore:i,entriesStore:e.map(e=>e.entries)}});function he(){return(0,d.invoke)(me)}var ge=0,_e=e=>{let t=(0,u.createStore)([]);return t.on(e,(e,t)=>[...e,{id:ge++,at:new Date,payload:t}]),t};function V(e){let{doNotTrackValue:t,doNotStoreValue:n}=e??{},r=e?.trackValue??t===!1,i=e?.storeValue??n===!1;return{trackValue:r,storeValue:i,doNotTrackValue:!r,doNotStoreValue:!i}}var ve=(0,u.createDomain)(`field`),ye=(0,d.createFactory)(()=>{let e=ve.store({}),t=(0,u.createApi)(e,{register(e,t){let n=Object.assign({},t.field,{policies:V(t.field.policies)});return{...e,[n.id]:n}},updateByKey(e,t){let n=Object.values(e).find(e=>e.key===t.fieldKey);if(!n)return e;let r=Object.assign({},n,t.updates);return{...e,[n.id]:Object.assign({},r,{policies:V(r.policies)})}}});function n(e){t.register({field:e})}let r={};e.watch(e=>{r=e});function i(e,n){let i=Object.values(r).find(t=>t.key===e)?.key;i&&t.updateByKey({fieldKey:i,updates:n})}let a=e.map(e=>Object.values(e));function o(t){return e.map(e=>e[t]??null,{skipVoid:!1})}function s(t){return e.map(e=>Object.values(e).find(e=>e.key===t)??null,{skipVoid:!1})}function c(t){return e.map(e=>Object.values(e).find(e=>e.name===t)??null,{skipVoid:!1})}return{register:n,update:i,getById:o,getByKey:s,listStore:a,getByName:c}});function be(){return(0,d.invoke)(ye)}var xe=(0,u.createDomain)(`step`),Se=(0,d.createFactory)(()=>{let e=xe.store({}),t=(0,u.createApi)(e,{register(e,t){return{...e,[t.step.id]:t.step}}});function n(e){t.register({step:e})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t]??null,{skipVoid:!1})}function a(t){return e.map(e=>Object.values(e).find(e=>e.key===t)??null,{skipVoid:!1})}return{register:n,getById:i,getByKey:a,listStore:r,indexStore:e}});function Ce(){return(0,d.invoke)(Se)}function we(e,t){t.register(e)}var Te=(0,u.createDomain)(`content`),Ee=(0,d.createFactory)(()=>{let e=Te.store({}),t=(0,u.createApi)(e,{register(e,t){return{...e,[t.content.id]:t.content}},patch(e,t){let n=e[t.id];if(!n)return e;let r=t.apply(n.data);return r===n.data?e:{...e,[t.id]:{...n,data:r}}}});function n(e){t.register({content:e})}function r(e,n){t.patch({id:e,apply:n})}let i=e.map(e=>Object.values(e));function a(t){return e.map(e=>e[t]??null,{skipVoid:!1})}return{register:n,patch:r,getById:a,listStore:i,indexStore:e}});function De(){return(0,d.invoke)(Ee)}function Oe(e,t){t.register(e)}var ke=(0,u.createDomain)(`action`),Ae=(0,d.createFactory)(({client:e})=>{let t=ke.store({}),r=(0,u.createApi)(t,{register(e,t){return{...e,[t.key]:{key:t.key,action:t.action}}}}),i=(0,u.createEvent)();(0,u.sample)({clock:i,source:t,filter:(e,{key:t})=>e[t]!==void 0,fn:(e,{key:t})=>`Action '${t}' already registered. Registering again will override the previous registration.`}).watch(e=>n.t(`warn`,e)),(0,u.sample)({clock:i,fn:({key:e,action:t})=>Object.freeze({key:e,action:t}),target:r.register});let a=t.map(e=>Object.values(e));function o(e){return t.map(t=>t[e]?.action,{skipVoid:!1})}function s(t,n){let r=(0,u.createStore)(()=>void 0,{skipVoid:!1}),i=n?{experience:n.experience}:null,a=(0,u.attach)({source:{action:o(t),snapshot:e.stateSnapshotStore},effect:({action:e,snapshot:t})=>{if(e)return(...n)=>e({...t,args:n},i)}});return(0,u.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:a}),(0,u.sample)({clock:a.doneData,filter:e=>e!==void 0,target:r}),a(),r}return{register:i,getByKey:o,listStore:a,getEvokableAction:s}});function je(e){return(0,d.invoke)(Ae,e)}var Me=(e,t,n)=>{n.register({key:e,action:t})};function H(e,t,n,r){return{fieldKey:e.key,userMessage:n,systemMessage:r,value:t}}function U(e){return e===null||e===``||Array.isArray(e)&&!e.length}function Ne(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e===null}function W(e){try{return JSON.stringify(e),!0}catch{return!1}}function Pe(e,t){return t.find(t=>t.key===e)??null}function Fe(e,t){return e.multiple&&(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)?[t]:t}function Ie(e,t){if(e.type!==`object`||U(t))return null;if(e.multiple){if(!Array.isArray(t))return H(e,t,`This field expects multiple values`,`Field expects an array of objects.`);for(let n of t){if(typeof n!=`object`||!n)return H(e,t,`This field expects object values`,`Field expects an array of objects, but received non-object value.`);if(!W(n))return H(e,t,`This field contains non-serializable data`,`Field value contains non-JSON-serializable data (functions, circular references, etc.).`)}return null}return Array.isArray(t)?H(e,t,`This field expects a single value`,`Field expects a single object, not an array.`):typeof t!=`object`||!t?H(e,t,`This field expects an object value`,`Field expects an object value.`):W(t)?null:H(e,t,`This field contains non-serializable data`,`Field value contains non-JSON-serializable data (functions, circular references, etc.).`)}function Le(e,t){if(U(t)||!Array.isArray(e.options)||e.options.length===0)return null;let n=Array.isArray(t)?t:[t];if(e.type===`object`){let r=new Set(e.options.map(e=>JSON.stringify(e.value)));return n.every(e=>r.has(JSON.stringify(e)))?null:H(e,t,`This field expects a valid option`,`Field expects a valid option from the defined choices.`)}let r=e.options.map(e=>e.value);return n.every(e=>!Ne(e)||e===null?!1:r.includes(e))?null:H(e,t,`This field expects a valid option`,`Field expects a valid option. Valid options are: ${r.join(`, `)}`)}async function Re(t,n,r,i){if(n.validation&&!e.t(n.validation)&&!U(r)){let e=i?{$input:r,responses:i}:{$input:r},a=await t(n.validation,e);if(typeof a==`string`)return H(n,r,a,`Field validation resulted in an error: ${a}.`);if(a===!1)return H(n,r,`This field is invalid`,`Field validation resulted in an unspecified error.`)}return n.required&&U(r)?H(n,r,`This field is required`,`Field is required.`):!n.multiple&&Array.isArray(r)&&r.length>1?H(n,r,`This field expects a single response`,`Field expects a single response.`):null}var ze=(0,u.createDomain)(`response`),Be=(0,d.createFactory)(({client:e})=>{let n=ze.store({}),r=(0,u.createEvent)(),i=(0,u.createEvent)(),a=(0,u.createApi)(n,{register(e,t){return{...e,[t.fieldKey]:t.response}},registerBatch(e,t){return{...e,...t}},clear(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>e!==t))},clearAll(){return{}}});function o(e,t){if(typeof e==`string`){if(t===void 0)throw Error(`Response is required when registering a single field`);a.register({fieldKey:e,response:t})}else a.registerBatch(e)}let s=(n,r)=>t.t(e,n,r),c=(0,u.attach)({source:{allFields:e.fields.listStore,existingResponses:n},effect:async({allFields:e,existingResponses:t},n)=>{let r=[],i={},a={...t,...n},o=Object.entries(n),c=await Promise.allSettled(o.map(async([t,n])=>{let o=Pe(t,e);if(!o){r.push({fieldKey:t,userMessage:`Field '${t}' not found`,systemMessage:`No field with key '${t}' exists. Available field keys are: ${e.map(e=>e.key).join(`,`)}.`,value:n});return}let c=Fe(o,n),l=await Re(s,o,c,a);if(l){r.push(l);return}let u=Ie(o,c);if(u){r.push(u);return}let d=Le(o,c);if(d){r.push(d);return}i[o.key]=n}));for(let[e,t]of c.entries()){if(t.status!==`rejected`)continue;let n=o[e];if(!n)continue;let[i,a]=n,s=t.reason instanceof Error?t.reason.message:String(t.reason);r.push({fieldKey:i,userMessage:`An unexpected error occurred validating this field`,systemMessage:`Validation threw for field '${i}': ${s}`,value:a})}return{responsesToCommit:i,validationErrors:r}}});async function l(e){return c(e)}let d=(0,u.attach)({source:n,effect:async(e,t)=>{let{responsesToCommit:n,validationErrors:r}=await c(t);return r.length?{errors:r}:(a.registerBatch(n),{errors:[]})}});async function f(e){return d(e)}let p=n.map(e=>e),m=n.map(e=>Object.entries(e).map(([e,t])=>({fieldKey:e,value:t})));function h(e){return(0,u.combine)({f:e,s:n},({f:e,s:t})=>{let n=e?t[e.key]??null:null;return n===null?e?.defaultValue!==void 0&&e.defaultValue!==null?e.defaultValue:null:n})}function g(t){return h(e.fields.getById(t))}function _(t){return h(e.fields.getByKey(t))}function v(t){return h(e.fields.getByName(t))}return(0,u.sample)({clock:r,target:a.clearAll}),(0,u.sample)({clock:i,target:a.clear}),{register:o,clearAll:r,clear:i,commit:f,getResponsesToCommit:l,listStore:m,getAllStore:p,getByFieldId:g,getByFieldKey:_,getByFieldName:v}});function Ve(e){return(0,d.invoke)(Be,e)}var He=(0,u.createDomain)(`condition`),Ue=(0,d.createFactory)(()=>{let e=He.store({}),t=(0,u.createApi)(e,{register(e,t){return{...e,[t.condition.id]:t.condition}}});function n(e){t.register({condition:e})}let r=e.map(e=>Object.values(e));function i(t){return e.map(e=>e[t]??null,{skipVoid:!1})}function a(t){return e.map(e=>Object.values(e).find(e=>e.key===t)??null,{skipVoid:!1})}return{register:n,getById:i,getByKey:a,listStore:r,indexStore:e}});function We(){return(0,d.invoke)(Ue)}function Ge(){if(r.i()){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 G(){if(!r.f())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 i=o.t(`s`);if(n.size>0)o.r.set(i,t);else{let e=o.r.get(i);if(e)return e.json()||{}}return t}var Ke=`picked:start:begin`,qe=`picked:start`;function K(){try{return r.f()&&!!r.p.window&&`performance`in r.p}catch{return!1}}function Je(){let e=null,t=null;return{markBegin:()=>{if(K())try{e=performance.mark(Ke).startTime}catch{}},measure:()=>{if(!(!K()||e===null))try{t=performance.measure(qe,{start:e})}catch{}},get startMeasure(){return t}}}function Ye(){let e=null;return{observeDeliveryAPIRequests:t=>{e=t},get deliveryAPIRequestObserver(){return e}}}var q=o.t(`session`,`global`);function Xe(){return r.r()?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)}`}function Ze(){if(!r.s())return null;let e=o.n.get(q);if(!e.isSet())return null;try{return e.json()}catch{return null}}var Qe=(0,d.createFactory)(()=>{let e=Ze(),t={id:e?.id??Xe()};e?.isUser!==void 0&&(t.isUser=e.isUser),e?.identifiers&&Object.keys(e.identifiers).length>0&&(t.identifiers=e.identifiers);let n=(0,u.createStore)(t),i=(0,u.createApi)(n,{setIsUser:(e,t)=>({...e,isUser:t}),setIdentifier:(e,{key:t,value:n})=>({...e,identifiers:{...e.identifiers??{},[t]:n}}),removeIdentifier:(e,t)=>{let n=e.identifiers;if(!n||!(t in n))return e;let r={};for(let[e,i]of Object.entries(n))e!==t&&(r[e]=i);let i={id:e.id};return e.isUser!==void 0&&(i.isUser=e.isUser),Object.keys(r).length>0&&(i.identifiers=r),i}}),a=(0,u.attach)({source:n,effect:e=>{if(r.s())try{o.n.get(q).set(e)}catch{}}});return(0,u.sample)({source:n,target:a}),{store:n,setIsUser:i.setIsUser,setIdentifier:i.setIdentifier,removeIdentifier:i.removeIdentifier}});function $e(){return(0,d.invoke)(Qe,void 0)}function et(){if(r.f())return globalThis.window.pickedConfig}function tt(){if(r.f())return et()?.projectId}function nt(){if(!r.i())return;let e=document.getElementById(`picked_script`)||document.querySelector(`script#picked`)||document.getElementById(`cvly`);if(e)return e.dataset.projectid||e.getAttribute(`project-id`)||void 0}function rt(e){if(e.projectId)return e.projectId;let t=tt();if(t)return t;let n=nt();if(n)return n;throw Error(`projectId is required. You can provide it via one of:
2
2
  (1) createClient({ projectId }) options;
3
3
  (2) window.pickedConfig = { projectId };
4
- (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes a data-projectid (or project-id) attribute.`)}function J(e){return e==null||e===``||Number.isNaN(e)}var it={default:(e,t)=>J(e)?String(t??``):String(e),append:(e,t)=>t&&!J(e)?`${e} ${t}`:e,prepend:(e,t)=>t&&!J(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 at(e){return typeof e==`object`&&!!e}function ot(e,t){let n=t;for(let t of e.split(`.`))if(at(n)&&t in n)n=n[t];else return;return typeof n==`function`?n():n}function st(e,t){let n=e.split(`|`).map(e=>e.trim()),r=ot(n.shift()??``,t);for(let e of n){let[t,...n]=e.split(`:`),i=t?.trim()??``,a=n.join(`:`).trim().replaceAll(/(?:^['"]|['"]$)/g,``),o=it[i];o&&(r=o(r,a))}return J(r)?``:typeof r==`object`?JSON.stringify(r):String(r)}function ct(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+=st(i.trim(),t)}else n+=e[r++];return n}var Y=`preview-token`;function lt(){return!r.f()||!r.t()?!1:!!G()[Y]?.[0]}var ut=class{static logger=n.t;options;dataSource=null;seededVersionId=null;versionSkew=null;contentLoader;previewEmbedderOrigins=null;plugins={};telemetry=Ye();dataProviders=new Map;eventBus=(0,u.createEvent)();events;projectId;apiUrl;dashboardUrl;documentationSiteUrl;session=$e();performance=Je();searchParams=G();history=he();components=w({client:this});experienceInstances=a.n({client:this});experiences=g({client:this});frameworks=ee({client:this});predicates=fe({client:this});features=s.n({client:this});conditions=We();fields=be();responses=Ve({client:this});steps=Ce();contents=De();actions=je({client:this});conditionResults=a.r();stateSnapshotStore=k({client:this});evaluateRuleLogicFx=se({client:this});start;readyStore;preconditionPassedStore;conditionPassedStore;lifecycleStageStore;lifecycle=le({client:this});renderStringFx=(0,u.attach)({source:this.responses.listStore,effect:(e,{template:t,context:n})=>{let r={};for(let t of e)r[t.fieldKey]=t.value;return ct(t,{...n,responses:r})}});constructor(e){this.events=_e(this.eventBus),this.projectId=rt(e),this.options=Object.freeze(e),this.apiUrl=e.apiUrl||Ge(),this.dashboardUrl=e.dashboardUrl??`https://dashboard.picked.app`,this.documentationSiteUrl=e.documentationSiteUrl??`https://docs.picked.app`,this.start=this.lifecycle.start,this.readyStore=this.lifecycle.readyStore,this.preconditionPassedStore=this.lifecycle.preconditionPassedStore,this.conditionPassedStore=this.lifecycle.conditionPassedStore,this.lifecycleStageStore=this.lifecycle.lifecycleStageStore,this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.setupActions(),this.setupFields(),this.setupComponents(),this.lifecycle.setPrecondition(e.precondition),this.lifecycle.setCondition(e.condition),this.eventBus({type:`load`,version:s.t()}),this.maybeStartPreviewChannel()}dataProviderFor(e){let t=e??``,n=this.dataProviders.get(t);if(n)return n;let r=Promise.resolve().then(()=>require("../provider-Dn5znXi9.cjs")).then(t=>t.createPickedDataProvider({apiUrl:this.apiUrl,projectId:this.projectId,getRequestObserver:()=>this.telemetry.deliveryAPIRequestObserver,...e!==void 0&&{previewToken:e}}));return this.dataProviders.set(t,r),r}async getProjectConfig(e){let t=await this.dataProviderFor(e?.previewToken),n=await t.getProjectConfig();if(this.dataSource=t.meta.manifest,n===null)throw Error(`Picked could not resolve the configuration for project "${this.projectId}" from ${this.apiUrl}.`);return n}async getExperienceContent(e,t){return(await this.dataProviderFor(t?.previewToken)).getContent(e,t?.signal===void 0?void 0:{signal:t.signal})}maybeStartPreviewChannel(){lt()&&Promise.resolve().then(()=>require("../preview-channel-Cx0e6fye.cjs")).then(e=>e.initPreviewChannel(this)).catch(()=>void 0)}registerFramework=e=>{O(e,this.frameworks)};registerComponent=(e,t)=>{T(e,t,this.components)};registerPlugin=e=>{y(this,e,this.plugins);let t=this.plugins[e.name];t?.onStart&&this.lifecycle.registerPluginStartHook(t.onStart)};registerFeature=(e,t)=>{s.i(e,t,this.features)};registerPredicate=(e,t)=>{pe(e,t,this.predicates)};registerCondition=e=>{this.conditions.register(e)};registerField=e=>{this.fields.register(e)};registerStep=e=>{we(e,this.steps)};registerContent=e=>{Oe(e,this.contents)};patchContent=(e,t)=>{this.contents.patch(e,t)};registerAction=(e,t)=>{Me(e,t,this.actions)};registerExperience=e=>{e.component&&T(`experience:${e.id}`,e.component,this.components),this.experiences.register(e)};launchExperienceById=async(e,t)=>{this.experiences.launch({id:e,options:t})};launchExperienceByKey=async(e,t)=>{this.experiences.launch({key:e,options:t})};openExperienceById=async e=>{this.experiences.open({id:e})};openExperienceByKey=async e=>{this.experiences.open({key:e})};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=s.r(e);if(!t)return;let{id:n,bucket:r}=t;this.registerFeature(n,{key:`${r}`,name:n,enabled:!0,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)})}setupFields(){let e=this.options.fields;e&&Object.entries(e).forEach(([e,t])=>{let n=typeof t==`function`?t():t;this.registerField({...n,key:n.key??e})})}setupComponents(){let e=this.options.components;e&&Object.entries(e).forEach(([e,t])=>{this.registerComponent(e,t)})}getPluginConfig=e=>this.plugins[e]??{}},dt=`application/picked-javascript`,ft=`application/picked-module`,pt=`data-picked-hydrated`;async function mt(e){if(!(`document`in globalThis))return;let t=`application/picked-module`,n=`data-picked-hydrated`;function r(e){try{Function(e.textContent)}catch(t){return t instanceof SyntaxError&&(console.error(`[picked] Skipped a rehydrated inline script that failed to parse.`,t),e.setAttribute(n,``),!0)}return!1}function i(e,t){let r=document.createElement(`script`);for(let t of Array.from(e.attributes))t.name!==`type`&&r.setAttribute(t.name,t.value);t&&r.setAttribute(`type`,t),r.setAttribute(n,``),e.src?r.async=!1:r.textContent=e.textContent;let i=e.src?new Promise(e=>{r.addEventListener(`load`,()=>e(),{once:!0}),r.addEventListener(`error`,()=>e(),{once:!0})}):null;return e.src?e.replaceWith(r):(globalThis.__pickedEmbedScriptRoot=e.getRootNode(),e.replaceWith(r),globalThis.__pickedEmbedScriptRoot=null),i}let a=Array.from(e.querySelectorAll(`script[type="application/picked-javascript"]:not([${n}]), script[type="${t}"]:not([${n}])`)).filter(e=>e instanceof HTMLScriptElement);for(let e of a){if(!e.isConnected)continue;let n=e.getAttribute(`type`)===t?`module`:null;if(!e.src&&n===null&&r(e))continue;let a=i(e,n);a&&await a}}function ht(){return`<script>(${mt.toString()})(document)<\/script>`}function gt(e){return typeof e==`object`&&!!e&&`id`in e&&typeof e.id==`string`&&`content`in e&&(typeof e.content==`string`||e.content===null)}function _t(e){return{$$type:`lazy-component`,load:e}}function vt(e){return typeof e==`object`&&!!e&&`$$type`in e&&e.$$type===`lazy-component`}function X(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`contentEntryId`in e&&typeof e.contentEntryId==`string`}function Z(e){return X(e)?e.contentEntryId:null}function Q(e){let t=Array.isArray(e)?e:[e],n=[];for(let e of t)X(e)&&n.push(e.contentEntryId);return n}function yt(e,t){return t===null?null:e[t]??null}function $(e,t){let n=[];for(let r of t){let t=e[r];t!==void 0&&n.push(t)}return n}function bt(e,t){if(u.is.store(t))return(0,u.combine)(t,e.indexStore,(e,t)=>yt(t,Z(e)));let n=Z(t);return e.indexStore.map(e=>yt(e,n),{skipVoid:!1})}function xt(e,t){if(u.is.store(t))return(0,u.combine)(t,e.indexStore,(e,t)=>$(t,Q(e)));let n=Q(t);return e.indexStore.map(e=>$(e,n),{skipVoid:!1})}var St=e=>{let t=new ut(e);return r.m(t),t};function Ct(e){return typeof e.data==`object`}function wt(e){return e.map(e=>!e||!Ct(e)?null:e,{skipVoid:!1})}exports.PICKED_HYDRATED_ATTR=pt,exports.PICKED_MODULE_SCRIPT_TYPE=ft,exports.PICKED_SCRIPT_TYPE=dt,exports.PREVIEW_TOKEN_PARAM=Y,exports.Picked=ut,exports.buildRehydrateBootstrap=ht,exports.createClient=St,exports.createPluginEffect=v,exports.createStorageKey=o.t,exports.deriveReference=bt,exports.deriveReferences=xt,exports.evaluateRuleLogic=t.t,exports.getPickedConfig=et,exports.isContentReference=X,exports.isHtmlAssetValue=gt,exports.isInsideIframe=r.t,exports.isLazyLoader=vt,exports.isPickedRoot=i.a,exports.isPreviewSession=lt,exports.lazyComponent=_t,exports.localStore=o.n,exports.onInertScriptSubtrees=l.t,exports.readReferenceId=Z,exports.readReferenceIds=Q,exports.rehydrateScripts=mt,exports.reportInertScriptSubtrees=l.n,exports.resetInertScriptReport=l.r,exports.sessionStore=o.r,exports.subscribe=o.i,exports.supportsCookies=r.n,exports.supportsCryptoRandomUUID=r.r,exports.supportsDocument=r.i,exports.supportsHistory=r.a,exports.supportsIntersectionObserver=r.o,exports.supportsLocalStorage=r.s,exports.supportsLocation=r.c,exports.supportsSessionStorage=r.l,exports.supportsShadowRoot=r.u,exports.supportsWebComponents=r.d,exports.supportsWindow=r.f,exports.toTypedContentStore=wt;
4
+ (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes a data-projectid (or project-id) attribute.`)}function J(e){return e==null||e===``||Number.isNaN(e)}var it={default:(e,t)=>J(e)?String(t??``):String(e),append:(e,t)=>t&&!J(e)?`${e} ${t}`:e,prepend:(e,t)=>t&&!J(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 at(e){return typeof e==`object`&&!!e}function ot(e,t){let n=t;for(let t of e.split(`.`))if(at(n)&&t in n)n=n[t];else return;return typeof n==`function`?n():n}function st(e,t){let n=e.split(`|`).map(e=>e.trim()),r=ot(n.shift()??``,t);for(let e of n){let[t,...n]=e.split(`:`),i=t?.trim()??``,a=n.join(`:`).trim().replaceAll(/(?:^['"]|['"]$)/g,``),o=it[i];o&&(r=o(r,a))}return J(r)?``:typeof r==`object`?JSON.stringify(r):String(r)}function ct(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+=st(i.trim(),t)}else n+=e[r++];return n}var Y=`preview-token`;function lt(){return!r.f()||!r.t()?!1:!!G()[Y]?.[0]}var ut=class{static logger=n.t;options;dataSource=null;seededVersionId=null;versionSkew=null;contentLoader;previewEmbedderOrigins=null;plugins={};telemetry=Ye();dataProviders=new Map;eventBus=(0,u.createEvent)();events;projectId;apiUrl;dashboardUrl;documentationSiteUrl;session=$e();performance=Je();searchParams=G();history=he();components=w({client:this});experienceInstances=a.n({client:this});experiences=g({client:this});frameworks=ee({client:this});predicates=fe({client:this});features=s.n({client:this});conditions=We();fields=be();responses=Ve({client:this});steps=Ce();contents=De();actions=je({client:this});conditionResults=a.r();stateSnapshotStore=k({client:this});evaluateRuleLogicFx=se({client:this});start;readyStore;preconditionPassedStore;conditionPassedStore;lifecycleStageStore;lifecycle=le({client:this});renderStringFx=(0,u.attach)({source:this.responses.listStore,effect:(e,{template:t,context:n})=>{let r={};for(let t of e)r[t.fieldKey]=t.value;return ct(t,{...n,responses:r})}});constructor(e){this.events=_e(this.eventBus),this.projectId=rt(e),this.options=Object.freeze(e),this.apiUrl=e.apiUrl||Ge(),this.dashboardUrl=e.dashboardUrl??`https://dashboard.picked.app`,this.documentationSiteUrl=e.documentationSiteUrl??`https://docs.picked.app`,this.start=this.lifecycle.start,this.readyStore=this.lifecycle.readyStore,this.preconditionPassedStore=this.lifecycle.preconditionPassedStore,this.conditionPassedStore=this.lifecycle.conditionPassedStore,this.lifecycleStageStore=this.lifecycle.lifecycleStageStore,this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.setupActions(),this.setupFields(),this.setupComponents(),this.lifecycle.setPrecondition(e.precondition),this.lifecycle.setCondition(e.condition),this.eventBus({type:`load`,version:s.t()}),this.maybeStartPreviewChannel()}dataProviderFor(e){let t=e??``,n=this.dataProviders.get(t);if(n)return n;let r=Promise.resolve().then(()=>require("../provider-DhY04ozU.cjs")).then(t=>t.createPickedDataProvider({apiUrl:this.apiUrl,projectId:this.projectId,getRequestObserver:()=>this.telemetry.deliveryAPIRequestObserver,...e!==void 0&&{previewToken:e}}));return this.dataProviders.set(t,r),r}async getProjectConfig(e){let t=await this.dataProviderFor(e?.previewToken),n=await t.getProjectConfig();if(this.dataSource=t.meta.manifest,n===null)throw Error(`Picked could not resolve the configuration for project "${this.projectId}" from ${this.apiUrl}.`);return n}async getExperienceContent(e,t){return(await this.dataProviderFor(t?.previewToken)).getContent(e,t?.signal===void 0?void 0:{signal:t.signal})}maybeStartPreviewChannel(){lt()&&Promise.resolve().then(()=>require("../preview-channel-Cx0e6fye.cjs")).then(e=>e.initPreviewChannel(this)).catch(()=>void 0)}registerFramework=e=>{O(e,this.frameworks)};registerComponent=(e,t)=>{T(e,t,this.components)};registerPlugin=e=>{y(this,e,this.plugins);let t=this.plugins[e.name];t?.onStart&&this.lifecycle.registerPluginStartHook(t.onStart)};registerFeature=(e,t)=>{s.i(e,t,this.features)};registerPredicate=(e,t)=>{pe(e,t,this.predicates)};registerCondition=e=>{this.conditions.register(e)};registerField=e=>{this.fields.register(e)};registerStep=e=>{we(e,this.steps)};registerContent=e=>{Oe(e,this.contents)};patchContent=(e,t)=>{this.contents.patch(e,t)};registerAction=(e,t)=>{Me(e,t,this.actions)};registerExperience=e=>{e.component&&T(`experience:${e.id}`,e.component,this.components),this.experiences.register(e)};launchExperienceById=async(e,t)=>{this.experiences.launch({id:e,options:t})};launchExperienceByKey=async(e,t)=>{this.experiences.launch({key:e,options:t})};openExperienceById=async e=>{this.experiences.open({id:e})};openExperienceByKey=async e=>{this.experiences.open({key:e})};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=s.r(e);if(!t)return;let{id:n,bucket:r}=t;this.registerFeature(n,{key:`${r}`,name:n,enabled:!0,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)})}setupFields(){let e=this.options.fields;e&&Object.entries(e).forEach(([e,t])=>{let n=typeof t==`function`?t():t;this.registerField({...n,key:n.key??e})})}setupComponents(){let e=this.options.components;e&&Object.entries(e).forEach(([e,t])=>{this.registerComponent(e,t)})}getPluginConfig=e=>this.plugins[e]??{}},dt=`application/picked-javascript`,ft=`application/picked-module`,pt=`data-picked-hydrated`;async function mt(e){if(!(`document`in globalThis))return;let t=`application/picked-module`,n=`data-picked-hydrated`;function r(e){try{Function(e.textContent)}catch(t){return t instanceof SyntaxError&&(console.error(`[picked] Skipped a rehydrated inline script that failed to parse.`,t),e.setAttribute(n,``),!0)}return!1}function i(e,t){let r=document.createElement(`script`);for(let t of Array.from(e.attributes))t.name!==`type`&&r.setAttribute(t.name,t.value);t&&r.setAttribute(`type`,t),r.setAttribute(n,``),e.src?r.async=!1:r.textContent=e.textContent;let i=e.src?new Promise(e=>{r.addEventListener(`load`,()=>e(),{once:!0}),r.addEventListener(`error`,()=>e(),{once:!0})}):null;return e.src?e.replaceWith(r):(globalThis.__pickedEmbedScriptRoot=e.getRootNode(),e.replaceWith(r),globalThis.__pickedEmbedScriptRoot=null),i}let a=Array.from(e.querySelectorAll(`script[type="application/picked-javascript"]:not([${n}]), script[type="${t}"]:not([${n}])`)).filter(e=>e instanceof HTMLScriptElement);for(let e of a){if(!e.isConnected)continue;let n=e.getAttribute(`type`)===t?`module`:null;if(!e.src&&n===null&&r(e))continue;let a=i(e,n);a&&await a}}function ht(){return`<script>(${mt.toString()})(document)<\/script>`}function gt(e){return typeof e==`object`&&!!e&&`id`in e&&typeof e.id==`string`&&`content`in e&&(typeof e.content==`string`||e.content===null)}function _t(e){return{$$type:`lazy-component`,load:e}}function vt(e){return typeof e==`object`&&!!e&&`$$type`in e&&e.$$type===`lazy-component`}function X(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`contentEntryId`in e&&typeof e.contentEntryId==`string`}function Z(e){return X(e)?e.contentEntryId:null}function Q(e){let t=Array.isArray(e)?e:[e],n=[];for(let e of t)X(e)&&n.push(e.contentEntryId);return n}function yt(e,t){return t===null?null:e[t]??null}function $(e,t){let n=[];for(let r of t){let t=e[r];t!==void 0&&n.push(t)}return n}function bt(e,t){if(u.is.store(t))return(0,u.combine)(t,e.indexStore,(e,t)=>yt(t,Z(e)));let n=Z(t);return e.indexStore.map(e=>yt(e,n),{skipVoid:!1})}function xt(e,t){if(u.is.store(t))return(0,u.combine)(t,e.indexStore,(e,t)=>$(t,Q(e)));let n=Q(t);return e.indexStore.map(e=>$(e,n),{skipVoid:!1})}var St=e=>{let t=new ut(e);return r.m(t),t};function Ct(e){return typeof e.data==`object`}function wt(e){return e.map(e=>!e||!Ct(e)?null:e,{skipVoid:!1})}exports.PICKED_HYDRATED_ATTR=pt,exports.PICKED_MODULE_SCRIPT_TYPE=ft,exports.PICKED_SCRIPT_TYPE=dt,exports.PREVIEW_TOKEN_PARAM=Y,exports.Picked=ut,exports.buildRehydrateBootstrap=ht,exports.createClient=St,exports.createPluginEffect=v,exports.createStorageKey=o.t,exports.deriveReference=bt,exports.deriveReferences=xt,exports.evaluateRuleLogic=t.t,exports.getPickedConfig=et,exports.isContentReference=X,exports.isHtmlAssetValue=gt,exports.isInsideIframe=r.t,exports.isLazyLoader=vt,exports.isPickedRoot=i.a,exports.isPreviewSession=lt,exports.lazyComponent=_t,exports.localStore=o.n,exports.onInertScriptSubtrees=l.t,exports.readReferenceId=Z,exports.readReferenceIds=Q,exports.rehydrateScripts=mt,exports.reportInertScriptSubtrees=l.n,exports.resetInertScriptReport=l.r,exports.sessionStore=o.r,exports.subscribe=o.i,exports.supportsCookies=r.n,exports.supportsCryptoRandomUUID=r.r,exports.supportsDocument=r.i,exports.supportsHistory=r.a,exports.supportsIntersectionObserver=r.o,exports.supportsLocalStorage=r.s,exports.supportsLocation=r.c,exports.supportsSessionStorage=r.l,exports.supportsShadowRoot=r.u,exports.supportsWebComponents=r.d,exports.supportsWindow=r.f,exports.toTypedContentStore=wt;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../plugin-3ujflFtR.cjs"),t=require("../../../api-DOq2Euv2.cjs"),n=require("../../../registry-C1t8l3t9.cjs");let r=require("@picked/delivery-api-client");Object.defineProperty(exports,"createClientHeaders",{enumerable:!0,get:function(){return r.createClientHeaders}}),exports.dynamicExperiencesPlugin=e.t,exports.fetchExperienceContent=t.t,exports.fetchProject=t.n,Object.defineProperty(exports,"fetchSchema",{enumerable:!0,get:function(){return r.fetchSchema}}),exports.registerPickedBundle=n.n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../plugin-CeKF7vXX.cjs"),t=require("../../../api-DAjVYvqo.cjs"),n=require("../../../registry-C1t8l3t9.cjs");let r=require("@picked/delivery-api-client");Object.defineProperty(exports,"createClientHeaders",{enumerable:!0,get:function(){return r.createClientHeaders}}),exports.dynamicExperiencesPlugin=e.t,exports.fetchExperienceContent=t.t,exports.fetchProject=t.n,Object.defineProperty(exports,"fetchSchema",{enumerable:!0,get:function(){return r.fetchSchema}}),exports.registerPickedBundle=n.n;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../experience-instance-Dej3P1sE.cjs"),t=require("../../plugin-3ujflFtR.cjs");let n=require("effector");var r=1e4;function i(e){if(e?.location!==void 0)return{location:e.location}}function a(t,n){return t.nodes.filter(e.u).some(e=>n.get(e.stepId)===!0)}async function o(n,o={}){let s=o.previewToken===void 0?void 0:{previewToken:o.previewToken},c=await n.getProjectConfig(s),l=n.session.store.getState().id;n.conditionResults.reset(),t.n(n,c,{isPreview:!1,sessionId:l});let u=i(o.attributes),d=o.timeoutMs??r,f=new Map(c.steps.map(e=>[e.id,e.layoutContentId!==void 0&&e.layoutContentId!==null])),p=Object.fromEntries(c.conditions.map(e=>[e.key,e])),m=c.experiences.filter(t=>!e.c(t.condition,p)),h=(await Promise.all(m.map(async t=>({experience:t,active:await e.o(n,{condition:t.condition},{context:u})})))).filter(e=>e.active).map(e=>e.experience),g=await Promise.all(h.filter(e=>a(e,f)).map(e=>n.getExperienceContent({id:e.id,key:e.key},{...s,signal:AbortSignal.timeout(d)}))),_=new Map;for(let e of g)if(e)for(let t of[...e.references??[],...e.content])_.set(t.id,t);return{versionId:c.versionId,projectConfig:c,content:Array.from(_.values()),conditionResults:n.conditionResults.store.getState()}}function s(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:t=>e(t),reject:e=>t(e)}}function c(t,r){let{promise:i,resolve:a}=s(),o=(0,n.createEvent)(),c=(0,n.createEvent)(),l=(0,n.createEvent)(),u=(0,n.createEvent)(),d=(0,n.createEvent)(),f=t.experiences.listStore.map(n=>n.map(n=>e.t({client:t,experience:n}))),p=(0,n.createStore)({currentExperienceIndex:0,renderedExperiences:[],isComplete:!1}),m=(0,n.createEffect)(async e=>{let r=(0,n.attach)({source:e.experience.componentStore,effect:async(n,r)=>{let i=e.availableRenderers[r];return n&&i?.isValidComponent(n.component)?{rendered:await i.render(n.component,t,e.experience),rendererIndex:r}:null}}),i=e.startRendererIndex??0;for(let t=i;t<e.availableRenderers.length;t++){let e=await r(t);if(e)return e}return null}),h=(0,n.createEffect)(async({experience:e,availableRenderers:t,startRendererIndex:n=0})=>e?m({experience:e,availableRenderers:t,startRendererIndex:n}):null);p.on(l,(e,t)=>({...e,renderedExperiences:[...e.renderedExperiences,t],currentExperienceIndex:e.currentExperienceIndex+1})).on(d,e=>({...e,currentExperienceIndex:e.currentExperienceIndex+1})).on(u,e=>({...e,isComplete:!0})).reset(o),(0,n.sample)({clock:o,target:c}),(0,n.sample)({clock:c,source:{experiences:f,state:p},filter:({experiences:e,state:t})=>t.currentExperienceIndex<e.length&&!t.isComplete,fn:({experiences:e,state:t})=>({experience:e[t.currentExperienceIndex],availableRenderers:r,startRendererIndex:0}),target:h}),(0,n.sample)({clock:h.doneData,filter:e=>e!==null,fn:e=>e.rendered.body,target:l}),(0,n.sample)({clock:l,target:c}),(0,n.sample)({clock:h.doneData,filter:e=>e===null,target:d}),(0,n.sample)({clock:d,target:c}),(0,n.sample)({clock:[c,d,l],source:{experiences:f,state:p},filter:({experiences:e,state:t})=>t.currentExperienceIndex>=e.length,target:u});let g=(0,n.attach)({source:p,effect:e=>{e.isComplete&&a(e.renderedExperiences)}});return(0,n.sample)({clock:u,target:g}),o(),i}exports.createExperienceInstance=e.t,exports.evaluateConditionMemo=e.i,exports.hashRule=e.a,exports.isExperienceActive=e.o,exports.registerProjectConfig=t.n,exports.render=c,exports.ruleReferencesAction=e.s,exports.ruleReferencesActionDeep=e.c,exports.serialize=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../experience-instance-Dej3P1sE.cjs"),t=require("../../plugin-CeKF7vXX.cjs");let n=require("effector");var r=1e4;function i(e){if(e?.location!==void 0)return{location:e.location}}function a(t,n){return t.nodes.filter(e.u).some(e=>n.get(e.stepId)===!0)}async function o(n,o={}){let s=o.previewToken===void 0?void 0:{previewToken:o.previewToken},c=await n.getProjectConfig(s),l=n.session.store.getState().id;n.conditionResults.reset(),t.n(n,c,{isPreview:!1,sessionId:l});let u=i(o.attributes),d=o.timeoutMs??r,f=new Map(c.steps.map(e=>[e.id,e.layoutContentId!==void 0&&e.layoutContentId!==null])),p=Object.fromEntries(c.conditions.map(e=>[e.key,e])),m=c.experiences.filter(t=>!e.c(t.condition,p)),h=(await Promise.all(m.map(async t=>({experience:t,active:await e.o(n,{condition:t.condition},{context:u})})))).filter(e=>e.active).map(e=>e.experience),g=await Promise.all(h.filter(e=>a(e,f)).map(e=>n.getExperienceContent({id:e.id,key:e.key},{...s,signal:AbortSignal.timeout(d)}))),_=new Map;for(let e of g)if(e)for(let t of[...e.references??[],...e.content])_.set(t.id,t);return{versionId:c.versionId,projectConfig:c,content:Array.from(_.values()),conditionResults:n.conditionResults.store.getState()}}function s(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:t=>e(t),reject:e=>t(e)}}function c(t,r){let{promise:i,resolve:a}=s(),o=(0,n.createEvent)(),c=(0,n.createEvent)(),l=(0,n.createEvent)(),u=(0,n.createEvent)(),d=(0,n.createEvent)(),f=t.experiences.listStore.map(n=>n.map(n=>e.t({client:t,experience:n}))),p=(0,n.createStore)({currentExperienceIndex:0,renderedExperiences:[],isComplete:!1}),m=(0,n.createEffect)(async e=>{let r=(0,n.attach)({source:e.experience.componentStore,effect:async(n,r)=>{let i=e.availableRenderers[r];return n&&i?.isValidComponent(n.component)?{rendered:await i.render(n.component,t,e.experience),rendererIndex:r}:null}}),i=e.startRendererIndex??0;for(let t=i;t<e.availableRenderers.length;t++){let e=await r(t);if(e)return e}return null}),h=(0,n.createEffect)(async({experience:e,availableRenderers:t,startRendererIndex:n=0})=>e?m({experience:e,availableRenderers:t,startRendererIndex:n}):null);p.on(l,(e,t)=>({...e,renderedExperiences:[...e.renderedExperiences,t],currentExperienceIndex:e.currentExperienceIndex+1})).on(d,e=>({...e,currentExperienceIndex:e.currentExperienceIndex+1})).on(u,e=>({...e,isComplete:!0})).reset(o),(0,n.sample)({clock:o,target:c}),(0,n.sample)({clock:c,source:{experiences:f,state:p},filter:({experiences:e,state:t})=>t.currentExperienceIndex<e.length&&!t.isComplete,fn:({experiences:e,state:t})=>({experience:e[t.currentExperienceIndex],availableRenderers:r,startRendererIndex:0}),target:h}),(0,n.sample)({clock:h.doneData,filter:e=>e!==null,fn:e=>e.rendered.body,target:l}),(0,n.sample)({clock:l,target:c}),(0,n.sample)({clock:h.doneData,filter:e=>e===null,target:d}),(0,n.sample)({clock:d,target:c}),(0,n.sample)({clock:[c,d,l],source:{experiences:f,state:p},filter:({experiences:e,state:t})=>t.currentExperienceIndex>=e.length,target:u});let g=(0,n.attach)({source:p,effect:e=>{e.isComplete&&a(e.renderedExperiences)}});return(0,n.sample)({clock:u,target:g}),o(),i}exports.createExperienceInstance=e.t,exports.evaluateConditionMemo=e.i,exports.hashRule=e.a,exports.isExperienceActive=e.o,exports.registerProjectConfig=t.n,exports.render=c,exports.ruleReferencesAction=e.s,exports.ruleReferencesActionDeep=e.c,exports.serialize=o;
@@ -119,20 +119,31 @@ The generated `picked-env.d.ts` file looks like:
119
119
 
120
120
  ```typescript
121
121
  // GENERATED by `@picked/typegen` — do not edit by hand.
122
- // source: published `x-picked-version-id`: `ver_456`
123
122
  // Reference: `https://docs.picked.app/reference/sdk/type-generation`
124
123
 
125
- export interface WelcomePage { /* ... */ }
126
- export interface FieldValues { /* ... */ }
127
- export type FeatureKey = 'default' | 'hero' | 'winter-sale'
124
+ export type WelcomePage = { /* ... */ }
125
+ export type FieldValues = { /* ... */ }
126
+ export type FeatureKey =
127
+ | 'default'
128
+ | 'hero'
129
+ | 'winter-sale'
128
130
 
129
131
  declare module '@picked/client' {
130
132
  interface PickedSchemaRegistry {
131
- contentModels: { 'welcome-page': WelcomePage }
132
- stepContentModels: { intro: 'welcome-page' }
133
+ contentModels: {
134
+ 'welcome-page': WelcomePage
135
+ }
136
+ stepContentModels: {
137
+ 'intro': 'welcome-page'
138
+ }
139
+ featureValues: {
140
+ 'hero':
141
+ | false
142
+ | 'hero-a'
143
+ | 'hero-b'
144
+ }
133
145
  fieldValues: FieldValues
134
146
  featureKeys: FeatureKey
135
- featureValues: { hero: false | 'hero-a' | 'hero-b' }
136
147
  }
137
148
  }
138
149
  ```
package/dist/esm/index.js CHANGED
@@ -5,7 +5,7 @@ import { a as i, c as a, d as o, f as s, i as c, l, m as u, n as d, o as f, p, r
5
5
  import { a as v, i as y, r as ee, s as b, t as x } from "../dom-BqcToNL0.js";
6
6
  import { l as S, n as C, r as w, u as T } from "../experience-instance-DGk11d8a.js";
7
7
  import { i as E, n as D, r as O, t as k } from "../storage-1MW3-_As.js";
8
- import { i as te, n as ne, r as re, t as ie } from "../version-C4B3GmRj.js";
8
+ import { i as te, n as ne, r as re, t as ie } from "../version-CVqMHRIa.js";
9
9
  import { t as ae } from "../id-Bo4RBeOs.js";
10
10
  import { n as oe, r as se, t as ce } from "../inert-script-report-B_bMPRzp.js";
11
11
  import { attach as A, combine as j, createApi as M, createDomain as N, createEffect as P, createEvent as F, createStore as I, is as le, sample as L } from "effector";
@@ -1576,7 +1576,7 @@ var Kt = class {
1576
1576
  dataProviderFor(e) {
1577
1577
  let t = e ?? "", n = this.dataProviders.get(t);
1578
1578
  if (n) return n;
1579
- let r = import("../provider-DAhfR0U6.js").then((t) => t.createPickedDataProvider({
1579
+ let r = import("../provider-BgC7AIUL.js").then((t) => t.createPickedDataProvider({
1580
1580
  apiUrl: this.apiUrl,
1581
1581
  projectId: this.projectId,
1582
1582
  getRequestObserver: () => this.telemetry.deliveryAPIRequestObserver,
@@ -1,5 +1,5 @@
1
- import { t as e } from "../../../plugin-CPGfhYLz.js";
2
- import { n as t, t as n } from "../../../api-BamtoXNG.js";
1
+ import { t as e } from "../../../plugin-DdErWPz4.js";
2
+ import { n as t, t as n } from "../../../api-Dj1JV-yn.js";
3
3
  import { n as r } from "../../../registry-CXZv0uLg.js";
4
4
  import { createClientHeaders as i, fetchSchema as a } from "@picked/delivery-api-client";
5
5
  export { i as createClientHeaders, e as dynamicExperiencesPlugin, n as fetchExperienceContent, t as fetchProject, a as fetchSchema, r as registerPickedBundle };
@@ -1,5 +1,5 @@
1
1
  import { a as e, c as t, i as n, o as r, s as i, t as a, u as o } from "../../experience-instance-DGk11d8a.js";
2
- import { n as s } from "../../plugin-CPGfhYLz.js";
2
+ import { n as s } from "../../plugin-DdErWPz4.js";
3
3
  import { attach as c, createEffect as l, createEvent as u, createStore as d, sample as f } from "effector";
4
4
  //#region src/server/serialize.ts
5
5
  var p = 1e4;
@@ -1 +1 @@
1
- require("./logger-CSTvAyyB.cjs");const e=require("./version-B3XxQZ-T.cjs");require("./api-DOq2Euv2.cjs");let t=require("effector");function n(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return t>>>0}function r(e){let t=e;return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}function i(e,t){return r(n(`${e}:${t}`))%100}function a(e,t){return t<=0?!1:t>=100||e<t}var o=4294967296;function s(e,t,i){return(r(n(`${e}:${t}:${i}`))+.5)/o}function c(e,t,n){return n.weight<=0?0:n.weight/-Math.log(s(e,t,n.key))}function l(e,t,n){let r=null,i=0;for(let a of n){let n=c(e,t,a);n<=0||(n>i||n===i&&r!==null&&a.key<r.key)&&(i=n,r=a)}return r}function u(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function d(e,t){e.registerExperience({id:t.id,key:t.key,name:t.name,targets:t.targets,nodes:t.nodes,edges:t.edges,condition:t.condition,initializeOpen:t.initializeOpen,componentName:t.componentName})}function f(e){return typeof e!=`object`||!e?!1:`id`in e&&`key`in e&&`type`in e&&`name`in e}function p(e,t){if(Array.isArray(t.fields))for(let n of t.fields)f(n)&&e.registerField(n)}function m(e,t){if(!Array.isArray(t.steps))return;let n=new Map(t.fields.map(e=>[e.id,e.key]));for(let r of t.steps){let t=[];for(let e of r.fieldIds??[]){let i=n.get(e);if(i===void 0){`${r.key}${e}`;continue}t.push(i)}let i=r.layoutContentId?e.contents.getById(r.layoutContentId):null;e.registerStep({id:r.id,key:r.key,name:r.name,fieldKeys:t,layoutName:r.layoutName,...r.layoutContentId!==void 0&&{layoutContentId:r.layoutContentId,layoutContentStore:i}})}}function h(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)d(e,n)}function g(e,t,n){y(e,t,n.isPreview,n.sessionId),u(e,t),p(e,t),m(e,t),h(e,t)}function _(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function v(t){let n=new Map,r=t.searchParams.feature;if(!r)return n;for(let t of r){let r=e.r(t);r&&n.set(r.id,r.bucket)}return n}function y(e,t,n,r){let i=v(e);for(let a of t.features){let t=i.get(a.id);if(t!==void 0){b(e,a,t);continue}x(e,a,n,r)}}function b(e,t,n){e.registerFeature(t.id,{key:`${n}`,name:t.name,enabled:!0,weight:t.weight,...t.valueType!==void 0&&{valueType:t.valueType},...t.variants!==void 0&&{variants:t.variants},storage:`session`,decide:()=>n})}function x(e,t,n,r){let o=t.id,s=t.variants;e.registerFeature(o,{key:`v${t.version}`,name:t.name,enabled:t.enabled,weight:t.weight,storage:n?`session`:`local`,valueType:t.valueType,variants:s,decide:()=>t.valueType===`text`?!s||s.length===0?(`${o}`,!1):l(r,o,s)?.value??!1:a(i(r,o),t.weight)})}function S(e,t){for(let n of[...t.references??[],...t.content])e.registerContent({id:n.id,contentModelKey:n.contentModelKey,data:n.data})}function C(e,t){let n=new Map;return(r,i)=>{let a=n.get(r.id);if(a)return a;let o=(async()=>{try{let n=await t(r,i);return n&&S(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}function w(e,t){let n=new Set(t&&Array.isArray(t.experiences)?t.experiences.map(e=>e.id):[]);return(t,r)=>n.has(t.id)?e(t,r):Promise.resolve(null)}function T(){return{name:`dynamic-experiences`,setup:e=>({onStart:(0,t.attach)({source:e.session.store.map(e=>e.id),effect:async t=>{let n=_(e),r=n!==void 0,i=n===void 0?void 0:{previewToken:n},a=await e.getProjectConfig(n===void 0?void 0:{previewToken:n}).catch(e=>null);if(e.contentLoader=C(e,w(t=>e.getExperienceContent(t,i),a)),!a)return;let o=e.seededVersionId;if(o!==null&&o!==a.versionId){e.versionSkew={seeded:o,resolved:a.versionId},`${a.versionId}${o}`;return}e.previewEmbedderOrigins=a.previewEmbedderOrigins??null,g(e,a,{isPreview:r,sessionId:t})}})})}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return T}});
1
+ require("./logger-CSTvAyyB.cjs");const e=require("./version-DT_CPre0.cjs");require("./api-DAjVYvqo.cjs");let t=require("effector");function n(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return t>>>0}function r(e){let t=e;return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}function i(e,t){return r(n(`${e}:${t}`))%100}function a(e,t){return t<=0?!1:t>=100||e<t}var o=4294967296;function s(e,t,i){return(r(n(`${e}:${t}:${i}`))+.5)/o}function c(e,t,n){return n.weight<=0?0:n.weight/-Math.log(s(e,t,n.key))}function l(e,t,n){let r=null,i=0;for(let a of n){let n=c(e,t,a);n<=0||(n>i||n===i&&r!==null&&a.key<r.key)&&(i=n,r=a)}return r}function u(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function d(e,t){e.registerExperience({id:t.id,key:t.key,name:t.name,targets:t.targets,nodes:t.nodes,edges:t.edges,condition:t.condition,initializeOpen:t.initializeOpen,componentName:t.componentName})}function f(e){return typeof e!=`object`||!e?!1:`id`in e&&`key`in e&&`type`in e&&`name`in e}function p(e,t){if(Array.isArray(t.fields))for(let n of t.fields)f(n)&&e.registerField(n)}function m(e,t){if(!Array.isArray(t.steps))return;let n=new Map(t.fields.map(e=>[e.id,e.key]));for(let r of t.steps){let t=[];for(let e of r.fieldIds??[]){let i=n.get(e);if(i===void 0){`${r.key}${e}`;continue}t.push(i)}let i=r.layoutContentId?e.contents.getById(r.layoutContentId):null;e.registerStep({id:r.id,key:r.key,name:r.name,fieldKeys:t,layoutName:r.layoutName,...r.layoutContentId!==void 0&&{layoutContentId:r.layoutContentId,layoutContentStore:i}})}}function h(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)d(e,n)}function g(e,t,n){y(e,t,n.isPreview,n.sessionId),u(e,t),p(e,t),m(e,t),h(e,t)}function _(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function v(t){let n=new Map,r=t.searchParams.feature;if(!r)return n;for(let t of r){let r=e.r(t);r&&n.set(r.id,r.bucket)}return n}function y(e,t,n,r){let i=v(e);for(let a of t.features){let t=i.get(a.id);if(t!==void 0){b(e,a,t);continue}x(e,a,n,r)}}function b(e,t,n){e.registerFeature(t.id,{key:`${n}`,name:t.name,enabled:!0,weight:t.weight,...t.valueType!==void 0&&{valueType:t.valueType},...t.variants!==void 0&&{variants:t.variants},storage:`session`,decide:()=>n})}function x(e,t,n,r){let o=t.id,s=t.variants;e.registerFeature(o,{key:`v${t.version}`,name:t.name,enabled:t.enabled,weight:t.weight,storage:n?`session`:`local`,valueType:t.valueType,variants:s,decide:()=>t.valueType===`text`?!s||s.length===0?(`${o}`,!1):l(r,o,s)?.value??!1:a(i(r,o),t.weight)})}function S(e,t){for(let n of[...t.references??[],...t.content])e.registerContent({id:n.id,contentModelKey:n.contentModelKey,data:n.data})}function C(e,t){let n=new Map;return(r,i)=>{let a=n.get(r.id);if(a)return a;let o=(async()=>{try{let n=await t(r,i);return n&&S(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}function w(e,t){let n=new Set(t&&Array.isArray(t.experiences)?t.experiences.map(e=>e.id):[]);return(t,r)=>n.has(t.id)?e(t,r):Promise.resolve(null)}function T(){return{name:`dynamic-experiences`,setup:e=>({onStart:(0,t.attach)({source:e.session.store.map(e=>e.id),effect:async t=>{let n=_(e),r=n!==void 0,i=n===void 0?void 0:{previewToken:n},a=await e.getProjectConfig(n===void 0?void 0:{previewToken:n}).catch(e=>null);if(e.contentLoader=C(e,w(t=>e.getExperienceContent(t,i),a)),!a)return;let o=e.seededVersionId;if(o!==null&&o!==a.versionId){e.versionSkew={seeded:o,resolved:a.versionId},`${a.versionId}${o}`;return}e.previewEmbedderOrigins=a.previewEmbedderOrigins??null,g(e,a,{isPreview:r,sessionId:t})}})})}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return T}});
@@ -1,6 +1,6 @@
1
1
  import "./logger-DMN6TxJJ.js";
2
- import { r as e } from "./version-C4B3GmRj.js";
3
- import "./api-BamtoXNG.js";
2
+ import { r as e } from "./version-CVqMHRIa.js";
3
+ import "./api-Dj1JV-yn.js";
4
4
  import { attach as t } from "effector";
5
5
  //#region src/plugins/dynamic-experiences/hash.ts
6
6
  function n(e) {
@@ -1,5 +1,5 @@
1
1
  import "./logger-DMN6TxJJ.js";
2
- import { n as e, t } from "./api-BamtoXNG.js";
2
+ import { n as e, t } from "./api-Dj1JV-yn.js";
3
3
  import { r as n, t as r } from "./registry-CXZv0uLg.js";
4
4
  //#region src/data-source/request-observer.ts
5
5
  function i(e, t) {
@@ -1 +1 @@
1
- require("./logger-CSTvAyyB.cjs");const e=require("./api-DOq2Euv2.cjs"),t=require("./registry-C1t8l3t9.cjs");function n(e,t){try{return e?.onRequest(t)??{}}catch{return{}}}function r(e,t){try{e.onSettled?.(t)}catch{}}async function i(e,t,i){let a=n(e?.(),t);try{let e=await i(a.headers);return r(a,e!==null),e}catch(e){throw r(a,!1),e}}var a=`bundle`,o=`api`;async function s(){try{let e=await import(`virtual:picked/data`);return t.r(e)?e:null}catch{return null}}function c(e){if(e===void 0||t.r(e))return e}function l(n){let{apiUrl:r,projectId:l,previewToken:u,signal:d,getRequestObserver:f}=n,p=!!u,m=p?o:n.mode,h=c(p?void 0:n.bundle),g=p?void 0:n.projectConfig,_=n.getContent,v={mode:m??o,manifest:null},y,b,x=new Map;function S(){if(m===o)return Promise.resolve(null);if(h)return Promise.resolve(h);let e=t.t();return e?Promise.resolve(e):(y??=s(),y)}function C(e){v.mode=e?a:o,v.manifest=e?e.manifestMetadata:null}async function w(){if(g)return C(await S()),g;let t=await S();return C(t),t?t.projectConfig:m===a?null:i(f,`project-config`,t=>e.n(r,l,{...u!==void 0&&{previewToken:u},...d!==void 0&&{signal:d},...t!==void 0&&{headers:t}}))}async function T(t,n){let o=u===void 0?void 0:{previewToken:u};if(_)return _(t,o);let s=await S();if(C(s),s)try{return await s.experienceContent(t,o)}catch{return`${t.id}`,null}if(m===a)return null;let c=n??d;return i(f,`experience-content`,n=>e.t(r,l,t.id,{...u!==void 0&&{previewToken:u},...c!==void 0&&{signal:c},...n!==void 0&&{headers:n}}))}return{meta:v,getProjectConfig:()=>(b??=w(),b),getContent:(e,t)=>{let n=x.get(e.id);if(n)return n;let r=T(e,t?.signal).finally(()=>{x.delete(e.id)});return x.set(e.id,r),r}}}exports.createPickedDataProvider=l;
1
+ require("./logger-CSTvAyyB.cjs");const e=require("./api-DAjVYvqo.cjs"),t=require("./registry-C1t8l3t9.cjs");function n(e,t){try{return e?.onRequest(t)??{}}catch{return{}}}function r(e,t){try{e.onSettled?.(t)}catch{}}async function i(e,t,i){let a=n(e?.(),t);try{let e=await i(a.headers);return r(a,e!==null),e}catch(e){throw r(a,!1),e}}var a=`bundle`,o=`api`;async function s(){try{let e=await import(`virtual:picked/data`);return t.r(e)?e:null}catch{return null}}function c(e){if(e===void 0||t.r(e))return e}function l(n){let{apiUrl:r,projectId:l,previewToken:u,signal:d,getRequestObserver:f}=n,p=!!u,m=p?o:n.mode,h=c(p?void 0:n.bundle),g=p?void 0:n.projectConfig,_=n.getContent,v={mode:m??o,manifest:null},y,b,x=new Map;function S(){if(m===o)return Promise.resolve(null);if(h)return Promise.resolve(h);let e=t.t();return e?Promise.resolve(e):(y??=s(),y)}function C(e){v.mode=e?a:o,v.manifest=e?e.manifestMetadata:null}async function w(){if(g)return C(await S()),g;let t=await S();return C(t),t?t.projectConfig:m===a?null:i(f,`project-config`,t=>e.n(r,l,{...u!==void 0&&{previewToken:u},...d!==void 0&&{signal:d},...t!==void 0&&{headers:t}}))}async function T(t,n){let o=u===void 0?void 0:{previewToken:u};if(_)return _(t,o);let s=await S();if(C(s),s)try{return await s.experienceContent(t,o)}catch{return`${t.id}`,null}if(m===a)return null;let c=n??d;return i(f,`experience-content`,n=>e.t(r,l,t.id,{...u!==void 0&&{previewToken:u},...c!==void 0&&{signal:c},...n!==void 0&&{headers:n}}))}return{meta:v,getProjectConfig:()=>(b??=w(),b),getContent:(e,t)=>{let n=x.get(e.id);if(n)return n;let r=T(e,t?.signal).finally(()=>{x.delete(e.id)});return x.set(e.id,r),r}}}exports.createPickedDataProvider=l;
@@ -251,6 +251,6 @@ var b = (e, t, n) => {
251
251
  id: e,
252
252
  feature: t
253
253
  });
254
- }, x = () => "0.0.79-next.2";
254
+ }, x = () => "0.0.79";
255
255
  //#endregion
256
256
  export { b as i, y as n, _ as r, x as t };
@@ -1 +1 @@
1
- const e=require("./logger-CSTvAyyB.cjs"),t=require("./storage-DUw9UJ2h.cjs");let n=require("effector"),r=require("@withease/factories");var i=(0,n.createDomain)(`feature`);function a(e){return e?.enabled===!1}function o(e){return e===`true`||e!==`false`&&e}function s(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r.length===0?null:{id:n,bucket:o(r)}}var c=(0,r.createFactory)(({client:r})=>{let s=i.store({}),c=i.store([]),l=(0,n.createApi)(s,{register(e,t){return{...e,[t.id]:t.feature}}}),u=(0,n.createEvent)();(0,n.sample)({clock:u,source:s,filter:(e,{id:t})=>e[t]!==void 0,fn:(e,{id:t})=>`Feature '${t}' already registered. Registering again will override the previous registration.`}).watch(t=>e.t(`warn`,t)),(0,n.sample)({clock:u,fn:({id:e,feature:t})=>Object.freeze({id:e,feature:{id:e,feature:{...t,id:e}}}),target:l.register});let d=(0,n.createEffect)(async({id:e,key:n,storage:r=`local`,enabled:i})=>{if(i===!1)return null;let a=t.t(`feature:${e}:${n}`,`global`),s=(r===`session`?t.r:t.n).get(a).text();return s?{id:e,key:n,bucket:o(s),storage:r}:null}),f=(0,n.createEffect)(e=>{if(!e)return null;let n=t.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?t.r:t.n).set(n,e.bucket)}),p=new Map,m=(0,n.attach)({source:{allFeaturesStore:s,resolvedFeaturesStore:c},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let o=t.find(e=>e.id===n&&e.key===i);if(o)return o;let s=e[n];if(!s)throw Error(`Feature with id '${n}' not found`);if(a(s.feature))return{id:s.id,bucket:!1,key:i,storage:s.feature.storage};let c=p.get(`${n}:${i}`);if(c!==void 0){let e=await c;return{id:s.id,bucket:e,key:i,storage:s.feature.storage}}let l=r();p.set(`${n}:${i}`,l);let u=await l;return{id:s.id,bucket:u,key:i,storage:s.feature.storage}}});(0,n.sample)({clock:l.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage,enabled:n.feature.enabled}},target:d}),(0,n.sample)({source:s,clock:m.doneData,filter:(e,t)=>!a(e[t.id]?.feature),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:f});let h=(0,n.combine)({allFeaturesStore:s,resolvedFeaturesStore:c}).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,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:async()=>await m(e.feature),isResolved:!1}}));(0,n.sample)({clock:m.doneData,source:{resolvedFeatures:c,allFeatures:s},filter:({resolvedFeatures:e,allFeatures:t},{id:n,key:r})=>!a(t[n]?.feature)&&!e.some(e=>e.id===n&&e.key===r),fn:(e,t)=>t,target:r.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,n.sample)({clock:[d.doneData,m.doneData],source:{resolvedFeatures:c,allFeatures:s},fn:({resolvedFeatures:e,allFeatures:t},n)=>!n||a(t[n.id]?.feature)||e.some(e=>e.id===n.id&&e.key===n.key)?e:[...e,n],target:c});function g(e){return h.map(t=>t.find(t=>t.id===e),{skipVoid:!1})}let _=new Map,v=new Map,y=new Map;function b(e){let t=_.get(e);if(t)return t;let n=g(e);return _.set(e,n),n}function x(e){return s.map(t=>t[e],{skipVoid:!1})}function S(e){let t=(0,n.createStore)(async()=>void 0,{skipVoid:!1}),r=b(e),i=(0,n.attach)({source:r,effect:async e=>{if(e)return async()=>(await e.getBucket()).bucket}});return(0,n.sample)({clock:r,target:i}),(0,n.sample)({clock:i.doneData,filter:e=>e!==void 0,target:t}),i(),t}function C(e){let t=v.get(e);if(t)return t;let n=S(e);return v.set(e,n),n}function w(e){let t=C(e),r=(0,n.createStore)(void 0,{skipVoid:!1}),i=(0,n.attach)({source:t,mapParams:(e,t)=>t,effect:(0,n.createEffect)(async e=>await e())});return(0,n.sample)({clock:i.doneData,fn:t=>{if(t!==void 0)return{id:e,bucket:t}},target:r}),(0,n.sample)({clock:t,target:i}),i(),r}function T(e){let t=y.get(e);if(t)return t;let n=w(e);return y.set(e,n),n}return{register:u,getById:b,getByName:x,listStore:h,getEvokableFeature:C,getFeatureResult:T}});function l(e){return(0,r.invoke)(c,e)}var u=(e,t,n)=>{n.register({id:e,feature:t})},d=()=>`0.0.79-next.2`;Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return d}});
1
+ const e=require("./logger-CSTvAyyB.cjs"),t=require("./storage-DUw9UJ2h.cjs");let n=require("effector"),r=require("@withease/factories");var i=(0,n.createDomain)(`feature`);function a(e){return e?.enabled===!1}function o(e){return e===`true`||e!==`false`&&e}function s(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r.length===0?null:{id:n,bucket:o(r)}}var c=(0,r.createFactory)(({client:r})=>{let s=i.store({}),c=i.store([]),l=(0,n.createApi)(s,{register(e,t){return{...e,[t.id]:t.feature}}}),u=(0,n.createEvent)();(0,n.sample)({clock:u,source:s,filter:(e,{id:t})=>e[t]!==void 0,fn:(e,{id:t})=>`Feature '${t}' already registered. Registering again will override the previous registration.`}).watch(t=>e.t(`warn`,t)),(0,n.sample)({clock:u,fn:({id:e,feature:t})=>Object.freeze({id:e,feature:{id:e,feature:{...t,id:e}}}),target:l.register});let d=(0,n.createEffect)(async({id:e,key:n,storage:r=`local`,enabled:i})=>{if(i===!1)return null;let a=t.t(`feature:${e}:${n}`,`global`),s=(r===`session`?t.r:t.n).get(a).text();return s?{id:e,key:n,bucket:o(s),storage:r}:null}),f=(0,n.createEffect)(e=>{if(!e)return null;let n=t.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?t.r:t.n).set(n,e.bucket)}),p=new Map,m=(0,n.attach)({source:{allFeaturesStore:s,resolvedFeaturesStore:c},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let o=t.find(e=>e.id===n&&e.key===i);if(o)return o;let s=e[n];if(!s)throw Error(`Feature with id '${n}' not found`);if(a(s.feature))return{id:s.id,bucket:!1,key:i,storage:s.feature.storage};let c=p.get(`${n}:${i}`);if(c!==void 0){let e=await c;return{id:s.id,bucket:e,key:i,storage:s.feature.storage}}let l=r();p.set(`${n}:${i}`,l);let u=await l;return{id:s.id,bucket:u,key:i,storage:s.feature.storage}}});(0,n.sample)({clock:l.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage,enabled:n.feature.enabled}},target:d}),(0,n.sample)({source:s,clock:m.doneData,filter:(e,t)=>!a(e[t.id]?.feature),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:f});let h=(0,n.combine)({allFeaturesStore:s,resolvedFeaturesStore:c}).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,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:async()=>await m(e.feature),isResolved:!1}}));(0,n.sample)({clock:m.doneData,source:{resolvedFeatures:c,allFeatures:s},filter:({resolvedFeatures:e,allFeatures:t},{id:n,key:r})=>!a(t[n]?.feature)&&!e.some(e=>e.id===n&&e.key===r),fn:(e,t)=>t,target:r.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,n.sample)({clock:[d.doneData,m.doneData],source:{resolvedFeatures:c,allFeatures:s},fn:({resolvedFeatures:e,allFeatures:t},n)=>!n||a(t[n.id]?.feature)||e.some(e=>e.id===n.id&&e.key===n.key)?e:[...e,n],target:c});function g(e){return h.map(t=>t.find(t=>t.id===e),{skipVoid:!1})}let _=new Map,v=new Map,y=new Map;function b(e){let t=_.get(e);if(t)return t;let n=g(e);return _.set(e,n),n}function x(e){return s.map(t=>t[e],{skipVoid:!1})}function S(e){let t=(0,n.createStore)(async()=>void 0,{skipVoid:!1}),r=b(e),i=(0,n.attach)({source:r,effect:async e=>{if(e)return async()=>(await e.getBucket()).bucket}});return(0,n.sample)({clock:r,target:i}),(0,n.sample)({clock:i.doneData,filter:e=>e!==void 0,target:t}),i(),t}function C(e){let t=v.get(e);if(t)return t;let n=S(e);return v.set(e,n),n}function w(e){let t=C(e),r=(0,n.createStore)(void 0,{skipVoid:!1}),i=(0,n.attach)({source:t,mapParams:(e,t)=>t,effect:(0,n.createEffect)(async e=>await e())});return(0,n.sample)({clock:i.doneData,fn:t=>{if(t!==void 0)return{id:e,bucket:t}},target:r}),(0,n.sample)({clock:t,target:i}),i(),r}function T(e){let t=y.get(e);if(t)return t;let n=w(e);return y.set(e,n),n}return{register:u,getById:b,getByName:x,listStore:h,getEvokableFeature:C,getFeatureResult:T}});function l(e){return(0,r.invoke)(c,e)}var u=(e,t,n)=>{n.register({id:e,feature:t})},d=()=>`0.0.79`;Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return d}});
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@picked/client",
3
- "version": "0.0.79-next.2",
3
+ "version": "0.0.79",
4
4
  "dependencies": {
5
- "@picked/delivery-api-client": "0.0.79-next.2",
5
+ "@picked/delivery-api-client": "0.0.79",
6
6
  "@withease/factories": "^1.0.5",
7
- "@picked/telemetry": "0.0.79-next.2"
7
+ "@picked/telemetry": "0.0.79"
8
8
  },
9
9
  "devDependencies": {
10
10
  "@repo/eslint-config": "workspace:*",