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.
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 +29 -4
  14. package/dist/result.d.ts +29 -4
  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-DGs0tySr.d.cts → types-B8NfNRGX.d.ts} +1078 -1502
  24. package/dist/{run-entry-BOuNyVoO.d.ts → types-BZ2f4MRR.d.cts} +1078 -1502
  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 +3 -168
  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-By77n4Fa.d.ts +0 -15
  75. package/dist/di-OJfsohf-.d.cts +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-4sV7mTqj.d.cts +0 -72
  123. package/dist/guards-BIX05ALH.d.ts +0 -72
  124. package/dist/hitl-DFn4Xa_l.d.cts +0 -468
  125. package/dist/hitl-DU5VpKq7.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-CnvBryQB.d.ts +0 -417
  133. package/dist/index-DEZEf8Fs.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-B-8PjnSR.d.cts +0 -831
  149. package/dist/persistence-entry-D8zRkLiT.d.ts +0 -831
  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-BziYHFkD.d.ts +0 -323
  235. package/dist/types-C5jLEUqY.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 me=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var je=Object.getOwnPropertyNames;var Be=Object.prototype.hasOwnProperty;var Le=(n,e)=>{for(var E in e)me(n,E,{get:e[E],enumerable:!0})},Ve=(n,e,E,x)=>{if(e&&typeof e=="object"||typeof e=="function")for(let h of je(e))!Be.call(n,h)&&h!==E&&me(n,h,{get:()=>e[h],enumerable:!(x=Fe(e,h))||x.enumerable});return n};var $e=n=>Ve(me({},"__esModule",{value:!0}),n);var tr={};Le(tr,{createResolver:()=>De});module.exports=$e(tr);var We={"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 Te(n){return`https://jagreehal.github.io/awaitly/rules/#${n}`}var ir=Object.keys(We);var ae=class extends Error{_tag};function L(n,e){return class extends ae{_tag=n;constructor(E,x){let h=e?.message?e.message(E??{}):n;if(super(h),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:Te(e.slug),enumerable:!0,writable:!1,configurable:!1})}if(Object.setPrototypeOf(this,new.target.prototype),E&&typeof E=="object"){let l;if(e?.slug!==void 0){let{_tag:j,name:v,message:K,stack:s,code:_,hint:D,docsUrl:J,...W}=E;l=W}else{let{_tag:j,name:v,message:K,stack:s,..._}=E;l=_}let f=Object.prototype.hasOwnProperty.call(l,"cause"),S=f?l.cause:void 0;f&&delete l.cause;let M=x?.cause!==void 0;if(f&&M)throw new TypeError("TaggedError: cannot provide 'cause' in props when also setting ErrorOptions.cause");Object.assign(this,l),f&&(this.cause=S),M&&(this.cause=x?.cause)}else x?.cause!==void 0&&(this.cause=x.cause)}}}Object.defineProperty(L,Symbol.hasInstance,{value:n=>n instanceof ae});(h=>{function n(l){return l instanceof Error}h.isError=n;function e(l){return l instanceof ae}h.isTaggedError=e;function E(l,f){let S=l._tag,M=f[S];return M(l)}h.match=E;function x(l,f,S){let M=l._tag,j=f[M];return j?j(l):S(l)}h.matchPartial=x})(L||={});var ke=class extends L("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`}){},Re=class extends L("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`}){},ge=class extends L("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`:""}`}){},xe=class extends L("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`:""}`}){},Ce=class extends L("ValidationError",{message:e=>`ValidationError: Invalid ${e.field} - ${e.reason}`}){},he=class extends L("NotFoundError",{message:e=>e.id?`NotFoundError: ${e.resource} with id ${e.id} not found`:`NotFoundError: ${e.resource} not found`}){},be=class extends L("UnauthorizedError",{message:e=>e.reason?`UnauthorizedError: ${e.reason}`:e.action&&e.resource?`UnauthorizedError: Not authorized to ${e.action} ${e.resource}`:"UnauthorizedError: Access denied"}){},Ae=class extends L("NetworkError",{message:e=>e.url?`NetworkError: ${e.reason} (${e.url})`:`NetworkError: ${e.reason}`}){},Se=class extends L("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}`}){},re=class extends L("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 Pe(n){return{ok:!0,value:n}}var He=n=>typeof n=="object"&&n!==null&&"ok"in n&&typeof n.ok=="boolean"&&(n.ok?"value"in n:"error"in n),ve=(n,e)=>{let E={},x=new Map;for(let h of Object.keys(n)){let l=n[h];typeof l=="function"&&(E[h]=(...f)=>{let S=(x.get(h)??0)+1;x.set(h,S);let M=S===1?h:`${h}#${S}`;return e(M,async()=>{let j=await l(...f);return He(j)?j:Pe(j)})})}return E};function qe(n){let e=n.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!e)return;let E=parseFloat(e[1]),x=e[2].toLowerCase();return{_tag:"Duration",millis:E*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[x]??1)}}function Ye(n){return new re({cause:n})}function $(n){return{ok:!0,value:n}}function N(n,e){let E=e?.cause;return{ok:!1,error:n,...E!==void 0?{cause:E}:{}}}function ze(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 E=e._tag.trim();if(E)return E}if(typeof e.tag=="string"){let E=e.tag.trim();if(E)return E}if(typeof e.code=="string"){let E=e.code.trim();if(E)return E}else if(typeof e.code=="number")return String(e.code);if(n instanceof Error&&n.name){let E=n.name.trim();if(E)return E}}return"unknown"}function Je(n,e){if(!(!e||!n))return e[n]}function Ge(n){let{intent:e,domain:E,owner:x,tags:h,stateChanges:l,emits:f,calls:S}=n;if(!e&&!E&&!x&&!h?.length&&!l?.length&&!f?.length&&!S?.length)return;let M={};return e&&(M.intent=e),E&&(M.domain=E),x&&(M.owner=x),h?.length&&(M.tags=h),l?.length&&(M.stateChanges=l),f?.length&&(M.emits=f),S?.length&&(M.calls=S),M}function H(n,e,E,x,h){let l=ze(n),f=Je(l,e),S={tag:l,origin:E};return f!==void 0&&(S.classification=f),x!==void 0&&(S.attempt=x),h!==void 0&&(S.cumulativeDurationMs=h),S}var oe=Symbol.for("step_timeout_marker");function Oe(n){return typeof n!="object"||n===null?!1:n.type==="STEP_TIMEOUT"?!0:oe in n}function Xe(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(oe in n)return n[oe]}}var Ie=Symbol("early-exit");function Ze(n,e){return{[Ie]:!0,error:n,meta:e}}function Qe(n){return typeof n=="object"&&n!==null&&n[Ie]===!0}var Ue=Symbol("mapper-exception");function ne(n){return{[Ue]:!0,thrown:n}}function er(n){return typeof n=="object"&&n!==null&&n[Ue]===!0}function ye(n,e){let{backoff:E,initialDelay:x,maxDelay:h,jitter:l}=e,f;switch(E){case"fixed":f=x;break;case"linear":f=x*n;break;case"exponential":f=x*Math.pow(2,n-1);break}if(f=Math.min(f,h),l){let S=f*.25*Math.random();f=f+S}return Math.floor(f)}function fe(n){return new Promise(e=>setTimeout(e,n))}var _e=Symbol("timeout"),ie=Symbol("timeout-option");function rr(n){return typeof n=="object"&&n!==null&&n[ie]===!0}async function nr(n,e,E,x){let h=new AbortController,l=e.onTimeout??"error",f=()=>typeof l=="function"?l({name:E.name,key:E.key,ms:e.ms}):e.error??{type:"STEP_TIMEOUT",stepName:E.name,stepKey:E.key,timeoutMs:e.ms,attempt:E.attempt},S;x?.aborted&&h.abort(x.reason);let M;x&&!x.aborted&&(M=()=>h.abort(x.reason),x.addEventListener("abort",M,{once:!0}));let j=new Promise((K,s)=>{S=setTimeout(()=>{if(l!=="disconnect"&&h.abort(),l==="option"){s({[ie]:!0,ms:e.ms});return}s({[_e]:!0,error:f()})},e.ms)}),v;e.signal?v=Promise.resolve(n(h.signal)):v=Promise.resolve(n());try{return await Promise.race([v,j])}catch(K){if(typeof K=="object"&&K!==null&&K[ie]===!0)throw{[ie]:!0,ms:e.ms};if(typeof K=="object"&&K!==null&&K[_e]===!0){l==="disconnect"&&v.catch(()=>{});let s=K.error;if(typeof s=="object"&&s!==null&&s.type!=="STEP_TIMEOUT"){let _={timeoutMs:e.ms,stepName:E.name,stepKey:E.key,attempt:E.attempt};oe in s?s[oe]=_:Object.defineProperty(s,oe,{value:_,enumerable:!1,writable:!0,configurable:!1})}throw s}throw K}finally{clearTimeout(S),M&&x&&x.removeEventListener("abort",M)}}var te={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:()=>!0,onRetry:()=>{}};async function we(n,e,E){if(typeof n!="function"){let p=n,V=e;if(typeof V!="function")throw new TypeError("[awaitly] run(deps, fn) requires a callback as the second argument. Example: run({ getUser }, async (s) => s.getUser(id))");return we(({step:Q})=>V(ve(p,Q),{step:Q}),E)}let x=n,h=e,{onError:l,onEvent:f,catchUnexpected:S,workflowId:M,workflowName:j,context:v,_workflowSignal:K}=h&&typeof h=="object"?h:{},s=M??crypto.randomUUID(),_=S??Ye,D=[],J=0,W=p=>p??`step_${++J}`,i=p=>{let V=p.context!==void 0||v===void 0?p:{...p,context:v},Y=j!==void 0&&V.workflowName===void 0?{...V,workflowName:j}:V;if(Y.type==="step_success"){let Q=Y.stepId;for(let ue=D.length-1;ue>=0;ue--){let q=D[ue];if(q.type==="race"&&!q.winnerId){q.winnerId=Q;break}}}f?.(Y,v)},O=Ze,B=p=>Qe(p),F=(p,V)=>p,Z=p=>typeof p=="function"?!1:!!(p&&typeof p=="object"&&"ok"in p||p&&typeof p=="object"&&"then"in p&&typeof p.then=="function");try{let V=function(a){let d={};for(let[t,o]of Object.entries(a))if(typeof o=="function")d[t]=o;else if(o&&typeof o=="object"&&"fn"in o)d[t]=o.fn;else throw new TypeError(`step.all: operation "${t}" must be a function or { fn, errors? } object`);return d},Y=function(a,d){let t=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),r=!1;D.push({scopeId:t,type:"parallel"});let u=()=>{if(r)return;r=!0;let c=D.findIndex(m=>m.scopeId===t);c!==-1&&D.splice(c,1),i({type:"scope_end",workflowId:s,scopeId:t,ts:Date.now(),durationMs:performance.now()-o})};i({type:"scope_start",workflowId:s,scopeId:t,scopeType:"parallel",name:a,ts:Date.now()});try{let c=await d();if(u(),!c.ok)throw l?.(c.error,a,v),O(c.error,{origin:"result",resultCause:c.cause});return c.value}catch(c){throw u(),c}})()},Q=function(a,d){let t=Object.keys(a),o=d.name??`Parallel(${t.join(", ")})`,r=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let u=performance.now(),c=!1;D.push({scopeId:r,type:"parallel"});let m=()=>{if(c)return;c=!0;let y=D.findIndex(w=>w.scopeId===r);y!==-1&&D.splice(y,1),i({type:"scope_end",workflowId:s,scopeId:r,ts:Date.now(),durationMs:performance.now()-u})};i({type:"scope_start",workflowId:s,scopeId:r,scopeType:"parallel",name:o,ts:Date.now()});try{let y=await new Promise(k=>{if(t.length===0){k([]);return}let A=!1,U=t.length,R=new Array(t.length);for(let I=0;I<t.length;I++){let g=t[I],b=I;Promise.resolve(a[g]()).catch(C=>N({type:"PROMISE_REJECTED",cause:C},{cause:{type:"PROMISE_REJECTION",reason:C}})).then(C=>{if(!A){if(!C.ok){A=!0,k([{key:g,result:C}]);return}R[b]={key:g,result:C},U--,U===0&&k(R)}})}});m();let w={};for(let{key:k,result:A}of y){if(!A.ok)throw l?.(A.error,k,v),O(A.error,{origin:"result",resultCause:A.cause});w[k]=A.value}return w}catch(y){throw m(),y}})()};var or=V,sr=Y,ar=Q;let p=(a,d,t)=>(async()=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step() requires an explicit string ID as the first argument. Example: step("fetchUser", () => fetchUser(id))');let o=t??{},r=Ge(o),u=a,c=o.key??a,m=o.key??a,{description:y,retry:w,timeout:k}=o,A=W(c),U=f,R=U?performance.now():0,g=Z(d)?()=>d:d,C={attempts:Math.max(1,w?.attempts??1),backoff:w?.backoff??te.backoff,initialDelay:w?.initialDelay??te.initialDelay,maxDelay:w?.maxDelay??te.maxDelay,jitter:w?.jitter??te.jitter,shouldRetry:w?.shouldRetry??te.shouldRetry,onRetry:w?.onRetry??te.onRetry};f&&i({type:"step_start",workflowId:s,stepId:A,stepKey:c,name:u,description:y,ts:Date.now(),...r&&{metadata:r}});let ee;for(let P=1;P<=C.attempts;P++){let Ke=U?performance.now():0;try{let T;if(k?T=await nr(g,k,{name:u,key:c,attempt:P},K):T=await g(),T.ok){let X=performance.now()-R;return i({type:"step_success",workflowId:s,stepId:A,stepKey:c,name:u,description:y,ts:Date.now(),durationMs:X,...r&&{metadata:r}}),m&&i({type:"step_complete",workflowId:s,stepKey:m,name:u,description:y,ts:Date.now(),durationMs:X,result:T,...r&&{metadata:r}}),T.value}if(ee=T,P<C.attempts&&C.shouldRetry(T.error,P)){let X=ye(P,C);i({type:"step_retry",workflowId:s,stepId:A,stepKey:c,name:u,ts:Date.now(),attempt:P+1,maxAttempts:C.attempts,delayMs:X,error:T.error,...r&&{metadata:r},diagnostics:H(T.error,o.errorMeta,"result",P,performance.now()-R)}),C.onRetry(T.error,P,X),await fe(X);continue}C.attempts>1&&i({type:"step_retries_exhausted",workflowId:s,stepId:A,stepKey:c,name:u,ts:Date.now(),durationMs:performance.now()-R,attempts:P,lastError:T.error,...r&&{metadata:r},diagnostics:H(T.error,o.errorMeta,"result",P,performance.now()-R)});break}catch(T){let X=performance.now()-Ke;if(rr(T)){let z=T.ms;i({type:"step_timeout",workflowId:s,stepId:A,stepKey:c,name:u,ts:Date.now(),timeoutMs:z,attempt:P,...r&&{metadata:r},diagnostics:H(T,o.errorMeta,"timeout",P)}),i({type:"step_success",workflowId:s,stepId:A,stepKey:c,name:u,description:y,ts:Date.now(),durationMs:performance.now()-R,...r&&{metadata:r}}),m&&i({type:"step_complete",workflowId:s,stepKey:m,name:u,description:y,ts:Date.now(),durationMs:performance.now()-R,result:$(void 0),...r&&{metadata:r}});return}if(B(T))throw i({type:"step_aborted",workflowId:s,stepId:A,stepKey:c,name:u,description:y,ts:Date.now(),durationMs:X,...r&&{metadata:r}}),T;if(Oe(T)){let z=Xe(T),Ne=k?.ms??z?.timeoutMs??0;if(i({type:"step_timeout",workflowId:s,stepId:A,stepKey:c,name:u,ts:Date.now(),timeoutMs:Ne,attempt:P,...r&&{metadata:r},diagnostics:H(T,o.errorMeta,"timeout",P)}),P<C.attempts&&C.shouldRetry(T,P)){let de=ye(P,C);i({type:"step_retry",workflowId:s,stepId:A,stepKey:c,name:u,ts:Date.now(),attempt:P+1,maxAttempts:C.attempts,delayMs:de,error:T,...r&&{metadata:r},diagnostics:H(T,o.errorMeta,"timeout",P,performance.now()-R)}),C.onRetry(T,P,de),await fe(de);continue}C.attempts>1&&i({type:"step_retries_exhausted",workflowId:s,stepId:A,stepKey:c,name:u,ts:Date.now(),durationMs:performance.now()-R,attempts:P,lastError:T,...r&&{metadata:r},diagnostics:H(T,o.errorMeta,"timeout",P,performance.now()-R)});let Ee=performance.now()-R;throw i({type:"step_error",workflowId:s,stepId:A,stepKey:c,name:u,description:y,ts:Date.now(),durationMs:Ee,error:T,...r&&{metadata:r},diagnostics:H(T,o.errorMeta,"timeout",P,Ee)}),m&&i({type:"step_complete",workflowId:s,stepKey:m,name:u,description:y,ts:Date.now(),durationMs:Ee,result:N(T,{cause:T}),meta:{origin:"throw",thrown:T},...r&&{metadata:r}}),l?.(T,u,v),O(T,{origin:"throw",thrown:T})}if(P<C.attempts&&C.shouldRetry(T,P)){let z=ye(P,C);i({type:"step_retry",workflowId:s,stepId:A,stepKey:c,name:u,ts:Date.now(),attempt:P+1,maxAttempts:C.attempts,delayMs:z,error:T,...r&&{metadata:r},diagnostics:H(T,o.errorMeta,"throw",P,performance.now()-R)}),C.onRetry(T,P,z),await fe(z);continue}C.attempts>1&&!Oe(T)&&i({type:"step_retries_exhausted",workflowId:s,stepId:A,stepKey:c,name:u,ts:Date.now(),durationMs:performance.now()-R,attempts:P,lastError:T,...r&&{metadata:r},diagnostics:H(T,o.errorMeta,"throw",P,performance.now()-R)});let pe=performance.now()-R,se;try{se=_(T)}catch(z){throw ne(z)}throw i({type:"step_error",workflowId:s,stepId:A,stepKey:c,name:u,description:y,ts:Date.now(),durationMs:pe,error:se,...r&&{metadata:r},diagnostics:H(T,o.errorMeta,"throw",P,pe)}),m&&i({type:"step_complete",workflowId:s,stepKey:m,name:u,description:y,ts:Date.now(),durationMs:pe,result:N(se,{cause:T}),meta:{origin:"throw",thrown:T},...r&&{metadata:r}}),l?.(se,u,v),O(se,{origin:"throw",thrown:T})}}let G=ee,ce=performance.now()-R,le=F(G.error,{origin:"result",resultCause:G.cause});throw i({type:"step_error",workflowId:s,stepId:A,stepKey:c,name:u,description:y,ts:Date.now(),durationMs:ce,error:le,...r&&{metadata:r},diagnostics:H(G.error,o.errorMeta,"result",C.attempts,ce)}),m&&i({type:"step_complete",workflowId:s,stepKey:m,name:u,description:y,ts:Date.now(),durationMs:ce,result:G,meta:{origin:"result",resultCause:G.cause},...r&&{metadata:r}}),l?.(le,u,v),O(le,{origin:"result",resultCause:G.cause})})();p.try=(a,d,t)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.try() requires an explicit string ID as the first argument. Example: step.try("parse", () => JSON.parse(str), { error: "PARSE_ERROR" })');let o="error"in t?()=>t.error:t.onError;if(t.retry||t.timeout)return p.retry(a,async()=>{try{return $(await d())}catch(y){return N(o(y),{cause:y})}},{attempts:t.retry?.attempts??1,...t.retry??{},key:t.key,timeout:t.timeout});let r=t.key??a,u=a,c=a,m=f;return(async()=>{let y=m?performance.now():0;f&&i({type:"step_start",workflowId:s,stepId:c,stepKey:r,name:u,ts:Date.now()});try{let w=await d(),k=performance.now()-y;return i({type:"step_success",workflowId:s,stepId:c,stepKey:r,name:u,ts:Date.now(),durationMs:k}),r&&i({type:"step_complete",workflowId:s,stepKey:r,name:u,ts:Date.now(),durationMs:k,result:$(w)}),w}catch(w){let k=o(w),A=performance.now()-y,U=F(k,{origin:"throw",thrown:w});throw i({type:"step_error",workflowId:s,stepId:c,stepKey:r,name:u,ts:Date.now(),durationMs:A,error:U}),r&&i({type:"step_complete",workflowId:s,stepKey:r,name:u,ts:Date.now(),durationMs:A,result:N(k,{cause:w}),meta:{origin:"throw",thrown:w}}),l?.(U,u,v),O(U,{origin:"throw",thrown:w})}})()},p.fromResult=(a,d,t)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.fromResult() requires an explicit string ID as the first argument. Example: step.fromResult("callProvider", () => callProvider(input), { onError: (e) => ({ type: "FAILED" }) })');let o=t.key??a,r=a,u=a,c="error"in t?()=>t.error:t.onError,m=f;return(async()=>{let y=m?performance.now():0;f&&i({type:"step_start",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now()});let w=await d();if(w.ok){let k=performance.now()-y;return i({type:"step_success",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:k}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:k,result:$(w.value)}),w.value}else{let k=c(w.error),A=performance.now()-y,U=F(k,{origin:"result",resultCause:w.error});throw i({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:A,error:U}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:A,result:N(k,{cause:w.error}),meta:{origin:"result",resultCause:w.error}}),l?.(U,r,v),O(U,{origin:"result",resultCause:w.error})}})()},p.fromNullable=(a,d,t,o)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.fromNullable() requires an explicit string ID as the first argument. Example: step.fromNullable("getUser", () => db.find(id), () => ({ type: "NOT_FOUND" }))');return p(a,async()=>{let r=await d();return r!=null?$(r):N(t())},o)},p.retry=(a,d,t)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.retry() requires an explicit string ID as the first argument. Example: step.retry("fetchData", () => fetchData(), { attempts: 3 })');return p(a,d,{key:t.key??a,retry:{attempts:t.attempts,backoff:t.backoff,initialDelay:t.initialDelay,maxDelay:t.maxDelay,jitter:t.jitter,shouldRetry:t.shouldRetry,onRetry:t.onRetry},timeout:t.timeout})},p.withTimeout=(a,d,t)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.withTimeout() requires an explicit string ID as the first argument. Example: step.withTimeout("slowOp", () => slowOp(), { ms: 5000 })');return p(a,d,{key:t.key??a,timeout:t})},p.sleep=(a,d,t)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.sleep() requires an explicit string ID as the first argument. Example: step.sleep("delay", "5s")');let o=typeof d=="string"?qe(d):d;if(!o)throw new Error(`step.sleep: invalid duration '${d}'`);let r=o.millis,u=t?.signal;return p(a,async()=>{if(K?.aborted||u?.aborted){let c=new Error("Sleep aborted");throw c.name="AbortError",c}return new Promise((c,m)=>{let y={timeoutId:void 0},w=()=>{y.timeoutId&&clearTimeout(y.timeoutId);let k=new Error("Sleep aborted");k.name="AbortError",m(k)};K?.addEventListener("abort",w,{once:!0}),u?.addEventListener("abort",w,{once:!0}),y.timeoutId=setTimeout(()=>{K?.removeEventListener("abort",w),u?.removeEventListener("abort",w),c($(void 0))},r)})},{key:t?.key??a,description:t?.description})},p.all=((...a)=>{if(typeof a[0]!="string")throw new TypeError("step.all(name, ...): first argument must be a string (step name). Example: step.all('Fetch data', { user: () => fetchUser(), posts: () => fetchPosts() })");let d=a[0],t=a[1];if(typeof t=="function")return Y(d,t);if(t&&typeof t=="object"&&!Array.isArray(t)){let r=V(t);return Q(r,{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=(a,d)=>{let t=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),r=!1,u={scopeId:t,type:"race",winnerId:void 0};D.push(u);let c=()=>{if(r)return;r=!0;let m=D.findIndex(y=>y.scopeId===t);m!==-1&&D.splice(m,1),i({type:"scope_end",workflowId:s,scopeId:t,ts:Date.now(),durationMs:performance.now()-o,winnerId:u.winnerId})};i({type:"scope_start",workflowId:s,scopeId:t,scopeType:"race",name:a,ts:Date.now()});try{let m=await d();if(c(),!m.ok)throw l?.(m.error,a,v),O(m.error,{origin:"result",resultCause:m.cause});return m.value}catch(m){throw c(),m}})()},p.if=(a,d,t)=>t(),p.label=p.if,p.branch=async(a,d)=>{let{condition:t,then:o,else:r}=d;if(t())return await o();if(r)return await r()},p.arm=(a,d)=>({fn:a,errors:d}),p.forEach=async(a,d,t)=>{let o=[],r=t.maxIterations,u=0,c="run"in t,m=Symbol.asyncIterator in d?d:(async function*(){yield*d})();for await(let y of m){if(r!==void 0&&u>=r)break;let w;c?w=await t.run(y,u):w=await t.item.handler(y,u,p),o.push(w),u++}return o},p.item=a=>({__forEachItemHandler:!0,handler:a}),p.dep=(a,d)=>d,p.workflow=(a,d,t)=>p(a,d,t),p.map=async(a,d,t,o)=>{let r=o?.concurrency??d.length;return p(a,()=>r>=d.length?Me(d.map((u,c)=>t(u,c))):(async()=>{let u=[];for(let c=0;c<d.length;c+=r){let m=d.slice(c,c+r),y=await Me(m.map((w,k)=>t(w,c+k)));if(!y.ok)return y;u.push(...y.value)}return $(u)})(),{key:o?.key})},p.withFallback=(a,d,t)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.withFallback() requires an explicit string ID as the first argument. Example: step.withFallback("getUser", () => fetchUser(id), { fallback: () => fetchFromCache(id) })');let o=t.key??a,r=a,u=W(o),c=f;return(async()=>{let m=c?performance.now():0;f&&i({type:"step_start",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now()});let y;try{y=await d()}catch(R){if(B(R))throw i({type:"step_aborted",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:performance.now()-m}),R;let I;try{I=_(R)}catch(b){throw ne(b)}if(t.on!==void 0&&t.on!==I){let b=performance.now()-m;throw i({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:b,error:I}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:b,result:N(I,{cause:R}),meta:{origin:"throw",thrown:R}}),l?.(I,r,v),O(I,{origin:"throw",thrown:R})}let g;try{g=await t.fallback()}catch(b){if(B(b))throw i({type:"step_aborted",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:performance.now()-m}),b;let C;try{C=_(b)}catch(G){throw ne(G)}let ee=performance.now()-m;throw i({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:ee,error:C}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:ee,result:N(C,{cause:b}),meta:{origin:"throw",thrown:b}}),l?.(C,r,v),O(C,{origin:"throw",thrown:b})}if(g.ok){let b=performance.now()-m;return i({type:"step_success",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:b}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:b,result:g,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(I)}}),g.value}else{let b=performance.now()-m,C=F(g.error,{origin:"result",resultCause:g.cause});throw i({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:b,error:C}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:b,result:g,meta:{origin:"result",resultCause:g.cause}}),l?.(C,r,v),O(C,{origin:"result",resultCause:g.cause})}}if(y.ok){let R=performance.now()-m;return i({type:"step_success",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:R}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:R,result:y}),y.value}let w=y.error;if(t.on!==void 0&&t.on!==w){let R=performance.now()-m,I=F(w,{origin:"result",resultCause:y.cause});throw i({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:R,error:I}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:R,result:y,meta:{origin:"result",resultCause:y.cause}}),l?.(I,r,v),O(I,{origin:"result",resultCause:y.cause})}let k;try{k=await t.fallback()}catch(R){if(B(R))throw i({type:"step_aborted",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:performance.now()-m}),R;let I;try{I=_(R)}catch(b){throw ne(b)}let g=performance.now()-m;throw i({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:g,error:I}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:g,result:N(I,{cause:R}),meta:{origin:"throw",thrown:R}}),l?.(I,r,v),O(I,{origin:"throw",thrown:R})}if(k.ok){let R=performance.now()-m;return i({type:"step_success",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:R}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:R,result:k,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(w)}}),k.value}let A=performance.now()-m,U=F(k.error,{origin:"result",resultCause:k.cause});throw i({type:"step_error",workflowId:s,stepId:u,stepKey:o,name:r,ts:Date.now(),durationMs:A,error:U}),o&&i({type:"step_complete",workflowId:s,stepKey:o,name:r,ts:Date.now(),durationMs:A,result:k,meta:{origin:"result",resultCause:k.cause}}),l?.(U,r,v),O(U,{origin:"result",resultCause:k.cause})})()},p.withResource=(a,d)=>{if(typeof a!="string"||a.length===0)throw new Error('[awaitly] step.withResource() requires an explicit string ID as the first argument. Example: step.withResource("useDb", { acquire: () => connect(), use: (db) => query(db), release: (db) => db.close() })');let t=a,o=a,r=W(t),u=f;return(async()=>{let c=u?performance.now():0;f&&i({type:"step_start",workflowId:s,stepId:r,stepKey:t,name:o,ts:Date.now()});let m;try{m=await d.acquire()}catch(g){if(B(g))throw i({type:"step_aborted",workflowId:s,stepId:r,stepKey:t,name:o,ts:Date.now(),durationMs:performance.now()-c}),g;let b;try{b=_(g)}catch(ee){throw ne(ee)}let C=performance.now()-c;throw i({type:"step_error",workflowId:s,stepId:r,stepKey:t,name:o,ts:Date.now(),durationMs:C,error:b}),t&&i({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:C,result:N(b,{cause:g}),meta:{origin:"throw",thrown:g}}),l?.(b,o,v),O(b,{origin:"throw",thrown:g})}if(!m.ok){let g=performance.now()-c,b=F(m.error,{origin:"result",resultCause:m.cause});throw i({type:"step_error",workflowId:s,stepId:r,stepKey:t,name:o,ts:Date.now(),durationMs:g,error:b}),t&&i({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:g,result:m,meta:{origin:"result",resultCause:m.cause}}),l?.(b,o,v),O(b,{origin:"result",resultCause:m.cause})}let y=m.value,w,k,A=!1;try{w=await d.use(y)}catch(g){if(B(g)){try{await d.release(y)}catch(b){console.warn(`[awaitly] step.withResource("${a}"): release threw after earlyExit:`,b)}throw g}k=g,A=!0}try{await d.release(y)}catch(g){console.warn(`[awaitly] step.withResource("${a}"): release threw:`,g)}if(A){let g;try{g=_(k)}catch(C){throw ne(C)}let b=performance.now()-c;throw i({type:"step_error",workflowId:s,stepId:r,stepKey:t,name:o,ts:Date.now(),durationMs:b,error:g}),t&&i({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:b,result:N(g,{cause:k}),meta:{origin:"throw",thrown:k}}),l?.(g,o,v),O(g,{origin:"throw",thrown:k})}let U=w;if(U.ok){let g=performance.now()-c;return i({type:"step_success",workflowId:s,stepId:r,stepKey:t,name:o,ts:Date.now(),durationMs:g}),t&&i({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:g,result:U}),U.value}let R=performance.now()-c,I=F(U.error,{origin:"result",resultCause:U.cause});throw i({type:"step_error",workflowId:s,stepId:r,stepKey:t,name:o,ts:Date.now(),durationMs:R,error:I}),t&&i({type:"step_complete",workflowId:s,stepKey:t,name:o,ts:Date.now(),durationMs:R,result:U,meta:{origin:"result",resultCause:U.cause}}),l?.(I,o,v),O(I,{origin:"result",resultCause:U.cause})})()};let q=await x({step:p});if(process.env.NODE_ENV!=="production"&&q!==null&&typeof q=="object"&&"ok"in q&&typeof q.ok=="boolean"){let a=q;(a.ok===!0&&"value"in a||a.ok===!1&&"error"in a)&&console.warn(`awaitly: Workflow executor returned a Result-like object. Return raw values, not ok() or err().
2
-
3
- Incorrect: return ok({ data });
4
- Correct: return { data };
5
-
6
- See: https://jagreehal.github.io/awaitly/guides/troubleshooting/#returning-ok-from-workflow-executor-double-wrapping`)}return $(q)}catch(p){if(er(p))throw p.thrown;if(B(p)){let Y=p.meta.origin==="throw"?p.meta.thrown:p.meta.origin==="result"?p.meta.resultCause:void 0;return N(p.error,{cause:Y})}let V=_(p);return l?.(V,"unexpected",v),N(V,{cause:p})}}we.strict=(n,e)=>we(n,e);async function Me(n){return n.length===0?$([]):new Promise(e=>{let E=!1,x=n.length,h=new Array(n.length);for(let l=0;l<n.length;l++){let f=l;Promise.resolve(n[f]).catch(S=>N({type:"PROMISE_REJECTED",cause:S},{cause:{type:"PROMISE_REJECTION",reason:S}})).then(S=>{if(!E){if(!S.ok){E=!0,e(S);return}h[f]=S.value,x--,x===0&&e($(h))}})}})}function De(n){let e=n.key??(s=>s),E=new Map,x=[],h=[],l=!1,f=new Map;async function S(){l=!1;let s=[...x],_=[...h];x.length=0,h.length=0;let D=new Set,J=[];for(let O of s)D.has(O)||(D.add(O),J.push(O));let W;try{W=await n.batchFn(J)}catch(O){let B=N(new re({cause:O}));for(let{key:F,resolve:Z}of _)Z(B),E.delete(F);return}if(!W.ok){let O=N(W.error);for(let{key:B,resolve:F}of _)F(O),E.delete(B);return}let i=W.value;for(let{key:O,resolve:B}of _){let F=i.find(Z=>n.find(Z,O));if(F!==void 0){let Z=$(F);n.cache&&f.set(O,F),B(Z)}else B(N("RESOLVER_NOT_FOUND"));E.delete(O)}}function M(s){let _=e(s);if(n.cache&&f.has(_))return Promise.resolve($(f.get(_)));let D=E.get(_);if(D)return D;let J=new Promise(W=>{x.push(_),h.push({key:_,resolve:W})});return E.set(_,J),l||(l=!0,queueMicrotask(S)),J}async function j(s){let _=s.map(D=>M(D));return Promise.all(_)}function v(s){let _=e(s);f.delete(_)}function K(){f.clear()}return{load:M,loadMany:j,clear:v,clearAll:K}}0&&(module.exports={createResolver});
7
- //# sourceMappingURL=resolver.cjs.map