@picked/client 0.0.1-dev.1783393641770 → 0.0.1-dev.1783575114714

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.
Files changed (36) hide show
  1. package/dist/{api-CHtZJL48.js → api-C8oFjhpj.js} +1 -1
  2. package/dist/{api-CEoqdaqt.cjs → api-Dr44uSJA.cjs} +1 -1
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/plugins/dom-observer/index.js +1 -1
  5. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  6. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  7. package/dist/cjs/server/index.js +1 -1
  8. package/dist/{dom-BwmTHeT7.js → dom-CZyRgp2P.js} +17 -12
  9. package/dist/dom-CdxDV3e-.cjs +1 -0
  10. package/dist/esm/index.js +488 -384
  11. package/dist/esm/plugins/dom-observer/index.js +1 -1
  12. package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
  13. package/dist/esm/plugins/history-browser-storage/index.js +33 -11
  14. package/dist/esm/server/index.js +2 -2
  15. package/dist/experience-instance-BbSXoRrr.cjs +1 -0
  16. package/dist/{experience-instance-CBJJPjEJ.js → experience-instance-M2kR3nTp.js} +202 -213
  17. package/dist/{plugin-C1fanByQ.cjs → plugin-8aSF9x8V.cjs} +1 -1
  18. package/dist/{plugin-mTF3d8cX.js → plugin-DiVy3Ubv.js} +1 -1
  19. package/dist/types/entities/action/action.d.ts +1 -1
  20. package/dist/types/entities/experience/experience.d.ts +2 -2
  21. package/dist/types/entities/experience/experience.d.ts.map +1 -1
  22. package/dist/types/entities/experience-instance/experience-instance.d.ts +23 -6
  23. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  24. package/dist/types/entities/history/history.d.ts +30 -16
  25. package/dist/types/entities/history/history.d.ts.map +1 -1
  26. package/dist/types/entities/response/response.d.ts +1 -0
  27. package/dist/types/entities/response/response.d.ts.map +1 -1
  28. package/dist/types/picked.d.ts +10 -14
  29. package/dist/types/picked.d.ts.map +1 -1
  30. package/dist/types/plugins/history-browser-storage/plugin.d.ts +17 -0
  31. package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
  32. package/dist/types/utils/dom.d.ts +94 -0
  33. package/dist/types/utils/dom.d.ts.map +1 -1
  34. package/package.json +2 -2
  35. package/dist/dom-CDrHc_j9.cjs +0 -1
  36. package/dist/experience-instance-qBWC_Wr2.cjs +0 -1
@@ -1,6 +1,6 @@
1
1
  import "../../../logger-DMN6TxJJ.js";
2
2
  import { f as e, i as t } from "../../../supports-CO9bJGNl.js";
3
- import { r as n } from "../../../dom-BwmTHeT7.js";
3
+ import { r as n } from "../../../dom-CZyRgp2P.js";
4
4
  import { createEffect as r, createEvent as i, createStore as a, sample as o } from "effector";
5
5
  //#region src/plugins/dom-observer/plugin.ts
6
6
  var s = /* @__PURE__ */ new WeakSet(), c = () => ({
@@ -1,3 +1,3 @@
1
- import { i as e } from "../../../api-CHtZJL48.js";
2
- import { n as t, r as n, t as r } from "../../../plugin-mTF3d8cX.js";
1
+ import { i as e } from "../../../api-C8oFjhpj.js";
2
+ import { n as t, r as n, t as r } from "../../../plugin-DiVy3Ubv.js";
3
3
  export { e as createClientHeaders, r as dynamicExperiencesPlugin, t as fetchExperienceContent, n as fetchProject };
@@ -1,26 +1,48 @@
1
+ import "../../../logger-DMN6TxJJ.js";
1
2
  import { f as e } from "../../../supports-CO9bJGNl.js";
2
3
  import { n as t, r as n, t as r } from "../../../storage-1MW3-_As.js";
3
4
  import { createEffect as i, sample as a } from "effector";
4
5
  //#region src/plugins/history-browser-storage/plugin.ts
5
- var o = r("history", "global"), s = ({ storage: r = "local" } = {}) => ({
6
+ var o = r("history", "global"), s = new Set([
7
+ "__proto__",
8
+ "constructor",
9
+ "prototype"
10
+ ]), c = (e) => !(typeof e != "object" || !e || !("id" in e) || typeof e.id != "string" || !("at" in e) || typeof e.at != "number" || !("experienceId" in e) || typeof e.experienceId != "string" || s.has(e.experienceId) || !("instanceId" in e) || typeof e.instanceId != "string" || !("node" in e) || typeof e.node != "object" || e.node === null), l = (e) => {
11
+ if (typeof e != "object" || !e || Array.isArray(e)) return !1;
12
+ for (let t of Object.values(e)) {
13
+ if (!Array.isArray(t)) return !1;
14
+ for (let e of t) if (!c(e)) return !1;
15
+ }
16
+ return !0;
17
+ }, u = ({ storage: r = "local" } = {}) => ({
6
18
  name: "history-browser-storage-plugin",
7
19
  setup: (s) => {
8
20
  if (!e()) return;
9
- let c = r === "local" ? t : n, l = i(async () => {
10
- let e = c.get(o).json();
11
- e && s.history.restore({ entries: e });
12
- }), u = i(async (e) => {
13
- c.set(o, e);
21
+ let c = r === "local" ? t : n, u = i(() => {
22
+ let e;
23
+ try {
24
+ e = c.get(o).json();
25
+ } catch {
26
+ return;
27
+ }
28
+ if (e != null && l(e)) {
29
+ s.history.restoreSnapshots({ snapshots: e });
30
+ return;
31
+ }
32
+ }), d = i((e) => {
33
+ try {
34
+ c.set(o, e);
35
+ } catch {}
14
36
  });
15
37
  a({
16
38
  source: s.eventBus,
17
39
  filter: (e) => e.type === "load",
18
- target: l
19
- }), a({
20
- source: s.history.entriesStore,
21
40
  target: u
22
- });
41
+ }), a({
42
+ source: s.history.snapshotStore,
43
+ target: d
44
+ }), u();
23
45
  }
24
46
  });
25
47
  //#endregion
26
- export { s as historyBrowserStoragePlugin };
48
+ export { u as historyBrowserStoragePlugin };
@@ -1,5 +1,5 @@
1
- import { a as e, c as t, i as n, o as r, s as i, t as a, u as o } from "../../experience-instance-CBJJPjEJ.js";
2
- import { i as s, n as c } from "../../plugin-mTF3d8cX.js";
1
+ import { a as e, c as t, i as n, o as r, s as i, t as a, u as o } from "../../experience-instance-M2kR3nTp.js";
2
+ import { i as s, n as c } from "../../plugin-DiVy3Ubv.js";
3
3
  import { attach as l, createEffect as u, createEvent as d, createStore as f, sample as p } from "effector";
4
4
  //#region src/server/serialize.ts
5
5
  var m = 1e4;
@@ -0,0 +1 @@
1
+ const e=require("./rules-logic-CGZIYgAI.cjs");require("./logger-CSTvAyyB.cjs");const t=require("./dom-CdxDV3e-.cjs"),n=require("./id-Js-62re-.cjs");let r=require("effector"),i=require("@withease/factories");function a(e){return e.type===`condition`}function o(e){return e.type===`step`}function s(e){return e.type===`experience`}function c(e){return e.type===`origin`}function l(e){return e.type===`action`}var u=`conditions.`,d=(0,r.createDomain)(`condition-results`);function f(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(f(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 m(e){return JSON.stringify(p(e))}var h=(0,i.createFactory)(()=>{let e=d.store({}),t=(0,r.createApi)(e,{set(e,t){return{...e,[t.hash]:t.result}},seed(e,t){return{...e,...t}},clear(){return{}}});function n(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:n,seed:i,peek:o,reset:a}});function g(){return(0,i.invoke)(h)}async function _(t,n,r){return n==null?!0:typeof n==`boolean`?n:e.n(n)?await e.t(t,n,r)===!0:!0}function v(e){if(typeof e==`string`)return e;if(Array.isArray(e)&&typeof e[0]==`string`)return e[0]}function y(e){if(Array.isArray(e))return e.some(y);if(f(e)){let t=v(e.var);return t!==void 0&&(t===`actions`||t.startsWith(`actions.`))?!0:Object.values(e).some(y)}return!1}function b(e){if(Array.isArray(e))return e.flatMap(b);if(f(e)){let t=v(e.var);return[...t!==void 0&&t.startsWith(u)?[t.slice(11)]:[],...Object.values(e).flatMap(b)]}return[]}function x(e,t,n=new Set){if(y(e))return!0;for(let r of b(e)){if(n.has(r))continue;n.add(r);let e=t[r];if(e!==void 0&&x(e.logic,t,n))return!0}return!1}async function S(e,t,n){let r={};for(let t of e.conditions.listStore.getState())r[t.key]=t;let i=x(t,r),a=m(t);if(!i){let t=e.conditionResults.peek(a);if(t!==void 0)return t}let o=await _(e,t,n?.context);return i||e.conditionResults.set({hash:a,result:o}),o}async function C(e,t,n){let r=n?.context,i=[n?.precondition,n?.condition,t.condition];for(let t of i)if(!await S(e,t,{context:r}))return!1;return!0}var w=(e,t,n,r,i=new Set)=>i.has(n.id)?[]:(i.add(n.id),o(n)&&!r?[n]:t.filter(e=>e.sourceNodeId===n.id).flatMap(n=>{let r=e.find(e=>e.id===n.destinationNodeId);return r?w(e,t,r,!1,i):[]})),T=(e,t,n)=>w(e,t,n,!0,new Set),E=(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]=E(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]},D=(e,t,n)=>E(e,t,n,!0,new Set),O=(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]=O(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)=>O(e,t,n,new Set),k=e=>e.find(e=>e.type===`origin`)||null,A=(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 j(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 M(e,t,n,r){let i=t.find(t=>t.sourceNodeId===e.id&&t.sourceHandle===r);return i?n.find(e=>e.id===i.destinationNodeId)??null:null}var N=(0,r.createDomain)(`experience-instance`),P=(0,i.createFactory)(({client:i,experience:u,target:d,options:f})=>{let p=n.t(`exp-instance`);i.history.seedInstanceFromSnapshot({instanceId:p,experienceId:u.id});let m=(0,r.createEvent)(),h=(0,r.createEvent)(),g=(0,r.createEvent)(),_=(0,r.createEvent)(),v=(0,r.createEvent)(),y=(0,r.createEvent)(),b=(0,r.createEvent)(),x=(0,r.createEvent)(),S=u.componentStore,C=N.store(`transitioning`),w=i.history.entriesStore.map(e=>e.filter(e=>e.instanceId===p)),E=w.map(e=>e.filter(e=>o(e.node))),O=E.map(e=>e.length>=2),P=w.map(e=>e.at(-1)?.node||null),F=(0,r.combine)(i.steps.listStore,P,(e,t)=>e.find(e=>t&&o(t)&&e.id===t.stepId)||null),I=(0,r.combine)(i.steps.listStore,E,(e,t)=>{let n=t.at(-2);if(!n||!o(n.node))return null;let r=n.node;return e.find(e=>e.id===r.stepId)||null}),L=(0,r.combine)(u.treeStore,P,({nodes:e,edges:t},n)=>n?T(e,t,n):[]),R=(0,r.combine)(u.treeStore,P,({nodes:e,edges:t},n)=>n?ee(e,t,n):[-1,-1]),z=(0,r.combine)(u.treeStore,P,({nodes:e,edges:t},n)=>n?D(e,t,n):[-1,-1]),B=N.store(!1),V=(0,r.createApi)(B,{open:()=>!0,close:()=>!1,toggle:e=>!e,set:(e,t)=>t}),te=(0,r.createEffect)(()=>{i.history.back({instanceId:p})}),ne=(0,r.attach)({source:u.treeStore,effect:(e,t)=>{let n=e.nodes.find(e=>o(e)&&e.stepId===t);n&&i.history.push({instanceId:p,experienceId:u.id,node:n})}}),H=(0,r.attach)({source:P,effect:e=>{}}),U=(0,r.attach)({source:u.treeStore,effect:async({nodes:e})=>k(e)}),W=(0,r.attach)({source:u.treeStore,effect:async({nodes:e,edges:t},n)=>{if(c(n))return A(n,e,t)}}),G=(0,r.attach)({source:u.treeStore,effect:async({nodes:t,edges:n,conditions:r},o)=>{if(!a(o))return;let s=r.find(e=>e.id===o.conditionId)?.logic;return s?j(!!await e.t(i,s),o.id,t,n):void 0}}),K=(0,r.attach)({source:{tree:u.treeStore,actions:i.actions.listStore,snapshot:i.stateSnapshotStore},effect:async({tree:e,actions:t,snapshot:n},r)=>{let{nodes:i,edges:a}=e;if(!l(r))return;let o=r.actionKey;if(!o){`${r.id}`;return}let s=t.find(e=>e.key===o)?.action;if(!s||typeof s!=`function`)return`${o}`,M(r,a,i,`false`);try{`${o}`,await s({...n,args:[]},{experience:Z});let e=M(r,a,i,`true`);return e?(`${o}${e.id}`,e):(`${r.id}`,null)}catch{`${o}`;let e=M(r,a,i,`false`);return e?(`${o}${e.id}`,e):(`${r.id}`,null)}}}),re=(0,r.createEffect)(e=>{s(e)&&i.experiences.launch({key:e.experienceKey})}),q=(0,r.attach)({source:[P,u.treeStore],effect:async([e,{nodes:t,edges:n}])=>A(e,t,n)}),J=(0,r.attach)({source:[P,u.treeStore],effect:async([e,{nodes:t,edges:n}])=>A(e,t,n)}),ie=(0,r.createEffect)(e=>{i.history.push({instanceId:p,experienceId:u.id,node:e})}),Y=(0,r.attach)({source:u.configStore,effect:async({initializeOpenLogic:t})=>f?.initialiseOpen===void 0?e.n(t)?!!await e.t(i,t):t??!1:f.initialiseOpen}),X=(0,r.combine)(S,i.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,ae=(0,r.attach)({source:X,effect:e=>{if(!e)return;if(!d){`${u.id}`;return}let n=t.n(d);try{e.framework.render(n,e.component.component,i,Z)}catch{}}});Z=Object.freeze({id:p,experienceKey:u.key,experienceId:u.id,experienceName:u.name,configStore:u.configStore,target:d,componentStore:S,componentAndFrameworkStore:X,stateStore:C,isOpenStore:B,open:V.open,close:V.close,toggleOpen:V.toggle,setOpen:V.set,treeStore:u.treeStore,currentNodeStore:P,currentStepStore:F,previousStepStore:I,nextReachableStepNodesStore:L,stepsToOriginStore:R,stepsToLeafStore:z,goToNextStep:h,goToPreviousStep:g,goToStepById:_,reset:v,stepsHistoryStore:E,isResumableStore:O,restart:y,mountFx:ae});let Q=(0,r.createEvent)(),$=(0,r.createEvent)();(0,r.sample)({clock:P,target:Q}),(0,r.sample)({clock:Q,filter:e=>e===null,target:U}),(0,r.sample)({clock:Q,filter:e=>e!==null,target:$}),(0,r.split)({source:$,match:e=>a(e)?`condition`:o(e)?`step`:s(e)?`launchExperience`:c(e)?`origin`:l(e)?`action`:`other`,cases:{origin:W,condition:G,step:H,launchExperience:re,action:K,__:(0,r.createEvent)()}}),(0,r.sample)({clock:[G.doneData,W.doneData,U.doneData,J.doneData,q.doneData,K.doneData],filter:Boolean,target:ie}),(0,r.sample)({clock:h,target:J}),(0,r.sample)({clock:h,source:F,filter:Boolean,target:i.eventBus.prepend(e=>({type:`step_submit`,step:e,experience:Z}))}),(0,r.sample)({clock:J.done,source:F,filter:Boolean,target:i.eventBus.prepend(e=>({type:`step_submit_success`,step:e,experience:Z}))}),(0,r.sample)({clock:J.fail,source:F,filter:Boolean,target:i.eventBus.prepend(e=>({type:`step_submit_error`,step:e,experience:Z}))}),(0,r.sample)({clock:g,target:te}),(0,r.sample)({clock:_,target:ne}),(0,r.sample)({clock:v,fn:()=>({instanceId:p}),target:i.history.clearForInstance});let oe=(0,r.createEffect)(()=>{i.responses.clearByExperience(u.id)});return(0,r.sample)({clock:y,fn:()=>({instanceId:p}),target:i.history.clearForInstance}),(0,r.sample)({clock:y,target:oe}),(0,r.sample)({source:(0,r.combine)([G.pending,W.pending,U.pending,J.pending]),fn:e=>e.some(Boolean)?`transitioning`:`ready`,target:C}),(0,r.sample)({clock:H.doneData,source:F,filter:Boolean,target:i.eventBus.prepend(e=>({type:`step_enter`,step:e,experience:Z}))}),(0,r.sample)({clock:x,target:Y}),(0,r.sample)({source:Y.doneData,fn:Boolean,target:B}),(0,r.sample)({source:P,clock:m,filter:e=>e?c(e):!0,target:q}),(0,r.sample)({source:B,filter:Boolean,target:m}),(0,r.sample)({source:B,filter:Boolean,target:i.eventBus.prepend(()=>({type:`experience_open`,experience:Z}))}),(0,r.sample)({source:B,filter:e=>!e,target:i.eventBus.prepend(()=>({type:`experience_close`,experience:Z}))}),(0,r.sample)({clock:b,target:[x]}),b(),Z});function F(e){return(0,i.invoke)(P,e)}var I=(0,i.createFactory)(({client:e})=>{let n=N.store({}),i=(0,r.createEvent)(),a=(0,r.createEvent)(),o=(0,r.createEvent)(),s=(0,r.createApi)(n,{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,r.createEffect)(({experience:t,target:n,options:r})=>F({client:e,experience:t,target:n,options:r})),l=(0,r.createEffect)(e=>{s.register(e)}),u=(0,r.createEffect)(e=>{e.target&&t.s(e.target,()=>{o(e)})}),d=(0,r.createEffect)(e=>{s.unregister(e)}),f=(0,r.createEffect)(async e=>{await e.mountFx()});(0,r.sample)({clock:i,target:c}),(0,r.sample)({clock:o,target:d}),(0,r.sample)({clock:c.doneData,target:[l,u,a]}),(0,r.sample)({clock:c.doneData,target:e.eventBus.prepend(e=>({type:`experience_initialize`,experience:e}))}),(0,r.sample)({clock:a,target:f});function p(e,t,n){i({experience:e,target:t,options:n})}let m=n.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 n.map(t=>t[e]||[],{skipVoid:!1})}return{spawn:p,getByExperienceKey:h,getByExperienceId:g,listStore:m}});function L(e){return(0,i.invoke)(I,e)}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return o}});