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/streaming.cjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";var be=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var Tt=Object.getOwnPropertyNames;var kt=Object.prototype.hasOwnProperty;var Rt=(e,t)=>{for(var r in t)be(e,r,{get:t[r],enumerable:!0})},xt=(e,t,r,u)=>{if(t&&typeof t=="object"||typeof t=="function")for(let y of Tt(t))!kt.call(e,y)&&y!==r&&be(e,y,{get:()=>t[y],enumerable:!(u=gt(t,y))||u.enumerable});return e};var St=e=>xt(be({},"__esModule",{value:!0}),e);var Nt={};Rt(Nt,{STREAM_BACKPRESSURE_ERROR:()=>ye,STREAM_CLOSE_ERROR:()=>he,STREAM_ENDED:()=>Ee,STREAM_READ_ERROR:()=>me,STREAM_STORE_ERROR:()=>de,STREAM_WRITE_ERROR:()=>pe,chunk:()=>st,collect:()=>dt,createBackpressureController:()=>Ne,createFileStreamStore:()=>rt,createMemoryStreamStore:()=>_e,createTestableMemoryStreamStore:()=>tt,filter:()=>ot,flatMap:()=>at,flatMapAsync:()=>it,getStreamReader:()=>Ft,isStreamBackpressureError:()=>Oe,isStreamEnded:()=>fe,isStreamReadError:()=>ve,isStreamStoreError:()=>Pe,isStreamWriteError:()=>Me,map:()=>nt,mapAsync:()=>ut,pipe:()=>yt,reduce:()=>Et,shouldApplyBackpressure:()=>Ke,skip:()=>lt,skipWhile:()=>mt,streamBackpressureError:()=>Fe,streamCloseError:()=>Ue,streamEnded:()=>ie,streamReadError:()=>ae,streamStoreError:()=>W,streamWriteError:()=>De,take:()=>ct,takeWhile:()=>pt,toAsyncIterable:()=>L});module.exports=St(Nt);var pe="STREAM_WRITE_ERROR",me="STREAM_READ_ERROR",he="STREAM_CLOSE_ERROR",de="STREAM_STORE_ERROR",Ee="STREAM_ENDED",ye="STREAM_BACKPRESSURE_ERROR";function fe(e){return typeof e=="object"&&e!==null&&e.type===Ee}function Me(e){return typeof e=="object"&&e!==null&&e.type===pe}function ve(e){return typeof e=="object"&&e!==null&&e.type===me}function Pe(e){return typeof e=="object"&&e!==null&&e.type===de}function Oe(e){return typeof e=="object"&&e!==null&&e.type===ye}function De(e,t,r){return{type:pe,reason:e,message:t,...r!==void 0?{cause:r}:{}}}function ae(e,t,r){return{type:me,reason:e,message:t,...r!==void 0?{cause:r}:{}}}function Ue(e,t,r){return{type:he,reason:e,message:t,...r!==void 0?{cause:r}:{}}}function W(e,t,r){return{type:de,reason:e,message:t,...r!==void 0?{cause:r}:{}}}function ie(e){return{type:Ee,finalPosition:e}}function Fe(e,t){return{type:ye,bufferedCount:e,highWaterMark:t}}function Ne(e={}){let t=e.highWaterMark??16,r=e.lowWaterMark??Math.floor(t/2),u=e.onStateChange,y="flowing",m=0,l=[];function a(n){if(y!==n&&(y=n,u?.(n),n==="flowing"&&l.length>0)){let v=l;l=[];for(let M of v)M()}}function p(){y==="flowing"&&m>=t?a("paused"):y==="paused"&&m<=r&&a("flowing")}return{get state(){return y},get bufferedCount(){return m},get highWaterMark(){return t},get lowWaterMark(){return r},increment(){m++,p()},decrement(){m>0&&(m--,p())},setCount(n){m=Math.max(0,n),p()},waitForDrain(){return y==="flowing"?Promise.resolve():new Promise(n=>{l.push(n)})},reset(){m=0,l=[],a("flowing")}}}function Ke(e){return e.state==="paused"}var bt={"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 Be(e){return`https://jagreehal.github.io/awaitly/rules/#${e}`}var Wt=Object.keys(bt);var ue=class extends Error{_tag};function $(e,t){return class extends ue{_tag=e;constructor(r,u){let y=t?.message?t.message(r??{}):e;if(super(y),this.name=e,t?.slug!==void 0){if(!t.hint)throw new TypeError(`TaggedError: 'hint' is required when 'slug' is set (slug: "${t.slug}")`);Object.defineProperty(this,"code",{value:t.slug,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"hint",{value:t.hint,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"docsUrl",{value:Be(t.slug),enumerable:!0,writable:!1,configurable:!1})}if(Object.setPrototypeOf(this,new.target.prototype),r&&typeof r=="object"){let m;if(t?.slug!==void 0){let{_tag:n,name:v,message:M,stack:j,code:x,hint:s,docsUrl:w,...P}=r;m=P}else{let{_tag:n,name:v,message:M,stack:j,...x}=r;m=x}let l=Object.prototype.hasOwnProperty.call(m,"cause"),a=l?m.cause:void 0;l&&delete m.cause;let p=u?.cause!==void 0;if(l&&p)throw new TypeError("TaggedError: cannot provide 'cause' in props when also setting ErrorOptions.cause");Object.assign(this,m),l&&(this.cause=a),p&&(this.cause=u?.cause)}else u?.cause!==void 0&&(this.cause=u.cause)}}}Object.defineProperty($,Symbol.hasInstance,{value:e=>e instanceof ue});(y=>{function e(m){return m instanceof Error}y.isError=e;function t(m){return m instanceof ue}y.isTaggedError=t;function r(m,l){let a=m._tag,p=l[a];return p(m)}y.match=r;function u(m,l,a){let p=m._tag,n=l[p];return n?n(m):a(m)}y.matchPartial=u})($||={});var je=class extends $("TimeoutError",{slug:"runtime-step-timeout",hint:"Increase the step's timeout option, or check why the upstream operation is slow.",message:t=>t.operation?`TimeoutError: ${t.operation} timed out after ${t.ms}ms`:`TimeoutError: Operation timed out after ${t.ms}ms`}){},We=class extends $("RetryExhaustedError",{slug:"runtime-retry-exhausted",hint:"All retry attempts failed. Inspect lastError and decide whether to surface it or compensate.",message:t=>t.operation?`RetryExhaustedError: ${t.operation} failed after ${t.attempts} attempts`:`RetryExhaustedError: Operation failed after ${t.attempts} attempts`}){},Le=class extends $("RateLimitError",{slug:"runtime-rate-limit",hint:"Wait retryAfterMs before retrying, or apply step.cache to deduplicate calls.",message:t=>t.limiterName?`RateLimitError: Rate limit exceeded for ${t.limiterName}${t.retryAfterMs?`, retry after ${t.retryAfterMs}ms`:""}`:`RateLimitError: Rate limit exceeded${t.retryAfterMs?`, retry after ${t.retryAfterMs}ms`:""}`}){},$e=class extends $("CircuitBreakerOpenError",{slug:"runtime-circuit-open",hint:"The circuit is open. Wait for it to half-open or fall back to a degraded path.",message:t=>`CircuitBreakerOpenError: Circuit ${t.circuitName} is ${t.state??"OPEN"}${t.retryAfterMs?`, retry after ${Math.ceil(t.retryAfterMs/1e3)}s`:""}`}){},Ve=class extends $("ValidationError",{message:t=>`ValidationError: Invalid ${t.field} - ${t.reason}`}){},He=class extends $("NotFoundError",{message:t=>t.id?`NotFoundError: ${t.resource} with id ${t.id} not found`:`NotFoundError: ${t.resource} not found`}){},qe=class extends $("UnauthorizedError",{message:t=>t.reason?`UnauthorizedError: ${t.reason}`:t.action&&t.resource?`UnauthorizedError: Not authorized to ${t.action} ${t.resource}`:"UnauthorizedError: Access denied"}){},ze=class extends $("NetworkError",{message:t=>t.url?`NetworkError: ${t.reason} (${t.url})`:`NetworkError: ${t.reason}`}){},Ye=class extends $("CompensationError",{slug:"runtime-saga-compensation",hint:"A saga compensation step failed. Inspect compensationError and ensure compensation is idempotent.",message:t=>`CompensationError: Failed to compensate step ${t.step}`}){},we=class extends $("UnexpectedError",{slug:"runtime-unexpected",hint:"An unexpected exception escaped a step. Inspect cause; consider returning a typed Result instead of throwing.",message:t=>`UnexpectedError: ${t.cause instanceof Error?t.cause.message:String(t.cause??"unknown")}`}){};function ht(e){let t=e.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!t)return;let r=parseFloat(t[1]),u=t[2].toLowerCase();return{_tag:"Duration",millis:r*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[u]??1)}}function Ct(e){return new we({cause:e})}function F(e){return{ok:!0,value:e}}function I(e,t){let r=t?.cause;return{ok:!1,error:e,...r!==void 0?{cause:r}:{}}}function At(e){if(e==null)return"unknown";if(typeof e=="string")return e.trim()||"unknown";if(typeof e=="object"){let t=e;if(typeof t._tag=="string"){let r=t._tag.trim();if(r)return r}if(typeof t.tag=="string"){let r=t.tag.trim();if(r)return r}if(typeof t.code=="string"){let r=t.code.trim();if(r)return r}else if(typeof t.code=="number")return String(t.code);if(e instanceof Error&&e.name){let r=e.name.trim();if(r)return r}}return"unknown"}function _t(e,t){if(!(!t||!e))return t[e]}function It(e){let{intent:t,domain:r,owner:u,tags:y,stateChanges:m,emits:l,calls:a}=e;if(!t&&!r&&!u&&!y?.length&&!m?.length&&!l?.length&&!a?.length)return;let p={};return t&&(p.intent=t),r&&(p.domain=r),u&&(p.owner=u),y?.length&&(p.tags=y),m?.length&&(p.stateChanges=m),l?.length&&(p.emits=l),a?.length&&(p.calls=a),p}function q(e,t,r,u,y){let m=At(e),l=_t(m,t),a={tag:m,origin:r};return l!==void 0&&(a.classification=l),u!==void 0&&(a.attempt=u),y!==void 0&&(a.cumulativeDurationMs=y),a}var oe=Symbol.for("step_timeout_marker");function Je(e){return typeof e!="object"||e===null?!1:e.type==="STEP_TIMEOUT"?!0:oe in e}function Mt(e){if(!(typeof e!="object"||e===null)){if(e.type==="STEP_TIMEOUT"){let t=e;return{timeoutMs:t.timeoutMs,stepName:t.stepName,stepKey:t.stepKey,attempt:t.attempt}}if(oe in e)return e[oe]}}var Ze=Symbol("early-exit");function vt(e,t){return{[Ze]:!0,error:e,meta:t}}function Pt(e){return typeof e=="object"&&e!==null&&e[Ze]===!0}var et=Symbol("mapper-exception");function re(e){return{[et]:!0,thrown:e}}function Ot(e){return typeof e=="object"&&e!==null&&e[et]===!0}function Ce(e,t){let{backoff:r,initialDelay:u,maxDelay:y,jitter:m}=t,l;switch(r){case"fixed":l=u;break;case"linear":l=u*e;break;case"exponential":l=u*Math.pow(2,e-1);break}if(l=Math.min(l,y),m){let a=l*.25*Math.random();l=l+a}return Math.floor(l)}function Ae(e){return new Promise(t=>setTimeout(t,e))}var Ge=Symbol("timeout"),ge=Symbol("timeout-option");function Dt(e){return typeof e=="object"&&e!==null&&e[ge]===!0}async function Ut(e,t,r,u){let y=new AbortController,m=t.onTimeout??"error",l=()=>typeof m=="function"?m({name:r.name,key:r.key,ms:t.ms}):t.error??{type:"STEP_TIMEOUT",stepName:r.name,stepKey:r.key,timeoutMs:t.ms,attempt:r.attempt},a;u?.aborted&&y.abort(u.reason);let p;u&&!u.aborted&&(p=()=>y.abort(u.reason),u.addEventListener("abort",p,{once:!0}));let n=new Promise((M,j)=>{a=setTimeout(()=>{if(m!=="disconnect"&&y.abort(),m==="option"){j({[ge]:!0,ms:t.ms});return}j({[Ge]:!0,error:l()})},t.ms)}),v;t.signal?v=Promise.resolve(e(y.signal)):v=Promise.resolve(e());try{return await Promise.race([v,n])}catch(M){if(typeof M=="object"&&M!==null&&M[ge]===!0)throw{[ge]:!0,ms:t.ms};if(typeof M=="object"&&M!==null&&M[Ge]===!0){m==="disconnect"&&v.catch(()=>{});let j=M.error;if(typeof j=="object"&&j!==null&&j.type!=="STEP_TIMEOUT"){let x={timeoutMs:t.ms,stepName:r.name,stepKey:r.key,attempt:r.attempt};oe in j?j[oe]=x:Object.defineProperty(j,oe,{value:x,enumerable:!1,writable:!0,configurable:!1})}throw j}throw M}finally{clearTimeout(a),p&&u&&u.removeEventListener("abort",p)}}var ne={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:()=>!0,onRetry:()=>{}};async function Xe(e,t){let{onError:r,onEvent:u,catchUnexpected:y,workflowId:m,workflowName:l,context:a,_workflowSignal:p}=t&&typeof t=="object"?t:{},n=m??crypto.randomUUID(),v=y??Ct,M=[],j=0,x=g=>g??`step_${++j}`,s=g=>{let z=g.context!==void 0||a===void 0?g:{...g,context:a},X=l!==void 0&&z.workflowName===void 0?{...z,workflowName:l}:z;if(X.type==="step_success"){let ce=X.stepId;for(let le=M.length-1;le>=0;le--){let Y=M[le];if(Y.type==="race"&&!Y.winnerId){Y.winnerId=ce;break}}}u?.(X,a)},w=vt,P=g=>Pt(g),N=(g,z)=>g,H=g=>typeof g=="function"?!1:!!(g&&typeof g=="object"&&"ok"in g||g&&typeof g=="object"&&"then"in g&&typeof g.then=="function");try{let z=function(d){let T={};for(let[i,c]of Object.entries(d))if(typeof c=="function")T[i]=c;else if(c&&typeof c=="object"&&"fn"in c)T[i]=c.fn;else throw new TypeError(`step.all: operation "${i}" must be a function or { fn, errors? } object`);return T},X=function(d,T){let i=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let c=performance.now(),o=!1;M.push({scopeId:i,type:"parallel"});let E=()=>{if(o)return;o=!0;let f=M.findIndex(k=>k.scopeId===i);f!==-1&&M.splice(f,1),s({type:"scope_end",workflowId:n,scopeId:i,ts:Date.now(),durationMs:performance.now()-c})};s({type:"scope_start",workflowId:n,scopeId:i,scopeType:"parallel",name:d,ts:Date.now()});try{let f=await T();if(E(),!f.ok)throw r?.(f.error,d,a),w(f.error,{origin:"result",resultCause:f.cause});return f.value}catch(f){throw E(),f}})()},ce=function(d,T){let i=Object.keys(d),c=T.name??`Parallel(${i.join(", ")})`,o=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let E=performance.now(),f=!1;M.push({scopeId:o,type:"parallel"});let k=()=>{if(f)return;f=!0;let R=M.findIndex(S=>S.scopeId===o);R!==-1&&M.splice(R,1),s({type:"scope_end",workflowId:n,scopeId:o,ts:Date.now(),durationMs:performance.now()-E})};s({type:"scope_start",workflowId:n,scopeId:o,scopeType:"parallel",name:c,ts:Date.now()});try{let R=await new Promise(h=>{if(i.length===0){h([]);return}let D=!1,B=i.length,C=new Array(i.length);for(let K=0;K<i.length;K++){let A=i[K],O=K;Promise.resolve(d[A]()).catch(_=>I({type:"PROMISE_REJECTED",cause:_},{cause:{type:"PROMISE_REJECTION",reason:_}})).then(_=>{if(!D){if(!_.ok){D=!0,h([{key:A,result:_}]);return}C[O]={key:A,result:_},B--,B===0&&h(C)}})}});k();let S={};for(let{key:h,result:D}of R){if(!D.ok)throw r?.(D.error,h,a),w(D.error,{origin:"result",resultCause:D.cause});S[h]=D.value}return S}catch(R){throw k(),R}})()};var J=z,te=X,Ie=ce;let g=(d,T,i)=>(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 c=i??{},o=It(c),E=d,f=c.key??d,k=c.key??d,{description:R,retry:S,timeout:h}=c,D=x(f),B=u,C=B?performance.now():0,A=H(T)?()=>T:T,_={attempts:Math.max(1,S?.attempts??1),backoff:S?.backoff??ne.backoff,initialDelay:S?.initialDelay??ne.initialDelay,maxDelay:S?.maxDelay??ne.maxDelay,jitter:S?.jitter??ne.jitter,shouldRetry:S?.shouldRetry??ne.shouldRetry,onRetry:S?.onRetry??ne.onRetry};u&&s({type:"step_start",workflowId:n,stepId:D,stepKey:f,name:E,description:R,ts:Date.now(),...o&&{metadata:o}});let ee;for(let U=1;U<=_.attempts;U++){let ft=B?performance.now():0;try{let b;if(h?b=await Ut(A,h,{name:E,key:f,attempt:U},p):b=await A(),b.ok){let Z=performance.now()-C;return s({type:"step_success",workflowId:n,stepId:D,stepKey:f,name:E,description:R,ts:Date.now(),durationMs:Z,...o&&{metadata:o}}),k&&s({type:"step_complete",workflowId:n,stepKey:k,name:E,description:R,ts:Date.now(),durationMs:Z,result:b,...o&&{metadata:o}}),b.value}if(ee=b,U<_.attempts&&_.shouldRetry(b.error,U)){let Z=Ce(U,_);s({type:"step_retry",workflowId:n,stepId:D,stepKey:f,name:E,ts:Date.now(),attempt:U+1,maxAttempts:_.attempts,delayMs:Z,error:b.error,...o&&{metadata:o},diagnostics:q(b.error,c.errorMeta,"result",U,performance.now()-C)}),_.onRetry(b.error,U,Z),await Ae(Z);continue}_.attempts>1&&s({type:"step_retries_exhausted",workflowId:n,stepId:D,stepKey:f,name:E,ts:Date.now(),durationMs:performance.now()-C,attempts:U,lastError:b.error,...o&&{metadata:o},diagnostics:q(b.error,c.errorMeta,"result",U,performance.now()-C)});break}catch(b){let Z=performance.now()-ft;if(Dt(b)){let G=b.ms;s({type:"step_timeout",workflowId:n,stepId:D,stepKey:f,name:E,ts:Date.now(),timeoutMs:G,attempt:U,...o&&{metadata:o},diagnostics:q(b,c.errorMeta,"timeout",U)}),s({type:"step_success",workflowId:n,stepId:D,stepKey:f,name:E,description:R,ts:Date.now(),durationMs:performance.now()-C,...o&&{metadata:o}}),k&&s({type:"step_complete",workflowId:n,stepKey:k,name:E,description:R,ts:Date.now(),durationMs:performance.now()-C,result:F(void 0),...o&&{metadata:o}});return}if(P(b))throw s({type:"step_aborted",workflowId:n,stepId:D,stepKey:f,name:E,description:R,ts:Date.now(),durationMs:Z,...o&&{metadata:o}}),b;if(Je(b)){let G=Mt(b),wt=h?.ms??G?.timeoutMs??0;if(s({type:"step_timeout",workflowId:n,stepId:D,stepKey:f,name:E,ts:Date.now(),timeoutMs:wt,attempt:U,...o&&{metadata:o},diagnostics:q(b,c.errorMeta,"timeout",U)}),U<_.attempts&&_.shouldRetry(b,U)){let Se=Ce(U,_);s({type:"step_retry",workflowId:n,stepId:D,stepKey:f,name:E,ts:Date.now(),attempt:U+1,maxAttempts:_.attempts,delayMs:Se,error:b,...o&&{metadata:o},diagnostics:q(b,c.errorMeta,"timeout",U,performance.now()-C)}),_.onRetry(b,U,Se),await Ae(Se);continue}_.attempts>1&&s({type:"step_retries_exhausted",workflowId:n,stepId:D,stepKey:f,name:E,ts:Date.now(),durationMs:performance.now()-C,attempts:U,lastError:b,...o&&{metadata:o},diagnostics:q(b,c.errorMeta,"timeout",U,performance.now()-C)});let xe=performance.now()-C;throw s({type:"step_error",workflowId:n,stepId:D,stepKey:f,name:E,description:R,ts:Date.now(),durationMs:xe,error:b,...o&&{metadata:o},diagnostics:q(b,c.errorMeta,"timeout",U,xe)}),k&&s({type:"step_complete",workflowId:n,stepKey:k,name:E,description:R,ts:Date.now(),durationMs:xe,result:I(b,{cause:b}),meta:{origin:"throw",thrown:b},...o&&{metadata:o}}),r?.(b,E,a),w(b,{origin:"throw",thrown:b})}if(U<_.attempts&&_.shouldRetry(b,U)){let G=Ce(U,_);s({type:"step_retry",workflowId:n,stepId:D,stepKey:f,name:E,ts:Date.now(),attempt:U+1,maxAttempts:_.attempts,delayMs:G,error:b,...o&&{metadata:o},diagnostics:q(b,c.errorMeta,"throw",U,performance.now()-C)}),_.onRetry(b,U,G),await Ae(G);continue}_.attempts>1&&!Je(b)&&s({type:"step_retries_exhausted",workflowId:n,stepId:D,stepKey:f,name:E,ts:Date.now(),durationMs:performance.now()-C,attempts:U,lastError:b,...o&&{metadata:o},diagnostics:q(b,c.errorMeta,"throw",U,performance.now()-C)});let Re=performance.now()-C,se;try{se=v(b)}catch(G){throw re(G)}throw s({type:"step_error",workflowId:n,stepId:D,stepKey:f,name:E,description:R,ts:Date.now(),durationMs:Re,error:se,...o&&{metadata:o},diagnostics:q(b,c.errorMeta,"throw",U,Re)}),k&&s({type:"step_complete",workflowId:n,stepKey:k,name:E,description:R,ts:Date.now(),durationMs:Re,result:I(se,{cause:b}),meta:{origin:"throw",thrown:b},...o&&{metadata:o}}),r?.(se,E,a),w(se,{origin:"throw",thrown:b})}}let Q=ee,Te=performance.now()-C,ke=N(Q.error,{origin:"result",resultCause:Q.cause});throw s({type:"step_error",workflowId:n,stepId:D,stepKey:f,name:E,description:R,ts:Date.now(),durationMs:Te,error:ke,...o&&{metadata:o},diagnostics:q(Q.error,c.errorMeta,"result",_.attempts,Te)}),k&&s({type:"step_complete",workflowId:n,stepKey:k,name:E,description:R,ts:Date.now(),durationMs:Te,result:Q,meta:{origin:"result",resultCause:Q.cause},...o&&{metadata:o}}),r?.(ke,E,a),w(ke,{origin:"result",resultCause:Q.cause})})();g.try=(d,T,i)=>{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 c="error"in i?()=>i.error:i.onError;if(i.retry||i.timeout)return g.retry(d,async()=>{try{return F(await T())}catch(R){return I(c(R),{cause:R})}},{attempts:i.retry?.attempts??1,...i.retry??{},key:i.key,timeout:i.timeout});let o=i.key??d,E=d,f=d,k=u;return(async()=>{let R=k?performance.now():0;u&&s({type:"step_start",workflowId:n,stepId:f,stepKey:o,name:E,ts:Date.now()});try{let S=await T(),h=performance.now()-R;return s({type:"step_success",workflowId:n,stepId:f,stepKey:o,name:E,ts:Date.now(),durationMs:h}),o&&s({type:"step_complete",workflowId:n,stepKey:o,name:E,ts:Date.now(),durationMs:h,result:F(S)}),S}catch(S){let h=c(S),D=performance.now()-R,B=N(h,{origin:"throw",thrown:S});throw s({type:"step_error",workflowId:n,stepId:f,stepKey:o,name:E,ts:Date.now(),durationMs:D,error:B}),o&&s({type:"step_complete",workflowId:n,stepKey:o,name:E,ts:Date.now(),durationMs:D,result:I(h,{cause:S}),meta:{origin:"throw",thrown:S}}),r?.(B,E,a),w(B,{origin:"throw",thrown:S})}})()},g.fromResult=(d,T,i)=>{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 c=i.key??d,o=d,E=d,f="error"in i?()=>i.error:i.onError,k=u;return(async()=>{let R=k?performance.now():0;u&&s({type:"step_start",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now()});let S=await T();if(S.ok){let h=performance.now()-R;return s({type:"step_success",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:h}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:h,result:F(S.value)}),S.value}else{let h=f(S.error),D=performance.now()-R,B=N(h,{origin:"result",resultCause:S.error});throw s({type:"step_error",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:D,error:B}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:D,result:I(h,{cause:S.error}),meta:{origin:"result",resultCause:S.error}}),r?.(B,o,a),w(B,{origin:"result",resultCause:S.error})}})()},g.fromNullable=(d,T,i,c)=>{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 g(d,async()=>{let o=await T();return o!=null?F(o):I(i())},c)},g.retry=(d,T,i)=>{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 g(d,T,{key:i.key??d,retry:{attempts:i.attempts,backoff:i.backoff,initialDelay:i.initialDelay,maxDelay:i.maxDelay,jitter:i.jitter,shouldRetry:i.shouldRetry,onRetry:i.onRetry},timeout:i.timeout})},g.withTimeout=(d,T,i)=>{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 g(d,T,{key:i.key??d,timeout:i})},g.sleep=(d,T,i)=>{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 c=typeof T=="string"?ht(T):T;if(!c)throw new Error(`step.sleep: invalid duration '${T}'`);let o=c.millis,E=i?.signal;return g(d,async()=>{if(p?.aborted||E?.aborted){let f=new Error("Sleep aborted");throw f.name="AbortError",f}return new Promise((f,k)=>{let R={timeoutId:void 0},S=()=>{R.timeoutId&&clearTimeout(R.timeoutId);let h=new Error("Sleep aborted");h.name="AbortError",k(h)};p?.addEventListener("abort",S,{once:!0}),E?.addEventListener("abort",S,{once:!0}),R.timeoutId=setTimeout(()=>{p?.removeEventListener("abort",S),E?.removeEventListener("abort",S),f(F(void 0))},o)})},{key:i?.key??d,description:i?.description})},g.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 T=d[0],i=d[1];if(typeof i=="function")return X(T,i);if(i&&typeof i=="object"&&!Array.isArray(i)){let o=z(i);return ce(o,{name:T})}throw new TypeError("step.all(name, ...): second argument must be a function (array form) or an object of operations (object form).")}),g.race=(d,T)=>{let i=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let c=performance.now(),o=!1,E={scopeId:i,type:"race",winnerId:void 0};M.push(E);let f=()=>{if(o)return;o=!0;let k=M.findIndex(R=>R.scopeId===i);k!==-1&&M.splice(k,1),s({type:"scope_end",workflowId:n,scopeId:i,ts:Date.now(),durationMs:performance.now()-c,winnerId:E.winnerId})};s({type:"scope_start",workflowId:n,scopeId:i,scopeType:"race",name:d,ts:Date.now()});try{let k=await T();if(f(),!k.ok)throw r?.(k.error,d,a),w(k.error,{origin:"result",resultCause:k.cause});return k.value}catch(k){throw f(),k}})()},g.if=(d,T,i)=>i(),g.label=g.if,g.branch=async(d,T)=>{let{condition:i,then:c,else:o}=T;if(i())return await c();if(o)return await o()},g.arm=(d,T)=>({fn:d,errors:T}),g.forEach=async(d,T,i)=>{let c=[],o=i.maxIterations,E=0,f="run"in i,k=Symbol.asyncIterator in T?T:(async function*(){yield*T})();for await(let R of k){if(o!==void 0&&E>=o)break;let S;f?S=await i.run(R,E):S=await i.item.handler(R,E,g),c.push(S),E++}return c},g.item=d=>({__forEachItemHandler:!0,handler:d}),g.dep=(d,T)=>T,g.workflow=(d,T,i)=>g(d,T,i),g.map=async(d,T,i,c)=>{let o=c?.concurrency??T.length;return g(d,()=>o>=T.length?Qe(T.map((E,f)=>i(E,f))):(async()=>{let E=[];for(let f=0;f<T.length;f+=o){let k=T.slice(f,f+o),R=await Qe(k.map((S,h)=>i(S,f+h)));if(!R.ok)return R;E.push(...R.value)}return F(E)})(),{key:c?.key})},g.withFallback=(d,T,i)=>{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 c=i.key??d,o=d,E=x(c),f=u;return(async()=>{let k=f?performance.now():0;u&&s({type:"step_start",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now()});let R;try{R=await T()}catch(C){if(P(C))throw s({type:"step_aborted",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:performance.now()-k}),C;let K;try{K=v(C)}catch(O){throw re(O)}if(i.on!==void 0&&i.on!==K){let O=performance.now()-k;throw s({type:"step_error",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:O,error:K}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:O,result:I(K,{cause:C}),meta:{origin:"throw",thrown:C}}),r?.(K,o,a),w(K,{origin:"throw",thrown:C})}let A;try{A=await i.fallback()}catch(O){if(P(O))throw s({type:"step_aborted",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:performance.now()-k}),O;let _;try{_=v(O)}catch(Q){throw re(Q)}let ee=performance.now()-k;throw s({type:"step_error",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:ee,error:_}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:ee,result:I(_,{cause:O}),meta:{origin:"throw",thrown:O}}),r?.(_,o,a),w(_,{origin:"throw",thrown:O})}if(A.ok){let O=performance.now()-k;return s({type:"step_success",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:O}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:O,result:A,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(K)}}),A.value}else{let O=performance.now()-k,_=N(A.error,{origin:"result",resultCause:A.cause});throw s({type:"step_error",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:O,error:_}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:O,result:A,meta:{origin:"result",resultCause:A.cause}}),r?.(_,o,a),w(_,{origin:"result",resultCause:A.cause})}}if(R.ok){let C=performance.now()-k;return s({type:"step_success",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:C}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:C,result:R}),R.value}let S=R.error;if(i.on!==void 0&&i.on!==S){let C=performance.now()-k,K=N(S,{origin:"result",resultCause:R.cause});throw s({type:"step_error",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:C,error:K}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:C,result:R,meta:{origin:"result",resultCause:R.cause}}),r?.(K,o,a),w(K,{origin:"result",resultCause:R.cause})}let h;try{h=await i.fallback()}catch(C){if(P(C))throw s({type:"step_aborted",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:performance.now()-k}),C;let K;try{K=v(C)}catch(O){throw re(O)}let A=performance.now()-k;throw s({type:"step_error",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:A,error:K}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:A,result:I(K,{cause:C}),meta:{origin:"throw",thrown:C}}),r?.(K,o,a),w(K,{origin:"throw",thrown:C})}if(h.ok){let C=performance.now()-k;return s({type:"step_success",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:C}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:C,result:h,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(S)}}),h.value}let D=performance.now()-k,B=N(h.error,{origin:"result",resultCause:h.cause});throw s({type:"step_error",workflowId:n,stepId:E,stepKey:c,name:o,ts:Date.now(),durationMs:D,error:B}),c&&s({type:"step_complete",workflowId:n,stepKey:c,name:o,ts:Date.now(),durationMs:D,result:h,meta:{origin:"result",resultCause:h.cause}}),r?.(B,o,a),w(B,{origin:"result",resultCause:h.cause})})()},g.withResource=(d,T)=>{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 i=d,c=d,o=x(i),E=u;return(async()=>{let f=E?performance.now():0;u&&s({type:"step_start",workflowId:n,stepId:o,stepKey:i,name:c,ts:Date.now()});let k;try{k=await T.acquire()}catch(A){if(P(A))throw s({type:"step_aborted",workflowId:n,stepId:o,stepKey:i,name:c,ts:Date.now(),durationMs:performance.now()-f}),A;let O;try{O=v(A)}catch(ee){throw re(ee)}let _=performance.now()-f;throw s({type:"step_error",workflowId:n,stepId:o,stepKey:i,name:c,ts:Date.now(),durationMs:_,error:O}),i&&s({type:"step_complete",workflowId:n,stepKey:i,name:c,ts:Date.now(),durationMs:_,result:I(O,{cause:A}),meta:{origin:"throw",thrown:A}}),r?.(O,c,a),w(O,{origin:"throw",thrown:A})}if(!k.ok){let A=performance.now()-f,O=N(k.error,{origin:"result",resultCause:k.cause});throw s({type:"step_error",workflowId:n,stepId:o,stepKey:i,name:c,ts:Date.now(),durationMs:A,error:O}),i&&s({type:"step_complete",workflowId:n,stepKey:i,name:c,ts:Date.now(),durationMs:A,result:k,meta:{origin:"result",resultCause:k.cause}}),r?.(O,c,a),w(O,{origin:"result",resultCause:k.cause})}let R=k.value,S,h,D=!1;try{S=await T.use(R)}catch(A){if(P(A)){try{await T.release(R)}catch(O){console.warn(`[awaitly] step.withResource("${d}"): release threw after earlyExit:`,O)}throw A}h=A,D=!0}try{await T.release(R)}catch(A){console.warn(`[awaitly] step.withResource("${d}"): release threw:`,A)}if(D){let A;try{A=v(h)}catch(_){throw re(_)}let O=performance.now()-f;throw s({type:"step_error",workflowId:n,stepId:o,stepKey:i,name:c,ts:Date.now(),durationMs:O,error:A}),i&&s({type:"step_complete",workflowId:n,stepKey:i,name:c,ts:Date.now(),durationMs:O,result:I(A,{cause:h}),meta:{origin:"throw",thrown:h}}),r?.(A,c,a),w(A,{origin:"throw",thrown:h})}let B=S;if(B.ok){let A=performance.now()-f;return s({type:"step_success",workflowId:n,stepId:o,stepKey:i,name:c,ts:Date.now(),durationMs:A}),i&&s({type:"step_complete",workflowId:n,stepKey:i,name:c,ts:Date.now(),durationMs:A,result:B}),B.value}let C=performance.now()-f,K=N(B.error,{origin:"result",resultCause:B.cause});throw s({type:"step_error",workflowId:n,stepId:o,stepKey:i,name:c,ts:Date.now(),durationMs:C,error:K}),i&&s({type:"step_complete",workflowId:n,stepKey:i,name:c,ts:Date.now(),durationMs:C,result:B,meta:{origin:"result",resultCause:B.cause}}),r?.(K,c,a),w(K,{origin:"result",resultCause:B.cause})})()};let Y=await e({step:g});if(process.env.NODE_ENV!=="production"&&Y!==null&&typeof Y=="object"&&"ok"in Y&&typeof Y.ok=="boolean"){let d=Y;(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 F(Y)}catch(g){if(Ot(g))throw g.thrown;if(P(g)){let X=g.meta.origin==="throw"?g.meta.thrown:g.meta.origin==="result"?g.meta.resultCause:void 0;return I(g.error,{cause:X})}let z=v(g);return r?.(z,"unexpected",a),I(z,{cause:g})}}Xe.strict=(e,t)=>Xe(e,t);async function Qe(e){return e.length===0?F([]):new Promise(t=>{let r=!1,u=e.length,y=new Array(e.length);for(let m=0;m<e.length;m++){let l=m;Promise.resolve(e[l]).catch(a=>I({type:"PROMISE_REJECTED",cause:a},{cause:{type:"PROMISE_REJECTION",reason:a}})).then(a=>{if(!r){if(!a.ok){r=!0,t(a);return}y[l]=a.value,u--,u===0&&t(F(y))}})}})}function _e(e={}){let t=e.maxItemsPerStream??1/0,r=new Map;function u(m,l){return`${m}:${l}`}function y(m,l){let a=u(m,l),p=r.get(a);return p||(p={metadata:{id:a,namespace:l,workflowId:m,length:0,closed:!1,createdAt:Date.now()},items:[],subscribers:new Set},r.set(a,p)),p}return{async append(m,l,a){try{let p=y(m,l);if(p.metadata.closed)return I(W("write_error","Cannot write to closed stream"));if(p.items.length>=t)return I(W("write_error",`Stream exceeded max items limit (${t})`));p.items.push(a),p.metadata.length=p.items.length,p.metadata.lastWriteAt=Date.now();for(let n of p.subscribers)try{n(a)}catch{}return F(void 0)}catch(p){return I(W("write_error","Failed to append item",p))}},async read(m,l,a,p){try{let n=u(m,l),v=r.get(n);if(!v)return F([]);let M=p!==void 0?Math.min(a+p,v.items.length):v.items.length,j=v.items.slice(a,M);return F(j)}catch(n){return I(W("read_error","Failed to read items",n))}},async getMetadata(m,l){try{let a=u(m,l),p=r.get(a);return F(p?.metadata)}catch(a){return I(W("metadata_error","Failed to get metadata",a))}},async closeStream(m,l){try{let a=u(m,l),p=r.get(a);return p&&(p.metadata.closed=!0,p.metadata.closedAt=Date.now()),F(void 0)}catch(a){return I(W("close_error","Failed to close stream",a))}},subscribe(m,l,a){let p=y(m,l),n=a;return p.subscribers.add(n),()=>{p.subscribers.delete(n)}}}}function tt(e={}){let t=new Map,r=e.maxItemsPerStream??1/0;function u(l,a){return`${l}:${a}`}function y(l,a){let p=u(l,a),n=t.get(p);return n||(n={metadata:{id:p,namespace:a,workflowId:l,length:0,closed:!1,createdAt:Date.now()},items:[],subscribers:new Set},t.set(p,n)),n}return{..._e(e),async append(l,a,p){try{let n=y(l,a);if(n.metadata.closed)return I(W("write_error","Cannot write to closed stream"));if(n.items.length>=r)return I(W("write_error",`Stream exceeded max items limit (${r})`));n.items.push(p),n.metadata.length=n.items.length,n.metadata.lastWriteAt=Date.now();for(let v of n.subscribers)try{v(p)}catch{}return F(void 0)}catch(n){return I(W("write_error","Failed to append item",n))}},async read(l,a,p,n){try{let v=u(l,a),M=t.get(v);if(!M)return F([]);let j=n!==void 0?Math.min(p+n,M.items.length):M.items.length,x=M.items.slice(p,j);return F(x)}catch(v){return I(W("read_error","Failed to read items",v))}},async getMetadata(l,a){try{let p=u(l,a),n=t.get(p);return F(n?.metadata)}catch(p){return I(W("metadata_error","Failed to get metadata",p))}},async closeStream(l,a){try{let p=u(l,a),n=t.get(p);return n&&(n.metadata.closed=!0,n.metadata.closedAt=Date.now()),F(void 0)}catch(p){return I(W("close_error","Failed to close stream",p))}},subscribe(l,a,p){let n=y(l,a),v=p;return n.subscribers.add(v),()=>{n.subscribers.delete(v)}},clear(){t.clear()},keys(){return Array.from(t.keys())},has(l,a){return t.has(u(l,a))},delete(l,a){return t.delete(u(l,a))}}}function rt(e){let{directory:t,fs:r}=e,u=new Map;function y(x,s){return`${t}/${x}/${s}`}function m(x,s){return`${y(x,s)}/metadata.json`}function l(x,s){return`${y(x,s)}/items.jsonl`}function a(x,s){return`${x}:${s}`}async function p(x,s){let w=y(x,s);await r.mkdir(w,{recursive:!0})}async function n(x,s){let w=m(x,s);if(!await r.exists(w))return;let P=await r.readFile(w);return JSON.parse(P)}async function v(x,s,w){await p(x,s);let P=m(x,s);await r.writeFile(P,JSON.stringify(w,null,2))}async function M(x,s,w){await p(x,s);let P=l(x,s),N=JSON.stringify(w)+`
|
|
7
|
-
`,H="";await r.exists(P)&&(H=await r.readFile(P)),await r.writeFile(P,H+N)}async function j(x,s,w,P){let N=l(x,s);if(!await r.exists(N))return[];let J=(await r.readFile(N)).trim().split(`
|
|
8
|
-
`).filter(Boolean),te=[];for(let Ie of J){let g=JSON.parse(Ie);if(g.position>=w&&(te.push(g),P!==void 0&&te.length>=P))break}return te}return{async append(x,s,w){try{let P=await n(x,s);if(P||(P={id:`${x}:${s}`,namespace:s,workflowId:x,length:0,closed:!1,createdAt:Date.now()}),P.closed)return I(W("write_error","Cannot write to closed stream"));let N={value:w.value,position:w.position,ts:w.ts};await M(x,s,N),P.length++,P.lastWriteAt=Date.now(),await v(x,s,P);let H=a(x,s),J=u.get(H);if(J)for(let te of J)try{te(w)}catch{}return F(void 0)}catch(P){return I(W("write_error","Failed to append item",P))}},async read(x,s,w,P){try{let H=(await j(x,s,w,P)).map(J=>({value:J.value,position:J.position,ts:J.ts}));return F(H)}catch(N){return I(W("read_error","Failed to read items",N))}},async getMetadata(x,s){try{let w=await n(x,s);return w?F({id:w.id,namespace:w.namespace,workflowId:w.workflowId,length:w.length,closed:w.closed,createdAt:w.createdAt,lastWriteAt:w.lastWriteAt,closedAt:w.closedAt}):F(void 0)}catch(w){return I(W("metadata_error","Failed to get metadata",w))}},async closeStream(x,s){try{let w=await n(x,s);return w&&(w.closed=!0,w.closedAt=Date.now(),await v(x,s,w)),F(void 0)}catch(w){return I(W("close_error","Failed to close stream",w))}},subscribe(x,s,w){let P=a(x,s),N=u.get(P);N||(N=new Set,u.set(P,N));let H=w;return N.add(H),()=>{N?.delete(H),N?.size===0&&u.delete(P)}}}}async function*L(e){for(;e.readable;){let t=await e.read();if(!t.ok){if(fe(t.error))break;throw t.error}yield t.value}}async function*nt(e,t){let r=V(e)?L(e):e,u=0;for await(let y of r)yield await t(y,u++)}async function*ot(e,t){let r=V(e)?L(e):e,u=0;for await(let y of r)await t(y,u++)&&(yield y)}async function*st(e,t){if(t<1)throw new Error("Chunk size must be at least 1");let r=V(e)?L(e):e,u=[];for await(let y of r)u.push(y),u.length>=t&&(yield u,u=[]);u.length>0&&(yield u)}async function*at(e,t){let r=V(e)?L(e):e,u=0;for await(let y of r){let m=t(y,u++);if(Symbol.asyncIterator in m)for await(let l of m)yield l;else for(let l of m)yield l}}async function*it(e,t){let r=V(e)?L(e):e,u=0;for await(let y of r){let m=await t(y,u++);if(!m.ok){yield I(m.error);return}let l=m.value;if(Symbol.asyncIterator in l)for await(let a of l)yield F(a);else for(let a of l)yield F(a)}}async function*ut(e,t){let r=V(e)?L(e):e,u=0;for await(let y of r)yield await t(y,u++)}async function*ct(e,t){if(t<=0)return;let r=V(e)?L(e):e,u=0;for await(let y of r)if(yield y,u++,u>=t)break}async function*lt(e,t){let r=V(e)?L(e):e,u=0;for await(let y of r){if(u<t){u++;continue}yield y}}async function*pt(e,t){let r=V(e)?L(e):e,u=0;for await(let y of r){if(!await t(y,u++))break;yield y}}async function*mt(e,t){let r=V(e)?L(e):e,u=!0,y=0;for await(let m of r)u&&await t(m,y++)||(u=!1,yield m)}async function dt(e){let t=[],r=V(e)?L(e):e;for await(let u of r)t.push(u);return t}async function Et(e,t,r){let u=r,y=V(e)?L(e):e,m=0;for await(let l of y)u=await t(u,l,m++);return u}function V(e){return typeof e=="object"&&e!==null&&"read"in e&&typeof e.read=="function"&&"readable"in e}function yt(e,...t){let r=V(e)?L(e):e;for(let u of t)r=u(r);return r}function Ft(e){let{store:t,workflowId:r,namespace:u="default",startIndex:y=0,pollInterval:m=100,pollTimeout:l=3e4}=e,a=y,p=!0,n=!1,v=[],M=0;return{async read(){if(n)return I(ae("closed","Reader is closed"));if(M<v.length){let s=v[M++];return a=s.position+1,F(s.value)}let x=Date.now();for(;Date.now()-x<l;){let s=await t.read(r,u,a,100);if(!s.ok)return I(ae("store_error",s.error.message,s.error));let w=s.value;if(w.length>0){v=w,M=1;let N=w[0];return a=N.position+1,F(N.value)}let P=await t.getMetadata(r,u);if(P.ok&&P.value?.closed)return p=!1,I(ie(a));await new Promise(N=>setTimeout(N,m))}return p=!1,I(ie(a))},close(){n=!0,p=!1,v=[]},get readable(){return p},get position(){return a},get namespace(){return u}}}0&&(module.exports={STREAM_BACKPRESSURE_ERROR,STREAM_CLOSE_ERROR,STREAM_ENDED,STREAM_READ_ERROR,STREAM_STORE_ERROR,STREAM_WRITE_ERROR,chunk,collect,createBackpressureController,createFileStreamStore,createMemoryStreamStore,createTestableMemoryStreamStore,filter,flatMap,flatMapAsync,getStreamReader,isStreamBackpressureError,isStreamEnded,isStreamReadError,isStreamStoreError,isStreamWriteError,map,mapAsync,pipe,reduce,shouldApplyBackpressure,skip,skipWhile,streamBackpressureError,streamCloseError,streamEnded,streamReadError,streamStoreError,streamWriteError,take,takeWhile,toAsyncIterable});
|
|
9
|
-
//# sourceMappingURL=streaming.cjs.map
|