@jagreehal/workflow 1.2.0 → 1.3.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/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +20 -2
- package/dist/core.d.ts +20 -2
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +3 -1
- package/dist/workflow.d.ts +3 -1
- package/dist/workflow.js.map +1 -1
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var X=Object.defineProperty;var Ue=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var De=Object.prototype.hasOwnProperty;var Oe=(e,n)=>{for(var t in n)X(e,t,{get:n[t],enumerable:!0})},Ie=(e,n,t,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let w of _e(n))!De.call(e,w)&&w!==t&&X(e,w,{get:()=>n[w],enumerable:!(p=Ue(n,w))||p.enumerable});return e};var Me=e=>Ie(X({},"__esModule",{value:!0}),e);var je={};Oe(je,{UnwrapError:()=>K,all:()=>le,allAsync:()=>Ee,allSettled:()=>ye,allSettledAsync:()=>Te,andThen:()=>ue,any:()=>de,anyAsync:()=>ke,clearStep:()=>ge,createApprovalStep:()=>xe,createHITLCollector:()=>he,createStepCollector:()=>fe,createWorkflow:()=>Re,err:()=>y,from:()=>Z,fromNullable:()=>te,fromPromise:()=>ee,getPendingApprovals:()=>ve,hasPendingApproval:()=>Ae,injectApproval:()=>Se,isApprovalRejected:()=>me,isErr:()=>$,isOk:()=>Y,isPendingApproval:()=>I,isStepComplete:()=>L,isUnexpectedError:()=>J,map:()=>re,mapError:()=>se,mapErrorTry:()=>ce,mapTry:()=>ie,match:()=>oe,ok:()=>R,partition:()=>we,pendingApproval:()=>Ce,run:()=>O,tap:()=>ae,tapError:()=>pe,tryAsync:()=>ne,unwrap:()=>B,unwrapOr:()=>z,unwrapOrElse:()=>Q});module.exports=Me(je);var R=e=>({ok:!0,value:e}),y=(e,n)=>({ok:!1,error:e,...n?.cause!==void 0?{cause:n.cause}:{}}),Y=e=>e.ok,$=e=>!e.ok,J=e=>typeof e=="object"&&e!==null&&e.type==="UNEXPECTED_ERROR",H=Symbol("early-exit");function F(e,n){return{[H]:!0,error:e,meta:n}}function W(e){return typeof e=="object"&&e!==null&&e[H]===!0}var q=Symbol("mapper-exception");function be(e){return{[q]:!0,thrown:e}}function Ke(e){return typeof e=="object"&&e!==null&&e[q]===!0}function Fe(e){return typeof e=="string"?{name:e}:e??{}}async function O(e,n){let{onError:t,onEvent:p,catchUnexpected:w,workflowId:x,context:v}=n&&typeof n=="object"?n:{},E=x??crypto.randomUUID(),h=!t&&!w,g=[],U=0,M=a=>a??`step_${++U}`,T=a=>{if(a.type==="step_success"){let A=a.stepId;for(let c=g.length-1;c>=0;c--){let d=g[c];if(d.type==="race"&&!d.winnerId){d.winnerId=A;break}}}p?.(a,v)},P=F,m=a=>W(a),b=(a,A)=>h?A?.origin==="result"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:a,...A.resultCause!==void 0?{cause:A.resultCause}:{}}}:A?.origin==="throw"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"throw",error:a,thrown:A.thrown}}:{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:a}}:a,j=a=>a.origin==="result"?a.resultCause:a.thrown,N=a=>({type:"UNEXPECTED_ERROR",cause:a.meta.origin==="result"?{type:"STEP_FAILURE",origin:"result",error:a.error,...a.meta.resultCause!==void 0?{cause:a.meta.resultCause}:{}}:{type:"STEP_FAILURE",origin:"throw",error:a.error,thrown:a.meta.thrown}});try{let a=(d,k)=>(async()=>{let{name:o,key:u}=Fe(k),s=M(u),r=p?performance.now():0;p&&T({type:"step_start",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now()});let i;try{i=await(typeof d=="function"?d():d)}catch(S){let _=performance.now()-r;if(m(S))throw T({type:"step_aborted",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:_}),S;if(w){let D;try{D=w(S)}catch(Pe){throw be(Pe)}throw T({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:_,error:D}),u&&T({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:_,result:y(D,{cause:S}),meta:{origin:"throw",thrown:S}}),t?.(D,o),P(D,{origin:"throw",thrown:S})}else{let D={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:S}};throw T({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:_,error:D}),u&&T({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:_,result:y(D,{cause:S}),meta:{origin:"throw",thrown:S}}),S}}let f=performance.now()-r;if(i.ok)return T({type:"step_success",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:f}),u&&T({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:f,result:i}),i.value;let C=b(i.error,{origin:"result",resultCause:i.cause});throw T({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:f,error:C}),u&&T({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:f,result:i,meta:{origin:"result",resultCause:i.cause}}),t?.(i.error,o),P(i.error,{origin:"result",resultCause:i.cause})})();a.try=(d,k)=>{let o=k.name,u=k.key,s=M(u),l="error"in k?()=>k.error:k.onError,r=p;return(async()=>{let i=r?performance.now():0;p&&T({type:"step_start",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now()});try{let f=await d(),C=performance.now()-i;return T({type:"step_success",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:C}),u&&T({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:C,result:R(f)}),f}catch(f){let C=l(f),S=performance.now()-i,_=b(C,{origin:"throw",thrown:f});throw T({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:S,error:_}),u&&T({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:S,result:y(C,{cause:f}),meta:{origin:"throw",thrown:f}}),t?.(C,o),P(C,{origin:"throw",thrown:f})}})()},a.fromResult=(d,k)=>{let o=k.name,u=k.key,s=M(u),l="error"in k?()=>k.error:k.onError,r=p;return(async()=>{let i=r?performance.now():0;p&&T({type:"step_start",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now()});let f=await d();if(f.ok){let C=performance.now()-i;return T({type:"step_success",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:C}),u&&T({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:C,result:R(f.value)}),f.value}else{let C=l(f.error),S=performance.now()-i,_=b(C,{origin:"result",resultCause:f.error});throw T({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:S,error:_}),u&&T({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:S,result:y(C,{cause:f.error}),meta:{origin:"result",resultCause:f.error}}),t?.(C,o),P(C,{origin:"result",resultCause:f.error})}})()},a.parallel=(d,k)=>{let o=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let u=performance.now(),s=!1;g.push({scopeId:o,type:"parallel"});let l=()=>{if(s)return;s=!0;let r=g.findIndex(i=>i.scopeId===o);r!==-1&&g.splice(r,1),T({type:"scope_end",workflowId:E,scopeId:o,ts:Date.now(),durationMs:performance.now()-u})};T({type:"scope_start",workflowId:E,scopeId:o,scopeType:"parallel",name:d,ts:Date.now()});try{let r=await k();if(l(),!r.ok)throw t?.(r.error,d),P(r.error,{origin:"result",resultCause:r.cause});return r.value}catch(r){throw l(),r}})()},a.race=(d,k)=>{let o=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let u=performance.now(),s=!1,l={scopeId:o,type:"race",winnerId:void 0};g.push(l);let r=()=>{if(s)return;s=!0;let i=g.findIndex(f=>f.scopeId===o);i!==-1&&g.splice(i,1),T({type:"scope_end",workflowId:E,scopeId:o,ts:Date.now(),durationMs:performance.now()-u,winnerId:l.winnerId})};T({type:"scope_start",workflowId:E,scopeId:o,scopeType:"race",name:d,ts:Date.now()});try{let i=await k();if(r(),!i.ok)throw t?.(i.error,d),P(i.error,{origin:"result",resultCause:i.cause});return i.value}catch(i){throw r(),i}})()},a.allSettled=(d,k)=>{let o=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let u=performance.now(),s=!1;g.push({scopeId:o,type:"allSettled"});let l=()=>{if(s)return;s=!0;let r=g.findIndex(i=>i.scopeId===o);r!==-1&&g.splice(r,1),T({type:"scope_end",workflowId:E,scopeId:o,ts:Date.now(),durationMs:performance.now()-u})};T({type:"scope_start",workflowId:E,scopeId:o,scopeType:"allSettled",name:d,ts:Date.now()});try{let r=await k();if(l(),!r.ok)throw t?.(r.error,d),P(r.error,{origin:"result",resultCause:r.cause});return r.value}catch(r){throw l(),r}})()};let c=await e(a);return R(c)}catch(a){if(Ke(a))throw a.thrown;if(m(a)){let c=j(a.meta);if(w||t)return y(a.error,{cause:c});if(J(a.error))return y(a.error,{cause:c});let d=N(a);return y(d,{cause:c})}if(w){let c=w(a);return t?.(c,"unexpected"),y(c,{cause:a})}let A={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:a}};return t?.(A,"unexpected"),y(A,{cause:a})}}O.strict=(e,n)=>O(e,n);var K=class extends Error{constructor(t,p){super(`Unwrap called on an error result: ${String(t)}`);this.error=t;this.cause=p;this.name="UnwrapError"}},B=e=>{if(e.ok)return e.value;throw new K(e.error,e.cause)},z=(e,n)=>e.ok?e.value:n,Q=(e,n)=>e.ok?e.value:n(e.error,e.cause);function Z(e,n){try{return R(e())}catch(t){return n?y(n(t),{cause:t}):y(t)}}async function ee(e,n){try{return R(await e)}catch(t){return n?y(n(t),{cause:t}):y(t)}}async function ne(e,n){try{return R(await e())}catch(t){return n?y(n(t),{cause:t}):y(t)}}function te(e,n){return e!=null?R(e):y(n())}function re(e,n){return e.ok?R(n(e.value)):e}function se(e,n){return e.ok?e:y(n(e.error),{cause:e.cause})}function oe(e,n){return e.ok?n.ok(e.value):n.err(e.error,e.cause)}function ue(e,n){return e.ok?n(e.value):e}function ae(e,n){return e.ok&&n(e.value),e}function pe(e,n){return e.ok||n(e.error,e.cause),e}function ie(e,n,t){if(!e.ok)return e;try{return R(n(e.value))}catch(p){return y(t(p),{cause:p})}}function ce(e,n,t){if(e.ok)return e;try{return y(n(e.error),{cause:e.cause})}catch(p){return y(t(p),{cause:p})}}function le(e){let n=[];for(let t of e){if(!t.ok)return t;n.push(t.value)}return R(n)}async function Ee(e){return e.length===0?R([]):new Promise(n=>{let t=!1,p=e.length,w=new Array(e.length);for(let x=0;x<e.length;x++){let v=x;Promise.resolve(e[v]).catch(E=>y({type:"PROMISE_REJECTED",cause:E},{cause:{type:"PROMISE_REJECTION",reason:E}})).then(E=>{if(!t){if(!E.ok){t=!0,n(E);return}w[v]=E.value,p--,p===0&&n(R(w))}})}})}function ye(e){let n=[],t=[];for(let p of e)p.ok?n.push(p.value):t.push({error:p.error,cause:p.cause});return t.length>0?y(t):R(n)}function we(e){let n=[],t=[];for(let p of e)p.ok?n.push(p.value):t.push(p.error);return{values:n,errors:t}}function de(e){if(e.length===0)return y({type:"EMPTY_INPUT",message:"any() requires at least one Result"});let n=null;for(let t of e){if(t.ok)return t;n||(n=t)}return n}async function ke(e){return e.length===0?y({type:"EMPTY_INPUT",message:"anyAsync() requires at least one Result"}):new Promise(n=>{let t=!1,p=e.length,w=null;for(let x of e)Promise.resolve(x).catch(v=>y({type:"PROMISE_REJECTED",cause:v},{cause:{type:"PROMISE_REJECTION",reason:v}})).then(v=>{if(!t){if(v.ok){t=!0,n(v);return}w||(w=v),p--,p===0&&n(w)}})})}async function Te(e){let n=await Promise.all(e.map(w=>Promise.resolve(w).then(x=>({status:"result",result:x})).catch(x=>({status:"rejected",error:{type:"PROMISE_REJECTED",cause:x},cause:{type:"PROMISE_REJECTION",reason:x}})))),t=[],p=[];for(let w of n)w.status==="rejected"?p.push({error:w.error,cause:w.cause}):w.result.ok?t.push(w.result.value):p.push({error:w.result.error,cause:w.result.cause});return p.length>0?y(p):R(t)}function fe(){let e=new Map;return{handleEvent:n=>{L(n)&&e.set(n.stepKey,{result:n.result,meta:n.meta})},getState:()=>({steps:new Map(e)}),clear:()=>e.clear()}}function We(e){return typeof e=="object"&&e!==null&&e.__cachedMeta===!0}function V(e,n,t){return y(e,{cause:{__cachedMeta:!0,originalCause:t,meta:n}})}function G(e){return We(e)?e.meta:{origin:"result",resultCause:e}}function Re(e,n){async function t(p,w){let x=typeof w=="function",v=x?p:void 0,E=x?w:p,h=crypto.randomUUID(),g=n?.createContext?.(),U=c=>{n?.onEvent?.(c,g)},M=Date.now(),T=performance.now();U({type:"workflow_start",workflowId:h,ts:M});let P=n?.resumeState,m=n?.cache;if(P&&!m&&(m=new Map),P&&m){let c=typeof P=="function"?await P():P;for(let[d,k]of c.steps){let{result:o,meta:u}=k;if(o.ok)m.set(d,o);else{let s=u??{origin:"result",resultCause:o.cause};m.set(d,V(o.error,s,o.cause))}}}let b=c=>typeof c=="string"?{name:c}:c??{},j=c=>{if(!m)return c;let d=async(k,o)=>{let{name:u,key:s}=b(o);if(s&&m.has(s)){U({type:"step_cache_hit",workflowId:h,stepKey:s,name:u,ts:Date.now()});let r=m.get(s);if(r.ok)return r.value;let i=G(r.cause);throw F(r.error,i)}s&&U({type:"step_cache_miss",workflowId:h,stepKey:s,name:u,ts:Date.now()});let l=typeof k=="function"?k:()=>k;try{let r=await c(l,o);return s&&m.set(s,R(r)),r}catch(r){if(s&&W(r)){let i=r,f=i.meta.origin==="result"?i.meta.resultCause:i.meta.thrown;m.set(s,V(i.error,i.meta,f))}throw r}};return d.try=async(k,o)=>{let{name:u,key:s}=o;if(s&&m.has(s)){U({type:"step_cache_hit",workflowId:h,stepKey:s,name:u,ts:Date.now()});let l=m.get(s);if(l.ok)return l.value;let r=G(l.cause);throw F(l.error,r)}s&&U({type:"step_cache_miss",workflowId:h,stepKey:s,name:u,ts:Date.now()});try{let l=await c.try(k,o);return s&&m.set(s,R(l)),l}catch(l){if(s&&W(l)){let r=l,i=r.meta.origin==="result"?r.meta.resultCause:r.meta.thrown;m.set(s,V(r.error,r.meta,i))}throw l}},d.fromResult=async(k,o)=>{let{name:u,key:s}=o;if(s&&m.has(s)){U({type:"step_cache_hit",workflowId:h,stepKey:s,name:u,ts:Date.now()});let l=m.get(s);if(l.ok)return l.value;let r=G(l.cause);throw F(l.error,r)}s&&U({type:"step_cache_miss",workflowId:h,stepKey:s,name:u,ts:Date.now()});try{let l=await c.fromResult(k,o);return s&&m.set(s,R(l)),l}catch(l){if(s&&W(l)){let r=l,i=r.meta.origin==="result"?r.meta.resultCause:r.meta.thrown;m.set(s,V(r.error,r.meta,i))}throw l}},d.parallel=c.parallel,d.race=c.race,d.allSettled=c.allSettled,d},N=x?c=>E(j(c),e,v):c=>E(j(c),e),a;if(n?.strict===!0){let c=n;a=await O.strict(N,{onError:c.onError,onEvent:c.onEvent,catchUnexpected:c.catchUnexpected,workflowId:h,context:g})}else{let c=n;a=await O(N,{onError:c?.onError??(()=>{}),onEvent:c?.onEvent,workflowId:h,context:g})}let A=performance.now()-T;return a.ok?U({type:"workflow_success",workflowId:h,ts:Date.now(),durationMs:A}):U({type:"workflow_error",workflowId:h,ts:Date.now(),durationMs:A,error:a.error}),a}return t}function L(e){return e.type==="step_complete"}function I(e){return typeof e=="object"&&e!==null&&e.type==="PENDING_APPROVAL"}function me(e){return typeof e=="object"&&e!==null&&e.type==="APPROVAL_REJECTED"}function Ce(e,n){return y({type:"PENDING_APPROVAL",stepKey:e,reason:n?.reason,metadata:n?.metadata})}function xe(e){return async()=>{let n=await e.checkApproval();switch(n.status){case"pending":return y({type:"PENDING_APPROVAL",stepKey:e.key,reason:e.pendingReason,metadata:e.metadata});case"rejected":return y({type:"APPROVAL_REJECTED",stepKey:e.key,reason:n.reason});case"approved":return R(n.value)}}}function Se(e,n){let t=new Map(e.steps);return t.set(n.stepKey,{result:R(n.value)}),{steps:t}}function ge(e,n){let t=new Map(e.steps);return t.delete(n),{steps:t}}function Ae(e,n){let t=e.steps.get(n);return!t||t.result.ok?!1:I(t.result.error)}function ve(e){let n=[];for(let[t,p]of e.steps)!p.result.ok&&I(p.result.error)&&n.push(t);return n}function he(){let e=new Map;return{handleEvent:n=>{L(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&&I(n.result.error))return!0;return!1},getPendingApprovals:()=>{let n=[];for(let[t,p]of e)!p.result.ok&&I(p.result.error)&&n.push({stepKey:t,error:p.result.error});return n},injectApproval:(n,t)=>(e.set(n,{result:R(t)}),{steps:new Map(e)})}}0&&(module.exports={UnwrapError,all,allAsync,allSettled,allSettledAsync,andThen,any,anyAsync,clearStep,createApprovalStep,createHITLCollector,createStepCollector,createWorkflow,err,from,fromNullable,fromPromise,getPendingApprovals,hasPendingApproval,injectApproval,isApprovalRejected,isErr,isOk,isPendingApproval,isStepComplete,isUnexpectedError,map,mapError,mapErrorTry,mapTry,match,ok,partition,pendingApproval,run,tap,tapError,tryAsync,unwrap,unwrapOr,unwrapOrElse});
|
|
1
|
+
"use strict";var X=Object.defineProperty;var Ue=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var De=Object.prototype.hasOwnProperty;var Oe=(e,t)=>{for(var n in t)X(e,n,{get:t[n],enumerable:!0})},Ie=(e,t,n,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let w of _e(t))!De.call(e,w)&&w!==n&&X(e,w,{get:()=>t[w],enumerable:!(p=Ue(t,w))||p.enumerable});return e};var Me=e=>Ie(X({},"__esModule",{value:!0}),e);var je={};Oe(je,{UnwrapError:()=>b,all:()=>le,allAsync:()=>Ee,allSettled:()=>ye,allSettledAsync:()=>fe,andThen:()=>ue,any:()=>de,anyAsync:()=>ke,clearStep:()=>ge,createApprovalStep:()=>xe,createHITLCollector:()=>he,createStepCollector:()=>Te,createWorkflow:()=>Re,err:()=>y,from:()=>Z,fromNullable:()=>ne,fromPromise:()=>ee,getPendingApprovals:()=>ve,hasPendingApproval:()=>Ae,injectApproval:()=>Se,isApprovalRejected:()=>me,isErr:()=>$,isOk:()=>Y,isPendingApproval:()=>I,isStepComplete:()=>L,isUnexpectedError:()=>J,map:()=>re,mapError:()=>se,mapErrorTry:()=>ce,mapTry:()=>ie,match:()=>oe,ok:()=>R,partition:()=>we,pendingApproval:()=>Ce,run:()=>O,tap:()=>ae,tapError:()=>pe,tryAsync:()=>te,unwrap:()=>B,unwrapOr:()=>z,unwrapOrElse:()=>Q});module.exports=Me(je);var R=e=>({ok:!0,value:e}),y=(e,t)=>({ok:!1,error:e,...t?.cause!==void 0?{cause:t.cause}:{}}),Y=e=>e.ok,$=e=>!e.ok,J=e=>typeof e=="object"&&e!==null&&e.type==="UNEXPECTED_ERROR",H=Symbol("early-exit");function F(e,t){return{[H]:!0,error:e,meta:t}}function W(e){return typeof e=="object"&&e!==null&&e[H]===!0}var q=Symbol("mapper-exception");function Ke(e){return{[q]:!0,thrown:e}}function be(e){return typeof e=="object"&&e!==null&&e[q]===!0}function Fe(e){return typeof e=="string"?{name:e}:e??{}}async function O(e,t){let{onError:n,onEvent:p,catchUnexpected:w,workflowId:x,context:v}=t&&typeof t=="object"?t:{},E=x??crypto.randomUUID(),h=!n&&!w,g=[],U=0,M=a=>a??`step_${++U}`,f=a=>{if(a.type==="step_success"){let A=a.stepId;for(let c=g.length-1;c>=0;c--){let d=g[c];if(d.type==="race"&&!d.winnerId){d.winnerId=A;break}}}p?.(a,v)},P=F,m=a=>W(a),K=(a,A)=>h?A?.origin==="result"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:a,...A.resultCause!==void 0?{cause:A.resultCause}:{}}}:A?.origin==="throw"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"throw",error:a,thrown:A.thrown}}:{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:a}}:a,j=a=>a.origin==="result"?a.resultCause:a.thrown,N=a=>({type:"UNEXPECTED_ERROR",cause:a.meta.origin==="result"?{type:"STEP_FAILURE",origin:"result",error:a.error,...a.meta.resultCause!==void 0?{cause:a.meta.resultCause}:{}}:{type:"STEP_FAILURE",origin:"throw",error:a.error,thrown:a.meta.thrown}});try{let a=(d,k)=>(async()=>{let{name:o,key:u}=Fe(k),s=M(u),r=p?performance.now():0;p&&f({type:"step_start",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now()});let i;try{i=await(typeof d=="function"?d():d)}catch(S){let _=performance.now()-r;if(m(S))throw f({type:"step_aborted",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:_}),S;if(w){let D;try{D=w(S)}catch(Pe){throw Ke(Pe)}throw f({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:_,error:D}),u&&f({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:_,result:y(D,{cause:S}),meta:{origin:"throw",thrown:S}}),n?.(D,o),P(D,{origin:"throw",thrown:S})}else{let D={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:S}};throw f({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:_,error:D}),u&&f({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:_,result:y(D,{cause:S}),meta:{origin:"throw",thrown:S}}),S}}let T=performance.now()-r;if(i.ok)return f({type:"step_success",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:T}),u&&f({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:T,result:i}),i.value;let C=K(i.error,{origin:"result",resultCause:i.cause});throw f({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:T,error:C}),u&&f({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:T,result:i,meta:{origin:"result",resultCause:i.cause}}),n?.(i.error,o),P(i.error,{origin:"result",resultCause:i.cause})})();a.try=(d,k)=>{let o=k.name,u=k.key,s=M(u),l="error"in k?()=>k.error:k.onError,r=p;return(async()=>{let i=r?performance.now():0;p&&f({type:"step_start",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now()});try{let T=await d(),C=performance.now()-i;return f({type:"step_success",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:C}),u&&f({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:C,result:R(T)}),T}catch(T){let C=l(T),S=performance.now()-i,_=K(C,{origin:"throw",thrown:T});throw f({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:S,error:_}),u&&f({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:S,result:y(C,{cause:T}),meta:{origin:"throw",thrown:T}}),n?.(C,o),P(C,{origin:"throw",thrown:T})}})()},a.fromResult=(d,k)=>{let o=k.name,u=k.key,s=M(u),l="error"in k?()=>k.error:k.onError,r=p;return(async()=>{let i=r?performance.now():0;p&&f({type:"step_start",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now()});let T=await d();if(T.ok){let C=performance.now()-i;return f({type:"step_success",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:C}),u&&f({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:C,result:R(T.value)}),T.value}else{let C=l(T.error),S=performance.now()-i,_=K(C,{origin:"result",resultCause:T.error});throw f({type:"step_error",workflowId:E,stepId:s,stepKey:u,name:o,ts:Date.now(),durationMs:S,error:_}),u&&f({type:"step_complete",workflowId:E,stepKey:u,name:o,ts:Date.now(),durationMs:S,result:y(C,{cause:T.error}),meta:{origin:"result",resultCause:T.error}}),n?.(C,o),P(C,{origin:"result",resultCause:T.error})}})()},a.parallel=(d,k)=>{let o=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let u=performance.now(),s=!1;g.push({scopeId:o,type:"parallel"});let l=()=>{if(s)return;s=!0;let r=g.findIndex(i=>i.scopeId===o);r!==-1&&g.splice(r,1),f({type:"scope_end",workflowId:E,scopeId:o,ts:Date.now(),durationMs:performance.now()-u})};f({type:"scope_start",workflowId:E,scopeId:o,scopeType:"parallel",name:d,ts:Date.now()});try{let r=await k();if(l(),!r.ok)throw n?.(r.error,d),P(r.error,{origin:"result",resultCause:r.cause});return r.value}catch(r){throw l(),r}})()},a.race=(d,k)=>{let o=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let u=performance.now(),s=!1,l={scopeId:o,type:"race",winnerId:void 0};g.push(l);let r=()=>{if(s)return;s=!0;let i=g.findIndex(T=>T.scopeId===o);i!==-1&&g.splice(i,1),f({type:"scope_end",workflowId:E,scopeId:o,ts:Date.now(),durationMs:performance.now()-u,winnerId:l.winnerId})};f({type:"scope_start",workflowId:E,scopeId:o,scopeType:"race",name:d,ts:Date.now()});try{let i=await k();if(r(),!i.ok)throw n?.(i.error,d),P(i.error,{origin:"result",resultCause:i.cause});return i.value}catch(i){throw r(),i}})()},a.allSettled=(d,k)=>{let o=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let u=performance.now(),s=!1;g.push({scopeId:o,type:"allSettled"});let l=()=>{if(s)return;s=!0;let r=g.findIndex(i=>i.scopeId===o);r!==-1&&g.splice(r,1),f({type:"scope_end",workflowId:E,scopeId:o,ts:Date.now(),durationMs:performance.now()-u})};f({type:"scope_start",workflowId:E,scopeId:o,scopeType:"allSettled",name:d,ts:Date.now()});try{let r=await k();if(l(),!r.ok)throw n?.(r.error,d),P(r.error,{origin:"result",resultCause:r.cause});return r.value}catch(r){throw l(),r}})()};let c=await e(a);return R(c)}catch(a){if(be(a))throw a.thrown;if(m(a)){let c=j(a.meta);if(w||n)return y(a.error,{cause:c});if(J(a.error))return y(a.error,{cause:c});let d=N(a);return y(d,{cause:c})}if(w){let c=w(a);return n?.(c,"unexpected"),y(c,{cause:a})}let A={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:a}};return n?.(A,"unexpected"),y(A,{cause:a})}}O.strict=(e,t)=>O(e,t);var b=class extends Error{constructor(n,p){super(`Unwrap called on an error result: ${String(n)}`);this.error=n;this.cause=p;this.name="UnwrapError"}},B=e=>{if(e.ok)return e.value;throw new b(e.error,e.cause)},z=(e,t)=>e.ok?e.value:t,Q=(e,t)=>e.ok?e.value:t(e.error,e.cause);function Z(e,t){try{return R(e())}catch(n){return t?y(t(n),{cause:n}):y(n)}}async function ee(e,t){try{return R(await e)}catch(n){return t?y(t(n),{cause:n}):y(n)}}async function te(e,t){try{return R(await e())}catch(n){return t?y(t(n),{cause:n}):y(n)}}function ne(e,t){return e!=null?R(e):y(t())}function re(e,t){return e.ok?R(t(e.value)):e}function se(e,t){return e.ok?e:y(t(e.error),{cause:e.cause})}function oe(e,t){return e.ok?t.ok(e.value):t.err(e.error,e.cause)}function ue(e,t){return e.ok?t(e.value):e}function ae(e,t){return e.ok&&t(e.value),e}function pe(e,t){return e.ok||t(e.error,e.cause),e}function ie(e,t,n){if(!e.ok)return e;try{return R(t(e.value))}catch(p){return y(n(p),{cause:p})}}function ce(e,t,n){if(e.ok)return e;try{return y(t(e.error),{cause:e.cause})}catch(p){return y(n(p),{cause:p})}}function le(e){let t=[];for(let n of e){if(!n.ok)return n;t.push(n.value)}return R(t)}async function Ee(e){return e.length===0?R([]):new Promise(t=>{let n=!1,p=e.length,w=new Array(e.length);for(let x=0;x<e.length;x++){let v=x;Promise.resolve(e[v]).catch(E=>y({type:"PROMISE_REJECTED",cause:E},{cause:{type:"PROMISE_REJECTION",reason:E}})).then(E=>{if(!n){if(!E.ok){n=!0,t(E);return}w[v]=E.value,p--,p===0&&t(R(w))}})}})}function ye(e){let t=[],n=[];for(let p of e)p.ok?t.push(p.value):n.push({error:p.error,cause:p.cause});return n.length>0?y(n):R(t)}function we(e){let t=[],n=[];for(let p of e)p.ok?t.push(p.value):n.push(p.error);return{values:t,errors:n}}function de(e){if(e.length===0)return y({type:"EMPTY_INPUT",message:"any() requires at least one Result"});let t=null;for(let n of e){if(n.ok)return n;t||(t=n)}return t}async function ke(e){return e.length===0?y({type:"EMPTY_INPUT",message:"anyAsync() requires at least one Result"}):new Promise(t=>{let n=!1,p=e.length,w=null;for(let x of e)Promise.resolve(x).catch(v=>y({type:"PROMISE_REJECTED",cause:v},{cause:{type:"PROMISE_REJECTION",reason:v}})).then(v=>{if(!n){if(v.ok){n=!0,t(v);return}w||(w=v),p--,p===0&&t(w)}})})}async function fe(e){let t=await Promise.all(e.map(w=>Promise.resolve(w).then(x=>({status:"result",result:x})).catch(x=>({status:"rejected",error:{type:"PROMISE_REJECTED",cause:x},cause:{type:"PROMISE_REJECTION",reason:x}})))),n=[],p=[];for(let w of t)w.status==="rejected"?p.push({error:w.error,cause:w.cause}):w.result.ok?n.push(w.result.value):p.push({error:w.result.error,cause:w.result.cause});return p.length>0?y(p):R(n)}function Te(){let e=new Map;return{handleEvent:t=>{L(t)&&e.set(t.stepKey,{result:t.result,meta:t.meta})},getState:()=>({steps:new Map(e)}),clear:()=>e.clear()}}function We(e){return typeof e=="object"&&e!==null&&e.__cachedMeta===!0}function V(e,t,n){return y(e,{cause:{__cachedMeta:!0,originalCause:n,meta:t}})}function G(e){return We(e)?e.meta:{origin:"result",resultCause:e}}function Re(e,t){async function n(p,w){let x=typeof w=="function",v=x?p:void 0,E=x?w:p,h=crypto.randomUUID(),g=t?.createContext?.(),U=c=>{t?.onEvent?.(c,g)},M=Date.now(),f=performance.now();U({type:"workflow_start",workflowId:h,ts:M});let P=t?.resumeState,m=t?.cache;if(P&&!m&&(m=new Map),P&&m){let c=typeof P=="function"?await P():P;for(let[d,k]of c.steps){let{result:o,meta:u}=k;if(o.ok)m.set(d,o);else{let s=u??{origin:"result",resultCause:o.cause};m.set(d,V(o.error,s,o.cause))}}}let K=c=>typeof c=="string"?{name:c}:c??{},j=c=>{if(!m)return c;let d=async(k,o)=>{let{name:u,key:s}=K(o);if(s&&m.has(s)){U({type:"step_cache_hit",workflowId:h,stepKey:s,name:u,ts:Date.now()});let r=m.get(s);if(r.ok)return r.value;let i=G(r.cause);throw F(r.error,i)}s&&U({type:"step_cache_miss",workflowId:h,stepKey:s,name:u,ts:Date.now()});let l=typeof k=="function"?k:()=>k;try{let r=await c(l,o);return s&&m.set(s,R(r)),r}catch(r){if(s&&W(r)){let i=r,T=i.meta.origin==="result"?i.meta.resultCause:i.meta.thrown;m.set(s,V(i.error,i.meta,T))}throw r}};return d.try=async(k,o)=>{let{name:u,key:s}=o;if(s&&m.has(s)){U({type:"step_cache_hit",workflowId:h,stepKey:s,name:u,ts:Date.now()});let l=m.get(s);if(l.ok)return l.value;let r=G(l.cause);throw F(l.error,r)}s&&U({type:"step_cache_miss",workflowId:h,stepKey:s,name:u,ts:Date.now()});try{let l=await c.try(k,o);return s&&m.set(s,R(l)),l}catch(l){if(s&&W(l)){let r=l,i=r.meta.origin==="result"?r.meta.resultCause:r.meta.thrown;m.set(s,V(r.error,r.meta,i))}throw l}},d.fromResult=async(k,o)=>{let{name:u,key:s}=o;if(s&&m.has(s)){U({type:"step_cache_hit",workflowId:h,stepKey:s,name:u,ts:Date.now()});let l=m.get(s);if(l.ok)return l.value;let r=G(l.cause);throw F(l.error,r)}s&&U({type:"step_cache_miss",workflowId:h,stepKey:s,name:u,ts:Date.now()});try{let l=await c.fromResult(k,o);return s&&m.set(s,R(l)),l}catch(l){if(s&&W(l)){let r=l,i=r.meta.origin==="result"?r.meta.resultCause:r.meta.thrown;m.set(s,V(r.error,r.meta,i))}throw l}},d.parallel=c.parallel,d.race=c.race,d.allSettled=c.allSettled,d},N=x?c=>E(j(c),e,v):c=>E(j(c),e),a;if(t?.strict===!0){let c=t;a=await O.strict(N,{onError:c.onError,onEvent:c.onEvent,catchUnexpected:c.catchUnexpected,workflowId:h,context:g})}else{let c=t;a=await O(N,{onError:c?.onError??(()=>{}),onEvent:c?.onEvent,workflowId:h,context:g})}let A=performance.now()-f;return a.ok?U({type:"workflow_success",workflowId:h,ts:Date.now(),durationMs:A}):U({type:"workflow_error",workflowId:h,ts:Date.now(),durationMs:A,error:a.error}),a}return n}function L(e){return e.type==="step_complete"}function I(e){return typeof e=="object"&&e!==null&&e.type==="PENDING_APPROVAL"}function me(e){return typeof e=="object"&&e!==null&&e.type==="APPROVAL_REJECTED"}function Ce(e,t){return y({type:"PENDING_APPROVAL",stepKey:e,reason:t?.reason,metadata:t?.metadata})}function xe(e){return async()=>{let t=await e.checkApproval();switch(t.status){case"pending":return y({type:"PENDING_APPROVAL",stepKey:e.key,reason:e.pendingReason,metadata:e.metadata});case"rejected":return y({type:"APPROVAL_REJECTED",stepKey:e.key,reason:t.reason});case"approved":return R(t.value)}}}function Se(e,t){let n=new Map(e.steps);return n.set(t.stepKey,{result:R(t.value)}),{steps:n}}function ge(e,t){let n=new Map(e.steps);return n.delete(t),{steps:n}}function Ae(e,t){let n=e.steps.get(t);return!n||n.result.ok?!1:I(n.result.error)}function ve(e){let t=[];for(let[n,p]of e.steps)!p.result.ok&&I(p.result.error)&&t.push(n);return t}function he(){let e=new Map;return{handleEvent:t=>{L(t)&&e.set(t.stepKey,{result:t.result,meta:t.meta})},getState:()=>({steps:new Map(e)}),clear:()=>e.clear(),hasPendingApprovals:()=>{for(let t of e.values())if(!t.result.ok&&I(t.result.error))return!0;return!1},getPendingApprovals:()=>{let t=[];for(let[n,p]of e)!p.result.ok&&I(p.result.error)&&t.push({stepKey:n,error:p.result.error});return t},injectApproval:(t,n)=>(e.set(t,{result:R(n)}),{steps:new Map(e)})}}0&&(module.exports={UnwrapError,all,allAsync,allSettled,allSettledAsync,andThen,any,anyAsync,clearStep,createApprovalStep,createHITLCollector,createStepCollector,createWorkflow,err,from,fromNullable,fromPromise,getPendingApprovals,hasPendingApproval,injectApproval,isApprovalRejected,isErr,isOk,isPendingApproval,isStepComplete,isUnexpectedError,map,mapError,mapErrorTry,mapTry,match,ok,partition,pendingApproval,run,tap,tapError,tryAsync,unwrap,unwrapOr,unwrapOrElse});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|