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.
Files changed (241) hide show
  1. package/dist/{duration.d.ts → di-BDlT7InM.d.cts} +15 -1
  2. package/dist/{duration.d.cts → di-BbFFfO8y.d.ts} +15 -1
  3. package/dist/errors-DtXvrCiO.d.cts +708 -0
  4. package/dist/errors-DtXvrCiO.d.ts +708 -0
  5. package/dist/index.cjs +4594 -1
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.d.cts +1970 -141
  8. package/dist/index.d.ts +1970 -141
  9. package/dist/index.js +4398 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/result.cjs +641 -1
  12. package/dist/result.cjs.map +1 -1
  13. package/dist/result.d.cts +35 -5
  14. package/dist/result.d.ts +35 -5
  15. package/dist/result.js +561 -1
  16. package/dist/result.js.map +1 -1
  17. package/dist/testing.cjs +4202 -8
  18. package/dist/testing.cjs.map +1 -1
  19. package/dist/testing.d.cts +2 -6
  20. package/dist/testing.d.ts +2 -6
  21. package/dist/testing.js +4154 -8
  22. package/dist/testing.js.map +1 -1
  23. package/dist/{run-entry-D2MmJFj9.d.cts → types-B8NfNRGX.d.ts} +1152 -1499
  24. package/dist/{run-entry-Dduz-is2.d.ts → types-BZ2f4MRR.d.cts} +1152 -1499
  25. package/dist/workflow.cjs +7096 -6
  26. package/dist/workflow.cjs.map +1 -1
  27. package/dist/workflow.d.cts +3346 -22
  28. package/dist/workflow.d.ts +3346 -22
  29. package/dist/workflow.js +6929 -6
  30. package/dist/workflow.js.map +1 -1
  31. package/package.json +13 -178
  32. package/dist/adapters.cjs +0 -7
  33. package/dist/adapters.cjs.map +0 -1
  34. package/dist/adapters.d.cts +0 -179
  35. package/dist/adapters.d.ts +0 -179
  36. package/dist/adapters.js +0 -7
  37. package/dist/adapters.js.map +0 -1
  38. package/dist/batch.cjs +0 -7
  39. package/dist/batch.cjs.map +0 -1
  40. package/dist/batch.d.cts +0 -200
  41. package/dist/batch.d.ts +0 -200
  42. package/dist/batch.js +0 -7
  43. package/dist/batch.js.map +0 -1
  44. package/dist/bind-deps.cjs +0 -2
  45. package/dist/bind-deps.cjs.map +0 -1
  46. package/dist/bind-deps.d.cts +0 -28
  47. package/dist/bind-deps.d.ts +0 -28
  48. package/dist/bind-deps.js +0 -2
  49. package/dist/bind-deps.js.map +0 -1
  50. package/dist/cache.cjs +0 -2
  51. package/dist/cache.cjs.map +0 -1
  52. package/dist/cache.d.cts +0 -269
  53. package/dist/cache.d.ts +0 -269
  54. package/dist/cache.js +0 -2
  55. package/dist/cache.js.map +0 -1
  56. package/dist/circuit-breaker.cjs +0 -7
  57. package/dist/circuit-breaker.cjs.map +0 -1
  58. package/dist/circuit-breaker.d.cts +0 -211
  59. package/dist/circuit-breaker.d.ts +0 -211
  60. package/dist/circuit-breaker.js +0 -7
  61. package/dist/circuit-breaker.js.map +0 -1
  62. package/dist/conditional.cjs +0 -2
  63. package/dist/conditional.cjs.map +0 -1
  64. package/dist/conditional.d.cts +0 -252
  65. package/dist/conditional.d.ts +0 -252
  66. package/dist/conditional.js +0 -2
  67. package/dist/conditional.js.map +0 -1
  68. package/dist/core.cjs +0 -7
  69. package/dist/core.cjs.map +0 -1
  70. package/dist/core.d.cts +0 -5
  71. package/dist/core.d.ts +0 -5
  72. package/dist/core.js +0 -7
  73. package/dist/core.js.map +0 -1
  74. package/dist/di-COl5oFnR.d.cts +0 -15
  75. package/dist/di-CyDj_JyZ.d.ts +0 -15
  76. package/dist/diagnostics.cjs +0 -8
  77. package/dist/diagnostics.cjs.map +0 -1
  78. package/dist/diagnostics.d.cts +0 -68
  79. package/dist/diagnostics.d.ts +0 -68
  80. package/dist/diagnostics.js +0 -8
  81. package/dist/diagnostics.js.map +0 -1
  82. package/dist/durable.cjs +0 -11
  83. package/dist/durable.cjs.map +0 -1
  84. package/dist/durable.d.cts +0 -9
  85. package/dist/durable.d.ts +0 -9
  86. package/dist/durable.js +0 -11
  87. package/dist/durable.js.map +0 -1
  88. package/dist/duration.cjs +0 -2
  89. package/dist/duration.cjs.map +0 -1
  90. package/dist/duration.js +0 -2
  91. package/dist/duration.js.map +0 -1
  92. package/dist/engine.cjs +0 -11
  93. package/dist/engine.cjs.map +0 -1
  94. package/dist/engine.d.cts +0 -115
  95. package/dist/engine.d.ts +0 -115
  96. package/dist/engine.js +0 -11
  97. package/dist/engine.js.map +0 -1
  98. package/dist/errors.cjs +0 -2
  99. package/dist/errors.cjs.map +0 -1
  100. package/dist/errors.d.cts +0 -361
  101. package/dist/errors.d.ts +0 -361
  102. package/dist/errors.js +0 -2
  103. package/dist/errors.js.map +0 -1
  104. package/dist/fetch.cjs +0 -7
  105. package/dist/fetch.cjs.map +0 -1
  106. package/dist/fetch.d.cts +0 -86
  107. package/dist/fetch.d.ts +0 -86
  108. package/dist/fetch.js +0 -7
  109. package/dist/fetch.js.map +0 -1
  110. package/dist/flow.cjs +0 -7
  111. package/dist/flow.cjs.map +0 -1
  112. package/dist/flow.d.cts +0 -163
  113. package/dist/flow.d.ts +0 -163
  114. package/dist/flow.js +0 -7
  115. package/dist/flow.js.map +0 -1
  116. package/dist/functional.cjs +0 -2
  117. package/dist/functional.cjs.map +0 -1
  118. package/dist/functional.d.cts +0 -444
  119. package/dist/functional.d.ts +0 -444
  120. package/dist/functional.js +0 -2
  121. package/dist/functional.js.map +0 -1
  122. package/dist/guards-BodHXLzX.d.cts +0 -72
  123. package/dist/guards-CeWoQ8fn.d.ts +0 -72
  124. package/dist/hitl-BPE_1UiM.d.cts +0 -468
  125. package/dist/hitl-byp570uC.d.ts +0 -468
  126. package/dist/hitl.cjs +0 -7
  127. package/dist/hitl.cjs.map +0 -1
  128. package/dist/hitl.d.cts +0 -442
  129. package/dist/hitl.d.ts +0 -442
  130. package/dist/hitl.js +0 -7
  131. package/dist/hitl.js.map +0 -1
  132. package/dist/index-BYT3amEz.d.ts +0 -417
  133. package/dist/index-C_ak66jy.d.cts +0 -417
  134. package/dist/match-entry-DjI2bLpD.d.cts +0 -209
  135. package/dist/match-entry-DjI2bLpD.d.ts +0 -209
  136. package/dist/match.cjs +0 -2
  137. package/dist/match.cjs.map +0 -1
  138. package/dist/match.d.cts +0 -1
  139. package/dist/match.d.ts +0 -1
  140. package/dist/match.js +0 -2
  141. package/dist/match.js.map +0 -1
  142. package/dist/otel.cjs +0 -2
  143. package/dist/otel.cjs.map +0 -1
  144. package/dist/otel.d.cts +0 -188
  145. package/dist/otel.d.ts +0 -188
  146. package/dist/otel.js +0 -2
  147. package/dist/otel.js.map +0 -1
  148. package/dist/persistence-entry-DOMx3woy.d.ts +0 -822
  149. package/dist/persistence-entry-ymCA4iDu.d.cts +0 -822
  150. package/dist/persistence.cjs +0 -2
  151. package/dist/persistence.cjs.map +0 -1
  152. package/dist/persistence.d.cts +0 -7
  153. package/dist/persistence.d.ts +0 -7
  154. package/dist/persistence.js +0 -2
  155. package/dist/persistence.js.map +0 -1
  156. package/dist/policies.cjs +0 -2
  157. package/dist/policies.cjs.map +0 -1
  158. package/dist/policies.d.cts +0 -379
  159. package/dist/policies.d.ts +0 -379
  160. package/dist/policies.js +0 -2
  161. package/dist/policies.js.map +0 -1
  162. package/dist/ratelimit.cjs +0 -7
  163. package/dist/ratelimit.cjs.map +0 -1
  164. package/dist/ratelimit.d.cts +0 -458
  165. package/dist/ratelimit.d.ts +0 -458
  166. package/dist/ratelimit.js +0 -7
  167. package/dist/ratelimit.js.map +0 -1
  168. package/dist/reliability.cjs +0 -11
  169. package/dist/reliability.cjs.map +0 -1
  170. package/dist/reliability.d.cts +0 -11
  171. package/dist/reliability.d.ts +0 -11
  172. package/dist/reliability.js +0 -11
  173. package/dist/reliability.js.map +0 -1
  174. package/dist/resolver.cjs +0 -7
  175. package/dist/resolver.cjs.map +0 -1
  176. package/dist/resolver.d.cts +0 -68
  177. package/dist/resolver.d.ts +0 -68
  178. package/dist/resolver.js +0 -7
  179. package/dist/resolver.js.map +0 -1
  180. package/dist/resource.cjs +0 -7
  181. package/dist/resource.cjs.map +0 -1
  182. package/dist/resource.d.cts +0 -174
  183. package/dist/resource.d.ts +0 -174
  184. package/dist/resource.js +0 -7
  185. package/dist/resource.js.map +0 -1
  186. package/dist/result/retry.cjs +0 -2
  187. package/dist/result/retry.cjs.map +0 -1
  188. package/dist/result/retry.d.cts +0 -70
  189. package/dist/result/retry.d.ts +0 -70
  190. package/dist/result/retry.js +0 -2
  191. package/dist/result/retry.js.map +0 -1
  192. package/dist/retry.cjs +0 -2
  193. package/dist/retry.cjs.map +0 -1
  194. package/dist/retry.d.cts +0 -388
  195. package/dist/retry.d.ts +0 -388
  196. package/dist/retry.js +0 -2
  197. package/dist/retry.js.map +0 -1
  198. package/dist/run.cjs +0 -7
  199. package/dist/run.cjs.map +0 -1
  200. package/dist/run.d.cts +0 -4
  201. package/dist/run.d.ts +0 -4
  202. package/dist/run.js +0 -7
  203. package/dist/run.js.map +0 -1
  204. package/dist/saga.cjs +0 -11
  205. package/dist/saga.cjs.map +0 -1
  206. package/dist/saga.d.cts +0 -164
  207. package/dist/saga.d.ts +0 -164
  208. package/dist/saga.js +0 -11
  209. package/dist/saga.js.map +0 -1
  210. package/dist/singleflight.cjs +0 -2
  211. package/dist/singleflight.cjs.map +0 -1
  212. package/dist/singleflight.d.cts +0 -145
  213. package/dist/singleflight.d.ts +0 -145
  214. package/dist/singleflight.js +0 -2
  215. package/dist/singleflight.js.map +0 -1
  216. package/dist/slugs.cjs +0 -2
  217. package/dist/slugs.cjs.map +0 -1
  218. package/dist/slugs.d.cts +0 -67
  219. package/dist/slugs.d.ts +0 -67
  220. package/dist/slugs.js +0 -2
  221. package/dist/slugs.js.map +0 -1
  222. package/dist/streaming.cjs +0 -9
  223. package/dist/streaming.cjs.map +0 -1
  224. package/dist/streaming.d.cts +0 -596
  225. package/dist/streaming.d.ts +0 -596
  226. package/dist/streaming.js +0 -9
  227. package/dist/streaming.js.map +0 -1
  228. package/dist/tagged-error.cjs +0 -2
  229. package/dist/tagged-error.cjs.map +0 -1
  230. package/dist/tagged-error.d.cts +0 -275
  231. package/dist/tagged-error.d.ts +0 -275
  232. package/dist/tagged-error.js +0 -2
  233. package/dist/tagged-error.js.map +0 -1
  234. package/dist/types-DQmzO9f4.d.ts +0 -323
  235. package/dist/types-qBUOYi-4.d.cts +0 -323
  236. package/dist/webhook.cjs +0 -7
  237. package/dist/webhook.cjs.map +0 -1
  238. package/dist/webhook.d.cts +0 -499
  239. package/dist/webhook.d.ts +0 -499
  240. package/dist/webhook.js +0 -7
  241. package/dist/webhook.js.map +0 -1
package/dist/resolver.cjs DELETED
@@ -1,7 +0,0 @@
1
- "use strict";var Ee=Object.defineProperty;var Ne=Object.getOwnPropertyDescriptor;var Ke=Object.getOwnPropertyNames;var Fe=Object.prototype.hasOwnProperty;var je=(n,e)=>{for(var u in e)Ee(n,u,{get:e[u],enumerable:!0})},Le=(n,e,u,w)=>{if(e&&typeof e=="object"||typeof e=="function")for(let _ of Ke(e))!Fe.call(n,_)&&_!==u&&Ee(n,_,{get:()=>e[_],enumerable:!(w=Ne(e,_))||w.enumerable});return n};var Be=n=>Le(Ee({},"__esModule",{value:!0}),n);var et={};je(et,{createResolver:()=>Ie});module.exports=Be(et);var Ve={"step-require-id":"step-require-id","step-no-immediate-execution":"step-no-immediate-execution","step-require-thunk-for-key":"step-require-thunk-for-key","step-no-bare-await":"step-no-bare-await","step-no-try-catch-wrap":"step-no-try-catch-wrap","step-stable-cache-keys":"step-stable-cache-keys","workflow-no-floating":"workflow-no-floating","workflow-options-position":"workflow-options-position","workflow-callback-shape":"workflow-callback-shape","workflow-no-callable-form":"workflow-no-callable-form","workflow-no-dynamic-import":"workflow-no-dynamic-import","result-no-floating":"result-no-floating","result-require-handling":"result-require-handling","result-no-double-wrap":"result-no-double-wrap","result-no-manual-propagation":"result-no-manual-propagation","result-no-direct-ok-err":"result-no-direct-ok-err","error-check-unexpected-first":"error-check-unexpected-first","error-access-cause":"error-access-cause","error-normalize":"error-normalize","error-no-throw-in-deps":"error-no-throw-in-deps","concurrency-no-promise-all":"concurrency-no-promise-all","concurrency-no-promise-race":"concurrency-no-promise-race","concurrency-no-promise-allsettled":"concurrency-no-promise-allsettled","runtime-step-timeout":"runtime-step-timeout","runtime-step-aborted":"runtime-step-aborted","runtime-retry-exhausted":"runtime-retry-exhausted","runtime-rate-limit":"runtime-rate-limit","runtime-circuit-open":"runtime-circuit-open","runtime-unexpected":"runtime-unexpected","runtime-resolver-not-found":"runtime-resolver-not-found","runtime-saga-compensation":"runtime-saga-compensation"};function fe(n){return`https://jagreehal.github.io/awaitly/rules/#${n}`}var rt=Object.keys(Ve);var se=class extends Error{_tag};function j(n,e){return class extends se{_tag=n;constructor(u,w){let _=e?.message?e.message(u??{}):n;if(super(_),this.name=n,e?.slug!==void 0){if(!e.hint)throw new TypeError(`TaggedError: 'hint' is required when 'slug' is set (slug: "${e.slug}")`);Object.defineProperty(this,"code",{value:e.slug,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"hint",{value:e.hint,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"docsUrl",{value:fe(e.slug),enumerable:!0,writable:!1,configurable:!1})}if(Object.setPrototypeOf(this,new.target.prototype),u&&typeof u=="object"){let x;if(e?.slug!==void 0){let{_tag:a,name:K,message:O,stack:D,code:U,hint:i,docsUrl:I,...F}=u;x=F}else{let{_tag:a,name:K,message:O,stack:D,...U}=u;x=U}let C=Object.prototype.hasOwnProperty.call(x,"cause"),y=C?x.cause:void 0;C&&delete x.cause;let v=w?.cause!==void 0;if(C&&v)throw new TypeError("TaggedError: cannot provide 'cause' in props when also setting ErrorOptions.cause");Object.assign(this,x),C&&(this.cause=y),v&&(this.cause=w?.cause)}else w?.cause!==void 0&&(this.cause=w.cause)}}}Object.defineProperty(j,Symbol.hasInstance,{value:n=>n instanceof se});(_=>{function n(x){return x instanceof Error}_.isError=n;function e(x){return x instanceof se}_.isTaggedError=e;function u(x,C){let y=x._tag,v=C[y];return v(x)}_.match=u;function w(x,C,y){let v=x._tag,a=C[v];return a?a(x):y(x)}_.matchPartial=w})(j||={});var ge=class extends j("TimeoutError",{slug:"runtime-step-timeout",hint:"Increase the step's timeout option, or check why the upstream operation is slow.",message:e=>e.operation?`TimeoutError: ${e.operation} timed out after ${e.ms}ms`:`TimeoutError: Operation timed out after ${e.ms}ms`}){},Te=class extends j("RetryExhaustedError",{slug:"runtime-retry-exhausted",hint:"All retry attempts failed. Inspect lastError and decide whether to surface it or compensate.",message:e=>e.operation?`RetryExhaustedError: ${e.operation} failed after ${e.attempts} attempts`:`RetryExhaustedError: Operation failed after ${e.attempts} attempts`}){},ke=class extends j("RateLimitError",{slug:"runtime-rate-limit",hint:"Wait retryAfterMs before retrying, or apply step.cache to deduplicate calls.",message:e=>e.limiterName?`RateLimitError: Rate limit exceeded for ${e.limiterName}${e.retryAfterMs?`, retry after ${e.retryAfterMs}ms`:""}`:`RateLimitError: Rate limit exceeded${e.retryAfterMs?`, retry after ${e.retryAfterMs}ms`:""}`}){},Re=class extends j("CircuitBreakerOpenError",{slug:"runtime-circuit-open",hint:"The circuit is open. Wait for it to half-open or fall back to a degraded path.",message:e=>`CircuitBreakerOpenError: Circuit ${e.circuitName} is ${e.state??"OPEN"}${e.retryAfterMs?`, retry after ${Math.ceil(e.retryAfterMs/1e3)}s`:""}`}){},xe=class extends j("ValidationError",{message:e=>`ValidationError: Invalid ${e.field} - ${e.reason}`}){},he=class extends j("NotFoundError",{message:e=>e.id?`NotFoundError: ${e.resource} with id ${e.id} not found`:`NotFoundError: ${e.resource} not found`}){},Ce=class extends j("UnauthorizedError",{message:e=>e.reason?`UnauthorizedError: ${e.reason}`:e.action&&e.resource?`UnauthorizedError: Not authorized to ${e.action} ${e.resource}`:"UnauthorizedError: Access denied"}){},be=class extends j("NetworkError",{message:e=>e.url?`NetworkError: ${e.reason} (${e.url})`:`NetworkError: ${e.reason}`}){},Se=class extends j("CompensationError",{slug:"runtime-saga-compensation",hint:"A saga compensation step failed. Inspect compensationError and ensure compensation is idempotent.",message:e=>`CompensationError: Failed to compensate step ${e.step}`}){},ee=class extends j("UnexpectedError",{slug:"runtime-unexpected",hint:"An unexpected exception escaped a step. Inspect cause; consider returning a typed Result instead of throwing.",message:e=>`UnexpectedError: ${e.cause instanceof Error?e.cause.message:String(e.cause??"unknown")}`}){};function $e(n){let e=n.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!e)return;let u=parseFloat(e[1]),w=e[2].toLowerCase();return{_tag:"Duration",millis:u*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[w]??1)}}function He(n){return new ee({cause:n})}function B(n){return{ok:!0,value:n}}function N(n,e){let u=e?.cause;return{ok:!1,error:n,...u!==void 0?{cause:u}:{}}}function We(n){if(n==null)return"unknown";if(typeof n=="string")return n.trim()||"unknown";if(typeof n=="object"){let e=n;if(typeof e._tag=="string"){let u=e._tag.trim();if(u)return u}if(typeof e.tag=="string"){let u=e.tag.trim();if(u)return u}if(typeof e.code=="string"){let u=e.code.trim();if(u)return u}else if(typeof e.code=="number")return String(e.code);if(n instanceof Error&&n.name){let u=n.name.trim();if(u)return u}}return"unknown"}function qe(n,e){if(!(!e||!n))return e[n]}function Ye(n){let{intent:e,domain:u,owner:w,tags:_,stateChanges:x,emits:C,calls:y}=n;if(!e&&!u&&!w&&!_?.length&&!x?.length&&!C?.length&&!y?.length)return;let v={};return e&&(v.intent=e),u&&(v.domain=u),w&&(v.owner=w),_?.length&&(v.tags=_),x?.length&&(v.stateChanges=x),C?.length&&(v.emits=C),y?.length&&(v.calls=y),v}function V(n,e,u,w,_){let x=We(n),C=qe(x,e),y={tag:x,origin:u};return C!==void 0&&(y.classification=C),w!==void 0&&(y.attempt=w),_!==void 0&&(y.cumulativeDurationMs=_),y}var ne=Symbol.for("step_timeout_marker");function Ae(n){return typeof n!="object"||n===null?!1:n.type==="STEP_TIMEOUT"?!0:ne in n}function ze(n){if(!(typeof n!="object"||n===null)){if(n.type==="STEP_TIMEOUT"){let e=n;return{timeoutMs:e.timeoutMs,stepName:e.stepName,stepKey:e.stepKey,attempt:e.attempt}}if(ne in n)return n[ne]}}var Oe=Symbol("early-exit");function Je(n,e){return{[Oe]:!0,error:n,meta:e}}function Ge(n){return typeof n=="object"&&n!==null&&n[Oe]===!0}var Me=Symbol("mapper-exception");function te(n){return{[Me]:!0,thrown:n}}function Xe(n){return typeof n=="object"&&n!==null&&n[Me]===!0}function ye(n,e){let{backoff:u,initialDelay:w,maxDelay:_,jitter:x}=e,C;switch(u){case"fixed":C=w;break;case"linear":C=w*n;break;case"exponential":C=w*Math.pow(2,n-1);break}if(C=Math.min(C,_),x){let y=C*.25*Math.random();C=C+y}return Math.floor(C)}function we(n){return new Promise(e=>setTimeout(e,n))}var _e=Symbol("timeout"),ue=Symbol("timeout-option");function Qe(n){return typeof n=="object"&&n!==null&&n[ue]===!0}async function Ze(n,e,u,w){let _=new AbortController,x=e.onTimeout??"error",C=()=>typeof x=="function"?x({name:u.name,key:u.key,ms:e.ms}):e.error??{type:"STEP_TIMEOUT",stepName:u.name,stepKey:u.key,timeoutMs:e.ms,attempt:u.attempt},y;w?.aborted&&_.abort(w.reason);let v;w&&!w.aborted&&(v=()=>_.abort(w.reason),w.addEventListener("abort",v,{once:!0}));let a=new Promise((O,D)=>{y=setTimeout(()=>{if(x!=="disconnect"&&_.abort(),x==="option"){D({[ue]:!0,ms:e.ms});return}D({[_e]:!0,error:C()})},e.ms)}),K;e.signal?K=Promise.resolve(n(_.signal)):K=Promise.resolve(n());try{return await Promise.race([K,a])}catch(O){if(typeof O=="object"&&O!==null&&O[ue]===!0)throw{[ue]:!0,ms:e.ms};if(typeof O=="object"&&O!==null&&O[_e]===!0){x==="disconnect"&&K.catch(()=>{});let D=O.error;if(typeof D=="object"&&D!==null&&D.type!=="STEP_TIMEOUT"){let U={timeoutMs:e.ms,stepName:u.name,stepKey:u.key,attempt:u.attempt};ne in D?D[ne]=U:Object.defineProperty(D,ne,{value:U,enumerable:!1,writable:!0,configurable:!1})}throw D}throw O}finally{clearTimeout(y),v&&w&&w.removeEventListener("abort",v)}}var re={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:()=>!0,onRetry:()=>{}};async function ve(n,e){let{onError:u,onEvent:w,catchUnexpected:_,workflowId:x,workflowName:C,context:y,_workflowSignal:v}=e&&typeof e=="object"?e:{},a=x??crypto.randomUUID(),K=_??He,O=[],D=0,U=p=>p??`step_${++D}`,i=p=>{let H=p.context!==void 0||y===void 0?p:{...p,context:y},z=C!==void 0&&H.workflowName===void 0?{...H,workflowName:C}:H;if(z.type==="step_success"){let ae=z.stepId;for(let ie=O.length-1;ie>=0;ie--){let W=O[ie];if(W.type==="race"&&!W.winnerId){W.winnerId=ae;break}}}w?.(z,y)},I=Je,F=p=>Ge(p),$=(p,H)=>p,L=p=>typeof p=="function"?!1:!!(p&&typeof p=="object"&&"ok"in p||p&&typeof p=="object"&&"then"in p&&typeof p.then=="function");try{let H=function(s){let d={};for(let[r,o]of Object.entries(s))if(typeof o=="function")d[r]=o;else if(o&&typeof o=="object"&&"fn"in o)d[r]=o.fn;else throw new TypeError(`step.all: operation "${r}" must be a function or { fn, errors? } object`);return d},z=function(s,d){let r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),t=!1;O.push({scopeId:r,type:"parallel"});let c=()=>{if(t)return;t=!0;let l=O.findIndex(m=>m.scopeId===r);l!==-1&&O.splice(l,1),i({type:"scope_end",workflowId:a,scopeId:r,ts:Date.now(),durationMs:performance.now()-o})};i({type:"scope_start",workflowId:a,scopeId:r,scopeType:"parallel",name:s,ts:Date.now()});try{let l=await d();if(c(),!l.ok)throw u?.(l.error,s,y),I(l.error,{origin:"result",resultCause:l.cause});return l.value}catch(l){throw c(),l}})()},ae=function(s,d){let r=Object.keys(s),o=d.name??`Parallel(${r.join(", ")})`,t=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let c=performance.now(),l=!1;O.push({scopeId:t,type:"parallel"});let m=()=>{if(l)return;l=!0;let E=O.findIndex(f=>f.scopeId===t);E!==-1&&O.splice(E,1),i({type:"scope_end",workflowId:a,scopeId:t,ts:Date.now(),durationMs:performance.now()-c})};i({type:"scope_start",workflowId:a,scopeId:t,scopeType:"parallel",name:o,ts:Date.now()});try{let E=await new Promise(T=>{if(r.length===0){T([]);return}let S=!1,M=r.length,k=new Array(r.length);for(let P=0;P<r.length;P++){let R=r[P],b=P;Promise.resolve(s[R]()).catch(h=>N({type:"PROMISE_REJECTED",cause:h},{cause:{type:"PROMISE_REJECTION",reason:h}})).then(h=>{if(!S){if(!h.ok){S=!0,T([{key:R,result:h}]);return}k[b]={key:R,result:h},M--,M===0&&T(k)}})}});m();let f={};for(let{key:T,result:S}of E){if(!S.ok)throw u?.(S.error,T,y),I(S.error,{origin:"result",resultCause:S.cause});f[T]=S.value}return f}catch(E){throw m(),E}})()};var X=H,Y=z,Z=ae;let p=(s,d,r)=>(async()=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step() requires an explicit string ID as the first argument. Example: step("fetchUser", () => fetchUser(id))');let o=r??{},t=Ye(o),c=s,l=o.key??s,m=o.key??s,{description:E,retry:f,timeout:T}=o,S=U(l),M=w,k=M?performance.now():0,R=L(d)?()=>d:d,h={attempts:Math.max(1,f?.attempts??1),backoff:f?.backoff??re.backoff,initialDelay:f?.initialDelay??re.initialDelay,maxDelay:f?.maxDelay??re.maxDelay,jitter:f?.jitter??re.jitter,shouldRetry:f?.shouldRetry??re.shouldRetry,onRetry:f?.onRetry??re.onRetry};w&&i({type:"step_start",workflowId:a,stepId:S,stepKey:l,name:c,description:E,ts:Date.now(),...t&&{metadata:t}});let Q;for(let A=1;A<=h.attempts;A++){let De=M?performance.now():0;try{let g;if(T?g=await Ze(R,T,{name:c,key:l,attempt:A},v):g=await R(),g.ok){let G=performance.now()-k;return i({type:"step_success",workflowId:a,stepId:S,stepKey:l,name:c,description:E,ts:Date.now(),durationMs:G,...t&&{metadata:t}}),m&&i({type:"step_complete",workflowId:a,stepKey:m,name:c,description:E,ts:Date.now(),durationMs:G,result:g,...t&&{metadata:t}}),g.value}if(Q=g,A<h.attempts&&h.shouldRetry(g.error,A)){let G=ye(A,h);i({type:"step_retry",workflowId:a,stepId:S,stepKey:l,name:c,ts:Date.now(),attempt:A+1,maxAttempts:h.attempts,delayMs:G,error:g.error,...t&&{metadata:t},diagnostics:V(g.error,o.errorMeta,"result",A,performance.now()-k)}),h.onRetry(g.error,A,G),await we(G);continue}h.attempts>1&&i({type:"step_retries_exhausted",workflowId:a,stepId:S,stepKey:l,name:c,ts:Date.now(),durationMs:performance.now()-k,attempts:A,lastError:g.error,...t&&{metadata:t},diagnostics:V(g.error,o.errorMeta,"result",A,performance.now()-k)});break}catch(g){let G=performance.now()-De;if(Qe(g)){let q=g.ms;i({type:"step_timeout",workflowId:a,stepId:S,stepKey:l,name:c,ts:Date.now(),timeoutMs:q,attempt:A,...t&&{metadata:t},diagnostics:V(g,o.errorMeta,"timeout",A)}),i({type:"step_success",workflowId:a,stepId:S,stepKey:l,name:c,description:E,ts:Date.now(),durationMs:performance.now()-k,...t&&{metadata:t}}),m&&i({type:"step_complete",workflowId:a,stepKey:m,name:c,description:E,ts:Date.now(),durationMs:performance.now()-k,result:B(void 0),...t&&{metadata:t}});return}if(F(g))throw i({type:"step_aborted",workflowId:a,stepId:S,stepKey:l,name:c,description:E,ts:Date.now(),durationMs:G,...t&&{metadata:t}}),g;if(Ae(g)){let q=ze(g),Ue=T?.ms??q?.timeoutMs??0;if(i({type:"step_timeout",workflowId:a,stepId:S,stepKey:l,name:c,ts:Date.now(),timeoutMs:Ue,attempt:A,...t&&{metadata:t},diagnostics:V(g,o.errorMeta,"timeout",A)}),A<h.attempts&&h.shouldRetry(g,A)){let me=ye(A,h);i({type:"step_retry",workflowId:a,stepId:S,stepKey:l,name:c,ts:Date.now(),attempt:A+1,maxAttempts:h.attempts,delayMs:me,error:g,...t&&{metadata:t},diagnostics:V(g,o.errorMeta,"timeout",A,performance.now()-k)}),h.onRetry(g,A,me),await we(me);continue}h.attempts>1&&i({type:"step_retries_exhausted",workflowId:a,stepId:S,stepKey:l,name:c,ts:Date.now(),durationMs:performance.now()-k,attempts:A,lastError:g,...t&&{metadata:t},diagnostics:V(g,o.errorMeta,"timeout",A,performance.now()-k)});let de=performance.now()-k;throw i({type:"step_error",workflowId:a,stepId:S,stepKey:l,name:c,description:E,ts:Date.now(),durationMs:de,error:g,...t&&{metadata:t},diagnostics:V(g,o.errorMeta,"timeout",A,de)}),m&&i({type:"step_complete",workflowId:a,stepKey:m,name:c,description:E,ts:Date.now(),durationMs:de,result:N(g,{cause:g}),meta:{origin:"throw",thrown:g},...t&&{metadata:t}}),u?.(g,c,y),I(g,{origin:"throw",thrown:g})}if(A<h.attempts&&h.shouldRetry(g,A)){let q=ye(A,h);i({type:"step_retry",workflowId:a,stepId:S,stepKey:l,name:c,ts:Date.now(),attempt:A+1,maxAttempts:h.attempts,delayMs:q,error:g,...t&&{metadata:t},diagnostics:V(g,o.errorMeta,"throw",A,performance.now()-k)}),h.onRetry(g,A,q),await we(q);continue}h.attempts>1&&!Ae(g)&&i({type:"step_retries_exhausted",workflowId:a,stepId:S,stepKey:l,name:c,ts:Date.now(),durationMs:performance.now()-k,attempts:A,lastError:g,...t&&{metadata:t},diagnostics:V(g,o.errorMeta,"throw",A,performance.now()-k)});let pe=performance.now()-k,oe;try{oe=K(g)}catch(q){throw te(q)}throw i({type:"step_error",workflowId:a,stepId:S,stepKey:l,name:c,description:E,ts:Date.now(),durationMs:pe,error:oe,...t&&{metadata:t},diagnostics:V(g,o.errorMeta,"throw",A,pe)}),m&&i({type:"step_complete",workflowId:a,stepKey:m,name:c,description:E,ts:Date.now(),durationMs:pe,result:N(oe,{cause:g}),meta:{origin:"throw",thrown:g},...t&&{metadata:t}}),u?.(oe,c,y),I(oe,{origin:"throw",thrown:g})}}let J=Q,ce=performance.now()-k,le=$(J.error,{origin:"result",resultCause:J.cause});throw i({type:"step_error",workflowId:a,stepId:S,stepKey:l,name:c,description:E,ts:Date.now(),durationMs:ce,error:le,...t&&{metadata:t},diagnostics:V(J.error,o.errorMeta,"result",h.attempts,ce)}),m&&i({type:"step_complete",workflowId:a,stepKey:m,name:c,description:E,ts:Date.now(),durationMs:ce,result:J,meta:{origin:"result",resultCause:J.cause},...t&&{metadata:t}}),u?.(le,c,y),I(le,{origin:"result",resultCause:J.cause})})();p.try=(s,d,r)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.try() requires an explicit string ID as the first argument. Example: step.try("parse", () => JSON.parse(str), { error: "PARSE_ERROR" })');let o="error"in r?()=>r.error:r.onError;if(r.retry||r.timeout)return p.retry(s,async()=>{try{return B(await d())}catch(E){return N(o(E),{cause:E})}},{attempts:r.retry?.attempts??1,...r.retry??{},key:r.key,timeout:r.timeout});let t=r.key??s,c=s,l=s,m=w;return(async()=>{let E=m?performance.now():0;w&&i({type:"step_start",workflowId:a,stepId:l,stepKey:t,name:c,ts:Date.now()});try{let f=await d(),T=performance.now()-E;return i({type:"step_success",workflowId:a,stepId:l,stepKey:t,name:c,ts:Date.now(),durationMs:T}),t&&i({type:"step_complete",workflowId:a,stepKey:t,name:c,ts:Date.now(),durationMs:T,result:B(f)}),f}catch(f){let T=o(f),S=performance.now()-E,M=$(T,{origin:"throw",thrown:f});throw i({type:"step_error",workflowId:a,stepId:l,stepKey:t,name:c,ts:Date.now(),durationMs:S,error:M}),t&&i({type:"step_complete",workflowId:a,stepKey:t,name:c,ts:Date.now(),durationMs:S,result:N(T,{cause:f}),meta:{origin:"throw",thrown:f}}),u?.(M,c,y),I(M,{origin:"throw",thrown:f})}})()},p.fromResult=(s,d,r)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.fromResult() requires an explicit string ID as the first argument. Example: step.fromResult("callProvider", () => callProvider(input), { onError: (e) => ({ type: "FAILED" }) })');let o=r.key??s,t=s,c=s,l="error"in r?()=>r.error:r.onError,m=w;return(async()=>{let E=m?performance.now():0;w&&i({type:"step_start",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now()});let f=await d();if(f.ok){let T=performance.now()-E;return i({type:"step_success",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:T}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:T,result:B(f.value)}),f.value}else{let T=l(f.error),S=performance.now()-E,M=$(T,{origin:"result",resultCause:f.error});throw i({type:"step_error",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:S,error:M}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:S,result:N(T,{cause:f.error}),meta:{origin:"result",resultCause:f.error}}),u?.(M,t,y),I(M,{origin:"result",resultCause:f.error})}})()},p.fromNullable=(s,d,r,o)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.fromNullable() requires an explicit string ID as the first argument. Example: step.fromNullable("getUser", () => db.find(id), () => ({ type: "NOT_FOUND" }))');return p(s,async()=>{let t=await d();return t!=null?B(t):N(r())},o)},p.retry=(s,d,r)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.retry() requires an explicit string ID as the first argument. Example: step.retry("fetchData", () => fetchData(), { attempts: 3 })');return p(s,d,{key:r.key??s,retry:{attempts:r.attempts,backoff:r.backoff,initialDelay:r.initialDelay,maxDelay:r.maxDelay,jitter:r.jitter,shouldRetry:r.shouldRetry,onRetry:r.onRetry},timeout:r.timeout})},p.withTimeout=(s,d,r)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.withTimeout() requires an explicit string ID as the first argument. Example: step.withTimeout("slowOp", () => slowOp(), { ms: 5000 })');return p(s,d,{key:r.key??s,timeout:r})},p.sleep=(s,d,r)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.sleep() requires an explicit string ID as the first argument. Example: step.sleep("delay", "5s")');let o=typeof d=="string"?$e(d):d;if(!o)throw new Error(`step.sleep: invalid duration '${d}'`);let t=o.millis,c=r?.signal;return p(s,async()=>{if(v?.aborted||c?.aborted){let l=new Error("Sleep aborted");throw l.name="AbortError",l}return new Promise((l,m)=>{let E={timeoutId:void 0},f=()=>{E.timeoutId&&clearTimeout(E.timeoutId);let T=new Error("Sleep aborted");T.name="AbortError",m(T)};v?.addEventListener("abort",f,{once:!0}),c?.addEventListener("abort",f,{once:!0}),E.timeoutId=setTimeout(()=>{v?.removeEventListener("abort",f),c?.removeEventListener("abort",f),l(B(void 0))},t)})},{key:r?.key??s,description:r?.description})},p.all=((...s)=>{if(typeof s[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 d=s[0],r=s[1];if(typeof r=="function")return z(d,r);if(r&&typeof r=="object"&&!Array.isArray(r)){let t=H(r);return ae(t,{name:d})}throw new TypeError("step.all(name, ...): second argument must be a function (array form) or an object of operations (object form).")}),p.race=(s,d)=>{let r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),t=!1,c={scopeId:r,type:"race",winnerId:void 0};O.push(c);let l=()=>{if(t)return;t=!0;let m=O.findIndex(E=>E.scopeId===r);m!==-1&&O.splice(m,1),i({type:"scope_end",workflowId:a,scopeId:r,ts:Date.now(),durationMs:performance.now()-o,winnerId:c.winnerId})};i({type:"scope_start",workflowId:a,scopeId:r,scopeType:"race",name:s,ts:Date.now()});try{let m=await d();if(l(),!m.ok)throw u?.(m.error,s,y),I(m.error,{origin:"result",resultCause:m.cause});return m.value}catch(m){throw l(),m}})()},p.if=(s,d,r)=>r(),p.label=p.if,p.branch=async(s,d)=>{let{condition:r,then:o,else:t}=d;if(r())return await o();if(t)return await t()},p.arm=(s,d)=>({fn:s,errors:d}),p.forEach=async(s,d,r)=>{let o=[],t=r.maxIterations,c=0,l="run"in r,m=Symbol.asyncIterator in d?d:(async function*(){yield*d})();for await(let E of m){if(t!==void 0&&c>=t)break;let f;l?f=await r.run(E,c):f=await r.item.handler(E,c,p),o.push(f),c++}return o},p.item=s=>({__forEachItemHandler:!0,handler:s}),p.dep=(s,d)=>d,p.workflow=(s,d,r)=>p(s,d,r),p.map=async(s,d,r,o)=>{let t=o?.concurrency??d.length;return p(s,()=>t>=d.length?Pe(d.map((c,l)=>r(c,l))):(async()=>{let c=[];for(let l=0;l<d.length;l+=t){let m=d.slice(l,l+t),E=await Pe(m.map((f,T)=>r(f,l+T)));if(!E.ok)return E;c.push(...E.value)}return B(c)})(),{key:o?.key})},p.withFallback=(s,d,r)=>{if(typeof s!="string"||s.length===0)throw new Error('[awaitly] step.withFallback() requires an explicit string ID as the first argument. Example: step.withFallback("getUser", () => fetchUser(id), { fallback: () => fetchFromCache(id) })');let o=r.key??s,t=s,c=U(o),l=w;return(async()=>{let m=l?performance.now():0;w&&i({type:"step_start",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now()});let E;try{E=await d()}catch(k){if(F(k))throw i({type:"step_aborted",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:performance.now()-m}),k;let P;try{P=K(k)}catch(b){throw te(b)}if(r.on!==void 0&&r.on!==P){let b=performance.now()-m;throw i({type:"step_error",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:b,error:P}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:b,result:N(P,{cause:k}),meta:{origin:"throw",thrown:k}}),u?.(P,t,y),I(P,{origin:"throw",thrown:k})}let R;try{R=await r.fallback()}catch(b){if(F(b))throw i({type:"step_aborted",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:performance.now()-m}),b;let h;try{h=K(b)}catch(J){throw te(J)}let Q=performance.now()-m;throw i({type:"step_error",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:Q,error:h}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:Q,result:N(h,{cause:b}),meta:{origin:"throw",thrown:b}}),u?.(h,t,y),I(h,{origin:"throw",thrown:b})}if(R.ok){let b=performance.now()-m;return i({type:"step_success",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:b}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:b,result:R,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(P)}}),R.value}else{let b=performance.now()-m,h=$(R.error,{origin:"result",resultCause:R.cause});throw i({type:"step_error",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:b,error:h}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:b,result:R,meta:{origin:"result",resultCause:R.cause}}),u?.(h,t,y),I(h,{origin:"result",resultCause:R.cause})}}if(E.ok){let k=performance.now()-m;return i({type:"step_success",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:k}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:k,result:E}),E.value}let f=E.error;if(r.on!==void 0&&r.on!==f){let k=performance.now()-m,P=$(f,{origin:"result",resultCause:E.cause});throw i({type:"step_error",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:k,error:P}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:k,result:E,meta:{origin:"result",resultCause:E.cause}}),u?.(P,t,y),I(P,{origin:"result",resultCause:E.cause})}let T;try{T=await r.fallback()}catch(k){if(F(k))throw i({type:"step_aborted",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:performance.now()-m}),k;let P;try{P=K(k)}catch(b){throw te(b)}let R=performance.now()-m;throw i({type:"step_error",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:R,error:P}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:R,result:N(P,{cause:k}),meta:{origin:"throw",thrown:k}}),u?.(P,t,y),I(P,{origin:"throw",thrown:k})}if(T.ok){let k=performance.now()-m;return i({type:"step_success",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:k}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:k,result:T,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(f)}}),T.value}let S=performance.now()-m,M=$(T.error,{origin:"result",resultCause:T.cause});throw i({type:"step_error",workflowId:a,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:S,error:M}),o&&i({type:"step_complete",workflowId:a,stepKey:o,name:t,ts:Date.now(),durationMs:S,result:T,meta:{origin:"result",resultCause:T.cause}}),u?.(M,t,y),I(M,{origin:"result",resultCause:T.cause})})()},p.withResource=(s,d)=>{if(typeof s!="string"||s.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 r=s,o=s,t=U(r),c=w;return(async()=>{let l=c?performance.now():0;w&&i({type:"step_start",workflowId:a,stepId:t,stepKey:r,name:o,ts:Date.now()});let m;try{m=await d.acquire()}catch(R){if(F(R))throw i({type:"step_aborted",workflowId:a,stepId:t,stepKey:r,name:o,ts:Date.now(),durationMs:performance.now()-l}),R;let b;try{b=K(R)}catch(Q){throw te(Q)}let h=performance.now()-l;throw i({type:"step_error",workflowId:a,stepId:t,stepKey:r,name:o,ts:Date.now(),durationMs:h,error:b}),r&&i({type:"step_complete",workflowId:a,stepKey:r,name:o,ts:Date.now(),durationMs:h,result:N(b,{cause:R}),meta:{origin:"throw",thrown:R}}),u?.(b,o,y),I(b,{origin:"throw",thrown:R})}if(!m.ok){let R=performance.now()-l,b=$(m.error,{origin:"result",resultCause:m.cause});throw i({type:"step_error",workflowId:a,stepId:t,stepKey:r,name:o,ts:Date.now(),durationMs:R,error:b}),r&&i({type:"step_complete",workflowId:a,stepKey:r,name:o,ts:Date.now(),durationMs:R,result:m,meta:{origin:"result",resultCause:m.cause}}),u?.(b,o,y),I(b,{origin:"result",resultCause:m.cause})}let E=m.value,f,T,S=!1;try{f=await d.use(E)}catch(R){if(F(R)){try{await d.release(E)}catch(b){console.warn(`[awaitly] step.withResource("${s}"): release threw after earlyExit:`,b)}throw R}T=R,S=!0}try{await d.release(E)}catch(R){console.warn(`[awaitly] step.withResource("${s}"): release threw:`,R)}if(S){let R;try{R=K(T)}catch(h){throw te(h)}let b=performance.now()-l;throw i({type:"step_error",workflowId:a,stepId:t,stepKey:r,name:o,ts:Date.now(),durationMs:b,error:R}),r&&i({type:"step_complete",workflowId:a,stepKey:r,name:o,ts:Date.now(),durationMs:b,result:N(R,{cause:T}),meta:{origin:"throw",thrown:T}}),u?.(R,o,y),I(R,{origin:"throw",thrown:T})}let M=f;if(M.ok){let R=performance.now()-l;return i({type:"step_success",workflowId:a,stepId:t,stepKey:r,name:o,ts:Date.now(),durationMs:R}),r&&i({type:"step_complete",workflowId:a,stepKey:r,name:o,ts:Date.now(),durationMs:R,result:M}),M.value}let k=performance.now()-l,P=$(M.error,{origin:"result",resultCause:M.cause});throw i({type:"step_error",workflowId:a,stepId:t,stepKey:r,name:o,ts:Date.now(),durationMs:k,error:P}),r&&i({type:"step_complete",workflowId:a,stepKey:r,name:o,ts:Date.now(),durationMs:k,result:M,meta:{origin:"result",resultCause:M.cause}}),u?.(P,o,y),I(P,{origin:"result",resultCause:M.cause})})()};let W=await n({step:p});if(process.env.NODE_ENV!=="production"&&W!==null&&typeof W=="object"&&"ok"in W&&typeof W.ok=="boolean"){let s=W;(s.ok===!0&&"value"in s||s.ok===!1&&"error"in s)&&console.warn(`awaitly: Workflow executor returned a Result-like object. Return raw values, not ok() or err().
2
-
3
- Incorrect: return ok({ data });
4
- Correct: return { data };
5
-
6
- See: https://jagreehal.github.io/awaitly/guides/troubleshooting/#returning-ok-from-workflow-executor-double-wrapping`)}return B(W)}catch(p){if(Xe(p))throw p.thrown;if(F(p)){let z=p.meta.origin==="throw"?p.meta.thrown:p.meta.origin==="result"?p.meta.resultCause:void 0;return N(p.error,{cause:z})}let H=K(p);return u?.(H,"unexpected",y),N(H,{cause:p})}}ve.strict=(n,e)=>ve(n,e);async function Pe(n){return n.length===0?B([]):new Promise(e=>{let u=!1,w=n.length,_=new Array(n.length);for(let x=0;x<n.length;x++){let C=x;Promise.resolve(n[C]).catch(y=>N({type:"PROMISE_REJECTED",cause:y},{cause:{type:"PROMISE_REJECTION",reason:y}})).then(y=>{if(!u){if(!y.ok){u=!0,e(y);return}_[C]=y.value,w--,w===0&&e(B(_))}})}})}function Ie(n){let e=n.key??(D=>D),u=new Map,w=[],_=[],x=!1,C=new Map;async function y(){x=!1;let D=[...w],U=[..._];w.length=0,_.length=0;let i=new Set,I=[];for(let L of D)i.has(L)||(i.add(L),I.push(L));let F;try{F=await n.batchFn(I)}catch(L){let X=N(new ee({cause:L}));for(let{key:Y,resolve:Z}of U)Z(X),u.delete(Y);return}if(!F.ok){let L=N(F.error);for(let{key:X,resolve:Y}of U)Y(L),u.delete(X);return}let $=F.value;for(let{key:L,resolve:X}of U){let Y=$.find(Z=>n.find(Z,L));if(Y!==void 0){let Z=B(Y);n.cache&&C.set(L,Y),X(Z)}else X(N("RESOLVER_NOT_FOUND"));u.delete(L)}}function v(D){let U=e(D);if(n.cache&&C.has(U))return Promise.resolve(B(C.get(U)));let i=u.get(U);if(i)return i;let I=new Promise(F=>{w.push(U),_.push({key:U,resolve:F})});return u.set(U,I),x||(x=!0,queueMicrotask(y)),I}async function a(D){let U=D.map(i=>v(i));return Promise.all(U)}function K(D){let U=e(D);C.delete(U)}function O(){C.clear()}return{load:v,loadMany:a,clear:K,clearAll:O}}0&&(module.exports={createResolver});
7
- //# sourceMappingURL=resolver.cjs.map