@picked/client 0.0.82 → 0.0.83-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/.tsbuildinfo +1 -1
- package/dist/{api-B_ewYO43.js → api-DqBJhsaz.js} +1 -1
- package/dist/{api-D8G-8HVZ.cjs → api-lXnAqLoj.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/esm/index.js +417 -416
- package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
- package/dist/esm/server/index.js +13 -13
- package/dist/{experience-instance-DGk11d8a.js → experience-instance-BibCf-8y.js} +299 -154
- package/dist/experience-instance-CMfjyLaI.cjs +1 -0
- package/dist/{plugin-DPZ8aMJt.cjs → plugin-K7326WFb.cjs} +1 -1
- package/dist/{plugin-WesBxGtC.js → plugin-WtyPGoxi.js} +2 -2
- package/dist/{provider-BR2HOdya.js → provider-Bv6_St9B.js} +1 -1
- package/dist/{provider-DFoze53Z.cjs → provider-DB9w0dEw.cjs} +1 -1
- package/dist/types/entities/experience/experience.d.ts +8 -0
- package/dist/types/entities/experience/experience.d.ts.map +1 -1
- package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
- package/dist/types/utils/node-tree/min-max-steps-to-leaf.d.ts +16 -6
- package/dist/types/utils/node-tree/min-max-steps-to-leaf.d.ts.map +1 -1
- package/dist/types/utils/node-tree/min-max-steps-to-origin.d.ts +18 -7
- package/dist/types/utils/node-tree/min-max-steps-to-origin.d.ts.map +1 -1
- package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts +30 -6
- package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts.map +1 -1
- package/dist/types/utils/node-tree/node-adjacency.d.ts +50 -0
- package/dist/types/utils/node-tree/node-adjacency.d.ts.map +1 -0
- package/dist/types/utils/node-tree/node-tree-index.d.ts +57 -0
- package/dist/types/utils/node-tree/node-tree-index.d.ts.map +1 -0
- package/dist/{version-BZ7EkVfb.js → version-DSu8zrH_.js} +1 -1
- package/dist/{version-F-XKx24-.cjs → version-SYU8CWbk.cjs} +1 -1
- package/package.json +3 -3
- package/dist/experience-instance-Dej3P1sE.cjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rules-logic-CGZIYgAI.cjs");require("./logger-CSTvAyyB.cjs");const t=require("./dom-DlLH3FxV.cjs");let n=require("effector"),r=require("@withease/factories");function i(e){return e.type===`condition`}function a(e){return e.type===`step`}function o(e){return e.type===`experience`}function s(e){return e.type===`origin`}function c(e){return e.type===`action`}var l=[],u=(e,t)=>{let n=new Map;for(let t of e)n.set(t.id,t);let r=new Map,i=new Map;for(let e of t){let t=r.get(e.sourceNodeId);t?t.push(e):r.set(e.sourceNodeId,[e]);let n=i.get(e.destinationNodeId);n?n.push(e):i.set(e.destinationNodeId,[e])}return{nodeById:n,outgoingEdges:r,incomingEdges:i}},d=(e,t)=>e.outgoingEdges.get(t)??l,f=(e,t)=>e.incomingEdges.get(t)??l,p=-1,m=-1/0,h=(e,t)=>Array.from({length:e},()=>t),g=e=>Array.from({length:e},()=>!1),_=(e,t,n)=>{let r=[];for(let i of e){let e=n.get(i[t]);e!==void 0&&r.push(e)}return r},v=(e,t)=>{let n=new Map;t.forEach((e,t)=>{n.set(e,t)});let r={successors:[],predecessors:[],isLeaf:[],isOrigin:[],leaves:[],origins:[]};return t.forEach((t,i)=>{let a=d(e,t);r.successors.push(_(a,`destinationNodeId`,n)),r.predecessors.push(_(f(e,t),`sourceNodeId`,n));let o=a.length===0;r.isLeaf.push(o),o&&r.leaves.push(i);let s=e.nodeById.get(t)?.type===`origin`;r.isOrigin.push(s),s&&r.origins.push(i)}),r},y=(e,t,n)=>{let r=h(n,p),i=[...e];for(let t of e)r[t]=0;let a=0,o=0;for(;o<i.length;){let e=i[o];if(o+=1,e===void 0)continue;a+=1;let n=(r[e]??0)+1;for(let a of t[e]??[])r[a]===p&&(r[a]=n,i.push(a))}return{values:r,visits:a}},b=(e,t)=>{e.discoveryOf[t]=e.counter,e.lowLinkOf[t]=e.counter,e.counter+=1,e.stack.push(t),e.onStack[t]=!0,e.frames.push({node:t,edge:0}),e.visits+=1},x=(e,t)=>{let n=(e.successors[t.node]??[])[t.edge];if(t.edge+=1,n!==void 0){if(e.discoveryOf[n]===p){b(e,n);return}e.onStack[n]&&(e.lowLinkOf[t.node]=Math.min(e.lowLinkOf[t.node]??0,e.discoveryOf[n]??0))}},S=(e,t)=>{e.frames.pop(),e.visits+=1;let n=e.frames.at(-1);if(n&&(e.lowLinkOf[n.node]=Math.min(e.lowLinkOf[n.node]??0,e.lowLinkOf[t.node]??0)),e.lowLinkOf[t.node]!==e.discoveryOf[t.node])return;let r=[],i=e.stack.pop();for(;i!==void 0&&(e.onStack[i]=!1,e.componentOf[i]=e.members.length,r.push(i),i!==t.node);)i=e.stack.pop();e.members.push(r)},C=(e,t)=>{let n={successors:e,discoveryOf:h(t,p),lowLinkOf:h(t,p),onStack:g(t),componentOf:h(t,p),stack:[],frames:[],members:[],counter:0,visits:0};for(let r=0;r<t;r+=1)if(n.discoveryOf[r]===p)for(b(n,r);n.frames.length>0;){let t=n.frames.at(-1);if(!t)break;t.edge<(e[t.node]??[]).length?x(n,t):S(n,t)}return{componentOf:n.componentOf,members:n.members,visits:n.visits}},w=(e,t,n)=>{let r=m;for(let i of e.adjacency[t]??[]){let t=e.components.componentOf[i]??p;if(t===n)continue;let a=e.perComponent[t]??m;a!==m&&(r=Math.max(r,a+1))}return r},T=(e,t)=>{let n=m;for(let r of e.components.members[t]??[]){if(e.isTerminus[r]){n=Math.max(n,0);continue}n=Math.max(n,w(e,r,t))}return n},E=(e,t,n,r)=>{let i=n.members.length,a={adjacency:e,isTerminus:t,components:n,perComponent:h(i,m)},o=0;for(let e=0;e<i;e+=1){let t=r?i-1-e:e,s=(n.members[t]??[]).length;o+=s;let c=T(a,t);a.perComponent[t]=c===m?m:c+s-1}return{values:n.componentOf.map((e,n)=>{if(t[n])return 0;let r=a.perComponent[e]??m;return r===m?p:r}),visits:o}},D=(e,t,n)=>{let r=new Map;return e.forEach((e,i)=>{let a=t.values[i]??p,o=n.values[i]??p;r.set(e,a===p?[p,p]:[a,o])}),r},O=(e,t)=>{let n=u(e,t),r=[...n.nodeById.keys()],i=r.length,a=v(n,r),o=C(a.successors,i),s=y(a.leaves,a.predecessors,i),c=E(a.successors,a.isLeaf,o,!1),l=y(a.origins,a.successors,i),d=E(a.predecessors,a.isOrigin,o,!0);return{...n,stepsToLeaf:D(r,s,c),stepsToOrigin:D(r,l,d),nodeVisits:o.visits+s.visits+c.visits+l.visits+d.visits}},k=(e,t,n)=>{let r=1/0,i=m;for(let a of t){let t=e.get(a[n]);!t||t[0]===p||(r=Math.min(r,t[0]+1),i=Math.max(i,t[1]+1))}return r===1/0?[p,p]:[r,i]},A=(e,t)=>{let n=e.stepsToLeaf.get(t.id);if(n)return[n[0],n[1]];let r=d(e,t.id);return r.length===0?[0,0]:k(e.stepsToLeaf,r,`destinationNodeId`)},ee=(e,t)=>{let n=e.stepsToOrigin.get(t.id);return n?[n[0],n[1]]:t.type===`origin`?[0,0]:k(e.stepsToOrigin,f(e,t.id),`sourceNodeId`)},j=`conditions.`,M=(0,n.createDomain)(`condition-results`);function N(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function P(e){if(e===void 0)return null;if(Array.isArray(e))return e.map(e=>P(e));if(N(e)){let t=Object.keys(e).sort((e,t)=>e.localeCompare(t)),n={};for(let r of t)n[r]=P(e[r]);return n}return e}function F(e){return JSON.stringify(P(e))}var I=(0,r.createFactory)(()=>{let e=M.store({}),t=(0,n.createApi)(e,{set(e,t){return e[t.hash]===t.result?e:{...e,[t.hash]:t.result}},seed(e,t){return Object.keys(t).every(n=>e[n]===t[n])?e:{...e,...t}},clear(){return{}}});function r(e){t.set(e)}function i(e){t.seed(e)}function a(){t.clear()}function o(t){return e.getState()[t]}return{store:e,set:r,seed:i,peek:o,reset:a}});function L(){return(0,r.invoke)(I)}async function R(t,n,r){return n==null?!0:typeof n==`boolean`?n:!e.n(n)||await e.t(t,n,r)===!0}function z(e){if(typeof e==`string`)return e;if(Array.isArray(e)&&typeof e[0]==`string`)return e[0]}function B(e){if(Array.isArray(e))return e.some(B);if(N(e)){let t=z(e.var);return t!==void 0&&(t===`actions`||t.startsWith(`actions.`))?!0:Object.values(e).some(B)}return!1}function V(e){if(Array.isArray(e))return e.flatMap(V);if(N(e)){let t=z(e.var);return[...t!==void 0&&t.startsWith(j)?[t.slice(11)]:[],...Object.values(e).flatMap(V)]}return[]}function H(e,t,n=new Set){if(B(e))return!0;for(let r of V(e)){if(n.has(r))continue;n.add(r);let e=t[r];if(e!==void 0&&H(e.logic,t,n))return!0}return!1}async function U(e,t,n){let r={};for(let t of e.conditions.listStore.getState())r[t.key]=t;let i=H(t,r),a=F(t);if(!i){let t=e.conditionResults.peek(a);if(t!==void 0)return t}let o=await R(e,t,n?.context);return i||e.conditionResults.set({hash:a,result:o}),o}async function W(e,t,n){let r=n?.context,i=[n?.precondition,n?.condition,t.condition];for(let t of i)if(!await U(e,t,{context:r}))return!1;return!0}var G=(e,t,n,r)=>r.has(t.id)?[]:(r.add(t.id),a(t)&&!n?[t]:d(e,t.id).flatMap(t=>{let n=e.nodeById.get(t.destinationNodeId);return n?G(e,n,!1,r):[]})),te=(e,t)=>G(e,t,!0,new Set),K=e=>e.find(e=>e.type===`origin`)||null,q=(e,t,n)=>{if(!e)return K(t);let r=n.find(t=>t.sourceNodeId===e.id);return r&&t.find(e=>e.id===r.destinationNodeId)||null};async function ne(e,t,n,r){let i=e?`true`:`false`,a=r.find(e=>e.sourceHandle===i&&e.sourceNodeId===t);return n.find(e=>e.id===a?.destinationNodeId)}function J(e,t,n,r){let i=r.filter(e=>e.sourceNodeId===t),a=e?`true`:`false`,o=i.find(e=>e.sourceHandle===a)??i.find(e=>e.sourceHandle==null);return n.find(e=>e.id===o?.destinationNodeId)}var Y=(0,n.createDomain)(`experience-instance`),X=(0,r.createFactory)(({client:r,experience:l,target:u,options:d})=>{let f=(0,n.createEvent)(),p=(0,n.createEvent)(),m=(0,n.createEvent)(),h=(0,n.createEvent)(),g=(0,n.createEvent)(),_=(0,n.createEvent)(),v=(0,n.createEvent)(),y=l.componentStore,b=Y.store(`transitioning`),x=r.history.entriesStore.map(e=>e.filter(e=>e.experienceId===l.id)),S=x.map(e=>e.filter(e=>a(e.node))),C=x.map(e=>e.at(-1)?.node||null),w=Y.store(null);(0,n.sample)({clock:[C,r.steps.listStore,_],source:{steps:r.steps.listStore,node:C},filter:({node:e})=>e!==null&&a(e),fn:({steps:e,node:t})=>t&&a(t)?e.find(e=>e.id===t.stepId)??null:null,target:w});let T=(0,n.combine)(r.steps.listStore,S,(e,t)=>{let n=t.at(-2);if(!n||!a(n.node))return null;let r=n.node;return e.find(e=>e.id===r.stepId)||null}),E=(0,n.combine)(l.nodeTreeStore,C,(e,t)=>t?te(e,t):[]),D=(0,n.combine)(l.nodeTreeStore,C,(e,t)=>t?ee(e,t):[-1,-1]),O=(0,n.combine)(l.nodeTreeStore,C,(e,t)=>t?A(e,t):[-1,-1]),k=Y.store(!1),j=(0,n.createApi)(k,{open:()=>!0,close:()=>!1,toggle:e=>!e,set:(e,t)=>t}),M=(0,n.createEffect)(async()=>{r.history.back({experienceId:l.id})}),N=(0,n.attach)({source:l.treeStore,effect:async(e,t)=>{let n=e.nodes.find(e=>a(e)&&e.stepId===t);n&&r.history.push({experienceId:l.id,node:n})}}),P=(0,n.attach)({source:l.treeStore,effect:async(e,t)=>{let n=e.steps.find(e=>e.key===t);if(!n)return;let i=e.nodes.find(e=>a(e)&&e.stepId===n.id);i&&r.history.push({experienceId:l.id,node:i})}}),F=(0,n.attach)({source:C,effect:e=>{}}),I=(0,n.attach)({source:l.treeStore,effect:async({nodes:e})=>K(e)}),L=(0,n.attach)({source:l.treeStore,effect:async({nodes:e,edges:t},n)=>{if(s(n))return q(n,e,t)}}),R=(0,n.attach)({source:l.treeStore,effect:async({nodes:t,edges:n,conditions:a},o)=>{if(!i(o))return;let s=a.find(e=>e.id===o.conditionId)?.logic;return s?ne(!!await e.t(r,s),o.id,t,n):void 0}}),z=(0,n.attach)({source:{tree:l.treeStore,actions:r.actions.listStore,snapshot:r.stateSnapshotStore},effect:async({tree:e,actions:t,snapshot:n},r)=>{let{nodes:i,edges:a}=e;if(!c(r))return;let o=r.actionKey;if(!o){`${r.id}`;return}let s=t.find(e=>e.key===o)?.action;if(typeof s!=`function`)return`${o}`,J(!1,r.id,i,a)??null;let l=!0;try{`${o}`,await s({...n,args:[]},{experience:X})}catch{`${o}`,l=!1}let u=J(l,r.id,i,a);if(!u){let e=a.some(e=>e.sourceNodeId===r.id)?`no edge for its outcome`:`no outgoing edge`;return`${r.id}${e}`,null}return`${o}${u.id}`,u}}),B=(0,n.createEffect)(e=>{o(e)&&r.experiences.launch({key:e.experienceKey})}),V=(0,n.attach)({source:[C,l.treeStore],effect:async([e,{nodes:t,edges:n}])=>q(e,t,n)}),H=(0,n.attach)({source:[C,l.treeStore],effect:async([e,{nodes:t,edges:n}])=>q(e,t,n)}),U=(0,n.createEffect)(e=>{r.history.push({experienceId:l.id,node:e})}),W=(0,n.attach)({source:l.configStore,effect:async({initializeOpenLogic:t})=>d?.initialiseOpen===void 0?e.n(t)?!!await e.t(r,t):t??!1:d.initialiseOpen}),G=(0,n.combine)(y,r.frameworks.listStore,(e,t)=>{if(!e)return null;let n=t.find(t=>t.name===e.component.frameworkName);return n?{component:e,framework:n}:null},{skipVoid:!1}),X,Z=(0,n.attach)({source:G,effect:e=>{if(!e)return;if(!u){`${l.id}`;return}let n=t.n(u);try{e.framework.render(n,e.component.component,r,X)}catch{}}});X=Object.freeze({id:Math.random().toString(36).substring(7),experienceKey:l.key,experienceId:l.id,experienceName:l.name,configStore:l.configStore,target:u,componentStore:y,componentAndFrameworkStore:G,stateStore:b,isOpenStore:k,open:j.open,close:j.close,toggleOpen:j.toggle,setOpen:j.set,treeStore:l.treeStore,currentNodeStore:C,currentStepStore:w,previousStepStore:T,nextReachableStepNodesStore:E,stepsToOriginStore:D,stepsToLeafStore:O,goToNextStep:p,goToPreviousStep:m,goToStepById:h,goToStepByKey:g,stepsHistoryStore:S,mountFx:Z});let Q=(0,n.createEvent)(),$=(0,n.createEvent)();return(0,n.sample)({clock:C,target:Q}),(0,n.sample)({clock:Q,filter:e=>e===null,target:I}),(0,n.sample)({clock:Q,filter:e=>e!==null,target:$}),(0,n.split)({source:$,match:e=>i(e)?`condition`:a(e)?`step`:o(e)?`launchExperience`:s(e)?`origin`:c(e)?`action`:`other`,cases:{origin:L,condition:R,step:F,launchExperience:B,action:z,__:(0,n.createEvent)()}}),(0,n.sample)({clock:[R.doneData,L.doneData,I.doneData,H.doneData,V.doneData,z.doneData],filter:Boolean,target:U}),(0,n.sample)({clock:p,target:H}),(0,n.sample)({clock:p,source:w,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_submit`,step:e,experience:X}))}),(0,n.sample)({clock:H.done,source:w,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_submit_success`,step:e,experience:X}))}),(0,n.sample)({clock:H.fail,source:w,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_submit_error`,step:e,experience:X}))}),(0,n.sample)({clock:m,target:M}),(0,n.sample)({clock:h,target:N}),(0,n.sample)({clock:g,target:P}),(0,n.sample)({source:(0,n.combine)([R.pending,L.pending,I.pending,H.pending,V.pending,z.pending]),fn:e=>e.some(Boolean)?`transitioning`:`ready`,target:b}),(0,n.sample)({clock:F.doneData,source:w,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_enter`,step:e,experience:X}))}),(0,n.sample)({clock:v,target:W}),(0,n.sample)({source:W.doneData,fn:Boolean,target:k}),(0,n.sample)({source:C,clock:f,filter:e=>!e||s(e),target:V}),(0,n.sample)({source:k,filter:Boolean,target:f}),(0,n.sample)({source:k,filter:Boolean,target:r.eventBus.prepend(()=>({type:`experience_open`,experience:X}))}),(0,n.sample)({source:k,filter:e=>!e,target:r.eventBus.prepend(()=>({type:`experience_close`,experience:X}))}),(0,n.sample)({clock:_,target:[v]}),_(),X});function Z(e){return(0,r.invoke)(X,e)}var Q=(0,r.createFactory)(({client:e})=>{let r=Y.store({}),i=(0,n.createEvent)(),a=(0,n.createEvent)(),o=(0,n.createEvent)(),s=(0,n.createApi)(r,{register(e,t){let n=[...e[t.experienceId]??[]];return n.push(t),{...e,[t.experienceId]:n}},unregister(e,t){let n=t.experienceId,r=e[n]?.filter(e=>e!==t);return{...e,[n]:r??[]}}}),c=(0,n.createEffect)(({experience:t,target:n,options:r})=>Z({client:e,experience:t,target:n,options:r})),l=(0,n.createEffect)(e=>{s.register(e)}),u=(0,n.createEffect)(e=>{e.target&&t.o(e.target,()=>{o(e)})}),d=(0,n.createEffect)(e=>{s.unregister(e)}),f=(0,n.createEffect)(async e=>{await e.mountFx()});(0,n.sample)({clock:i,target:c}),(0,n.sample)({clock:o,target:d}),(0,n.sample)({clock:c.doneData,target:[l,u,a]}),(0,n.sample)({clock:c.doneData,target:e.eventBus.prepend(e=>({type:`experience_initialize`,experience:e}))}),(0,n.sample)({clock:a,target:f});function p(e,t,n){i({experience:e,target:t,options:n})}let m=r.map(e=>Object.values(e).flat());function h(e){return m.map(t=>t.filter(t=>t.experienceKey===e),{skipVoid:!1})}function g(e){return r.map(t=>t[e]||[],{skipVoid:!1})}return{spawn:p,getByExperienceKey:h,getByExperienceId:g,listStore:m}});function $(e){return(0,r.invoke)(Q,e)}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return i}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("./logger-CSTvAyyB.cjs");const e=require("./version-
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./version-SYU8CWbk.cjs");require("./api-lXnAqLoj.cjs");let t=require("effector");function n(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return t>>>0}function r(e){let t=e;return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}function i(e,t){return r(n(`${e}:${t}`))%100}function a(e,t){return t<=0?!1:t>=100||e<t}var o=4294967296;function s(e,t,i){return(r(n(`${e}:${t}:${i}`))+.5)/o}function c(e,t,n){return n.weight<=0?0:n.weight/-Math.log(s(e,t,n.key))}function l(e,t,n){let r=null,i=0;for(let a of n){let n=c(e,t,a);n<=0||(n>i||n===i&&r!==null&&a.key<r.key)&&(i=n,r=a)}return r}function u(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function d(e,t){e.registerExperience({id:t.id,key:t.key,name:t.name,targets:t.targets,nodes:t.nodes,edges:t.edges,condition:t.condition,initializeOpen:t.initializeOpen,componentName:t.componentName})}function f(e){return typeof e!=`object`||!e?!1:`id`in e&&`key`in e&&`type`in e&&`name`in e}function p(e,t){if(Array.isArray(t.fields))for(let n of t.fields)f(n)&&e.registerField(n)}function m(e,t){if(!Array.isArray(t.steps))return;let n=new Map(t.fields.map(e=>[e.id,e.key]));for(let r of t.steps){let t=[];for(let e of r.fieldIds??[]){let i=n.get(e);if(i===void 0){`${r.key}${e}`;continue}t.push(i)}let i=r.layoutContentId?e.contents.getById(r.layoutContentId):null;e.registerStep({id:r.id,key:r.key,name:r.name,fieldKeys:t,layoutName:r.layoutName,...r.layoutContentId!==void 0&&{layoutContentId:r.layoutContentId,layoutContentStore:i}})}}function h(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)d(e,n)}function g(e,t,n){y(e,t,n.isPreview,n.sessionId),u(e,t),p(e,t),m(e,t),h(e,t)}function _(e){let t=e.searchParams[`preview-token`];if(t&&t.length>0)return t[0]}function v(t){let n=new Map,r=t.searchParams.feature;if(!r)return n;for(let t of r){let r=e.r(t);r&&n.set(r.id,r.bucket)}return n}function y(e,t,n,r){let i=v(e);for(let a of t.features){let t=i.get(a.id);if(t!==void 0){b(e,a,t);continue}x(e,a,n,r)}}function b(e,t,n){e.registerFeature(t.id,{key:`${n}`,name:t.name,enabled:!0,weight:t.weight,...t.valueType!==void 0&&{valueType:t.valueType},...t.variants!==void 0&&{variants:t.variants},storage:`session`,decide:()=>n})}function x(e,t,n,r){let o=t.id,s=t.variants;e.registerFeature(o,{key:`v${t.version}`,name:t.name,enabled:t.enabled,weight:t.weight,storage:n?`session`:`local`,valueType:t.valueType,variants:s,decide:()=>t.valueType===`text`?!s||s.length===0?(`${o}`,!1):l(r,o,s)?.value??!1:a(i(r,o),t.weight)})}function S(e,t){for(let n of[...t.references??[],...t.content])e.registerContent({id:n.id,contentModelKey:n.contentModelKey,data:n.data})}function C(e,t){let n=new Map;return(r,i)=>{let a=n.get(r.id);if(a)return a;let o=(async()=>{try{let n=await t(r,i);return n&&S(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}function w(e,t){let n=new Set(t&&Array.isArray(t.experiences)?t.experiences.map(e=>e.id):[]);return(t,r)=>n.has(t.id)?e(t,r):Promise.resolve(null)}function T(){return{name:`dynamic-experiences`,setup:e=>({onStart:(0,t.attach)({source:e.session.store.map(e=>e.id),effect:async t=>{let n=_(e),r=n!==void 0,i=n===void 0?void 0:{previewToken:n},a=await e.getProjectConfig(n===void 0?void 0:{previewToken:n}).catch(e=>null);if(e.contentLoader=C(e,w(t=>e.getExperienceContent(t,i),a)),!a)return;let o=e.seededVersionId;if(o!==null&&o!==a.versionId){e.versionSkew={seeded:o,resolved:a.versionId},`${a.versionId}${o}`;return}e.previewEmbedderOrigins=a.previewEmbedderOrigins??null,g(e,a,{isPreview:r,sessionId:t})}})})}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return T}});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./logger-DMN6TxJJ.js";
|
|
2
|
-
import { r as e } from "./version-
|
|
3
|
-
import "./api-
|
|
2
|
+
import { r as e } from "./version-DSu8zrH_.js";
|
|
3
|
+
import "./api-DqBJhsaz.js";
|
|
4
4
|
import { attach as t } from "effector";
|
|
5
5
|
//#region src/plugins/dynamic-experiences/hash.ts
|
|
6
6
|
function n(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("./logger-CSTvAyyB.cjs");const e=require("./api-
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./api-lXnAqLoj.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},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},...n!==void 0&&{onResponse:n}}))}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;
|
|
@@ -6,6 +6,7 @@ import type { ExperienceStep } from '../step/step';
|
|
|
6
6
|
import type { Framework } from '../framework/framework';
|
|
7
7
|
import type { Picked } from '../../picked';
|
|
8
8
|
import type { LogicRule, LogicValue } from '../../logic-engine';
|
|
9
|
+
import type { NodeTreeIndex } from '../../utils/node-tree/node-tree-index';
|
|
9
10
|
export type ExperiencesListStore = ReturnType<typeof createExperienceIndex>;
|
|
10
11
|
/** Per-experience reactive entity returned by `createExperience`. */
|
|
11
12
|
export interface ExperienceStore {
|
|
@@ -24,6 +25,13 @@ export interface ExperienceStore {
|
|
|
24
25
|
edges: ExperienceEdge[];
|
|
25
26
|
conditions: Condition[];
|
|
26
27
|
}>;
|
|
28
|
+
/**
|
|
29
|
+
* The experience's flow graph, indexed for constant-time reads: node and edge
|
|
30
|
+
* lookups, plus a table of the min/max steps from every node to a leaf and back
|
|
31
|
+
* to an origin. Derived from the experience record, so it rebuilds when that
|
|
32
|
+
* record updates and a table read costs a map lookup.
|
|
33
|
+
*/
|
|
34
|
+
nodeTreeStore: Store<NodeTreeIndex>;
|
|
27
35
|
componentStore: Store<{
|
|
28
36
|
name: string;
|
|
29
37
|
component: AdaptedComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experience.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience/experience.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,EAOL,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"experience.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience/experience.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experience-instance.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience-instance/experience-instance.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAOL,KAAK,MAAM,EACX,KAAK,aAAa,EAGlB,KAAK,KAAK,EACX,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"experience-instance.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience-instance/experience-instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
+
/** @file Min/max steps from one node to a leaf of its experience flow graph. */
|
|
1
2
|
import type { ExperienceEdge, ExperienceNode } from '../../entities/experience/experience';
|
|
3
|
+
import type { MinMaxSteps } from './node-tree-index';
|
|
2
4
|
/**
|
|
3
|
-
* Calculates the minimum and maximum number of steps from
|
|
5
|
+
* Calculates the minimum and maximum number of steps from a node to any leaf node.
|
|
4
6
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* @
|
|
8
|
-
*
|
|
7
|
+
* This tables the whole tree for a single read. A caller reading more than one node of
|
|
8
|
+
* the same tree holds a {@link createNodeTreeIndex} result and calls
|
|
9
|
+
* {@link readStepsToLeaf} instead.
|
|
10
|
+
*
|
|
11
|
+
* @param {ExperienceNode[]} nodes - Array of all nodes in the tree.
|
|
12
|
+
* @param {ExperienceEdge[]} edges - Array of all edges connecting the nodes.
|
|
13
|
+
* @param {ExperienceNode} currentNode - The starting node for traversal.
|
|
14
|
+
* @returns {MinMaxSteps} Tuple of [minSteps, maxSteps]. Returns [-1, -1] if no paths exist.
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const [min, max] = findMinMaxStepsToLeaf(nodes, edges, currentNode)
|
|
18
|
+
* ```
|
|
9
19
|
*/
|
|
10
|
-
export declare const findMinMaxStepsToLeaf: (nodes: ExperienceNode[], edges: ExperienceEdge[], currentNode: ExperienceNode) =>
|
|
20
|
+
export declare const findMinMaxStepsToLeaf: (nodes: ExperienceNode[], edges: ExperienceEdge[], currentNode: ExperienceNode) => MinMaxSteps;
|
|
11
21
|
//# sourceMappingURL=min-max-steps-to-leaf.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min-max-steps-to-leaf.d.ts","sourceRoot":"","sources":["../../../../src/utils/node-tree/min-max-steps-to-leaf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"min-max-steps-to-leaf.d.ts","sourceRoot":"","sources":["../../../../src/utils/node-tree/min-max-steps-to-leaf.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,UACzB,cAAc,EAAE,SAChB,cAAc,EAAE,eACV,cAAc,KAC1B,WAA8E,CAAA"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
+
/** @file Min/max steps from one node back to an origin of its experience flow graph. */
|
|
1
2
|
import type { ExperienceEdge, ExperienceNode } from '../../entities/experience/experience';
|
|
3
|
+
import type { MinMaxSteps } from './node-tree-index';
|
|
2
4
|
/**
|
|
3
|
-
* Calculates the minimum and maximum number of steps from
|
|
4
|
-
* An origin node is a node with type === 'origin'
|
|
5
|
+
* Calculates the minimum and maximum number of steps from a node back to an origin node.
|
|
6
|
+
* An origin node is a node with type === 'origin', and the first one the walk reaches
|
|
7
|
+
* ends it.
|
|
5
8
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* @
|
|
9
|
-
*
|
|
9
|
+
* This tables the whole tree for a single read. A caller reading more than one node of
|
|
10
|
+
* the same tree holds a {@link createNodeTreeIndex} result and calls
|
|
11
|
+
* {@link readStepsToOrigin} instead.
|
|
12
|
+
*
|
|
13
|
+
* @param {ExperienceNode[]} nodes - Array of all nodes in the tree.
|
|
14
|
+
* @param {ExperienceEdge[]} edges - Array of all edges connecting the nodes.
|
|
15
|
+
* @param {ExperienceNode} currentNode - The starting node for traversal.
|
|
16
|
+
* @returns {MinMaxSteps} Tuple of [minSteps, maxSteps]. Returns [-1, -1] if no paths exist.
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const [min, max] = findMinMaxStepsToOrigin(nodes, edges, currentNode)
|
|
20
|
+
* ```
|
|
10
21
|
*/
|
|
11
|
-
export declare const findMinMaxStepsToOrigin: (nodes: ExperienceNode[], edges: ExperienceEdge[], currentNode: ExperienceNode) =>
|
|
22
|
+
export declare const findMinMaxStepsToOrigin: (nodes: ExperienceNode[], edges: ExperienceEdge[], currentNode: ExperienceNode) => MinMaxSteps;
|
|
12
23
|
//# sourceMappingURL=min-max-steps-to-origin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min-max-steps-to-origin.d.ts","sourceRoot":"","sources":["../../../../src/utils/node-tree/min-max-steps-to-origin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"min-max-steps-to-origin.d.ts","sourceRoot":"","sources":["../../../../src/utils/node-tree/min-max-steps-to-origin.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,UAC3B,cAAc,EAAE,SAChB,cAAc,EAAE,eACV,cAAc,KAC1B,WAAgF,CAAA"}
|
|
@@ -1,13 +1,37 @@
|
|
|
1
|
+
/** @file The step nodes reachable from one node without passing through another step. */
|
|
1
2
|
import type { ExperienceEdge, ExperienceNode } from '../../entities/experience/experience';
|
|
3
|
+
import type { NodeAdjacency } from './node-adjacency';
|
|
2
4
|
/**
|
|
3
|
-
* Given the current
|
|
4
|
-
*
|
|
5
|
+
* Given the current node as the starting point, traverses every branch of an indexed
|
|
6
|
+
* tree until encountering nodes with stepId properties.
|
|
5
7
|
* Does not progress past a node with a stepId.
|
|
6
8
|
*
|
|
7
|
-
* @param
|
|
8
|
-
* @param
|
|
9
|
-
* @
|
|
10
|
-
* @
|
|
9
|
+
* @param {NodeAdjacency} adjacency - The indexed tree.
|
|
10
|
+
* @param {ExperienceNode} currentNode - The starting node for traversal.
|
|
11
|
+
* @returns {ExperienceNode[]} Array of step nodes that are descendants of the current node.
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const steps = nextReachableStepNodesFrom(adjacency, currentNode)
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const nextReachableStepNodesFrom: (adjacency: NodeAdjacency, currentNode: ExperienceNode) => ExperienceNode[];
|
|
18
|
+
/**
|
|
19
|
+
* Given the current node as the starting point, traverses every branch of the tree
|
|
20
|
+
* until encountering nodes with stepId properties.
|
|
21
|
+
* Does not progress past a node with a stepId.
|
|
22
|
+
*
|
|
23
|
+
* This indexes the whole tree for a single walk. A caller walking the same tree more
|
|
24
|
+
* than once holds a {@link createNodeAdjacency} result and calls
|
|
25
|
+
* {@link nextReachableStepNodesFrom} instead.
|
|
26
|
+
*
|
|
27
|
+
* @param {ExperienceNode[]} nodes - Array of all nodes in the tree.
|
|
28
|
+
* @param {ExperienceEdge[]} edges - Array of all edges connecting the nodes.
|
|
29
|
+
* @param {ExperienceNode} currentNode - The starting node for traversal.
|
|
30
|
+
* @returns {ExperienceNode[]} Array of nodes with stepId properties that are descendants of the current node.
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const steps = nextReachableStepNodes(nodes, edges, currentNode)
|
|
34
|
+
* ```
|
|
11
35
|
*/
|
|
12
36
|
export declare const nextReachableStepNodes: (nodes: ExperienceNode[], edges: ExperienceEdge[], currentNode: ExperienceNode) => ExperienceNode[];
|
|
13
37
|
//# sourceMappingURL=next-reachable-step-nodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-reachable-step-nodes.d.ts","sourceRoot":"","sources":["../../../../src/utils/node-tree/next-reachable-step-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"next-reachable-step-nodes.d.ts","sourceRoot":"","sources":["../../../../src/utils/node-tree/next-reachable-step-nodes.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAE1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAuCrD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,cAC1B,aAAa,eACX,cAAc,KAC1B,cAAc,EAAwE,CAAA;AAEzF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,sBAAsB,UAC1B,cAAc,EAAE,SAChB,cAAc,EAAE,eACV,cAAc,KAC1B,cAAc,EAAgF,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/** @file Node and edge lookups for one experience flow graph, built once per tree. */
|
|
2
|
+
import type { ExperienceEdge, ExperienceNode } from '../../entities/experience/experience';
|
|
3
|
+
/** Lookups over one flow graph: its nodes by id, and its edges by each endpoint. */
|
|
4
|
+
export interface NodeAdjacency {
|
|
5
|
+
nodeById: ReadonlyMap<string, ExperienceNode>;
|
|
6
|
+
outgoingEdges: ReadonlyMap<string, ExperienceEdge[]>;
|
|
7
|
+
incomingEdges: ReadonlyMap<string, ExperienceEdge[]>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Indexes a flow graph so a walk can reach a node or its edges in constant time.
|
|
11
|
+
*
|
|
12
|
+
* Every edge is indexed under both endpoints, including edges naming an id the
|
|
13
|
+
* graph has no node for — a walk decides what those mean by looking the endpoint
|
|
14
|
+
* up in `nodeById`.
|
|
15
|
+
*
|
|
16
|
+
* @param {ExperienceNode[]} nodes - Every node in the tree.
|
|
17
|
+
* @param {ExperienceEdge[]} edges - Every edge in the tree.
|
|
18
|
+
* @returns {NodeAdjacency} The lookups over that tree.
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const adjacency = createNodeAdjacency(nodes, edges)
|
|
22
|
+
* const node = adjacency.nodeById.get('node-1')
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare const createNodeAdjacency: (nodes: ExperienceNode[], edges: ExperienceEdge[]) => NodeAdjacency;
|
|
26
|
+
/**
|
|
27
|
+
* Reads the edges leaving a node id.
|
|
28
|
+
*
|
|
29
|
+
* @param {NodeAdjacency} adjacency - The indexed tree.
|
|
30
|
+
* @param {string} nodeId - The id to read.
|
|
31
|
+
* @returns {readonly ExperienceEdge[]} The edges whose source is that id.
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const edges = outgoingEdgesOf(adjacency, 'node-1')
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare const outgoingEdgesOf: (adjacency: NodeAdjacency, nodeId: string) => readonly ExperienceEdge[];
|
|
38
|
+
/**
|
|
39
|
+
* Reads the edges arriving at a node id.
|
|
40
|
+
*
|
|
41
|
+
* @param {NodeAdjacency} adjacency - The indexed tree.
|
|
42
|
+
* @param {string} nodeId - The id to read.
|
|
43
|
+
* @returns {readonly ExperienceEdge[]} The edges whose destination is that id.
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const edges = incomingEdgesOf(adjacency, 'node-1')
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare const incomingEdgesOf: (adjacency: NodeAdjacency, nodeId: string) => readonly ExperienceEdge[];
|
|
50
|
+
//# sourceMappingURL=node-adjacency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-adjacency.d.ts","sourceRoot":"","sources":["../../../../src/utils/node-tree/node-adjacency.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAI1F,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC7C,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;IACpD,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;CACrD;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB,UACvB,cAAc,EAAE,SAChB,cAAc,EAAE,KACtB,aAyBF,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,cACf,aAAa,UAChB,MAAM,KACb,SAAS,cAAc,EAAqD,CAAA;AAE/E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,cACf,aAAa,UAChB,MAAM,KACb,SAAS,cAAc,EAAqD,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** @file Per-tree tables of the min and max steps from every node to a leaf and back to an origin. */
|
|
2
|
+
import type { ExperienceEdge, ExperienceNode } from '../../entities/experience/experience';
|
|
3
|
+
import type { NodeAdjacency } from './node-adjacency';
|
|
4
|
+
/** Fewest and most steps between a node and a terminus, `[-1, -1]` when none is reachable. */
|
|
5
|
+
export type MinMaxSteps = [number, number];
|
|
6
|
+
/** Min/max step distances for every node of one tree, keyed by node id. */
|
|
7
|
+
export interface MinMaxStepTables {
|
|
8
|
+
stepsToLeaf: ReadonlyMap<string, MinMaxSteps>;
|
|
9
|
+
stepsToOrigin: ReadonlyMap<string, MinMaxSteps>;
|
|
10
|
+
/** Node visits spent building the tables. Grows linearly with the node count. */
|
|
11
|
+
nodeVisits: number;
|
|
12
|
+
}
|
|
13
|
+
/** One flow graph's adjacency lookups alongside its min/max step tables. */
|
|
14
|
+
export type NodeTreeIndex = NodeAdjacency & MinMaxStepTables;
|
|
15
|
+
/**
|
|
16
|
+
* Indexes a flow graph and tables, for every node in it, the fewest and most steps to
|
|
17
|
+
* a leaf and back to an origin.
|
|
18
|
+
*
|
|
19
|
+
* The whole table costs one pass over the tree, so a caller holding it reads any node's
|
|
20
|
+
* pair with a map lookup. Build it once per tree and read it per node change.
|
|
21
|
+
*
|
|
22
|
+
* @param {ExperienceNode[]} nodes - Every node in the tree.
|
|
23
|
+
* @param {ExperienceEdge[]} edges - Every edge in the tree.
|
|
24
|
+
* @returns {NodeTreeIndex} The adjacency lookups and the step tables.
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const tree = createNodeTreeIndex(nodes, edges)
|
|
28
|
+
* const [min, max] = readStepsToLeaf(tree, currentNode)
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare const createNodeTreeIndex: (nodes: ExperienceNode[], edges: ExperienceEdge[]) => NodeTreeIndex;
|
|
32
|
+
/**
|
|
33
|
+
* Reads the fewest and most steps from a node to a leaf.
|
|
34
|
+
*
|
|
35
|
+
* @param {NodeTreeIndex} tree - The indexed tree.
|
|
36
|
+
* @param {ExperienceNode} node - The node to read.
|
|
37
|
+
* @returns {MinMaxSteps} The pair, `[-1, -1]` when no leaf is reachable.
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const [min, max] = readStepsToLeaf(tree, currentNode)
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare const readStepsToLeaf: (tree: NodeTreeIndex, node: ExperienceNode) => MinMaxSteps;
|
|
44
|
+
/**
|
|
45
|
+
* Reads the fewest and most steps from a node back to an origin, where the first origin
|
|
46
|
+
* the walk reaches ends it.
|
|
47
|
+
*
|
|
48
|
+
* @param {NodeTreeIndex} tree - The indexed tree.
|
|
49
|
+
* @param {ExperienceNode} node - The node to read.
|
|
50
|
+
* @returns {MinMaxSteps} The pair, `[-1, -1]` when no origin is reachable.
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const [min, max] = readStepsToOrigin(tree, currentNode)
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare const readStepsToOrigin: (tree: NodeTreeIndex, node: ExperienceNode) => MinMaxSteps;
|
|
57
|
+
//# sourceMappingURL=node-tree-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-tree-index.d.ts","sourceRoot":"","sources":["../../../../src/utils/node-tree/node-tree-index.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGrD,8FAA8F;AAC9F,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE1C,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC7C,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC/C,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,gBAAgB,CAAA;AAsd5D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB,UACvB,cAAc,EAAE,SAChB,cAAc,EAAE,KACtB,aAuBF,CAAA;AAkCD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,SAAU,aAAa,QAAQ,cAAc,KAAG,WAQ3E,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,SAAU,aAAa,QAAQ,cAAc,KAAG,WAO7E,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./logger-CSTvAyyB.cjs"),t=require("./storage-DUw9UJ2h.cjs");let n=require("effector"),r=require("@withease/factories");var i=(0,n.createDomain)(`feature`);function a(e){return e?.enabled===!1}function o(e){return e===`true`||e!==`false`&&e}function s(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r.length===0?null:{id:n,bucket:o(r)}}var c=(0,r.createFactory)(({client:r})=>{let s=i.store({}),c=i.store([]),l=(0,n.createApi)(s,{register(e,t){return{...e,[t.id]:t.feature}}}),u=(0,n.createEvent)();(0,n.sample)({clock:u,source:s,filter:(e,{id:t})=>e[t]!==void 0,fn:(e,{id:t})=>`Feature '${t}' already registered. Registering again will override the previous registration.`}).watch(t=>e.t(`warn`,t)),(0,n.sample)({clock:u,fn:({id:e,feature:t})=>Object.freeze({id:e,feature:{id:e,feature:{...t,id:e}}}),target:l.register});let d=(0,n.createEffect)(async({id:e,key:n,storage:r=`local`,enabled:i})=>{if(i===!1)return null;let a=t.t(`feature:${e}:${n}`,`global`),s=(r===`session`?t.r:t.n).get(a).text();return s?{id:e,key:n,bucket:o(s),storage:r}:null}),f=(0,n.createEffect)(e=>{if(!e)return null;let n=t.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?t.r:t.n).set(n,e.bucket)}),p=new Map,m=(0,n.attach)({source:{allFeaturesStore:s,resolvedFeaturesStore:c},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let o=t.find(e=>e.id===n&&e.key===i);if(o)return o;let s=e[n];if(!s)throw Error(`Feature with id '${n}' not found`);if(a(s.feature))return{id:s.id,bucket:!1,key:i,storage:s.feature.storage};let c=p.get(`${n}:${i}`);if(c!==void 0){let e=await c;return{id:s.id,bucket:e,key:i,storage:s.feature.storage}}let l=r();p.set(`${n}:${i}`,l);let u=await l;return{id:s.id,bucket:u,key:i,storage:s.feature.storage}}});(0,n.sample)({clock:l.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage,enabled:n.feature.enabled}},target:d}),(0,n.sample)({source:s,clock:m.doneData,filter:(e,t)=>!a(e[t.id]?.feature),fn:(e,t)=>{let{id:n,bucket:r,storage:i}=t,a=e[n]?.feature.key;return a?{key:a,id:n,bucket:r,storage:i}:null},target:f});let h=(0,n.combine)({allFeaturesStore:s,resolvedFeaturesStore:c}).map(({allFeaturesStore:e,resolvedFeaturesStore:t})=>Object.values(e).map(e=>{let n=t.find(t=>t.id===e.id&&t.key===e.feature.key);return n?{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:async()=>await m(e.feature),isResolved:!1}}));(0,n.sample)({clock:m.doneData,source:{resolvedFeatures:c,allFeatures:s},filter:({resolvedFeatures:e,allFeatures:t},{id:n,key:r})=>!a(t[n]?.feature)&&!e.some(e=>e.id===n&&e.key===r),fn:(e,t)=>t,target:r.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,n.sample)({clock:[d.doneData,m.doneData],source:{resolvedFeatures:c,allFeatures:s},fn:({resolvedFeatures:e,allFeatures:t},n)=>!n||a(t[n.id]?.feature)||e.some(e=>e.id===n.id&&e.key===n.key)?e:[...e,n],target:c});function g(e){return h.map(t=>t.find(t=>t.id===e),{skipVoid:!1})}let _=new Map,v=new Map,y=new Map;function b(e){let t=_.get(e);if(t)return t;let n=g(e);return _.set(e,n),n}function x(e){return s.map(t=>t[e],{skipVoid:!1})}function S(e){let t=(0,n.createStore)(async()=>void 0,{skipVoid:!1}),r=b(e),i=(0,n.attach)({source:r,effect:async e=>{if(e)return async()=>(await e.getBucket()).bucket}});return(0,n.sample)({clock:r,target:i}),(0,n.sample)({clock:i.doneData,filter:e=>e!==void 0,target:t}),i(),t}function C(e){let t=v.get(e);if(t)return t;let n=S(e);return v.set(e,n),n}function w(e){let t=C(e),r=(0,n.createStore)(void 0,{skipVoid:!1}),i=(0,n.attach)({source:t,mapParams:(e,t)=>t,effect:(0,n.createEffect)(async e=>await e())});return(0,n.sample)({clock:i.doneData,fn:t=>{if(t!==void 0)return{id:e,bucket:t}},target:r}),(0,n.sample)({clock:t,target:i}),i(),r}function T(e){let t=y.get(e);if(t)return t;let n=w(e);return y.set(e,n),n}return{register:u,getById:b,getByName:x,listStore:h,getEvokableFeature:C,getFeatureResult:T}});function l(e){return(0,r.invoke)(c,e)}var u=(e,t,n)=>{n.register({id:e,feature:t})},d=()=>`0.0.
|
|
1
|
+
const e=require("./logger-CSTvAyyB.cjs"),t=require("./storage-DUw9UJ2h.cjs");let n=require("effector"),r=require("@withease/factories");var i=(0,n.createDomain)(`feature`);function a(e){return e?.enabled===!1}function o(e){return e===`true`||e!==`false`&&e}function s(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r.length===0?null:{id:n,bucket:o(r)}}var c=(0,r.createFactory)(({client:r})=>{let s=i.store({}),c=i.store([]),l=(0,n.createApi)(s,{register(e,t){return{...e,[t.id]:t.feature}}}),u=(0,n.createEvent)();(0,n.sample)({clock:u,source:s,filter:(e,{id:t})=>e[t]!==void 0,fn:(e,{id:t})=>`Feature '${t}' already registered. Registering again will override the previous registration.`}).watch(t=>e.t(`warn`,t)),(0,n.sample)({clock:u,fn:({id:e,feature:t})=>Object.freeze({id:e,feature:{id:e,feature:{...t,id:e}}}),target:l.register});let d=(0,n.createEffect)(async({id:e,key:n,storage:r=`local`,enabled:i})=>{if(i===!1)return null;let a=t.t(`feature:${e}:${n}`,`global`),s=(r===`session`?t.r:t.n).get(a).text();return s?{id:e,key:n,bucket:o(s),storage:r}:null}),f=(0,n.createEffect)(e=>{if(!e)return null;let n=t.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?t.r:t.n).set(n,e.bucket)}),p=new Map,m=(0,n.attach)({source:{allFeaturesStore:s,resolvedFeaturesStore:c},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let o=t.find(e=>e.id===n&&e.key===i);if(o)return o;let s=e[n];if(!s)throw Error(`Feature with id '${n}' not found`);if(a(s.feature))return{id:s.id,bucket:!1,key:i,storage:s.feature.storage};let c=p.get(`${n}:${i}`);if(c!==void 0){let e=await c;return{id:s.id,bucket:e,key:i,storage:s.feature.storage}}let l=r();p.set(`${n}:${i}`,l);let u=await l;return{id:s.id,bucket:u,key:i,storage:s.feature.storage}}});(0,n.sample)({clock:l.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage,enabled:n.feature.enabled}},target:d}),(0,n.sample)({source:s,clock:m.doneData,filter:(e,t)=>!a(e[t.id]?.feature),fn:(e,t)=>{let{id:n,bucket:r,storage:i}=t,a=e[n]?.feature.key;return a?{key:a,id:n,bucket:r,storage:i}:null},target:f});let h=(0,n.combine)({allFeaturesStore:s,resolvedFeaturesStore:c}).map(({allFeaturesStore:e,resolvedFeaturesStore:t})=>Object.values(e).map(e=>{let n=t.find(t=>t.id===e.id&&t.key===e.feature.key);return n?{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:async()=>await m(e.feature),isResolved:!1}}));(0,n.sample)({clock:m.doneData,source:{resolvedFeatures:c,allFeatures:s},filter:({resolvedFeatures:e,allFeatures:t},{id:n,key:r})=>!a(t[n]?.feature)&&!e.some(e=>e.id===n&&e.key===r),fn:(e,t)=>t,target:r.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,n.sample)({clock:[d.doneData,m.doneData],source:{resolvedFeatures:c,allFeatures:s},fn:({resolvedFeatures:e,allFeatures:t},n)=>!n||a(t[n.id]?.feature)||e.some(e=>e.id===n.id&&e.key===n.key)?e:[...e,n],target:c});function g(e){return h.map(t=>t.find(t=>t.id===e),{skipVoid:!1})}let _=new Map,v=new Map,y=new Map;function b(e){let t=_.get(e);if(t)return t;let n=g(e);return _.set(e,n),n}function x(e){return s.map(t=>t[e],{skipVoid:!1})}function S(e){let t=(0,n.createStore)(async()=>void 0,{skipVoid:!1}),r=b(e),i=(0,n.attach)({source:r,effect:async e=>{if(e)return async()=>(await e.getBucket()).bucket}});return(0,n.sample)({clock:r,target:i}),(0,n.sample)({clock:i.doneData,filter:e=>e!==void 0,target:t}),i(),t}function C(e){let t=v.get(e);if(t)return t;let n=S(e);return v.set(e,n),n}function w(e){let t=C(e),r=(0,n.createStore)(void 0,{skipVoid:!1}),i=(0,n.attach)({source:t,mapParams:(e,t)=>t,effect:(0,n.createEffect)(async e=>await e())});return(0,n.sample)({clock:i.doneData,fn:t=>{if(t!==void 0)return{id:e,bucket:t}},target:r}),(0,n.sample)({clock:t,target:i}),i(),r}function T(e){let t=y.get(e);if(t)return t;let n=w(e);return y.set(e,n),n}return{register:u,getById:b,getByName:x,listStore:h,getEvokableFeature:C,getFeatureResult:T}});function l(e){return(0,r.invoke)(c,e)}var u=(e,t,n)=>{n.register({id:e,feature:t})},d=()=>`0.0.83-next.2`;Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return d}});
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@picked/client",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.83-next.2",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@picked/delivery-api-client": "0.0.
|
|
5
|
+
"@picked/delivery-api-client": "0.0.83-next.2",
|
|
6
6
|
"@withease/factories": "^1.0.5",
|
|
7
|
-
"@picked/telemetry": "0.0.
|
|
7
|
+
"@picked/telemetry": "0.0.83-next.2"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
10
10
|
"@repo/eslint-config": "workspace:*",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./rules-logic-CGZIYgAI.cjs");require("./logger-CSTvAyyB.cjs");const t=require("./dom-DlLH3FxV.cjs");let n=require("effector"),r=require("@withease/factories");function i(e){return e.type===`condition`}function a(e){return e.type===`step`}function o(e){return e.type===`experience`}function s(e){return e.type===`origin`}function c(e){return e.type===`action`}var l=`conditions.`,u=(0,n.createDomain)(`condition-results`);function d(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function f(e){if(e===void 0)return null;if(Array.isArray(e))return e.map(e=>f(e));if(d(e)){let t=Object.keys(e).sort((e,t)=>e.localeCompare(t)),n={};for(let r of t)n[r]=f(e[r]);return n}return e}function p(e){return JSON.stringify(f(e))}var m=(0,r.createFactory)(()=>{let e=u.store({}),t=(0,n.createApi)(e,{set(e,t){return e[t.hash]===t.result?e:{...e,[t.hash]:t.result}},seed(e,t){return Object.keys(t).every(n=>e[n]===t[n])?e:{...e,...t}},clear(){return{}}});function r(e){t.set(e)}function i(e){t.seed(e)}function a(){t.clear()}function o(t){return e.getState()[t]}return{store:e,set:r,seed:i,peek:o,reset:a}});function h(){return(0,r.invoke)(m)}async function g(t,n,r){return n==null?!0:typeof n==`boolean`?n:!e.n(n)||await e.t(t,n,r)===!0}function _(e){if(typeof e==`string`)return e;if(Array.isArray(e)&&typeof e[0]==`string`)return e[0]}function v(e){if(Array.isArray(e))return e.some(v);if(d(e)){let t=_(e.var);return t!==void 0&&(t===`actions`||t.startsWith(`actions.`))?!0:Object.values(e).some(v)}return!1}function y(e){if(Array.isArray(e))return e.flatMap(y);if(d(e)){let t=_(e.var);return[...t!==void 0&&t.startsWith(l)?[t.slice(11)]:[],...Object.values(e).flatMap(y)]}return[]}function b(e,t,n=new Set){if(v(e))return!0;for(let r of y(e)){if(n.has(r))continue;n.add(r);let e=t[r];if(e!==void 0&&b(e.logic,t,n))return!0}return!1}async function x(e,t,n){let r={};for(let t of e.conditions.listStore.getState())r[t.key]=t;let i=b(t,r),a=p(t);if(!i){let t=e.conditionResults.peek(a);if(t!==void 0)return t}let o=await g(e,t,n?.context);return i||e.conditionResults.set({hash:a,result:o}),o}async function S(e,t,n){let r=n?.context,i=[n?.precondition,n?.condition,t.condition];for(let t of i)if(!await x(e,t,{context:r}))return!1;return!0}var C=(e,t,n,r,i=new Set)=>i.has(n.id)?[]:(i.add(n.id),a(n)&&!r?[n]:t.filter(e=>e.sourceNodeId===n.id).flatMap(n=>{let r=e.find(e=>e.id===n.destinationNodeId);return r?C(e,t,r,!1,i):[]})),w=(e,t,n)=>C(e,t,n,!0,new Set),T=(e,t,n,r,i=new Set)=>{if(i.has(n.id))return[-1,-1];i.add(n.id);let a=t.filter(e=>e.sourceNodeId===n.id);if(a.length===0)return[0,0];let o=1/0,s=-1/0;for(let n of a){let r=e.find(e=>e.id===n.destinationNodeId);if(!r)continue;let[a,c]=T(e,t,r,!1,new Set(i));a!==-1&&(o=Math.min(o,a+1),s=Math.max(s,c+1))}return o===1/0?[-1,-1]:[o,s]},E=(e,t,n)=>T(e,t,n,!0,new Set),D=(e,t,n,r=new Set)=>{if(r.has(n.id))return[-1,-1];if(r.add(n.id),n.type===`origin`)return[0,0];let i=t.filter(e=>e.destinationNodeId===n.id);if(i.length===0)return[-1,-1];let a=1/0,o=-1/0;for(let n of i){let i=e.find(e=>e.id===n.sourceNodeId);if(!i)continue;let[s,c]=D(e,t,i,new Set(r));s!==-1&&(a=Math.min(a,s+1),o=Math.max(o,c+1))}return a===1/0?[-1,-1]:[a,o]},ee=(e,t,n)=>D(e,t,n,new Set),O=e=>e.find(e=>e.type===`origin`)||null,k=(e,t,n)=>{if(!e)return O(t);let r=n.find(t=>t.sourceNodeId===e.id);return r&&t.find(e=>e.id===r.destinationNodeId)||null};async function A(e,t,n,r){let i=e?`true`:`false`,a=r.find(e=>e.sourceHandle===i&&e.sourceNodeId===t);return n.find(e=>e.id===a?.destinationNodeId)}function j(e,t,n,r){let i=r.filter(e=>e.sourceNodeId===t),a=e?`true`:`false`,o=i.find(e=>e.sourceHandle===a)??i.find(e=>e.sourceHandle==null);return n.find(e=>e.id===o?.destinationNodeId)}var M=(0,n.createDomain)(`experience-instance`),N=(0,r.createFactory)(({client:r,experience:l,target:u,options:d})=>{let f=(0,n.createEvent)(),p=(0,n.createEvent)(),m=(0,n.createEvent)(),h=(0,n.createEvent)(),g=(0,n.createEvent)(),_=(0,n.createEvent)(),v=(0,n.createEvent)(),y=l.componentStore,b=M.store(`transitioning`),x=r.history.entriesStore.map(e=>e.filter(e=>e.experienceId===l.id)),S=x.map(e=>e.filter(e=>a(e.node))),C=x.map(e=>e.at(-1)?.node||null),T=M.store(null);(0,n.sample)({clock:[C,r.steps.listStore,_],source:{steps:r.steps.listStore,node:C},filter:({node:e})=>e!==null&&a(e),fn:({steps:e,node:t})=>t&&a(t)?e.find(e=>e.id===t.stepId)??null:null,target:T});let D=(0,n.combine)(r.steps.listStore,S,(e,t)=>{let n=t.at(-2);if(!n||!a(n.node))return null;let r=n.node;return e.find(e=>e.id===r.stepId)||null}),N=(0,n.combine)(l.treeStore,C,({nodes:e,edges:t},n)=>n?w(e,t,n):[]),P=(0,n.combine)(l.treeStore,C,({nodes:e,edges:t},n)=>n?ee(e,t,n):[-1,-1]),F=(0,n.combine)(l.treeStore,C,({nodes:e,edges:t},n)=>n?E(e,t,n):[-1,-1]),I=M.store(!1),L=(0,n.createApi)(I,{open:()=>!0,close:()=>!1,toggle:e=>!e,set:(e,t)=>t}),R=(0,n.createEffect)(async()=>{r.history.back({experienceId:l.id})}),z=(0,n.attach)({source:l.treeStore,effect:async(e,t)=>{let n=e.nodes.find(e=>a(e)&&e.stepId===t);n&&r.history.push({experienceId:l.id,node:n})}}),B=(0,n.attach)({source:l.treeStore,effect:async(e,t)=>{let n=e.steps.find(e=>e.key===t);if(!n)return;let i=e.nodes.find(e=>a(e)&&e.stepId===n.id);i&&r.history.push({experienceId:l.id,node:i})}}),V=(0,n.attach)({source:C,effect:e=>{}}),H=(0,n.attach)({source:l.treeStore,effect:async({nodes:e})=>O(e)}),U=(0,n.attach)({source:l.treeStore,effect:async({nodes:e,edges:t},n)=>{if(s(n))return k(n,e,t)}}),W=(0,n.attach)({source:l.treeStore,effect:async({nodes:t,edges:n,conditions:a},o)=>{if(!i(o))return;let s=a.find(e=>e.id===o.conditionId)?.logic;return s?A(!!await e.t(r,s),o.id,t,n):void 0}}),G=(0,n.attach)({source:{tree:l.treeStore,actions:r.actions.listStore,snapshot:r.stateSnapshotStore},effect:async({tree:e,actions:t,snapshot:n},r)=>{let{nodes:i,edges:a}=e;if(!c(r))return;let o=r.actionKey;if(!o){`${r.id}`;return}let s=t.find(e=>e.key===o)?.action;if(typeof s!=`function`)return`${o}`,j(!1,r.id,i,a)??null;let l=!0;try{`${o}`,await s({...n,args:[]},{experience:Z})}catch{`${o}`,l=!1}let u=j(l,r.id,i,a);if(!u){let e=a.some(e=>e.sourceNodeId===r.id)?`no edge for its outcome`:`no outgoing edge`;return`${r.id}${e}`,null}return`${o}${u.id}`,u}}),K=(0,n.createEffect)(e=>{o(e)&&r.experiences.launch({key:e.experienceKey})}),q=(0,n.attach)({source:[C,l.treeStore],effect:async([e,{nodes:t,edges:n}])=>k(e,t,n)}),J=(0,n.attach)({source:[C,l.treeStore],effect:async([e,{nodes:t,edges:n}])=>k(e,t,n)}),te=(0,n.createEffect)(e=>{r.history.push({experienceId:l.id,node:e})}),Y=(0,n.attach)({source:l.configStore,effect:async({initializeOpenLogic:t})=>d?.initialiseOpen===void 0?e.n(t)?!!await e.t(r,t):t??!1:d.initialiseOpen}),X=(0,n.combine)(y,r.frameworks.listStore,(e,t)=>{if(!e)return null;let n=t.find(t=>t.name===e.component.frameworkName);return n?{component:e,framework:n}:null},{skipVoid:!1}),Z,ne=(0,n.attach)({source:X,effect:e=>{if(!e)return;if(!u){`${l.id}`;return}let n=t.n(u);try{e.framework.render(n,e.component.component,r,Z)}catch{}}});Z=Object.freeze({id:Math.random().toString(36).substring(7),experienceKey:l.key,experienceId:l.id,experienceName:l.name,configStore:l.configStore,target:u,componentStore:y,componentAndFrameworkStore:X,stateStore:b,isOpenStore:I,open:L.open,close:L.close,toggleOpen:L.toggle,setOpen:L.set,treeStore:l.treeStore,currentNodeStore:C,currentStepStore:T,previousStepStore:D,nextReachableStepNodesStore:N,stepsToOriginStore:P,stepsToLeafStore:F,goToNextStep:p,goToPreviousStep:m,goToStepById:h,goToStepByKey:g,stepsHistoryStore:S,mountFx:ne});let Q=(0,n.createEvent)(),$=(0,n.createEvent)();return(0,n.sample)({clock:C,target:Q}),(0,n.sample)({clock:Q,filter:e=>e===null,target:H}),(0,n.sample)({clock:Q,filter:e=>e!==null,target:$}),(0,n.split)({source:$,match:e=>i(e)?`condition`:a(e)?`step`:o(e)?`launchExperience`:s(e)?`origin`:c(e)?`action`:`other`,cases:{origin:U,condition:W,step:V,launchExperience:K,action:G,__:(0,n.createEvent)()}}),(0,n.sample)({clock:[W.doneData,U.doneData,H.doneData,J.doneData,q.doneData,G.doneData],filter:Boolean,target:te}),(0,n.sample)({clock:p,target:J}),(0,n.sample)({clock:p,source:T,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_submit`,step:e,experience:Z}))}),(0,n.sample)({clock:J.done,source:T,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_submit_success`,step:e,experience:Z}))}),(0,n.sample)({clock:J.fail,source:T,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_submit_error`,step:e,experience:Z}))}),(0,n.sample)({clock:m,target:R}),(0,n.sample)({clock:h,target:z}),(0,n.sample)({clock:g,target:B}),(0,n.sample)({source:(0,n.combine)([W.pending,U.pending,H.pending,J.pending,q.pending,G.pending]),fn:e=>e.some(Boolean)?`transitioning`:`ready`,target:b}),(0,n.sample)({clock:V.doneData,source:T,filter:Boolean,target:r.eventBus.prepend(e=>({type:`step_enter`,step:e,experience:Z}))}),(0,n.sample)({clock:v,target:Y}),(0,n.sample)({source:Y.doneData,fn:Boolean,target:I}),(0,n.sample)({source:C,clock:f,filter:e=>!e||s(e),target:q}),(0,n.sample)({source:I,filter:Boolean,target:f}),(0,n.sample)({source:I,filter:Boolean,target:r.eventBus.prepend(()=>({type:`experience_open`,experience:Z}))}),(0,n.sample)({source:I,filter:e=>!e,target:r.eventBus.prepend(()=>({type:`experience_close`,experience:Z}))}),(0,n.sample)({clock:_,target:[v]}),_(),Z});function P(e){return(0,r.invoke)(N,e)}var F=(0,r.createFactory)(({client:e})=>{let r=M.store({}),i=(0,n.createEvent)(),a=(0,n.createEvent)(),o=(0,n.createEvent)(),s=(0,n.createApi)(r,{register(e,t){let n=[...e[t.experienceId]??[]];return n.push(t),{...e,[t.experienceId]:n}},unregister(e,t){let n=t.experienceId,r=e[n]?.filter(e=>e!==t);return{...e,[n]:r??[]}}}),c=(0,n.createEffect)(({experience:t,target:n,options:r})=>P({client:e,experience:t,target:n,options:r})),l=(0,n.createEffect)(e=>{s.register(e)}),u=(0,n.createEffect)(e=>{e.target&&t.o(e.target,()=>{o(e)})}),d=(0,n.createEffect)(e=>{s.unregister(e)}),f=(0,n.createEffect)(async e=>{await e.mountFx()});(0,n.sample)({clock:i,target:c}),(0,n.sample)({clock:o,target:d}),(0,n.sample)({clock:c.doneData,target:[l,u,a]}),(0,n.sample)({clock:c.doneData,target:e.eventBus.prepend(e=>({type:`experience_initialize`,experience:e}))}),(0,n.sample)({clock:a,target:f});function p(e,t,n){i({experience:e,target:t,options:n})}let m=r.map(e=>Object.values(e).flat());function h(e){return m.map(t=>t.filter(t=>t.experienceKey===e),{skipVoid:!1})}function g(e){return r.map(t=>t[e]||[],{skipVoid:!1})}return{spawn:p,getByExperienceKey:h,getByExperienceId:g,listStore:m}});function I(e){return(0,r.invoke)(F,e)}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return a}});
|