awaitly 1.35.0 → 2.0.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/{duration.d.ts → di-BDlT7InM.d.cts} +15 -1
- package/dist/{duration.d.cts → di-BbFFfO8y.d.ts} +15 -1
- package/dist/errors-DtXvrCiO.d.cts +708 -0
- package/dist/errors-DtXvrCiO.d.ts +708 -0
- package/dist/index.cjs +4594 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1970 -141
- package/dist/index.d.ts +1970 -141
- package/dist/index.js +4398 -1
- package/dist/index.js.map +1 -1
- package/dist/result.cjs +641 -1
- package/dist/result.cjs.map +1 -1
- package/dist/result.d.cts +29 -4
- package/dist/result.d.ts +29 -4
- package/dist/result.js +561 -1
- package/dist/result.js.map +1 -1
- package/dist/testing.cjs +4202 -8
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +2 -6
- package/dist/testing.d.ts +2 -6
- package/dist/testing.js +4154 -8
- package/dist/testing.js.map +1 -1
- package/dist/{run-entry-DGs0tySr.d.cts → types-B8NfNRGX.d.ts} +1078 -1502
- package/dist/{run-entry-BOuNyVoO.d.ts → types-BZ2f4MRR.d.cts} +1078 -1502
- package/dist/workflow.cjs +7096 -6
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +3346 -22
- package/dist/workflow.d.ts +3346 -22
- package/dist/workflow.js +6929 -6
- package/dist/workflow.js.map +1 -1
- package/package.json +3 -168
- package/dist/adapters.cjs +0 -7
- package/dist/adapters.cjs.map +0 -1
- package/dist/adapters.d.cts +0 -179
- package/dist/adapters.d.ts +0 -179
- package/dist/adapters.js +0 -7
- package/dist/adapters.js.map +0 -1
- package/dist/batch.cjs +0 -7
- package/dist/batch.cjs.map +0 -1
- package/dist/batch.d.cts +0 -200
- package/dist/batch.d.ts +0 -200
- package/dist/batch.js +0 -7
- package/dist/batch.js.map +0 -1
- package/dist/bind-deps.cjs +0 -2
- package/dist/bind-deps.cjs.map +0 -1
- package/dist/bind-deps.d.cts +0 -28
- package/dist/bind-deps.d.ts +0 -28
- package/dist/bind-deps.js +0 -2
- package/dist/bind-deps.js.map +0 -1
- package/dist/cache.cjs +0 -2
- package/dist/cache.cjs.map +0 -1
- package/dist/cache.d.cts +0 -269
- package/dist/cache.d.ts +0 -269
- package/dist/cache.js +0 -2
- package/dist/cache.js.map +0 -1
- package/dist/circuit-breaker.cjs +0 -7
- package/dist/circuit-breaker.cjs.map +0 -1
- package/dist/circuit-breaker.d.cts +0 -211
- package/dist/circuit-breaker.d.ts +0 -211
- package/dist/circuit-breaker.js +0 -7
- package/dist/circuit-breaker.js.map +0 -1
- package/dist/conditional.cjs +0 -2
- package/dist/conditional.cjs.map +0 -1
- package/dist/conditional.d.cts +0 -252
- package/dist/conditional.d.ts +0 -252
- package/dist/conditional.js +0 -2
- package/dist/conditional.js.map +0 -1
- package/dist/core.cjs +0 -7
- package/dist/core.cjs.map +0 -1
- package/dist/core.d.cts +0 -5
- package/dist/core.d.ts +0 -5
- package/dist/core.js +0 -7
- package/dist/core.js.map +0 -1
- package/dist/di-By77n4Fa.d.ts +0 -15
- package/dist/di-OJfsohf-.d.cts +0 -15
- package/dist/diagnostics.cjs +0 -8
- package/dist/diagnostics.cjs.map +0 -1
- package/dist/diagnostics.d.cts +0 -68
- package/dist/diagnostics.d.ts +0 -68
- package/dist/diagnostics.js +0 -8
- package/dist/diagnostics.js.map +0 -1
- package/dist/durable.cjs +0 -11
- package/dist/durable.cjs.map +0 -1
- package/dist/durable.d.cts +0 -9
- package/dist/durable.d.ts +0 -9
- package/dist/durable.js +0 -11
- package/dist/durable.js.map +0 -1
- package/dist/duration.cjs +0 -2
- package/dist/duration.cjs.map +0 -1
- package/dist/duration.js +0 -2
- package/dist/duration.js.map +0 -1
- package/dist/engine.cjs +0 -11
- package/dist/engine.cjs.map +0 -1
- package/dist/engine.d.cts +0 -115
- package/dist/engine.d.ts +0 -115
- package/dist/engine.js +0 -11
- package/dist/engine.js.map +0 -1
- package/dist/errors.cjs +0 -2
- package/dist/errors.cjs.map +0 -1
- package/dist/errors.d.cts +0 -361
- package/dist/errors.d.ts +0 -361
- package/dist/errors.js +0 -2
- package/dist/errors.js.map +0 -1
- package/dist/fetch.cjs +0 -7
- package/dist/fetch.cjs.map +0 -1
- package/dist/fetch.d.cts +0 -86
- package/dist/fetch.d.ts +0 -86
- package/dist/fetch.js +0 -7
- package/dist/fetch.js.map +0 -1
- package/dist/flow.cjs +0 -7
- package/dist/flow.cjs.map +0 -1
- package/dist/flow.d.cts +0 -163
- package/dist/flow.d.ts +0 -163
- package/dist/flow.js +0 -7
- package/dist/flow.js.map +0 -1
- package/dist/functional.cjs +0 -2
- package/dist/functional.cjs.map +0 -1
- package/dist/functional.d.cts +0 -444
- package/dist/functional.d.ts +0 -444
- package/dist/functional.js +0 -2
- package/dist/functional.js.map +0 -1
- package/dist/guards-4sV7mTqj.d.cts +0 -72
- package/dist/guards-BIX05ALH.d.ts +0 -72
- package/dist/hitl-DFn4Xa_l.d.cts +0 -468
- package/dist/hitl-DU5VpKq7.d.ts +0 -468
- package/dist/hitl.cjs +0 -7
- package/dist/hitl.cjs.map +0 -1
- package/dist/hitl.d.cts +0 -442
- package/dist/hitl.d.ts +0 -442
- package/dist/hitl.js +0 -7
- package/dist/hitl.js.map +0 -1
- package/dist/index-CnvBryQB.d.ts +0 -417
- package/dist/index-DEZEf8Fs.d.cts +0 -417
- package/dist/match-entry-DjI2bLpD.d.cts +0 -209
- package/dist/match-entry-DjI2bLpD.d.ts +0 -209
- package/dist/match.cjs +0 -2
- package/dist/match.cjs.map +0 -1
- package/dist/match.d.cts +0 -1
- package/dist/match.d.ts +0 -1
- package/dist/match.js +0 -2
- package/dist/match.js.map +0 -1
- package/dist/otel.cjs +0 -2
- package/dist/otel.cjs.map +0 -1
- package/dist/otel.d.cts +0 -188
- package/dist/otel.d.ts +0 -188
- package/dist/otel.js +0 -2
- package/dist/otel.js.map +0 -1
- package/dist/persistence-entry-B-8PjnSR.d.cts +0 -831
- package/dist/persistence-entry-D8zRkLiT.d.ts +0 -831
- package/dist/persistence.cjs +0 -2
- package/dist/persistence.cjs.map +0 -1
- package/dist/persistence.d.cts +0 -7
- package/dist/persistence.d.ts +0 -7
- package/dist/persistence.js +0 -2
- package/dist/persistence.js.map +0 -1
- package/dist/policies.cjs +0 -2
- package/dist/policies.cjs.map +0 -1
- package/dist/policies.d.cts +0 -379
- package/dist/policies.d.ts +0 -379
- package/dist/policies.js +0 -2
- package/dist/policies.js.map +0 -1
- package/dist/ratelimit.cjs +0 -7
- package/dist/ratelimit.cjs.map +0 -1
- package/dist/ratelimit.d.cts +0 -458
- package/dist/ratelimit.d.ts +0 -458
- package/dist/ratelimit.js +0 -7
- package/dist/ratelimit.js.map +0 -1
- package/dist/reliability.cjs +0 -11
- package/dist/reliability.cjs.map +0 -1
- package/dist/reliability.d.cts +0 -11
- package/dist/reliability.d.ts +0 -11
- package/dist/reliability.js +0 -11
- package/dist/reliability.js.map +0 -1
- package/dist/resolver.cjs +0 -7
- package/dist/resolver.cjs.map +0 -1
- package/dist/resolver.d.cts +0 -68
- package/dist/resolver.d.ts +0 -68
- package/dist/resolver.js +0 -7
- package/dist/resolver.js.map +0 -1
- package/dist/resource.cjs +0 -7
- package/dist/resource.cjs.map +0 -1
- package/dist/resource.d.cts +0 -174
- package/dist/resource.d.ts +0 -174
- package/dist/resource.js +0 -7
- package/dist/resource.js.map +0 -1
- package/dist/result/retry.cjs +0 -2
- package/dist/result/retry.cjs.map +0 -1
- package/dist/result/retry.d.cts +0 -70
- package/dist/result/retry.d.ts +0 -70
- package/dist/result/retry.js +0 -2
- package/dist/result/retry.js.map +0 -1
- package/dist/retry.cjs +0 -2
- package/dist/retry.cjs.map +0 -1
- package/dist/retry.d.cts +0 -388
- package/dist/retry.d.ts +0 -388
- package/dist/retry.js +0 -2
- package/dist/retry.js.map +0 -1
- package/dist/run.cjs +0 -7
- package/dist/run.cjs.map +0 -1
- package/dist/run.d.cts +0 -4
- package/dist/run.d.ts +0 -4
- package/dist/run.js +0 -7
- package/dist/run.js.map +0 -1
- package/dist/saga.cjs +0 -11
- package/dist/saga.cjs.map +0 -1
- package/dist/saga.d.cts +0 -164
- package/dist/saga.d.ts +0 -164
- package/dist/saga.js +0 -11
- package/dist/saga.js.map +0 -1
- package/dist/singleflight.cjs +0 -2
- package/dist/singleflight.cjs.map +0 -1
- package/dist/singleflight.d.cts +0 -145
- package/dist/singleflight.d.ts +0 -145
- package/dist/singleflight.js +0 -2
- package/dist/singleflight.js.map +0 -1
- package/dist/slugs.cjs +0 -2
- package/dist/slugs.cjs.map +0 -1
- package/dist/slugs.d.cts +0 -67
- package/dist/slugs.d.ts +0 -67
- package/dist/slugs.js +0 -2
- package/dist/slugs.js.map +0 -1
- package/dist/streaming.cjs +0 -9
- package/dist/streaming.cjs.map +0 -1
- package/dist/streaming.d.cts +0 -596
- package/dist/streaming.d.ts +0 -596
- package/dist/streaming.js +0 -9
- package/dist/streaming.js.map +0 -1
- package/dist/tagged-error.cjs +0 -2
- package/dist/tagged-error.cjs.map +0 -1
- package/dist/tagged-error.d.cts +0 -275
- package/dist/tagged-error.d.ts +0 -275
- package/dist/tagged-error.js +0 -2
- package/dist/tagged-error.js.map +0 -1
- package/dist/types-BziYHFkD.d.ts +0 -323
- package/dist/types-C5jLEUqY.d.cts +0 -323
- package/dist/webhook.cjs +0 -7
- package/dist/webhook.cjs.map +0 -1
- package/dist/webhook.d.cts +0 -499
- package/dist/webhook.d.ts +0 -499
- package/dist/webhook.js +0 -7
- package/dist/webhook.js.map +0 -1
package/dist/batch.cjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";var de=Object.defineProperty;var Ke=Object.getOwnPropertyDescriptor;var Be=Object.getOwnPropertyNames;var Ve=Object.prototype.hasOwnProperty;var We=(e,r)=>{for(var E in r)de(e,E,{get:r[E],enumerable:!0})},He=(e,r,E,C)=>{if(r&&typeof r=="object"||typeof r=="function")for(let w of Be(r))!Ve.call(e,w)&&w!==E&&de(e,w,{get:()=>r[w],enumerable:!(C=Ke(r,w))||C.enumerable});return e};var qe=e=>He(de({},"__esModule",{value:!0}),e);var lr={};We(lr,{batchPresets:()=>cr,isBatchProcessingError:()=>Ne,isInvalidBatchConfigError:()=>ar,processInBatches:()=>ur});module.exports=qe(lr);var $e={"step-require-id":"step-require-id","step-no-immediate-execution":"step-no-immediate-execution","step-require-thunk-for-key":"step-require-thunk-for-key","step-no-bare-await":"step-no-bare-await","step-no-try-catch-wrap":"step-no-try-catch-wrap","step-stable-cache-keys":"step-stable-cache-keys","workflow-no-floating":"workflow-no-floating","workflow-options-position":"workflow-options-position","workflow-callback-shape":"workflow-callback-shape","workflow-no-callable-form":"workflow-no-callable-form","workflow-no-dynamic-import":"workflow-no-dynamic-import","result-no-floating":"result-no-floating","result-require-handling":"result-require-handling","result-no-double-wrap":"result-no-double-wrap","result-no-manual-propagation":"result-no-manual-propagation","result-no-direct-ok-err":"result-no-direct-ok-err","error-check-unexpected-first":"error-check-unexpected-first","error-access-cause":"error-access-cause","error-normalize":"error-normalize","error-no-throw-in-deps":"error-no-throw-in-deps","concurrency-no-promise-all":"concurrency-no-promise-all","concurrency-no-promise-race":"concurrency-no-promise-race","concurrency-no-promise-allsettled":"concurrency-no-promise-allsettled","runtime-step-timeout":"runtime-step-timeout","runtime-step-aborted":"runtime-step-aborted","runtime-retry-exhausted":"runtime-retry-exhausted","runtime-rate-limit":"runtime-rate-limit","runtime-circuit-open":"runtime-circuit-open","runtime-unexpected":"runtime-unexpected","runtime-resolver-not-found":"runtime-resolver-not-found","runtime-saga-compensation":"runtime-saga-compensation"};function Te(e){return`https://jagreehal.github.io/awaitly/rules/#${e}`}var dr=Object.keys($e);var se=class extends Error{_tag};function j(e,r){return class extends se{_tag=e;constructor(E,C){let w=r?.message?r.message(E??{}):e;if(super(w),this.name=e,r?.slug!==void 0){if(!r.hint)throw new TypeError(`TaggedError: 'hint' is required when 'slug' is set (slug: "${r.slug}")`);Object.defineProperty(this,"code",{value:r.slug,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"hint",{value:r.hint,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"docsUrl",{value:Te(r.slug),enumerable:!0,writable:!1,configurable:!1})}if(Object.setPrototypeOf(this,new.target.prototype),E&&typeof E=="object"){let u;if(r?.slug!==void 0){let{_tag:_,name:h,message:U,stack:s,code:L,hint:F,docsUrl:Z,...q}=E;u=q}else{let{_tag:_,name:h,message:U,stack:s,...L}=E;u=L}let y=Object.prototype.hasOwnProperty.call(u,"cause"),A=y?u.cause:void 0;y&&delete u.cause;let O=C?.cause!==void 0;if(y&&O)throw new TypeError("TaggedError: cannot provide 'cause' in props when also setting ErrorOptions.cause");Object.assign(this,u),y&&(this.cause=A),O&&(this.cause=C?.cause)}else C?.cause!==void 0&&(this.cause=C.cause)}}}Object.defineProperty(j,Symbol.hasInstance,{value:e=>e instanceof se});(w=>{function e(u){return u instanceof Error}w.isError=e;function r(u){return u instanceof se}w.isTaggedError=r;function E(u,y){let A=u._tag,O=y[A];return O(u)}w.match=E;function C(u,y,A){let O=u._tag,_=y[O];return _?_(u):A(u)}w.matchPartial=C})(j||={});var ke=class extends j("TimeoutError",{slug:"runtime-step-timeout",hint:"Increase the step's timeout option, or check why the upstream operation is slow.",message:r=>r.operation?`TimeoutError: ${r.operation} timed out after ${r.ms}ms`:`TimeoutError: Operation timed out after ${r.ms}ms`}){},Re=class extends j("RetryExhaustedError",{slug:"runtime-retry-exhausted",hint:"All retry attempts failed. Inspect lastError and decide whether to surface it or compensate.",message:r=>r.operation?`RetryExhaustedError: ${r.operation} failed after ${r.attempts} attempts`:`RetryExhaustedError: Operation failed after ${r.attempts} attempts`}){},ge=class extends j("RateLimitError",{slug:"runtime-rate-limit",hint:"Wait retryAfterMs before retrying, or apply step.cache to deduplicate calls.",message:r=>r.limiterName?`RateLimitError: Rate limit exceeded for ${r.limiterName}${r.retryAfterMs?`, retry after ${r.retryAfterMs}ms`:""}`:`RateLimitError: Rate limit exceeded${r.retryAfterMs?`, retry after ${r.retryAfterMs}ms`:""}`}){},xe=class extends j("CircuitBreakerOpenError",{slug:"runtime-circuit-open",hint:"The circuit is open. Wait for it to half-open or fall back to a degraded path.",message:r=>`CircuitBreakerOpenError: Circuit ${r.circuitName} is ${r.state??"OPEN"}${r.retryAfterMs?`, retry after ${Math.ceil(r.retryAfterMs/1e3)}s`:""}`}){},Ce=class extends j("ValidationError",{message:r=>`ValidationError: Invalid ${r.field} - ${r.reason}`}){},he=class extends j("NotFoundError",{message:r=>r.id?`NotFoundError: ${r.resource} with id ${r.id} not found`:`NotFoundError: ${r.resource} not found`}){},be=class extends j("UnauthorizedError",{message:r=>r.reason?`UnauthorizedError: ${r.reason}`:r.action&&r.resource?`UnauthorizedError: Not authorized to ${r.action} ${r.resource}`:"UnauthorizedError: Access denied"}){},Ae=class extends j("NetworkError",{message:r=>r.url?`NetworkError: ${r.reason} (${r.url})`:`NetworkError: ${r.reason}`}){},Se=class extends j("CompensationError",{slug:"runtime-saga-compensation",hint:"A saga compensation step failed. Inspect compensationError and ensure compensation is idempotent.",message:r=>`CompensationError: Failed to compensate step ${r.step}`}){},ie=class extends j("UnexpectedError",{slug:"runtime-unexpected",hint:"An unexpected exception escaped a step. Inspect cause; consider returning a typed Result instead of throwing.",message:r=>`UnexpectedError: ${r.cause instanceof Error?r.cause.message:String(r.cause??"unknown")}`}){};function Pe(e){return{ok:!0,value:e}}var ze=e=>typeof e=="object"&&e!==null&&"ok"in e&&typeof e.ok=="boolean"&&(e.ok?"value"in e:"error"in e),ve=(e,r)=>{let E={},C=new Map;for(let w of Object.keys(e)){let u=e[w];typeof u=="function"&&(E[w]=(...y)=>{let A=(C.get(w)??0)+1;C.set(w,A);let O=A===1?w:`${w}#${A}`;return r(O,async()=>{let _=await u(...y);return ze(_)?_:Pe(_)})})}return E};function Ye(e){let r=e.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!r)return;let E=parseFloat(r[1]),C=r[2].toLowerCase();return{_tag:"Duration",millis:E*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[C]??1)}}function Je(e){return new ie({cause:e})}function B(e){return{ok:!0,value:e}}function N(e,r){let E=r?.cause;return{ok:!1,error:e,...E!==void 0?{cause:E}:{}}}function Ge(e){if(e==null)return"unknown";if(typeof e=="string")return e.trim()||"unknown";if(typeof e=="object"){let r=e;if(typeof r._tag=="string"){let E=r._tag.trim();if(E)return E}if(typeof r.tag=="string"){let E=r.tag.trim();if(E)return E}if(typeof r.code=="string"){let E=r.code.trim();if(E)return E}else if(typeof r.code=="number")return String(r.code);if(e instanceof Error&&e.name){let E=e.name.trim();if(E)return E}}return"unknown"}function Qe(e,r){if(!(!r||!e))return r[e]}function Xe(e){let{intent:r,domain:E,owner:C,tags:w,stateChanges:u,emits:y,calls:A}=e;if(!r&&!E&&!C&&!w?.length&&!u?.length&&!y?.length&&!A?.length)return;let O={};return r&&(O.intent=r),E&&(O.domain=E),C&&(O.owner=C),w?.length&&(O.tags=w),u?.length&&(O.stateChanges=u),y?.length&&(O.emits=y),A?.length&&(O.calls=A),O}function W(e,r,E,C,w){let u=Ge(e),y=Qe(u,r),A={tag:u,origin:E};return y!==void 0&&(A.classification=y),C!==void 0&&(A.attempt=C),w!==void 0&&(A.cumulativeDurationMs=w),A}var te=Symbol.for("step_timeout_marker");function _e(e){return typeof e!="object"||e===null?!1:e.type==="STEP_TIMEOUT"?!0:te in e}function Ze(e){if(!(typeof e!="object"||e===null)){if(e.type==="STEP_TIMEOUT"){let r=e;return{timeoutMs:r.timeoutMs,stepName:r.stepName,stepKey:r.stepKey,attempt:r.attempt}}if(te in e)return e[te]}}var Me=Symbol("early-exit");function er(e,r){return{[Me]:!0,error:e,meta:r}}function rr(e){return typeof e=="object"&&e!==null&&e[Me]===!0}var De=Symbol("mapper-exception");function ee(e){return{[De]:!0,thrown:e}}function tr(e){return typeof e=="object"&&e!==null&&e[De]===!0}function ye(e,r){let{backoff:E,initialDelay:C,maxDelay:w,jitter:u}=r,y;switch(E){case"fixed":y=C;break;case"linear":y=C*e;break;case"exponential":y=C*Math.pow(2,e-1);break}if(y=Math.min(y,w),u){let A=y*.25*Math.random();y=y+A}return Math.floor(y)}function fe(e){return new Promise(r=>setTimeout(r,e))}var Oe=Symbol("timeout"),ue=Symbol("timeout-option");function nr(e){return typeof e=="object"&&e!==null&&e[ue]===!0}async function or(e,r,E,C){let w=new AbortController,u=r.onTimeout??"error",y=()=>typeof u=="function"?u({name:E.name,key:E.key,ms:r.ms}):r.error??{type:"STEP_TIMEOUT",stepName:E.name,stepKey:E.key,timeoutMs:r.ms,attempt:E.attempt},A;C?.aborted&&w.abort(C.reason);let O;C&&!C.aborted&&(O=()=>w.abort(C.reason),C.addEventListener("abort",O,{once:!0}));let _=new Promise((U,s)=>{A=setTimeout(()=>{if(u!=="disconnect"&&w.abort(),u==="option"){s({[ue]:!0,ms:r.ms});return}s({[Oe]:!0,error:y()})},r.ms)}),h;r.signal?h=Promise.resolve(e(w.signal)):h=Promise.resolve(e());try{return await Promise.race([h,_])}catch(U){if(typeof U=="object"&&U!==null&&U[ue]===!0)throw{[ue]:!0,ms:r.ms};if(typeof U=="object"&&U!==null&&U[Oe]===!0){u==="disconnect"&&h.catch(()=>{});let s=U.error;if(typeof s=="object"&&s!==null&&s.type!=="STEP_TIMEOUT"){let L={timeoutMs:r.ms,stepName:E.name,stepKey:E.key,attempt:E.attempt};te in s?s[te]=L:Object.defineProperty(s,te,{value:L,enumerable:!1,writable:!0,configurable:!1})}throw s}throw U}finally{clearTimeout(A),O&&C&&C.removeEventListener("abort",O)}}var re={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:()=>!0,onRetry:()=>{}};async function we(e,r,E){if(typeof e!="function"){let p=e,K=r;if(typeof K!="function")throw new TypeError("[awaitly] run(deps, fn) requires a callback as the second argument. Example: run({ getUser }, async (s) => s.getUser(id))");return we(({step:Q})=>K(ve(p,Q),{step:Q}),E)}let C=e,w=r,{onError:u,onEvent:y,catchUnexpected:A,workflowId:O,workflowName:_,context:h,_workflowSignal:U}=w&&typeof w=="object"?w:{},s=O??crypto.randomUUID(),L=A??Je,F=[],Z=0,q=p=>p??`step_${++Z}`,c=p=>{let K=p.context!==void 0||h===void 0?p:{...p,context:h},z=_!==void 0&&K.workflowName===void 0?{...K,workflowName:_}:K;if(z.type==="step_success"){let Q=z.stepId;for(let ae=F.length-1;ae>=0;ae--){let H=F[ae];if(H.type==="race"&&!H.winnerId){H.winnerId=Q;break}}}y?.(z,h)},I=er,$=p=>rr(p),V=(p,K)=>p,ne=p=>typeof p=="function"?!1:!!(p&&typeof p=="object"&&"ok"in p||p&&typeof p=="object"&&"then"in p&&typeof p.then=="function");try{let K=function(a){let m={};for(let[n,o]of Object.entries(a))if(typeof o=="function")m[n]=o;else if(o&&typeof o=="object"&&"fn"in o)m[n]=o.fn;else throw new TypeError(`step.all: operation "${n}" must be a function or { fn, errors? } object`);return m},z=function(a,m){let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),t=!1;F.push({scopeId:n,type:"parallel"});let i=()=>{if(t)return;t=!0;let l=F.findIndex(d=>d.scopeId===n);l!==-1&&F.splice(l,1),c({type:"scope_end",workflowId:s,scopeId:n,ts:Date.now(),durationMs:performance.now()-o})};c({type:"scope_start",workflowId:s,scopeId:n,scopeType:"parallel",name:a,ts:Date.now()});try{let l=await m();if(i(),!l.ok)throw u?.(l.error,a,h),I(l.error,{origin:"result",resultCause:l.cause});return l.value}catch(l){throw i(),l}})()},Q=function(a,m){let n=Object.keys(a),o=m.name??`Parallel(${n.join(", ")})`,t=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let i=performance.now(),l=!1;F.push({scopeId:t,type:"parallel"});let d=()=>{if(l)return;l=!0;let f=F.findIndex(T=>T.scopeId===t);f!==-1&&F.splice(f,1),c({type:"scope_end",workflowId:s,scopeId:t,ts:Date.now(),durationMs:performance.now()-i})};c({type:"scope_start",workflowId:s,scopeId:t,scopeType:"parallel",name:o,ts:Date.now()});try{let f=await new Promise(R=>{if(n.length===0){R([]);return}let P=!1,D=n.length,g=new Array(n.length);for(let M=0;M<n.length;M++){let x=n[M],S=M;Promise.resolve(a[x]()).catch(b=>N({type:"PROMISE_REJECTED",cause:b},{cause:{type:"PROMISE_REJECTION",reason:b}})).then(b=>{if(!P){if(!b.ok){P=!0,R([{key:x,result:b}]);return}g[S]={key:x,result:b},D--,D===0&&R(g)}})}});d();let T={};for(let{key:R,result:P}of f){if(!P.ok)throw u?.(P.error,R,h),I(P.error,{origin:"result",resultCause:P.cause});T[R]=P.value}return T}catch(f){throw d(),f}})()};var Le=K,pr=z,Er=Q;let p=(a,m,n)=>(async()=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step() requires an explicit string ID as the first argument. Example: step("fetchUser", () => fetchUser(id))');let o=n??{},t=Xe(o),i=a,l=o.key??a,d=o.key??a,{description:f,retry:T,timeout:R}=o,P=q(l),D=y,g=D?performance.now():0,x=ne(m)?()=>m:m,b={attempts:Math.max(1,T?.attempts??1),backoff:T?.backoff??re.backoff,initialDelay:T?.initialDelay??re.initialDelay,maxDelay:T?.maxDelay??re.maxDelay,jitter:T?.jitter??re.jitter,shouldRetry:T?.shouldRetry??re.shouldRetry,onRetry:T?.onRetry??re.onRetry};y&&c({type:"step_start",workflowId:s,stepId:P,stepKey:l,name:i,description:f,ts:Date.now(),...t&&{metadata:t}});let X;for(let v=1;v<=b.attempts;v++){let Fe=D?performance.now():0;try{let k;if(R?k=await or(x,R,{name:i,key:l,attempt:v},U):k=await x(),k.ok){let G=performance.now()-g;return c({type:"step_success",workflowId:s,stepId:P,stepKey:l,name:i,description:f,ts:Date.now(),durationMs:G,...t&&{metadata:t}}),d&&c({type:"step_complete",workflowId:s,stepKey:d,name:i,description:f,ts:Date.now(),durationMs:G,result:k,...t&&{metadata:t}}),k.value}if(X=k,v<b.attempts&&b.shouldRetry(k.error,v)){let G=ye(v,b);c({type:"step_retry",workflowId:s,stepId:P,stepKey:l,name:i,ts:Date.now(),attempt:v+1,maxAttempts:b.attempts,delayMs:G,error:k.error,...t&&{metadata:t},diagnostics:W(k.error,o.errorMeta,"result",v,performance.now()-g)}),b.onRetry(k.error,v,G),await fe(G);continue}b.attempts>1&&c({type:"step_retries_exhausted",workflowId:s,stepId:P,stepKey:l,name:i,ts:Date.now(),durationMs:performance.now()-g,attempts:v,lastError:k.error,...t&&{metadata:t},diagnostics:W(k.error,o.errorMeta,"result",v,performance.now()-g)});break}catch(k){let G=performance.now()-Fe;if(nr(k)){let Y=k.ms;c({type:"step_timeout",workflowId:s,stepId:P,stepKey:l,name:i,ts:Date.now(),timeoutMs:Y,attempt:v,...t&&{metadata:t},diagnostics:W(k,o.errorMeta,"timeout",v)}),c({type:"step_success",workflowId:s,stepId:P,stepKey:l,name:i,description:f,ts:Date.now(),durationMs:performance.now()-g,...t&&{metadata:t}}),d&&c({type:"step_complete",workflowId:s,stepKey:d,name:i,description:f,ts:Date.now(),durationMs:performance.now()-g,result:B(void 0),...t&&{metadata:t}});return}if($(k))throw c({type:"step_aborted",workflowId:s,stepId:P,stepKey:l,name:i,description:f,ts:Date.now(),durationMs:G,...t&&{metadata:t}}),k;if(_e(k)){let Y=Ze(k),je=R?.ms??Y?.timeoutMs??0;if(c({type:"step_timeout",workflowId:s,stepId:P,stepKey:l,name:i,ts:Date.now(),timeoutMs:je,attempt:v,...t&&{metadata:t},diagnostics:W(k,o.errorMeta,"timeout",v)}),v<b.attempts&&b.shouldRetry(k,v)){let me=ye(v,b);c({type:"step_retry",workflowId:s,stepId:P,stepKey:l,name:i,ts:Date.now(),attempt:v+1,maxAttempts:b.attempts,delayMs:me,error:k,...t&&{metadata:t},diagnostics:W(k,o.errorMeta,"timeout",v,performance.now()-g)}),b.onRetry(k,v,me),await fe(me);continue}b.attempts>1&&c({type:"step_retries_exhausted",workflowId:s,stepId:P,stepKey:l,name:i,ts:Date.now(),durationMs:performance.now()-g,attempts:v,lastError:k,...t&&{metadata:t},diagnostics:W(k,o.errorMeta,"timeout",v,performance.now()-g)});let Ee=performance.now()-g;throw c({type:"step_error",workflowId:s,stepId:P,stepKey:l,name:i,description:f,ts:Date.now(),durationMs:Ee,error:k,...t&&{metadata:t},diagnostics:W(k,o.errorMeta,"timeout",v,Ee)}),d&&c({type:"step_complete",workflowId:s,stepKey:d,name:i,description:f,ts:Date.now(),durationMs:Ee,result:N(k,{cause:k}),meta:{origin:"throw",thrown:k},...t&&{metadata:t}}),u?.(k,i,h),I(k,{origin:"throw",thrown:k})}if(v<b.attempts&&b.shouldRetry(k,v)){let Y=ye(v,b);c({type:"step_retry",workflowId:s,stepId:P,stepKey:l,name:i,ts:Date.now(),attempt:v+1,maxAttempts:b.attempts,delayMs:Y,error:k,...t&&{metadata:t},diagnostics:W(k,o.errorMeta,"throw",v,performance.now()-g)}),b.onRetry(k,v,Y),await fe(Y);continue}b.attempts>1&&!_e(k)&&c({type:"step_retries_exhausted",workflowId:s,stepId:P,stepKey:l,name:i,ts:Date.now(),durationMs:performance.now()-g,attempts:v,lastError:k,...t&&{metadata:t},diagnostics:W(k,o.errorMeta,"throw",v,performance.now()-g)});let pe=performance.now()-g,oe;try{oe=L(k)}catch(Y){throw ee(Y)}throw c({type:"step_error",workflowId:s,stepId:P,stepKey:l,name:i,description:f,ts:Date.now(),durationMs:pe,error:oe,...t&&{metadata:t},diagnostics:W(k,o.errorMeta,"throw",v,pe)}),d&&c({type:"step_complete",workflowId:s,stepKey:d,name:i,description:f,ts:Date.now(),durationMs:pe,result:N(oe,{cause:k}),meta:{origin:"throw",thrown:k},...t&&{metadata:t}}),u?.(oe,i,h),I(oe,{origin:"throw",thrown:k})}}let J=X,ce=performance.now()-g,le=V(J.error,{origin:"result",resultCause:J.cause});throw c({type:"step_error",workflowId:s,stepId:P,stepKey:l,name:i,description:f,ts:Date.now(),durationMs:ce,error:le,...t&&{metadata:t},diagnostics:W(J.error,o.errorMeta,"result",b.attempts,ce)}),d&&c({type:"step_complete",workflowId:s,stepKey:d,name:i,description:f,ts:Date.now(),durationMs:ce,result:J,meta:{origin:"result",resultCause:J.cause},...t&&{metadata:t}}),u?.(le,i,h),I(le,{origin:"result",resultCause:J.cause})})();p.try=(a,m,n)=>{if(typeof a!="string"||a.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 o="error"in n?()=>n.error:n.onError;if(n.retry||n.timeout)return p.retry(a,async()=>{try{return B(await m())}catch(f){return N(o(f),{cause:f})}},{attempts:n.retry?.attempts??1,...n.retry??{},key:n.key,timeout:n.timeout});let t=n.key??a,i=a,l=a,d=y;return(async()=>{let f=d?performance.now():0;y&&c({type:"step_start",workflowId:s,stepId:l,stepKey:t,name:i,ts:Date.now()});try{let T=await m(),R=performance.now()-f;return c({type:"step_success",workflowId:s,stepId:l,stepKey:t,name:i,ts:Date.now(),durationMs:R}),t&&c({type:"step_complete",workflowId:s,stepKey:t,name:i,ts:Date.now(),durationMs:R,result:B(T)}),T}catch(T){let R=o(T),P=performance.now()-f,D=V(R,{origin:"throw",thrown:T});throw c({type:"step_error",workflowId:s,stepId:l,stepKey:t,name:i,ts:Date.now(),durationMs:P,error:D}),t&&c({type:"step_complete",workflowId:s,stepKey:t,name:i,ts:Date.now(),durationMs:P,result:N(R,{cause:T}),meta:{origin:"throw",thrown:T}}),u?.(D,i,h),I(D,{origin:"throw",thrown:T})}})()},p.fromResult=(a,m,n)=>{if(typeof a!="string"||a.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 o=n.key??a,t=a,i=a,l="error"in n?()=>n.error:n.onError,d=y;return(async()=>{let f=d?performance.now():0;y&&c({type:"step_start",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now()});let T=await m();if(T.ok){let R=performance.now()-f;return c({type:"step_success",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:R}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:R,result:B(T.value)}),T.value}else{let R=l(T.error),P=performance.now()-f,D=V(R,{origin:"result",resultCause:T.error});throw c({type:"step_error",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:P,error:D}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:P,result:N(R,{cause:T.error}),meta:{origin:"result",resultCause:T.error}}),u?.(D,t,h),I(D,{origin:"result",resultCause:T.error})}})()},p.fromNullable=(a,m,n,o)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.fromNullable() requires an explicit string ID as the first argument. Example: step.fromNullable("getUser", () => db.find(id), () => ({ type: "NOT_FOUND" }))');return p(a,async()=>{let t=await m();return t!=null?B(t):N(n())},o)},p.retry=(a,m,n)=>{if(typeof a!="string"||a.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 p(a,m,{key:n.key??a,retry:{attempts:n.attempts,backoff:n.backoff,initialDelay:n.initialDelay,maxDelay:n.maxDelay,jitter:n.jitter,shouldRetry:n.shouldRetry,onRetry:n.onRetry},timeout:n.timeout})},p.withTimeout=(a,m,n)=>{if(typeof a!="string"||a.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 p(a,m,{key:n.key??a,timeout:n})},p.sleep=(a,m,n)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.sleep() requires an explicit string ID as the first argument. Example: step.sleep("delay", "5s")');let o=typeof m=="string"?Ye(m):m;if(!o)throw new Error(`step.sleep: invalid duration '${m}'`);let t=o.millis,i=n?.signal;return p(a,async()=>{if(U?.aborted||i?.aborted){let l=new Error("Sleep aborted");throw l.name="AbortError",l}return new Promise((l,d)=>{let f={timeoutId:void 0},T=()=>{f.timeoutId&&clearTimeout(f.timeoutId);let R=new Error("Sleep aborted");R.name="AbortError",d(R)};U?.addEventListener("abort",T,{once:!0}),i?.addEventListener("abort",T,{once:!0}),f.timeoutId=setTimeout(()=>{U?.removeEventListener("abort",T),i?.removeEventListener("abort",T),l(B(void 0))},t)})},{key:n?.key??a,description:n?.description})},p.all=((...a)=>{if(typeof a[0]!="string")throw new TypeError("step.all(name, ...): first argument must be a string (step name). Example: step.all('Fetch data', { user: () => fetchUser(), posts: () => fetchPosts() })");let m=a[0],n=a[1];if(typeof n=="function")return z(m,n);if(n&&typeof n=="object"&&!Array.isArray(n)){let t=K(n);return Q(t,{name:m})}throw new TypeError("step.all(name, ...): second argument must be a function (array form) or an object of operations (object form).")}),p.race=(a,m)=>{let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),t=!1,i={scopeId:n,type:"race",winnerId:void 0};F.push(i);let l=()=>{if(t)return;t=!0;let d=F.findIndex(f=>f.scopeId===n);d!==-1&&F.splice(d,1),c({type:"scope_end",workflowId:s,scopeId:n,ts:Date.now(),durationMs:performance.now()-o,winnerId:i.winnerId})};c({type:"scope_start",workflowId:s,scopeId:n,scopeType:"race",name:a,ts:Date.now()});try{let d=await m();if(l(),!d.ok)throw u?.(d.error,a,h),I(d.error,{origin:"result",resultCause:d.cause});return d.value}catch(d){throw l(),d}})()},p.if=(a,m,n)=>n(),p.label=p.if,p.branch=async(a,m)=>{let{condition:n,then:o,else:t}=m;if(n())return await o();if(t)return await t()},p.arm=(a,m)=>({fn:a,errors:m}),p.forEach=async(a,m,n)=>{let o=[],t=n.maxIterations,i=0,l="run"in n,d=Symbol.asyncIterator in m?m:(async function*(){yield*m})();for await(let f of d){if(t!==void 0&&i>=t)break;let T;l?T=await n.run(f,i):T=await n.item.handler(f,i,p),o.push(T),i++}return o},p.item=a=>({__forEachItemHandler:!0,handler:a}),p.dep=(a,m)=>m,p.workflow=(a,m,n)=>p(a,m,n),p.map=async(a,m,n,o)=>{let t=o?.concurrency??m.length;return p(a,()=>t>=m.length?Ie(m.map((i,l)=>n(i,l))):(async()=>{let i=[];for(let l=0;l<m.length;l+=t){let d=m.slice(l,l+t),f=await Ie(d.map((T,R)=>n(T,l+R)));if(!f.ok)return f;i.push(...f.value)}return B(i)})(),{key:o?.key})},p.withFallback=(a,m,n)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.withFallback() requires an explicit string ID as the first argument. Example: step.withFallback("getUser", () => fetchUser(id), { fallback: () => fetchFromCache(id) })');let o=n.key??a,t=a,i=q(o),l=y;return(async()=>{let d=l?performance.now():0;y&&c({type:"step_start",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now()});let f;try{f=await m()}catch(g){if($(g))throw c({type:"step_aborted",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:performance.now()-d}),g;let M;try{M=L(g)}catch(S){throw ee(S)}if(n.on!==void 0&&n.on!==M){let S=performance.now()-d;throw c({type:"step_error",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:S,error:M}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:S,result:N(M,{cause:g}),meta:{origin:"throw",thrown:g}}),u?.(M,t,h),I(M,{origin:"throw",thrown:g})}let x;try{x=await n.fallback()}catch(S){if($(S))throw c({type:"step_aborted",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:performance.now()-d}),S;let b;try{b=L(S)}catch(J){throw ee(J)}let X=performance.now()-d;throw c({type:"step_error",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:X,error:b}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:X,result:N(b,{cause:S}),meta:{origin:"throw",thrown:S}}),u?.(b,t,h),I(b,{origin:"throw",thrown:S})}if(x.ok){let S=performance.now()-d;return c({type:"step_success",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:S}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:S,result:x,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(M)}}),x.value}else{let S=performance.now()-d,b=V(x.error,{origin:"result",resultCause:x.cause});throw c({type:"step_error",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:S,error:b}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:S,result:x,meta:{origin:"result",resultCause:x.cause}}),u?.(b,t,h),I(b,{origin:"result",resultCause:x.cause})}}if(f.ok){let g=performance.now()-d;return c({type:"step_success",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:g}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:g,result:f}),f.value}let T=f.error;if(n.on!==void 0&&n.on!==T){let g=performance.now()-d,M=V(T,{origin:"result",resultCause:f.cause});throw c({type:"step_error",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:g,error:M}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:g,result:f,meta:{origin:"result",resultCause:f.cause}}),u?.(M,t,h),I(M,{origin:"result",resultCause:f.cause})}let R;try{R=await n.fallback()}catch(g){if($(g))throw c({type:"step_aborted",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:performance.now()-d}),g;let M;try{M=L(g)}catch(S){throw ee(S)}let x=performance.now()-d;throw c({type:"step_error",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:x,error:M}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:x,result:N(M,{cause:g}),meta:{origin:"throw",thrown:g}}),u?.(M,t,h),I(M,{origin:"throw",thrown:g})}if(R.ok){let g=performance.now()-d;return c({type:"step_success",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:g}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:g,result:R,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(T)}}),R.value}let P=performance.now()-d,D=V(R.error,{origin:"result",resultCause:R.cause});throw c({type:"step_error",workflowId:s,stepId:i,stepKey:o,name:t,ts:Date.now(),durationMs:P,error:D}),o&&c({type:"step_complete",workflowId:s,stepKey:o,name:t,ts:Date.now(),durationMs:P,result:R,meta:{origin:"result",resultCause:R.cause}}),u?.(D,t,h),I(D,{origin:"result",resultCause:R.cause})})()},p.withResource=(a,m)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.withResource() requires an explicit string ID as the first argument. Example: step.withResource("useDb", { acquire: () => connect(), use: (db) => query(db), release: (db) => db.close() })');let n=a,o=a,t=q(n),i=y;return(async()=>{let l=i?performance.now():0;y&&c({type:"step_start",workflowId:s,stepId:t,stepKey:n,name:o,ts:Date.now()});let d;try{d=await m.acquire()}catch(x){if($(x))throw c({type:"step_aborted",workflowId:s,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:performance.now()-l}),x;let S;try{S=L(x)}catch(X){throw ee(X)}let b=performance.now()-l;throw c({type:"step_error",workflowId:s,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:b,error:S}),n&&c({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:b,result:N(S,{cause:x}),meta:{origin:"throw",thrown:x}}),u?.(S,o,h),I(S,{origin:"throw",thrown:x})}if(!d.ok){let x=performance.now()-l,S=V(d.error,{origin:"result",resultCause:d.cause});throw c({type:"step_error",workflowId:s,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:x,error:S}),n&&c({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:x,result:d,meta:{origin:"result",resultCause:d.cause}}),u?.(S,o,h),I(S,{origin:"result",resultCause:d.cause})}let f=d.value,T,R,P=!1;try{T=await m.use(f)}catch(x){if($(x)){try{await m.release(f)}catch(S){console.warn(`[awaitly] step.withResource("${a}"): release threw after earlyExit:`,S)}throw x}R=x,P=!0}try{await m.release(f)}catch(x){console.warn(`[awaitly] step.withResource("${a}"): release threw:`,x)}if(P){let x;try{x=L(R)}catch(b){throw ee(b)}let S=performance.now()-l;throw c({type:"step_error",workflowId:s,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:S,error:x}),n&&c({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:S,result:N(x,{cause:R}),meta:{origin:"throw",thrown:R}}),u?.(x,o,h),I(x,{origin:"throw",thrown:R})}let D=T;if(D.ok){let x=performance.now()-l;return c({type:"step_success",workflowId:s,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:x}),n&&c({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:x,result:D}),D.value}let g=performance.now()-l,M=V(D.error,{origin:"result",resultCause:D.cause});throw c({type:"step_error",workflowId:s,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:g,error:M}),n&&c({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:g,result:D,meta:{origin:"result",resultCause:D.cause}}),u?.(M,o,h),I(M,{origin:"result",resultCause:D.cause})})()};let H=await C({step:p});if(process.env.NODE_ENV!=="production"&&H!==null&&typeof H=="object"&&"ok"in H&&typeof H.ok=="boolean"){let a=H;(a.ok===!0&&"value"in a||a.ok===!1&&"error"in a)&&console.warn(`awaitly: Workflow executor returned a Result-like object. Return raw values, not ok() or err().
|
|
2
|
-
|
|
3
|
-
Incorrect: return ok({ data });
|
|
4
|
-
Correct: return { data };
|
|
5
|
-
|
|
6
|
-
See: https://jagreehal.github.io/awaitly/guides/troubleshooting/#returning-ok-from-workflow-executor-double-wrapping`)}return B(H)}catch(p){if(tr(p))throw p.thrown;if($(p)){let z=p.meta.origin==="throw"?p.meta.thrown:p.meta.origin==="result"?p.meta.resultCause:void 0;return N(p.error,{cause:z})}let K=L(p);return u?.(K,"unexpected",h),N(K,{cause:p})}}we.strict=(e,r)=>we(e,r);async function Ie(e){return e.length===0?B([]):new Promise(r=>{let E=!1,C=e.length,w=new Array(e.length);for(let u=0;u<e.length;u++){let y=u;Promise.resolve(e[y]).catch(A=>N({type:"PROMISE_REJECTED",cause:A},{cause:{type:"PROMISE_REJECTION",reason:A}})).then(A=>{if(!E){if(!A.ok){E=!0,r(A);return}w[y]=A.value,C--,C===0&&r(B(w))}})}})}function sr(e){return typeof e=="object"&&e!==null&&e.type==="QUEUE_FULL"}function Ue(e,r){let{maxConcurrent:E,strategy:C="queue",maxQueueSize:w=1/0}=r,u=0,y=[];async function A(){if(u<E){u++;return}if(C==="reject")throw{type:"QUEUE_FULL",limiterName:e,queueSize:y.length,maxQueueSize:w};if(y.length>=w)throw{type:"QUEUE_FULL",limiterName:e,queueSize:y.length,maxQueueSize:w};return new Promise((_,h)=>{y.push({resolve:_,reject:h})})}function O(){u--,y.length>0&&u<E&&(u++,y.shift()?.resolve())}return{async execute(_){await A();try{return await _()}finally{O()}},async executeAll(_){let h=new Array(_.length),U=[];for(let s=0;s<_.length;s++){let L=s,F=this.execute(_[L]).then(Z=>{h[L]=Z});U.push(F)}return await Promise.all(U),h},async executeResult(_){try{await A()}catch(h){if(sr(h))return N(h);throw h}try{return await _()}finally{O()}},getStats(){return{activeCount:u,maxConcurrent:E,queueSize:y.length,maxQueueSize:w}},reset(){for(u=0;y.length>0;)y.shift()?.reject(new Error("Limiter reset"))}}}function Ne(e){return typeof e=="object"&&e!==null&&e.type==="BATCH_PROCESSING_ERROR"}function ar(e){return typeof e=="object"&&e!==null&&e.type==="INVALID_BATCH_CONFIG"}var ir=e=>new Promise(r=>setTimeout(r,e));async function ur(e,r,E,C){let{batchSize:w,concurrency:u,batchDelayMs:y=0}=E,{afterBatch:A,onProgress:O}=C??{};if(!Number.isInteger(w)||w<1)return N({type:"INVALID_BATCH_CONFIG",reason:"batchSize must be a positive integer",field:"batchSize",value:w});if(!Number.isInteger(u)||u<1)return N({type:"INVALID_BATCH_CONFIG",reason:"concurrency must be a positive integer",field:"concurrency",value:u});if(e.length===0)return B([]);let _=[],h=Math.ceil(e.length/w),U=Ue("batch-processor",{maxConcurrent:u});for(let s=0;s<h;s++){let L=s*w,F=Math.min(L+w,e.length),Z=e.slice(L,F),q=s+1,c=Z.map((I,$)=>async()=>{let V=L+$,ne=await r(I,V);if(!ne.ok)throw{type:"BATCH_PROCESSING_ERROR",error:ne.error,itemIndex:V,batchNumber:q};return ne.value});try{let I=await U.executeAll(c);_.push(...I)}catch(I){if(Ne(I))return N(I);throw I}if(O?.({batch:q,totalBatches:h,processed:_.length,total:e.length,percent:Math.round(_.length/e.length*100)}),A){let I=await A();if(!I.ok)return N({type:"BATCH_PROCESSING_ERROR",error:I.error,batchNumber:q})}y>0&&s<h-1&&await ir(y)}return B(_)}var cr={conservative:{batchSize:20,concurrency:3,batchDelayMs:50},balanced:{batchSize:50,concurrency:5,batchDelayMs:10},aggressive:{batchSize:100,concurrency:10,batchDelayMs:0}};0&&(module.exports={batchPresets,isBatchProcessingError,isInvalidBatchConfigError,processInBatches});
|
|
7
|
-
//# sourceMappingURL=batch.cjs.map
|