@picked/client 0.0.1-dev.1770787109735 → 0.0.1-dev.1770849584797

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("effector"),S=require("@withease/factories"),b=require("../experience-instance-D8RtqKEZ.cjs"),E=require("../logger-BsmHUUw1.cjs"),w=require("../storage-Be5xWNPC.cjs"),K=require("../id-BKIWbSTy.cjs"),J=require("../object-BbFTsGh3.cjs"),k=require("../supports-YvpQZxbh.cjs"),V=m.createDomain("experience"),W=S.createFactory(({client:t,experience:e})=>{const r=V.store(e),s=m.createApi(r,{merge(p,h){return{...p,...h.experience}}}),i=r.map(p=>({name:p.name,decisionLogic:p.condition??p.decide,targetSelectors:p.targets,initializeOpenLogic:e.initializeOpen})),d=t.components.listStore.map(p=>p.find(h=>h.name===`experience:${e.id}`)||p.find(h=>h.name==="experience"),{skipVoid:!1}),o=r.map(p=>({steps:p.steps,nodes:p.nodes,edges:p.edges,conditionals:p.conditionals})),a=r.map(p=>p.fields),g=e.actions??[];return{id:e.id,configStore:i,treeStore:o,fieldsStore:a,componentStore:d,actions:g,merge:s.merge}});function H(t){return S.invoke(W,t)}const G=S.createFactory(({client:t})=>{const e=V.store({}),r=m.createApi(e,{register(o,a){return{...o,[a.id]:a}}});function s(o){const a=e.getState()[o.id];if(a){a.merge({experience:o,strategy:"override"});return}const g=H({client:t,experience:o});r.register(g)}const i=e.map(o=>Object.values(o));function d(o){return e.map(a=>a[o],{skipVoid:!1})}return{register:s,getById:d,listStore:i}});function Y(t){return S.invoke(G,t)}const Q=(t,e)=>{e.register(t)},T=(t,e)=>{const{targetSelectors:r}=e.configStore.getState(),s=b.getTargetElements(r,e.id);s.forEach(({elements:d})=>d.forEach(o=>b.tagTargetElement(o,e.id))),b.createAppHosts(s,e.id).forEach(d=>{t.experienceInstances.spawn(e,d)})},C=async t=>{await Promise.all(t.experiences.listStore.getState().map(async e=>{await X(t,e)&&T(t,e)}))},X=async(t,e)=>{const{decisionLogic:r,targetSelectors:s}=e.configStore.getState();return b.getTargetElements(s,e.id).length<1||s.length===0?!1:r&&b.isRulesLogic(r)?await b.evaluateRuleLogic(t,r)===!0:!0},Z=(t,e,r)=>{const s=e.name,i=e.setup(t);if(i){const d=r[s]??{};r[s]=Object.freeze({...d,...i})}},ee=m.createDomain("component"),te=S.createFactory(({client:t,component:e,name:r})=>{const s=t.frameworks.getByName(e.frameworkName);return{name:r,component:e,frameworkStore:s}});function re(t){return S.invoke(te,t)}const se=S.createFactory(({client:t})=>{const e=ee.store({}),r=m.createApi(e,{register(o,a){return{...o,[a.name]:a}}});function s(o,a){e.getState()[o]&&E.logger("warn",`Component '${o}' already registered. Registering again will override the previous registration.`);const p=re({client:t,name:o,component:a});r.register(p)}const i=e.map(o=>Object.values(o));function d(o){return e.map(a=>a[o],{skipVoid:!1})}return{register:s,getByName:d,listStore:i}});function ne(t){return S.invoke(se,t)}const $=(t,e,r)=>{r.register(t,e)},ie=m.createDomain("framework"),oe=S.createFactory(({client:t})=>{const e=ie.store({}),r=m.createApi(e,{register(o,a){return{...o,[a.name]:a.framework}}});function s(o,a){e.getState()[o]&&E.logger("warn",`Framework '${o}' already registered. Registering again will override the previous registration.`),r.register({name:o,framework:a})}const i=e.map(o=>Object.values(o));function d(o){return e.map(a=>a[o],{skipVoid:!1})}return{register:s,getByName:d,listStore:i}});function ae(t){return S.invoke(oe,t)}const ce=(t,e)=>{e.register(t.name,t)},ue=6e3,le=w.createStorageKey("last_ping","global"),de=t=>`${t}/api/v1/ping`,pe=async t=>{try{const e=Date.now(),r=w.localStore.get(le);let s=0;if(r.isSet()&&(s=r.json()??0),s&&e-s<ue)return!0;const i=de(t.apiUrl),d={projectId:t.projectId,path:window.location.pathname},o=JSON.stringify(d),a={"Content-Type":"application/json"},p=document.getElementById("picked_script")?.dataset.verceltoken;p&&(a["x-vercel-protection-bypass"]=p);const F=(await fetch(i,{method:"POST",headers:a,body:o})).ok;return F&&r.set(e),F}catch(e){return E.logger("error",e),!1}};function U(t){const e=typeof window<"u",r={client:t,responses:t.responses.listStore.getState(),fields:t.fields.listStore.getState(),location:e?window.location:void 0,document:e?window.document:void 0,sessionStorage:e?window.sessionStorage:void 0,localStorage:e?window.localStorage:void 0};return Object.freeze(r)}const fe=m.createDomain("predicate"),ge=S.createFactory(({client:t})=>{const e=fe.store({}),r=m.createApi(e,{register(a,g){return{...a,[g.name]:{name:g.name,predicate:g.predicate}}}});function s(a,g){e.getState()[a]&&E.logger("warn",`Predicate '${a}' already registered. Registering again will override the previous registration.`),r.register(Object.freeze({name:a,predicate:g}))}const i=e.map(a=>Object.values(a));function d(a){return e.map(g=>g[a]?.predicate,{skipVoid:!1})}function o(a){const g=m.createStore(()=>{},{skipVoid:!1}),p=m.createEffect(async()=>{const h=d(a).getState();if(!h)return;const F=U(t);return(...l)=>h({...F,args:l})});return m.sample({source:{responses:t.responses.listStore,fields:t.fields.listStore},target:p}),m.sample({clock:p.doneData,filter:h=>h!==void 0,target:g}),p(),g}return{register:s,getByName:d,listStore:i,getEvokablePredicate:o}});function me(t){return S.invoke(ge,t)}const ye=(t,e,r)=>{r.register(t,e)},O=m.createDomain("feature"),he=S.createFactory(({client:t})=>{const e=O.store({}),r=O.store([]),s=m.createApi(e,{register(n,c){return{...n,[c.id]:c.feature}}});function i(n,c){e.getState()[n]&&E.logger("warn",`Feature '${n}' already registered. Registering again will override the previous registration.`);const u={id:n,feature:{...c,id:n}};s.register(Object.freeze({id:n,feature:u}))}const d=m.createEffect(async({id:n,key:c,storage:f="local"})=>{const u=w.createStorageKey(`feature:${n}:${c}`,"global"),v=(f==="session"?w.sessionStore:w.localStore).get(u).boolean();return v===null?null:{id:n,key:c,bucket:v,storage:f}}),o=m.createEffect(n=>{if(!n)return null;const c=w.createStorageKey(`feature:${n.id}:${n.key}`,"global");(n.storage==="session"?w.sessionStore:w.localStore).set(c,n.bucket)}),a=new Map,g=m.attach({source:{allFeaturesStore:e,resolvedFeaturesStore:r},effect:async({allFeaturesStore:n,resolvedFeaturesStore:c},{id:f,decide:u,key:y})=>{const v=c.find(P=>P.id===f&&P.key===y);if(v)return v;const j=n[f];if(!j)throw new Error(`Feature with id '${f}' not found`);const A=a.get(`${f}:${y}`);if(A!==void 0){const P=await A;return{id:j.id,bucket:P,key:y,storage:j.feature.storage}}const I=u();a.set(`${f}:${y}`,I);const q=await I;return{id:j.id,bucket:q,key:y,storage:j.feature.storage}}});m.sample({clock:s.register,fn:n=>{const{id:c,feature:f}=n;return{id:c,key:f.feature.key,storage:f.feature.storage}},target:d}),m.sample({source:e,clock:g.doneData,fn:(n,c)=>{const{id:f,bucket:u,storage:y}=c,v=n[f]?.feature.key;return v?{key:v,id:f,bucket:u,storage:y}:null},target:o});const p=m.combine({allFeaturesStore:e,resolvedFeaturesStore:r}).map(({allFeaturesStore:n,resolvedFeaturesStore:c})=>Object.values(n).map(f=>{const u=c.find(y=>y.id===f.id&&y.key===f.feature.key);return u?{id:f.id,name:f.feature.name,key:f.feature.key,getBucket:()=>({id:f.id,bucket:u.bucket}),isResolved:!0}:{id:f.id,name:f.feature.name,key:f.feature.key,getBucket:async()=>await g(f.feature),isResolved:!1}}));m.sample({clock:g.doneData,source:{resolvedFeatures:r},filter:({resolvedFeatures:n},{id:c,key:f})=>!n.some(y=>y.id===c&&y.key===f),fn:(n,c)=>c,target:t.eventBus.prepend(n=>({type:"feature_decide",feature:n}))}),m.sample({clock:[d.doneData,g.doneData],source:r,fn:(n,c)=>!c||n.some(u=>u.id===c.id&&u.key===c.key)?n:[...n,c],target:r});function h(n){return p.map(c=>c.find(f=>f.id===n))}function F(n){return e.map(c=>c[n],{skipVoid:!1})}function l(n){const c=m.createStore(async()=>{},{skipVoid:!1}),f=m.createEffect(async()=>{const u=h(n).getState();if(u)return async()=>(await u.getBucket()).bucket});return m.sample({source:r,filter:u=>u.some(y=>y.id===n),target:f}),m.sample({clock:f.doneData,filter:u=>u!==void 0,target:c}),f(),c}return{register:i,getById:h,getByName:F,listStore:p,getEvokableFeature:l}});function Se(t){return S.invoke(he,t)}const ve=(t,e,r)=>{r.register(t,e)},x=m.createDomain("history");function z(t,e){return{id:K.generateId(`history-entry-${Date.now()}-${Math.random()}}`),node:e,at:Date.now(),experienceId:t}}const ke=S.createFactory(()=>{const t=x.store({entries:[]}),e=x.event(),r=x.event(),s=x.event(),i=x.event();t.on(e,(o,a)=>({entries:[...o.entries,z(a.experienceId,a.node)]})),t.on(r,(o,a)=>({entries:[...o.entries.slice(0,-1),z(a.experienceId,a.node)]})),t.on(i,(o,a)=>a);function d(o,a){const g={lastStepIndex:-1,secondLastStepIndex:-1};for(let p=o.length-1;p>=0;p--){const h=o[p],F=h?.node;if(!(!F||!b.isStepNode(F))&&!(a&&h?.experienceId!==a))if(g.lastStepIndex===-1)g.lastStepIndex=p;else{g.secondLastStepIndex=p;break}}return g}return t.on(s,(o,a)=>{const{secondLastStepIndex:g}=d(o.entries,a.experienceId),p=g!==-1?o.entries.slice(0,g+1):o.entries;return{...o,entries:p}}),{push:e,replace:r,back:s,restore:i,entriesStore:t.map(o=>o.entries)}});function we(){return S.invoke(ke)}const be=()=>m.createEvent(),B=m.createDomain("field"),Fe=S.createFactory(({client:t})=>{const e=B.store({}),r=m.createApi(e,{register(l,n){return{...l,[n.field.id]:n.field}}});function s(l){r.register({field:l})}function i(l,n){const c=o(l).getState();if(!c)return;const f=Object.assign({},c,{...n});r.register({field:{...f}})}const d=e.map(l=>Object.values(l));function o(l){return e.map(n=>n[l]||null)}function a(l){return e.map(n=>Object.values(n).find(c=>c.name===l)||null)}const g=B.store({}),p=B.effect(async l=>{const n=o(l).getState();if(!n||n.options==null)return{fieldId:l,options:null};if(typeof n.options!="function")return{fieldId:l,options:n.options};if(!t)return{fieldId:l,options:null};const c=t.responses.listStore.getState(),f={};for(const y of c)y.value!==void 0&&(f[y.fieldId]=y.value);const u=await Promise.resolve(n.options({responses:f}));return{fieldId:l,options:u}});g.on(p,(l,n)=>({...l,[n]:{status:"loading",options:null}})),g.on(p.doneData,(l,{fieldId:n,options:c})=>({...l,[n]:{status:"resolved",options:c}})),g.on(p.fail,(l,{params:n})=>({...l,[n]:{status:"error",options:null,error:"Failed to resolve field options"}}));function h(l){const n=g.getState()[l];n&&n.status!=="idle"||p(l)}function F(l){return g.map(n=>n[l]??{status:"idle",options:null})}return{register:s,update:i,getById:o,listStore:d,getByName:a,resolve:h,getByFieldId:F}});function Ie(t){return S.invoke(Fe,t)}const Ee=(t,e)=>{e.register(t)},je=m.createDomain("action"),xe=S.createFactory(()=>{const t=je.store({}),e=m.createApi(t,{register(o,a){return{...o,[a.name]:{name:a.name,action:a.action}}}});function r(o,a){e.register({name:o,action:a})}const s=t.map(o=>Object.values(o));function i(o){return t.map(a=>a[o],{skipVoid:!1})}function d(o){return t.map(a=>{const g=a[o];return g?g.action:void 0},{skipVoid:!1})}return{register:r,getByName:i,listStore:s,getEvokableAction:d}});function Ae(){return S.invoke(xe)}const Pe=(t,e,r)=>{r.register(t,e)};function D(t){return typeof t>"u"||t===null||t===""||Array.isArray(t)&&!t.length}function Re(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null}function M(t){try{return JSON.stringify(t),!0}catch{return!1}}const Be=m.createDomain("response"),De=S.createFactory(({client:t})=>{const e=Be.store({}),r=m.createEvent(),s=m.createEvent(),i=m.createApi(e,{register(l,n){return{...l,[n.fieldId]:n.response}},registerBatch(l,n){return{...l,...n}},clear(l,n){const{[n]:c,...f}=l;return f},clearAll(){return{}}});function d(l,n){if(typeof l=="string"){if(n===void 0)throw new Error("Response is required when registering a single field");i.register({fieldId:l,response:n})}else i.registerBatch(l)}async function o(l){const n=[];return await Promise.allSettled(Object.entries(l).map(async([c,f])=>{let u=f;const y=t.fields.getById(c).getState();if(!y){n.push({fieldId:c,userMessage:`Field '${c}' not found`,systemMessage:`No field with ID '${c}' exists. Available field IDs are: ${Object.keys(t.fields.listStore.getState()).join(",")}.`,value:u});return}if(y.multiple&&(typeof u=="string"||typeof u=="number"||typeof u=="boolean")&&(u=[u]),y.validation&&!J.isEmpty(y.validation)&&!D(u)){const v=await b.evaluateRuleLogic(t,y.validation,{$input:u});if(typeof v=="string"){n.push({fieldId:c,userMessage:v,systemMessage:`Field validation resulted in an error: ${v}.`,value:u});return}if(v===!1){n.push({fieldId:c,userMessage:"This field is invalid",systemMessage:"Field validation resulted in an unspecified error.",value:u});return}}if(y.required&&D(u)){n.push({fieldId:c,userMessage:"This field is required",systemMessage:"Field is required.",value:u});return}if(!y.multiple&&Array.isArray(u)&&u.length>1){n.push({fieldId:c,userMessage:"This field expects a single response",systemMessage:"Field expects a single response.",value:u});return}if(y.type==="object"&&!D(u))if(y.multiple){if(!Array.isArray(u)){n.push({fieldId:c,userMessage:"This field expects multiple values",systemMessage:"Field expects an array of objects.",value:u});return}for(const v of u){if(typeof v!="object"||v===null){n.push({fieldId:c,userMessage:"This field expects object values",systemMessage:"Field expects an array of objects, but received non-object value.",value:u});return}if(!M(v)){n.push({fieldId:c,userMessage:"This field contains non-serializable data",systemMessage:"Field value contains non-JSON-serializable data (functions, circular references, etc.).",value:u});return}}}else{if(Array.isArray(u)){n.push({fieldId:c,userMessage:"This field expects a single value",systemMessage:"Field expects a single object, not an array.",value:u});return}if(typeof u!="object"||u===null){n.push({fieldId:c,userMessage:"This field expects an object value",systemMessage:"Field expects an object value.",value:u});return}if(!M(u)){n.push({fieldId:c,userMessage:"This field contains non-serializable data",systemMessage:"Field value contains non-JSON-serializable data (functions, circular references, etc.).",value:u});return}}if(y.options&&typeof y.options!="function"){const v=Array.isArray(u)?u:[u];if(y.type==="object"){const j=y.options.map(I=>JSON.stringify(I.value));v.every(I=>j.includes(JSON.stringify(I)))||n.push({fieldId:c,userMessage:"This field expects a valid option",systemMessage:"Field expects a valid option from the defined choices.",value:u})}else{const j=y.options.map(I=>I.value);v.every(I=>!Re(I)||I===null?!1:j.includes(I))||n.push({fieldId:c,userMessage:"This field expects a valid option",systemMessage:`Field expects a valid option. Valid options are: ${j.join(", ")}`,value:u})}}})),{responsesToCommit:l,validationErrors:n}}async function a(l){const{responsesToCommit:n,validationErrors:c}=await o(l);return c.length?{errors:c}:(i.registerBatch(n),{errors:[]})}const g=e.map(l=>l),p=e.map(l=>Object.keys(l).map(c=>({fieldId:c,value:l[c]})));function h(l){const n=t.fields.getById(l),c=e.map(f=>f[l]||null);return m.combine({f:n,r:c},({f,r:u})=>u||(f?.defaultValue?f.defaultValue:null))}function F(l){const n=t.fields.getByName(l);return m.combine({f:n,s:e},({f:c,s:f})=>{const u=c&&f[c.id]||null;return u||(c?.defaultValue?c.defaultValue:null)})}return m.sample({clock:r,target:i.clearAll}),m.sample({clock:s,target:i.clear}),{register:d,clearAll:r,clear:s,commit:a,getResponsesToCommit:o,listStore:p,getAllStore:g,getByFieldId:h,getByFieldName:F}});function Ce(t){return S.invoke(De,t)}const $e=()=>"0.0.1-dev.1770787109735";function Oe(){if(k.supportsDocument()){const t=[document.currentScript,document.getElementById("picked_script"),document.getElementById("picked"),document.getElementById("cvly"),document.getElementById("cvly-x")];for(const e of t)if(e?.dataset.api)return e.dataset.api}return"https://api.picked.app"}function ze(){if(!k.supportsWindow())return{};const t=new URLSearchParams(window.location.search),e={},r=new Set;for(const[i]of t.entries())i.startsWith("picked-")&&r.add(i);for(const i of r){const d=i.replace("picked-","");e[d]=t.getAll(i)}const s=w.createStorageKey("s");if(r.size>0)w.sessionStore.set(s,e);else{const i=w.sessionStore.get(s);if(i)return i.json()||{}}return e}function Me(){if(k.supportsCryptoRandomUUID())return crypto.randomUUID();const t=Date.now().toString(36),e=Math.random().toString(36).substring(2,15),r=Math.random().toString(36).substring(2,15),s=Math.random().toString(36).substring(2,15);return`${t}-${e}-${r}-${s}`}const Ve=w.createStorageKey("session","global"),Te=()=>{const t=w.localStore.get(Ve);let e;t.isSet()&&(e=t.json());const r=i=>t.set({id:i.id,isUser:i.isUser,identifiers:i.identifiers}),s={id:e?.id??Me(),isUser:e?.isUser??void 0,identifiers:e?.identifiers??void 0,setIsUser(i){this.isUser=i,r(this)},setIdentifier(i,d){this.identifiers={...this.identifiers,[i]:d},r(this)},removeIdentifier(i){this.identifiers&&(this.identifiers=Object.fromEntries(Object.entries(this.identifiers).filter(([d])=>d!==i)),this.identifiers=Object.keys(this.identifiers).length?this.identifiers:void 0,r(this))}};return r(s),s},Ue=()=>k.supportsLocalStorage()?Te():null;function L(){if(k.supportsWindow())return globalThis.window.pickedConfig}function Le(){if(!k.supportsWindow())return;const t=L(),e=t?.organizationId,r=t?.projectId;return e&&r?{organizationId:e,projectId:r}:void 0}function Ne(){if(!k.supportsDocument())return;const t=document.getElementById("picked_script")||document.querySelector("script#picked")||document.getElementById("cvly");if(!t)return;const e=t.dataset.organizationid||t.getAttribute("organization-id"),r=t.dataset.projectid||t.getAttribute("project-id");return e&&r?{organizationId:e,projectId:r}:void 0}function _e(t){const{organizationId:e,projectId:r}=t;if(e&&r)return{organizationId:e,projectId:r};const s=Le();if(s)return s;const i=Ne();if(i)return i;throw new Error(`organizationId and projectId are required. You can provide them via one of:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("effector"),S=require("@withease/factories"),b=require("../experience-instance-D8RtqKEZ.cjs"),E=require("../logger-BsmHUUw1.cjs"),w=require("../storage-Be5xWNPC.cjs"),K=require("../id-BKIWbSTy.cjs"),J=require("../object-BbFTsGh3.cjs"),k=require("../supports-YvpQZxbh.cjs"),V=m.createDomain("experience"),W=S.createFactory(({client:t,experience:e})=>{const r=V.store(e),s=m.createApi(r,{merge(p,h){return{...p,...h.experience}}}),i=r.map(p=>({name:p.name,decisionLogic:p.condition??p.decide,targetSelectors:p.targets,initializeOpenLogic:e.initializeOpen})),d=t.components.listStore.map(p=>p.find(h=>h.name===`experience:${e.id}`)||p.find(h=>h.name==="experience"),{skipVoid:!1}),o=r.map(p=>({steps:p.steps,nodes:p.nodes,edges:p.edges,conditionals:p.conditionals})),a=r.map(p=>p.fields),g=e.actions??[];return{id:e.id,configStore:i,treeStore:o,fieldsStore:a,componentStore:d,actions:g,merge:s.merge}});function H(t){return S.invoke(W,t)}const G=S.createFactory(({client:t})=>{const e=V.store({}),r=m.createApi(e,{register(o,a){return{...o,[a.id]:a}}});function s(o){const a=e.getState()[o.id];if(a){a.merge({experience:o,strategy:"override"});return}const g=H({client:t,experience:o});r.register(g)}const i=e.map(o=>Object.values(o));function d(o){return e.map(a=>a[o],{skipVoid:!1})}return{register:s,getById:d,listStore:i}});function Y(t){return S.invoke(G,t)}const Q=(t,e)=>{e.register(t)},T=(t,e)=>{const{targetSelectors:r}=e.configStore.getState(),s=b.getTargetElements(r,e.id);s.forEach(({elements:d})=>d.forEach(o=>b.tagTargetElement(o,e.id))),b.createAppHosts(s,e.id).forEach(d=>{t.experienceInstances.spawn(e,d)})},C=async t=>{await Promise.all(t.experiences.listStore.getState().map(async e=>{await X(t,e)&&T(t,e)}))},X=async(t,e)=>{const{decisionLogic:r,targetSelectors:s}=e.configStore.getState();return b.getTargetElements(s,e.id).length<1||s.length===0?!1:r&&b.isRulesLogic(r)?await b.evaluateRuleLogic(t,r)===!0:!0},Z=(t,e,r)=>{const s=e.name,i=e.setup(t);if(i){const d=r[s]??{};r[s]=Object.freeze({...d,...i})}},ee=m.createDomain("component"),te=S.createFactory(({client:t,component:e,name:r})=>{const s=t.frameworks.getByName(e.frameworkName);return{name:r,component:e,frameworkStore:s}});function re(t){return S.invoke(te,t)}const se=S.createFactory(({client:t})=>{const e=ee.store({}),r=m.createApi(e,{register(o,a){return{...o,[a.name]:a}}});function s(o,a){e.getState()[o]&&E.logger("warn",`Component '${o}' already registered. Registering again will override the previous registration.`);const p=re({client:t,name:o,component:a});r.register(p)}const i=e.map(o=>Object.values(o));function d(o){return e.map(a=>a[o],{skipVoid:!1})}return{register:s,getByName:d,listStore:i}});function ne(t){return S.invoke(se,t)}const $=(t,e,r)=>{r.register(t,e)},ie=m.createDomain("framework"),oe=S.createFactory(({client:t})=>{const e=ie.store({}),r=m.createApi(e,{register(o,a){return{...o,[a.name]:a.framework}}});function s(o,a){e.getState()[o]&&E.logger("warn",`Framework '${o}' already registered. Registering again will override the previous registration.`),r.register({name:o,framework:a})}const i=e.map(o=>Object.values(o));function d(o){return e.map(a=>a[o],{skipVoid:!1})}return{register:s,getByName:d,listStore:i}});function ae(t){return S.invoke(oe,t)}const ce=(t,e)=>{e.register(t.name,t)},ue=6e3,le=w.createStorageKey("last_ping","global"),de=t=>`${t}/api/v1/ping`,pe=async t=>{try{const e=Date.now(),r=w.localStore.get(le);let s=0;if(r.isSet()&&(s=r.json()??0),s&&e-s<ue)return!0;const i=de(t.apiUrl),d={projectId:t.projectId,path:window.location.pathname},o=JSON.stringify(d),a={"Content-Type":"application/json"},p=document.getElementById("picked_script")?.dataset.verceltoken;p&&(a["x-vercel-protection-bypass"]=p);const F=(await fetch(i,{method:"POST",headers:a,body:o})).ok;return F&&r.set(e),F}catch(e){return E.logger("error",e),!1}};function U(t){const e=typeof window<"u",r={client:t,responses:t.responses.listStore.getState(),fields:t.fields.listStore.getState(),location:e?window.location:void 0,document:e?window.document:void 0,sessionStorage:e?window.sessionStorage:void 0,localStorage:e?window.localStorage:void 0};return Object.freeze(r)}const fe=m.createDomain("predicate"),ge=S.createFactory(({client:t})=>{const e=fe.store({}),r=m.createApi(e,{register(a,g){return{...a,[g.name]:{name:g.name,predicate:g.predicate}}}});function s(a,g){e.getState()[a]&&E.logger("warn",`Predicate '${a}' already registered. Registering again will override the previous registration.`),r.register(Object.freeze({name:a,predicate:g}))}const i=e.map(a=>Object.values(a));function d(a){return e.map(g=>g[a]?.predicate,{skipVoid:!1})}function o(a){const g=m.createStore(()=>{},{skipVoid:!1}),p=m.createEffect(async()=>{const h=d(a).getState();if(!h)return;const F=U(t);return(...l)=>h({...F,args:l})});return m.sample({source:{responses:t.responses.listStore,fields:t.fields.listStore},target:p}),m.sample({clock:p.doneData,filter:h=>h!==void 0,target:g}),p(),g}return{register:s,getByName:d,listStore:i,getEvokablePredicate:o}});function me(t){return S.invoke(ge,t)}const ye=(t,e,r)=>{r.register(t,e)},O=m.createDomain("feature"),he=S.createFactory(({client:t})=>{const e=O.store({}),r=O.store([]),s=m.createApi(e,{register(n,c){return{...n,[c.id]:c.feature}}});function i(n,c){e.getState()[n]&&E.logger("warn",`Feature '${n}' already registered. Registering again will override the previous registration.`);const u={id:n,feature:{...c,id:n}};s.register(Object.freeze({id:n,feature:u}))}const d=m.createEffect(async({id:n,key:c,storage:f="local"})=>{const u=w.createStorageKey(`feature:${n}:${c}`,"global"),v=(f==="session"?w.sessionStore:w.localStore).get(u).boolean();return v===null?null:{id:n,key:c,bucket:v,storage:f}}),o=m.createEffect(n=>{if(!n)return null;const c=w.createStorageKey(`feature:${n.id}:${n.key}`,"global");(n.storage==="session"?w.sessionStore:w.localStore).set(c,n.bucket)}),a=new Map,g=m.attach({source:{allFeaturesStore:e,resolvedFeaturesStore:r},effect:async({allFeaturesStore:n,resolvedFeaturesStore:c},{id:f,decide:u,key:y})=>{const v=c.find(P=>P.id===f&&P.key===y);if(v)return v;const j=n[f];if(!j)throw new Error(`Feature with id '${f}' not found`);const A=a.get(`${f}:${y}`);if(A!==void 0){const P=await A;return{id:j.id,bucket:P,key:y,storage:j.feature.storage}}const I=u();a.set(`${f}:${y}`,I);const q=await I;return{id:j.id,bucket:q,key:y,storage:j.feature.storage}}});m.sample({clock:s.register,fn:n=>{const{id:c,feature:f}=n;return{id:c,key:f.feature.key,storage:f.feature.storage}},target:d}),m.sample({source:e,clock:g.doneData,fn:(n,c)=>{const{id:f,bucket:u,storage:y}=c,v=n[f]?.feature.key;return v?{key:v,id:f,bucket:u,storage:y}:null},target:o});const p=m.combine({allFeaturesStore:e,resolvedFeaturesStore:r}).map(({allFeaturesStore:n,resolvedFeaturesStore:c})=>Object.values(n).map(f=>{const u=c.find(y=>y.id===f.id&&y.key===f.feature.key);return u?{id:f.id,name:f.feature.name,key:f.feature.key,getBucket:()=>({id:f.id,bucket:u.bucket}),isResolved:!0}:{id:f.id,name:f.feature.name,key:f.feature.key,getBucket:async()=>await g(f.feature),isResolved:!1}}));m.sample({clock:g.doneData,source:{resolvedFeatures:r},filter:({resolvedFeatures:n},{id:c,key:f})=>!n.some(y=>y.id===c&&y.key===f),fn:(n,c)=>c,target:t.eventBus.prepend(n=>({type:"feature_decide",feature:n}))}),m.sample({clock:[d.doneData,g.doneData],source:r,fn:(n,c)=>!c||n.some(u=>u.id===c.id&&u.key===c.key)?n:[...n,c],target:r});function h(n){return p.map(c=>c.find(f=>f.id===n))}function F(n){return e.map(c=>c[n],{skipVoid:!1})}function l(n){const c=m.createStore(async()=>{},{skipVoid:!1}),f=m.createEffect(async()=>{const u=h(n).getState();if(u)return async()=>(await u.getBucket()).bucket});return m.sample({source:r,filter:u=>u.some(y=>y.id===n),target:f}),m.sample({clock:f.doneData,filter:u=>u!==void 0,target:c}),f(),c}return{register:i,getById:h,getByName:F,listStore:p,getEvokableFeature:l}});function Se(t){return S.invoke(he,t)}const ve=(t,e,r)=>{r.register(t,e)},x=m.createDomain("history");function z(t,e){return{id:K.generateId(`history-entry-${Date.now()}-${Math.random()}}`),node:e,at:Date.now(),experienceId:t}}const ke=S.createFactory(()=>{const t=x.store({entries:[]}),e=x.event(),r=x.event(),s=x.event(),i=x.event();t.on(e,(o,a)=>({entries:[...o.entries,z(a.experienceId,a.node)]})),t.on(r,(o,a)=>({entries:[...o.entries.slice(0,-1),z(a.experienceId,a.node)]})),t.on(i,(o,a)=>a);function d(o,a){const g={lastStepIndex:-1,secondLastStepIndex:-1};for(let p=o.length-1;p>=0;p--){const h=o[p],F=h?.node;if(!(!F||!b.isStepNode(F))&&!(a&&h?.experienceId!==a))if(g.lastStepIndex===-1)g.lastStepIndex=p;else{g.secondLastStepIndex=p;break}}return g}return t.on(s,(o,a)=>{const{secondLastStepIndex:g}=d(o.entries,a.experienceId),p=g!==-1?o.entries.slice(0,g+1):o.entries;return{...o,entries:p}}),{push:e,replace:r,back:s,restore:i,entriesStore:t.map(o=>o.entries)}});function we(){return S.invoke(ke)}const be=()=>m.createEvent(),B=m.createDomain("field"),Fe=S.createFactory(({client:t})=>{const e=B.store({}),r=m.createApi(e,{register(l,n){return{...l,[n.field.id]:n.field}}});function s(l){r.register({field:l})}function i(l,n){const c=o(l).getState();if(!c)return;const f=Object.assign({},c,{...n});r.register({field:{...f}})}const d=e.map(l=>Object.values(l));function o(l){return e.map(n=>n[l]||null)}function a(l){return e.map(n=>Object.values(n).find(c=>c.name===l)||null)}const g=B.store({}),p=B.effect(async l=>{const n=o(l).getState();if(!n||n.options==null)return{fieldId:l,options:null};if(typeof n.options!="function")return{fieldId:l,options:n.options};if(!t)return{fieldId:l,options:null};const c=t.responses.listStore.getState(),f={};for(const y of c)y.value!==void 0&&(f[y.fieldId]=y.value);const u=await Promise.resolve(n.options({responses:f}));return{fieldId:l,options:u}});g.on(p,(l,n)=>({...l,[n]:{status:"loading",options:null}})),g.on(p.doneData,(l,{fieldId:n,options:c})=>({...l,[n]:{status:"resolved",options:c}})),g.on(p.fail,(l,{params:n})=>({...l,[n]:{status:"error",options:null,error:"Failed to resolve field options"}}));function h(l){const n=g.getState()[l];n&&n.status!=="idle"||p(l)}function F(l){return g.map(n=>n[l]??{status:"idle",options:null})}return{register:s,update:i,getById:o,listStore:d,getByName:a,resolve:h,getByFieldId:F}});function Ie(t){return S.invoke(Fe,t??{})}const Ee=(t,e)=>{e.register(t)},je=m.createDomain("action"),xe=S.createFactory(()=>{const t=je.store({}),e=m.createApi(t,{register(o,a){return{...o,[a.name]:{name:a.name,action:a.action}}}});function r(o,a){e.register({name:o,action:a})}const s=t.map(o=>Object.values(o));function i(o){return t.map(a=>a[o],{skipVoid:!1})}function d(o){return t.map(a=>{const g=a[o];return g?g.action:void 0},{skipVoid:!1})}return{register:r,getByName:i,listStore:s,getEvokableAction:d}});function Ae(){return S.invoke(xe)}const Pe=(t,e,r)=>{r.register(t,e)};function D(t){return typeof t>"u"||t===null||t===""||Array.isArray(t)&&!t.length}function Re(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null}function M(t){try{return JSON.stringify(t),!0}catch{return!1}}const Be=m.createDomain("response"),De=S.createFactory(({client:t})=>{const e=Be.store({}),r=m.createEvent(),s=m.createEvent(),i=m.createApi(e,{register(l,n){return{...l,[n.fieldId]:n.response}},registerBatch(l,n){return{...l,...n}},clear(l,n){const{[n]:c,...f}=l;return f},clearAll(){return{}}});function d(l,n){if(typeof l=="string"){if(n===void 0)throw new Error("Response is required when registering a single field");i.register({fieldId:l,response:n})}else i.registerBatch(l)}async function o(l){const n=[];return await Promise.allSettled(Object.entries(l).map(async([c,f])=>{let u=f;const y=t.fields.getById(c).getState();if(!y){n.push({fieldId:c,userMessage:`Field '${c}' not found`,systemMessage:`No field with ID '${c}' exists. Available field IDs are: ${Object.keys(t.fields.listStore.getState()).join(",")}.`,value:u});return}if(y.multiple&&(typeof u=="string"||typeof u=="number"||typeof u=="boolean")&&(u=[u]),y.validation&&!J.isEmpty(y.validation)&&!D(u)){const v=await b.evaluateRuleLogic(t,y.validation,{$input:u});if(typeof v=="string"){n.push({fieldId:c,userMessage:v,systemMessage:`Field validation resulted in an error: ${v}.`,value:u});return}if(v===!1){n.push({fieldId:c,userMessage:"This field is invalid",systemMessage:"Field validation resulted in an unspecified error.",value:u});return}}if(y.required&&D(u)){n.push({fieldId:c,userMessage:"This field is required",systemMessage:"Field is required.",value:u});return}if(!y.multiple&&Array.isArray(u)&&u.length>1){n.push({fieldId:c,userMessage:"This field expects a single response",systemMessage:"Field expects a single response.",value:u});return}if(y.type==="object"&&!D(u))if(y.multiple){if(!Array.isArray(u)){n.push({fieldId:c,userMessage:"This field expects multiple values",systemMessage:"Field expects an array of objects.",value:u});return}for(const v of u){if(typeof v!="object"||v===null){n.push({fieldId:c,userMessage:"This field expects object values",systemMessage:"Field expects an array of objects, but received non-object value.",value:u});return}if(!M(v)){n.push({fieldId:c,userMessage:"This field contains non-serializable data",systemMessage:"Field value contains non-JSON-serializable data (functions, circular references, etc.).",value:u});return}}}else{if(Array.isArray(u)){n.push({fieldId:c,userMessage:"This field expects a single value",systemMessage:"Field expects a single object, not an array.",value:u});return}if(typeof u!="object"||u===null){n.push({fieldId:c,userMessage:"This field expects an object value",systemMessage:"Field expects an object value.",value:u});return}if(!M(u)){n.push({fieldId:c,userMessage:"This field contains non-serializable data",systemMessage:"Field value contains non-JSON-serializable data (functions, circular references, etc.).",value:u});return}}if(y.options&&typeof y.options!="function"){const v=Array.isArray(u)?u:[u];if(y.type==="object"){const j=y.options.map(I=>JSON.stringify(I.value));v.every(I=>j.includes(JSON.stringify(I)))||n.push({fieldId:c,userMessage:"This field expects a valid option",systemMessage:"Field expects a valid option from the defined choices.",value:u})}else{const j=y.options.map(I=>I.value);v.every(I=>!Re(I)||I===null?!1:j.includes(I))||n.push({fieldId:c,userMessage:"This field expects a valid option",systemMessage:`Field expects a valid option. Valid options are: ${j.join(", ")}`,value:u})}}})),{responsesToCommit:l,validationErrors:n}}async function a(l){const{responsesToCommit:n,validationErrors:c}=await o(l);return c.length?{errors:c}:(i.registerBatch(n),{errors:[]})}const g=e.map(l=>l),p=e.map(l=>Object.keys(l).map(c=>({fieldId:c,value:l[c]})));function h(l){const n=t.fields.getById(l),c=e.map(f=>f[l]||null);return m.combine({f:n,r:c},({f,r:u})=>u||(f?.defaultValue?f.defaultValue:null))}function F(l){const n=t.fields.getByName(l);return m.combine({f:n,s:e},({f:c,s:f})=>{const u=c&&f[c.id]||null;return u||(c?.defaultValue?c.defaultValue:null)})}return m.sample({clock:r,target:i.clearAll}),m.sample({clock:s,target:i.clear}),{register:d,clearAll:r,clear:s,commit:a,getResponsesToCommit:o,listStore:p,getAllStore:g,getByFieldId:h,getByFieldName:F}});function Ce(t){return S.invoke(De,t)}const $e=()=>"0.0.1-dev.1770849584797";function Oe(){if(k.supportsDocument()){const t=[document.currentScript,document.getElementById("picked_script"),document.getElementById("picked"),document.getElementById("cvly"),document.getElementById("cvly-x")];for(const e of t)if(e?.dataset.api)return e.dataset.api}return"https://api.picked.app"}function ze(){if(!k.supportsWindow())return{};const t=new URLSearchParams(window.location.search),e={},r=new Set;for(const[i]of t.entries())i.startsWith("picked-")&&r.add(i);for(const i of r){const d=i.replace("picked-","");e[d]=t.getAll(i)}const s=w.createStorageKey("s");if(r.size>0)w.sessionStore.set(s,e);else{const i=w.sessionStore.get(s);if(i)return i.json()||{}}return e}function Me(){if(k.supportsCryptoRandomUUID())return crypto.randomUUID();const t=Date.now().toString(36),e=Math.random().toString(36).substring(2,15),r=Math.random().toString(36).substring(2,15),s=Math.random().toString(36).substring(2,15);return`${t}-${e}-${r}-${s}`}const Ve=w.createStorageKey("session","global"),Te=()=>{const t=w.localStore.get(Ve);let e;t.isSet()&&(e=t.json());const r=i=>t.set({id:i.id,isUser:i.isUser,identifiers:i.identifiers}),s={id:e?.id??Me(),isUser:e?.isUser??void 0,identifiers:e?.identifiers??void 0,setIsUser(i){this.isUser=i,r(this)},setIdentifier(i,d){this.identifiers={...this.identifiers,[i]:d},r(this)},removeIdentifier(i){this.identifiers&&(this.identifiers=Object.fromEntries(Object.entries(this.identifiers).filter(([d])=>d!==i)),this.identifiers=Object.keys(this.identifiers).length?this.identifiers:void 0,r(this))}};return r(s),s},Ue=()=>k.supportsLocalStorage()?Te():null;function L(){if(k.supportsWindow())return globalThis.window.pickedConfig}function Le(){if(!k.supportsWindow())return;const t=L(),e=t?.organizationId,r=t?.projectId;return e&&r?{organizationId:e,projectId:r}:void 0}function Ne(){if(!k.supportsDocument())return;const t=document.getElementById("picked_script")||document.querySelector("script#picked")||document.getElementById("cvly");if(!t)return;const e=t.dataset.organizationid||t.getAttribute("organization-id"),r=t.dataset.projectid||t.getAttribute("project-id");return e&&r?{organizationId:e,projectId:r}:void 0}function _e(t){const{organizationId:e,projectId:r}=t;if(e&&r)return{organizationId:e,projectId:r};const s=Le();if(s)return s;const i=Ne();if(i)return i;throw new Error(`organizationId and projectId are required. You can provide them via one of:
2
2
  (1) createClient({ organizationId, projectId }) options;
3
3
  (2) window.pickedConfig = { organizationId, projectId };
4
4
  (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes data-organizationid/data-projectid (or organization-id/project-id) attributes.`)}function R(t){return t==null||t===""||Number.isNaN(t)}const qe={default:(t,e)=>R(t)?String(e??""):String(t),append:(t,e)=>e&&!R(t)?`${t} ${e}`:t,prepend:(t,e)=>e&&!R(t)?`${e} ${t}`:t,upper:t=>typeof t=="string"?t.toUpperCase():t,lower:t=>typeof t=="string"?t.toLowerCase():t,capitalize:t=>typeof t=="string"?t.charAt(0).toUpperCase()+t.slice(1):t,list:t=>{if(!t||typeof t!="object")return t;const e=new Intl.ListFormat("en",{style:"long",type:"conjunction"});if(Array.isArray(t))return e.format(t.map(String));if(t instanceof Map){const r=Array.from(t.entries()).map(([s,i])=>`${s}: ${i}`);return e.format(r)}return t instanceof Set?e.format(Array.from(t).map(String)):t}};function Ke(t){return typeof t=="object"&&t!==null}function Je(t,e){let r=e;for(const s of t.split("."))if(Ke(r)&&s in r)r=r[s];else return;return typeof r=="function"?r():r}function We(t,e){const r=t.split("|").map(d=>d.trim()),s=r.shift()??"";let i=Je(s,e);for(const d of r){const[o,...a]=d.split(":"),g=o?.trim()??"",p=a.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g,""),h=qe[g];h&&(i=h(i,p))}return R(i)?"":typeof i=="object"?JSON.stringify(i):String(i)}function He(t,e){let r="",s=0;for(;s<t.length;)if(t[s]==="{"&&t[s+1]==="{"){s+=2;let i="";for(;s<t.length;){if(t[s]==="}"&&t[s+1]==="}"){s+=2;break}i+=t[s++]}r+=We(i.trim(),e)}else r+=t[s++];return r}class N{static logger=E.logger;options;isReady=!1;project;plugins={};eventBus=be();organizationId;projectId;apiUrl;session;precondition;condition;searchParams=ze();history=we();components=ne({client:this});experienceInstances=b.createExperienceInstanceIndex({client:this});experiences=Y({client:this});frameworks=ae({client:this});predicates=me({client:this});features=Se({client:this});responses=Ce({client:this});fields=Ie({client:this});actions=Ae();constructor(e){E.logger("info","Picked client initializing.");const{organizationId:r,projectId:s}=_e(e);this.organizationId=r,this.projectId=s,this.options=Object.freeze(e),this.apiUrl=e.apiUrl||Oe(),this.session=Ue(),this.setupPlugins(),this.setupFeatures(),this.setupPredicates(),this.setupActions(),this.precondition=e.precondition,this.condition=e.condition,this.eventBus({type:"load",version:$e()}),E.logger("info","Picked client initialized.")}start=()=>{pe(this),(async()=>{if(!k.supportsDocument())return;let r;typeof this.precondition>"u"?r=!0:typeof this.precondition=="boolean"?r=this.precondition:r=await b.evaluateRuleLogic(this,this.precondition)===!0;let s;r&&(this.condition===void 0?s=!0:typeof this.condition=="boolean"?s=this.condition:s=await b.evaluateRuleLogic(this,this.condition)===!0);const i=r&&s===!0;if(typeof s=="boolean"&&this.session){const d=s;this.session.setIsUser(d),this.eventBus({type:"user_decide",value:d})}this.eventBus({type:"initialize"}),document.body&&i&&C(this),await b.domInteractive(),i&&C(this),this.eventBus({type:"ready"}),this.isReady=!0,this.session&&this.eventBus({type:"session",...this.session})})()};registerFramework=e=>{ce(e,this.frameworks)};registerComponent=(e,r)=>{$(e,r,this.components)};registerPlugin=e=>{Z(this,e,this.plugins)};registerFeature=(e,r)=>{ve(e,r,this.features)};registerPredicate=(e,r)=>{ye(e,r,this.predicates)};registerField=e=>{Ee(e,this.fields)};registerAction=(e,r)=>{Pe(e,r,this.actions)};registerExperience=e=>{e.component&&$(`experience:${e.id}`,e.component,this.components),Q(e,this.experiences)};getStateSnapshot=()=>U(this);launchExperienceById=async e=>{const r=this.experiences.getById(e).getState();if(!r){E.logger("warn",`Experience with id '${e}' not found.`);return}T(this,r)};setupPlugins(){this.options.plugins?.forEach(e=>{if(Array.isArray(e)){e.forEach(s=>{this.registerPlugin(s)});return}const r=typeof e=="function"?e():e;if(Array.isArray(r)){r.forEach(s=>this.registerPlugin(s));return}this.registerPlugin(r)})}setupFeatures(){const e=this.options.features;e&&(Object.entries(e).forEach(([r,s])=>{const i=typeof s=="function"?s():s;this.registerFeature(r,i)}),this.searchParams.feature&&this.searchParams.feature.forEach(r=>{try{const[s,i]=r.split(":");if(!s||!i)return;let d=i;d==="true"&&(d=!0),d==="false"&&(d=!1),this.registerFeature(s,{key:`${d}`,name:s,decide:()=>d,storage:"session"})}catch{}}))}setupPredicates(){const e=this.options.predicates;e&&Object.entries(e).forEach(([r,s])=>{if(typeof s!="function"){E.logger("warn",`Predicate "${r}" is not a function.`);return}this.registerPredicate(r,s)})}setupActions(){const e=this.options.actions;e&&Object.entries(e).forEach(([r,s])=>{if(typeof s!="function"){E.logger("warn",`Action "${r}" is not a function.`);return}this.registerAction(r,s)})}getPluginConfig=e=>this.plugins[e]??{};renderString=(e,r)=>{const s=this.responses.listStore.getState().reduce((i,d)=>(i[d.fieldId]=d.value,i),{});return He(e,{...r,responses:s})}}function _(t){return Array.isArray(t.options)&&t.options.some(e=>"condition"in e)}function Ge(t){return t.some(e=>e.condition||_(e))}async function Ye(t,e){return e.length===0?e:(await Promise.all(e.map(async s=>{let i=s;if(s.options&&typeof s.options=="function")try{const p=s.options,h=await Promise.resolve(p());i={...s,options:h}}catch{i={...s,options:null}}if(!Ge([i]))return i;if(!(i.condition?await b.evaluateRuleLogic(t,i.condition):!0))return null;if(!i.options||!_(i)||!Array.isArray(i.options))return i;const a=(await Promise.all(i.options.map(async p=>p.condition?await b.evaluateRuleLogic(t,p.condition)?p:null:p))).filter(p=>p!==null);return a.length===i.options.length?i:a.length===0?null:{...i,options:a}}))).filter(s=>s!==null)}const Qe=t=>{const e=new N(t);return k.bindClient(e),e};exports.evaluateRuleLogic=b.evaluateRuleLogic;exports.isPickedRoot=b.isPickedRoot;exports.createStorageKey=w.createStorageKey;exports.localStore=w.localStore;exports.sessionStore=w.sessionStore;exports.subscribe=w.subscribe;exports.supportsCookies=k.supportsCookies;exports.supportsCryptoRandomUUID=k.supportsCryptoRandomUUID;exports.supportsDocument=k.supportsDocument;exports.supportsHistory=k.supportsHistory;exports.supportsIntersectionObserver=k.supportsIntersectionObserver;exports.supportsLocalStorage=k.supportsLocalStorage;exports.supportsLocation=k.supportsLocation;exports.supportsSessionStorage=k.supportsSessionStorage;exports.supportsShadowRoot=k.supportsShadowRoot;exports.supportsWebComponents=k.supportsWebComponents;exports.supportsWindow=k.supportsWindow;exports.Picked=N;exports.createClient=Qe;exports.getPickedConfig=L;exports.getStepFields=Ye;
package/dist/esm/index.js CHANGED
@@ -549,7 +549,7 @@ const Ue = () => N(), M = x("field"), Le = w(({ client: t }) => {
549
549
  };
550
550
  });
551
551
  function _e(t) {
552
- return b(Le, t);
552
+ return b(Le, t ?? {});
553
553
  }
554
554
  const Je = (t, e) => {
555
555
  e.register(t);
@@ -816,7 +816,7 @@ const Ye = x("response"), Qe = w(({ client: t }) => {
816
816
  function Xe(t) {
817
817
  return b(Qe, t);
818
818
  }
819
- const Ze = () => "0.0.1-dev.1770787109735";
819
+ const Ze = () => "0.0.1-dev.1770849584797";
820
820
  function et() {
821
821
  if (T()) {
822
822
  const t = [
@@ -86,7 +86,7 @@ export interface FieldBooleanMultiple extends FieldBase<boolean> {
86
86
  }
87
87
  export type Field = FieldTextSingular | FieldTextMultiple | FieldNumberSingular | FieldNumberMultiple | FieldObjectSingular | FieldObjectMultiple | FieldBooleanSingular | FieldBooleanMultiple;
88
88
  declare const createFieldIndexFactory: ({ client }: {
89
- client: Picked;
89
+ client?: Picked;
90
90
  }) => {
91
91
  register: (field: Field) => void;
92
92
  update: (fieldId: FieldBase["id"], updates: Partial<Field>) => void;
@@ -96,7 +96,9 @@ declare const createFieldIndexFactory: ({ client }: {
96
96
  resolve: (fieldId: string) => void;
97
97
  getByFieldId: (fieldId: string) => Store<FieldOptionsState>;
98
98
  };
99
- export declare function createFieldIndex<T extends Parameters<typeof createFieldIndexFactory>[0]>(params: T): ReturnType<typeof createFieldIndexFactory>;
99
+ export declare function createFieldIndex(params?: {
100
+ client: Picked;
101
+ }): ReturnType<typeof createFieldIndexFactory>;
100
102
  export declare const setupField: (field: Field, fields: FieldsStore) => void;
101
103
  export type FieldOptionsStatus = 'idle' | 'loading' | 'resolved' | 'error';
102
104
  export interface FieldOptionsState {
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/entities/field/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/entities/field/field.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picked/client",
3
- "version": "0.0.1-dev.1770787109735",
3
+ "version": "0.0.1-dev.1770849584797",
4
4
  "dependencies": {
5
5
  "@withease/factories": "^1.0.5"
6
6
  },