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/streaming.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
var Re="STREAM_WRITE_ERROR",ge="STREAM_READ_ERROR",Pe="STREAM_CLOSE_ERROR",xe="STREAM_STORE_ERROR",Se="STREAM_ENDED",Ce="STREAM_BACKPRESSURE_ERROR";function be(e){return typeof e=="object"&&e!==null&&e.type===Se}function Ge(e){return typeof e=="object"&&e!==null&&e.type===Re}function Xe(e){return typeof e=="object"&&e!==null&&e.type===ge}function Ze(e){return typeof e=="object"&&e!==null&&e.type===xe}function Qe(e){return typeof e=="object"&&e!==null&&e.type===Ce}function er(e,r,n){return{type:Re,reason:e,message:r,...n!==void 0?{cause:n}:{}}}function ce(e,r,n){return{type:ge,reason:e,message:r,...n!==void 0?{cause:n}:{}}}function rr(e,r,n){return{type:Pe,reason:e,message:r,...n!==void 0?{cause:n}:{}}}function L(e,r,n){return{type:xe,reason:e,message:r,...n!==void 0?{cause:n}:{}}}function le(e){return{type:Se,finalPosition:e}}function tr(e,r){return{type:Ce,bufferedCount:e,highWaterMark:r}}function nr(e={}){let r=e.highWaterMark??16,n=e.lowWaterMark??Math.floor(r/2),u=e.onStateChange,E="flowing",a=0,i=[];function p(f){if(E!==f&&(E=f,u?.(f),f==="flowing"&&i.length>0)){let S=i;i=[];for(let N of S)N()}}function m(){E==="flowing"&&a>=r?p("paused"):E==="paused"&&a<=n&&p("flowing")}return{get state(){return E},get bufferedCount(){return a},get highWaterMark(){return r},get lowWaterMark(){return n},increment(){a++,m()},decrement(){a>0&&(a--,m())},setCount(f){a=Math.max(0,f),m()},waitForDrain(){return E==="flowing"?Promise.resolve():new Promise(f=>{i.push(f)})},reset(){a=0,i=[],p("flowing")}}}function or(e){return e.state==="paused"}var sr={"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 Ie(e){return`https://jagreehal.github.io/awaitly/rules/#${e}`}var Kr=Object.keys(sr);var ie=class extends Error{_tag};function H(e,r){return class extends ie{_tag=e;constructor(n,u){let E=r?.message?r.message(n??{}):e;if(super(E),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:Ie(r.slug),enumerable:!0,writable:!1,configurable:!1})}if(Object.setPrototypeOf(this,new.target.prototype),n&&typeof n=="object"){let a;if(r?.slug!==void 0){let{_tag:f,name:S,message:N,stack:l,code:C,hint:g,docsUrl:A,...D}=n;a=D}else{let{_tag:f,name:S,message:N,stack:l,...C}=n;a=C}let i=Object.prototype.hasOwnProperty.call(a,"cause"),p=i?a.cause:void 0;i&&delete a.cause;let m=u?.cause!==void 0;if(i&&m)throw new TypeError("TaggedError: cannot provide 'cause' in props when also setting ErrorOptions.cause");Object.assign(this,a),i&&(this.cause=p),m&&(this.cause=u?.cause)}else u?.cause!==void 0&&(this.cause=u.cause)}}}Object.defineProperty(H,Symbol.hasInstance,{value:e=>e instanceof ie});(E=>{function e(a){return a instanceof Error}E.isError=e;function r(a){return a instanceof ie}E.isTaggedError=r;function n(a,i){let p=a._tag,m=i[p];return m(a)}E.match=n;function u(a,i,p){let m=a._tag,f=i[m];return f?f(a):p(a)}E.matchPartial=u})(H||={});var _e=class extends H("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`}){},Oe=class extends H("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`}){},Me=class extends H("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`:""}`}){},Ue=class extends H("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`:""}`}){},De=class extends H("ValidationError",{message:r=>`ValidationError: Invalid ${r.field} - ${r.reason}`}){},Fe=class extends H("NotFoundError",{message:r=>r.id?`NotFoundError: ${r.resource} with id ${r.id} not found`:`NotFoundError: ${r.resource} not found`}){},Ke=class extends H("UnauthorizedError",{message:r=>r.reason?`UnauthorizedError: ${r.reason}`:r.action&&r.resource?`UnauthorizedError: Not authorized to ${r.action} ${r.resource}`:"UnauthorizedError: Access denied"}){},Ne=class extends H("NetworkError",{message:r=>r.url?`NetworkError: ${r.reason} (${r.url})`:`NetworkError: ${r.reason}`}){},je=class extends H("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}`}){},pe=class extends H("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 Be(e){return{ok:!0,value:e}}var ar=e=>typeof e=="object"&&e!==null&&"ok"in e&&typeof e.ok=="boolean"&&(e.ok?"value"in e:"error"in e),We=(e,r)=>{let n={},u=new Map;for(let E of Object.keys(e)){let a=e[E];typeof a=="function"&&(n[E]=(...i)=>{let p=(u.get(E)??0)+1;u.set(E,p);let m=p===1?E:`${E}#${p}`;return r(m,async()=>{let f=await a(...i);return ar(f)?f:Be(f)})})}return n};function ir(e){let r=e.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!r)return;let n=parseFloat(r[1]),u=r[2].toLowerCase();return{_tag:"Duration",millis:n*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[u]??1)}}function ur(e){return new pe({cause:e})}function K(e){return{ok:!0,value:e}}function O(e,r){let n=r?.cause;return{ok:!1,error:e,...n!==void 0?{cause:n}:{}}}function cr(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 n=r._tag.trim();if(n)return n}if(typeof r.tag=="string"){let n=r.tag.trim();if(n)return n}if(typeof r.code=="string"){let n=r.code.trim();if(n)return n}else if(typeof r.code=="number")return String(r.code);if(e instanceof Error&&e.name){let n=e.name.trim();if(n)return n}}return"unknown"}function lr(e,r){if(!(!r||!e))return r[e]}function pr(e){let{intent:r,domain:n,owner:u,tags:E,stateChanges:a,emits:i,calls:p}=e;if(!r&&!n&&!u&&!E?.length&&!a?.length&&!i?.length&&!p?.length)return;let m={};return r&&(m.intent=r),n&&(m.domain=n),u&&(m.owner=u),E?.length&&(m.tags=E),a?.length&&(m.stateChanges=a),i?.length&&(m.emits=i),p?.length&&(m.calls=p),m}function J(e,r,n,u,E){let a=cr(e),i=lr(a,r),p={tag:a,origin:n};return i!==void 0&&(p.classification=i),u!==void 0&&(p.attempt=u),E!==void 0&&(p.cumulativeDurationMs=E),p}var se=Symbol.for("step_timeout_marker");function Le(e){return typeof e!="object"||e===null?!1:e.type==="STEP_TIMEOUT"?!0:se in e}function mr(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(se in e)return e[se]}}var He=Symbol("early-exit");function dr(e,r){return{[He]:!0,error:e,meta:r}}function Er(e){return typeof e=="object"&&e!==null&&e[He]===!0}var ze=Symbol("mapper-exception");function ne(e){return{[ze]:!0,thrown:e}}function yr(e){return typeof e=="object"&&e!==null&&e[ze]===!0}function he(e,r){let{backoff:n,initialDelay:u,maxDelay:E,jitter:a}=r,i;switch(n){case"fixed":i=u;break;case"linear":i=u*e;break;case"exponential":i=u*Math.pow(2,e-1);break}if(i=Math.min(i,E),a){let p=i*.25*Math.random();i=i+p}return Math.floor(i)}function Ae(e){return new Promise(r=>setTimeout(r,e))}var Ve=Symbol("timeout"),me=Symbol("timeout-option");function fr(e){return typeof e=="object"&&e!==null&&e[me]===!0}async function wr(e,r,n,u){let E=new AbortController,a=r.onTimeout??"error",i=()=>typeof a=="function"?a({name:n.name,key:n.key,ms:r.ms}):r.error??{type:"STEP_TIMEOUT",stepName:n.name,stepKey:n.key,timeoutMs:r.ms,attempt:n.attempt},p;u?.aborted&&E.abort(u.reason);let m;u&&!u.aborted&&(m=()=>E.abort(u.reason),u.addEventListener("abort",m,{once:!0}));let f=new Promise((N,l)=>{p=setTimeout(()=>{if(a!=="disconnect"&&E.abort(),a==="option"){l({[me]:!0,ms:r.ms});return}l({[Ve]:!0,error:i()})},r.ms)}),S;r.signal?S=Promise.resolve(e(E.signal)):S=Promise.resolve(e());try{return await Promise.race([S,f])}catch(N){if(typeof N=="object"&&N!==null&&N[me]===!0)throw{[me]:!0,ms:r.ms};if(typeof N=="object"&&N!==null&&N[Ve]===!0){a==="disconnect"&&S.catch(()=>{});let l=N.error;if(typeof l=="object"&&l!==null&&l.type!=="STEP_TIMEOUT"){let C={timeoutMs:r.ms,stepName:n.name,stepKey:n.key,attempt:n.attempt};se in l?l[se]=C:Object.defineProperty(l,se,{value:C,enumerable:!1,writable:!0,configurable:!1})}throw l}throw N}finally{clearTimeout(p),m&&u&&u.removeEventListener("abort",m)}}var oe={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:()=>!0,onRetry:()=>{}};async function ve(e,r,n){if(typeof e!="function"){let T=e,q=r;if(typeof q!="function")throw new TypeError("[awaitly] run(deps, fn) requires a callback as the second argument. Example: run({ getUser }, async (s) => s.getUser(id))");return ve(({step:re})=>q(We(T,re),{step:re}),n)}let u=e,E=r,{onError:a,onEvent:i,catchUnexpected:p,workflowId:m,workflowName:f,context:S,_workflowSignal:N}=E&&typeof E=="object"?E:{},l=m??crypto.randomUUID(),C=p??ur,g=[],A=0,D=T=>T??`step_${++A}`,c=T=>{let q=T.context!==void 0||S===void 0?T:{...T,context:S},X=f!==void 0&&q.workflowName===void 0?{...q,workflowName:f}:q;if(X.type==="step_success"){let re=X.stepId;for(let ue=g.length-1;ue>=0;ue--){let G=g[ue];if(G.type==="race"&&!G.winnerId){G.winnerId=re;break}}}i?.(X,S)},j=dr,V=T=>Er(T),$=(T,q)=>T,de=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 q=function(d){let k={};for(let[o,s]of Object.entries(d))if(typeof s=="function")k[o]=s;else if(s&&typeof s=="object"&&"fn"in s)k[o]=s.fn;else throw new TypeError(`step.all: operation "${o}" must be a function or { fn, errors? } object`);return k},X=function(d,k){let o=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let s=performance.now(),t=!1;g.push({scopeId:o,type:"parallel"});let y=()=>{if(t)return;t=!0;let w=g.findIndex(R=>R.scopeId===o);w!==-1&&g.splice(w,1),c({type:"scope_end",workflowId:l,scopeId:o,ts:Date.now(),durationMs:performance.now()-s})};c({type:"scope_start",workflowId:l,scopeId:o,scopeType:"parallel",name:d,ts:Date.now()});try{let w=await k();if(y(),!w.ok)throw a?.(w.error,d,S),j(w.error,{origin:"result",resultCause:w.cause});return w.value}catch(w){throw y(),w}})()},re=function(d,k){let o=Object.keys(d),s=k.name??`Parallel(${o.join(", ")})`,t=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let y=performance.now(),w=!1;g.push({scopeId:t,type:"parallel"});let R=()=>{if(w)return;w=!0;let x=g.findIndex(b=>b.scopeId===t);x!==-1&&g.splice(x,1),c({type:"scope_end",workflowId:l,scopeId:t,ts:Date.now(),durationMs:performance.now()-y})};c({type:"scope_start",workflowId:l,scopeId:t,scopeType:"parallel",name:s,ts:Date.now()});try{let x=await new Promise(v=>{if(o.length===0){v([]);return}let U=!1,W=o.length,P=new Array(o.length);for(let B=0;B<o.length;B++){let I=o[B],M=B;Promise.resolve(d[I]()).catch(_=>O({type:"PROMISE_REJECTED",cause:_},{cause:{type:"PROMISE_REJECTION",reason:_}})).then(_=>{if(!U){if(!_.ok){U=!0,v([{key:I,result:_}]);return}P[M]={key:I,result:_},W--,W===0&&v(P)}})}});R();let b={};for(let{key:v,result:U}of x){if(!U.ok)throw a?.(U.error,v,S),j(U.error,{origin:"result",resultCause:U.cause});b[v]=U.value}return b}catch(x){throw R(),x}})()};var Ee=q,Mr=X,Ur=re;let T=(d,k,o)=>(async()=>{if(typeof d!="string"||d.length===0)throw new Error('[awaitly] step() requires an explicit string ID as the first argument. Example: step("fetchUser", () => fetchUser(id))');let s=o??{},t=pr(s),y=d,w=s.key??d,R=s.key??d,{description:x,retry:b,timeout:v}=s,U=D(w),W=i,P=W?performance.now():0,I=de(k)?()=>k:k,_={attempts:Math.max(1,b?.attempts??1),backoff:b?.backoff??oe.backoff,initialDelay:b?.initialDelay??oe.initialDelay,maxDelay:b?.maxDelay??oe.maxDelay,jitter:b?.jitter??oe.jitter,shouldRetry:b?.shouldRetry??oe.shouldRetry,onRetry:b?.onRetry??oe.onRetry};i&&c({type:"step_start",workflowId:l,stepId:U,stepKey:w,name:y,description:x,ts:Date.now(),...t&&{metadata:t}});let te;for(let F=1;F<=_.attempts;F++){let Ye=W?performance.now():0;try{let h;if(v?h=await wr(I,v,{name:y,key:w,attempt:F},N):h=await I(),h.ok){let ee=performance.now()-P;return c({type:"step_success",workflowId:l,stepId:U,stepKey:w,name:y,description:x,ts:Date.now(),durationMs:ee,...t&&{metadata:t}}),R&&c({type:"step_complete",workflowId:l,stepKey:R,name:y,description:x,ts:Date.now(),durationMs:ee,result:h,...t&&{metadata:t}}),h.value}if(te=h,F<_.attempts&&_.shouldRetry(h.error,F)){let ee=he(F,_);c({type:"step_retry",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),attempt:F+1,maxAttempts:_.attempts,delayMs:ee,error:h.error,...t&&{metadata:t},diagnostics:J(h.error,s.errorMeta,"result",F,performance.now()-P)}),_.onRetry(h.error,F,ee),await Ae(ee);continue}_.attempts>1&&c({type:"step_retries_exhausted",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),durationMs:performance.now()-P,attempts:F,lastError:h.error,...t&&{metadata:t},diagnostics:J(h.error,s.errorMeta,"result",F,performance.now()-P)});break}catch(h){let ee=performance.now()-Ye;if(fr(h)){let Z=h.ms;c({type:"step_timeout",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),timeoutMs:Z,attempt:F,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"timeout",F)}),c({type:"step_success",workflowId:l,stepId:U,stepKey:w,name:y,description:x,ts:Date.now(),durationMs:performance.now()-P,...t&&{metadata:t}}),R&&c({type:"step_complete",workflowId:l,stepKey:R,name:y,description:x,ts:Date.now(),durationMs:performance.now()-P,result:K(void 0),...t&&{metadata:t}});return}if(V(h))throw c({type:"step_aborted",workflowId:l,stepId:U,stepKey:w,name:y,description:x,ts:Date.now(),durationMs:ee,...t&&{metadata:t}}),h;if(Le(h)){let Z=mr(h),Je=v?.ms??Z?.timeoutMs??0;if(c({type:"step_timeout",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),timeoutMs:Je,attempt:F,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"timeout",F)}),F<_.attempts&&_.shouldRetry(h,F)){let ke=he(F,_);c({type:"step_retry",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),attempt:F+1,maxAttempts:_.attempts,delayMs:ke,error:h,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"timeout",F,performance.now()-P)}),_.onRetry(h,F,ke),await Ae(ke);continue}_.attempts>1&&c({type:"step_retries_exhausted",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),durationMs:performance.now()-P,attempts:F,lastError:h,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"timeout",F,performance.now()-P)});let Te=performance.now()-P;throw c({type:"step_error",workflowId:l,stepId:U,stepKey:w,name:y,description:x,ts:Date.now(),durationMs:Te,error:h,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"timeout",F,Te)}),R&&c({type:"step_complete",workflowId:l,stepKey:R,name:y,description:x,ts:Date.now(),durationMs:Te,result:O(h,{cause:h}),meta:{origin:"throw",thrown:h},...t&&{metadata:t}}),a?.(h,y,S),j(h,{origin:"throw",thrown:h})}if(F<_.attempts&&_.shouldRetry(h,F)){let Z=he(F,_);c({type:"step_retry",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),attempt:F+1,maxAttempts:_.attempts,delayMs:Z,error:h,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"throw",F,performance.now()-P)}),_.onRetry(h,F,Z),await Ae(Z);continue}_.attempts>1&&!Le(h)&&c({type:"step_retries_exhausted",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),durationMs:performance.now()-P,attempts:F,lastError:h,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"throw",F,performance.now()-P)});let we=performance.now()-P,ae;try{ae=C(h)}catch(Z){throw ne(Z)}throw c({type:"step_error",workflowId:l,stepId:U,stepKey:w,name:y,description:x,ts:Date.now(),durationMs:we,error:ae,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"throw",F,we)}),R&&c({type:"step_complete",workflowId:l,stepKey:R,name:y,description:x,ts:Date.now(),durationMs:we,result:O(ae,{cause:h}),meta:{origin:"throw",thrown:h},...t&&{metadata:t}}),a?.(ae,y,S),j(ae,{origin:"throw",thrown:h})}}let Q=te,ye=performance.now()-P,fe=$(Q.error,{origin:"result",resultCause:Q.cause});throw c({type:"step_error",workflowId:l,stepId:U,stepKey:w,name:y,description:x,ts:Date.now(),durationMs:ye,error:fe,...t&&{metadata:t},diagnostics:J(Q.error,s.errorMeta,"result",_.attempts,ye)}),R&&c({type:"step_complete",workflowId:l,stepKey:R,name:y,description:x,ts:Date.now(),durationMs:ye,result:Q,meta:{origin:"result",resultCause:Q.cause},...t&&{metadata:t}}),a?.(fe,y,S),j(fe,{origin:"result",resultCause:Q.cause})})();T.try=(d,k,o)=>{if(typeof d!="string"||d.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 s="error"in o?()=>o.error:o.onError;if(o.retry||o.timeout)return T.retry(d,async()=>{try{return K(await k())}catch(x){return O(s(x),{cause:x})}},{attempts:o.retry?.attempts??1,...o.retry??{},key:o.key,timeout:o.timeout});let t=o.key??d,y=d,w=d,R=i;return(async()=>{let x=R?performance.now():0;i&&c({type:"step_start",workflowId:l,stepId:w,stepKey:t,name:y,ts:Date.now()});try{let b=await k(),v=performance.now()-x;return c({type:"step_success",workflowId:l,stepId:w,stepKey:t,name:y,ts:Date.now(),durationMs:v}),t&&c({type:"step_complete",workflowId:l,stepKey:t,name:y,ts:Date.now(),durationMs:v,result:K(b)}),b}catch(b){let v=s(b),U=performance.now()-x,W=$(v,{origin:"throw",thrown:b});throw c({type:"step_error",workflowId:l,stepId:w,stepKey:t,name:y,ts:Date.now(),durationMs:U,error:W}),t&&c({type:"step_complete",workflowId:l,stepKey:t,name:y,ts:Date.now(),durationMs:U,result:O(v,{cause:b}),meta:{origin:"throw",thrown:b}}),a?.(W,y,S),j(W,{origin:"throw",thrown:b})}})()},T.fromResult=(d,k,o)=>{if(typeof d!="string"||d.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 s=o.key??d,t=d,y=d,w="error"in o?()=>o.error:o.onError,R=i;return(async()=>{let x=R?performance.now():0;i&&c({type:"step_start",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now()});let b=await k();if(b.ok){let v=performance.now()-x;return c({type:"step_success",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:v}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:v,result:K(b.value)}),b.value}else{let v=w(b.error),U=performance.now()-x,W=$(v,{origin:"result",resultCause:b.error});throw c({type:"step_error",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:U,error:W}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:U,result:O(v,{cause:b.error}),meta:{origin:"result",resultCause:b.error}}),a?.(W,t,S),j(W,{origin:"result",resultCause:b.error})}})()},T.fromNullable=(d,k,o,s)=>{if(typeof d!="string"||d.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 T(d,async()=>{let t=await k();return t!=null?K(t):O(o())},s)},T.retry=(d,k,o)=>{if(typeof d!="string"||d.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(d,k,{key:o.key??d,retry:{attempts:o.attempts,backoff:o.backoff,initialDelay:o.initialDelay,maxDelay:o.maxDelay,jitter:o.jitter,shouldRetry:o.shouldRetry,onRetry:o.onRetry},timeout:o.timeout})},T.withTimeout=(d,k,o)=>{if(typeof d!="string"||d.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(d,k,{key:o.key??d,timeout:o})},T.sleep=(d,k,o)=>{if(typeof d!="string"||d.length===0)throw new Error('[awaitly] step.sleep() requires an explicit string ID as the first argument. Example: step.sleep("delay", "5s")');let s=typeof k=="string"?ir(k):k;if(!s)throw new Error(`step.sleep: invalid duration '${k}'`);let t=s.millis,y=o?.signal;return T(d,async()=>{if(N?.aborted||y?.aborted){let w=new Error("Sleep aborted");throw w.name="AbortError",w}return new Promise((w,R)=>{let x={timeoutId:void 0},b=()=>{x.timeoutId&&clearTimeout(x.timeoutId);let v=new Error("Sleep aborted");v.name="AbortError",R(v)};N?.addEventListener("abort",b,{once:!0}),y?.addEventListener("abort",b,{once:!0}),x.timeoutId=setTimeout(()=>{N?.removeEventListener("abort",b),y?.removeEventListener("abort",b),w(K(void 0))},t)})},{key:o?.key??d,description:o?.description})},T.all=((...d)=>{if(typeof d[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 k=d[0],o=d[1];if(typeof o=="function")return X(k,o);if(o&&typeof o=="object"&&!Array.isArray(o)){let t=q(o);return re(t,{name:k})}throw new TypeError("step.all(name, ...): second argument must be a function (array form) or an object of operations (object form).")}),T.race=(d,k)=>{let o=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let s=performance.now(),t=!1,y={scopeId:o,type:"race",winnerId:void 0};g.push(y);let w=()=>{if(t)return;t=!0;let R=g.findIndex(x=>x.scopeId===o);R!==-1&&g.splice(R,1),c({type:"scope_end",workflowId:l,scopeId:o,ts:Date.now(),durationMs:performance.now()-s,winnerId:y.winnerId})};c({type:"scope_start",workflowId:l,scopeId:o,scopeType:"race",name:d,ts:Date.now()});try{let R=await k();if(w(),!R.ok)throw a?.(R.error,d,S),j(R.error,{origin:"result",resultCause:R.cause});return R.value}catch(R){throw w(),R}})()},T.if=(d,k,o)=>o(),T.label=T.if,T.branch=async(d,k)=>{let{condition:o,then:s,else:t}=k;if(o())return await s();if(t)return await t()},T.arm=(d,k)=>({fn:d,errors:k}),T.forEach=async(d,k,o)=>{let s=[],t=o.maxIterations,y=0,w="run"in o,R=Symbol.asyncIterator in k?k:(async function*(){yield*k})();for await(let x of R){if(t!==void 0&&y>=t)break;let b;w?b=await o.run(x,y):b=await o.item.handler(x,y,T),s.push(b),y++}return s},T.item=d=>({__forEachItemHandler:!0,handler:d}),T.dep=(d,k)=>k,T.workflow=(d,k,o)=>T(d,k,o),T.map=async(d,k,o,s)=>{let t=s?.concurrency??k.length;return T(d,()=>t>=k.length?$e(k.map((y,w)=>o(y,w))):(async()=>{let y=[];for(let w=0;w<k.length;w+=t){let R=k.slice(w,w+t),x=await $e(R.map((b,v)=>o(b,w+v)));if(!x.ok)return x;y.push(...x.value)}return K(y)})(),{key:s?.key})},T.withFallback=(d,k,o)=>{if(typeof d!="string"||d.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 s=o.key??d,t=d,y=D(s),w=i;return(async()=>{let R=w?performance.now():0;i&&c({type:"step_start",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now()});let x;try{x=await k()}catch(P){if(V(P))throw c({type:"step_aborted",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:performance.now()-R}),P;let B;try{B=C(P)}catch(M){throw ne(M)}if(o.on!==void 0&&o.on!==B){let M=performance.now()-R;throw c({type:"step_error",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:M,error:B}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:M,result:O(B,{cause:P}),meta:{origin:"throw",thrown:P}}),a?.(B,t,S),j(B,{origin:"throw",thrown:P})}let I;try{I=await o.fallback()}catch(M){if(V(M))throw c({type:"step_aborted",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:performance.now()-R}),M;let _;try{_=C(M)}catch(Q){throw ne(Q)}let te=performance.now()-R;throw c({type:"step_error",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:te,error:_}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:te,result:O(_,{cause:M}),meta:{origin:"throw",thrown:M}}),a?.(_,t,S),j(_,{origin:"throw",thrown:M})}if(I.ok){let M=performance.now()-R;return c({type:"step_success",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:M}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:M,result:I,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(B)}}),I.value}else{let M=performance.now()-R,_=$(I.error,{origin:"result",resultCause:I.cause});throw c({type:"step_error",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:M,error:_}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:M,result:I,meta:{origin:"result",resultCause:I.cause}}),a?.(_,t,S),j(_,{origin:"result",resultCause:I.cause})}}if(x.ok){let P=performance.now()-R;return c({type:"step_success",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:P}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:P,result:x}),x.value}let b=x.error;if(o.on!==void 0&&o.on!==b){let P=performance.now()-R,B=$(b,{origin:"result",resultCause:x.cause});throw c({type:"step_error",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:P,error:B}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:P,result:x,meta:{origin:"result",resultCause:x.cause}}),a?.(B,t,S),j(B,{origin:"result",resultCause:x.cause})}let v;try{v=await o.fallback()}catch(P){if(V(P))throw c({type:"step_aborted",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:performance.now()-R}),P;let B;try{B=C(P)}catch(M){throw ne(M)}let I=performance.now()-R;throw c({type:"step_error",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:I,error:B}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:I,result:O(B,{cause:P}),meta:{origin:"throw",thrown:P}}),a?.(B,t,S),j(B,{origin:"throw",thrown:P})}if(v.ok){let P=performance.now()-R;return c({type:"step_success",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:P}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:P,result:v,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(b)}}),v.value}let U=performance.now()-R,W=$(v.error,{origin:"result",resultCause:v.cause});throw c({type:"step_error",workflowId:l,stepId:y,stepKey:s,name:t,ts:Date.now(),durationMs:U,error:W}),s&&c({type:"step_complete",workflowId:l,stepKey:s,name:t,ts:Date.now(),durationMs:U,result:v,meta:{origin:"result",resultCause:v.cause}}),a?.(W,t,S),j(W,{origin:"result",resultCause:v.cause})})()},T.withResource=(d,k)=>{if(typeof d!="string"||d.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 o=d,s=d,t=D(o),y=i;return(async()=>{let w=y?performance.now():0;i&&c({type:"step_start",workflowId:l,stepId:t,stepKey:o,name:s,ts:Date.now()});let R;try{R=await k.acquire()}catch(I){if(V(I))throw c({type:"step_aborted",workflowId:l,stepId:t,stepKey:o,name:s,ts:Date.now(),durationMs:performance.now()-w}),I;let M;try{M=C(I)}catch(te){throw ne(te)}let _=performance.now()-w;throw c({type:"step_error",workflowId:l,stepId:t,stepKey:o,name:s,ts:Date.now(),durationMs:_,error:M}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:s,ts:Date.now(),durationMs:_,result:O(M,{cause:I}),meta:{origin:"throw",thrown:I}}),a?.(M,s,S),j(M,{origin:"throw",thrown:I})}if(!R.ok){let I=performance.now()-w,M=$(R.error,{origin:"result",resultCause:R.cause});throw c({type:"step_error",workflowId:l,stepId:t,stepKey:o,name:s,ts:Date.now(),durationMs:I,error:M}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:s,ts:Date.now(),durationMs:I,result:R,meta:{origin:"result",resultCause:R.cause}}),a?.(M,s,S),j(M,{origin:"result",resultCause:R.cause})}let x=R.value,b,v,U=!1;try{b=await k.use(x)}catch(I){if(V(I)){try{await k.release(x)}catch(M){console.warn(`[awaitly] step.withResource("${d}"): release threw after earlyExit:`,M)}throw I}v=I,U=!0}try{await k.release(x)}catch(I){console.warn(`[awaitly] step.withResource("${d}"): release threw:`,I)}if(U){let I;try{I=C(v)}catch(_){throw ne(_)}let M=performance.now()-w;throw c({type:"step_error",workflowId:l,stepId:t,stepKey:o,name:s,ts:Date.now(),durationMs:M,error:I}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:s,ts:Date.now(),durationMs:M,result:O(I,{cause:v}),meta:{origin:"throw",thrown:v}}),a?.(I,s,S),j(I,{origin:"throw",thrown:v})}let W=b;if(W.ok){let I=performance.now()-w;return c({type:"step_success",workflowId:l,stepId:t,stepKey:o,name:s,ts:Date.now(),durationMs:I}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:s,ts:Date.now(),durationMs:I,result:W}),W.value}let P=performance.now()-w,B=$(W.error,{origin:"result",resultCause:W.cause});throw c({type:"step_error",workflowId:l,stepId:t,stepKey:o,name:s,ts:Date.now(),durationMs:P,error:B}),o&&c({type:"step_complete",workflowId:l,stepKey:o,name:s,ts:Date.now(),durationMs:P,result:W,meta:{origin:"result",resultCause:W.cause}}),a?.(B,s,S),j(B,{origin:"result",resultCause:W.cause})})()};let G=await u({step:T});if(process.env.NODE_ENV!=="production"&&G!==null&&typeof G=="object"&&"ok"in G&&typeof G.ok=="boolean"){let d=G;(d.ok===!0&&"value"in d||d.ok===!1&&"error"in d)&&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 K(G)}catch(T){if(yr(T))throw T.thrown;if(V(T)){let X=T.meta.origin==="throw"?T.meta.thrown:T.meta.origin==="result"?T.meta.resultCause:void 0;return O(T.error,{cause:X})}let q=C(T);return a?.(q,"unexpected",S),O(q,{cause:T})}}ve.strict=(e,r)=>ve(e,r);async function $e(e){return e.length===0?K([]):new Promise(r=>{let n=!1,u=e.length,E=new Array(e.length);for(let a=0;a<e.length;a++){let i=a;Promise.resolve(e[i]).catch(p=>O({type:"PROMISE_REJECTED",cause:p},{cause:{type:"PROMISE_REJECTION",reason:p}})).then(p=>{if(!n){if(!p.ok){n=!0,r(p);return}E[i]=p.value,u--,u===0&&r(K(E))}})}})}function qe(e={}){let r=e.maxItemsPerStream??1/0,n=new Map;function u(a,i){return`${a}:${i}`}function E(a,i){let p=u(a,i),m=n.get(p);return m||(m={metadata:{id:p,namespace:i,workflowId:a,length:0,closed:!1,createdAt:Date.now()},items:[],subscribers:new Set},n.set(p,m)),m}return{async append(a,i,p){try{let m=E(a,i);if(m.metadata.closed)return O(L("write_error","Cannot write to closed stream"));if(m.items.length>=r)return O(L("write_error",`Stream exceeded max items limit (${r})`));m.items.push(p),m.metadata.length=m.items.length,m.metadata.lastWriteAt=Date.now();for(let f of m.subscribers)try{f(p)}catch{}return K(void 0)}catch(m){return O(L("write_error","Failed to append item",m))}},async read(a,i,p,m){try{let f=u(a,i),S=n.get(f);if(!S)return K([]);let N=m!==void 0?Math.min(p+m,S.items.length):S.items.length,l=S.items.slice(p,N);return K(l)}catch(f){return O(L("read_error","Failed to read items",f))}},async getMetadata(a,i){try{let p=u(a,i),m=n.get(p);return K(m?.metadata)}catch(p){return O(L("metadata_error","Failed to get metadata",p))}},async closeStream(a,i){try{let p=u(a,i),m=n.get(p);return m&&(m.metadata.closed=!0,m.metadata.closedAt=Date.now()),K(void 0)}catch(p){return O(L("close_error","Failed to close stream",p))}},subscribe(a,i,p){let m=E(a,i),f=p;return m.subscribers.add(f),()=>{m.subscribers.delete(f)}}}}function Tr(e={}){let r=new Map,n=e.maxItemsPerStream??1/0;function u(i,p){return`${i}:${p}`}function E(i,p){let m=u(i,p),f=r.get(m);return f||(f={metadata:{id:m,namespace:p,workflowId:i,length:0,closed:!1,createdAt:Date.now()},items:[],subscribers:new Set},r.set(m,f)),f}return{...qe(e),async append(i,p,m){try{let f=E(i,p);if(f.metadata.closed)return O(L("write_error","Cannot write to closed stream"));if(f.items.length>=n)return O(L("write_error",`Stream exceeded max items limit (${n})`));f.items.push(m),f.metadata.length=f.items.length,f.metadata.lastWriteAt=Date.now();for(let S of f.subscribers)try{S(m)}catch{}return K(void 0)}catch(f){return O(L("write_error","Failed to append item",f))}},async read(i,p,m,f){try{let S=u(i,p),N=r.get(S);if(!N)return K([]);let l=f!==void 0?Math.min(m+f,N.items.length):N.items.length,C=N.items.slice(m,l);return K(C)}catch(S){return O(L("read_error","Failed to read items",S))}},async getMetadata(i,p){try{let m=u(i,p),f=r.get(m);return K(f?.metadata)}catch(m){return O(L("metadata_error","Failed to get metadata",m))}},async closeStream(i,p){try{let m=u(i,p),f=r.get(m);return f&&(f.metadata.closed=!0,f.metadata.closedAt=Date.now()),K(void 0)}catch(m){return O(L("close_error","Failed to close stream",m))}},subscribe(i,p,m){let f=E(i,p),S=m;return f.subscribers.add(S),()=>{f.subscribers.delete(S)}},clear(){r.clear()},keys(){return Array.from(r.keys())},has(i,p){return r.has(u(i,p))},delete(i,p){return r.delete(u(i,p))}}}function kr(e){let{directory:r,fs:n}=e,u=new Map;function E(C,g){return`${r}/${C}/${g}`}function a(C,g){return`${E(C,g)}/metadata.json`}function i(C,g){return`${E(C,g)}/items.jsonl`}function p(C,g){return`${C}:${g}`}async function m(C,g){let A=E(C,g);await n.mkdir(A,{recursive:!0})}async function f(C,g){let A=a(C,g);if(!await n.exists(A))return;let D=await n.readFile(A);return JSON.parse(D)}async function S(C,g,A){await m(C,g);let D=a(C,g);await n.writeFile(D,JSON.stringify(A,null,2))}async function N(C,g,A){await m(C,g);let D=i(C,g),c=JSON.stringify(A)+`
|
|
7
|
-
`,j="";await n.exists(D)&&(j=await n.readFile(D)),await n.writeFile(D,j+c)}async function l(C,g,A,D){let c=i(C,g);if(!await n.exists(c))return[];let V=(await n.readFile(c)).trim().split(`
|
|
8
|
-
`).filter(Boolean),$=[];for(let de of V){let Ee=JSON.parse(de);if(Ee.position>=A&&($.push(Ee),D!==void 0&&$.length>=D))break}return $}return{async append(C,g,A){try{let D=await f(C,g);if(D||(D={id:`${C}:${g}`,namespace:g,workflowId:C,length:0,closed:!1,createdAt:Date.now()}),D.closed)return O(L("write_error","Cannot write to closed stream"));let c={value:A.value,position:A.position,ts:A.ts};await N(C,g,c),D.length++,D.lastWriteAt=Date.now(),await S(C,g,D);let j=p(C,g),V=u.get(j);if(V)for(let $ of V)try{$(A)}catch{}return K(void 0)}catch(D){return O(L("write_error","Failed to append item",D))}},async read(C,g,A,D){try{let j=(await l(C,g,A,D)).map(V=>({value:V.value,position:V.position,ts:V.ts}));return K(j)}catch(c){return O(L("read_error","Failed to read items",c))}},async getMetadata(C,g){try{let A=await f(C,g);return A?K({id:A.id,namespace:A.namespace,workflowId:A.workflowId,length:A.length,closed:A.closed,createdAt:A.createdAt,lastWriteAt:A.lastWriteAt,closedAt:A.closedAt}):K(void 0)}catch(A){return O(L("metadata_error","Failed to get metadata",A))}},async closeStream(C,g){try{let A=await f(C,g);return A&&(A.closed=!0,A.closedAt=Date.now(),await S(C,g,A)),K(void 0)}catch(A){return O(L("close_error","Failed to close stream",A))}},subscribe(C,g,A){let D=p(C,g),c=u.get(D);c||(c=new Set,u.set(D,c));let j=A;return c.add(j),()=>{c?.delete(j),c?.size===0&&u.delete(D)}}}}async function*z(e){for(;e.readable;){let r=await e.read();if(!r.ok){if(be(r.error))break;throw r.error}yield r.value}}async function*Rr(e,r){let n=Y(e)?z(e):e,u=0;for await(let E of n)yield await r(E,u++)}async function*gr(e,r){let n=Y(e)?z(e):e,u=0;for await(let E of n)await r(E,u++)&&(yield E)}async function*xr(e,r){if(r<1)throw new Error("Chunk size must be at least 1");let n=Y(e)?z(e):e,u=[];for await(let E of n)u.push(E),u.length>=r&&(yield u,u=[]);u.length>0&&(yield u)}async function*Sr(e,r){let n=Y(e)?z(e):e,u=0;for await(let E of n){let a=r(E,u++);if(Symbol.asyncIterator in a)for await(let i of a)yield i;else for(let i of a)yield i}}async function*Cr(e,r){let n=Y(e)?z(e):e,u=0;for await(let E of n){let a=await r(E,u++);if(!a.ok){yield O(a.error);return}let i=a.value;if(Symbol.asyncIterator in i)for await(let p of i)yield K(p);else for(let p of i)yield K(p)}}async function*br(e,r){let n=Y(e)?z(e):e,u=0;for await(let E of n)yield await r(E,u++)}async function*hr(e,r){if(r<=0)return;let n=Y(e)?z(e):e,u=0;for await(let E of n)if(yield E,u++,u>=r)break}async function*Ar(e,r){let n=Y(e)?z(e):e,u=0;for await(let E of n){if(u<r){u++;continue}yield E}}async function*vr(e,r){let n=Y(e)?z(e):e,u=0;for await(let E of n){if(!await r(E,u++))break;yield E}}async function*Pr(e,r){let n=Y(e)?z(e):e,u=!0,E=0;for await(let a of n)u&&await r(a,E++)||(u=!1,yield a)}async function Ir(e){let r=[],n=Y(e)?z(e):e;for await(let u of n)r.push(u);return r}async function _r(e,r,n){let u=n,E=Y(e)?z(e):e,a=0;for await(let i of E)u=await r(u,i,a++);return u}function Y(e){return typeof e=="object"&&e!==null&&"read"in e&&typeof e.read=="function"&&"readable"in e}function Or(e,...r){let n=Y(e)?z(e):e;for(let u of r)n=u(n);return n}function it(e){let{store:r,workflowId:n,namespace:u="default",startIndex:E=0,pollInterval:a=100,pollTimeout:i=3e4}=e,p=E,m=!0,f=!1,S=[],N=0;return{async read(){if(f)return O(ce("closed","Reader is closed"));if(N<S.length){let g=S[N++];return p=g.position+1,K(g.value)}let C=Date.now();for(;Date.now()-C<i;){let g=await r.read(n,u,p,100);if(!g.ok)return O(ce("store_error",g.error.message,g.error));let A=g.value;if(A.length>0){S=A,N=1;let c=A[0];return p=c.position+1,K(c.value)}let D=await r.getMetadata(n,u);if(D.ok&&D.value?.closed)return m=!1,O(le(p));await new Promise(c=>setTimeout(c,a))}return m=!1,O(le(p))},close(){f=!0,m=!1,S=[]},get readable(){return m},get position(){return p},get namespace(){return u}}}export{Ce as STREAM_BACKPRESSURE_ERROR,Pe as STREAM_CLOSE_ERROR,Se as STREAM_ENDED,ge as STREAM_READ_ERROR,xe as STREAM_STORE_ERROR,Re as STREAM_WRITE_ERROR,xr as chunk,Ir as collect,nr as createBackpressureController,kr as createFileStreamStore,qe as createMemoryStreamStore,Tr as createTestableMemoryStreamStore,gr as filter,Sr as flatMap,Cr as flatMapAsync,it as getStreamReader,Qe as isStreamBackpressureError,be as isStreamEnded,Xe as isStreamReadError,Ze as isStreamStoreError,Ge as isStreamWriteError,Rr as map,br as mapAsync,Or as pipe,_r as reduce,or as shouldApplyBackpressure,Ar as skip,Pr as skipWhile,tr as streamBackpressureError,rr as streamCloseError,le as streamEnded,ce as streamReadError,L as streamStoreError,er as streamWriteError,hr as take,vr as takeWhile,z as toAsyncIterable};
|
|
9
|
-
//# sourceMappingURL=streaming.js.map
|