awaitly 1.20.0 → 1.22.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/adapters.cjs +2 -2
- package/dist/adapters.cjs.map +1 -1
- package/dist/adapters.d.cts +1 -1
- package/dist/adapters.d.ts +1 -1
- package/dist/adapters.js +2 -2
- package/dist/adapters.js.map +1 -1
- package/dist/batch.cjs.map +1 -1
- package/dist/batch.d.cts +1 -1
- package/dist/batch.d.ts +1 -1
- package/dist/batch.js.map +1 -1
- package/dist/circuit-breaker.cjs +2 -2
- package/dist/circuit-breaker.cjs.map +1 -1
- package/dist/circuit-breaker.d.cts +1 -1
- package/dist/circuit-breaker.d.ts +1 -1
- package/dist/circuit-breaker.js +2 -2
- package/dist/circuit-breaker.js.map +1 -1
- package/dist/conditional.d.cts +1 -1
- package/dist/conditional.d.ts +1 -1
- package/dist/core.cjs +2 -2
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +2 -2
- package/dist/core.d.ts +2 -2
- package/dist/core.js +2 -2
- package/dist/core.js.map +1 -1
- package/dist/durable.cjs +8 -8
- package/dist/durable.cjs.map +1 -1
- package/dist/durable.d.cts +4 -4
- package/dist/durable.d.ts +4 -4
- package/dist/durable.js +8 -8
- package/dist/durable.js.map +1 -1
- package/dist/fetch.cjs +2 -2
- package/dist/fetch.cjs.map +1 -1
- package/dist/fetch.d.cts +1 -1
- package/dist/fetch.d.ts +1 -1
- package/dist/fetch.js +1 -1
- package/dist/fetch.js.map +1 -1
- package/dist/functional.cjs +1 -6
- package/dist/functional.cjs.map +1 -1
- package/dist/functional.d.cts +30 -30
- package/dist/functional.d.ts +30 -30
- package/dist/functional.js +1 -6
- package/dist/functional.js.map +1 -1
- package/dist/{guards-DG2EuRzE.d.cts → guards-BXh4zOGR.d.cts} +2 -2
- package/dist/{guards-B7e0DLrc.d.ts → guards-DvUWiITu.d.ts} +2 -2
- package/dist/{hitl-PQALYnZ4.d.cts → hitl-Cb1Ty-GU.d.cts} +9 -2
- package/dist/{hitl-DFvqJ4qx.d.ts → hitl-CpmRFmpq.d.ts} +9 -2
- package/dist/hitl.cjs +2 -2
- package/dist/hitl.cjs.map +1 -1
- package/dist/hitl.d.cts +6 -6
- package/dist/hitl.d.ts +6 -6
- package/dist/hitl.js +2 -2
- package/dist/hitl.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +144 -2
- package/dist/index.d.ts +144 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/match-entry-W0mA4vJT.d.cts +209 -0
- package/dist/match-entry-W0mA4vJT.d.ts +209 -0
- package/dist/match.d.cts +1 -209
- package/dist/match.d.ts +1 -209
- package/dist/otel.d.cts +1 -1
- package/dist/otel.d.ts +1 -1
- package/dist/{persistence-entry-72Wpsgs4.d.ts → persistence-entry-BZfyoFcV.d.ts} +12 -2
- package/dist/{persistence-entry-B_liIUgr.d.cts → persistence-entry-D9pTLFwG.d.cts} +12 -2
- package/dist/persistence.cjs +1 -1
- package/dist/persistence.cjs.map +1 -1
- package/dist/persistence.d.cts +3 -3
- package/dist/persistence.d.ts +3 -3
- package/dist/persistence.js.map +1 -1
- package/dist/policies.d.cts +1 -1
- package/dist/policies.d.ts +1 -1
- package/dist/ratelimit.cjs +2 -2
- package/dist/ratelimit.cjs.map +1 -1
- package/dist/ratelimit.d.cts +1 -1
- package/dist/ratelimit.d.ts +1 -1
- package/dist/ratelimit.js +2 -2
- package/dist/ratelimit.js.map +1 -1
- package/dist/reliability.cjs.map +1 -1
- package/dist/reliability.d.cts +1 -1
- package/dist/reliability.d.ts +1 -1
- package/dist/reliability.js.map +1 -1
- package/dist/resource.cjs +2 -2
- package/dist/resource.cjs.map +1 -1
- package/dist/resource.d.cts +1 -1
- package/dist/resource.d.ts +1 -1
- package/dist/resource.js +2 -2
- package/dist/resource.js.map +1 -1
- package/dist/result.cjs +1 -1
- package/dist/result.cjs.map +1 -1
- package/dist/result.d.cts +35 -1
- package/dist/result.d.ts +35 -1
- package/dist/result.js +1 -1
- package/dist/result.js.map +1 -1
- package/dist/{run-entry-C0MHnhdE.d.cts → run-entry-B3qpn1JX.d.cts} +53 -11
- package/dist/{run-entry-C0MHnhdE.d.ts → run-entry-B3qpn1JX.d.ts} +53 -11
- package/dist/run.cjs.map +1 -1
- package/dist/run.d.cts +1 -1
- package/dist/run.d.ts +1 -1
- package/dist/run.js.map +1 -1
- package/dist/saga.cjs.map +1 -1
- package/dist/saga.d.cts +1 -1
- package/dist/saga.d.ts +1 -1
- package/dist/saga.js.map +1 -1
- package/dist/singleflight.d.cts +1 -1
- package/dist/singleflight.d.ts +1 -1
- package/dist/streaming.cjs.map +1 -1
- package/dist/streaming.d.cts +3 -3
- package/dist/streaming.d.ts +3 -3
- package/dist/streaming.js.map +1 -1
- package/dist/testing.cjs +3 -3
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +3 -3
- package/dist/testing.d.ts +3 -3
- package/dist/testing.js +3 -3
- package/dist/testing.js.map +1 -1
- package/dist/{types-k5fB17bw.d.cts → types-DPALEegK.d.cts} +1 -1
- package/dist/{types-B_v1IHxQ.d.ts → types-VsQ2CkKS.d.ts} +1 -1
- package/dist/webhook.cjs +2 -2
- package/dist/webhook.cjs.map +1 -1
- package/dist/webhook.d.cts +14 -3
- package/dist/webhook.d.ts +14 -3
- package/dist/webhook.js +2 -2
- package/dist/webhook.js.map +1 -1
- package/dist/workflow.cjs +8 -8
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +16 -7
- package/dist/workflow.d.ts +16 -7
- package/dist/workflow.js +8 -8
- package/dist/workflow.js.map +1 -1
- package/package.json +6 -1
package/dist/adapters.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var ee=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var xe=Object.getOwnPropertyNames;var be=Object.prototype.hasOwnProperty;var Se=(e,s)=>{for(var T in s)ee(e,T,{get:s[T],enumerable:!0})},Ae=(e,s,T,m)=>{if(s&&typeof s=="object"||typeof s=="function")for(let k of xe(s))!be.call(e,k)&&k!==T&&ee(e,k,{get:()=>s[k],enumerable:!(m=ge(s,k))||m.enumerable});return e};var he=e=>Ae(ee({},"__esModule",{value:!0}),e);var Ke={};Se(Ke,{fromCallback:()=>we,fromEvent:()=>de,isEventEmitterLike:()=>Te,isEventTimeoutError:()=>me,isInvalidEmitterError:()=>ye});module.exports=he(Ke);function ve(e){let s=e.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!s)return;let T=parseFloat(s[1]),m=s[2].toLowerCase();return{_tag:"Duration",millis:T*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[m]??1)}}var L=e=>({ok:!0,value:e}),h=(e,s)=>({ok:!1,error:e,...s?.cause!==void 0?{cause:s.cause}:{}});var Pe=e=>typeof e=="object"&&e!==null&&e.type==="UNEXPECTED_ERROR";var Y=Symbol.for("step_timeout_marker");function ne(e){return typeof e!="object"||e===null?!1:e.type==="STEP_TIMEOUT"?!0:Y in e}function _e(e){if(!(typeof e!="object"||e===null)){if(e.type==="STEP_TIMEOUT"){let s=e;return{timeoutMs:s.timeoutMs,stepName:s.stepName,stepKey:s.stepKey,attempt:s.attempt}}if(Y in e)return e[Y]}}var ce=Symbol("early-exit");function Ie(e,s){return{[ce]:!0,error:e,meta:s}}function Oe(e){return typeof e=="object"&&e!==null&&e[ce]===!0}var Ee=Symbol("mapper-exception");function Me(e){return{[Ee]:!0,thrown:e}}function De(e){return typeof e=="object"&&e!==null&&e[Ee]===!0}function te(e,s){let{backoff:T,initialDelay:m,maxDelay:k,jitter:S}=s,A;switch(T){case"fixed":A=m;break;case"linear":A=m*e;break;case"exponential":A=m*Math.pow(2,e-1);break}if(A=Math.min(A,k),S){let g=A*.25*Math.random();A=A+g}return Math.floor(A)}function re(e){return new Promise(s=>setTimeout(s,e))}var le=Symbol("timeout"),q=Symbol("timeout-option");function Ue(e){return typeof e=="object"&&e!==null&&e[q]===!0}async function Ne(e,s,T,m){let k=new AbortController,S=s.onTimeout??"error",A=()=>typeof S=="function"?S({name:T.name,key:T.key,ms:s.ms}):s.error??{type:"STEP_TIMEOUT",stepName:T.name,stepKey:T.key,timeoutMs:s.ms,attempt:T.attempt},g;m?.aborted&&k.abort(m.reason);let M;m&&!m.aborted&&(M=()=>k.abort(m.reason),m.addEventListener("abort",M,{once:!0}));let i=new Promise((y,C)=>{g=setTimeout(()=>{if(S!=="disconnect"&&k.abort(),S==="option"){C({[q]:!0,ms:s.ms});return}C({[le]:!0,error:A()})},s.ms)}),D;s.signal?D=Promise.resolve(e(k.signal)):D=Promise.resolve(e());try{return await Promise.race([D,i])}catch(y){if(typeof y=="object"&&y!==null&&y[q]===!0)throw{[q]:!0,ms:s.ms};if(typeof y=="object"&&y!==null&&y[le]===!0){S==="disconnect"&&D.catch(()=>{});let C=y.error;if(typeof C=="object"&&C!==null&&C.type!=="STEP_TIMEOUT"){let B={timeoutMs:s.ms,stepName:T.name,stepKey:T.key,attempt:T.attempt};Y in C?C[Y]=B:Object.defineProperty(C,Y,{value:B,enumerable:!1,writable:!0,configurable:!1})}throw C}throw y}finally{clearTimeout(g),M&&m&&m.removeEventListener("abort",M)}}var X={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,retryOn:()=>!0,onRetry:()=>{}};async function pe(e,s){let{onError:T,onEvent:m,catchUnexpected:k,workflowId:S,workflowName:A,context:g,_workflowSignal:M}=s&&typeof s=="object"?s:{},i=S??crypto.randomUUID(),D=!T&&!k,y=[],C=0,B=t=>t??`step_${++C}`,w=t=>{let I=t.context!==void 0||g===void 0?t:{...t,context:g},O=A!==void 0&&I.workflowName===void 0?{...I,workflowName:A}:I;if(O.type==="step_success"){let W=O.stepId;for(let H=y.length-1;H>=0;H--){let U=y[H];if(U.type==="race"&&!U.winnerId){U.winnerId=W;break}}}m?.(O,g)},N=Ie,ue=t=>Oe(t),G=(t,I)=>D?I?.origin==="result"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:t,...I.resultCause!==void 0?{cause:I.resultCause}:{}}}:I?.origin==="throw"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"throw",error:t,thrown:I.thrown}}:{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:t}}:t,fe=t=>({type:"UNEXPECTED_ERROR",cause:t.meta.origin==="result"?{type:"STEP_FAILURE",origin:"result",error:t.error,...t.meta.resultCause!==void 0?{cause:t.meta.resultCause}:{}}:{type:"STEP_FAILURE",origin:"throw",error:t.error,thrown:t.meta.thrown}}),ke=t=>typeof t=="function"?!1:!!(t&&typeof t=="object"&&"ok"in t||t&&typeof t=="object"&&"then"in t&&typeof t.then=="function");try{let I=function(o){let c={};for(let[n,p]of Object.entries(o))if(typeof p=="function")c[n]=p;else if(p&&typeof p=="object"&&"fn"in p)c[n]=p.fn;else throw new TypeError(`step.parallel: operation "${n}" must be a function or { fn, errors? } object`);return c},O=function(o,c){let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let p=performance.now(),r=!1;y.push({scopeId:n,type:"parallel"});let a=()=>{if(r)return;r=!0;let u=y.findIndex(d=>d.scopeId===n);u!==-1&&y.splice(u,1),w({type:"scope_end",workflowId:i,scopeId:n,ts:Date.now(),durationMs:performance.now()-p})};w({type:"scope_start",workflowId:i,scopeId:n,scopeType:"parallel",name:o,ts:Date.now()});try{let u=await c();if(a(),!u.ok)throw T?.(u.error,o,g),N(u.error,{origin:"result",resultCause:u.cause});return u.value}catch(u){throw a(),u}})()},W=function(o,c){let n=Object.keys(o),p=c.name??`Parallel(${n.join(", ")})`,r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let a=performance.now(),u=!1;y.push({scopeId:r,type:"parallel"});let d=()=>{if(u)return;u=!0;let R=y.findIndex(f=>f.scopeId===r);R!==-1&&y.splice(R,1),w({type:"scope_end",workflowId:i,scopeId:r,ts:Date.now(),durationMs:performance.now()-a})};w({type:"scope_start",workflowId:i,scopeId:r,scopeType:"parallel",name:p,ts:Date.now()});try{let R=await new Promise(l=>{if(n.length===0){l([]);return}let v=!1,P=n.length,z=new Array(n.length);for(let j=0;j<n.length;j++){let J=n[j],b=j;Promise.resolve(o[J]()).catch(K=>h({type:"PROMISE_REJECTED",cause:K},{cause:{type:"PROMISE_REJECTION",reason:K}})).then(K=>{if(!v){if(!K.ok){v=!0,l([{key:J,result:K}]);return}z[b]={key:J,result:K},P--,P===0&&l(z)}})}});d();let f={};for(let{key:l,result:v}of R){if(!v.ok)throw T?.(v.error,l,g),N(v.error,{origin:"result",resultCause:v.cause});f[l]=v.value}return f}catch(R){throw d(),R}})()};var Fe=I,Le=O,je=W;let t=(o,c,n)=>(async()=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step() requires an explicit string ID as the first argument. Example: step("fetchUser", () => fetchUser(id))');let p=n??{},r=o,a=p.key??o,u=p.key??o,{description:d,retry:R,timeout:f}=p,l=B(a),v=m,P=v?performance.now():0,j=ke(c)?()=>c:c,b={attempts:Math.max(1,R?.attempts??1),backoff:R?.backoff??X.backoff,initialDelay:R?.initialDelay??X.initialDelay,maxDelay:R?.maxDelay??X.maxDelay,jitter:R?.jitter??X.jitter,retryOn:R?.retryOn??X.retryOn,onRetry:R?.onRetry??X.onRetry};m&&w({type:"step_start",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now()});let K;for(let x=1;x<=b.attempts;x++){let Ce=v?performance.now():0;try{let E;if(f?E=await Ne(j,f,{name:r,key:a,attempt:x},M):E=await j(),E.ok){let F=performance.now()-P;return w({type:"step_success",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:F}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:F,result:E}),E.value}if(K=E,x<b.attempts&&b.retryOn(E.error,x)){let F=te(x,b);w({type:"step_retry",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),attempt:x+1,maxAttempts:b.attempts,delayMs:F,error:E.error}),b.onRetry(E.error,x,F),await re(F);continue}b.attempts>1&&w({type:"step_retries_exhausted",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),durationMs:performance.now()-P,attempts:x,lastError:E.error});break}catch(E){let F=performance.now()-Ce;if(Ue(E)){let _=E.ms;w({type:"step_timeout",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),timeoutMs:_,attempt:x}),w({type:"step_success",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:performance.now()-P}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:performance.now()-P,result:L(void 0)});return}if(ue(E))throw w({type:"step_aborted",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:F}),E;if(ne(E)){let _=_e(E),Q=f?.ms??_?.timeoutMs??0;if(w({type:"step_timeout",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),timeoutMs:Q,attempt:x}),x<b.attempts&&b.retryOn(E,x)){let Z=te(x,b);w({type:"step_retry",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),attempt:x+1,maxAttempts:b.attempts,delayMs:Z,error:E}),b.onRetry(E,x,Z),await re(Z);continue}b.attempts>1&&w({type:"step_retries_exhausted",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),durationMs:performance.now()-P,attempts:x,lastError:E});let ie=performance.now()-P;throw w({type:"step_error",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:ie,error:E}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:ie,result:h(E,{cause:E}),meta:{origin:"throw",thrown:E}}),T?.(E,r,g),N(E,{origin:"throw",thrown:E})}if(x<b.attempts&&b.retryOn(E,x)){let _=te(x,b);w({type:"step_retry",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),attempt:x+1,maxAttempts:b.attempts,delayMs:_,error:E}),b.onRetry(E,x,_),await re(_);continue}b.attempts>1&&!ne(E)&&w({type:"step_retries_exhausted",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),durationMs:performance.now()-P,attempts:x,lastError:E});let $=performance.now()-P;if(k){let _;try{_=k(E)}catch(Q){throw Me(Q)}throw w({type:"step_error",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:$,error:_}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:$,result:h(_,{cause:E}),meta:{origin:"throw",thrown:E}}),T?.(_,r,g),N(_,{origin:"throw",thrown:E})}else{let _={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:E}};throw w({type:"step_error",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:$,error:_}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:$,result:h(_,{cause:E}),meta:{origin:"throw",thrown:E}}),E}}}let V=K,ae=performance.now()-P,Re=G(V.error,{origin:"result",resultCause:V.cause});throw w({type:"step_error",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:ae,error:Re}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:ae,result:V,meta:{origin:"result",resultCause:V.cause}}),T?.(V.error,r,g),N(V.error,{origin:"result",resultCause:V.cause})})();t.try=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.try() requires an explicit string ID as the first argument. Example: step.try("parse", () => JSON.parse(str), { error: "PARSE_ERROR" })');let p=n.key??o,r=o,a=o,u="error"in n?()=>n.error:n.onError,d=m;return(async()=>{let R=d?performance.now():0;m&&w({type:"step_start",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now()});try{let f=await c(),l=performance.now()-R;return w({type:"step_success",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now(),durationMs:l}),p&&w({type:"step_complete",workflowId:i,stepKey:p,name:r,ts:Date.now(),durationMs:l,result:L(f)}),f}catch(f){let l=u(f),v=performance.now()-R,P=G(l,{origin:"throw",thrown:f});throw w({type:"step_error",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now(),durationMs:v,error:P}),p&&w({type:"step_complete",workflowId:i,stepKey:p,name:r,ts:Date.now(),durationMs:v,result:h(l,{cause:f}),meta:{origin:"throw",thrown:f}}),T?.(l,r,g),N(l,{origin:"throw",thrown:f})}})()},t.fromResult=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.fromResult() requires an explicit string ID as the first argument. Example: step.fromResult("callProvider", () => callProvider(input), { onError: (e) => ({ type: "FAILED" }) })');let p=n.key??o,r=o,a=o,u="error"in n?()=>n.error:n.onError,d=m;return(async()=>{let R=d?performance.now():0;m&&w({type:"step_start",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now()});let f=await c();if(f.ok){let l=performance.now()-R;return w({type:"step_success",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now(),durationMs:l}),p&&w({type:"step_complete",workflowId:i,stepKey:p,name:r,ts:Date.now(),durationMs:l,result:L(f.value)}),f.value}else{let l=u(f.error),v=performance.now()-R,P=G(l,{origin:"result",resultCause:f.error});throw w({type:"step_error",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now(),durationMs:v,error:P}),p&&w({type:"step_complete",workflowId:i,stepKey:p,name:r,ts:Date.now(),durationMs:v,result:h(l,{cause:f.error}),meta:{origin:"result",resultCause:f.error}}),T?.(l,r,g),N(l,{origin:"result",resultCause:f.error})}})()},t.retry=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.retry() requires an explicit string ID as the first argument. Example: step.retry("fetchData", () => fetchData(), { attempts: 3 })');return t(o,c,{key:n.key??o,retry:{attempts:n.attempts,backoff:n.backoff,initialDelay:n.initialDelay,maxDelay:n.maxDelay,jitter:n.jitter,retryOn:n.retryOn,onRetry:n.onRetry},timeout:n.timeout})},t.withTimeout=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.withTimeout() requires an explicit string ID as the first argument. Example: step.withTimeout("slowOp", () => slowOp(), { ms: 5000 })');return t(o,c,{key:n.key??o,timeout:n})},t.sleep=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.sleep() requires an explicit string ID as the first argument. Example: step.sleep("delay", "5s")');let p=typeof c=="string"?ve(c):c;if(!p)throw new Error(`step.sleep: invalid duration '${c}'`);let r=p.millis,a=n?.signal;return t(o,async()=>{if(M?.aborted||a?.aborted){let u=new Error("Sleep aborted");throw u.name="AbortError",u}return new Promise((u,d)=>{let R={timeoutId:void 0},f=()=>{R.timeoutId&&clearTimeout(R.timeoutId);let l=new Error("Sleep aborted");l.name="AbortError",d(l)};M?.addEventListener("abort",f,{once:!0}),a?.addEventListener("abort",f,{once:!0}),R.timeoutId=setTimeout(()=>{M?.removeEventListener("abort",f),a?.removeEventListener("abort",f),u(L(void 0))},r)})},{key:n?.key??o,description:n?.description})},t.parallel=((...o)=>{if(typeof o[0]!="string")throw new TypeError("step.parallel(name, ...): first argument must be a string (step name). Example: step.parallel('Fetch data', { user: () => fetchUser(), posts: () => fetchPosts() })");let c=o[0],n=o[1];if(typeof n=="function")return O(c,n);if(n&&typeof n=="object"&&!Array.isArray(n)){let r=I(n);return W(r,{name:c})}throw new TypeError("step.parallel(name, ...): second argument must be a function (array form) or an object of operations (object form).")}),t.race=(o,c)=>{let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let p=performance.now(),r=!1,a={scopeId:n,type:"race",winnerId:void 0};y.push(a);let u=()=>{if(r)return;r=!0;let d=y.findIndex(R=>R.scopeId===n);d!==-1&&y.splice(d,1),w({type:"scope_end",workflowId:i,scopeId:n,ts:Date.now(),durationMs:performance.now()-p,winnerId:a.winnerId})};w({type:"scope_start",workflowId:i,scopeId:n,scopeType:"race",name:o,ts:Date.now()});try{let d=await c();if(u(),!d.ok)throw T?.(d.error,o,g),N(d.error,{origin:"result",resultCause:d.cause});return d.value}catch(d){throw u(),d}})()},t.allSettled=(o,c)=>{let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let p=performance.now(),r=!1;y.push({scopeId:n,type:"allSettled"});let a=()=>{if(r)return;r=!0;let u=y.findIndex(d=>d.scopeId===n);u!==-1&&y.splice(u,1),w({type:"scope_end",workflowId:i,scopeId:n,ts:Date.now(),durationMs:performance.now()-p})};w({type:"scope_start",workflowId:i,scopeId:n,scopeType:"allSettled",name:o,ts:Date.now()});try{let u=await c();if(a(),!u.ok)throw T?.(u.error,o,g),N(u.error,{origin:"result",resultCause:u.cause});return u.value}catch(u){throw a(),u}})()},t.if=(o,c,n)=>n(),t.label=t.if,t.branch=async(o,c)=>{let{condition:n,then:p,else:r}=c;if(n())return await p();if(r)return await r()},t.arm=(o,c)=>({fn:o,errors:c}),t.forEach=async(o,c,n)=>{let p=[],r=n.maxIterations,a=0,u="run"in n,d=Symbol.asyncIterator in c?c:(async function*(){yield*c})();for await(let R of d){if(r!==void 0&&a>=r)break;let f;u?f=await n.run(R,a):f=await n.item.handler(R,a,t),p.push(f),a++}return p},t.item=o=>({__forEachItemHandler:!0,handler:o}),t.dep=(o,c)=>c;let U=await e(t);if(process.env.NODE_ENV!=="production"&&U!==null&&typeof U=="object"&&"ok"in U&&typeof U.ok=="boolean"){let o=U;(o.ok===!0&&"value"in o||o.ok===!1&&"error"in o)&&console.warn(`awaitly: Workflow executor returned a Result-like object. Return raw values, not ok() or err().
|
|
1
|
+
"use strict";var ee=Object.defineProperty;var xe=Object.getOwnPropertyDescriptor;var ge=Object.getOwnPropertyNames;var be=Object.prototype.hasOwnProperty;var Se=(e,s)=>{for(var T in s)ee(e,T,{get:s[T],enumerable:!0})},he=(e,s,T,m)=>{if(s&&typeof s=="object"||typeof s=="function")for(let k of ge(s))!be.call(e,k)&&k!==T&&ee(e,k,{get:()=>s[k],enumerable:!(m=xe(s,k))||m.enumerable});return e};var Ae=e=>he(ee({},"__esModule",{value:!0}),e);var Ke={};Se(Ke,{fromCallback:()=>we,fromEvent:()=>de,isEventEmitterLike:()=>Te,isEventTimeoutError:()=>me,isInvalidEmitterError:()=>ye});module.exports=Ae(Ke);function ve(e){let s=e.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!s)return;let T=parseFloat(s[1]),m=s[2].toLowerCase();return{_tag:"Duration",millis:T*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[m]??1)}}var L=e=>({ok:!0,value:e}),A=(e,s)=>({ok:!1,error:e,...s?.cause!==void 0?{cause:s.cause}:{}});var Pe=e=>typeof e=="object"&&e!==null&&e.type==="UNEXPECTED_ERROR";var Y=Symbol.for("step_timeout_marker");function ne(e){return typeof e!="object"||e===null?!1:e.type==="STEP_TIMEOUT"?!0:Y in e}function Oe(e){if(!(typeof e!="object"||e===null)){if(e.type==="STEP_TIMEOUT"){let s=e;return{timeoutMs:s.timeoutMs,stepName:s.stepName,stepKey:s.stepKey,attempt:s.attempt}}if(Y in e)return e[Y]}}var ce=Symbol("early-exit");function _e(e,s){return{[ce]:!0,error:e,meta:s}}function Ie(e){return typeof e=="object"&&e!==null&&e[ce]===!0}var Ee=Symbol("mapper-exception");function Me(e){return{[Ee]:!0,thrown:e}}function De(e){return typeof e=="object"&&e!==null&&e[Ee]===!0}function te(e,s){let{backoff:T,initialDelay:m,maxDelay:k,jitter:S}=s,h;switch(T){case"fixed":h=m;break;case"linear":h=m*e;break;case"exponential":h=m*Math.pow(2,e-1);break}if(h=Math.min(h,k),S){let x=h*.25*Math.random();h=h+x}return Math.floor(h)}function re(e){return new Promise(s=>setTimeout(s,e))}var le=Symbol("timeout"),q=Symbol("timeout-option");function Ue(e){return typeof e=="object"&&e!==null&&e[q]===!0}async function Ne(e,s,T,m){let k=new AbortController,S=s.onTimeout??"error",h=()=>typeof S=="function"?S({name:T.name,key:T.key,ms:s.ms}):s.error??{type:"STEP_TIMEOUT",stepName:T.name,stepKey:T.key,timeoutMs:s.ms,attempt:T.attempt},x;m?.aborted&&k.abort(m.reason);let M;m&&!m.aborted&&(M=()=>k.abort(m.reason),m.addEventListener("abort",M,{once:!0}));let i=new Promise((y,C)=>{x=setTimeout(()=>{if(S!=="disconnect"&&k.abort(),S==="option"){C({[q]:!0,ms:s.ms});return}C({[le]:!0,error:h()})},s.ms)}),D;s.signal?D=Promise.resolve(e(k.signal)):D=Promise.resolve(e());try{return await Promise.race([D,i])}catch(y){if(typeof y=="object"&&y!==null&&y[q]===!0)throw{[q]:!0,ms:s.ms};if(typeof y=="object"&&y!==null&&y[le]===!0){S==="disconnect"&&D.catch(()=>{});let C=y.error;if(typeof C=="object"&&C!==null&&C.type!=="STEP_TIMEOUT"){let B={timeoutMs:s.ms,stepName:T.name,stepKey:T.key,attempt:T.attempt};Y in C?C[Y]=B:Object.defineProperty(C,Y,{value:B,enumerable:!1,writable:!0,configurable:!1})}throw C}throw y}finally{clearTimeout(x),M&&m&&m.removeEventListener("abort",M)}}var X={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,retryOn:()=>!0,onRetry:()=>{}};async function pe(e,s){let{onError:T,onEvent:m,catchUnexpected:k,workflowId:S,workflowName:h,context:x,_workflowSignal:M}=s&&typeof s=="object"?s:{},i=S??crypto.randomUUID(),D=!T&&!k,y=[],C=0,B=t=>t??`step_${++C}`,w=t=>{let _=t.context!==void 0||x===void 0?t:{...t,context:x},I=h!==void 0&&_.workflowName===void 0?{..._,workflowName:h}:_;if(I.type==="step_success"){let W=I.stepId;for(let H=y.length-1;H>=0;H--){let U=y[H];if(U.type==="race"&&!U.winnerId){U.winnerId=W;break}}}m?.(I,x)},N=_e,ue=t=>Ie(t),G=(t,_)=>D?_?.origin==="result"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:t,..._.resultCause!==void 0?{cause:_.resultCause}:{}}}:_?.origin==="throw"?{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"throw",error:t,thrown:_.thrown}}:{type:"UNEXPECTED_ERROR",cause:{type:"STEP_FAILURE",origin:"result",error:t}}:t,fe=t=>({type:"UNEXPECTED_ERROR",cause:t.meta.origin==="result"?{type:"STEP_FAILURE",origin:"result",error:t.error,...t.meta.resultCause!==void 0?{cause:t.meta.resultCause}:{}}:{type:"STEP_FAILURE",origin:"throw",error:t.error,thrown:t.meta.thrown}}),ke=t=>typeof t=="function"?!1:!!(t&&typeof t=="object"&&"ok"in t||t&&typeof t=="object"&&"then"in t&&typeof t.then=="function");try{let _=function(o){let c={};for(let[n,p]of Object.entries(o))if(typeof p=="function")c[n]=p;else if(p&&typeof p=="object"&&"fn"in p)c[n]=p.fn;else throw new TypeError(`step.parallel: operation "${n}" must be a function or { fn, errors? } object`);return c},I=function(o,c){let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let p=performance.now(),r=!1;y.push({scopeId:n,type:"parallel"});let a=()=>{if(r)return;r=!0;let u=y.findIndex(d=>d.scopeId===n);u!==-1&&y.splice(u,1),w({type:"scope_end",workflowId:i,scopeId:n,ts:Date.now(),durationMs:performance.now()-p})};w({type:"scope_start",workflowId:i,scopeId:n,scopeType:"parallel",name:o,ts:Date.now()});try{let u=await c();if(a(),!u.ok)throw T?.(u.error,o,x),N(u.error,{origin:"result",resultCause:u.cause});return u.value}catch(u){throw a(),u}})()},W=function(o,c){let n=Object.keys(o),p=c.name??`Parallel(${n.join(", ")})`,r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let a=performance.now(),u=!1;y.push({scopeId:r,type:"parallel"});let d=()=>{if(u)return;u=!0;let R=y.findIndex(f=>f.scopeId===r);R!==-1&&y.splice(R,1),w({type:"scope_end",workflowId:i,scopeId:r,ts:Date.now(),durationMs:performance.now()-a})};w({type:"scope_start",workflowId:i,scopeId:r,scopeType:"parallel",name:p,ts:Date.now()});try{let R=await new Promise(l=>{if(n.length===0){l([]);return}let v=!1,P=n.length,z=new Array(n.length);for(let j=0;j<n.length;j++){let J=n[j],b=j;Promise.resolve(o[J]()).catch(K=>A({type:"PROMISE_REJECTED",cause:K},{cause:{type:"PROMISE_REJECTION",reason:K}})).then(K=>{if(!v){if(!K.ok){v=!0,l([{key:J,result:K}]);return}z[b]={key:J,result:K},P--,P===0&&l(z)}})}});d();let f={};for(let{key:l,result:v}of R){if(!v.ok)throw T?.(v.error,l,x),N(v.error,{origin:"result",resultCause:v.cause});f[l]=v.value}return f}catch(R){throw d(),R}})()};var Fe=_,Le=I,je=W;let t=(o,c,n)=>(async()=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step() requires an explicit string ID as the first argument. Example: step("fetchUser", () => fetchUser(id))');let p=n??{},r=o,a=p.key??o,u=p.key??o,{description:d,retry:R,timeout:f}=p,l=B(a),v=m,P=v?performance.now():0,j=ke(c)?()=>c:c,b={attempts:Math.max(1,R?.attempts??1),backoff:R?.backoff??X.backoff,initialDelay:R?.initialDelay??X.initialDelay,maxDelay:R?.maxDelay??X.maxDelay,jitter:R?.jitter??X.jitter,retryOn:R?.retryOn??X.retryOn,onRetry:R?.onRetry??X.onRetry};m&&w({type:"step_start",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now()});let K;for(let g=1;g<=b.attempts;g++){let Ce=v?performance.now():0;try{let E;if(f?E=await Ne(j,f,{name:r,key:a,attempt:g},M):E=await j(),E.ok){let F=performance.now()-P;return w({type:"step_success",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:F}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:F,result:E}),E.value}if(K=E,g<b.attempts&&b.retryOn(E.error,g)){let F=te(g,b);w({type:"step_retry",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),attempt:g+1,maxAttempts:b.attempts,delayMs:F,error:E.error}),b.onRetry(E.error,g,F),await re(F);continue}b.attempts>1&&w({type:"step_retries_exhausted",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),durationMs:performance.now()-P,attempts:g,lastError:E.error});break}catch(E){let F=performance.now()-Ce;if(Ue(E)){let O=E.ms;w({type:"step_timeout",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),timeoutMs:O,attempt:g}),w({type:"step_success",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:performance.now()-P}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:performance.now()-P,result:L(void 0)});return}if(ue(E))throw w({type:"step_aborted",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:F}),E;if(ne(E)){let O=Oe(E),Q=f?.ms??O?.timeoutMs??0;if(w({type:"step_timeout",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),timeoutMs:Q,attempt:g}),g<b.attempts&&b.retryOn(E,g)){let Z=te(g,b);w({type:"step_retry",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),attempt:g+1,maxAttempts:b.attempts,delayMs:Z,error:E}),b.onRetry(E,g,Z),await re(Z);continue}b.attempts>1&&w({type:"step_retries_exhausted",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),durationMs:performance.now()-P,attempts:g,lastError:E});let ie=performance.now()-P;throw w({type:"step_error",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:ie,error:E}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:ie,result:A(E,{cause:E}),meta:{origin:"throw",thrown:E}}),T?.(E,r,x),N(E,{origin:"throw",thrown:E})}if(g<b.attempts&&b.retryOn(E,g)){let O=te(g,b);w({type:"step_retry",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),attempt:g+1,maxAttempts:b.attempts,delayMs:O,error:E}),b.onRetry(E,g,O),await re(O);continue}b.attempts>1&&!ne(E)&&w({type:"step_retries_exhausted",workflowId:i,stepId:l,stepKey:a,name:r,ts:Date.now(),durationMs:performance.now()-P,attempts:g,lastError:E});let $=performance.now()-P;if(k){let O;try{O=k(E)}catch(Q){throw Me(Q)}throw w({type:"step_error",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:$,error:O}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:$,result:A(O,{cause:E}),meta:{origin:"throw",thrown:E}}),T?.(O,r,x),N(O,{origin:"throw",thrown:E})}else{let O={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:E}};throw w({type:"step_error",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:$,error:O}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:$,result:A(O,{cause:E}),meta:{origin:"throw",thrown:E}}),E}}}let V=K,ae=performance.now()-P,Re=G(V.error,{origin:"result",resultCause:V.cause});throw w({type:"step_error",workflowId:i,stepId:l,stepKey:a,name:r,description:d,ts:Date.now(),durationMs:ae,error:Re}),u&&w({type:"step_complete",workflowId:i,stepKey:u,name:r,description:d,ts:Date.now(),durationMs:ae,result:V,meta:{origin:"result",resultCause:V.cause}}),T?.(V.error,r,x),N(V.error,{origin:"result",resultCause:V.cause})})();t.try=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.try() requires an explicit string ID as the first argument. Example: step.try("parse", () => JSON.parse(str), { error: "PARSE_ERROR" })');let p=n.key??o,r=o,a=o,u="error"in n?()=>n.error:n.onError,d=m;return(async()=>{let R=d?performance.now():0;m&&w({type:"step_start",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now()});try{let f=await c(),l=performance.now()-R;return w({type:"step_success",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now(),durationMs:l}),p&&w({type:"step_complete",workflowId:i,stepKey:p,name:r,ts:Date.now(),durationMs:l,result:L(f)}),f}catch(f){let l=u(f),v=performance.now()-R,P=G(l,{origin:"throw",thrown:f});throw w({type:"step_error",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now(),durationMs:v,error:P}),p&&w({type:"step_complete",workflowId:i,stepKey:p,name:r,ts:Date.now(),durationMs:v,result:A(l,{cause:f}),meta:{origin:"throw",thrown:f}}),T?.(l,r,x),N(l,{origin:"throw",thrown:f})}})()},t.fromResult=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.fromResult() requires an explicit string ID as the first argument. Example: step.fromResult("callProvider", () => callProvider(input), { onError: (e) => ({ type: "FAILED" }) })');let p=n.key??o,r=o,a=o,u="error"in n?()=>n.error:n.onError,d=m;return(async()=>{let R=d?performance.now():0;m&&w({type:"step_start",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now()});let f=await c();if(f.ok){let l=performance.now()-R;return w({type:"step_success",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now(),durationMs:l}),p&&w({type:"step_complete",workflowId:i,stepKey:p,name:r,ts:Date.now(),durationMs:l,result:L(f.value)}),f.value}else{let l=u(f.error),v=performance.now()-R,P=G(l,{origin:"result",resultCause:f.error});throw w({type:"step_error",workflowId:i,stepId:a,stepKey:p,name:r,ts:Date.now(),durationMs:v,error:P}),p&&w({type:"step_complete",workflowId:i,stepKey:p,name:r,ts:Date.now(),durationMs:v,result:A(l,{cause:f.error}),meta:{origin:"result",resultCause:f.error}}),T?.(l,r,x),N(l,{origin:"result",resultCause:f.error})}})()},t.retry=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.retry() requires an explicit string ID as the first argument. Example: step.retry("fetchData", () => fetchData(), { attempts: 3 })');return t(o,c,{key:n.key??o,retry:{attempts:n.attempts,backoff:n.backoff,initialDelay:n.initialDelay,maxDelay:n.maxDelay,jitter:n.jitter,retryOn:n.retryOn,onRetry:n.onRetry},timeout:n.timeout})},t.withTimeout=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.withTimeout() requires an explicit string ID as the first argument. Example: step.withTimeout("slowOp", () => slowOp(), { ms: 5000 })');return t(o,c,{key:n.key??o,timeout:n})},t.sleep=(o,c,n)=>{if(typeof o!="string"||o.length===0)throw new Error('[awaitly] step.sleep() requires an explicit string ID as the first argument. Example: step.sleep("delay", "5s")');let p=typeof c=="string"?ve(c):c;if(!p)throw new Error(`step.sleep: invalid duration '${c}'`);let r=p.millis,a=n?.signal;return t(o,async()=>{if(M?.aborted||a?.aborted){let u=new Error("Sleep aborted");throw u.name="AbortError",u}return new Promise((u,d)=>{let R={timeoutId:void 0},f=()=>{R.timeoutId&&clearTimeout(R.timeoutId);let l=new Error("Sleep aborted");l.name="AbortError",d(l)};M?.addEventListener("abort",f,{once:!0}),a?.addEventListener("abort",f,{once:!0}),R.timeoutId=setTimeout(()=>{M?.removeEventListener("abort",f),a?.removeEventListener("abort",f),u(L(void 0))},r)})},{key:n?.key??o,description:n?.description})},t.parallel=((...o)=>{if(typeof o[0]!="string")throw new TypeError("step.parallel(name, ...): first argument must be a string (step name). Example: step.parallel('Fetch data', { user: () => fetchUser(), posts: () => fetchPosts() })");let c=o[0],n=o[1];if(typeof n=="function")return I(c,n);if(n&&typeof n=="object"&&!Array.isArray(n)){let r=_(n);return W(r,{name:c})}throw new TypeError("step.parallel(name, ...): second argument must be a function (array form) or an object of operations (object form).")}),t.race=(o,c)=>{let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let p=performance.now(),r=!1,a={scopeId:n,type:"race",winnerId:void 0};y.push(a);let u=()=>{if(r)return;r=!0;let d=y.findIndex(R=>R.scopeId===n);d!==-1&&y.splice(d,1),w({type:"scope_end",workflowId:i,scopeId:n,ts:Date.now(),durationMs:performance.now()-p,winnerId:a.winnerId})};w({type:"scope_start",workflowId:i,scopeId:n,scopeType:"race",name:o,ts:Date.now()});try{let d=await c();if(u(),!d.ok)throw T?.(d.error,o,x),N(d.error,{origin:"result",resultCause:d.cause});return d.value}catch(d){throw u(),d}})()},t.allSettled=(o,c)=>{let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let p=performance.now(),r=!1;y.push({scopeId:n,type:"allSettled"});let a=()=>{if(r)return;r=!0;let u=y.findIndex(d=>d.scopeId===n);u!==-1&&y.splice(u,1),w({type:"scope_end",workflowId:i,scopeId:n,ts:Date.now(),durationMs:performance.now()-p})};w({type:"scope_start",workflowId:i,scopeId:n,scopeType:"allSettled",name:o,ts:Date.now()});try{let u=await c();if(a(),!u.ok)throw T?.(u.error,o,x),N(u.error,{origin:"result",resultCause:u.cause});return u.value}catch(u){throw a(),u}})()},t.if=(o,c,n)=>n(),t.label=t.if,t.branch=async(o,c)=>{let{condition:n,then:p,else:r}=c;if(n())return await p();if(r)return await r()},t.arm=(o,c)=>({fn:o,errors:c}),t.forEach=async(o,c,n)=>{let p=[],r=n.maxIterations,a=0,u="run"in n,d=Symbol.asyncIterator in c?c:(async function*(){yield*c})();for await(let R of d){if(r!==void 0&&a>=r)break;let f;u?f=await n.run(R,a):f=await n.item.handler(R,a,t),p.push(f),a++}return p},t.item=o=>({__forEachItemHandler:!0,handler:o}),t.dep=(o,c)=>c;let U=await e(t);if(process.env.NODE_ENV!=="production"&&U!==null&&typeof U=="object"&&"ok"in U&&typeof U.ok=="boolean"){let o=U;(o.ok===!0&&"value"in o||o.ok===!1&&"error"in o)&&console.warn(`awaitly: Workflow executor returned a Result-like object. Return raw values, not ok() or err().
|
|
2
2
|
|
|
3
3
|
Incorrect: return ok({ data });
|
|
4
4
|
Correct: return { data };
|
|
5
5
|
|
|
6
|
-
See: https://jagreehal.github.io/awaitly/guides/troubleshooting/#returning-ok-from-workflow-executor-double-wrapping`)}return L(U)}catch(t){if(De(t))throw t.thrown;if(ue(t)){let
|
|
6
|
+
See: https://jagreehal.github.io/awaitly/guides/troubleshooting/#returning-ok-from-workflow-executor-double-wrapping`)}return L(U)}catch(t){if(De(t))throw t.thrown;if(ue(t)){let I=t.meta.origin==="throw"?t.meta.thrown:t.meta.resultCause;if(k||T)return A(t.error,{cause:I});if(Pe(t.error))return A(t.error,{cause:I});if(ne(t.error))return A(t.error,{cause:I});let W=fe(t);return A(W,{cause:I})}if(k){let I=k(t);return T?.(I,"unexpected",x),A(I,{cause:t})}let _={type:"UNEXPECTED_ERROR",cause:{type:"UNCAUGHT_EXCEPTION",thrown:t}};return T?.(_,"unexpected",x),A(_,{cause:t})}}pe.strict=(e,s)=>pe(e,s);function me(e){return typeof e=="object"&&e!==null&&e.type==="EVENT_TIMEOUT"}function ye(e){return typeof e=="object"&&e!==null&&e.type==="INVALID_EMITTER"}function we(e,s){return new Promise(T=>{try{e((m,k)=>{if(m){let S=s?.onError?s.onError(m):m;T(A(S,{cause:m}))}else T(L(k))})}catch(m){let k=m instanceof Error?m:new Error(String(m)),S=s?.onError?s.onError(k):k;T(A(S,{cause:m}))}})}function oe(e){return typeof e=="object"&&e!==null&&"on"in e&&"off"in e&&typeof e.on=="function"&&typeof e.off=="function"}function se(e){return typeof e=="object"&&e!==null&&"addEventListener"in e&&"removeEventListener"in e&&typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"}function de(e,s,T){return new Promise(m=>{let k,S=!1,h=oe(e)?(y,C)=>e.on(y,C):se(e)?(y,C)=>e.addEventListener(y,C):null,x=oe(e)?(y,C)=>e.off(y,C):se(e)?(y,C)=>e.removeEventListener(y,C):null;if(!h||!x){m(A({type:"INVALID_EMITTER",message:"Object does not have on/off or addEventListener/removeEventListener"}));return}let M=(...y)=>{S||(S=!0,D(),m(L(y[0])))},i=(...y)=>{if(S)return;S=!0,D();let C=y[0],B=T?.onError?T.onError(C):C;m(A(B,{cause:C}))},D=()=>{k&&clearTimeout(k),x(s.success,M),s.error&&x(s.error,i)};h(s.success,M),s.error&&h(s.error,i),s.timeout&&(k=setTimeout(()=>{if(S)return;S=!0,D();let y={type:"EVENT_TIMEOUT",event:s.success,timeoutMs:s.timeout};m(A(y))},s.timeout))})}function Te(e){return oe(e)||se(e)}0&&(module.exports={fromCallback,fromEvent,isEventEmitterLike,isEventTimeoutError,isInvalidEmitterError});
|
|
7
7
|
//# sourceMappingURL=adapters.cjs.map
|