@jagreehal/workflow 1.0.0 → 1.2.0

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/workflow.js CHANGED
@@ -1,2 +1,2 @@
1
- var S=e=>({ok:!0,value:e}),T=(e,n)=>({ok:!1,error:e,...n?.cause!==void 0?{cause:n.cause}:{}});var L=e=>typeof e=="object"&&e!==null&&e.type==="UNEXPECTED_ERROR",F=Symbol("early-exit");function D(e,n){return{[F]:!0,error:e,meta:n}}function M(e){return typeof e=="object"&&e!==null&&e[F]===!0}var j=Symbol("mapper-exception");function X(e){return{[j]:!0,thrown:e}}function J(e){return typeof e=="object"&&e!==null&&e[j]===!0}function G(e){return typeof e=="string"?{name:e}:e??{}}async function U(e,n){let{onError:a,onEvent:k,catchUnexpected:v,workflowId:h,context:I}=n&&typeof n=="object"?n:{},l=h??crypto.randomUUID(),R=!a&&!v,c=r=>{k?.(r,I)},m=D,_=r=>M(r),O=(r,f)=>R?f?.origin==="result"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:r,...f.resultCause!==void 0?{cause:f.resultCause}:{}}}:f?.origin==="throw"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"throw",error:r,thrown:f.thrown}}:{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:r}}:r,P=r=>r.origin==="result"?r.resultCause:r.thrown,w=r=>({type:"UNEXPECTED_ERROR",cause:r.meta.origin==="result"?{type:"STEP_FAILURE",origin:"result",error:r.error,...r.meta.resultCause!==void 0?{cause:r.meta.resultCause}:{}}:{type:"STEP_FAILURE",origin:"throw",error:r.error,thrown:r.meta.thrown}});try{let r=(d,x)=>(async()=>{let{name:t,key:u}=G(x),y=k?performance.now():0;k&&c({type:"step_start",workflowId:l,stepKey:u,name:t,ts:Date.now()});let i;try{i=await(typeof d=="function"?d():d)}catch(s){let E=performance.now()-y;if(_(s))throw c({type:"step_aborted",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:E}),s;if(v){let g;try{g=v(s)}catch(V){throw X(V)}throw c({type:"step_error",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:E,error:g}),u&&c({type:"step_complete",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:E,result:T(g,{cause:s}),meta:{origin:"throw",thrown:s}}),a?.(g,t),m(g,{origin:"throw",thrown:s})}else{let g={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:s}};throw c({type:"step_error",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:E,error:g}),u&&c({type:"step_complete",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:E,result:T(g,{cause:s}),meta:{origin:"throw",thrown:s}}),s}}let o=performance.now()-y;if(i.ok)return c({type:"step_success",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:o}),u&&c({type:"step_complete",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:o,result:i}),i.value;let p=O(i.error,{origin:"result",resultCause:i.cause});throw c({type:"step_error",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:o,error:p}),u&&c({type:"step_complete",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:o,result:i,meta:{origin:"result",resultCause:i.cause}}),a?.(i.error,t),m(i.error,{origin:"result",resultCause:i.cause})})();r.try=(d,x)=>{let t=x.name,u=x.key,A="error"in x?()=>x.error:x.onError,y=k;return(async()=>{let i=y?performance.now():0;k&&c({type:"step_start",workflowId:l,stepKey:u,name:t,ts:Date.now()});try{let o=await d(),p=performance.now()-i;return c({type:"step_success",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:p}),u&&c({type:"step_complete",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:p,result:S(o)}),o}catch(o){let p=A(o),s=performance.now()-i,E=O(p,{origin:"throw",thrown:o});throw c({type:"step_error",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:s,error:E}),u&&c({type:"step_complete",workflowId:l,stepKey:u,name:t,ts:Date.now(),durationMs:s,result:T(p,{cause:o}),meta:{origin:"throw",thrown:o}}),a?.(p,t),m(p,{origin:"throw",thrown:o})}})()};let C=await e(r);return S(C)}catch(r){if(J(r))throw r.thrown;if(_(r)){let C=P(r.meta);if(v||a)return T(r.error,{cause:C});if(L(r.error))return T(r.error,{cause:C});let d=w(r);return T(d,{cause:C})}if(v){let C=v(r);return a?.(C,"unexpected"),T(C,{cause:r})}let f={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:r}};return a?.(f,"unexpected"),T(f,{cause:r})}}U.strict=(e,n)=>U(e,n);function H(){let e=new Map;return{handleEvent:n=>{W(n)&&e.set(n.stepKey,{result:n.result,meta:n.meta})},getState:()=>({steps:new Map(e)}),clear:()=>e.clear()}}function Y(e){return typeof e=="object"&&e!==null&&e.__cachedMeta===!0}function b(e,n,a){return T(e,{cause:{__cachedMeta:!0,originalCause:a,meta:n}})}function N(e){return Y(e)?e.meta:{origin:"result",resultCause:e}}function $(e,n){async function a(k,v){let h=typeof v=="function",I=h?k:void 0,l=h?v:k,R=crypto.randomUUID(),c=n?.createContext?.(),m=t=>{n?.onEvent?.(t,c)},_=Date.now(),O=performance.now();m({type:"workflow_start",workflowId:R,ts:_});let P=n?.resumeState,w=n?.cache;if(P&&!w&&(w=new Map),P&&w){let t=typeof P=="function"?await P():P;for(let[u,A]of t.steps){let{result:y,meta:i}=A;if(y.ok)w.set(u,y);else{let o=i??{origin:"result",resultCause:y.cause};w.set(u,b(y.error,o,y.cause))}}}let r=t=>typeof t=="string"?{name:t}:t??{},f=t=>{if(!w)return t;let u=async(A,y)=>{let{name:i,key:o}=r(y);if(o&&w.has(o)){m({type:"step_cache_hit",workflowId:R,stepKey:o,name:i,ts:Date.now()});let s=w.get(o);if(s.ok)return s.value;let E=N(s.cause);throw D(s.error,E)}o&&m({type:"step_cache_miss",workflowId:R,stepKey:o,name:i,ts:Date.now()});let p=typeof A=="function"?A:()=>A;try{let s=await t(p,y);return o&&w.set(o,S(s)),s}catch(s){if(o&&M(s)){let E=s,g=E.meta.origin==="result"?E.meta.resultCause:E.meta.thrown;w.set(o,b(E.error,E.meta,g))}throw s}};return u.try=async(A,y)=>{let{name:i,key:o}=y;if(o&&w.has(o)){m({type:"step_cache_hit",workflowId:R,stepKey:o,name:i,ts:Date.now()});let p=w.get(o);if(p.ok)return p.value;let s=N(p.cause);throw D(p.error,s)}o&&m({type:"step_cache_miss",workflowId:R,stepKey:o,name:i,ts:Date.now()});try{let p=await t.try(A,y);return o&&w.set(o,S(p)),p}catch(p){if(o&&M(p)){let s=p,E=s.meta.origin==="result"?s.meta.resultCause:s.meta.thrown;w.set(o,b(s.error,s.meta,E))}throw p}},u},C=h?t=>l(f(t),e,I):t=>l(f(t),e),d;if(n?.strict===!0){let t=n;d=await U.strict(C,{onError:t.onError,onEvent:t.onEvent,catchUnexpected:t.catchUnexpected,workflowId:R,context:c})}else{let t=n;d=await U(C,{onError:t?.onError??(()=>{}),onEvent:t?.onEvent,workflowId:R,context:c})}let x=performance.now()-O;return d.ok?m({type:"workflow_success",workflowId:R,ts:Date.now(),durationMs:x}):m({type:"workflow_error",workflowId:R,ts:Date.now(),durationMs:x,error:d.error}),d}return a}function W(e){return e.type==="step_complete"}function K(e){return typeof e=="object"&&e!==null&&e.type==="PENDING_APPROVAL"}function z(e){return typeof e=="object"&&e!==null&&e.type==="APPROVAL_REJECTED"}function Q(e,n){return T({type:"PENDING_APPROVAL",stepKey:e,reason:n?.reason,metadata:n?.metadata})}function Z(e){return async()=>{let n=await e.checkApproval();switch(n.status){case"pending":return T({type:"PENDING_APPROVAL",stepKey:e.key,reason:e.pendingReason,metadata:e.metadata});case"rejected":return T({type:"APPROVAL_REJECTED",stepKey:e.key,reason:n.reason});case"approved":return S(n.value)}}}function ee(e,n){let a=new Map(e.steps);return a.set(n.stepKey,{result:S(n.value)}),{steps:a}}function ne(e,n){let a=new Map(e.steps);return a.delete(n),{steps:a}}function te(e,n){let a=e.steps.get(n);return!a||a.result.ok?!1:K(a.result.error)}function re(e){let n=[];for(let[a,k]of e.steps)!k.result.ok&&K(k.result.error)&&n.push(a);return n}function oe(){let e=new Map;return{handleEvent:n=>{W(n)&&e.set(n.stepKey,{result:n.result,meta:n.meta})},getState:()=>({steps:new Map(e)}),clear:()=>e.clear(),hasPendingApprovals:()=>{for(let n of e.values())if(!n.result.ok&&K(n.result.error))return!0;return!1},getPendingApprovals:()=>{let n=[];for(let[a,k]of e)!k.result.ok&&K(k.result.error)&&n.push({stepKey:a,error:k.result.error});return n},injectApproval:(n,a)=>(e.set(n,{result:S(a)}),{steps:new Map(e)})}}export{ne as clearStep,Z as createApprovalStep,oe as createHITLCollector,H as createStepCollector,$ as createWorkflow,re as getPendingApprovals,te as hasPendingApproval,ee as injectApproval,z as isApprovalRejected,K as isPendingApproval,W as isStepComplete,Q as pendingApproval};
1
+ var v=e=>({ok:!0,value:e}),x=(e,s)=>({ok:!1,error:e,...s?.cause!==void 0?{cause:s.cause}:{}});var Y=e=>typeof e=="object"&&e!==null&&e.type==="UNEXPECTED_ERROR",L=Symbol("early-exit");function M(e,s){return{[L]:!0,error:e,meta:s}}function K(e){return typeof e=="object"&&e!==null&&e[L]===!0}var X=Symbol("mapper-exception");function $(e){return{[X]:!0,thrown:e}}function q(e){return typeof e=="object"&&e!==null&&e[X]===!0}function B(e){return typeof e=="string"?{name:e}:e??{}}async function O(e,s){let{onError:l,onEvent:T,catchUnexpected:h,workflowId:U,context:W}=s&&typeof s=="object"?s:{},E=U??crypto.randomUUID(),g=!l&&!h,m=[],A=0,D=u=>u??`step_${++A}`,y=u=>{if(u.type==="step_success"){let C=u.stepId;for(let p=m.length-1;p>=0;p--){let c=m[p];if(c.type==="race"&&!c.winnerId){c.winnerId=C;break}}}T?.(u,W)},S=M,k=u=>K(u),I=(u,C)=>g?C?.origin==="result"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:u,...C.resultCause!==void 0?{cause:C.resultCause}:{}}}:C?.origin==="throw"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"throw",error:u,thrown:C.thrown}}:{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:u}}:u,b=u=>u.origin==="result"?u.resultCause:u.thrown,F=u=>({type:"UNEXPECTED_ERROR",cause:u.meta.origin==="result"?{type:"STEP_FAILURE",origin:"result",error:u.error,...u.meta.resultCause!==void 0?{cause:u.meta.resultCause}:{}}:{type:"STEP_FAILURE",origin:"throw",error:u.error,thrown:u.meta.thrown}});try{let u=(c,w)=>(async()=>{let{name:r,key:o}=B(w),t=D(o),n=T?performance.now():0;T&&y({type:"step_start",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now()});let a;try{a=await(typeof c=="function"?c():c)}catch(R){let P=performance.now()-n;if(k(R))throw y({type:"step_aborted",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now(),durationMs:P}),R;if(h){let _;try{_=h(R)}catch(G){throw $(G)}throw y({type:"step_error",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now(),durationMs:P,error:_}),o&&y({type:"step_complete",workflowId:E,stepKey:o,name:r,ts:Date.now(),durationMs:P,result:x(_,{cause:R}),meta:{origin:"throw",thrown:R}}),l?.(_,r),S(_,{origin:"throw",thrown:R})}else{let _={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:R}};throw y({type:"step_error",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now(),durationMs:P,error:_}),o&&y({type:"step_complete",workflowId:E,stepKey:o,name:r,ts:Date.now(),durationMs:P,result:x(_,{cause:R}),meta:{origin:"throw",thrown:R}}),R}}let d=performance.now()-n;if(a.ok)return y({type:"step_success",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now(),durationMs:d}),o&&y({type:"step_complete",workflowId:E,stepKey:o,name:r,ts:Date.now(),durationMs:d,result:a}),a.value;let f=I(a.error,{origin:"result",resultCause:a.cause});throw y({type:"step_error",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now(),durationMs:d,error:f}),o&&y({type:"step_complete",workflowId:E,stepKey:o,name:r,ts:Date.now(),durationMs:d,result:a,meta:{origin:"result",resultCause:a.cause}}),l?.(a.error,r),S(a.error,{origin:"result",resultCause:a.cause})})();u.try=(c,w)=>{let r=w.name,o=w.key,t=D(o),i="error"in w?()=>w.error:w.onError,n=T;return(async()=>{let a=n?performance.now():0;T&&y({type:"step_start",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now()});try{let d=await c(),f=performance.now()-a;return y({type:"step_success",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now(),durationMs:f}),o&&y({type:"step_complete",workflowId:E,stepKey:o,name:r,ts:Date.now(),durationMs:f,result:v(d)}),d}catch(d){let f=i(d),R=performance.now()-a,P=I(f,{origin:"throw",thrown:d});throw y({type:"step_error",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now(),durationMs:R,error:P}),o&&y({type:"step_complete",workflowId:E,stepKey:o,name:r,ts:Date.now(),durationMs:R,result:x(f,{cause:d}),meta:{origin:"throw",thrown:d}}),l?.(f,r),S(f,{origin:"throw",thrown:d})}})()},u.fromResult=(c,w)=>{let r=w.name,o=w.key,t=D(o),i="error"in w?()=>w.error:w.onError,n=T;return(async()=>{let a=n?performance.now():0;T&&y({type:"step_start",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now()});let d=await c();if(d.ok){let f=performance.now()-a;return y({type:"step_success",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now(),durationMs:f}),o&&y({type:"step_complete",workflowId:E,stepKey:o,name:r,ts:Date.now(),durationMs:f,result:v(d.value)}),d.value}else{let f=i(d.error),R=performance.now()-a,P=I(f,{origin:"result",resultCause:d.error});throw y({type:"step_error",workflowId:E,stepId:t,stepKey:o,name:r,ts:Date.now(),durationMs:R,error:P}),o&&y({type:"step_complete",workflowId:E,stepKey:o,name:r,ts:Date.now(),durationMs:R,result:x(f,{cause:d.error}),meta:{origin:"result",resultCause:d.error}}),l?.(f,r),S(f,{origin:"result",resultCause:d.error})}})()},u.parallel=(c,w)=>{let r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),t=!1;m.push({scopeId:r,type:"parallel"});let i=()=>{if(t)return;t=!0;let n=m.findIndex(a=>a.scopeId===r);n!==-1&&m.splice(n,1),y({type:"scope_end",workflowId:E,scopeId:r,ts:Date.now(),durationMs:performance.now()-o})};y({type:"scope_start",workflowId:E,scopeId:r,scopeType:"parallel",name:c,ts:Date.now()});try{let n=await w();if(i(),!n.ok)throw l?.(n.error,c),S(n.error,{origin:"result",resultCause:n.cause});return n.value}catch(n){throw i(),n}})()},u.race=(c,w)=>{let r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),t=!1,i={scopeId:r,type:"race",winnerId:void 0};m.push(i);let n=()=>{if(t)return;t=!0;let a=m.findIndex(d=>d.scopeId===r);a!==-1&&m.splice(a,1),y({type:"scope_end",workflowId:E,scopeId:r,ts:Date.now(),durationMs:performance.now()-o,winnerId:i.winnerId})};y({type:"scope_start",workflowId:E,scopeId:r,scopeType:"race",name:c,ts:Date.now()});try{let a=await w();if(n(),!a.ok)throw l?.(a.error,c),S(a.error,{origin:"result",resultCause:a.cause});return a.value}catch(a){throw n(),a}})()},u.allSettled=(c,w)=>{let r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),t=!1;m.push({scopeId:r,type:"allSettled"});let i=()=>{if(t)return;t=!0;let n=m.findIndex(a=>a.scopeId===r);n!==-1&&m.splice(n,1),y({type:"scope_end",workflowId:E,scopeId:r,ts:Date.now(),durationMs:performance.now()-o})};y({type:"scope_start",workflowId:E,scopeId:r,scopeType:"allSettled",name:c,ts:Date.now()});try{let n=await w();if(i(),!n.ok)throw l?.(n.error,c),S(n.error,{origin:"result",resultCause:n.cause});return n.value}catch(n){throw i(),n}})()};let p=await e(u);return v(p)}catch(u){if(q(u))throw u.thrown;if(k(u)){let p=b(u.meta);if(h||l)return x(u.error,{cause:p});if(Y(u.error))return x(u.error,{cause:p});let c=F(u);return x(c,{cause:p})}if(h){let p=h(u);return l?.(p,"unexpected"),x(p,{cause:u})}let C={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:u}};return l?.(C,"unexpected"),x(C,{cause:u})}}O.strict=(e,s)=>O(e,s);function Z(){let e=new Map;return{handleEvent:s=>{J(s)&&e.set(s.stepKey,{result:s.result,meta:s.meta})},getState:()=>({steps:new Map(e)}),clear:()=>e.clear()}}function H(e){return typeof e=="object"&&e!==null&&e.__cachedMeta===!0}function N(e,s,l){return x(e,{cause:{__cachedMeta:!0,originalCause:l,meta:s}})}function V(e){return H(e)?e.meta:{origin:"result",resultCause:e}}function ee(e,s){async function l(T,h){let U=typeof h=="function",W=U?T:void 0,E=U?h:T,g=crypto.randomUUID(),m=s?.createContext?.(),A=p=>{s?.onEvent?.(p,m)},D=Date.now(),y=performance.now();A({type:"workflow_start",workflowId:g,ts:D});let S=s?.resumeState,k=s?.cache;if(S&&!k&&(k=new Map),S&&k){let p=typeof S=="function"?await S():S;for(let[c,w]of p.steps){let{result:r,meta:o}=w;if(r.ok)k.set(c,r);else{let t=o??{origin:"result",resultCause:r.cause};k.set(c,N(r.error,t,r.cause))}}}let I=p=>typeof p=="string"?{name:p}:p??{},b=p=>{if(!k)return p;let c=async(w,r)=>{let{name:o,key:t}=I(r);if(t&&k.has(t)){A({type:"step_cache_hit",workflowId:g,stepKey:t,name:o,ts:Date.now()});let n=k.get(t);if(n.ok)return n.value;let a=V(n.cause);throw M(n.error,a)}t&&A({type:"step_cache_miss",workflowId:g,stepKey:t,name:o,ts:Date.now()});let i=typeof w=="function"?w:()=>w;try{let n=await p(i,r);return t&&k.set(t,v(n)),n}catch(n){if(t&&K(n)){let a=n,d=a.meta.origin==="result"?a.meta.resultCause:a.meta.thrown;k.set(t,N(a.error,a.meta,d))}throw n}};return c.try=async(w,r)=>{let{name:o,key:t}=r;if(t&&k.has(t)){A({type:"step_cache_hit",workflowId:g,stepKey:t,name:o,ts:Date.now()});let i=k.get(t);if(i.ok)return i.value;let n=V(i.cause);throw M(i.error,n)}t&&A({type:"step_cache_miss",workflowId:g,stepKey:t,name:o,ts:Date.now()});try{let i=await p.try(w,r);return t&&k.set(t,v(i)),i}catch(i){if(t&&K(i)){let n=i,a=n.meta.origin==="result"?n.meta.resultCause:n.meta.thrown;k.set(t,N(n.error,n.meta,a))}throw i}},c.fromResult=async(w,r)=>{let{name:o,key:t}=r;if(t&&k.has(t)){A({type:"step_cache_hit",workflowId:g,stepKey:t,name:o,ts:Date.now()});let i=k.get(t);if(i.ok)return i.value;let n=V(i.cause);throw M(i.error,n)}t&&A({type:"step_cache_miss",workflowId:g,stepKey:t,name:o,ts:Date.now()});try{let i=await p.fromResult(w,r);return t&&k.set(t,v(i)),i}catch(i){if(t&&K(i)){let n=i,a=n.meta.origin==="result"?n.meta.resultCause:n.meta.thrown;k.set(t,N(n.error,n.meta,a))}throw i}},c.parallel=p.parallel,c.race=p.race,c.allSettled=p.allSettled,c},F=U?p=>E(b(p),e,W):p=>E(b(p),e),u;if(s?.strict===!0){let p=s;u=await O.strict(F,{onError:p.onError,onEvent:p.onEvent,catchUnexpected:p.catchUnexpected,workflowId:g,context:m})}else{let p=s;u=await O(F,{onError:p?.onError??(()=>{}),onEvent:p?.onEvent,workflowId:g,context:m})}let C=performance.now()-y;return u.ok?A({type:"workflow_success",workflowId:g,ts:Date.now(),durationMs:C}):A({type:"workflow_error",workflowId:g,ts:Date.now(),durationMs:C,error:u.error}),u}return l}function J(e){return e.type==="step_complete"}function j(e){return typeof e=="object"&&e!==null&&e.type==="PENDING_APPROVAL"}function ne(e){return typeof e=="object"&&e!==null&&e.type==="APPROVAL_REJECTED"}function te(e,s){return x({type:"PENDING_APPROVAL",stepKey:e,reason:s?.reason,metadata:s?.metadata})}function re(e){return async()=>{let s=await e.checkApproval();switch(s.status){case"pending":return x({type:"PENDING_APPROVAL",stepKey:e.key,reason:e.pendingReason,metadata:e.metadata});case"rejected":return x({type:"APPROVAL_REJECTED",stepKey:e.key,reason:s.reason});case"approved":return v(s.value)}}}function se(e,s){let l=new Map(e.steps);return l.set(s.stepKey,{result:v(s.value)}),{steps:l}}function oe(e,s){let l=new Map(e.steps);return l.delete(s),{steps:l}}function ue(e,s){let l=e.steps.get(s);return!l||l.result.ok?!1:j(l.result.error)}function ae(e){let s=[];for(let[l,T]of e.steps)!T.result.ok&&j(T.result.error)&&s.push(l);return s}function pe(){let e=new Map;return{handleEvent:s=>{J(s)&&e.set(s.stepKey,{result:s.result,meta:s.meta})},getState:()=>({steps:new Map(e)}),clear:()=>e.clear(),hasPendingApprovals:()=>{for(let s of e.values())if(!s.result.ok&&j(s.result.error))return!0;return!1},getPendingApprovals:()=>{let s=[];for(let[l,T]of e)!T.result.ok&&j(T.result.error)&&s.push({stepKey:l,error:T.result.error});return s},injectApproval:(s,l)=>(e.set(s,{result:v(l)}),{steps:new Map(e)})}}export{oe as clearStep,re as createApprovalStep,pe as createHITLCollector,Z as createStepCollector,ee as createWorkflow,ae as getPendingApprovals,ue as hasPendingApproval,se as injectApproval,ne as isApprovalRejected,j as isPendingApproval,J as isStepComplete,te as pendingApproval};
2
2
  //# sourceMappingURL=workflow.js.map