@jagreehal/workflow 1.0.0 → 1.1.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/README.md +61 -0
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +70 -0
- package/dist/core.d.ts +70 -0
- 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 +1 -1
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.js +1 -1
- package/dist/workflow.js.map +1 -1
- package/package.json +15 -17
- package/docs/___advanced.test.ts +0 -565
- package/docs/___advanced_VERIFICATION.md +0 -64
package/dist/workflow.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var b=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var Y=(e,n)=>{for(var
|
|
1
|
+
"use strict";var b=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var Y=(e,n)=>{for(var a in n)b(e,a,{get:n[a],enumerable:!0})},q=(e,n,a,E)=>{if(n&&typeof n=="object"||typeof n=="function")for(let d of J(n))!G.call(e,d)&&d!==a&&b(e,d,{get:()=>n[d],enumerable:!(E=X(n,d))||E.enumerable});return e};var B=e=>q(b({},"__esModule",{value:!0}),e);var ce={};Y(ce,{clearStep:()=>ue,createApprovalStep:()=>se,createHITLCollector:()=>ie,createStepCollector:()=>Z,createWorkflow:()=>ne,getPendingApprovals:()=>pe,hasPendingApproval:()=>ae,injectApproval:()=>oe,isApprovalRejected:()=>te,isPendingApproval:()=>D,isStepComplete:()=>N,pendingApproval:()=>re});module.exports=B(ce);var S=e=>({ok:!0,value:e}),R=(e,n)=>({ok:!1,error:e,...n?.cause!==void 0?{cause:n.cause}:{}});var H=e=>typeof e=="object"&&e!==null&&e.type==="UNEXPECTED_ERROR",j=Symbol("early-exit");function M(e,n){return{[j]:!0,error:e,meta:n}}function K(e){return typeof e=="object"&&e!==null&&e[j]===!0}var W=Symbol("mapper-exception");function $(e){return{[W]:!0,thrown:e}}function z(e){return typeof e=="object"&&e!==null&&e[W]===!0}function Q(e){return typeof e=="string"?{name:e}:e??{}}async function _(e,n){let{onError:a,onEvent:E,catchUnexpected:d,workflowId:h,context:I}=n&&typeof n=="object"?n:{},l=h??crypto.randomUUID(),g=!a&&!d,c=s=>{E?.(s,I)},m=M,O=s=>K(s),U=(s,C)=>g?C?.origin==="result"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:s,...C.resultCause!==void 0?{cause:C.resultCause}:{}}}:C?.origin==="throw"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"throw",error:s,thrown:C.thrown}}:{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:s}}:s,P=s=>s.origin==="result"?s.resultCause:s.thrown,k=s=>({type:"UNEXPECTED_ERROR",cause:s.meta.origin==="result"?{type:"STEP_FAILURE",origin:"result",error:s.error,...s.meta.resultCause!==void 0?{cause:s.meta.resultCause}:{}}:{type:"STEP_FAILURE",origin:"throw",error:s.error,thrown:s.meta.thrown}});try{let s=(f,T)=>(async()=>{let{name:t,key:o}=Q(T),y=E?performance.now():0;E&&c({type:"step_start",workflowId:l,stepKey:o,name:t,ts:Date.now()});let i;try{i=await(typeof f=="function"?f():f)}catch(u){let w=performance.now()-y;if(O(u))throw c({type:"step_aborted",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:w}),u;if(d){let v;try{v=d(u)}catch(L){throw $(L)}throw c({type:"step_error",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:w,error:v}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:w,result:R(v,{cause:u}),meta:{origin:"throw",thrown:u}}),a?.(v,t),m(v,{origin:"throw",thrown:u})}else{let v={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:u}};throw c({type:"step_error",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:w,error:v}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:w,result:R(v,{cause:u}),meta:{origin:"throw",thrown:u}}),u}}let r=performance.now()-y;if(i.ok)return c({type:"step_success",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:r}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:r,result:i}),i.value;let p=U(i.error,{origin:"result",resultCause:i.cause});throw c({type:"step_error",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:r,error:p}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:r,result:i,meta:{origin:"result",resultCause:i.cause}}),a?.(i.error,t),m(i.error,{origin:"result",resultCause:i.cause})})();s.try=(f,T)=>{let t=T.name,o=T.key,x="error"in T?()=>T.error:T.onError,y=E;return(async()=>{let i=y?performance.now():0;E&&c({type:"step_start",workflowId:l,stepKey:o,name:t,ts:Date.now()});try{let r=await f(),p=performance.now()-i;return c({type:"step_success",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:p}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:p,result:S(r)}),r}catch(r){let p=x(r),u=performance.now()-i,w=U(p,{origin:"throw",thrown:r});throw c({type:"step_error",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:u,error:w}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:u,result:R(p,{cause:r}),meta:{origin:"throw",thrown:r}}),a?.(p,t),m(p,{origin:"throw",thrown:r})}})()},s.fromResult=(f,T)=>{let t=T.name,o=T.key,x="error"in T?()=>T.error:T.onError,y=E;return(async()=>{let i=y?performance.now():0;E&&c({type:"step_start",workflowId:l,stepKey:o,name:t,ts:Date.now()});let r=await f();if(r.ok){let p=performance.now()-i;return c({type:"step_success",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:p}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:p,result:S(r.value)}),r.value}else{let p=x(r.error),u=performance.now()-i,w=U(p,{origin:"result",resultCause:r.error});throw c({type:"step_error",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:u,error:w}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:t,ts:Date.now(),durationMs:u,result:R(p,{cause:r.error}),meta:{origin:"result",resultCause:r.error}}),a?.(p,t),m(p,{origin:"result",resultCause:r.error})}})()};let A=await e(s);return S(A)}catch(s){if(z(s))throw s.thrown;if(O(s)){let A=P(s.meta);if(d||a)return R(s.error,{cause:A});if(H(s.error))return R(s.error,{cause:A});let f=k(s);return R(f,{cause:A})}if(d){let A=d(s);return a?.(A,"unexpected"),R(A,{cause:s})}let C={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:s}};return a?.(C,"unexpected"),R(C,{cause:s})}}_.strict=(e,n)=>_(e,n);function Z(){let e=new Map;return{handleEvent:n=>{N(n)&&e.set(n.stepKey,{result:n.result,meta:n.meta})},getState:()=>({steps:new Map(e)}),clear:()=>e.clear()}}function ee(e){return typeof e=="object"&&e!==null&&e.__cachedMeta===!0}function F(e,n,a){return R(e,{cause:{__cachedMeta:!0,originalCause:a,meta:n}})}function V(e){return ee(e)?e.meta:{origin:"result",resultCause:e}}function ne(e,n){async function a(E,d){let h=typeof d=="function",I=h?E:void 0,l=h?d:E,g=crypto.randomUUID(),c=n?.createContext?.(),m=t=>{n?.onEvent?.(t,c)},O=Date.now(),U=performance.now();m({type:"workflow_start",workflowId:g,ts:O});let P=n?.resumeState,k=n?.cache;if(P&&!k&&(k=new Map),P&&k){let t=typeof P=="function"?await P():P;for(let[o,x]of t.steps){let{result:y,meta:i}=x;if(y.ok)k.set(o,y);else{let r=i??{origin:"result",resultCause:y.cause};k.set(o,F(y.error,r,y.cause))}}}let s=t=>typeof t=="string"?{name:t}:t??{},C=t=>{if(!k)return t;let o=async(x,y)=>{let{name:i,key:r}=s(y);if(r&&k.has(r)){m({type:"step_cache_hit",workflowId:g,stepKey:r,name:i,ts:Date.now()});let u=k.get(r);if(u.ok)return u.value;let w=V(u.cause);throw M(u.error,w)}r&&m({type:"step_cache_miss",workflowId:g,stepKey:r,name:i,ts:Date.now()});let p=typeof x=="function"?x:()=>x;try{let u=await t(p,y);return r&&k.set(r,S(u)),u}catch(u){if(r&&K(u)){let w=u,v=w.meta.origin==="result"?w.meta.resultCause:w.meta.thrown;k.set(r,F(w.error,w.meta,v))}throw u}};return o.try=async(x,y)=>{let{name:i,key:r}=y;if(r&&k.has(r)){m({type:"step_cache_hit",workflowId:g,stepKey:r,name:i,ts:Date.now()});let p=k.get(r);if(p.ok)return p.value;let u=V(p.cause);throw M(p.error,u)}r&&m({type:"step_cache_miss",workflowId:g,stepKey:r,name:i,ts:Date.now()});try{let p=await t.try(x,y);return r&&k.set(r,S(p)),p}catch(p){if(r&&K(p)){let u=p,w=u.meta.origin==="result"?u.meta.resultCause:u.meta.thrown;k.set(r,F(u.error,u.meta,w))}throw p}},o},A=h?t=>l(C(t),e,I):t=>l(C(t),e),f;if(n?.strict===!0){let t=n;f=await _.strict(A,{onError:t.onError,onEvent:t.onEvent,catchUnexpected:t.catchUnexpected,workflowId:g,context:c})}else{let t=n;f=await _(A,{onError:t?.onError??(()=>{}),onEvent:t?.onEvent,workflowId:g,context:c})}let T=performance.now()-U;return f.ok?m({type:"workflow_success",workflowId:g,ts:Date.now(),durationMs:T}):m({type:"workflow_error",workflowId:g,ts:Date.now(),durationMs:T,error:f.error}),f}return a}function N(e){return e.type==="step_complete"}function D(e){return typeof e=="object"&&e!==null&&e.type==="PENDING_APPROVAL"}function te(e){return typeof e=="object"&&e!==null&&e.type==="APPROVAL_REJECTED"}function re(e,n){return R({type:"PENDING_APPROVAL",stepKey:e,reason:n?.reason,metadata:n?.metadata})}function se(e){return async()=>{let n=await e.checkApproval();switch(n.status){case"pending":return R({type:"PENDING_APPROVAL",stepKey:e.key,reason:e.pendingReason,metadata:e.metadata});case"rejected":return R({type:"APPROVAL_REJECTED",stepKey:e.key,reason:n.reason});case"approved":return S(n.value)}}}function oe(e,n){let a=new Map(e.steps);return a.set(n.stepKey,{result:S(n.value)}),{steps:a}}function ue(e,n){let a=new Map(e.steps);return a.delete(n),{steps:a}}function ae(e,n){let a=e.steps.get(n);return!a||a.result.ok?!1:D(a.result.error)}function pe(e){let n=[];for(let[a,E]of e.steps)!E.result.ok&&D(E.result.error)&&n.push(a);return n}function ie(){let e=new Map;return{handleEvent:n=>{N(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&&D(n.result.error))return!0;return!1},getPendingApprovals:()=>{let n=[];for(let[a,E]of e)!E.result.ok&&D(E.result.error)&&n.push({stepKey:a,error:E.result.error});return n},injectApproval:(n,a)=>(e.set(n,{result:S(a)}),{steps:new Map(e)})}}0&&(module.exports={clearStep,createApprovalStep,createHITLCollector,createStepCollector,createWorkflow,getPendingApprovals,hasPendingApproval,injectApproval,isApprovalRejected,isPendingApproval,isStepComplete,pendingApproval});
|
|
2
2
|
//# sourceMappingURL=workflow.cjs.map
|