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.cjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";var he=Object.defineProperty;var gr=Object.getOwnPropertyDescriptor;var xr=Object.getOwnPropertyNames;var Sr=Object.prototype.hasOwnProperty;var Cr=(e,r)=>{for(var n in r)he(e,n,{get:r[n],enumerable:!0})},br=(e,r,n,u)=>{if(r&&typeof r=="object"||typeof r=="function")for(let E of xr(r))!Sr.call(e,E)&&E!==n&&he(e,E,{get:()=>r[E],enumerable:!(u=gr(r,E))||u.enumerable});return e};var hr=e=>br(he({},"__esModule",{value:!0}),e);var Wr={};Cr(Wr,{STREAM_BACKPRESSURE_ERROR:()=>ye,STREAM_CLOSE_ERROR:()=>Ae,STREAM_ENDED:()=>Ee,STREAM_READ_ERROR:()=>me,STREAM_STORE_ERROR:()=>de,STREAM_WRITE_ERROR:()=>pe,chunk:()=>ur,collect:()=>fr,createBackpressureController:()=>je,createFileStreamStore:()=>sr,createMemoryStreamStore:()=>_e,createTestableMemoryStreamStore:()=>or,filter:()=>ir,flatMap:()=>cr,flatMapAsync:()=>lr,getStreamReader:()=>Br,isStreamBackpressureError:()=>De,isStreamEnded:()=>fe,isStreamReadError:()=>Me,isStreamStoreError:()=>Ue,isStreamWriteError:()=>Oe,map:()=>ar,mapAsync:()=>pr,pipe:()=>Tr,reduce:()=>wr,shouldApplyBackpressure:()=>Be,skip:()=>dr,skipWhile:()=>yr,streamBackpressureError:()=>Ne,streamCloseError:()=>Ke,streamEnded:()=>ue,streamReadError:()=>ie,streamStoreError:()=>L,streamWriteError:()=>Fe,take:()=>mr,takeWhile:()=>Er,toAsyncIterable:()=>$});module.exports=hr(Wr);var pe="STREAM_WRITE_ERROR",me="STREAM_READ_ERROR",Ae="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 Oe(e){return typeof e=="object"&&e!==null&&e.type===pe}function Me(e){return typeof e=="object"&&e!==null&&e.type===me}function Ue(e){return typeof e=="object"&&e!==null&&e.type===de}function De(e){return typeof e=="object"&&e!==null&&e.type===ye}function Fe(e,r,n){return{type:pe,reason:e,message:r,...n!==void 0?{cause:n}:{}}}function ie(e,r,n){return{type:me,reason:e,message:r,...n!==void 0?{cause:n}:{}}}function Ke(e,r,n){return{type:Ae,reason:e,message:r,...n!==void 0?{cause:n}:{}}}function L(e,r,n){return{type:de,reason:e,message:r,...n!==void 0?{cause:n}:{}}}function ue(e){return{type:Ee,finalPosition:e}}function Ne(e,r){return{type:ye,bufferedCount:e,highWaterMark:r}}function je(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 Be(e){return e.state==="paused"}var Ar={"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 We(e){return`https://jagreehal.github.io/awaitly/rules/#${e}`}var qr=Object.keys(Ar);var ce=class extends Error{_tag};function z(e,r){return class extends ce{_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:We(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(z,Symbol.hasInstance,{value:e=>e instanceof ce});(E=>{function e(a){return a instanceof Error}E.isError=e;function r(a){return a instanceof ce}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})(z||={});var Le=class extends z("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`}){},Ve=class extends z("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`}){},$e=class extends z("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`:""}`}){},He=class extends z("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`:""}`}){},ze=class extends z("ValidationError",{message:r=>`ValidationError: Invalid ${r.field} - ${r.reason}`}){},qe=class extends z("NotFoundError",{message:r=>r.id?`NotFoundError: ${r.resource} with id ${r.id} not found`:`NotFoundError: ${r.resource} not found`}){},Ye=class extends z("UnauthorizedError",{message:r=>r.reason?`UnauthorizedError: ${r.reason}`:r.action&&r.resource?`UnauthorizedError: Not authorized to ${r.action} ${r.resource}`:"UnauthorizedError: Access denied"}){},Je=class extends z("NetworkError",{message:r=>r.url?`NetworkError: ${r.reason} (${r.url})`:`NetworkError: ${r.reason}`}){},Ge=class extends z("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}`}){},we=class extends z("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 Xe(e){return{ok:!0,value:e}}var vr=e=>typeof e=="object"&&e!==null&&"ok"in e&&typeof e.ok=="boolean"&&(e.ok?"value"in e:"error"in e),Ze=(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 vr(f)?f:Xe(f)})})}return n};function Pr(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 Ir(e){return new we({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 _r(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 Or(e,r){if(!(!r||!e))return r[e]}function Mr(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=_r(e),i=Or(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 Qe(e){return typeof e!="object"||e===null?!1:e.type==="STEP_TIMEOUT"?!0:se in e}function Ur(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 tr=Symbol("early-exit");function Dr(e,r){return{[tr]:!0,error:e,meta:r}}function Fr(e){return typeof e=="object"&&e!==null&&e[tr]===!0}var nr=Symbol("mapper-exception");function ne(e){return{[nr]:!0,thrown:e}}function Kr(e){return typeof e=="object"&&e!==null&&e[nr]===!0}function ve(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 Pe(e){return new Promise(r=>setTimeout(r,e))}var er=Symbol("timeout"),Te=Symbol("timeout-option");function Nr(e){return typeof e=="object"&&e!==null&&e[Te]===!0}async function jr(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({[Te]:!0,ms:r.ms});return}l({[er]:!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[Te]===!0)throw{[Te]:!0,ms:r.ms};if(typeof N=="object"&&N!==null&&N[er]===!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 Ie(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 Ie(({step:re})=>q(Ze(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??Ir,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 le=g.length-1;le>=0;le--){let G=g[le];if(G.type==="race"&&!G.winnerId){G.winnerId=re;break}}}i?.(X,S)},j=Dr,V=T=>Fr(T),H=(T,q)=>T,ke=T=>typeof T=="function"?!1:!!(T&&typeof T=="object"&&"ok"in T||T&&typeof T=="object"&&"then"in T&&typeof T.then=="function");try{let 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 Re=q,Lr=X,Vr=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=Mr(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=ke(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 kr=W?performance.now():0;try{let h;if(v?h=await jr(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=ve(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 Pe(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()-kr;if(Nr(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(Qe(h)){let Z=Ur(h),Rr=v?.ms??Z?.timeoutMs??0;if(c({type:"step_timeout",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),timeoutMs:Rr,attempt:F,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"timeout",F)}),F<_.attempts&&_.shouldRetry(h,F)){let be=ve(F,_);c({type:"step_retry",workflowId:l,stepId:U,stepKey:w,name:y,ts:Date.now(),attempt:F+1,maxAttempts:_.attempts,delayMs:be,error:h,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"timeout",F,performance.now()-P)}),_.onRetry(h,F,be),await Pe(be);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 Ce=performance.now()-P;throw c({type:"step_error",workflowId:l,stepId:U,stepKey:w,name:y,description:x,ts:Date.now(),durationMs:Ce,error:h,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"timeout",F,Ce)}),R&&c({type:"step_complete",workflowId:l,stepKey:R,name:y,description:x,ts:Date.now(),durationMs:Ce,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=ve(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 Pe(Z);continue}_.attempts>1&&!Qe(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 Se=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:Se,error:ae,...t&&{metadata:t},diagnostics:J(h,s.errorMeta,"throw",F,Se)}),R&&c({type:"step_complete",workflowId:l,stepKey:R,name:y,description:x,ts:Date.now(),durationMs:Se,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,ge=performance.now()-P,xe=H(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:ge,error:xe,...t&&{metadata:t},diagnostics:J(Q.error,s.errorMeta,"result",_.attempts,ge)}),R&&c({type:"step_complete",workflowId:l,stepKey:R,name:y,description:x,ts:Date.now(),durationMs:ge,result:Q,meta:{origin:"result",resultCause:Q.cause},...t&&{metadata:t}}),a?.(xe,y,S),j(xe,{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=H(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=H(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"?Pr(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?rr(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 rr(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,_=H(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=H(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=H(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=H(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=H(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(Kr(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})}}Ie.strict=(e,r)=>Ie(e,r);async function rr(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 _e(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 or(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{..._e(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 sr(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),H=[];for(let ke of V){let Re=JSON.parse(ke);if(Re.position>=A&&(H.push(Re),D!==void 0&&H.length>=D))break}return H}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 H of V)try{H(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*$(e){for(;e.readable;){let r=await e.read();if(!r.ok){if(fe(r.error))break;throw r.error}yield r.value}}async function*ar(e,r){let n=Y(e)?$(e):e,u=0;for await(let E of n)yield await r(E,u++)}async function*ir(e,r){let n=Y(e)?$(e):e,u=0;for await(let E of n)await r(E,u++)&&(yield E)}async function*ur(e,r){if(r<1)throw new Error("Chunk size must be at least 1");let n=Y(e)?$(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*cr(e,r){let n=Y(e)?$(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*lr(e,r){let n=Y(e)?$(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*pr(e,r){let n=Y(e)?$(e):e,u=0;for await(let E of n)yield await r(E,u++)}async function*mr(e,r){if(r<=0)return;let n=Y(e)?$(e):e,u=0;for await(let E of n)if(yield E,u++,u>=r)break}async function*dr(e,r){let n=Y(e)?$(e):e,u=0;for await(let E of n){if(u<r){u++;continue}yield E}}async function*Er(e,r){let n=Y(e)?$(e):e,u=0;for await(let E of n){if(!await r(E,u++))break;yield E}}async function*yr(e,r){let n=Y(e)?$(e):e,u=!0,E=0;for await(let a of n)u&&await r(a,E++)||(u=!1,yield a)}async function fr(e){let r=[],n=Y(e)?$(e):e;for await(let u of n)r.push(u);return r}async function wr(e,r,n){let u=n,E=Y(e)?$(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 Tr(e,...r){let n=Y(e)?$(e):e;for(let u of r)n=u(n);return n}function Br(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(ie("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(ie("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(ue(p));await new Promise(c=>setTimeout(c,a))}return m=!1,O(ue(p))},close(){f=!0,m=!1,S=[]},get readable(){return m},get position(){return p},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
|