@trigger.dev/sdk 3.0.0-beta.7 → 3.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 (279) hide show
  1. package/dist/commonjs/apiClient.d.ts +737 -0
  2. package/dist/commonjs/apiClient.js +692 -0
  3. package/dist/commonjs/apiClient.js.map +1 -0
  4. package/dist/commonjs/concurrencyLimit.d.ts +10 -0
  5. package/dist/commonjs/concurrencyLimit.js +17 -0
  6. package/dist/commonjs/concurrencyLimit.js.map +1 -0
  7. package/dist/commonjs/errors.d.ts +66 -0
  8. package/dist/commonjs/errors.js +109 -0
  9. package/dist/commonjs/errors.js.map +1 -0
  10. package/dist/commonjs/httpEndpoint.d.ts +87 -0
  11. package/dist/commonjs/httpEndpoint.js +130 -0
  12. package/dist/commonjs/httpEndpoint.js.map +1 -0
  13. package/dist/commonjs/index.d.ts +23 -0
  14. package/dist/commonjs/index.js +55 -0
  15. package/dist/commonjs/index.js.map +1 -0
  16. package/dist/commonjs/integrations.d.ts +11 -0
  17. package/dist/commonjs/integrations.js +3 -0
  18. package/dist/commonjs/integrations.js.map +1 -0
  19. package/dist/commonjs/io.d.ts +453 -0
  20. package/dist/commonjs/io.js +1165 -0
  21. package/dist/commonjs/io.js.map +1 -0
  22. package/dist/commonjs/ioWithIntegrations.d.ts +4 -0
  23. package/dist/commonjs/ioWithIntegrations.js +32 -0
  24. package/dist/commonjs/ioWithIntegrations.js.map +1 -0
  25. package/dist/commonjs/job.d.ts +96 -0
  26. package/dist/commonjs/job.js +210 -0
  27. package/dist/commonjs/job.js.map +1 -0
  28. package/dist/commonjs/package.json +3 -0
  29. package/dist/commonjs/retry.d.ts +20 -0
  30. package/dist/commonjs/retry.js +22 -0
  31. package/dist/commonjs/retry.js.map +1 -0
  32. package/dist/commonjs/runLocalStorage.d.ts +8 -0
  33. package/dist/commonjs/runLocalStorage.js +6 -0
  34. package/dist/commonjs/runLocalStorage.js.map +1 -0
  35. package/dist/commonjs/security.d.ts +18 -0
  36. package/dist/commonjs/security.js +41 -0
  37. package/dist/commonjs/security.js.map +1 -0
  38. package/dist/commonjs/status.d.ts +19 -0
  39. package/dist/commonjs/status.js +38 -0
  40. package/dist/commonjs/status.js.map +1 -0
  41. package/dist/commonjs/store/keyValueStore.d.ts +17 -0
  42. package/dist/commonjs/store/keyValueStore.js +138 -0
  43. package/dist/commonjs/store/keyValueStore.js.map +1 -0
  44. package/dist/commonjs/store/keyValueStoreClient.d.ts +19 -0
  45. package/dist/commonjs/store/keyValueStoreClient.js +65 -0
  46. package/dist/commonjs/store/keyValueStoreClient.js.map +1 -0
  47. package/dist/commonjs/triggerClient.d.ts +300 -0
  48. package/dist/commonjs/triggerClient.js +1366 -0
  49. package/dist/commonjs/triggerClient.js.map +1 -0
  50. package/dist/commonjs/triggers/dynamic.d.ts +56 -0
  51. package/dist/commonjs/triggers/dynamic.js +97 -0
  52. package/dist/commonjs/triggers/dynamic.js.map +1 -0
  53. package/dist/commonjs/triggers/eventTrigger.d.ts +58 -0
  54. package/dist/commonjs/triggers/eventTrigger.js +69 -0
  55. package/dist/commonjs/triggers/eventTrigger.js.map +1 -0
  56. package/dist/commonjs/triggers/externalSource.d.ts +148 -0
  57. package/dist/commonjs/triggers/externalSource.js +106 -0
  58. package/dist/commonjs/triggers/externalSource.js.map +1 -0
  59. package/dist/commonjs/triggers/invokeTrigger.d.ts +39 -0
  60. package/dist/commonjs/triggers/invokeTrigger.js +58 -0
  61. package/dist/commonjs/triggers/invokeTrigger.js.map +1 -0
  62. package/dist/commonjs/triggers/notifications.d.ts +111 -0
  63. package/dist/commonjs/triggers/notifications.js +101 -0
  64. package/dist/commonjs/triggers/notifications.js.map +1 -0
  65. package/dist/commonjs/triggers/scheduled.d.ts +145 -0
  66. package/dist/commonjs/triggers/scheduled.js +208 -0
  67. package/dist/commonjs/triggers/scheduled.js.map +1 -0
  68. package/dist/commonjs/triggers/webhook.d.ts +143 -0
  69. package/dist/commonjs/triggers/webhook.js +133 -0
  70. package/dist/commonjs/triggers/webhook.js.map +1 -0
  71. package/dist/commonjs/typed-emitter.d.ts +37 -0
  72. package/dist/commonjs/typed-emitter.js +3 -0
  73. package/dist/commonjs/typed-emitter.js.map +1 -0
  74. package/dist/commonjs/types.d.ts +204 -0
  75. package/dist/commonjs/types.js +23 -0
  76. package/dist/commonjs/types.js.map +1 -0
  77. package/dist/commonjs/utils/formatSchemaErrors.d.ts +3 -0
  78. package/dist/commonjs/utils/formatSchemaErrors.js +10 -0
  79. package/dist/commonjs/utils/formatSchemaErrors.js.map +1 -0
  80. package/dist/commonjs/utils/typedAsyncLocalStorage.d.ts +6 -0
  81. package/dist/commonjs/utils/typedAsyncLocalStorage.js +18 -0
  82. package/dist/commonjs/utils/typedAsyncLocalStorage.js.map +1 -0
  83. package/dist/commonjs/utils.d.ts +1 -0
  84. package/dist/commonjs/utils.js +11 -0
  85. package/dist/commonjs/utils.js.map +1 -0
  86. package/dist/commonjs/v3/cache.d.ts +28 -0
  87. package/dist/commonjs/v3/cache.js +63 -0
  88. package/dist/commonjs/v3/cache.js.map +1 -0
  89. package/dist/commonjs/v3/config.d.ts +4 -0
  90. package/dist/commonjs/v3/config.js +7 -0
  91. package/dist/commonjs/v3/config.js.map +1 -0
  92. package/dist/commonjs/v3/envvars.d.ts +14 -0
  93. package/dist/commonjs/v3/envvars.js +246 -0
  94. package/dist/commonjs/v3/envvars.js.map +1 -0
  95. package/dist/commonjs/v3/idempotencyKeys.d.ts +49 -0
  96. package/dist/commonjs/v3/idempotencyKeys.js +76 -0
  97. package/dist/commonjs/v3/idempotencyKeys.js.map +1 -0
  98. package/dist/commonjs/v3/index.d.ts +36 -0
  99. package/dist/commonjs/v3/index.js +79 -0
  100. package/dist/commonjs/v3/index.js.map +1 -0
  101. package/dist/commonjs/v3/retry.d.ts +15 -0
  102. package/dist/commonjs/v3/retry.js +411 -0
  103. package/dist/commonjs/v3/retry.js.map +1 -0
  104. package/dist/commonjs/v3/runs.d.ts +345 -0
  105. package/dist/commonjs/v3/runs.js +195 -0
  106. package/dist/commonjs/v3/runs.js.map +1 -0
  107. package/dist/commonjs/v3/schedules/api.d.ts +1 -0
  108. package/dist/commonjs/v3/schedules/api.js +3 -0
  109. package/dist/commonjs/v3/schedules/api.js.map +1 -0
  110. package/dist/commonjs/v3/schedules/index.d.ts +87 -0
  111. package/dist/commonjs/v3/schedules/index.js +250 -0
  112. package/dist/commonjs/v3/schedules/index.js.map +1 -0
  113. package/dist/commonjs/v3/shared.d.ts +443 -0
  114. package/dist/commonjs/v3/shared.js +547 -0
  115. package/dist/commonjs/v3/shared.js.map +1 -0
  116. package/dist/commonjs/v3/tags.d.ts +6 -0
  117. package/dist/commonjs/v3/tags.js +50 -0
  118. package/dist/commonjs/v3/tags.js.map +1 -0
  119. package/dist/commonjs/v3/tasks.d.ts +31 -0
  120. package/dist/commonjs/v3/tasks.js +35 -0
  121. package/dist/commonjs/v3/tasks.js.map +1 -0
  122. package/dist/commonjs/v3/tracer.d.ts +2 -0
  123. package/dist/commonjs/v3/tracer.js +7 -0
  124. package/dist/commonjs/v3/tracer.js.map +1 -0
  125. package/dist/commonjs/v3/usage.d.ts +77 -0
  126. package/dist/commonjs/v3/usage.js +115 -0
  127. package/dist/commonjs/v3/usage.js.map +1 -0
  128. package/dist/commonjs/v3/wait.d.ts +22 -0
  129. package/dist/commonjs/v3/wait.js +99 -0
  130. package/dist/commonjs/v3/wait.js.map +1 -0
  131. package/dist/commonjs/version.d.ts +1 -0
  132. package/dist/commonjs/version.js +5 -0
  133. package/dist/commonjs/version.js.map +1 -0
  134. package/dist/esm/apiClient.d.ts +737 -0
  135. package/dist/esm/apiClient.js +687 -0
  136. package/dist/esm/apiClient.js.map +1 -0
  137. package/dist/esm/concurrencyLimit.d.ts +10 -0
  138. package/dist/esm/concurrencyLimit.js +13 -0
  139. package/dist/esm/concurrencyLimit.js.map +1 -0
  140. package/dist/esm/errors.d.ts +66 -0
  141. package/dist/esm/errors.js +95 -0
  142. package/dist/esm/errors.js.map +1 -0
  143. package/dist/esm/httpEndpoint.d.ts +87 -0
  144. package/dist/esm/httpEndpoint.js +125 -0
  145. package/dist/esm/httpEndpoint.js.map +1 -0
  146. package/dist/esm/index.d.ts +23 -0
  147. package/dist/esm/index.js +35 -0
  148. package/dist/esm/index.js.map +1 -0
  149. package/dist/esm/integrations.d.ts +11 -0
  150. package/dist/esm/integrations.js +2 -0
  151. package/dist/esm/integrations.js.map +1 -0
  152. package/dist/esm/io.d.ts +453 -0
  153. package/dist/esm/io.js +1159 -0
  154. package/dist/esm/io.js.map +1 -0
  155. package/dist/esm/ioWithIntegrations.d.ts +4 -0
  156. package/dist/esm/ioWithIntegrations.js +29 -0
  157. package/dist/esm/ioWithIntegrations.js.map +1 -0
  158. package/dist/esm/job.d.ts +96 -0
  159. package/dist/esm/job.js +206 -0
  160. package/dist/esm/job.js.map +1 -0
  161. package/dist/esm/package.json +3 -0
  162. package/dist/esm/retry.d.ts +20 -0
  163. package/dist/esm/retry.js +19 -0
  164. package/dist/esm/retry.js.map +1 -0
  165. package/dist/esm/runLocalStorage.d.ts +8 -0
  166. package/dist/esm/runLocalStorage.js +3 -0
  167. package/dist/esm/runLocalStorage.js.map +1 -0
  168. package/dist/esm/security.d.ts +18 -0
  169. package/dist/esm/security.js +34 -0
  170. package/dist/esm/security.js.map +1 -0
  171. package/dist/esm/status.d.ts +19 -0
  172. package/dist/esm/status.js +34 -0
  173. package/dist/esm/status.js.map +1 -0
  174. package/dist/esm/store/keyValueStore.d.ts +17 -0
  175. package/dist/esm/store/keyValueStore.js +134 -0
  176. package/dist/esm/store/keyValueStore.js.map +1 -0
  177. package/dist/esm/store/keyValueStoreClient.d.ts +19 -0
  178. package/dist/esm/store/keyValueStoreClient.js +61 -0
  179. package/dist/esm/store/keyValueStoreClient.js.map +1 -0
  180. package/dist/esm/triggerClient.d.ts +300 -0
  181. package/dist/esm/triggerClient.js +1359 -0
  182. package/dist/esm/triggerClient.js.map +1 -0
  183. package/dist/esm/triggers/dynamic.d.ts +56 -0
  184. package/dist/esm/triggers/dynamic.js +93 -0
  185. package/dist/esm/triggers/dynamic.js.map +1 -0
  186. package/dist/esm/triggers/eventTrigger.d.ts +58 -0
  187. package/dist/esm/triggers/eventTrigger.js +64 -0
  188. package/dist/esm/triggers/eventTrigger.js.map +1 -0
  189. package/dist/esm/triggers/externalSource.d.ts +148 -0
  190. package/dist/esm/triggers/externalSource.js +100 -0
  191. package/dist/esm/triggers/externalSource.js.map +1 -0
  192. package/dist/esm/triggers/invokeTrigger.d.ts +39 -0
  193. package/dist/esm/triggers/invokeTrigger.js +53 -0
  194. package/dist/esm/triggers/invokeTrigger.js.map +1 -0
  195. package/dist/esm/triggers/notifications.d.ts +111 -0
  196. package/dist/esm/triggers/notifications.js +94 -0
  197. package/dist/esm/triggers/notifications.js.map +1 -0
  198. package/dist/esm/triggers/scheduled.d.ts +145 -0
  199. package/dist/esm/triggers/scheduled.js +197 -0
  200. package/dist/esm/triggers/scheduled.js.map +1 -0
  201. package/dist/esm/triggers/webhook.d.ts +143 -0
  202. package/dist/esm/triggers/webhook.js +128 -0
  203. package/dist/esm/triggers/webhook.js.map +1 -0
  204. package/dist/esm/typed-emitter.d.ts +37 -0
  205. package/dist/esm/typed-emitter.js +2 -0
  206. package/dist/esm/typed-emitter.js.map +1 -0
  207. package/dist/esm/types.d.ts +204 -0
  208. package/dist/esm/types.js +19 -0
  209. package/dist/esm/types.js.map +1 -0
  210. package/dist/esm/utils/formatSchemaErrors.d.ts +3 -0
  211. package/dist/esm/utils/formatSchemaErrors.js +7 -0
  212. package/dist/esm/utils/formatSchemaErrors.js.map +1 -0
  213. package/dist/esm/utils/typedAsyncLocalStorage.d.ts +6 -0
  214. package/dist/esm/utils/typedAsyncLocalStorage.js +14 -0
  215. package/dist/esm/utils/typedAsyncLocalStorage.js.map +1 -0
  216. package/dist/esm/utils.d.ts +1 -0
  217. package/dist/esm/utils.js +8 -0
  218. package/dist/esm/utils.js.map +1 -0
  219. package/dist/esm/v3/cache.d.ts +28 -0
  220. package/dist/esm/v3/cache.js +58 -0
  221. package/dist/esm/v3/cache.js.map +1 -0
  222. package/dist/esm/v3/config.d.ts +4 -0
  223. package/dist/esm/v3/config.js +4 -0
  224. package/dist/esm/v3/config.js.map +1 -0
  225. package/dist/esm/v3/envvars.d.ts +14 -0
  226. package/dist/esm/v3/envvars.js +238 -0
  227. package/dist/esm/v3/envvars.js.map +1 -0
  228. package/dist/esm/v3/idempotencyKeys.d.ts +49 -0
  229. package/dist/esm/v3/idempotencyKeys.js +72 -0
  230. package/dist/esm/v3/idempotencyKeys.js.map +1 -0
  231. package/dist/esm/v3/index.d.ts +36 -0
  232. package/dist/esm/v3/index.js +35 -0
  233. package/dist/esm/v3/index.js.map +1 -0
  234. package/dist/esm/v3/retry.d.ts +15 -0
  235. package/dist/esm/v3/retry.js +408 -0
  236. package/dist/esm/v3/retry.js.map +1 -0
  237. package/dist/esm/v3/runs.d.ts +345 -0
  238. package/dist/esm/v3/runs.js +192 -0
  239. package/dist/esm/v3/runs.js.map +1 -0
  240. package/dist/esm/v3/schedules/api.d.ts +1 -0
  241. package/dist/esm/v3/schedules/api.js +2 -0
  242. package/dist/esm/v3/schedules/api.js.map +1 -0
  243. package/dist/esm/v3/schedules/index.d.ts +87 -0
  244. package/dist/esm/v3/schedules/index.js +239 -0
  245. package/dist/esm/v3/schedules/index.js.map +1 -0
  246. package/dist/esm/v3/shared.d.ts +443 -0
  247. package/dist/esm/v3/shared.js +534 -0
  248. package/dist/esm/v3/shared.js.map +1 -0
  249. package/dist/esm/v3/tags.d.ts +6 -0
  250. package/dist/esm/v3/tags.js +47 -0
  251. package/dist/esm/v3/tags.js.map +1 -0
  252. package/dist/esm/v3/tasks.d.ts +31 -0
  253. package/dist/esm/v3/tasks.js +31 -0
  254. package/dist/esm/v3/tasks.js.map +1 -0
  255. package/dist/esm/v3/tracer.d.ts +2 -0
  256. package/dist/esm/v3/tracer.js +4 -0
  257. package/dist/esm/v3/tracer.js.map +1 -0
  258. package/dist/esm/v3/usage.d.ts +77 -0
  259. package/dist/esm/v3/usage.js +112 -0
  260. package/dist/esm/v3/usage.js.map +1 -0
  261. package/dist/esm/v3/wait.d.ts +22 -0
  262. package/dist/esm/v3/wait.js +96 -0
  263. package/dist/esm/v3/wait.js.map +1 -0
  264. package/dist/esm/version.d.ts +1 -0
  265. package/dist/esm/version.js +2 -0
  266. package/dist/esm/version.js.map +1 -0
  267. package/package.json +62 -47
  268. package/dist/index.d.mts +0 -2704
  269. package/dist/index.d.ts +0 -2704
  270. package/dist/index.js +0 -4886
  271. package/dist/index.js.map +0 -1
  272. package/dist/index.mjs +0 -4847
  273. package/dist/index.mjs.map +0 -1
  274. package/dist/v3/index.d.mts +0 -261
  275. package/dist/v3/index.d.ts +0 -261
  276. package/dist/v3/index.js +0 -921
  277. package/dist/v3/index.js.map +0 -1
  278. package/dist/v3/index.mjs +0 -911
  279. package/dist/v3/index.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/v3/shared.ts","../../package.json","../../src/v3/tracer.ts","../../src/v3/tasks.ts","../../src/v3/wait.ts","../../src/v3/cache.ts","../../src/v3/retry.ts","../../src/v3/index.ts","../../src/v3/management.ts"],"names":["SpanKind","SEMATTRS_MESSAGING_DESTINATION","SEMATTRS_MESSAGING_OPERATION","SEMATTRS_MESSAGING_SYSTEM","SemanticInternalAttributes","accessoryAttributes","apiClientManager","conditionallyImportPacket","createErrorTaskError","defaultRetryOptions","parsePacket","runtime","taskContextManager","TriggerTracer","tracer","name","version","createTask","params","task","trigger","payload","options","apiClient","client","apiClientMissingError","taskMetadata","getTaskMetadata","id","handle","startActiveSpan","span","response","triggerTask","queue","concurrencyKey","test","ctx","run","isTest","spanParentAsLink","ok","Error","error","setAttribute","data","kind","PRODUCER","attributes","STYLE_ICON","worker","JSON","stringify","length","items","text","exportName","variant","style","batchTrigger","batchTriggerTask","map","item","batchId","join","triggerAndWait","dependentAttempt","attempt","lockToVersion","result","waitForTask","runResult","handleTaskRunExecutionResult","output","batchTriggerAndWait","waitForBatch","runs","handleBatchTaskRunExecutionResult","Object","defineProperty","value","packageVersion","retry","undefined","machine","fns","init","cleanup","middleware","handleError","enumerable","someObjectStoreOutputs","some","outputType","results","Promise","all","INTERNAL","execution","outputPacket","dataType","importedPacket","hasBaseUrl","baseURL","hasAccessToken","accessToken","wait","for","start","Date","now","durationInMs","calculateDurationInMs","waitForDuration","nameForWaitOptions","until","throwIfInThePast","date","getTime","toISOString","seconds","minutes","hours","days","weeks","months","years","InMemoryCache","_cache","Map","get","key","set","delete","createCache","store","cache","cacheKey","fn","cacheEntry","updateName","metadata","createdTime","SpanStatusCode","context","trace","SEMATTRS_HTTP_HOST","SEMATTRS_HTTP_METHOD","SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH","SEMATTRS_HTTP_SCHEME","SEMATTRS_HTTP_STATUS_CODE","SEMATTRS_HTTP_URL","calculateNextRetryDelay","calculateResetAt","eventFilterMatches","flattenAttributes","defaultFetchRetryOptions","AsyncLocalStorage","onThrow","opts","maxAttempts","innerSpan","startSpan","contextWithSpanSet","setSpan","active","with","end","e","recordException","String","setStatus","code","ERROR","nextRetryDelay","RETRY_AT","RETRY_COUNT","RETRY_DELAY","normalizeUrlFromInput","input","URL","url","normalizeHttpMethod","method","toUpperCase","fetchHttpHandlerStorage","fetchWithInterceptors","handlers","getStore","getResponse","request","Request","fetch","FetchErrorWithSpan","constructor","originalError","MAX_ATTEMPTS","retryFetch","abortController","AbortController","timeoutId","timeoutInMs","setTimeout","abort","signal","addEventListener","doFetchRequest","clearTimeout","setAttributes","createFetchResponseAttributes","nextRetry","calculateRetryDelayForResponse","resolveDefaults","byStatus","type","nextRetryDate","isInFuture","waitUntil","timeout","cause","connectionError","createFetchAttributes","createFetchRetryOptionsAttributes","attemptCount","httpMethod","headers","toString","status","statusText","message","strategy","getRetryStrategyForResponse","resetAt","resetHeader","resetTimestamp","resetFormat","statusCodes","keys","clonedResponse","clone","i","statusRange","isStatusCodeInRange","bodyFilter","body","safeJsonParse","statusCode","includes","split","s","trim","parseInt","endsWith","prefix","slice","statusCodePrefix","Math","floor","statusCodeString","rangePrefix","startsWith","createAttributesFromHeaders","normalizedHeaderKey","toLowerCase","forEach","json","parse","interceptFetch","current","push","obj","defaults","href","hostname","port","protocol","replace","logger","replay","replayRun","cancel","cancelRun","runId"],"mappings":"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","sourcesContent":["import { SpanKind } from \"@opentelemetry/api\";\nimport {\n SEMATTRS_MESSAGING_DESTINATION,\n SEMATTRS_MESSAGING_OPERATION,\n SEMATTRS_MESSAGING_SYSTEM,\n} from \"@opentelemetry/semantic-conventions\";\nimport {\n HandleErrorFnParams,\n HandleErrorResult,\n InitFnParams,\n InitOutput,\n MachineCpu,\n MachineMemory,\n MiddlewareFnParams,\n QueueOptions,\n RetryOptions,\n RunFnParams,\n SemanticInternalAttributes,\n SuccessFnParams,\n TaskRunContext,\n TaskRunExecutionResult,\n accessoryAttributes,\n apiClientManager,\n conditionallyImportPacket,\n createErrorTaskError,\n defaultRetryOptions,\n parsePacket,\n runtime,\n taskContextManager,\n} from \"@trigger.dev/core/v3\";\nimport * as packageJson from \"../../package.json\";\nimport { tracer } from \"./tracer\";\n\nexport type Context = TaskRunContext;\n\ntype RequireOne<T, K extends keyof T> = {\n [X in Exclude<keyof T, K>]?: T[X];\n} & {\n [P in K]-?: T[P];\n};\n\nexport type Queue = RequireOne<QueueOptions, \"name\">;\n\nexport function queue(options: { name: string } & QueueOptions): Queue {\n return options;\n}\n\nexport type TaskOptions<TPayload, TOutput = any, TInitOutput extends InitOutput = any> = {\n /** An id for your task. This must be unique inside your project and not change between versions. */\n id: string;\n /** The retry settings when an uncaught error is thrown.\n *\n * If omitted it will use the values in your `trigger.config.ts` file.\n * \n * @example\n * \n * ```\n * export const taskWithRetries = task({\n id: \"task-with-retries\",\n retry: {\n maxAttempts: 10,\n factor: 1.8,\n minTimeoutInMs: 500,\n maxTimeoutInMs: 30_000,\n randomize: false,\n },\n run: async ({ payload, ctx }) => {\n //...\n },\n });\n * ```\n * */\n retry?: RetryOptions;\n /** Used to configure what should happen when more than one run is triggered at the same time.\n * \n * @example \n * one at a time execution\n * \n * ```ts\n * export const oneAtATime = task({\n id: \"one-at-a-time\",\n queue: {\n concurrencyLimit: 1,\n },\n run: async ({ payload, ctx }) => {\n //...\n },\n });\n * ```\n */\n queue?: QueueOptions;\n /** Configure the spec of the machine you want your task to run on.\n * \n * @example\n * \n * ```ts\n * export const heavyTask = task({\n id: \"heavy-task\",\n machine: {\n cpu: 2,\n memory: 4,\n },\n run: async ({ payload, ctx }) => {\n //...\n },\n });\n * ```\n */\n machine?: {\n /** vCPUs. The default is 0.5.\n *\n * Possible values:\n * - 0.25\n * - 0.5\n * - 1\n * - 2\n * - 4\n */\n cpu?: MachineCpu;\n /** In GBs of RAM. The default is 1.\n *\n * Possible values:\n * - 0.25\n * - 0.5\n * - 1\n * - 2\n * - 4\n * - 8\n */\n memory?: MachineMemory;\n };\n /** This gets called when a task is triggered. It's where you put the code you want to execute.\n *\n * @param payload - The payload that is passed to your task when it's triggered. This must be JSON serializable.\n * @param params - Metadata about the run.\n */\n run: (payload: TPayload, params: RunFnParams<TInitOutput>) => Promise<TOutput>;\n init?: (payload: TPayload, params: InitFnParams) => Promise<TInitOutput>;\n handleError?: (\n payload: TPayload,\n error: unknown,\n params: HandleErrorFnParams<TInitOutput>\n ) => HandleErrorResult;\n cleanup?: (payload: TPayload, params: RunFnParams<TInitOutput>) => Promise<void>;\n middleware?: (payload: TPayload, params: MiddlewareFnParams) => Promise<void>;\n onSuccess?: (payload: TPayload, params: SuccessFnParams<TOutput, TInitOutput>) => Promise<void>;\n};\n\ntype InvokeHandle = {\n id: string;\n};\n\ntype InvokeBatchHandle = {\n batchId: string;\n runs: string[];\n};\n\nexport type TaskRunResult<TOutput = any> =\n | {\n ok: true;\n id: string;\n output: TOutput;\n }\n | {\n ok: false;\n id: string;\n error: any;\n };\n\nexport type BatchResult<TOutput = any> = {\n id: string;\n runs: TaskRunResult<TOutput>[];\n};\n\nexport type Task<TInput, TOutput = any> = {\n trigger: (params: { payload: TInput; options?: TaskRunOptions }) => Promise<InvokeHandle>;\n batchTrigger: (params: {\n items: { payload: TInput; options?: TaskRunOptions }[];\n batchOptions?: BatchRunOptions;\n }) => Promise<InvokeBatchHandle>;\n triggerAndWait: (params: { payload: TInput; options?: TaskRunOptions }) => Promise<TOutput>;\n batchTriggerAndWait: (params: {\n items: { payload: TInput; options?: TaskRunOptions }[];\n batchOptions?: BatchRunOptions;\n }) => Promise<BatchResult<TOutput>>;\n};\n\ntype TaskRunOptions = {\n idempotencyKey?: string;\n maxAttempts?: number;\n startAt?: Date;\n startAfter?: number;\n queue?: TaskRunConcurrencyOptions;\n concurrencyKey?: string;\n};\n\ntype TaskRunConcurrencyOptions = Queue;\n\ntype BatchRunOptions = TaskRunOptions & {\n maxConcurrency?: number;\n};\n\nexport type Prettify<T> = {\n [K in keyof T]: T[K];\n} & {};\n\nexport type DynamicBaseOptions = {\n id: string;\n};\n\nexport function createTask<TInput, TOutput, TInitOutput extends InitOutput>(\n params: TaskOptions<TInput, TOutput, TInitOutput>\n): Task<TInput, TOutput> {\n const task: Task<TInput, TOutput> = {\n trigger: async ({ payload, options }) => {\n const apiClient = apiClientManager.client;\n\n if (!apiClient) {\n throw apiClientMissingError();\n }\n\n const taskMetadata = runtime.getTaskMetadata(params.id);\n\n const handle = await tracer.startActiveSpan(\n taskMetadata ? \"Trigger\" : `${params.id} trigger()`,\n async (span) => {\n const response = await apiClient.triggerTask(\n params.id,\n {\n payload: payload,\n options: {\n queue: params.queue,\n concurrencyKey: options?.concurrencyKey,\n test: taskContextManager.ctx?.run.isTest,\n },\n },\n { spanParentAsLink: true }\n );\n\n if (!response.ok) {\n throw new Error(response.error);\n }\n\n span.setAttribute(\"messaging.message.id\", response.data.id);\n\n return response.data;\n },\n {\n kind: SpanKind.PRODUCER,\n attributes: {\n [SEMATTRS_MESSAGING_OPERATION]: \"publish\",\n [SemanticInternalAttributes.STYLE_ICON]: \"trigger\",\n [\"messaging.client_id\"]: taskContextManager.worker?.id,\n [SEMATTRS_MESSAGING_DESTINATION]: params.queue?.name ?? params.id,\n [\"messaging.message.body.size\"]: JSON.stringify(payload).length,\n [SEMATTRS_MESSAGING_SYSTEM]: \"trigger.dev\",\n ...(taskMetadata\n ? accessoryAttributes({\n items: [\n {\n text: `${taskMetadata.exportName}.trigger()`,\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n })\n : {}),\n },\n }\n );\n\n return handle;\n },\n batchTrigger: async ({ items }) => {\n const apiClient = apiClientManager.client;\n\n if (!apiClient) {\n throw apiClientMissingError();\n }\n\n const taskMetadata = runtime.getTaskMetadata(params.id);\n\n const response = await tracer.startActiveSpan(\n taskMetadata ? \"Batch trigger\" : `${params.id} batchTrigger()`,\n async (span) => {\n const response = await apiClient.batchTriggerTask(\n params.id,\n {\n items: items.map((item) => ({\n payload: item.payload,\n options: {\n queue: item.options?.queue ?? params.queue,\n concurrencyKey: item.options?.concurrencyKey,\n test: taskContextManager.ctx?.run.isTest,\n },\n })),\n },\n { spanParentAsLink: true }\n );\n\n if (!response.ok) {\n throw new Error(response.error);\n }\n\n span.setAttribute(\"messaging.message.id\", response.data.batchId);\n\n return response.data;\n },\n {\n kind: SpanKind.PRODUCER,\n attributes: {\n [SEMATTRS_MESSAGING_OPERATION]: \"publish\",\n [\"messaging.batch.message_count\"]: items.length,\n [\"messaging.client_id\"]: taskContextManager.worker?.id,\n [SEMATTRS_MESSAGING_DESTINATION]: params.queue?.name ?? params.id,\n [\"messaging.message.body.size\"]: items\n .map((item) => JSON.stringify(item.payload))\n .join(\"\").length,\n [SEMATTRS_MESSAGING_SYSTEM]: \"trigger.dev\",\n [SemanticInternalAttributes.STYLE_ICON]: \"trigger\",\n ...(taskMetadata\n ? accessoryAttributes({\n items: [\n {\n text: `${taskMetadata.exportName}.batchTrigger()`,\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n })\n : {}),\n },\n }\n );\n\n return response;\n },\n triggerAndWait: async ({ payload, options }) => {\n const ctx = taskContextManager.ctx;\n\n if (!ctx) {\n throw new Error(\"triggerAndWait can only be used from inside a task.run()\");\n }\n\n const apiClient = apiClientManager.client;\n\n if (!apiClient) {\n throw apiClientMissingError();\n }\n\n const taskMetadata = runtime.getTaskMetadata(params.id);\n\n return await tracer.startActiveSpan(\n taskMetadata ? \"Trigger\" : `${params.id} triggerAndWait()`,\n async (span) => {\n const response = await apiClient.triggerTask(params.id, {\n payload,\n options: {\n dependentAttempt: ctx.attempt.id,\n lockToVersion: taskContextManager.worker?.version, // Lock to current version because we're waiting for it to finish\n queue: params.queue,\n concurrencyKey: options?.concurrencyKey,\n test: taskContextManager.ctx?.run.isTest,\n },\n });\n\n if (!response.ok) {\n throw new Error(response.error);\n }\n\n span.setAttribute(\"messaging.message.id\", response.data.id);\n\n const result = await runtime.waitForTask({\n id: response.data.id,\n ctx,\n });\n\n const runResult = await handleTaskRunExecutionResult<TOutput>(result);\n\n if (!runResult.ok) {\n throw runResult.error;\n }\n\n return runResult.output;\n },\n {\n kind: SpanKind.PRODUCER,\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"trigger\",\n [SEMATTRS_MESSAGING_OPERATION]: \"publish\",\n [\"messaging.client_id\"]: taskContextManager.worker?.id,\n [SEMATTRS_MESSAGING_DESTINATION]: params.queue?.name ?? params.id,\n [SEMATTRS_MESSAGING_SYSTEM]: \"trigger.dev\",\n ...(taskMetadata\n ? accessoryAttributes({\n items: [\n {\n text: `${taskMetadata.exportName}.triggerAndWait()`,\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n })\n : {}),\n },\n }\n );\n },\n batchTriggerAndWait: async ({ items }) => {\n const ctx = taskContextManager.ctx;\n\n if (!ctx) {\n throw new Error(\"batchTriggerAndWait can only be used from inside a task.run()\");\n }\n\n const apiClient = apiClientManager.client;\n\n if (!apiClient) {\n throw apiClientMissingError();\n }\n\n const taskMetadata = runtime.getTaskMetadata(params.id);\n\n return await tracer.startActiveSpan(\n taskMetadata ? \"Batch trigger\" : `${params.id} batchTriggerAndWait()`,\n async (span) => {\n const response = await apiClient.batchTriggerTask(params.id, {\n items: items.map((item) => ({\n payload: item.payload,\n options: {\n lockToVersion: taskContextManager.worker?.version,\n queue: item.options?.queue ?? params.queue,\n concurrencyKey: item.options?.concurrencyKey,\n test: taskContextManager.ctx?.run.isTest,\n },\n })),\n dependentAttempt: ctx.attempt.id,\n });\n\n if (!response.ok) {\n throw new Error(response.error);\n }\n\n span.setAttribute(\"messaging.message.id\", response.data.batchId);\n\n const result = await runtime.waitForBatch({\n id: response.data.batchId,\n runs: response.data.runs,\n ctx,\n });\n\n const runs = await handleBatchTaskRunExecutionResult<TOutput>(result.items);\n\n return {\n id: result.id,\n runs,\n };\n },\n {\n kind: SpanKind.PRODUCER,\n attributes: {\n [SEMATTRS_MESSAGING_OPERATION]: \"publish\",\n [\"messaging.batch.message_count\"]: items.length,\n [\"messaging.client_id\"]: taskContextManager.worker?.id,\n [SEMATTRS_MESSAGING_DESTINATION]: params.queue?.name ?? params.id,\n [\"messaging.message.body.size\"]: items\n .map((item) => JSON.stringify(item.payload))\n .join(\"\").length,\n [SEMATTRS_MESSAGING_SYSTEM]: \"trigger.dev\",\n [SemanticInternalAttributes.STYLE_ICON]: \"trigger\",\n ...(taskMetadata\n ? accessoryAttributes({\n items: [\n {\n text: `${taskMetadata.exportName}.batchTriggerAndWait()`,\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n })\n : {}),\n },\n }\n );\n },\n };\n\n Object.defineProperty(task, \"__trigger\", {\n value: {\n id: params.id,\n packageVersion: packageJson.version,\n queue: params.queue,\n retry: params.retry ? { ...defaultRetryOptions, ...params.retry } : undefined,\n machine: params.machine,\n fns: {\n run: params.run,\n init: params.init,\n cleanup: params.cleanup,\n middleware: params.middleware,\n handleError: params.handleError,\n },\n },\n enumerable: false,\n });\n\n return task;\n}\n\nasync function handleBatchTaskRunExecutionResult<TOutput>(\n items: Array<TaskRunExecutionResult>\n): Promise<Array<TaskRunResult<TOutput>>> {\n const someObjectStoreOutputs = items.some(\n (item) => item.ok && item.outputType === \"application/store\"\n );\n\n if (!someObjectStoreOutputs) {\n const results = await Promise.all(\n items.map(async (item) => {\n return await handleTaskRunExecutionResult<TOutput>(item);\n })\n );\n\n return results;\n }\n\n return await tracer.startActiveSpan(\n \"store.downloadPayloads\",\n async (span) => {\n const results = await Promise.all(\n items.map(async (item) => {\n return await handleTaskRunExecutionResult<TOutput>(item);\n })\n );\n\n return results;\n },\n {\n kind: SpanKind.INTERNAL,\n [SemanticInternalAttributes.STYLE_ICON]: \"cloud-download\",\n }\n );\n}\n\nasync function handleTaskRunExecutionResult<TOutput>(\n execution: TaskRunExecutionResult\n): Promise<TaskRunResult<TOutput>> {\n if (execution.ok) {\n const outputPacket = { data: execution.output, dataType: execution.outputType };\n const importedPacket = await conditionallyImportPacket(outputPacket, tracer);\n\n return {\n ok: true,\n id: execution.id,\n output: await parsePacket(importedPacket),\n };\n } else {\n return {\n ok: false,\n id: execution.id,\n error: createErrorTaskError(execution.error),\n };\n }\n}\n\nexport function apiClientMissingError() {\n const hasBaseUrl = !!apiClientManager.baseURL;\n const hasAccessToken = !!apiClientManager.accessToken;\n if (!hasBaseUrl && !hasAccessToken) {\n return `You need to set the TRIGGER_API_URL and TRIGGER_SECRET_KEY environment variables.`;\n } else if (!hasBaseUrl) {\n return `You need to set the TRIGGER_API_URL environment variable.`;\n } else if (!hasAccessToken) {\n return `You need to set the TRIGGER_SECRET_KEY environment variable.`;\n }\n\n return `Unknown error`;\n}\n","{\n \"name\": \"@trigger.dev/sdk\",\n \"version\": \"3.0.0-beta.7\",\n \"description\": \"trigger.dev Node.JS SDK\",\n \"license\": \"MIT\",\n \"main\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"module\": \"./dist/index.mjs\",\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"files\": [\n \"dist\"\n ],\n \"exports\": {\n \".\": {\n \"import\": {\n \"types\": \"./dist/index.d.mts\",\n \"default\": \"./dist/index.mjs\"\n },\n \"require\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\"\n },\n \"./v3\": {\n \"import\": {\n \"types\": \"./dist/v3/index.d.mts\",\n \"default\": \"./dist/v3/index.mjs\"\n },\n \"require\": \"./dist/v3/index.js\",\n \"types\": \"./dist/v3/index.d.ts\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"typesVersions\": {\n \"*\": {\n \"v3\": [\n \"./dist/v3/index.d.ts\"\n ]\n }\n },\n \"scripts\": {\n \"clean\": \"rimraf dist\",\n \"build\": \"npm run clean && npm run build:tsup\",\n \"build:tsup\": \"tsup --dts-resolve\",\n \"typecheck\": \"tsc --noEmit\"\n },\n \"dependencies\": {\n \"@opentelemetry/api\": \"^1.8.0\",\n \"@opentelemetry/api-logs\": \"^0.48.0\",\n \"@opentelemetry/semantic-conventions\": \"^1.22.0\",\n \"@trigger.dev/core\": \"workspace:^3.0.0-beta.7\",\n \"@trigger.dev/core-backend\": \"workspace:^3.0.0-beta.7\",\n \"chalk\": \"^5.2.0\",\n \"cronstrue\": \"^2.21.0\",\n \"debug\": \"^4.3.4\",\n \"evt\": \"^2.4.13\",\n \"get-caller-file\": \"^2.0.5\",\n \"git-remote-origin-url\": \"^4.0.0\",\n \"git-repo-info\": \"^2.1.1\",\n \"slug\": \"^6.0.0\",\n \"terminal-link\": \"^3.0.0\",\n \"ulid\": \"^2.3.0\",\n \"uuid\": \"^9.0.0\",\n \"ws\": \"^8.11.0\",\n \"zod\": \"3.22.3\"\n },\n \"devDependencies\": {\n \"@trigger.dev/tsconfig\": \"workspace:*\",\n \"@trigger.dev/tsup\": \"workspace:*\",\n \"@types/debug\": \"^4.1.7\",\n \"@types/node\": \"18\",\n \"@types/slug\": \"^5.0.3\",\n \"@types/uuid\": \"^9.0.0\",\n \"@types/ws\": \"^8.5.3\",\n \"encoding\": \"^0.1.13\",\n \"msw\": \"^2.2.1\",\n \"rimraf\": \"^3.0.2\",\n \"tsup\": \"^8.0.1\",\n \"typed-emitter\": \"^2.1.0\",\n \"typescript\": \"^5.3.0\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.2.1\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n }\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n }\n}","import { TriggerTracer } from \"@trigger.dev/core/v3\";\nimport * as packageJson from \"../../package.json\";\n\nexport const tracer = new TriggerTracer({ name: \"@trigger.dev/sdk\", version: packageJson.version });\n","import { InitOutput } from \"@trigger.dev/core/v3\";\nimport { TaskOptions, Task, createTask } from \"./shared\";\n\n/** Creates a task that can be triggered\n * @param options - Task options\n * @example \n * \n * ```ts\n * import { task } from \"@trigger.dev/sdk/v3\";\n *\n * export const helloWorld = task({\n id: \"hello-world\",\n * run: async (payload: { url: string }) => {\n * return { hello: \"world\" };\n * },\n * });\n *\n * ```\n * \n * @returns A task that can be triggered\n */\nexport function task<TInput, TOutput = any, TInitOutput extends InitOutput = any>(\n options: TaskOptions<TInput, TOutput, TInitOutput>\n): Task<TInput, TOutput> {\n return createTask<TInput, TOutput, TInitOutput>(options);\n}\n","import { SemanticInternalAttributes, accessoryAttributes, runtime } from \"@trigger.dev/core/v3\";\nimport { tracer } from \"./tracer\";\n\nexport type WaitOptions =\n | {\n seconds: number;\n }\n | {\n minutes: number;\n }\n | {\n hours: number;\n }\n | {\n days: number;\n }\n | {\n weeks: number;\n }\n | {\n months: number;\n }\n | {\n years: number;\n };\n\nexport const wait = {\n for: async (options: WaitOptions) => {\n return tracer.startActiveSpan(\n `wait.for()`,\n async (span) => {\n const start = Date.now();\n const durationInMs = calculateDurationInMs(options);\n\n await runtime.waitForDuration(durationInMs);\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"wait\",\n ...accessoryAttributes({\n items: [\n {\n text: nameForWaitOptions(options),\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n }),\n },\n }\n );\n },\n until: async (options: { date: Date; throwIfInThePast?: boolean }) => {\n return tracer.startActiveSpan(\n `wait.until()`,\n async (span) => {\n const start = Date.now();\n\n if (options.throwIfInThePast && options.date < new Date()) {\n throw new Error(\"Date is in the past\");\n }\n\n const durationInMs = options.date.getTime() - start;\n\n await runtime.waitForDuration(durationInMs);\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"wait\",\n ...accessoryAttributes({\n items: [\n {\n text: options.date.toISOString(),\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n }),\n },\n }\n );\n },\n};\n\nfunction nameForWaitOptions(options: WaitOptions): string {\n if (\"seconds\" in options) {\n return options.seconds === 1 ? `1 second` : `${options.seconds} seconds`;\n }\n\n if (\"minutes\" in options) {\n return options.minutes === 1 ? `1 minute` : `${options.minutes} minutes`;\n }\n\n if (\"hours\" in options) {\n return options.hours === 1 ? `1 hour` : `${options.hours} hours`;\n }\n\n if (\"days\" in options) {\n return options.days === 1 ? `1 day` : `${options.days} days`;\n }\n\n if (\"weeks\" in options) {\n return options.weeks === 1 ? `1 week` : `${options.weeks} weeks`;\n }\n\n if (\"months\" in options) {\n return options.months === 1 ? `1 month` : `${options.months} months`;\n }\n\n if (\"years\" in options) {\n return options.years === 1 ? `1 year` : `${options.years} years`;\n }\n\n return \"NaN\";\n}\n\nfunction calculateDurationInMs(options: WaitOptions): number {\n if (\"seconds\" in options) {\n return options.seconds * 1000;\n }\n\n if (\"minutes\" in options) {\n return options.minutes * 1000 * 60;\n }\n\n if (\"hours\" in options) {\n return options.hours * 1000 * 60 * 60;\n }\n\n if (\"days\" in options) {\n return options.days * 1000 * 60 * 60 * 24;\n }\n\n if (\"weeks\" in options) {\n return options.weeks * 1000 * 60 * 60 * 24 * 7;\n }\n\n if (\"months\" in options) {\n return options.months * 1000 * 60 * 60 * 24 * 30;\n }\n\n if (\"years\" in options) {\n return options.years * 1000 * 60 * 60 * 24 * 365;\n }\n\n throw new Error(\"Invalid options\");\n}\n\ntype RequestOptions = {\n to: (url: string) => Promise<void>;\n timeout: WaitOptions;\n};\n","import { SemanticInternalAttributes } from \"@trigger.dev/core/v3\";\nimport { tracer } from \"./tracer\";\n\nexport type CacheMetadata = {\n createdTime: number;\n ttl?: number | null;\n};\n\nexport type CacheEntry<Value = unknown> = {\n metadata: CacheMetadata;\n value: Value;\n};\n\nexport type Eventually<Value> = Value | null | undefined | Promise<Value | null | undefined>;\n\nexport type CacheStore<Value = any> = {\n name?: string;\n get: (key: string) => Eventually<CacheEntry<Value>>;\n set: (key: string, value: CacheEntry<Value>) => unknown | Promise<unknown>;\n delete: (key: string) => unknown | Promise<unknown>;\n};\n\nexport type CacheFunction = <Value>(\n cacheKey: string,\n fn: () => Promise<Value> | Value\n) => Promise<Value> | Value;\n\nexport class InMemoryCache<Value = any> {\n private _cache: Map<string, CacheEntry<Value>> = new Map();\n\n get(key: string): Eventually<CacheEntry<Value>> {\n return this._cache.get(key);\n }\n\n set(key: string, value: CacheEntry<Value>): unknown {\n this._cache.set(key, value);\n\n return undefined;\n }\n\n delete(key: string): unknown {\n this._cache.delete(key);\n\n return undefined;\n }\n}\n\n/**\n * Create a cache function that uses the provided store to cache values. Using InMemoryCache is safe because each task run is isolated.\n * @param store\n * @returns\n */\nexport function createCache(store: CacheStore): CacheFunction {\n return function cache<Value>(\n cacheKey: string,\n fn: () => Promise<Value> | Value\n ): Promise<Value> | Value {\n return tracer.startActiveSpan(\"cache\", async (span) => {\n span.setAttribute(\"cache.key\", cacheKey);\n span.setAttribute(SemanticInternalAttributes.STYLE_ICON, \"device-sd-card\");\n\n const cacheEntry = await store.get(cacheKey);\n\n if (cacheEntry) {\n span.updateName(`cache.hit ${cacheKey}`);\n\n return cacheEntry.value;\n }\n\n span.updateName(`cache.miss ${cacheKey}`);\n\n const value = await tracer.startActiveSpan(\n \"cache.getFreshValue\",\n async (span) => {\n return await fn();\n },\n {\n attributes: {\n \"cache.key\": cacheKey,\n [SemanticInternalAttributes.STYLE_ICON]: \"device-sd-card\",\n },\n }\n );\n\n await tracer.startActiveSpan(\n \"cache.set\",\n async (span) => {\n await store.set(cacheKey, {\n value,\n metadata: {\n createdTime: Date.now(),\n },\n });\n },\n {\n attributes: {\n \"cache.key\": cacheKey,\n [SemanticInternalAttributes.STYLE_ICON]: \"device-sd-card\",\n },\n }\n );\n\n return value;\n });\n };\n}\n","import { Attributes, Span, SpanStatusCode, context, trace } from \"@opentelemetry/api\";\nimport {\n SEMATTRS_HTTP_HOST,\n SEMATTRS_HTTP_METHOD,\n SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH,\n SEMATTRS_HTTP_SCHEME,\n SEMATTRS_HTTP_STATUS_CODE,\n SEMATTRS_HTTP_URL,\n} from \"@opentelemetry/semantic-conventions\";\nimport {\n FetchRetryByStatusOptions,\n FetchRetryOptions,\n FetchRetryStrategy,\n RetryOptions,\n SemanticInternalAttributes,\n accessoryAttributes,\n calculateNextRetryDelay,\n calculateResetAt,\n defaultRetryOptions,\n eventFilterMatches,\n flattenAttributes,\n runtime,\n} from \"@trigger.dev/core/v3\";\nimport { defaultFetchRetryOptions } from \"@trigger.dev/core/v3\";\nimport type { HttpHandler } from \"msw\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { tracer } from \"./tracer\";\n\nexport type { RetryOptions };\n\nfunction onThrow<T>(\n fn: (options: { attempt: number; maxAttempts: number }) => Promise<T>,\n options: RetryOptions\n): Promise<T> {\n const opts = {\n ...defaultRetryOptions,\n ...options,\n };\n\n return tracer.startActiveSpan(\n `retry.onThrow()`,\n async (span) => {\n let attempt = 1;\n\n while (attempt <= opts.maxAttempts) {\n const innerSpan = tracer.startSpan(\"retry.fn()\", {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"function\",\n ...accessoryAttributes({\n items: [\n {\n text: `${attempt}/${opts.maxAttempts}`,\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n }),\n },\n });\n\n const contextWithSpanSet = trace.setSpan(context.active(), innerSpan);\n\n try {\n const result = await context.with(contextWithSpanSet, async () => {\n return fn({ attempt, maxAttempts: opts.maxAttempts });\n });\n\n innerSpan.end();\n\n return result;\n } catch (e) {\n if (e instanceof Error || typeof e === \"string\") {\n innerSpan.recordException(e);\n } else {\n innerSpan.recordException(String(e));\n }\n\n innerSpan.setStatus({ code: SpanStatusCode.ERROR });\n\n const nextRetryDelay = calculateNextRetryDelay(opts, attempt);\n\n if (!nextRetryDelay) {\n innerSpan.end();\n\n throw e;\n }\n\n innerSpan.setAttribute(\n SemanticInternalAttributes.RETRY_AT,\n new Date(Date.now() + nextRetryDelay).toISOString()\n );\n innerSpan.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);\n innerSpan.setAttribute(SemanticInternalAttributes.RETRY_DELAY, `${nextRetryDelay}ms`);\n innerSpan.end();\n\n await runtime.waitForDuration(nextRetryDelay);\n } finally {\n attempt++;\n }\n }\n\n throw new Error(\"Max attempts reached\");\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"arrow-capsule\",\n },\n }\n );\n}\n\nexport interface RetryFetchRequestInit extends RequestInit {\n retry?: FetchRetryOptions;\n timeoutInMs?: number;\n}\n\nconst normalizeUrlFromInput = (input: RequestInfo | URL | string): URL => {\n if (typeof input === \"string\") {\n return new URL(input);\n }\n\n if (input instanceof URL) {\n return input;\n }\n\n return new URL(input.url);\n};\n\nconst normalizeHttpMethod = (input: RequestInfo | URL | string, init?: RequestInit): string => {\n if (typeof input === \"string\" || input instanceof URL) {\n return (init?.method || \"GET\").toUpperCase();\n }\n\n return (input.method ?? init?.method ?? \"GET\").toUpperCase();\n};\n\nconst fetchHttpHandlerStorage = new AsyncLocalStorage<Array<HttpHandler>>();\n\nconst fetchWithInterceptors = async (\n input: RequestInfo | URL,\n init?: RequestInit\n): Promise<Response> => {\n const handlers = fetchHttpHandlerStorage.getStore();\n\n if (handlers) {\n try {\n const { getResponse } = await import(\"msw\");\n\n const request = new Request(input, init);\n\n const response = await getResponse(handlers, request);\n\n if (response) {\n return response;\n }\n } catch (e) {\n // Do nothing\n return fetch(input, init);\n }\n }\n\n return fetch(input, init);\n};\n\nclass FetchErrorWithSpan extends Error {\n constructor(\n public readonly originalError: unknown,\n public readonly span: Span\n ) {\n super(\"Fetch error\");\n }\n}\n\nconst MAX_ATTEMPTS = 10;\n\nasync function retryFetch(\n input: RequestInfo | URL,\n init?: RetryFetchRequestInit | undefined\n): Promise<Response> {\n return tracer.startActiveSpan(\n \"retry.fetch()\",\n async (span) => {\n let attempt = 1;\n\n while (true) {\n try {\n const abortController = new AbortController();\n\n const timeoutId = init?.timeoutInMs\n ? setTimeout(\n () => {\n abortController.abort();\n },\n init?.timeoutInMs\n )\n : undefined;\n\n init?.signal?.addEventListener(\"abort\", () => {\n abortController.abort();\n });\n\n const [response, span] = await doFetchRequest(\n input,\n { ...(init ?? {}), signal: abortController.signal },\n attempt\n );\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n if (response.ok) {\n span.setAttributes(createFetchResponseAttributes(response));\n\n span.end();\n\n return response;\n }\n\n const nextRetry = await calculateRetryDelayForResponse(\n resolveDefaults(init?.retry, \"byStatus\", defaultFetchRetryOptions.byStatus),\n response,\n attempt\n );\n\n if (!nextRetry) {\n span.setAttributes(createFetchResponseAttributes(response));\n\n span.end();\n\n return response;\n }\n\n if (attempt >= MAX_ATTEMPTS) {\n span.setAttributes(createFetchResponseAttributes(response));\n\n span.end();\n\n return response;\n }\n\n if (nextRetry.type === \"delay\") {\n span.setAttribute(\n SemanticInternalAttributes.RETRY_AT,\n new Date(Date.now() + nextRetry.value).toISOString()\n );\n span.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);\n span.setAttribute(SemanticInternalAttributes.RETRY_DELAY, `${nextRetry.value}ms`);\n\n span.end();\n\n await runtime.waitForDuration(nextRetry.value);\n } else {\n const now = Date.now();\n const nextRetryDate = new Date(nextRetry.value);\n const isInFuture = nextRetryDate.getTime() > now;\n\n span.setAttribute(\n SemanticInternalAttributes.RETRY_AT,\n new Date(nextRetry.value).toISOString()\n );\n span.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);\n\n if (isInFuture) {\n span.setAttribute(\n SemanticInternalAttributes.RETRY_DELAY,\n `${nextRetry.value - now}ms`\n );\n }\n\n span.end();\n\n await runtime.waitUntil(new Date(nextRetry.value));\n }\n } catch (e) {\n if (e instanceof FetchErrorWithSpan && e.originalError instanceof Error) {\n if (e.originalError.name === \"AbortError\") {\n const nextRetryDelay = calculateNextRetryDelay(\n resolveDefaults(init?.retry, \"timeout\", defaultFetchRetryOptions.timeout),\n attempt\n );\n\n if (!nextRetryDelay) {\n e.span.end();\n throw e;\n }\n\n if (attempt >= MAX_ATTEMPTS) {\n e.span.end();\n throw e;\n }\n\n e.span.setAttribute(\n SemanticInternalAttributes.RETRY_AT,\n new Date(Date.now() + nextRetryDelay).toISOString()\n );\n e.span.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);\n e.span.setAttribute(SemanticInternalAttributes.RETRY_DELAY, `${nextRetryDelay}ms`);\n\n e.span.end();\n\n await runtime.waitForDuration(nextRetryDelay);\n\n continue; // Move to the next attempt\n } else if (\n e.originalError.name === \"TypeError\" &&\n \"cause\" in e.originalError &&\n e.originalError.cause instanceof Error\n ) {\n const nextRetryDelay = calculateNextRetryDelay(\n resolveDefaults(\n init?.retry,\n \"connectionError\",\n defaultFetchRetryOptions.connectionError\n ),\n attempt\n );\n\n if (!nextRetryDelay) {\n e.span.end();\n throw e;\n }\n\n if (attempt >= MAX_ATTEMPTS) {\n e.span.end();\n throw e;\n }\n\n e.span.setAttribute(\n SemanticInternalAttributes.RETRY_AT,\n new Date(Date.now() + nextRetryDelay).toISOString()\n );\n e.span.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);\n e.span.setAttribute(SemanticInternalAttributes.RETRY_DELAY, `${nextRetryDelay}ms`);\n\n e.span.end();\n\n await runtime.waitForDuration(nextRetryDelay);\n\n continue; // Move to the next attempt\n }\n }\n\n if (e instanceof FetchErrorWithSpan) {\n e.span.end();\n }\n\n throw e;\n } finally {\n attempt++;\n }\n }\n },\n {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"arrow-capsule\",\n ...createFetchAttributes(input, init),\n ...createFetchRetryOptionsAttributes(init?.retry),\n },\n }\n );\n}\n\nconst doFetchRequest = async (\n input: RequestInfo | URL | string,\n init?: RequestInit,\n attemptCount: number = 0\n): Promise<[Response, Span]> => {\n const httpMethod = normalizeHttpMethod(input, init);\n\n const span = tracer.startSpan(`HTTP ${httpMethod}`, {\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"world\",\n ...(attemptCount > 1 ? { [\"http.request.resend_count\"]: attemptCount - 1 } : {}),\n ...createFetchAttributes(input, init),\n },\n });\n\n try {\n const response = await fetchWithInterceptors(input, {\n ...init,\n headers: {\n ...init?.headers,\n \"x-retry-count\": attemptCount.toString(),\n },\n });\n\n span.setAttributes(createFetchResponseAttributes(response));\n\n if (!response.ok) {\n span.recordException(`${response.status}: ${response.statusText}`);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: `${response.status}: ${response.statusText}`,\n });\n }\n\n return [response, span];\n } catch (e) {\n if (typeof e === \"string\" || e instanceof Error) {\n span.recordException(e);\n }\n\n span.setStatus({ code: SpanStatusCode.ERROR });\n span.setAttribute(SEMATTRS_HTTP_STATUS_CODE, 0);\n span.setAttribute(\"http.status_text\", \"This operation was aborted.\");\n\n throw new FetchErrorWithSpan(e, span);\n }\n};\n\nconst calculateRetryDelayForResponse = async (\n retry: FetchRetryByStatusOptions | undefined,\n response: Response,\n attemptCount: number\n): Promise<{ type: \"delay\"; value: number } | { type: \"timestamp\"; value: number } | undefined> => {\n if (!retry) {\n return;\n }\n\n const strategy = await getRetryStrategyForResponse(response, retry);\n\n if (!strategy) {\n return;\n }\n\n switch (strategy.strategy) {\n case \"backoff\": {\n const value = calculateNextRetryDelay({ ...defaultRetryOptions, ...strategy }, attemptCount);\n\n if (value) {\n return { type: \"delay\", value };\n }\n\n break;\n }\n case \"headers\": {\n const resetAt = response.headers.get(strategy.resetHeader);\n\n if (typeof resetAt === \"string\") {\n const resetTimestamp = calculateResetAt(\n resetAt,\n strategy.resetFormat ?? \"unix_timestamp_in_ms\"\n );\n\n if (resetTimestamp) {\n return { type: \"timestamp\", value: resetTimestamp };\n }\n }\n\n break;\n }\n }\n};\n\nconst getRetryStrategyForResponse = async (\n response: Response,\n retry: FetchRetryByStatusOptions\n): Promise<FetchRetryStrategy | undefined> => {\n const statusCodes = Object.keys(retry);\n const clonedResponse = response.clone();\n\n for (let i = 0; i < statusCodes.length; i++) {\n const statusRange = statusCodes[i];\n const strategy = retry[statusRange];\n\n if (isStatusCodeInRange(response.status, statusRange)) {\n if (strategy.bodyFilter) {\n const body = safeJsonParse(await clonedResponse.text());\n\n if (!body) {\n continue;\n }\n\n if (eventFilterMatches(body, strategy.bodyFilter)) {\n return strategy;\n } else {\n continue;\n }\n }\n\n return strategy;\n }\n }\n};\n\n/**\n * Checks if a given status code falls within a given range.\n * The range can be a single status code (e.g. \"200\"),\n * a range of status codes (e.g. \"500-599\"),\n * a range of status codes with a wildcard (e.g. \"4xx\" for any 4xx status code),\n * or a list of status codes separated by commas (e.g. \"401,403,404,409-412,5xx\").\n * Returns `true` if the status code falls within the range, and `false` otherwise.\n */\nconst isStatusCodeInRange = (statusCode: number, statusRange: string): boolean => {\n if (statusRange === \"all\") {\n return true;\n }\n\n if (statusRange.includes(\",\")) {\n const statusCodes = statusRange.split(\",\").map((s) => s.trim());\n\n return statusCodes.some((s) => isStatusCodeInRange(statusCode, s));\n }\n\n const [start, end] = statusRange.split(\"-\");\n\n if (end) {\n return statusCode >= parseInt(start, 10) && statusCode <= parseInt(end, 10);\n }\n\n if (start.endsWith(\"xx\")) {\n const prefix = start.slice(0, -2);\n const statusCodePrefix = Math.floor(statusCode / 100).toString();\n return statusCodePrefix === prefix;\n }\n\n const statusCodeString = statusCode.toString();\n const rangePrefix = start.slice(0, -1);\n\n if (start.endsWith(\"x\") && statusCodeString.startsWith(rangePrefix)) {\n return true;\n }\n\n return statusCode === parseInt(start, 10);\n};\n\nconst createAttributesFromHeaders = (headers: Headers): Attributes => {\n const attributes: Attributes = {};\n\n const normalizedHeaderKey = (key: string) => {\n return key.toLowerCase();\n };\n\n headers.forEach((value, key) => {\n attributes[`http.response.header.${normalizedHeaderKey(key)}`] = value;\n });\n\n return attributes;\n};\n\nconst safeJsonParse = (json: string): unknown => {\n try {\n return JSON.parse(json);\n } catch (e) {\n return null;\n }\n};\n\nconst interceptFetch = (...handlers: Array<HttpHandler>) => {\n return {\n run: async <T>(fn: (...args: any[]) => Promise<T>): Promise<T> => {\n const current = fetchHttpHandlerStorage.getStore();\n\n if (current) {\n current.push(...handlers);\n return fn();\n } else {\n return fetchHttpHandlerStorage.run(handlers, fn);\n }\n },\n };\n};\n\n// This function will resolve the defaults of a property within an options object.\n// If the options object is undefined, it will return the defaults for that property (passed in as the 3rd arg).\n// if the options object is defined, and the property exists, then it will return the defaults if the value of the property is undefined or null\nconst resolveDefaults = <\n TObject extends Record<string, unknown>,\n K extends keyof TObject,\n TValue extends TObject[K],\n>(\n obj: TObject | undefined,\n key: K,\n defaults: TValue\n): TValue => {\n if (!obj) {\n return defaults;\n }\n\n if (obj[key] === undefined || obj[key] === null) {\n return defaults;\n }\n\n return obj[key] as TValue;\n};\n\nconst createFetchAttributes = (\n input: RequestInfo | URL,\n init?: RetryFetchRequestInit | undefined\n): Attributes => {\n const url = normalizeUrlFromInput(input);\n const httpMethod = normalizeHttpMethod(input, init);\n\n return {\n [SEMATTRS_HTTP_METHOD]: httpMethod,\n [SEMATTRS_HTTP_URL]: url.href,\n [SEMATTRS_HTTP_HOST]: url.hostname,\n [\"server.host\"]: url.hostname,\n [\"server.port\"]: url.port,\n [SEMATTRS_HTTP_SCHEME]: url.protocol.replace(\":\", \"\"),\n ...accessoryAttributes({\n items: [\n {\n text: url.hostname,\n variant: \"normal\",\n },\n ],\n style: \"codepath\",\n }),\n };\n};\n\nconst createFetchResponseAttributes = (response: Response): Attributes => {\n return {\n [SEMATTRS_HTTP_STATUS_CODE]: response.status,\n \"http.status_text\": response.statusText,\n [SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH]: response.headers.get(\"content-length\") || \"0\",\n ...createAttributesFromHeaders(response.headers),\n };\n};\n\nconst createFetchRetryOptionsAttributes = (retry?: FetchRetryOptions): Attributes => {\n const byStatus = resolveDefaults(retry, \"byStatus\", defaultFetchRetryOptions.byStatus);\n const connectionError = resolveDefaults(\n retry,\n \"connectionError\",\n defaultFetchRetryOptions.connectionError\n );\n const timeout = resolveDefaults(retry, \"timeout\", defaultFetchRetryOptions.timeout);\n\n return {\n ...flattenAttributes(byStatus, \"retry.byStatus\"),\n ...flattenAttributes(connectionError, \"retry.connectionError\"),\n ...flattenAttributes(timeout, \"retry.timeout\"),\n };\n};\n\nexport const retry = {\n onThrow,\n fetch: retryFetch,\n interceptFetch,\n};\n","export * from \"./tasks\";\nexport * from \"./config\";\nexport * from \"./wait\";\nexport * from \"./cache\";\nexport { retry, type RetryOptions } from \"./retry\";\n\nimport type { Context } from \"./shared\";\nexport type { Context };\n\nexport { logger, type LogLevel } from \"@trigger.dev/core/v3\";\n\nexport { runs } from \"./management\";\n","import { CanceledRunResponse, ReplayRunResponse, apiClientManager } from \"@trigger.dev/core/v3\";\nimport { apiClientMissingError } from \"./shared\";\n\nexport const runs = {\n replay: replayRun,\n cancel: cancelRun,\n};\n\nasync function replayRun(runId: string): Promise<ReplayRunResponse> {\n const apiClient = apiClientManager.client;\n\n if (!apiClient) {\n throw apiClientMissingError();\n }\n\n const response = await apiClient.replayRun(runId);\n\n if (!response.ok) {\n throw new Error(response.error);\n }\n\n return response.data;\n}\n\nasync function cancelRun(runId: string): Promise<CanceledRunResponse> {\n const apiClient = apiClientManager.client;\n\n if (!apiClient) {\n throw apiClientMissingError();\n }\n\n const response = await apiClient.cancelRun(runId);\n\n if (!response.ok) {\n throw new Error(response.error);\n }\n\n return response.data;\n}\n"]}