@picked/client 0.0.96-next.1 → 0.0.96-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{api-neJU3-8o.js → api-DZZrIx1k.js} +1 -1
- package/dist/{api-BPCP0YxF.cjs → api-MO5qoE5S.cjs} +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/docs/reference/dashboard/lead-search.md +78 -5
- package/dist/docs/reference/glossary.md +2 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
- package/dist/esm/server/index.js +2 -2
- package/dist/{plugin-DtgZkeMI.js → plugin-Bywvt30_.js} +2 -2
- package/dist/{plugin-C6hvGqPI.cjs → plugin-DWppWrIm.cjs} +1 -1
- package/dist/{preview-unavailable-DcZQsLLX.js → preview-unavailable-BUDcwb5b.js} +1 -1
- package/dist/{preview-unavailable-BYOVB7y-.cjs → preview-unavailable-DDs9I4j6.cjs} +1 -1
- package/dist/{provider-CnZwCYON.js → provider-BWcdzCXQ.js} +1 -1
- package/dist/{provider-OE-GWxMR.cjs → provider-CeOR1ZX8.cjs} +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./logger-DMN6TxJJ.js";
|
|
2
|
-
import { o as e } from "./preview-unavailable-
|
|
2
|
+
import { o as e } from "./preview-unavailable-BUDcwb5b.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) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("./logger-CSTvAyyB.cjs");const e=require("./preview-unavailable-
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./preview-unavailable-DDs9I4j6.cjs");let t=require("@picked/delivery-api-client");function n(n){return{...n,headers:{...(0,t.createClientHeaders)(`sdk`,e.o()),...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}});
|
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-VUbvWqdi.cjs"),n=require("../logger-CSTvAyyB.cjs"),r=require("../supports-DBzjGaWD.cjs"),i=require("../dom-DlLH3FxV.cjs"),a=require("../experience-instance-CQvQHCNe.cjs"),o=require("./logic-engine.js"),s=require("../storage-DUw9UJ2h.cjs"),c=require("../preview-unavailable-BYOVB7y-.cjs"),l=require("../id-Js-62re-.cjs"),u=require("../inert-script-report-ijRHPtcY.cjs");let d=require("effector"),f=require("@withease/factories");var p=(0,d.createDomain)(`experience`),m=(0,f.createFactory)(({client:e,experience:n})=>{let r=p.store(n),o=(0,d.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,d.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,d.combine)(r,e.steps.indexStore,e.conditions.indexStore,(e,t,n)=>{let r=e.nodes.filter(a.d).map(e=>t[e.stepId]).filter(e=>e!==void 0),i=e.nodes.filter(a.u).map(e=>n[e.conditionId]).filter(e=>e!==void 0);return{steps:r,nodes:e.nodes,edges:e.edges,conditions:i}}),u=r.map(e=>a.l(e.nodes,e.edges)),f=n.actions??[],m,h=(0,d.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(m,t,r):e.experienceInstances.spawn(m,t)})}}),g=(0,d.combine)({preconditionPassed:e.preconditionPassedStore,isUser:e.session.store.map(e=>e.isUser,{skipVoid:!1}),config:s}),_=(0,d.attach)({source:g,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}}),v=(0,d.createEffect)(async()=>{if(!e.contentLoader)return!0;try{await e.contentLoader({id:n.id,key:n.key})}catch{`${n.id}`}return!0}),y=(0,d.createEvent)(),b=(0,d.createEvent)(),x=p.createStore(void 0,{skipVoid:!1}).on(y,(e,t)=>t).on(b,(e,t)=>t);return(0,d.sample)({clock:y,target:_}),(0,d.sample)({clock:_.doneData,source:x,filter:(e,t)=>t,fn:e=>e,target:h}),(0,d.sample)({clock:_.doneData,filter:Boolean,target:v}),(0,d.sample)({clock:b,source:x,fn:e=>e,target:h}),(0,d.sample)({clock:b,target:v}),m={id:n.id,key:n.key,name:n.name,configStore:s,treeStore:l,nodeTreeStore:u,componentStore:c,actions:f,merge:o.merge,initialiseFx:h,shouldInitialiseFx:_,initialiseRequested:y,initialiseDirectly:b,prepareExperienceContentFx:v},m});function h(e){return(0,f.invoke)(m,e)}var g=(0,f.createFactory)(({client:e})=>{let t=p.store({}),n=(0,d.createApi)(t,{register(e,t){return{...e,[t.id]:t}}}),r=(0,d.createEvent)(),i=(0,d.createEffect)(t=>{n.register(h({client:e,experience:t}))});(0,d.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,d.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,d.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,d.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,d.attach)({source:a,effect:e=>{for(let t of e)t.initialiseRequested(void 0)}})}});function _(e){return(0,f.invoke)(g,e)}var v=async e=>{await e.experiences.initialiseExperiencesFx()};function y(e){return(0,d.createEffect)(async()=>{await e()})}var b=(e,t,n)=>{let r=t.name,i=t.setup(e),a=n[r]??{};n[r]=Object.freeze({...a,...i})},x=(0,d.createDomain)(`component`),S=(0,f.createFactory)(({client:e,component:t,name:n})=>({name:n,component:t,frameworkStore:e.frameworks.getByName(t.frameworkName)}));function C(e){return(0,f.invoke)(S,e)}var w=(0,f.createFactory)(({client:e})=>{let t=x.store({}),r=(0,d.createApi)(t,{register(e,t){return{...e,[t.name]:t}}}),i=(0,d.createEvent)();(0,d.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,d.sample)({clock:i,fn:({name:t,component:n})=>C({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 T(e){return(0,f.invoke)(w,e)}var E=(e,t,n)=>{n.register({name:e,component:t})},D=(0,d.createDomain)(`framework`),O=(0,f.createFactory)(e=>{let t=D.store({}),r=(0,d.createApi)(t,{register(e,t){return{...e,[t.name]:t.framework}}}),i=(0,d.createEvent)();(0,d.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,d.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 k(e){return(0,f.invoke)(O,e)}var A=(e,t)=>{t.register({name:e.name,framework:e})},j=(0,f.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,d.combine)(e.responses.listStore,e.fields.listStore,(t,r)=>Object.freeze({client:e,responses:t,fields:r,...n}))});function ee(e){return(0,f.invoke)(j,e)}function M(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 o.apply(a.logic,{...t,conditions:M(e,t,new Set(n).add(i))})===!0}})}var te=(0,f.createFactory)(({client:e})=>(0,d.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:s,context:c})=>{let l=t.reduce((t,n)=>(t[n.name]=async(...t)=>await n.predicate({...e,args:t}),t),{}),u=n.reduce((t,n)=>(t[n.key]=async(...t)=>await n.action({...e,args:t},null)??void 0,t),{}),d=r.reduce((e,t)=>(e[t.id]=async()=>{let{bucket:e}=await t.getBucket();return e},e),{}),f={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:l,actions:u,features:d,...c},p={...f,conditions:M(a,f,new Set)};return await o.apply(s,p)}}));function ne(e){return(0,f.invoke)(te,e)}var N=(0,d.createDomain)(`lifecycle`),re=(0,f.createFactory)(({client:e})=>{let n=N.store(!1),a=(0,d.createStore)(void 0,{skipVoid:!1,domain:N}),o=(0,d.createStore)(void 0,{skipVoid:!1,domain:N}),s=N.store(`idle`),c=N.store([]),l=(0,d.createStore)(void 0,{skipVoid:!1,domain:N}),u=(0,d.createStore)(void 0,{skipVoid:!1,domain:N}),f=(0,d.createEvent)(),p=(0,d.createEvent)(),m=(0,d.createEvent)(),h=(0,d.createEvent)(),g=(0,d.createEvent)(),_=(0,d.createEvent)();c.on(h,(e,t)=>[...e,t]),l.on(g,(e,t)=>t),u.on(_,(e,t)=>t),n.on(p,()=>!0);let y=(0,d.createEffect)(async()=>{await i.r()}),b=(0,d.createEffect)(async()=>{await v(e)}),x=(0,d.attach)({effect:b}),S=(0,d.attach)({source:c,effect:async e=>{for(let t of e)await t()}}),C=(0,d.attach)({source:l,effect:async n=>n===void 0?!0:typeof n==`boolean`?n:await t.t(e,n)===!0}),w=(0,d.attach)({source:u,effect:async n=>n===void 0?!0:typeof n==`boolean`?n:await t.t(e,n)===!0}),T=(0,d.sample)({clock:f,source:s,filter:e=>e===`idle`&&r.i(),fn:()=>void 0});(0,d.sample)({clock:T,fn:()=>`starting`,target:s}),T.watch(e.performance.markBegin),p.watch(e.performance.measure),(0,d.sample)({clock:T,target:S}),(0,d.sample)({clock:T,target:y}),(0,d.sample)({clock:S.done,target:C}),(0,d.sample)({clock:C.doneData,target:a}),(0,d.sample)({clock:w.doneData,target:o}),(0,d.sample)({clock:C.doneData,filter:e=>e,target:w}),(0,d.sample)({clock:w.doneData,target:e.session.setIsUser}),(0,d.sample)({clock:w.doneData,fn:e=>({type:`user_decide`,value:e}),target:e.eventBus}),(0,d.sample)({clock:C.doneData,filter:e=>!e,fn:()=>void 0,target:m}),(0,d.sample)({clock:w.doneData,fn:()=>void 0,target:m}),(0,d.sample)({clock:m,fn:()=>({type:`initialize`}),target:e.eventBus});let E=(0,d.createStore)(!1).on(y.done,()=>!0),D=(0,d.createStore)(!1).on(m,()=>!0),O=(0,d.createStore)(!1).on(x.done,()=>!0),k=(0,d.combine)(a,o,(e,t)=>e===!0&&t===!0);(0,d.sample)({clock:m,source:k,filter:e=>e,fn:()=>void 0,target:b});let A=(0,d.combine)(E,D,k,(e,t,n)=>e&&t&&n);(0,d.sample)({clock:A,filter:e=>e,fn:()=>void 0,target:x});let j=(0,d.combine)(E,D,k,O,(e,t,n,r)=>e&&t&&(!n||r));return(0,d.sample)({clock:j,filter:e=>e,fn:()=>void 0,target:p}),(0,d.sample)({clock:p,fn:()=>`ready`,target:s}),(0,d.sample)({clock:p,fn:()=>({type:`ready`}),target:e.eventBus}),(0,d.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,d.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:_}});function ie(e){return(0,f.invoke)(re,e)}var ae=(0,d.createDomain)(`predicate`),oe=(0,f.createFactory)(({client:e})=>{let t=ae.store({}),r=(0,d.createApi)(t,{register(e,t){return{...e,[t.name]:{name:t.name,predicate:t.predicate}}}}),i=(0,d.createEvent)();(0,d.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,d.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,d.createStore)(()=>void 0,{skipVoid:!1}),r=(0,d.attach)({source:{predicate:o(t),snapshot:e.stateSnapshotStore},effect:({predicate:e,snapshot:t})=>{if(e)return(...n)=>e({...t,args:n})}});return(0,d.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:r}),(0,d.sample)({clock:r.doneData,filter:e=>e!==void 0,target:n}),r(),n}return{register:i,getByName:o,listStore:a,getEvokablePredicate:s}});function se(e){return(0,f.invoke)(oe,e)}var ce=(e,t,n)=>{n.register({name:e,predicate:t})},P=(0,d.createDomain)(`history`);function F(e,t){return{id:l.t(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}var le=(0,f.createFactory)(()=>{let e=P.store({entries:[]}),t=P.event(),n=P.event(),r=P.event(),i=P.event();e.on(t,(e,t)=>({entries:[...e.entries,F(t.experienceId,t.node)]})),e.on(n,(e,t)=>({entries:[...e.entries.slice(0,-1),F(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.d(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 ue(){return(0,f.invoke)(le)}var de=0,fe=e=>{let t=(0,d.createStore)([]);return t.on(e,(e,t)=>[...e,{id:de++,at:new Date,payload:t}]),t};function I(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 pe=(0,d.createDomain)(`field`),me=(0,f.createFactory)(()=>{let e=pe.store({}),t=(0,d.createApi)(e,{register(e,t){let n=Object.assign({},t.field,{policies:I(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:I(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 he(){return(0,f.invoke)(me)}var L=(0,d.createDomain)(`step`),R=(0,f.createFactory)(()=>{let e=L.store({}),t=(0,d.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 ge(){return(0,f.invoke)(R)}function _e(e,t){t.register(e)}var ve=(0,d.createDomain)(`content`),ye=(0,f.createFactory)(()=>{let e=ve.store({}),t=(0,d.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 be(){return(0,f.invoke)(ye)}function xe(e,t){t.register(e)}var Se=(0,d.createDomain)(`action`),Ce=(0,f.createFactory)(({client:e})=>{let t=Se.store({}),r=(0,d.createApi)(t,{register(e,t){return{...e,[t.key]:{key:t.key,action:t.action}}}}),i=(0,d.createEvent)();(0,d.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,d.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,d.createStore)(()=>void 0,{skipVoid:!1}),i=n?{experience:n.experience}:null,a=(0,d.attach)({source:{action:o(t),snapshot:e.stateSnapshotStore},effect:({action:e,snapshot:t})=>{if(e)return(...n)=>e({...t,args:n},i)}});return(0,d.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:a}),(0,d.sample)({clock:a.doneData,filter:e=>e!==void 0,target:r}),a(),r}return{register:i,getByKey:o,listStore:a,getEvokableAction:s}});function we(e){return(0,f.invoke)(Ce,e)}var Te=(e,t,n)=>{n.register({key:e,action:t})};function z(e,t,n,r){return{fieldKey:e.key,userMessage:n,systemMessage:r,value:t}}function B(e){return e===null||e===``||Array.isArray(e)&&!e.length}function Ee(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e===null}function V(e){try{return JSON.stringify(e),!0}catch{return!1}}function De(e,t){return t.find(t=>t.key===e)??null}function Oe(e,t){return e.multiple&&(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)?[t]:t}function ke(e,t){if(e.type!==`object`||B(t))return null;if(e.multiple){if(!Array.isArray(t))return z(e,t,`This field expects multiple values`,`Field expects an array of objects.`);for(let n of t){if(typeof n!=`object`||!n)return z(e,t,`This field expects object values`,`Field expects an array of objects, but received non-object value.`);if(!V(n))return z(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)?z(e,t,`This field expects a single value`,`Field expects a single object, not an array.`):typeof t!=`object`||!t?z(e,t,`This field expects an object value`,`Field expects an object value.`):V(t)?null:z(e,t,`This field contains non-serializable data`,`Field value contains non-JSON-serializable data (functions, circular references, etc.).`)}function Ae(e,t){if(B(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:z(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=>!Ee(e)||e===null?!1:r.includes(e))?null:z(e,t,`This field expects a valid option`,`Field expects a valid option. Valid options are: ${r.join(`, `)}`)}async function je(t,n,r,i){if(n.validation&&!e.t(n.validation)&&!B(r)){let e=i?{$input:r,responses:i}:{$input:r},a=await t(n.validation,e);if(typeof a==`string`)return z(n,r,a,`Field validation resulted in an error: ${a}.`);if(a===!1)return z(n,r,`This field is invalid`,`Field validation resulted in an unspecified error.`)}return n.required&&B(r)?z(n,r,`This field is required`,`Field is required.`):!n.multiple&&Array.isArray(r)&&r.length>1?z(n,r,`This field expects a single response`,`Field expects a single response.`):null}var Me=(0,d.createDomain)(`response`),Ne=(0,f.createFactory)(({client:e})=>{let n=Me.store({}),r=(0,d.createEvent)(),i=(0,d.createEvent)(),a=(0,d.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,d.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=De(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=Oe(o,n),l=await je(s,o,c,a);if(l){r.push(l);return}let u=ke(o,c);if(u){r.push(u);return}let d=Ae(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 u=(0,d.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 u(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,d.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,d.sample)({clock:r,target:a.clearAll}),(0,d.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 Pe(e){return(0,f.invoke)(Ne,e)}var Fe=(0,d.createDomain)(`condition`),Ie=(0,f.createFactory)(()=>{let e=Fe.store({}),t=(0,d.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 Le(){return(0,f.invoke)(Ie)}function Re(){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`}var ze=`picked:start:begin`,H=`picked:start`;function U(){try{return r.f()&&!!r.p.window&&`performance`in r.p}catch{return!1}}function Be(){let e=null,t=null;return{markBegin:()=>{if(U())try{e=performance.mark(ze).startTime}catch{}},measure:()=>{if(!(!U()||e===null))try{t=performance.measure(H,{start:e})}catch{}},get startMeasure(){return t}}}function Ve(){let e=null;return{observeDeliveryAPIRequests:t=>{e=t},get deliveryAPIRequestObserver(){return e}}}var W=s.t(`session`,`global`);function He(){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 Ue(){if(!r.s())return null;let e=s.n.get(W);if(!e.isSet())return null;try{return e.json()}catch{return null}}var We=(0,f.createFactory)(()=>{let e=Ue(),t={id:e?.id??He()};e?.isUser!==void 0&&(t.isUser=e.isUser),e?.identifiers&&Object.keys(e.identifiers).length>0&&(t.identifiers=e.identifiers);let n=(0,d.createStore)(t),i=(0,d.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,d.attach)({source:n,effect:e=>{if(r.s())try{s.n.get(W).set(e)}catch{}}});return(0,d.sample)({source:n,target:a}),{store:n,setIsUser:i.setIsUser,setIdentifier:i.setIdentifier,removeIdentifier:i.removeIdentifier}});function Ge(){return(0,f.invoke)(We,void 0)}function G(){if(r.f())return globalThis.window.pickedConfig}function Ke(){if(r.f())return G()?.projectId}function qe(){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 Je(e){if(e.projectId)return e.projectId;let t=Ke();if(t)return t;let n=qe();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-VUbvWqdi.cjs"),n=require("../logger-CSTvAyyB.cjs"),r=require("../supports-DBzjGaWD.cjs"),i=require("../dom-DlLH3FxV.cjs"),a=require("../experience-instance-CQvQHCNe.cjs"),o=require("./logic-engine.js"),s=require("../storage-DUw9UJ2h.cjs"),c=require("../preview-unavailable-DDs9I4j6.cjs"),l=require("../id-Js-62re-.cjs"),u=require("../inert-script-report-ijRHPtcY.cjs");let d=require("effector"),f=require("@withease/factories");var p=(0,d.createDomain)(`experience`),m=(0,f.createFactory)(({client:e,experience:n})=>{let r=p.store(n),o=(0,d.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,d.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,d.combine)(r,e.steps.indexStore,e.conditions.indexStore,(e,t,n)=>{let r=e.nodes.filter(a.d).map(e=>t[e.stepId]).filter(e=>e!==void 0),i=e.nodes.filter(a.u).map(e=>n[e.conditionId]).filter(e=>e!==void 0);return{steps:r,nodes:e.nodes,edges:e.edges,conditions:i}}),u=r.map(e=>a.l(e.nodes,e.edges)),f=n.actions??[],m,h=(0,d.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(m,t,r):e.experienceInstances.spawn(m,t)})}}),g=(0,d.combine)({preconditionPassed:e.preconditionPassedStore,isUser:e.session.store.map(e=>e.isUser,{skipVoid:!1}),config:s}),_=(0,d.attach)({source:g,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}}),v=(0,d.createEffect)(async()=>{if(!e.contentLoader)return!0;try{await e.contentLoader({id:n.id,key:n.key})}catch{`${n.id}`}return!0}),y=(0,d.createEvent)(),b=(0,d.createEvent)(),x=p.createStore(void 0,{skipVoid:!1}).on(y,(e,t)=>t).on(b,(e,t)=>t);return(0,d.sample)({clock:y,target:_}),(0,d.sample)({clock:_.doneData,source:x,filter:(e,t)=>t,fn:e=>e,target:h}),(0,d.sample)({clock:_.doneData,filter:Boolean,target:v}),(0,d.sample)({clock:b,source:x,fn:e=>e,target:h}),(0,d.sample)({clock:b,target:v}),m={id:n.id,key:n.key,name:n.name,configStore:s,treeStore:l,nodeTreeStore:u,componentStore:c,actions:f,merge:o.merge,initialiseFx:h,shouldInitialiseFx:_,initialiseRequested:y,initialiseDirectly:b,prepareExperienceContentFx:v},m});function h(e){return(0,f.invoke)(m,e)}var g=(0,f.createFactory)(({client:e})=>{let t=p.store({}),n=(0,d.createApi)(t,{register(e,t){return{...e,[t.id]:t}}}),r=(0,d.createEvent)(),i=(0,d.createEffect)(t=>{n.register(h({client:e,experience:t}))});(0,d.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,d.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,d.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,d.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,d.attach)({source:a,effect:e=>{for(let t of e)t.initialiseRequested(void 0)}})}});function _(e){return(0,f.invoke)(g,e)}var v=async e=>{await e.experiences.initialiseExperiencesFx()};function y(e){return(0,d.createEffect)(async()=>{await e()})}var b=(e,t,n)=>{let r=t.name,i=t.setup(e),a=n[r]??{};n[r]=Object.freeze({...a,...i})},x=(0,d.createDomain)(`component`),S=(0,f.createFactory)(({client:e,component:t,name:n})=>({name:n,component:t,frameworkStore:e.frameworks.getByName(t.frameworkName)}));function C(e){return(0,f.invoke)(S,e)}var w=(0,f.createFactory)(({client:e})=>{let t=x.store({}),r=(0,d.createApi)(t,{register(e,t){return{...e,[t.name]:t}}}),i=(0,d.createEvent)();(0,d.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,d.sample)({clock:i,fn:({name:t,component:n})=>C({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 T(e){return(0,f.invoke)(w,e)}var E=(e,t,n)=>{n.register({name:e,component:t})},D=(0,d.createDomain)(`framework`),O=(0,f.createFactory)(e=>{let t=D.store({}),r=(0,d.createApi)(t,{register(e,t){return{...e,[t.name]:t.framework}}}),i=(0,d.createEvent)();(0,d.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,d.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 k(e){return(0,f.invoke)(O,e)}var A=(e,t)=>{t.register({name:e.name,framework:e})},j=(0,f.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,d.combine)(e.responses.listStore,e.fields.listStore,(t,r)=>Object.freeze({client:e,responses:t,fields:r,...n}))});function ee(e){return(0,f.invoke)(j,e)}function M(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 o.apply(a.logic,{...t,conditions:M(e,t,new Set(n).add(i))})===!0}})}var te=(0,f.createFactory)(({client:e})=>(0,d.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:s,context:c})=>{let l=t.reduce((t,n)=>(t[n.name]=async(...t)=>await n.predicate({...e,args:t}),t),{}),u=n.reduce((t,n)=>(t[n.key]=async(...t)=>await n.action({...e,args:t},null)??void 0,t),{}),d=r.reduce((e,t)=>(e[t.id]=async()=>{let{bucket:e}=await t.getBucket();return e},e),{}),f={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:l,actions:u,features:d,...c},p={...f,conditions:M(a,f,new Set)};return await o.apply(s,p)}}));function ne(e){return(0,f.invoke)(te,e)}var N=(0,d.createDomain)(`lifecycle`),re=(0,f.createFactory)(({client:e})=>{let n=N.store(!1),a=(0,d.createStore)(void 0,{skipVoid:!1,domain:N}),o=(0,d.createStore)(void 0,{skipVoid:!1,domain:N}),s=N.store(`idle`),c=N.store([]),l=(0,d.createStore)(void 0,{skipVoid:!1,domain:N}),u=(0,d.createStore)(void 0,{skipVoid:!1,domain:N}),f=(0,d.createEvent)(),p=(0,d.createEvent)(),m=(0,d.createEvent)(),h=(0,d.createEvent)(),g=(0,d.createEvent)(),_=(0,d.createEvent)();c.on(h,(e,t)=>[...e,t]),l.on(g,(e,t)=>t),u.on(_,(e,t)=>t),n.on(p,()=>!0);let y=(0,d.createEffect)(async()=>{await i.r()}),b=(0,d.createEffect)(async()=>{await v(e)}),x=(0,d.attach)({effect:b}),S=(0,d.attach)({source:c,effect:async e=>{for(let t of e)await t()}}),C=(0,d.attach)({source:l,effect:async n=>n===void 0?!0:typeof n==`boolean`?n:await t.t(e,n)===!0}),w=(0,d.attach)({source:u,effect:async n=>n===void 0?!0:typeof n==`boolean`?n:await t.t(e,n)===!0}),T=(0,d.sample)({clock:f,source:s,filter:e=>e===`idle`&&r.i(),fn:()=>void 0});(0,d.sample)({clock:T,fn:()=>`starting`,target:s}),T.watch(e.performance.markBegin),p.watch(e.performance.measure),(0,d.sample)({clock:T,target:S}),(0,d.sample)({clock:T,target:y}),(0,d.sample)({clock:S.done,target:C}),(0,d.sample)({clock:C.doneData,target:a}),(0,d.sample)({clock:w.doneData,target:o}),(0,d.sample)({clock:C.doneData,filter:e=>e,target:w}),(0,d.sample)({clock:w.doneData,target:e.session.setIsUser}),(0,d.sample)({clock:w.doneData,fn:e=>({type:`user_decide`,value:e}),target:e.eventBus}),(0,d.sample)({clock:C.doneData,filter:e=>!e,fn:()=>void 0,target:m}),(0,d.sample)({clock:w.doneData,fn:()=>void 0,target:m}),(0,d.sample)({clock:m,fn:()=>({type:`initialize`}),target:e.eventBus});let E=(0,d.createStore)(!1).on(y.done,()=>!0),D=(0,d.createStore)(!1).on(m,()=>!0),O=(0,d.createStore)(!1).on(x.done,()=>!0),k=(0,d.combine)(a,o,(e,t)=>e===!0&&t===!0);(0,d.sample)({clock:m,source:k,filter:e=>e,fn:()=>void 0,target:b});let A=(0,d.combine)(E,D,k,(e,t,n)=>e&&t&&n);(0,d.sample)({clock:A,filter:e=>e,fn:()=>void 0,target:x});let j=(0,d.combine)(E,D,k,O,(e,t,n,r)=>e&&t&&(!n||r));return(0,d.sample)({clock:j,filter:e=>e,fn:()=>void 0,target:p}),(0,d.sample)({clock:p,fn:()=>`ready`,target:s}),(0,d.sample)({clock:p,fn:()=>({type:`ready`}),target:e.eventBus}),(0,d.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,d.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:_}});function ie(e){return(0,f.invoke)(re,e)}var ae=(0,d.createDomain)(`predicate`),oe=(0,f.createFactory)(({client:e})=>{let t=ae.store({}),r=(0,d.createApi)(t,{register(e,t){return{...e,[t.name]:{name:t.name,predicate:t.predicate}}}}),i=(0,d.createEvent)();(0,d.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,d.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,d.createStore)(()=>void 0,{skipVoid:!1}),r=(0,d.attach)({source:{predicate:o(t),snapshot:e.stateSnapshotStore},effect:({predicate:e,snapshot:t})=>{if(e)return(...n)=>e({...t,args:n})}});return(0,d.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:r}),(0,d.sample)({clock:r.doneData,filter:e=>e!==void 0,target:n}),r(),n}return{register:i,getByName:o,listStore:a,getEvokablePredicate:s}});function se(e){return(0,f.invoke)(oe,e)}var ce=(e,t,n)=>{n.register({name:e,predicate:t})},P=(0,d.createDomain)(`history`);function F(e,t){return{id:l.t(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}var le=(0,f.createFactory)(()=>{let e=P.store({entries:[]}),t=P.event(),n=P.event(),r=P.event(),i=P.event();e.on(t,(e,t)=>({entries:[...e.entries,F(t.experienceId,t.node)]})),e.on(n,(e,t)=>({entries:[...e.entries.slice(0,-1),F(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.d(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 ue(){return(0,f.invoke)(le)}var de=0,fe=e=>{let t=(0,d.createStore)([]);return t.on(e,(e,t)=>[...e,{id:de++,at:new Date,payload:t}]),t};function I(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 pe=(0,d.createDomain)(`field`),me=(0,f.createFactory)(()=>{let e=pe.store({}),t=(0,d.createApi)(e,{register(e,t){let n=Object.assign({},t.field,{policies:I(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:I(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 he(){return(0,f.invoke)(me)}var L=(0,d.createDomain)(`step`),R=(0,f.createFactory)(()=>{let e=L.store({}),t=(0,d.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 ge(){return(0,f.invoke)(R)}function _e(e,t){t.register(e)}var ve=(0,d.createDomain)(`content`),ye=(0,f.createFactory)(()=>{let e=ve.store({}),t=(0,d.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 be(){return(0,f.invoke)(ye)}function xe(e,t){t.register(e)}var Se=(0,d.createDomain)(`action`),Ce=(0,f.createFactory)(({client:e})=>{let t=Se.store({}),r=(0,d.createApi)(t,{register(e,t){return{...e,[t.key]:{key:t.key,action:t.action}}}}),i=(0,d.createEvent)();(0,d.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,d.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,d.createStore)(()=>void 0,{skipVoid:!1}),i=n?{experience:n.experience}:null,a=(0,d.attach)({source:{action:o(t),snapshot:e.stateSnapshotStore},effect:({action:e,snapshot:t})=>{if(e)return(...n)=>e({...t,args:n},i)}});return(0,d.sample)({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:a}),(0,d.sample)({clock:a.doneData,filter:e=>e!==void 0,target:r}),a(),r}return{register:i,getByKey:o,listStore:a,getEvokableAction:s}});function we(e){return(0,f.invoke)(Ce,e)}var Te=(e,t,n)=>{n.register({key:e,action:t})};function z(e,t,n,r){return{fieldKey:e.key,userMessage:n,systemMessage:r,value:t}}function B(e){return e===null||e===``||Array.isArray(e)&&!e.length}function Ee(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e===null}function V(e){try{return JSON.stringify(e),!0}catch{return!1}}function De(e,t){return t.find(t=>t.key===e)??null}function Oe(e,t){return e.multiple&&(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)?[t]:t}function ke(e,t){if(e.type!==`object`||B(t))return null;if(e.multiple){if(!Array.isArray(t))return z(e,t,`This field expects multiple values`,`Field expects an array of objects.`);for(let n of t){if(typeof n!=`object`||!n)return z(e,t,`This field expects object values`,`Field expects an array of objects, but received non-object value.`);if(!V(n))return z(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)?z(e,t,`This field expects a single value`,`Field expects a single object, not an array.`):typeof t!=`object`||!t?z(e,t,`This field expects an object value`,`Field expects an object value.`):V(t)?null:z(e,t,`This field contains non-serializable data`,`Field value contains non-JSON-serializable data (functions, circular references, etc.).`)}function Ae(e,t){if(B(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:z(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=>!Ee(e)||e===null?!1:r.includes(e))?null:z(e,t,`This field expects a valid option`,`Field expects a valid option. Valid options are: ${r.join(`, `)}`)}async function je(t,n,r,i){if(n.validation&&!e.t(n.validation)&&!B(r)){let e=i?{$input:r,responses:i}:{$input:r},a=await t(n.validation,e);if(typeof a==`string`)return z(n,r,a,`Field validation resulted in an error: ${a}.`);if(a===!1)return z(n,r,`This field is invalid`,`Field validation resulted in an unspecified error.`)}return n.required&&B(r)?z(n,r,`This field is required`,`Field is required.`):!n.multiple&&Array.isArray(r)&&r.length>1?z(n,r,`This field expects a single response`,`Field expects a single response.`):null}var Me=(0,d.createDomain)(`response`),Ne=(0,f.createFactory)(({client:e})=>{let n=Me.store({}),r=(0,d.createEvent)(),i=(0,d.createEvent)(),a=(0,d.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,d.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=De(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=Oe(o,n),l=await je(s,o,c,a);if(l){r.push(l);return}let u=ke(o,c);if(u){r.push(u);return}let d=Ae(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 u=(0,d.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 u(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,d.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,d.sample)({clock:r,target:a.clearAll}),(0,d.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 Pe(e){return(0,f.invoke)(Ne,e)}var Fe=(0,d.createDomain)(`condition`),Ie=(0,f.createFactory)(()=>{let e=Fe.store({}),t=(0,d.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 Le(){return(0,f.invoke)(Ie)}function Re(){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`}var ze=`picked:start:begin`,H=`picked:start`;function U(){try{return r.f()&&!!r.p.window&&`performance`in r.p}catch{return!1}}function Be(){let e=null,t=null;return{markBegin:()=>{if(U())try{e=performance.mark(ze).startTime}catch{}},measure:()=>{if(!(!U()||e===null))try{t=performance.measure(H,{start:e})}catch{}},get startMeasure(){return t}}}function Ve(){let e=null;return{observeDeliveryAPIRequests:t=>{e=t},get deliveryAPIRequestObserver(){return e}}}var W=s.t(`session`,`global`);function He(){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 Ue(){if(!r.s())return null;let e=s.n.get(W);if(!e.isSet())return null;try{return e.json()}catch{return null}}var We=(0,f.createFactory)(()=>{let e=Ue(),t={id:e?.id??He()};e?.isUser!==void 0&&(t.isUser=e.isUser),e?.identifiers&&Object.keys(e.identifiers).length>0&&(t.identifiers=e.identifiers);let n=(0,d.createStore)(t),i=(0,d.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,d.attach)({source:n,effect:e=>{if(r.s())try{s.n.get(W).set(e)}catch{}}});return(0,d.sample)({source:n,target:a}),{store:n,setIsUser:i.setIsUser,setIdentifier:i.setIdentifier,removeIdentifier:i.removeIdentifier}});function Ge(){return(0,f.invoke)(We,void 0)}function G(){if(r.f())return globalThis.window.pickedConfig}function Ke(){if(r.f())return G()?.projectId}function qe(){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 Je(e){if(e.projectId)return e.projectId;let t=Ke();if(t)return t;let n=qe();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 K(e){return e==null||e===``||Number.isNaN(e)}var Ye={default:(e,t)=>K(e)?String(t??``):String(e),append:(e,t)=>t&&!K(e)?`${e} ${t}`:e,prepend:(e,t)=>t&&!K(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 Xe(e){return typeof e==`object`&&!!e}function Ze(e,t){let n=t;for(let t of e.split(`.`))if(Xe(n)&&t in n)n=n[t];else return;return typeof n==`function`?n():n}function Qe(e,t){let n=e.split(`|`).map(e=>e.trim()),r=Ze(n.shift()??``,t);for(let e of n){let[t,...n]=e.split(`:`),i=t?.trim()??``,a=n.join(`:`).trim().replaceAll(/(?:^['"]|['"]$)/g,``),o=Ye[i];o&&(r=o(r,a))}return K(r)?``:typeof r==`object`?JSON.stringify(r):String(r)}function $e(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+=Qe(i.trim(),t)}else n+=e[r++];return n}var q=class{static logger=n.t;options;dataSource=null;seededVersionId=null;versionSkew=null;previewUnavailable=!1;contentLoader;previewEmbedderOrigins=null;plugins={};telemetry=Ve();dataProviders=new Map;eventBus=(0,d.createEvent)();events;projectId;apiUrl;dashboardUrl;documentationSiteUrl;session=Ge();performance=Be();searchParams=c.a();history=ue();components=T({client:this});experienceInstances=a.n({client:this});experiences=_({client:this});frameworks=k({client:this});predicates=se({client:this});features=c.s({client:this});conditions=Le();fields=he();responses=Pe({client:this});steps=ge();contents=be();actions=we({client:this});conditionResults=a.r();stateSnapshotStore=ee({client:this});evaluateRuleLogicFx=ne({client:this});start;readyStore;preconditionPassedStore;conditionPassedStore;lifecycleStageStore;lifecycle=ie({client:this});renderStringFx=(0,d.attach)({source:this.responses.listStore,effect:(e,{template:t,context:n})=>{let r={};for(let t of e)r[t.fieldKey]=t.value;return $e(t,{...n,responses:r})}});constructor(e){this.events=fe(this.eventBus),this.projectId=Je(e),this.options=Object.freeze(e),this.apiUrl=e.apiUrl||Re(),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:c.o()}),this.maybeStartPreviewChannel()}dataProviderFor(e){let t=e??``,n=this.dataProviders.get(t);if(n)return n;let r=Promise.resolve().then(()=>require("../provider-OE-GWxMR.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&&t.meta.previewUnavailable)throw new c.t(this.projectId);if(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(){c.r()&&Promise.resolve().then(()=>require("../preview-channel-Cx0e6fye.cjs")).then(e=>e.initPreviewChannel(this)).catch(()=>void 0)}registerFramework=e=>{A(e,this.frameworks)};registerComponent=(e,t)=>{E(e,t,this.components)};registerPlugin=e=>{b(this,e,this.plugins);let t=this.plugins[e.name];t?.onStart&&this.lifecycle.registerPluginStartHook(t.onStart)};registerFeature=(e,t)=>{c.l(e,t,this.features)};registerPredicate=(e,t)=>{ce(e,t,this.predicates)};registerCondition=e=>{this.conditions.register(e)};registerField=e=>{this.fields.register(e)};registerStep=e=>{_e(e,this.steps)};registerContent=e=>{xe(e,this.contents)};patchContent=(e,t)=>{this.contents.patch(e,t)};registerAction=(e,t)=>{Te(e,t,this.actions)};registerExperience=e=>{e.component&&E(`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=c.c(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]??{}},et=`application/picked-javascript`,tt=`application/picked-module`,nt=`data-picked-hydrated`;async function J(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 rt(){return`<script>(${J.toString()})(document)<\/script>`}function it(e){return typeof e==`object`&&!!e&&`id`in e&&typeof e.id==`string`&&`content`in e&&(typeof e.content==`string`||e.content===null)}function at(e){return{$$type:`lazy-component`,load:e}}function ot(e){return typeof e==`object`&&!!e&&`$$type`in e&&e.$$type===`lazy-component`}function Y(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`contentEntryId`in e&&typeof e.contentEntryId==`string`}function X(e){return Y(e)?e.contentEntryId:null}function Z(e){let t=Array.isArray(e)?e:[e],n=[];for(let e of t)Y(e)&&n.push(e.contentEntryId);return n}function Q(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 st(e,t){if(d.is.store(t))return(0,d.combine)(t,e.indexStore,(e,t)=>Q(t,X(e)));let n=X(t);return e.indexStore.map(e=>Q(e,n),{skipVoid:!1})}function ct(e,t){if(d.is.store(t))return(0,d.combine)(t,e.indexStore,(e,t)=>$(t,Z(e)));let n=Z(t);return e.indexStore.map(e=>$(e,n),{skipVoid:!1})}var lt=e=>{let t=new q(e);return r.m(t),t};function ut(e){return typeof e.data==`object`}function dt(e){return e.map(e=>!e||!ut(e)?null:e,{skipVoid:!1})}function ft(e,t){return e.contentModelKey===t}exports.PICKED_HYDRATED_ATTR=nt,exports.PICKED_MODULE_SCRIPT_TYPE=tt,exports.PICKED_SCRIPT_TYPE=et,exports.PREVIEW_TOKEN_PARAM=c.n,exports.Picked=q,exports.PreviewUnavailableError=c.t,exports.buildRehydrateBootstrap=rt,exports.createClient=lt,exports.createPluginEffect=y,exports.createStorageKey=s.t,exports.deriveReference=st,exports.deriveReferences=ct,exports.evaluateRuleLogic=t.t,exports.getPickedConfig=G,exports.isContentOfModel=ft,exports.isContentReference=Y,exports.isHtmlAssetValue=it,exports.isInsideIframe=r.t,exports.isLazyLoader=ot,exports.isPickedRoot=i.a,exports.isPreviewSession=c.r,exports.lazyComponent=at,exports.localStore=s.n,exports.onInertScriptSubtrees=u.t,exports.readReferenceId=X,exports.readReferenceIds=Z,exports.rehydrateScripts=J,exports.reportInertScriptSubtrees=u.n,exports.resetInertScriptReport=u.r,exports.sessionStore=s.r,exports.subscribe=s.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=dt;
|
|
4
|
+
(3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes a data-projectid (or project-id) attribute.`)}function K(e){return e==null||e===``||Number.isNaN(e)}var Ye={default:(e,t)=>K(e)?String(t??``):String(e),append:(e,t)=>t&&!K(e)?`${e} ${t}`:e,prepend:(e,t)=>t&&!K(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 Xe(e){return typeof e==`object`&&!!e}function Ze(e,t){let n=t;for(let t of e.split(`.`))if(Xe(n)&&t in n)n=n[t];else return;return typeof n==`function`?n():n}function Qe(e,t){let n=e.split(`|`).map(e=>e.trim()),r=Ze(n.shift()??``,t);for(let e of n){let[t,...n]=e.split(`:`),i=t?.trim()??``,a=n.join(`:`).trim().replaceAll(/(?:^['"]|['"]$)/g,``),o=Ye[i];o&&(r=o(r,a))}return K(r)?``:typeof r==`object`?JSON.stringify(r):String(r)}function $e(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+=Qe(i.trim(),t)}else n+=e[r++];return n}var q=class{static logger=n.t;options;dataSource=null;seededVersionId=null;versionSkew=null;previewUnavailable=!1;contentLoader;previewEmbedderOrigins=null;plugins={};telemetry=Ve();dataProviders=new Map;eventBus=(0,d.createEvent)();events;projectId;apiUrl;dashboardUrl;documentationSiteUrl;session=Ge();performance=Be();searchParams=c.a();history=ue();components=T({client:this});experienceInstances=a.n({client:this});experiences=_({client:this});frameworks=k({client:this});predicates=se({client:this});features=c.s({client:this});conditions=Le();fields=he();responses=Pe({client:this});steps=ge();contents=be();actions=we({client:this});conditionResults=a.r();stateSnapshotStore=ee({client:this});evaluateRuleLogicFx=ne({client:this});start;readyStore;preconditionPassedStore;conditionPassedStore;lifecycleStageStore;lifecycle=ie({client:this});renderStringFx=(0,d.attach)({source:this.responses.listStore,effect:(e,{template:t,context:n})=>{let r={};for(let t of e)r[t.fieldKey]=t.value;return $e(t,{...n,responses:r})}});constructor(e){this.events=fe(this.eventBus),this.projectId=Je(e),this.options=Object.freeze(e),this.apiUrl=e.apiUrl||Re(),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:c.o()}),this.maybeStartPreviewChannel()}dataProviderFor(e){let t=e??``,n=this.dataProviders.get(t);if(n)return n;let r=Promise.resolve().then(()=>require("../provider-CeOR1ZX8.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&&t.meta.previewUnavailable)throw new c.t(this.projectId);if(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(){c.r()&&Promise.resolve().then(()=>require("../preview-channel-Cx0e6fye.cjs")).then(e=>e.initPreviewChannel(this)).catch(()=>void 0)}registerFramework=e=>{A(e,this.frameworks)};registerComponent=(e,t)=>{E(e,t,this.components)};registerPlugin=e=>{b(this,e,this.plugins);let t=this.plugins[e.name];t?.onStart&&this.lifecycle.registerPluginStartHook(t.onStart)};registerFeature=(e,t)=>{c.l(e,t,this.features)};registerPredicate=(e,t)=>{ce(e,t,this.predicates)};registerCondition=e=>{this.conditions.register(e)};registerField=e=>{this.fields.register(e)};registerStep=e=>{_e(e,this.steps)};registerContent=e=>{xe(e,this.contents)};patchContent=(e,t)=>{this.contents.patch(e,t)};registerAction=(e,t)=>{Te(e,t,this.actions)};registerExperience=e=>{e.component&&E(`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=c.c(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]??{}},et=`application/picked-javascript`,tt=`application/picked-module`,nt=`data-picked-hydrated`;async function J(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 rt(){return`<script>(${J.toString()})(document)<\/script>`}function it(e){return typeof e==`object`&&!!e&&`id`in e&&typeof e.id==`string`&&`content`in e&&(typeof e.content==`string`||e.content===null)}function at(e){return{$$type:`lazy-component`,load:e}}function ot(e){return typeof e==`object`&&!!e&&`$$type`in e&&e.$$type===`lazy-component`}function Y(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`contentEntryId`in e&&typeof e.contentEntryId==`string`}function X(e){return Y(e)?e.contentEntryId:null}function Z(e){let t=Array.isArray(e)?e:[e],n=[];for(let e of t)Y(e)&&n.push(e.contentEntryId);return n}function Q(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 st(e,t){if(d.is.store(t))return(0,d.combine)(t,e.indexStore,(e,t)=>Q(t,X(e)));let n=X(t);return e.indexStore.map(e=>Q(e,n),{skipVoid:!1})}function ct(e,t){if(d.is.store(t))return(0,d.combine)(t,e.indexStore,(e,t)=>$(t,Z(e)));let n=Z(t);return e.indexStore.map(e=>$(e,n),{skipVoid:!1})}var lt=e=>{let t=new q(e);return r.m(t),t};function ut(e){return typeof e.data==`object`}function dt(e){return e.map(e=>!e||!ut(e)?null:e,{skipVoid:!1})}function ft(e,t){return e.contentModelKey===t}exports.PICKED_HYDRATED_ATTR=nt,exports.PICKED_MODULE_SCRIPT_TYPE=tt,exports.PICKED_SCRIPT_TYPE=et,exports.PREVIEW_TOKEN_PARAM=c.n,exports.Picked=q,exports.PreviewUnavailableError=c.t,exports.buildRehydrateBootstrap=rt,exports.createClient=lt,exports.createPluginEffect=y,exports.createStorageKey=s.t,exports.deriveReference=st,exports.deriveReferences=ct,exports.evaluateRuleLogic=t.t,exports.getPickedConfig=G,exports.isContentOfModel=ft,exports.isContentReference=Y,exports.isHtmlAssetValue=it,exports.isInsideIframe=r.t,exports.isLazyLoader=ot,exports.isPickedRoot=i.a,exports.isPreviewSession=c.r,exports.lazyComponent=at,exports.localStore=s.n,exports.onInertScriptSubtrees=u.t,exports.readReferenceId=X,exports.readReferenceIds=Z,exports.rehydrateScripts=J,exports.reportInertScriptSubtrees=u.n,exports.resetInertScriptReport=u.r,exports.sessionStore=s.r,exports.subscribe=s.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=dt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../plugin-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../plugin-DWppWrIm.cjs"),t=require("../../../api-MO5qoE5S.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;
|
package/dist/cjs/server/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../experience-instance-CQvQHCNe.cjs"),t=require("../../preview-unavailable-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../experience-instance-CQvQHCNe.cjs"),t=require("../../preview-unavailable-DDs9I4j6.cjs"),n=require("../../plugin-DWppWrIm.cjs");let r=require("effector");var i=1e4;function a(e){if(e?.location!==void 0)return{location:e.location}}function o(t,n){return t.nodes.filter(e.d).some(e=>n.get(e.stepId)===!0)}async function s(r,s={}){let c=s.previewToken===void 0?void 0:{previewToken:s.previewToken},l=await r.getProjectConfig(c).catch(e=>{if(!(e instanceof t.t))throw e;return c=void 0,r.getProjectConfig()}),u=r.session.store.getState().id;r.conditionResults.reset(),n.n(r,l,{isPreview:!1,sessionId:u});let d=a(s.attributes),f=s.timeoutMs??i,p=new Map(l.steps.map(e=>[e.id,e.layoutContentId!==void 0&&e.layoutContentId!==null])),m=Object.fromEntries(l.conditions.map(e=>[e.key,e])),h=l.experiences.filter(t=>!e.c(t.condition,m)),g=(await Promise.all(h.map(async t=>({experience:t,active:await e.o(r,{condition:t.condition},{context:d})})))).filter(e=>e.active).map(e=>e.experience),_=await Promise.all(g.filter(e=>o(e,p)).map(e=>r.getExperienceContent({id:e.id,key:e.key},{...c,signal:AbortSignal.timeout(f)}))),v=new Map;for(let e of _)if(e)for(let t of[...e.references??[],...e.content])v.set(t.id,t);return{versionId:l.versionId,projectConfig:l,content:Array.from(v.values()),conditionResults:r.conditionResults.store.getState()}}function c(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:t=>e(t),reject:e=>t(e)}}function l(t,n){let{promise:i,resolve:a}=c(),o=(0,r.createEvent)(),s=(0,r.createEvent)(),l=(0,r.createEvent)(),u=(0,r.createEvent)(),d=(0,r.createEvent)(),f=t.experiences.listStore.map(n=>n.map(n=>e.t({client:t,experience:n}))),p=(0,r.createStore)({currentExperienceIndex:0,renderedExperiences:[],isComplete:!1}),m=(0,r.createEffect)(async e=>{let n=(0,r.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 n(t);if(e)return e}return null}),h=(0,r.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,r.sample)({clock:o,target:s}),(0,r.sample)({clock:s,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:n,startRendererIndex:0}),target:h}),(0,r.sample)({clock:h.doneData,filter:e=>e!==null,fn:e=>e.rendered.body,target:l}),(0,r.sample)({clock:l,target:s}),(0,r.sample)({clock:h.doneData,filter:e=>e===null,target:d}),(0,r.sample)({clock:d,target:s}),(0,r.sample)({clock:[s,d,l],source:{experiences:f,state:p},filter:({experiences:e,state:t})=>t.currentExperienceIndex>=e.length,target:u});let g=(0,r.attach)({source:p,effect:e=>{e.isComplete&&a(e.renderedExperiences)}});return(0,r.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=n.n,exports.render=l,exports.ruleReferencesAction=e.s,exports.ruleReferencesActionDeep=e.c,exports.serialize=s;
|
|
@@ -9,7 +9,7 @@ A lead is one set of answers that a visitor gave to your flow. The **Leads** pag
|
|
|
9
9
|
them, and it has one search box. The box accepts a plain word, a filter, or both. The
|
|
10
10
|
dashboard holds the query in the address, so you can share the link.
|
|
11
11
|
|
|
12
|
-
## The
|
|
12
|
+
## The parts of a lead that a query reads
|
|
13
13
|
|
|
14
14
|
| Part | How to write it | Example |
|
|
15
15
|
| --- | --- | --- |
|
|
@@ -18,10 +18,11 @@ dashboard holds the query in the address, so you can share the link.
|
|
|
18
18
|
| One answer | the key of the field | `suburb:Sydney` |
|
|
19
19
|
| The capture date | `createdAt` | `createdAt>2026-08-01` |
|
|
20
20
|
| The visitor | `userId` | `userId:sess_7x2k9q3m1n4a` |
|
|
21
|
+
| The visit that captured the lead | `session.field` | `session.utm_source:google` |
|
|
21
22
|
|
|
22
|
-
A path of two parts is a label,
|
|
23
|
-
full stop. A path of one part is the key
|
|
24
|
-
`userId`.
|
|
23
|
+
A path of two parts is a label, unless it starts with `session.`: that path reads the visit.
|
|
24
|
+
A label namespace and a label key cannot contain a full stop. A path of one part is the key
|
|
25
|
+
of a field, unless the name is `createdAt` or `userId`.
|
|
25
26
|
|
|
26
27
|
## Operators
|
|
27
28
|
|
|
@@ -41,6 +42,7 @@ Each part accepts a different set:
|
|
|
41
42
|
| Answer | yes | yes | yes | no |
|
|
42
43
|
| `createdAt` | yes | no | no | yes |
|
|
43
44
|
| `userId` | yes | no | no | no |
|
|
45
|
+
| `session.` | yes | yes | yes | no |
|
|
44
46
|
|
|
45
47
|
## How clauses combine
|
|
46
48
|
|
|
@@ -54,6 +56,61 @@ acme.status:sent OR acme.status:queued
|
|
|
54
56
|
One query holds a maximum of 10 clauses. One query uses AND or OR, and not both: there is
|
|
55
57
|
no way to show which one comes first. A query that mixes them gives an error.
|
|
56
58
|
|
|
59
|
+
## The visit that captured the lead
|
|
60
|
+
|
|
61
|
+
A visit is the set of events that one visitor made, from the first page to the last page. The visit
|
|
62
|
+
that captured a lead is the visit that holds its capture. A clause on the visit matches the
|
|
63
|
+
lead when one event of the visit has the value. The event can come before the capture or
|
|
64
|
+
after it.
|
|
65
|
+
|
|
66
|
+
| Field | What it holds |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| `gaid` | The ID that Google Analytics gives the visitor |
|
|
69
|
+
| `utm_source` | The `utm_source` parameter of the page address |
|
|
70
|
+
| `utm_medium` | The `utm_medium` parameter of the page address |
|
|
71
|
+
| `utm_campaign` | The `utm_campaign` parameter of the page address |
|
|
72
|
+
| `utm_term` | The `utm_term` parameter of the page address |
|
|
73
|
+
| `utm_content` | The `utm_content` parameter of the page address |
|
|
74
|
+
| `page_url` | The full address of the page |
|
|
75
|
+
| `page_origin` | The host of the page, for example `shop.example.com` |
|
|
76
|
+
| `page_pathname` | The path of the page, for example `/quote` |
|
|
77
|
+
| `page_query` | The query string of the page, with no `?` |
|
|
78
|
+
| `landing_page_url` | The full address of the first page of the visit |
|
|
79
|
+
| `landing_page_origin` | The host of the first page, for example `shop.example.com` |
|
|
80
|
+
| `landing_page_pathname` | The path of the first page, for example `/` |
|
|
81
|
+
| `landing_page_query` | The query string of the first page, with no `?` |
|
|
82
|
+
|
|
83
|
+
A clause on the visit searches every lead, with no date limit.
|
|
84
|
+
|
|
85
|
+
A clause with `-` matches a lead when no event of the visit has the value. A lead that has
|
|
86
|
+
no visit does not match a clause on the visit, with `-` or without it. A lead has no visit
|
|
87
|
+
when one of these is true:
|
|
88
|
+
|
|
89
|
+
- The lead has no capture event. The capture came before Picked recorded capture events, or
|
|
90
|
+
the deployment sends no events.
|
|
91
|
+
- The visit was on a deployment that is not for production, for example a preview or a test
|
|
92
|
+
deployment.
|
|
93
|
+
- The visit started more than 7 days before its events arrived.
|
|
94
|
+
- The time on the device of the visitor was more than one day later than the real time.
|
|
95
|
+
|
|
96
|
+
A query with a clause on the visit combines its clauses with AND. It can use OR only when
|
|
97
|
+
all of its clauses are on the visit.
|
|
98
|
+
|
|
99
|
+
A query with a clause on the visit shows the leads in the order of their capture events,
|
|
100
|
+
newest first. A capture event has its own time, and that time can differ from the `createdAt`
|
|
101
|
+
of the lead. The dashboard shows no column sort while the search has a clause on the visit.
|
|
102
|
+
|
|
103
|
+
A query with a clause on the visit shows the number of leads on the page, and no total. For
|
|
104
|
+
a page of 20 leads with another page after it, the dashboard shows `Showing 20 leads` above
|
|
105
|
+
the list.
|
|
106
|
+
|
|
107
|
+
A clause with `:` finds a value that is exactly the same, with the same upper case and lower
|
|
108
|
+
case.
|
|
109
|
+
|
|
110
|
+
In a clause on the visit, `~` finds the value as text, and ignores the difference between
|
|
111
|
+
upper case and lower case. In a clause on the visit, `%` and `_` in the value match only `%`
|
|
112
|
+
and `_`.
|
|
113
|
+
|
|
57
114
|
## Values with a space
|
|
58
115
|
|
|
59
116
|
Put `"` at each end of a value that has a space. To search for `"` inside a value, write
|
|
@@ -111,6 +168,20 @@ Two plain words both must match.
|
|
|
111
168
|
| `createdAt>2026-08-01` | Leads captured after that date |
|
|
112
169
|
| `userId:sess_7x2k9q3m1n4a` | Leads captured for that visitor |
|
|
113
170
|
|
|
171
|
+
**The visit that captured the lead**
|
|
172
|
+
|
|
173
|
+
| Query | What it finds |
|
|
174
|
+
| --- | --- |
|
|
175
|
+
| `session.utm_source:google` | Leads whose visit had the `utm_source` `google` |
|
|
176
|
+
| `session.utm_campaign~spring` | Leads whose visit had a `utm_campaign` that holds `spring` |
|
|
177
|
+
| `session.page_pathname:/quote` | Leads whose visit had the page `/quote` |
|
|
178
|
+
| `session.page_origin:shop.example.com` | Leads whose visit had a page on `shop.example.com` |
|
|
179
|
+
| `session.landing_page_pathname:/` | Leads whose visit started on the page `/` |
|
|
180
|
+
| `session.landing_page_query~utm_source=google` | Leads whose visit started on a page with `utm_source=google` in its query string |
|
|
181
|
+
| `session.gaid:*` | Leads whose visit had a Google Analytics ID |
|
|
182
|
+
| `-session.utm_source:*` | Leads whose visit had no `utm_source` |
|
|
183
|
+
| `session.utm_source:google OR session.utm_source:bing` | Leads whose visit had either `utm_source` |
|
|
184
|
+
|
|
114
185
|
**More than one clause**
|
|
115
186
|
|
|
116
187
|
| Query | What it finds |
|
|
@@ -123,7 +194,7 @@ Two plain words both must match.
|
|
|
123
194
|
|
|
124
195
|
A path takes an optional `labels.` or `responses.` prefix. Two cases need it:
|
|
125
196
|
|
|
126
|
-
- A label namespace with the name `labels` or `
|
|
197
|
+
- A label namespace with the name `labels`, `responses`, or `session`: write
|
|
127
198
|
`labels.responses.status:sent`.
|
|
128
199
|
- The key of a field that holds a full stop: write `responses.quote.preferences:*`. Without
|
|
129
200
|
the prefix the query reads that path as a label.
|
|
@@ -142,6 +213,8 @@ The search box shows an error, and the list does not change, for each of these:
|
|
|
142
213
|
| An operator that the part does not accept | `createdAt~2026` |
|
|
143
214
|
| AND together with OR | `a.b:1 c.d:2 OR e.f:3` |
|
|
144
215
|
| More than 10 clauses | 11 clauses in one query |
|
|
216
|
+
| A visit field that does not exist | `session.referrer:x` |
|
|
217
|
+
| OR between a clause on the visit and a clause that is not | `session.utm_source:google OR labels.crm.status:sent` |
|
|
145
218
|
|
|
146
219
|
## Related
|
|
147
220
|
|
|
@@ -101,6 +101,8 @@ documentation uses, and it names the others.
|
|
|
101
101
|
| **Label** | A name and a value that you or a workflow puts on a lead. It sits outside the answers, and it stays when you change your fields. |
|
|
102
102
|
| **Namespace** | The first part of the name of a label, which groups related keys, such as `details` in `details.phone`. |
|
|
103
103
|
| **Label type** | How to read the value of a label: text, number, boolean, or JSON. |
|
|
104
|
+
| **Visit** | The events one visitor made in one session. The API calls it `session`. |
|
|
105
|
+
| **Capture event** | The analytics event that recorded the capture of a lead. |
|
|
104
106
|
|
|
105
107
|
## The SDK
|
|
106
108
|
|
package/dist/esm/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { a as v, i as y, r as ee, s as b, t as x } from "../dom-BqcToNL0.js";
|
|
|
6
6
|
import { d as S, l as C, n as w, r as te, u as T } from "../experience-instance-DptBuxBJ.js";
|
|
7
7
|
import { apply as E } from "./logic-engine.js";
|
|
8
8
|
import { i as ne, n as D, r as re, t as O } from "../storage-1MW3-_As.js";
|
|
9
|
-
import { a as ie, c as ae, l as oe, n as se, o as ce, r as k, s as le, t as A } from "../preview-unavailable-
|
|
9
|
+
import { a as ie, c as ae, l as oe, n as se, o as ce, r as k, s as le, t as A } from "../preview-unavailable-BUDcwb5b.js";
|
|
10
10
|
import { t as ue } from "../id-Bo4RBeOs.js";
|
|
11
11
|
import { n as de, r as fe, t as pe } from "../inert-script-report-B_bMPRzp.js";
|
|
12
12
|
import { attach as j, combine as M, createApi as N, createDomain as P, createEffect as F, createEvent as I, createStore as L, is as R, sample as z } from "effector";
|
|
@@ -1361,7 +1361,7 @@ var Bt = class {
|
|
|
1361
1361
|
dataProviderFor(e) {
|
|
1362
1362
|
let t = e ?? "", n = this.dataProviders.get(t);
|
|
1363
1363
|
if (n) return n;
|
|
1364
|
-
let r = import("../provider-
|
|
1364
|
+
let r = import("../provider-BWcdzCXQ.js").then((t) => t.createPickedDataProvider({
|
|
1365
1365
|
apiUrl: this.apiUrl,
|
|
1366
1366
|
projectId: this.projectId,
|
|
1367
1367
|
getRequestObserver: () => this.telemetry.deliveryAPIRequestObserver,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e } from "../../../plugin-
|
|
2
|
-
import { n as t, t as n } from "../../../api-
|
|
1
|
+
import { t as e } from "../../../plugin-Bywvt30_.js";
|
|
2
|
+
import { n as t, t as n } from "../../../api-DZZrIx1k.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 };
|
package/dist/esm/server/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as e, c as t, d as n, i as r, o as i, s as a, t as o } from "../../experience-instance-DptBuxBJ.js";
|
|
2
|
-
import { t as s } from "../../preview-unavailable-
|
|
3
|
-
import { n as c } from "../../plugin-
|
|
2
|
+
import { t as s } from "../../preview-unavailable-BUDcwb5b.js";
|
|
3
|
+
import { n as c } from "../../plugin-Bywvt30_.js";
|
|
4
4
|
import { attach as l, createEffect as u, createEvent as d, createStore as f, sample as p } from "effector";
|
|
5
5
|
//#region src/server/serialize.ts
|
|
6
6
|
var m = 1e4;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./logger-DMN6TxJJ.js";
|
|
2
|
-
import { c as e, i as t, n, t as r } from "./preview-unavailable-
|
|
3
|
-
import "./api-
|
|
2
|
+
import { c as e, i as t, n, t as r } from "./preview-unavailable-BUDcwb5b.js";
|
|
3
|
+
import "./api-DZZrIx1k.js";
|
|
4
4
|
import { attach as i } from "effector";
|
|
5
5
|
import { runAction as a } from "@picked/delivery-api-client";
|
|
6
6
|
//#region src/plugins/dynamic-experiences/hash.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("./logger-CSTvAyyB.cjs");const e=require("./preview-unavailable-
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./preview-unavailable-DDs9I4j6.cjs");require("./api-MO5qoE5S.cjs");let t=require("effector"),n=require("@picked/delivery-api-client");function r(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return t>>>0}function i(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 a(e,t){return i(r(`${e}:${t}`))%100}function o(e,t){return t<=0?!1:t>=100||e<t}var s=4294967296;function c(e,t,n){return(i(r(`${e}:${t}:${n}`))+.5)/s}function l(e,t,n){return n.weight<=0?0:n.weight/-Math.log(c(e,t,n.key))}function u(e,t,n){let r=null,i=0;for(let a of n){let n=l(e,t,a);n<=0||(n>i||n===i&&r!==null&&a.key<r.key)&&(i=n,r=a)}return r}function d(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function f(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 p(e){return typeof e!=`object`||!e?!1:`id`in e&&`key`in e&&`type`in e&&`name`in e}function m(e,t){if(Array.isArray(t.fields))for(let n of t.fields)p(n)&&e.registerField(n)}function h(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 g(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)f(e,n)}function _(e,t,n){C(e,t,n.isPreview,n.sessionId),d(e,t),m(e,t),h(e,t),v(e,t),g(e,t)}function v(e,t){if(!Array.isArray(t.actions))return;let r=new Map(t.fields.map(e=>[e.id,e.key])),i=new Set(e.actions.listStore.getState().map(e=>e.key));for(let a of t.actions){if(i.has(a.key)){`${a.key}`;continue}let o=[];for(let e of a.fieldIds??[]){let t=r.get(e);if(t===void 0){`${a.key}${e}`;continue}o.push(t)}e.registerAction(a.key,async r=>{let i={};for(let e of o){let t=r.responses.find(t=>t.fieldKey===e);t?.value!==void 0&&(i[e]=t.value)}let s=y(e);return(await(0,n.runAction)(e.apiUrl,{key:a.key,projectId:e.projectId,session:{id:e.session.store.getState().id},responses:i,versionId:t.versionId},s===void 0?void 0:{previewToken:s})).actionRunId})}}function y(t){let n=t.searchParams[e.n];if(n&&n.length>0)return n[0]}function b(t,n){return t.getProjectConfig(n===void 0?void 0:{previewToken:n}).catch(t=>t instanceof e.t?t:null)}async function x(t){let n=y(t),r=await b(t,n);if(!(r instanceof e.t))return{config:r,previewToken:n};e.i(t.searchParams,e.n),t.previewUnavailable=!0,`${r.message}`;let i=await b(t,void 0);return{config:i instanceof e.t?null:i,previewToken:void 0}}function S(t){let n=new Map,r=t.searchParams.feature;if(!r)return n;for(let t of r){let r=e.c(t);r&&n.set(r.id,r.bucket)}return n}function C(e,t,n,r){let i=S(e);for(let a of t.features){let t=i.get(a.id);if(t!==void 0){w(e,a,t);continue}T(e,a,n,r)}}function w(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 T(e,t,n,r){let i=t.id,s=t.variants;e.registerFeature(i,{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?(`${i}`,!1):u(r,i,s)?.value??!1:o(a(r,i),t.weight)})}function E(e,t){for(let n of[...t.references??[],...t.content])e.registerContent({id:n.id,contentModelKey:n.contentModelKey,data:n.data})}function D(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&&E(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}function O(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 k(){return{name:`dynamic-experiences`,setup:e=>({onStart:(0,t.attach)({source:e.session.store.map(e=>e.id),effect:async t=>{let{config:n,previewToken:r}=await x(e),i=r!==void 0,a=r===void 0?void 0:{previewToken:r};if(e.contentLoader=D(e,O(t=>e.getExperienceContent(t,a),n)),!n)return;let o=e.seededVersionId;if(o!==null&&o!==n.versionId){e.versionSkew={seeded:o,resolved:n.versionId},`${n.versionId}${o}`;return}e.previewEmbedderOrigins=n.previewEmbedderOrigins??null,_(e,n,{isPreview:i,sessionId:t})}})})}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return k}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./logger-CSTvAyyB.cjs"),t=require("./supports-DBzjGaWD.cjs"),n=require("./storage-DUw9UJ2h.cjs");let r=require("effector"),i=require("@withease/factories");var a=(0,r.createDomain)(`feature`);function o(e){return e?.enabled===!1}function s(e){return e===`true`||e!==`false`&&e}function c(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:s(r)}}var l=(0,i.createFactory)(({client:t})=>{let i=a.store({}),c=a.store([]),l=(0,r.createApi)(i,{register(e,t){return{...e,[t.id]:t.feature}}}),u=(0,r.createEvent)();(0,r.sample)({clock:u,source:i,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,r.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,r.createEffect)(async({id:e,key:t,storage:r=`local`,enabled:i})=>{if(i===!1)return null;let a=n.t(`feature:${e}:${t}`,`global`),o=(r===`session`?n.r:n.n).get(a).text();return o?{id:e,key:t,bucket:s(o),storage:r}:null}),f=(0,r.createEffect)(e=>{if(!e)return null;let t=n.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?n.r:n.n).set(t,e.bucket)}),p=new Map,m=(0,r.attach)({source:{allFeaturesStore:i,resolvedFeaturesStore:c},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let a=t.find(e=>e.id===n&&e.key===i);if(a)return a;let s=e[n];if(!s)throw Error(`Feature with id '${n}' not found`);if(o(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,r.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,r.sample)({source:i,clock:m.doneData,filter:(e,t)=>!o(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,r.combine)({allFeaturesStore:i,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,r.sample)({clock:m.doneData,source:{resolvedFeatures:c,allFeatures:i},filter:({resolvedFeatures:e,allFeatures:t},{id:n,key:r})=>!o(t[n]?.feature)&&!e.some(e=>e.id===n&&e.key===r),fn:(e,t)=>t,target:t.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,r.sample)({clock:[d.doneData,m.doneData],source:{resolvedFeatures:c,allFeatures:i},fn:({resolvedFeatures:e,allFeatures:t},n)=>!n||o(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 i.map(t=>t[e],{skipVoid:!1})}function S(e){let t=(0,r.createStore)(async()=>void 0,{skipVoid:!1}),n=b(e),i=(0,r.attach)({source:n,effect:async e=>{if(e)return async()=>(await e.getBucket()).bucket}});return(0,r.sample)({clock:n,target:i}),(0,r.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),n=(0,r.createStore)(void 0,{skipVoid:!1}),i=(0,r.attach)({source:t,mapParams:(e,t)=>t,effect:(0,r.createEffect)(async e=>await e())});return(0,r.sample)({clock:i.doneData,fn:t=>{if(t!==void 0)return{id:e,bucket:t}},target:n}),(0,r.sample)({clock:t,target:i}),i(),n}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 u(e){return(0,i.invoke)(l,e)}var d=(e,t,n)=>{n.register({id:e,feature:t})},f=()=>`0.0.96-next.
|
|
1
|
+
const e=require("./logger-CSTvAyyB.cjs"),t=require("./supports-DBzjGaWD.cjs"),n=require("./storage-DUw9UJ2h.cjs");let r=require("effector"),i=require("@withease/factories");var a=(0,r.createDomain)(`feature`);function o(e){return e?.enabled===!1}function s(e){return e===`true`||e!==`false`&&e}function c(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:s(r)}}var l=(0,i.createFactory)(({client:t})=>{let i=a.store({}),c=a.store([]),l=(0,r.createApi)(i,{register(e,t){return{...e,[t.id]:t.feature}}}),u=(0,r.createEvent)();(0,r.sample)({clock:u,source:i,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,r.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,r.createEffect)(async({id:e,key:t,storage:r=`local`,enabled:i})=>{if(i===!1)return null;let a=n.t(`feature:${e}:${t}`,`global`),o=(r===`session`?n.r:n.n).get(a).text();return o?{id:e,key:t,bucket:s(o),storage:r}:null}),f=(0,r.createEffect)(e=>{if(!e)return null;let t=n.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?n.r:n.n).set(t,e.bucket)}),p=new Map,m=(0,r.attach)({source:{allFeaturesStore:i,resolvedFeaturesStore:c},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let a=t.find(e=>e.id===n&&e.key===i);if(a)return a;let s=e[n];if(!s)throw Error(`Feature with id '${n}' not found`);if(o(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,r.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,r.sample)({source:i,clock:m.doneData,filter:(e,t)=>!o(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,r.combine)({allFeaturesStore:i,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,r.sample)({clock:m.doneData,source:{resolvedFeatures:c,allFeatures:i},filter:({resolvedFeatures:e,allFeatures:t},{id:n,key:r})=>!o(t[n]?.feature)&&!e.some(e=>e.id===n&&e.key===r),fn:(e,t)=>t,target:t.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,r.sample)({clock:[d.doneData,m.doneData],source:{resolvedFeatures:c,allFeatures:i},fn:({resolvedFeatures:e,allFeatures:t},n)=>!n||o(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 i.map(t=>t[e],{skipVoid:!1})}function S(e){let t=(0,r.createStore)(async()=>void 0,{skipVoid:!1}),n=b(e),i=(0,r.attach)({source:n,effect:async e=>{if(e)return async()=>(await e.getBucket()).bucket}});return(0,r.sample)({clock:n,target:i}),(0,r.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),n=(0,r.createStore)(void 0,{skipVoid:!1}),i=(0,r.attach)({source:t,mapParams:(e,t)=>t,effect:(0,r.createEffect)(async e=>await e())});return(0,r.sample)({clock:i.doneData,fn:t=>{if(t!==void 0)return{id:e,bucket:t}},target:n}),(0,r.sample)({clock:t,target:i}),i(),n}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 u(e){return(0,i.invoke)(l,e)}var d=(e,t,n)=>{n.register({id:e,feature:t})},f=()=>`0.0.96-next.2`;function p(){if(!t.f())return{};let e=new URLSearchParams(window.location.search),r={},i=new Set;for(let[t]of e.entries())t.startsWith(`picked-`)&&i.add(t);for(let t of i){let n=t.replace(`picked-`,``);r[n]=e.getAll(t)}let a=n.t(`s`);if(i.size>0)n.r.set(a,r);else{let e=n.r.get(a);if(e)return e.json()||{}}return r}function m(e,r){if(delete e[r],!t.f())return;let i=n.t(`s`),a=n.r.get(i).json();if(!a)return;let o=Object.fromEntries(Object.entries(a).filter(([e])=>e!==r));if(Object.keys(o).length===0){n.r.remove(i);return}n.r.set(i,o)}var h=`preview-token`;function g(){return!t.f()||!t.t()?!1:!!p()[h]?.[0]}var _=class extends Error{constructor(e){super(`The preview workspace for project "${e}" no longer exists; its published configuration is still available.`),this.name=`PreviewUnavailableError`}};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return _}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("./logger-CSTvAyyB.cjs");const e=require("./api-
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./api-MO5qoE5S.cjs"),t=require("./registry-C1t8l3t9.cjs");function n(e,t){try{return e?.onRequest(t)??{}}catch{return{}}}function r(e,t,n){try{e.onSettled?.(t,n)}catch{}}async function i(e,t,i){let a=n(e?.(),t),o;try{let e=await i(a.headers,e=>{o=e});return r(a,e!==null,o),e}catch(e){throw r(a,!1,o),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,previewUnavailable:!1},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,n)=>e.n(r,l,{...u!==void 0&&{previewToken:u},...d!==void 0&&{signal:d},...t!==void 0&&{headers:t},onResponse:e=>{v.previewUnavailable=p&&e===404,n?.(e)}}))}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,i)=>e.t(r,l,t.id,{...u!==void 0&&{previewToken:u},...c!==void 0&&{signal:c},...n!==void 0&&{headers:n},...i!==void 0&&{onResponse:i}}))}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;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@picked/client",
|
|
3
|
-
"version": "0.0.96-next.
|
|
3
|
+
"version": "0.0.96-next.2",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@picked/delivery-api-client": "0.0.96-next.
|
|
5
|
+
"@picked/delivery-api-client": "0.0.96-next.2",
|
|
6
6
|
"@withease/factories": "^1.0.5",
|
|
7
|
-
"@picked/telemetry": "0.0.96-next.
|
|
7
|
+
"@picked/telemetry": "0.0.96-next.2"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
10
10
|
"@repo/eslint-config": "workspace:*",
|