awaitly 1.34.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 +35 -5
- package/dist/result.d.ts +35 -5
- 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-D2MmJFj9.d.cts → types-B8NfNRGX.d.ts} +1152 -1499
- package/dist/{run-entry-Dduz-is2.d.ts → types-BZ2f4MRR.d.cts} +1152 -1499
- 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 +13 -178
- 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-COl5oFnR.d.cts +0 -15
- package/dist/di-CyDj_JyZ.d.ts +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-BodHXLzX.d.cts +0 -72
- package/dist/guards-CeWoQ8fn.d.ts +0 -72
- package/dist/hitl-BPE_1UiM.d.cts +0 -468
- package/dist/hitl-byp570uC.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-BYT3amEz.d.ts +0 -417
- package/dist/index-C_ak66jy.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-DOMx3woy.d.ts +0 -822
- package/dist/persistence-entry-ymCA4iDu.d.cts +0 -822
- 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-DQmzO9f4.d.ts +0 -323
- package/dist/types-qBUOYi-4.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 Ne=Object.getOwnPropertyDescriptor;var Fe=Object.getOwnPropertyNames;var je=Object.prototype.hasOwnProperty;var Be=(t,e)=>{for(var u in e)de(t,u,{get:e[u],enumerable:!0})},Ke=(t,e,u,f)=>{if(e&&typeof e=="object"||typeof e=="function")for(let b of Fe(e))!je.call(t,b)&&b!==u&&de(t,b,{get:()=>e[b],enumerable:!(f=Ne(e,b))||f.enumerable});return t};var We=t=>Ke(de({},"__esModule",{value:!0}),t);var at={};Be(at,{batchPresets:()=>st,isBatchProcessingError:()=>De,isInvalidBatchConfigError:()=>rt,processInBatches:()=>ot});module.exports=We(at);var He={"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 fe(t){return`https://jagreehal.github.io/awaitly/rules/#${t}`}var ut=Object.keys(He);var te=class extends Error{_tag};function F(t,e){return class extends te{_tag=t;constructor(u,f){let b=e?.message?e.message(u??{}):t;if(super(b),this.name=t,e?.slug!==void 0){if(!e.hint)throw new TypeError(`TaggedError: 'hint' is required when 'slug' is set (slug: "${e.slug}")`);Object.defineProperty(this,"code",{value:e.slug,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"hint",{value:e.hint,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"docsUrl",{value:fe(e.slug),enumerable:!0,writable:!1,configurable:!1})}if(Object.setPrototypeOf(this,new.target.prototype),u&&typeof u=="object"){let w;if(e?.slug!==void 0){let{_tag:s,name:M,message:v,stack:D,code:N,hint:i,docsUrl:U,...j}=u;w=j}else{let{_tag:s,name:M,message:v,stack:D,...N}=u;w=N}let k=Object.prototype.hasOwnProperty.call(w,"cause"),E=k?w.cause:void 0;k&&delete w.cause;let _=f?.cause!==void 0;if(k&&_)throw new TypeError("TaggedError: cannot provide 'cause' in props when also setting ErrorOptions.cause");Object.assign(this,w),k&&(this.cause=E),_&&(this.cause=f?.cause)}else f?.cause!==void 0&&(this.cause=f.cause)}}}Object.defineProperty(F,Symbol.hasInstance,{value:t=>t instanceof te});(b=>{function t(w){return w instanceof Error}b.isError=t;function e(w){return w instanceof te}b.isTaggedError=e;function u(w,k){let E=w._tag,_=k[E];return _(w)}b.match=u;function f(w,k,E){let _=w._tag,s=k[_];return s?s(w):E(w)}b.matchPartial=f})(F||={});var Te=class extends F("TimeoutError",{slug:"runtime-step-timeout",hint:"Increase the step's timeout option, or check why the upstream operation is slow.",message:e=>e.operation?`TimeoutError: ${e.operation} timed out after ${e.ms}ms`:`TimeoutError: Operation timed out after ${e.ms}ms`}){},ge=class extends F("RetryExhaustedError",{slug:"runtime-retry-exhausted",hint:"All retry attempts failed. Inspect lastError and decide whether to surface it or compensate.",message:e=>e.operation?`RetryExhaustedError: ${e.operation} failed after ${e.attempts} attempts`:`RetryExhaustedError: Operation failed after ${e.attempts} attempts`}){},ke=class extends F("RateLimitError",{slug:"runtime-rate-limit",hint:"Wait retryAfterMs before retrying, or apply step.cache to deduplicate calls.",message:e=>e.limiterName?`RateLimitError: Rate limit exceeded for ${e.limiterName}${e.retryAfterMs?`, retry after ${e.retryAfterMs}ms`:""}`:`RateLimitError: Rate limit exceeded${e.retryAfterMs?`, retry after ${e.retryAfterMs}ms`:""}`}){},Re=class extends F("CircuitBreakerOpenError",{slug:"runtime-circuit-open",hint:"The circuit is open. Wait for it to half-open or fall back to a degraded path.",message:e=>`CircuitBreakerOpenError: Circuit ${e.circuitName} is ${e.state??"OPEN"}${e.retryAfterMs?`, retry after ${Math.ceil(e.retryAfterMs/1e3)}s`:""}`}){},xe=class extends F("ValidationError",{message:e=>`ValidationError: Invalid ${e.field} - ${e.reason}`}){},he=class extends F("NotFoundError",{message:e=>e.id?`NotFoundError: ${e.resource} with id ${e.id} not found`:`NotFoundError: ${e.resource} not found`}){},Ce=class extends F("UnauthorizedError",{message:e=>e.reason?`UnauthorizedError: ${e.reason}`:e.action&&e.resource?`UnauthorizedError: Not authorized to ${e.action} ${e.resource}`:"UnauthorizedError: Access denied"}){},be=class extends F("NetworkError",{message:e=>e.url?`NetworkError: ${e.reason} (${e.url})`:`NetworkError: ${e.reason}`}){},Se=class extends F("CompensationError",{slug:"runtime-saga-compensation",hint:"A saga compensation step failed. Inspect compensationError and ensure compensation is idempotent.",message:e=>`CompensationError: Failed to compensate step ${e.step}`}){},se=class extends F("UnexpectedError",{slug:"runtime-unexpected",hint:"An unexpected exception escaped a step. Inspect cause; consider returning a typed Result instead of throwing.",message:e=>`UnexpectedError: ${e.cause instanceof Error?e.cause.message:String(e.cause??"unknown")}`}){};function Ve(t){let e=t.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!e)return;let u=parseFloat(e[1]),f=e[2].toLowerCase();return{_tag:"Duration",millis:u*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[f]??1)}}function qe(t){return new se({cause:t})}function B(t){return{ok:!0,value:t}}function L(t,e){let u=e?.cause;return{ok:!1,error:t,...u!==void 0?{cause:u}:{}}}function $e(t){if(t==null)return"unknown";if(typeof t=="string")return t.trim()||"unknown";if(typeof t=="object"){let e=t;if(typeof e._tag=="string"){let u=e._tag.trim();if(u)return u}if(typeof e.tag=="string"){let u=e.tag.trim();if(u)return u}if(typeof e.code=="string"){let u=e.code.trim();if(u)return u}else if(typeof e.code=="number")return String(e.code);if(t instanceof Error&&t.name){let u=t.name.trim();if(u)return u}}return"unknown"}function ze(t,e){if(!(!e||!t))return e[t]}function Ye(t){let{intent:e,domain:u,owner:f,tags:b,stateChanges:w,emits:k,calls:E}=t;if(!e&&!u&&!f&&!b?.length&&!w?.length&&!k?.length&&!E?.length)return;let _={};return e&&(_.intent=e),u&&(_.domain=u),f&&(_.owner=f),b?.length&&(_.tags=b),w?.length&&(_.stateChanges=w),k?.length&&(_.emits=k),E?.length&&(_.calls=E),_}function W(t,e,u,f,b){let w=$e(t),k=ze(w,e),E={tag:w,origin:u};return k!==void 0&&(E.classification=k),f!==void 0&&(E.attempt=f),b!==void 0&&(E.cumulativeDurationMs=b),E}var Z=Symbol.for("step_timeout_marker");function Ae(t){return typeof t!="object"||t===null?!1:t.type==="STEP_TIMEOUT"?!0:Z in t}function Qe(t){if(!(typeof t!="object"||t===null)){if(t.type==="STEP_TIMEOUT"){let e=t;return{timeoutMs:e.timeoutMs,stepName:e.stepName,stepKey:e.stepKey,attempt:e.attempt}}if(Z in t)return t[Z]}}var Me=Symbol("early-exit");function Xe(t,e){return{[Me]:!0,error:t,meta:e}}function Ge(t){return typeof t=="object"&&t!==null&&t[Me]===!0}var Ie=Symbol("mapper-exception");function G(t){return{[Ie]:!0,thrown:t}}function Je(t){return typeof t=="object"&&t!==null&&t[Ie]===!0}function Ee(t,e){let{backoff:u,initialDelay:f,maxDelay:b,jitter:w}=e,k;switch(u){case"fixed":k=f;break;case"linear":k=f*t;break;case"exponential":k=f*Math.pow(2,t-1);break}if(k=Math.min(k,b),w){let E=k*.25*Math.random();k=k+E}return Math.floor(k)}function ye(t){return new Promise(e=>setTimeout(e,t))}var Pe=Symbol("timeout"),ae=Symbol("timeout-option");function Ze(t){return typeof t=="object"&&t!==null&&t[ae]===!0}async function et(t,e,u,f){let b=new AbortController,w=e.onTimeout??"error",k=()=>typeof w=="function"?w({name:u.name,key:u.key,ms:e.ms}):e.error??{type:"STEP_TIMEOUT",stepName:u.name,stepKey:u.key,timeoutMs:e.ms,attempt:u.attempt},E;f?.aborted&&b.abort(f.reason);let _;f&&!f.aborted&&(_=()=>b.abort(f.reason),f.addEventListener("abort",_,{once:!0}));let s=new Promise((v,D)=>{E=setTimeout(()=>{if(w!=="disconnect"&&b.abort(),w==="option"){D({[ae]:!0,ms:e.ms});return}D({[Pe]:!0,error:k()})},e.ms)}),M;e.signal?M=Promise.resolve(t(b.signal)):M=Promise.resolve(t());try{return await Promise.race([M,s])}catch(v){if(typeof v=="object"&&v!==null&&v[ae]===!0)throw{[ae]:!0,ms:e.ms};if(typeof v=="object"&&v!==null&&v[Pe]===!0){w==="disconnect"&&M.catch(()=>{});let D=v.error;if(typeof D=="object"&&D!==null&&D.type!=="STEP_TIMEOUT"){let N={timeoutMs:e.ms,stepName:u.name,stepKey:u.key,attempt:u.attempt};Z in D?D[Z]=N:Object.defineProperty(D,Z,{value:N,enumerable:!1,writable:!0,configurable:!1})}throw D}throw v}finally{clearTimeout(E),_&&f&&f.removeEventListener("abort",_)}}var J={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:()=>!0,onRetry:()=>{}};async function _e(t,e){let{onError:u,onEvent:f,catchUnexpected:b,workflowId:w,workflowName:k,context:E,_workflowSignal:_}=e&&typeof e=="object"?e:{},s=w??crypto.randomUUID(),M=b??qe,v=[],D=0,N=p=>p??`step_${++D}`,i=p=>{let V=p.context!==void 0||E===void 0?p:{...p,context:E},z=k!==void 0&&V.workflowName===void 0?{...V,workflowName:k}:V;if(z.type==="step_success"){let ne=z.stepId;for(let oe=v.length-1;oe>=0;oe--){let q=v[oe];if(q.type==="race"&&!q.winnerId){q.winnerId=ne;break}}}f?.(z,E)},U=Xe,j=p=>Ge(p),H=(p,V)=>p,K=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 V=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(),r=!1;v.push({scopeId:n,type:"parallel"});let c=()=>{if(r)return;r=!0;let l=v.findIndex(d=>d.scopeId===n);l!==-1&&v.splice(l,1),i({type:"scope_end",workflowId:s,scopeId:n,ts:Date.now(),durationMs:performance.now()-o})};i({type:"scope_start",workflowId:s,scopeId:n,scopeType:"parallel",name:a,ts:Date.now()});try{let l=await m();if(c(),!l.ok)throw u?.(l.error,a,E),U(l.error,{origin:"result",resultCause:l.cause});return l.value}catch(l){throw c(),l}})()},ne=function(a,m){let n=Object.keys(a),o=m.name??`Parallel(${n.join(", ")})`,r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let c=performance.now(),l=!1;v.push({scopeId:r,type:"parallel"});let d=()=>{if(l)return;l=!0;let y=v.findIndex(T=>T.scopeId===r);y!==-1&&v.splice(y,1),i({type:"scope_end",workflowId:s,scopeId:r,ts:Date.now(),durationMs:performance.now()-c})};i({type:"scope_start",workflowId:s,scopeId:r,scopeType:"parallel",name:o,ts:Date.now()});try{let y=await new Promise(R=>{if(n.length===0){R([]);return}let A=!1,O=n.length,x=new Array(n.length);for(let I=0;I<n.length;I++){let h=n[I],S=I;Promise.resolve(a[h]()).catch(C=>L({type:"PROMISE_REJECTED",cause:C},{cause:{type:"PROMISE_REJECTION",reason:C}})).then(C=>{if(!A){if(!C.ok){A=!0,R([{key:h,result:C}]);return}x[S]={key:h,result:C},O--,O===0&&R(x)}})}});d();let T={};for(let{key:R,result:A}of y){if(!A.ok)throw u?.(A.error,R,E),U(A.error,{origin:"result",resultCause:A.cause});T[R]=A.value}return T}catch(y){throw d(),y}})()};var we=V,ie=z,re=ne;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??{},r=Ye(o),c=a,l=o.key??a,d=o.key??a,{description:y,retry:T,timeout:R}=o,A=N(l),O=f,x=O?performance.now():0,h=K(m)?()=>m:m,C={attempts:Math.max(1,T?.attempts??1),backoff:T?.backoff??J.backoff,initialDelay:T?.initialDelay??J.initialDelay,maxDelay:T?.maxDelay??J.maxDelay,jitter:T?.jitter??J.jitter,shouldRetry:T?.shouldRetry??J.shouldRetry,onRetry:T?.onRetry??J.onRetry};f&&i({type:"step_start",workflowId:s,stepId:A,stepKey:l,name:c,description:y,ts:Date.now(),...r&&{metadata:r}});let X;for(let P=1;P<=C.attempts;P++){let Ue=O?performance.now():0;try{let g;if(R?g=await et(h,R,{name:c,key:l,attempt:P},_):g=await h(),g.ok){let Q=performance.now()-x;return i({type:"step_success",workflowId:s,stepId:A,stepKey:l,name:c,description:y,ts:Date.now(),durationMs:Q,...r&&{metadata:r}}),d&&i({type:"step_complete",workflowId:s,stepKey:d,name:c,description:y,ts:Date.now(),durationMs:Q,result:g,...r&&{metadata:r}}),g.value}if(X=g,P<C.attempts&&C.shouldRetry(g.error,P)){let Q=Ee(P,C);i({type:"step_retry",workflowId:s,stepId:A,stepKey:l,name:c,ts:Date.now(),attempt:P+1,maxAttempts:C.attempts,delayMs:Q,error:g.error,...r&&{metadata:r},diagnostics:W(g.error,o.errorMeta,"result",P,performance.now()-x)}),C.onRetry(g.error,P,Q),await ye(Q);continue}C.attempts>1&&i({type:"step_retries_exhausted",workflowId:s,stepId:A,stepKey:l,name:c,ts:Date.now(),durationMs:performance.now()-x,attempts:P,lastError:g.error,...r&&{metadata:r},diagnostics:W(g.error,o.errorMeta,"result",P,performance.now()-x)});break}catch(g){let Q=performance.now()-Ue;if(Ze(g)){let $=g.ms;i({type:"step_timeout",workflowId:s,stepId:A,stepKey:l,name:c,ts:Date.now(),timeoutMs:$,attempt:P,...r&&{metadata:r},diagnostics:W(g,o.errorMeta,"timeout",P)}),i({type:"step_success",workflowId:s,stepId:A,stepKey:l,name:c,description:y,ts:Date.now(),durationMs:performance.now()-x,...r&&{metadata:r}}),d&&i({type:"step_complete",workflowId:s,stepKey:d,name:c,description:y,ts:Date.now(),durationMs:performance.now()-x,result:B(void 0),...r&&{metadata:r}});return}if(j(g))throw i({type:"step_aborted",workflowId:s,stepId:A,stepKey:l,name:c,description:y,ts:Date.now(),durationMs:Q,...r&&{metadata:r}}),g;if(Ae(g)){let $=Qe(g),Le=R?.ms??$?.timeoutMs??0;if(i({type:"step_timeout",workflowId:s,stepId:A,stepKey:l,name:c,ts:Date.now(),timeoutMs:Le,attempt:P,...r&&{metadata:r},diagnostics:W(g,o.errorMeta,"timeout",P)}),P<C.attempts&&C.shouldRetry(g,P)){let me=Ee(P,C);i({type:"step_retry",workflowId:s,stepId:A,stepKey:l,name:c,ts:Date.now(),attempt:P+1,maxAttempts:C.attempts,delayMs:me,error:g,...r&&{metadata:r},diagnostics:W(g,o.errorMeta,"timeout",P,performance.now()-x)}),C.onRetry(g,P,me),await ye(me);continue}C.attempts>1&&i({type:"step_retries_exhausted",workflowId:s,stepId:A,stepKey:l,name:c,ts:Date.now(),durationMs:performance.now()-x,attempts:P,lastError:g,...r&&{metadata:r},diagnostics:W(g,o.errorMeta,"timeout",P,performance.now()-x)});let pe=performance.now()-x;throw i({type:"step_error",workflowId:s,stepId:A,stepKey:l,name:c,description:y,ts:Date.now(),durationMs:pe,error:g,...r&&{metadata:r},diagnostics:W(g,o.errorMeta,"timeout",P,pe)}),d&&i({type:"step_complete",workflowId:s,stepKey:d,name:c,description:y,ts:Date.now(),durationMs:pe,result:L(g,{cause:g}),meta:{origin:"throw",thrown:g},...r&&{metadata:r}}),u?.(g,c,E),U(g,{origin:"throw",thrown:g})}if(P<C.attempts&&C.shouldRetry(g,P)){let $=Ee(P,C);i({type:"step_retry",workflowId:s,stepId:A,stepKey:l,name:c,ts:Date.now(),attempt:P+1,maxAttempts:C.attempts,delayMs:$,error:g,...r&&{metadata:r},diagnostics:W(g,o.errorMeta,"throw",P,performance.now()-x)}),C.onRetry(g,P,$),await ye($);continue}C.attempts>1&&!Ae(g)&&i({type:"step_retries_exhausted",workflowId:s,stepId:A,stepKey:l,name:c,ts:Date.now(),durationMs:performance.now()-x,attempts:P,lastError:g,...r&&{metadata:r},diagnostics:W(g,o.errorMeta,"throw",P,performance.now()-x)});let le=performance.now()-x,ee;try{ee=M(g)}catch($){throw G($)}throw i({type:"step_error",workflowId:s,stepId:A,stepKey:l,name:c,description:y,ts:Date.now(),durationMs:le,error:ee,...r&&{metadata:r},diagnostics:W(g,o.errorMeta,"throw",P,le)}),d&&i({type:"step_complete",workflowId:s,stepKey:d,name:c,description:y,ts:Date.now(),durationMs:le,result:L(ee,{cause:g}),meta:{origin:"throw",thrown:g},...r&&{metadata:r}}),u?.(ee,c,E),U(ee,{origin:"throw",thrown:g})}}let Y=X,ue=performance.now()-x,ce=H(Y.error,{origin:"result",resultCause:Y.cause});throw i({type:"step_error",workflowId:s,stepId:A,stepKey:l,name:c,description:y,ts:Date.now(),durationMs:ue,error:ce,...r&&{metadata:r},diagnostics:W(Y.error,o.errorMeta,"result",C.attempts,ue)}),d&&i({type:"step_complete",workflowId:s,stepKey:d,name:c,description:y,ts:Date.now(),durationMs:ue,result:Y,meta:{origin:"result",resultCause:Y.cause},...r&&{metadata:r}}),u?.(ce,c,E),U(ce,{origin:"result",resultCause:Y.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(y){return L(o(y),{cause:y})}},{attempts:n.retry?.attempts??1,...n.retry??{},key:n.key,timeout:n.timeout});let r=n.key??a,c=a,l=a,d=f;return(async()=>{let y=d?performance.now():0;f&&i({type:"step_start",workflowId:s,stepId:l,stepKey:r,name:c,ts:Date.now()});try{let T=await m(),R=performance.now()-y;return i({type:"step_success",workflowId:s,stepId:l,stepKey:r,name:c,ts:Date.now(),durationMs:R}),r&&i({type:"step_complete",workflowId:s,stepKey:r,name:c,ts:Date.now(),durationMs:R,result:B(T)}),T}catch(T){let R=o(T),A=performance.now()-y,O=H(R,{origin:"throw",thrown:T});throw i({type:"step_error",workflowId:s,stepId:l,stepKey:r,name:c,ts:Date.now(),durationMs:A,error:O}),r&&i({type:"step_complete",workflowId:s,stepKey:r,name:c,ts:Date.now(),durationMs:A,result:L(R,{cause:T}),meta:{origin:"throw",thrown:T}}),u?.(O,c,E),U(O,{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,r=a,c=a,l="error"in n?()=>n.error:n.onError,d=f;return(async()=>{let y=d?performance.now():0;f&&i({type:"step_start",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now()});let T=await m();if(T.ok){let R=performance.now()-y;return i({type:"step_success",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:R}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:R,result:B(T.value)}),T.value}else{let R=l(T.error),A=performance.now()-y,O=H(R,{origin:"result",resultCause:T.error});throw i({type:"step_error",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:A,error:O}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:A,result:L(R,{cause:T.error}),meta:{origin:"result",resultCause:T.error}}),u?.(O,r,E),U(O,{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 r=await m();return r!=null?B(r):L(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"?Ve(m):m;if(!o)throw new Error(`step.sleep: invalid duration '${m}'`);let r=o.millis,c=n?.signal;return p(a,async()=>{if(_?.aborted||c?.aborted){let l=new Error("Sleep aborted");throw l.name="AbortError",l}return new Promise((l,d)=>{let y={timeoutId:void 0},T=()=>{y.timeoutId&&clearTimeout(y.timeoutId);let R=new Error("Sleep aborted");R.name="AbortError",d(R)};_?.addEventListener("abort",T,{once:!0}),c?.addEventListener("abort",T,{once:!0}),y.timeoutId=setTimeout(()=>{_?.removeEventListener("abort",T),c?.removeEventListener("abort",T),l(B(void 0))},r)})},{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 r=V(n);return ne(r,{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(),r=!1,c={scopeId:n,type:"race",winnerId:void 0};v.push(c);let l=()=>{if(r)return;r=!0;let d=v.findIndex(y=>y.scopeId===n);d!==-1&&v.splice(d,1),i({type:"scope_end",workflowId:s,scopeId:n,ts:Date.now(),durationMs:performance.now()-o,winnerId:c.winnerId})};i({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,E),U(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:r}=m;if(n())return await o();if(r)return await r()},p.arm=(a,m)=>({fn:a,errors:m}),p.forEach=async(a,m,n)=>{let o=[],r=n.maxIterations,c=0,l="run"in n,d=Symbol.asyncIterator in m?m:(async function*(){yield*m})();for await(let y of d){if(r!==void 0&&c>=r)break;let T;l?T=await n.run(y,c):T=await n.item.handler(y,c,p),o.push(T),c++}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 r=o?.concurrency??m.length;return p(a,()=>r>=m.length?ve(m.map((c,l)=>n(c,l))):(async()=>{let c=[];for(let l=0;l<m.length;l+=r){let d=m.slice(l,l+r),y=await ve(d.map((T,R)=>n(T,l+R)));if(!y.ok)return y;c.push(...y.value)}return B(c)})(),{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,r=a,c=N(o),l=f;return(async()=>{let d=l?performance.now():0;f&&i({type:"step_start",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now()});let y;try{y=await m()}catch(x){if(j(x))throw i({type:"step_aborted",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:performance.now()-d}),x;let I;try{I=M(x)}catch(S){throw G(S)}if(n.on!==void 0&&n.on!==I){let S=performance.now()-d;throw i({type:"step_error",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:S,error:I}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:S,result:L(I,{cause:x}),meta:{origin:"throw",thrown:x}}),u?.(I,r,E),U(I,{origin:"throw",thrown:x})}let h;try{h=await n.fallback()}catch(S){if(j(S))throw i({type:"step_aborted",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:performance.now()-d}),S;let C;try{C=M(S)}catch(Y){throw G(Y)}let X=performance.now()-d;throw i({type:"step_error",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:X,error:C}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:X,result:L(C,{cause:S}),meta:{origin:"throw",thrown:S}}),u?.(C,r,E),U(C,{origin:"throw",thrown:S})}if(h.ok){let S=performance.now()-d;return i({type:"step_success",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:S}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:S,result:h,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(I)}}),h.value}else{let S=performance.now()-d,C=H(h.error,{origin:"result",resultCause:h.cause});throw i({type:"step_error",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:S,error:C}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:S,result:h,meta:{origin:"result",resultCause:h.cause}}),u?.(C,r,E),U(C,{origin:"result",resultCause:h.cause})}}if(y.ok){let x=performance.now()-d;return i({type:"step_success",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:x}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:x,result:y}),y.value}let T=y.error;if(n.on!==void 0&&n.on!==T){let x=performance.now()-d,I=H(T,{origin:"result",resultCause:y.cause});throw i({type:"step_error",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:x,error:I}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:x,result:y,meta:{origin:"result",resultCause:y.cause}}),u?.(I,r,E),U(I,{origin:"result",resultCause:y.cause})}let R;try{R=await n.fallback()}catch(x){if(j(x))throw i({type:"step_aborted",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:performance.now()-d}),x;let I;try{I=M(x)}catch(S){throw G(S)}let h=performance.now()-d;throw i({type:"step_error",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:h,error:I}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:h,result:L(I,{cause:x}),meta:{origin:"throw",thrown:x}}),u?.(I,r,E),U(I,{origin:"throw",thrown:x})}if(R.ok){let x=performance.now()-d;return i({type:"step_success",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:x}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:x,result:R,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(T)}}),R.value}let A=performance.now()-d,O=H(R.error,{origin:"result",resultCause:R.cause});throw i({type:"step_error",workflowId:s,stepId:c,stepKey:o,name:r,ts:Date.now(),durationMs:A,error:O}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:A,result:R,meta:{origin:"result",resultCause:R.cause}}),u?.(O,r,E),U(O,{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,r=N(n),c=f;return(async()=>{let l=c?performance.now():0;f&&i({type:"step_start",workflowId:s,stepId:r,stepKey:n,name:o,ts:Date.now()});let d;try{d=await m.acquire()}catch(h){if(j(h))throw i({type:"step_aborted",workflowId:s,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:performance.now()-l}),h;let S;try{S=M(h)}catch(X){throw G(X)}let C=performance.now()-l;throw i({type:"step_error",workflowId:s,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:C,error:S}),n&&i({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:C,result:L(S,{cause:h}),meta:{origin:"throw",thrown:h}}),u?.(S,o,E),U(S,{origin:"throw",thrown:h})}if(!d.ok){let h=performance.now()-l,S=H(d.error,{origin:"result",resultCause:d.cause});throw i({type:"step_error",workflowId:s,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:h,error:S}),n&&i({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:h,result:d,meta:{origin:"result",resultCause:d.cause}}),u?.(S,o,E),U(S,{origin:"result",resultCause:d.cause})}let y=d.value,T,R,A=!1;try{T=await m.use(y)}catch(h){if(j(h)){try{await m.release(y)}catch(S){console.warn(`[awaitly] step.withResource("${a}"): release threw after earlyExit:`,S)}throw h}R=h,A=!0}try{await m.release(y)}catch(h){console.warn(`[awaitly] step.withResource("${a}"): release threw:`,h)}if(A){let h;try{h=M(R)}catch(C){throw G(C)}let S=performance.now()-l;throw i({type:"step_error",workflowId:s,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:S,error:h}),n&&i({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:S,result:L(h,{cause:R}),meta:{origin:"throw",thrown:R}}),u?.(h,o,E),U(h,{origin:"throw",thrown:R})}let O=T;if(O.ok){let h=performance.now()-l;return i({type:"step_success",workflowId:s,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:h}),n&&i({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:h,result:O}),O.value}let x=performance.now()-l,I=H(O.error,{origin:"result",resultCause:O.cause});throw i({type:"step_error",workflowId:s,stepId:r,stepKey:n,name:o,ts:Date.now(),durationMs:x,error:I}),n&&i({type:"step_complete",workflowId:s,stepKey:n,name:o,ts:Date.now(),durationMs:x,result:O,meta:{origin:"result",resultCause:O.cause}}),u?.(I,o,E),U(I,{origin:"result",resultCause:O.cause})})()};let q=await t({step:p});if(process.env.NODE_ENV!=="production"&&q!==null&&typeof q=="object"&&"ok"in q&&typeof q.ok=="boolean"){let a=q;(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(q)}catch(p){if(Je(p))throw p.thrown;if(j(p)){let z=p.meta.origin==="throw"?p.meta.thrown:p.meta.origin==="result"?p.meta.resultCause:void 0;return L(p.error,{cause:z})}let V=M(p);return u?.(V,"unexpected",E),L(V,{cause:p})}}_e.strict=(t,e)=>_e(t,e);async function ve(t){return t.length===0?B([]):new Promise(e=>{let u=!1,f=t.length,b=new Array(t.length);for(let w=0;w<t.length;w++){let k=w;Promise.resolve(t[k]).catch(E=>L({type:"PROMISE_REJECTED",cause:E},{cause:{type:"PROMISE_REJECTION",reason:E}})).then(E=>{if(!u){if(!E.ok){u=!0,e(E);return}b[k]=E.value,f--,f===0&&e(B(b))}})}})}function tt(t){return typeof t=="object"&&t!==null&&t.type==="QUEUE_FULL"}function Oe(t,e){let{maxConcurrent:u,strategy:f="queue",maxQueueSize:b=1/0}=e,w=0,k=[];async function E(){if(w<u){w++;return}if(f==="reject")throw{type:"QUEUE_FULL",limiterName:t,queueSize:k.length,maxQueueSize:b};if(k.length>=b)throw{type:"QUEUE_FULL",limiterName:t,queueSize:k.length,maxQueueSize:b};return new Promise((s,M)=>{k.push({resolve:s,reject:M})})}function _(){w--,k.length>0&&w<u&&(w++,k.shift()?.resolve())}return{async execute(s){await E();try{return await s()}finally{_()}},async executeAll(s){let M=new Array(s.length),v=[];for(let D=0;D<s.length;D++){let N=D,i=this.execute(s[N]).then(U=>{M[N]=U});v.push(i)}return await Promise.all(v),M},async executeResult(s){try{await E()}catch(M){if(tt(M))return L(M);throw M}try{return await s()}finally{_()}},getStats(){return{activeCount:w,maxConcurrent:u,queueSize:k.length,maxQueueSize:b}},reset(){for(w=0;k.length>0;)k.shift()?.reject(new Error("Limiter reset"))}}}function De(t){return typeof t=="object"&&t!==null&&t.type==="BATCH_PROCESSING_ERROR"}function rt(t){return typeof t=="object"&&t!==null&&t.type==="INVALID_BATCH_CONFIG"}var nt=t=>new Promise(e=>setTimeout(e,t));async function ot(t,e,u,f){let{batchSize:b,concurrency:w,batchDelayMs:k=0}=u,{afterBatch:E,onProgress:_}=f??{};if(!Number.isInteger(b)||b<1)return L({type:"INVALID_BATCH_CONFIG",reason:"batchSize must be a positive integer",field:"batchSize",value:b});if(!Number.isInteger(w)||w<1)return L({type:"INVALID_BATCH_CONFIG",reason:"concurrency must be a positive integer",field:"concurrency",value:w});if(t.length===0)return B([]);let s=[],M=Math.ceil(t.length/b),v=Oe("batch-processor",{maxConcurrent:w});for(let D=0;D<M;D++){let N=D*b,i=Math.min(N+b,t.length),U=t.slice(N,i),j=D+1,H=U.map((K,we)=>async()=>{let ie=N+we,re=await e(K,ie);if(!re.ok)throw{type:"BATCH_PROCESSING_ERROR",error:re.error,itemIndex:ie,batchNumber:j};return re.value});try{let K=await v.executeAll(H);s.push(...K)}catch(K){if(De(K))return L(K);throw K}if(_?.({batch:j,totalBatches:M,processed:s.length,total:t.length,percent:Math.round(s.length/t.length*100)}),E){let K=await E();if(!K.ok)return L({type:"BATCH_PROCESSING_ERROR",error:K.error,batchNumber:j})}k>0&&D<M-1&&await nt(k)}return B(s)}var st={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
|