@trigger.dev/sdk 3.0.0-beta.6 → 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 -254
  275. package/dist/v3/index.d.ts +0 -254
  276. package/dist/v3/index.js +0 -892
  277. package/dist/v3/index.js.map +0 -1
  278. package/dist/v3/index.mjs +0 -883
  279. package/dist/v3/index.mjs.map +0 -1
package/dist/v3/index.mjs DELETED
@@ -1,883 +0,0 @@
1
- import { SpanKind, trace, context, SpanStatusCode } from '@opentelemetry/api';
2
- import { SEMATTRS_HTTP_STATUS_CODE, SEMATTRS_HTTP_METHOD, SEMATTRS_HTTP_URL, SEMATTRS_HTTP_HOST, SEMATTRS_HTTP_SCHEME, SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH, SEMATTRS_MESSAGING_OPERATION, SEMATTRS_MESSAGING_DESTINATION, SEMATTRS_MESSAGING_SYSTEM } from '@opentelemetry/semantic-conventions';
3
- import { TriggerTracer, runtime, SemanticInternalAttributes, accessoryAttributes, defaultRetryOptions, conditionallyImportPacket, parsePacket, createErrorTaskError, apiClientManager, calculateNextRetryDelay, defaultFetchRetryOptions, calculateResetAt, eventFilterMatches, flattenAttributes, taskContextManager } from '@trigger.dev/core/v3';
4
- export { logger } from '@trigger.dev/core/v3';
5
- import { AsyncLocalStorage } from 'node:async_hooks';
6
-
7
- var __defProp = Object.defineProperty;
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
- var __publicField = (obj, key, value) => {
11
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
12
- return value;
13
- };
14
-
15
- // package.json
16
- var version = "3.0.0-beta.6";
17
- var tracer = new TriggerTracer({
18
- name: "@trigger.dev/sdk",
19
- version
20
- });
21
-
22
- // src/v3/shared.ts
23
- function createTask(params) {
24
- const task2 = {
25
- trigger: async ({ payload, options }) => {
26
- const apiClient = apiClientManager.client;
27
- if (!apiClient) {
28
- throw apiClientMissingError();
29
- }
30
- const taskMetadata = runtime.getTaskMetadata(params.id);
31
- const handle = await tracer.startActiveSpan(taskMetadata ? "Trigger" : `${params.id} trigger()`, async (span) => {
32
- const response = await apiClient.triggerTask(params.id, {
33
- payload,
34
- options: {
35
- queue: params.queue,
36
- concurrencyKey: options?.concurrencyKey,
37
- test: taskContextManager.ctx?.run.isTest
38
- }
39
- }, {
40
- spanParentAsLink: true
41
- });
42
- if (!response.ok) {
43
- throw new Error(response.error);
44
- }
45
- span.setAttribute("messaging.message.id", response.data.id);
46
- return response.data;
47
- }, {
48
- kind: SpanKind.PRODUCER,
49
- attributes: {
50
- [SEMATTRS_MESSAGING_OPERATION]: "publish",
51
- [SemanticInternalAttributes.STYLE_ICON]: "trigger",
52
- ["messaging.client_id"]: taskContextManager.worker?.id,
53
- [SEMATTRS_MESSAGING_DESTINATION]: params.queue?.name ?? params.id,
54
- ["messaging.message.body.size"]: JSON.stringify(payload).length,
55
- [SEMATTRS_MESSAGING_SYSTEM]: "trigger.dev",
56
- ...taskMetadata ? accessoryAttributes({
57
- items: [
58
- {
59
- text: `${taskMetadata.exportName}.trigger()`,
60
- variant: "normal"
61
- }
62
- ],
63
- style: "codepath"
64
- }) : {}
65
- }
66
- });
67
- return handle;
68
- },
69
- batchTrigger: async ({ items }) => {
70
- const apiClient = apiClientManager.client;
71
- if (!apiClient) {
72
- throw apiClientMissingError();
73
- }
74
- const taskMetadata = runtime.getTaskMetadata(params.id);
75
- const response = await tracer.startActiveSpan(taskMetadata ? "Batch trigger" : `${params.id} batchTrigger()`, async (span) => {
76
- const response2 = await apiClient.batchTriggerTask(params.id, {
77
- items: items.map((item) => ({
78
- payload: item.payload,
79
- options: {
80
- queue: item.options?.queue ?? params.queue,
81
- concurrencyKey: item.options?.concurrencyKey,
82
- test: taskContextManager.ctx?.run.isTest
83
- }
84
- }))
85
- }, {
86
- spanParentAsLink: true
87
- });
88
- if (!response2.ok) {
89
- throw new Error(response2.error);
90
- }
91
- span.setAttribute("messaging.message.id", response2.data.batchId);
92
- return response2.data;
93
- }, {
94
- kind: SpanKind.PRODUCER,
95
- attributes: {
96
- [SEMATTRS_MESSAGING_OPERATION]: "publish",
97
- ["messaging.batch.message_count"]: items.length,
98
- ["messaging.client_id"]: taskContextManager.worker?.id,
99
- [SEMATTRS_MESSAGING_DESTINATION]: params.queue?.name ?? params.id,
100
- ["messaging.message.body.size"]: items.map((item) => JSON.stringify(item.payload)).join("").length,
101
- [SEMATTRS_MESSAGING_SYSTEM]: "trigger.dev",
102
- [SemanticInternalAttributes.STYLE_ICON]: "trigger",
103
- ...taskMetadata ? accessoryAttributes({
104
- items: [
105
- {
106
- text: `${taskMetadata.exportName}.batchTrigger()`,
107
- variant: "normal"
108
- }
109
- ],
110
- style: "codepath"
111
- }) : {}
112
- }
113
- });
114
- return response;
115
- },
116
- triggerAndWait: async ({ payload, options }) => {
117
- const ctx = taskContextManager.ctx;
118
- if (!ctx) {
119
- throw new Error("triggerAndWait can only be used from inside a task.run()");
120
- }
121
- const apiClient = apiClientManager.client;
122
- if (!apiClient) {
123
- throw apiClientMissingError();
124
- }
125
- const taskMetadata = runtime.getTaskMetadata(params.id);
126
- return await tracer.startActiveSpan(taskMetadata ? "Trigger" : `${params.id} triggerAndWait()`, async (span) => {
127
- const response = await apiClient.triggerTask(params.id, {
128
- payload,
129
- options: {
130
- dependentAttempt: ctx.attempt.id,
131
- lockToVersion: taskContextManager.worker?.version,
132
- queue: params.queue,
133
- concurrencyKey: options?.concurrencyKey,
134
- test: taskContextManager.ctx?.run.isTest
135
- }
136
- });
137
- if (!response.ok) {
138
- throw new Error(response.error);
139
- }
140
- span.setAttribute("messaging.message.id", response.data.id);
141
- const result = await runtime.waitForTask({
142
- id: response.data.id,
143
- ctx
144
- });
145
- const runResult = await handleTaskRunExecutionResult(result);
146
- if (!runResult.ok) {
147
- throw runResult.error;
148
- }
149
- return runResult.output;
150
- }, {
151
- kind: SpanKind.PRODUCER,
152
- attributes: {
153
- [SemanticInternalAttributes.STYLE_ICON]: "trigger",
154
- [SEMATTRS_MESSAGING_OPERATION]: "publish",
155
- ["messaging.client_id"]: taskContextManager.worker?.id,
156
- [SEMATTRS_MESSAGING_DESTINATION]: params.queue?.name ?? params.id,
157
- [SEMATTRS_MESSAGING_SYSTEM]: "trigger.dev",
158
- ...taskMetadata ? accessoryAttributes({
159
- items: [
160
- {
161
- text: `${taskMetadata.exportName}.triggerAndWait()`,
162
- variant: "normal"
163
- }
164
- ],
165
- style: "codepath"
166
- }) : {}
167
- }
168
- });
169
- },
170
- batchTriggerAndWait: async ({ items }) => {
171
- const ctx = taskContextManager.ctx;
172
- if (!ctx) {
173
- throw new Error("batchTriggerAndWait can only be used from inside a task.run()");
174
- }
175
- const apiClient = apiClientManager.client;
176
- if (!apiClient) {
177
- throw apiClientMissingError();
178
- }
179
- const taskMetadata = runtime.getTaskMetadata(params.id);
180
- return await tracer.startActiveSpan(taskMetadata ? "Batch trigger" : `${params.id} batchTriggerAndWait()`, async (span) => {
181
- const response = await apiClient.batchTriggerTask(params.id, {
182
- items: items.map((item) => ({
183
- payload: item.payload,
184
- options: {
185
- lockToVersion: taskContextManager.worker?.version,
186
- queue: item.options?.queue ?? params.queue,
187
- concurrencyKey: item.options?.concurrencyKey,
188
- test: taskContextManager.ctx?.run.isTest
189
- }
190
- })),
191
- dependentAttempt: ctx.attempt.id
192
- });
193
- if (!response.ok) {
194
- throw new Error(response.error);
195
- }
196
- span.setAttribute("messaging.message.id", response.data.batchId);
197
- const result = await runtime.waitForBatch({
198
- id: response.data.batchId,
199
- runs: response.data.runs,
200
- ctx
201
- });
202
- const runs = await handleBatchTaskRunExecutionResult(result.items);
203
- return {
204
- id: result.id,
205
- runs
206
- };
207
- }, {
208
- kind: SpanKind.PRODUCER,
209
- attributes: {
210
- [SEMATTRS_MESSAGING_OPERATION]: "publish",
211
- ["messaging.batch.message_count"]: items.length,
212
- ["messaging.client_id"]: taskContextManager.worker?.id,
213
- [SEMATTRS_MESSAGING_DESTINATION]: params.queue?.name ?? params.id,
214
- ["messaging.message.body.size"]: items.map((item) => JSON.stringify(item.payload)).join("").length,
215
- [SEMATTRS_MESSAGING_SYSTEM]: "trigger.dev",
216
- [SemanticInternalAttributes.STYLE_ICON]: "trigger",
217
- ...taskMetadata ? accessoryAttributes({
218
- items: [
219
- {
220
- text: `${taskMetadata.exportName}.batchTriggerAndWait()`,
221
- variant: "normal"
222
- }
223
- ],
224
- style: "codepath"
225
- }) : {}
226
- }
227
- });
228
- }
229
- };
230
- Object.defineProperty(task2, "__trigger", {
231
- value: {
232
- id: params.id,
233
- packageVersion: version,
234
- queue: params.queue,
235
- retry: params.retry ? {
236
- ...defaultRetryOptions,
237
- ...params.retry
238
- } : void 0,
239
- machine: params.machine,
240
- fns: {
241
- run: params.run,
242
- init: params.init,
243
- cleanup: params.cleanup,
244
- middleware: params.middleware,
245
- handleError: params.handleError
246
- }
247
- },
248
- enumerable: false
249
- });
250
- return task2;
251
- }
252
- __name(createTask, "createTask");
253
- async function handleBatchTaskRunExecutionResult(items) {
254
- const someObjectStoreOutputs = items.some((item) => item.ok && item.outputType === "application/store");
255
- if (!someObjectStoreOutputs) {
256
- const results = await Promise.all(items.map(async (item) => {
257
- return await handleTaskRunExecutionResult(item);
258
- }));
259
- return results;
260
- }
261
- return await tracer.startActiveSpan("store.downloadPayloads", async (span) => {
262
- const results = await Promise.all(items.map(async (item) => {
263
- return await handleTaskRunExecutionResult(item);
264
- }));
265
- return results;
266
- }, {
267
- kind: SpanKind.INTERNAL,
268
- [SemanticInternalAttributes.STYLE_ICON]: "cloud-download"
269
- });
270
- }
271
- __name(handleBatchTaskRunExecutionResult, "handleBatchTaskRunExecutionResult");
272
- async function handleTaskRunExecutionResult(execution) {
273
- if (execution.ok) {
274
- const outputPacket = {
275
- data: execution.output,
276
- dataType: execution.outputType
277
- };
278
- const importedPacket = await conditionallyImportPacket(outputPacket, tracer);
279
- return {
280
- ok: true,
281
- id: execution.id,
282
- output: await parsePacket(importedPacket)
283
- };
284
- } else {
285
- return {
286
- ok: false,
287
- id: execution.id,
288
- error: createErrorTaskError(execution.error)
289
- };
290
- }
291
- }
292
- __name(handleTaskRunExecutionResult, "handleTaskRunExecutionResult");
293
- function apiClientMissingError() {
294
- const hasBaseUrl = !!apiClientManager.baseURL;
295
- const hasAccessToken = !!apiClientManager.accessToken;
296
- if (!hasBaseUrl && !hasAccessToken) {
297
- return `You need to set the TRIGGER_API_URL and TRIGGER_SECRET_KEY environment variables.`;
298
- } else if (!hasBaseUrl) {
299
- return `You need to set the TRIGGER_API_URL environment variable.`;
300
- } else if (!hasAccessToken) {
301
- return `You need to set the TRIGGER_SECRET_KEY environment variable.`;
302
- }
303
- return `Unknown error`;
304
- }
305
- __name(apiClientMissingError, "apiClientMissingError");
306
-
307
- // src/v3/tasks.ts
308
- function task(options) {
309
- return createTask(options);
310
- }
311
- __name(task, "task");
312
- var wait = {
313
- for: async (options) => {
314
- return tracer.startActiveSpan(`wait.for()`, async (span) => {
315
- const durationInMs = calculateDurationInMs(options);
316
- await runtime.waitForDuration(durationInMs);
317
- }, {
318
- attributes: {
319
- [SemanticInternalAttributes.STYLE_ICON]: "wait",
320
- ...accessoryAttributes({
321
- items: [
322
- {
323
- text: nameForWaitOptions(options),
324
- variant: "normal"
325
- }
326
- ],
327
- style: "codepath"
328
- })
329
- }
330
- });
331
- },
332
- until: async (options) => {
333
- return tracer.startActiveSpan(`wait.until()`, async (span) => {
334
- const start = Date.now();
335
- if (options.throwIfInThePast && options.date < /* @__PURE__ */ new Date()) {
336
- throw new Error("Date is in the past");
337
- }
338
- const durationInMs = options.date.getTime() - start;
339
- await runtime.waitForDuration(durationInMs);
340
- }, {
341
- attributes: {
342
- [SemanticInternalAttributes.STYLE_ICON]: "wait",
343
- ...accessoryAttributes({
344
- items: [
345
- {
346
- text: options.date.toISOString(),
347
- variant: "normal"
348
- }
349
- ],
350
- style: "codepath"
351
- })
352
- }
353
- });
354
- }
355
- };
356
- function nameForWaitOptions(options) {
357
- if ("seconds" in options) {
358
- return options.seconds === 1 ? `1 second` : `${options.seconds} seconds`;
359
- }
360
- if ("minutes" in options) {
361
- return options.minutes === 1 ? `1 minute` : `${options.minutes} minutes`;
362
- }
363
- if ("hours" in options) {
364
- return options.hours === 1 ? `1 hour` : `${options.hours} hours`;
365
- }
366
- if ("days" in options) {
367
- return options.days === 1 ? `1 day` : `${options.days} days`;
368
- }
369
- if ("weeks" in options) {
370
- return options.weeks === 1 ? `1 week` : `${options.weeks} weeks`;
371
- }
372
- if ("months" in options) {
373
- return options.months === 1 ? `1 month` : `${options.months} months`;
374
- }
375
- if ("years" in options) {
376
- return options.years === 1 ? `1 year` : `${options.years} years`;
377
- }
378
- return "NaN";
379
- }
380
- __name(nameForWaitOptions, "nameForWaitOptions");
381
- function calculateDurationInMs(options) {
382
- if ("seconds" in options) {
383
- return options.seconds * 1e3;
384
- }
385
- if ("minutes" in options) {
386
- return options.minutes * 1e3 * 60;
387
- }
388
- if ("hours" in options) {
389
- return options.hours * 1e3 * 60 * 60;
390
- }
391
- if ("days" in options) {
392
- return options.days * 1e3 * 60 * 60 * 24;
393
- }
394
- if ("weeks" in options) {
395
- return options.weeks * 1e3 * 60 * 60 * 24 * 7;
396
- }
397
- if ("months" in options) {
398
- return options.months * 1e3 * 60 * 60 * 24 * 30;
399
- }
400
- if ("years" in options) {
401
- return options.years * 1e3 * 60 * 60 * 24 * 365;
402
- }
403
- throw new Error("Invalid options");
404
- }
405
- __name(calculateDurationInMs, "calculateDurationInMs");
406
- var _InMemoryCache = class _InMemoryCache {
407
- constructor() {
408
- __publicField(this, "_cache", /* @__PURE__ */ new Map());
409
- }
410
- get(key) {
411
- return this._cache.get(key);
412
- }
413
- set(key, value) {
414
- this._cache.set(key, value);
415
- return void 0;
416
- }
417
- delete(key) {
418
- this._cache.delete(key);
419
- return void 0;
420
- }
421
- };
422
- __name(_InMemoryCache, "InMemoryCache");
423
- var InMemoryCache = _InMemoryCache;
424
- function createCache(store) {
425
- return /* @__PURE__ */ __name(function cache(cacheKey, fn) {
426
- return tracer.startActiveSpan("cache", async (span) => {
427
- span.setAttribute("cache.key", cacheKey);
428
- span.setAttribute(SemanticInternalAttributes.STYLE_ICON, "device-sd-card");
429
- const cacheEntry = await store.get(cacheKey);
430
- if (cacheEntry) {
431
- span.updateName(`cache.hit ${cacheKey}`);
432
- return cacheEntry.value;
433
- }
434
- span.updateName(`cache.miss ${cacheKey}`);
435
- const value = await tracer.startActiveSpan("cache.getFreshValue", async (span2) => {
436
- return await fn();
437
- }, {
438
- attributes: {
439
- "cache.key": cacheKey,
440
- [SemanticInternalAttributes.STYLE_ICON]: "device-sd-card"
441
- }
442
- });
443
- await tracer.startActiveSpan("cache.set", async (span2) => {
444
- await store.set(cacheKey, {
445
- value,
446
- metadata: {
447
- createdTime: Date.now()
448
- }
449
- });
450
- }, {
451
- attributes: {
452
- "cache.key": cacheKey,
453
- [SemanticInternalAttributes.STYLE_ICON]: "device-sd-card"
454
- }
455
- });
456
- return value;
457
- });
458
- }, "cache");
459
- }
460
- __name(createCache, "createCache");
461
- function onThrow(fn, options) {
462
- const opts = {
463
- ...defaultRetryOptions,
464
- ...options
465
- };
466
- return tracer.startActiveSpan(`retry.onThrow()`, async (span) => {
467
- let attempt = 1;
468
- while (attempt <= opts.maxAttempts) {
469
- const innerSpan = tracer.startSpan("retry.fn()", {
470
- attributes: {
471
- [SemanticInternalAttributes.STYLE_ICON]: "function",
472
- ...accessoryAttributes({
473
- items: [
474
- {
475
- text: `${attempt}/${opts.maxAttempts}`,
476
- variant: "normal"
477
- }
478
- ],
479
- style: "codepath"
480
- })
481
- }
482
- });
483
- const contextWithSpanSet = trace.setSpan(context.active(), innerSpan);
484
- try {
485
- const result = await context.with(contextWithSpanSet, async () => {
486
- return fn({
487
- attempt,
488
- maxAttempts: opts.maxAttempts
489
- });
490
- });
491
- innerSpan.end();
492
- return result;
493
- } catch (e) {
494
- if (e instanceof Error || typeof e === "string") {
495
- innerSpan.recordException(e);
496
- } else {
497
- innerSpan.recordException(String(e));
498
- }
499
- innerSpan.setStatus({
500
- code: SpanStatusCode.ERROR
501
- });
502
- const nextRetryDelay = calculateNextRetryDelay(opts, attempt);
503
- if (!nextRetryDelay) {
504
- innerSpan.end();
505
- throw e;
506
- }
507
- innerSpan.setAttribute(SemanticInternalAttributes.RETRY_AT, new Date(Date.now() + nextRetryDelay).toISOString());
508
- innerSpan.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);
509
- innerSpan.setAttribute(SemanticInternalAttributes.RETRY_DELAY, `${nextRetryDelay}ms`);
510
- innerSpan.end();
511
- await runtime.waitForDuration(nextRetryDelay);
512
- } finally {
513
- attempt++;
514
- }
515
- }
516
- throw new Error("Max attempts reached");
517
- }, {
518
- attributes: {
519
- [SemanticInternalAttributes.STYLE_ICON]: "arrow-capsule"
520
- }
521
- });
522
- }
523
- __name(onThrow, "onThrow");
524
- var normalizeUrlFromInput = /* @__PURE__ */ __name((input) => {
525
- if (typeof input === "string") {
526
- return new URL(input);
527
- }
528
- if (input instanceof URL) {
529
- return input;
530
- }
531
- return new URL(input.url);
532
- }, "normalizeUrlFromInput");
533
- var normalizeHttpMethod = /* @__PURE__ */ __name((input, init) => {
534
- if (typeof input === "string" || input instanceof URL) {
535
- return (init?.method || "GET").toUpperCase();
536
- }
537
- return (input.method ?? init?.method ?? "GET").toUpperCase();
538
- }, "normalizeHttpMethod");
539
- var fetchHttpHandlerStorage = new AsyncLocalStorage();
540
- var fetchWithInterceptors = /* @__PURE__ */ __name(async (input, init) => {
541
- const handlers = fetchHttpHandlerStorage.getStore();
542
- if (handlers) {
543
- try {
544
- const { getResponse } = await import('msw');
545
- const request = new Request(input, init);
546
- const response = await getResponse(handlers, request);
547
- if (response) {
548
- return response;
549
- }
550
- } catch (e) {
551
- return fetch(input, init);
552
- }
553
- }
554
- return fetch(input, init);
555
- }, "fetchWithInterceptors");
556
- var _a;
557
- var FetchErrorWithSpan = (_a = class extends Error {
558
- constructor(originalError, span) {
559
- super("Fetch error");
560
- this.originalError = originalError;
561
- this.span = span;
562
- }
563
- }, __name(_a, "FetchErrorWithSpan"), _a);
564
- var MAX_ATTEMPTS = 10;
565
- async function retryFetch(input, init) {
566
- return tracer.startActiveSpan("retry.fetch()", async (span) => {
567
- let attempt = 1;
568
- while (true) {
569
- try {
570
- const abortController = new AbortController();
571
- const timeoutId = init?.timeoutInMs ? setTimeout(() => {
572
- abortController.abort();
573
- }, init?.timeoutInMs) : void 0;
574
- init?.signal?.addEventListener("abort", () => {
575
- abortController.abort();
576
- });
577
- const [response, span2] = await doFetchRequest(input, {
578
- ...init ?? {},
579
- signal: abortController.signal
580
- }, attempt);
581
- if (timeoutId) {
582
- clearTimeout(timeoutId);
583
- }
584
- if (response.ok) {
585
- span2.setAttributes(createFetchResponseAttributes(response));
586
- span2.end();
587
- return response;
588
- }
589
- const nextRetry = await calculateRetryDelayForResponse(resolveDefaults(init?.retry, "byStatus", defaultFetchRetryOptions.byStatus), response, attempt);
590
- if (!nextRetry) {
591
- span2.setAttributes(createFetchResponseAttributes(response));
592
- span2.end();
593
- return response;
594
- }
595
- if (attempt >= MAX_ATTEMPTS) {
596
- span2.setAttributes(createFetchResponseAttributes(response));
597
- span2.end();
598
- return response;
599
- }
600
- if (nextRetry.type === "delay") {
601
- span2.setAttribute(SemanticInternalAttributes.RETRY_AT, new Date(Date.now() + nextRetry.value).toISOString());
602
- span2.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);
603
- span2.setAttribute(SemanticInternalAttributes.RETRY_DELAY, `${nextRetry.value}ms`);
604
- span2.end();
605
- await runtime.waitForDuration(nextRetry.value);
606
- } else {
607
- const now = Date.now();
608
- const nextRetryDate = new Date(nextRetry.value);
609
- const isInFuture = nextRetryDate.getTime() > now;
610
- span2.setAttribute(SemanticInternalAttributes.RETRY_AT, new Date(nextRetry.value).toISOString());
611
- span2.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);
612
- if (isInFuture) {
613
- span2.setAttribute(SemanticInternalAttributes.RETRY_DELAY, `${nextRetry.value - now}ms`);
614
- }
615
- span2.end();
616
- await runtime.waitUntil(new Date(nextRetry.value));
617
- }
618
- } catch (e) {
619
- if (e instanceof FetchErrorWithSpan && e.originalError instanceof Error) {
620
- if (e.originalError.name === "AbortError") {
621
- const nextRetryDelay = calculateNextRetryDelay(resolveDefaults(init?.retry, "timeout", defaultFetchRetryOptions.timeout), attempt);
622
- if (!nextRetryDelay) {
623
- e.span.end();
624
- throw e;
625
- }
626
- if (attempt >= MAX_ATTEMPTS) {
627
- e.span.end();
628
- throw e;
629
- }
630
- e.span.setAttribute(SemanticInternalAttributes.RETRY_AT, new Date(Date.now() + nextRetryDelay).toISOString());
631
- e.span.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);
632
- e.span.setAttribute(SemanticInternalAttributes.RETRY_DELAY, `${nextRetryDelay}ms`);
633
- e.span.end();
634
- await runtime.waitForDuration(nextRetryDelay);
635
- continue;
636
- } else if (e.originalError.name === "TypeError" && "cause" in e.originalError && e.originalError.cause instanceof Error) {
637
- const nextRetryDelay = calculateNextRetryDelay(resolveDefaults(init?.retry, "connectionError", defaultFetchRetryOptions.connectionError), attempt);
638
- if (!nextRetryDelay) {
639
- e.span.end();
640
- throw e;
641
- }
642
- if (attempt >= MAX_ATTEMPTS) {
643
- e.span.end();
644
- throw e;
645
- }
646
- e.span.setAttribute(SemanticInternalAttributes.RETRY_AT, new Date(Date.now() + nextRetryDelay).toISOString());
647
- e.span.setAttribute(SemanticInternalAttributes.RETRY_COUNT, attempt);
648
- e.span.setAttribute(SemanticInternalAttributes.RETRY_DELAY, `${nextRetryDelay}ms`);
649
- e.span.end();
650
- await runtime.waitForDuration(nextRetryDelay);
651
- continue;
652
- }
653
- }
654
- if (e instanceof FetchErrorWithSpan) {
655
- e.span.end();
656
- }
657
- throw e;
658
- } finally {
659
- attempt++;
660
- }
661
- }
662
- }, {
663
- attributes: {
664
- [SemanticInternalAttributes.STYLE_ICON]: "arrow-capsule",
665
- ...createFetchAttributes(input, init),
666
- ...createFetchRetryOptionsAttributes(init?.retry)
667
- }
668
- });
669
- }
670
- __name(retryFetch, "retryFetch");
671
- var doFetchRequest = /* @__PURE__ */ __name(async (input, init, attemptCount = 0) => {
672
- const httpMethod = normalizeHttpMethod(input, init);
673
- const span = tracer.startSpan(`HTTP ${httpMethod}`, {
674
- attributes: {
675
- [SemanticInternalAttributes.STYLE_ICON]: "world",
676
- ...attemptCount > 1 ? {
677
- ["http.request.resend_count"]: attemptCount - 1
678
- } : {},
679
- ...createFetchAttributes(input, init)
680
- }
681
- });
682
- try {
683
- const response = await fetchWithInterceptors(input, {
684
- ...init,
685
- headers: {
686
- ...init?.headers,
687
- "x-retry-count": attemptCount.toString()
688
- }
689
- });
690
- span.setAttributes(createFetchResponseAttributes(response));
691
- if (!response.ok) {
692
- span.recordException(`${response.status}: ${response.statusText}`);
693
- span.setStatus({
694
- code: SpanStatusCode.ERROR,
695
- message: `${response.status}: ${response.statusText}`
696
- });
697
- }
698
- return [
699
- response,
700
- span
701
- ];
702
- } catch (e) {
703
- if (typeof e === "string" || e instanceof Error) {
704
- span.recordException(e);
705
- }
706
- span.setStatus({
707
- code: SpanStatusCode.ERROR
708
- });
709
- span.setAttribute(SEMATTRS_HTTP_STATUS_CODE, 0);
710
- span.setAttribute("http.status_text", "This operation was aborted.");
711
- throw new FetchErrorWithSpan(e, span);
712
- }
713
- }, "doFetchRequest");
714
- var calculateRetryDelayForResponse = /* @__PURE__ */ __name(async (retry2, response, attemptCount) => {
715
- if (!retry2) {
716
- return;
717
- }
718
- const strategy = await getRetryStrategyForResponse(response, retry2);
719
- if (!strategy) {
720
- return;
721
- }
722
- switch (strategy.strategy) {
723
- case "backoff": {
724
- const value = calculateNextRetryDelay({
725
- ...defaultRetryOptions,
726
- ...strategy
727
- }, attemptCount);
728
- if (value) {
729
- return {
730
- type: "delay",
731
- value
732
- };
733
- }
734
- break;
735
- }
736
- case "headers": {
737
- const resetAt = response.headers.get(strategy.resetHeader);
738
- if (typeof resetAt === "string") {
739
- const resetTimestamp = calculateResetAt(resetAt, strategy.resetFormat ?? "unix_timestamp_in_ms");
740
- if (resetTimestamp) {
741
- return {
742
- type: "timestamp",
743
- value: resetTimestamp
744
- };
745
- }
746
- }
747
- break;
748
- }
749
- }
750
- }, "calculateRetryDelayForResponse");
751
- var getRetryStrategyForResponse = /* @__PURE__ */ __name(async (response, retry2) => {
752
- const statusCodes = Object.keys(retry2);
753
- const clonedResponse = response.clone();
754
- for (let i = 0; i < statusCodes.length; i++) {
755
- const statusRange = statusCodes[i];
756
- const strategy = retry2[statusRange];
757
- if (isStatusCodeInRange(response.status, statusRange)) {
758
- if (strategy.bodyFilter) {
759
- const body = safeJsonParse(await clonedResponse.text());
760
- if (!body) {
761
- continue;
762
- }
763
- if (eventFilterMatches(body, strategy.bodyFilter)) {
764
- return strategy;
765
- } else {
766
- continue;
767
- }
768
- }
769
- return strategy;
770
- }
771
- }
772
- }, "getRetryStrategyForResponse");
773
- var isStatusCodeInRange = /* @__PURE__ */ __name((statusCode, statusRange) => {
774
- if (statusRange === "all") {
775
- return true;
776
- }
777
- if (statusRange.includes(",")) {
778
- const statusCodes = statusRange.split(",").map((s) => s.trim());
779
- return statusCodes.some((s) => isStatusCodeInRange(statusCode, s));
780
- }
781
- const [start, end] = statusRange.split("-");
782
- if (end) {
783
- return statusCode >= parseInt(start, 10) && statusCode <= parseInt(end, 10);
784
- }
785
- if (start.endsWith("xx")) {
786
- const prefix = start.slice(0, -2);
787
- const statusCodePrefix = Math.floor(statusCode / 100).toString();
788
- return statusCodePrefix === prefix;
789
- }
790
- const statusCodeString = statusCode.toString();
791
- const rangePrefix = start.slice(0, -1);
792
- if (start.endsWith("x") && statusCodeString.startsWith(rangePrefix)) {
793
- return true;
794
- }
795
- return statusCode === parseInt(start, 10);
796
- }, "isStatusCodeInRange");
797
- var createAttributesFromHeaders = /* @__PURE__ */ __name((headers) => {
798
- const attributes = {};
799
- const normalizedHeaderKey = /* @__PURE__ */ __name((key) => {
800
- return key.toLowerCase();
801
- }, "normalizedHeaderKey");
802
- headers.forEach((value, key) => {
803
- attributes[`http.response.header.${normalizedHeaderKey(key)}`] = value;
804
- });
805
- return attributes;
806
- }, "createAttributesFromHeaders");
807
- var safeJsonParse = /* @__PURE__ */ __name((json) => {
808
- try {
809
- return JSON.parse(json);
810
- } catch (e) {
811
- return null;
812
- }
813
- }, "safeJsonParse");
814
- var interceptFetch = /* @__PURE__ */ __name((...handlers) => {
815
- return {
816
- run: async (fn) => {
817
- const current = fetchHttpHandlerStorage.getStore();
818
- if (current) {
819
- current.push(...handlers);
820
- return fn();
821
- } else {
822
- return fetchHttpHandlerStorage.run(handlers, fn);
823
- }
824
- }
825
- };
826
- }, "interceptFetch");
827
- var resolveDefaults = /* @__PURE__ */ __name((obj, key, defaults) => {
828
- if (!obj) {
829
- return defaults;
830
- }
831
- if (obj[key] === void 0 || obj[key] === null) {
832
- return defaults;
833
- }
834
- return obj[key];
835
- }, "resolveDefaults");
836
- var createFetchAttributes = /* @__PURE__ */ __name((input, init) => {
837
- const url = normalizeUrlFromInput(input);
838
- const httpMethod = normalizeHttpMethod(input, init);
839
- return {
840
- [SEMATTRS_HTTP_METHOD]: httpMethod,
841
- [SEMATTRS_HTTP_URL]: url.href,
842
- [SEMATTRS_HTTP_HOST]: url.hostname,
843
- ["server.host"]: url.hostname,
844
- ["server.port"]: url.port,
845
- [SEMATTRS_HTTP_SCHEME]: url.protocol.replace(":", ""),
846
- ...accessoryAttributes({
847
- items: [
848
- {
849
- text: url.hostname,
850
- variant: "normal"
851
- }
852
- ],
853
- style: "codepath"
854
- })
855
- };
856
- }, "createFetchAttributes");
857
- var createFetchResponseAttributes = /* @__PURE__ */ __name((response) => {
858
- return {
859
- [SEMATTRS_HTTP_STATUS_CODE]: response.status,
860
- "http.status_text": response.statusText,
861
- [SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH]: response.headers.get("content-length") || "0",
862
- ...createAttributesFromHeaders(response.headers)
863
- };
864
- }, "createFetchResponseAttributes");
865
- var createFetchRetryOptionsAttributes = /* @__PURE__ */ __name((retry2) => {
866
- const byStatus = resolveDefaults(retry2, "byStatus", defaultFetchRetryOptions.byStatus);
867
- const connectionError = resolveDefaults(retry2, "connectionError", defaultFetchRetryOptions.connectionError);
868
- const timeout = resolveDefaults(retry2, "timeout", defaultFetchRetryOptions.timeout);
869
- return {
870
- ...flattenAttributes(byStatus, "retry.byStatus"),
871
- ...flattenAttributes(connectionError, "retry.connectionError"),
872
- ...flattenAttributes(timeout, "retry.timeout")
873
- };
874
- }, "createFetchRetryOptionsAttributes");
875
- var retry = {
876
- onThrow,
877
- fetch: retryFetch,
878
- interceptFetch
879
- };
880
-
881
- export { InMemoryCache, createCache, retry, task, wait };
882
- //# sourceMappingURL=out.js.map
883
- //# sourceMappingURL=index.mjs.map