@trigger.dev/core 3.0.0-beta.48 → 3.0.0-beta.49

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 (155) hide show
  1. package/dist/api-Pl9fxB8v.d.mts +13879 -0
  2. package/dist/api-sNoooMbT.d.ts +13879 -0
  3. package/dist/{catalog-NxVZnWZh.d.ts → catalog-U7_q4XsM.d.mts} +12 -34
  4. package/dist/{catalog-N-X0Te3W.d.mts → catalog-bSnBE19I.d.ts} +12 -34
  5. package/dist/{common-fIyU5pmz.d.mts → common-CLW82lkt.d.mts} +1 -1
  6. package/dist/{common-fIyU5pmz.d.ts → common-CLW82lkt.d.ts} +1 -1
  7. package/dist/{eventFilterMatches-2kHImluE.d.mts → eventFilter-66NaBAMi.d.mts} +1 -3
  8. package/dist/{eventFilterMatches-2kHImluE.d.ts → eventFilter-66NaBAMi.d.ts} +1 -3
  9. package/dist/eventFilterMatches.d.mts +6 -0
  10. package/dist/eventFilterMatches.d.ts +6 -0
  11. package/dist/eventFilterMatches.js +165 -0
  12. package/dist/eventFilterMatches.js.map +1 -0
  13. package/dist/eventFilterMatches.mjs +163 -0
  14. package/dist/eventFilterMatches.mjs.map +1 -0
  15. package/dist/index.d.mts +14 -16716
  16. package/dist/index.d.ts +14 -16716
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +1 -1
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/json-DBPEJQRe.d.mts +16 -0
  22. package/dist/json-DBPEJQRe.d.ts +16 -0
  23. package/dist/{manager-X_HrWQ7_.d.mts → manager-KvCabW1a.d.mts} +1 -1
  24. package/dist/{manager-2ZQ3_twq.d.ts → manager-OBA35PzR.d.ts} +1 -1
  25. package/dist/replacements.d.mts +22 -0
  26. package/dist/replacements.d.ts +22 -0
  27. package/dist/replacements.js +33 -0
  28. package/dist/replacements.js.map +1 -0
  29. package/dist/replacements.mjs +28 -0
  30. package/dist/replacements.mjs.map +1 -0
  31. package/dist/requestFilter-HNZQEpQb.d.ts +180 -0
  32. package/dist/requestFilter-b5W2_1oP.d.mts +180 -0
  33. package/dist/requestFilterMatches.d.mts +13 -0
  34. package/dist/requestFilterMatches.d.ts +13 -0
  35. package/dist/requestFilterMatches.js +238 -0
  36. package/dist/requestFilterMatches.js.map +1 -0
  37. package/dist/requestFilterMatches.mjs +235 -0
  38. package/dist/requestFilterMatches.mjs.map +1 -0
  39. package/dist/retry.d.mts +10 -0
  40. package/dist/retry.d.ts +10 -0
  41. package/dist/retry.js +100 -0
  42. package/dist/retry.js.map +1 -0
  43. package/dist/retry.mjs +97 -0
  44. package/dist/retry.mjs.map +1 -0
  45. package/dist/schemas/index.d.mts +2611 -0
  46. package/dist/schemas/index.d.ts +2611 -0
  47. package/dist/schemas/index.js +1630 -0
  48. package/dist/schemas/index.js.map +1 -0
  49. package/dist/schemas/index.mjs +1463 -0
  50. package/dist/schemas/index.mjs.map +1 -0
  51. package/dist/{schemas-Zy7mGFgD.d.mts → schemas-WHkFakb3.d.mts} +4 -1
  52. package/dist/{schemas-Zy7mGFgD.d.ts → schemas-WHkFakb3.d.ts} +4 -1
  53. package/dist/taskLogger-CzADe4je.d.ts +33 -0
  54. package/dist/taskLogger-r_AFTX45.d.mts +33 -0
  55. package/dist/types.d.mts +11 -0
  56. package/dist/types.d.ts +11 -0
  57. package/dist/types.js +4 -0
  58. package/dist/types.js.map +1 -0
  59. package/dist/types.mjs +3 -0
  60. package/dist/types.mjs.map +1 -0
  61. package/dist/utils.d.mts +7 -0
  62. package/dist/utils.d.ts +7 -0
  63. package/dist/utils.js +33 -0
  64. package/dist/utils.js.map +1 -0
  65. package/dist/utils.mjs +30 -0
  66. package/dist/utils.mjs.map +1 -0
  67. package/dist/v3/dev/index.d.mts +2 -2
  68. package/dist/v3/dev/index.d.ts +2 -2
  69. package/dist/v3/errors.d.mts +39 -0
  70. package/dist/v3/errors.d.ts +39 -0
  71. package/dist/v3/errors.js +204 -0
  72. package/dist/v3/errors.js.map +1 -0
  73. package/dist/v3/errors.mjs +195 -0
  74. package/dist/v3/errors.mjs.map +1 -0
  75. package/dist/v3/index.d.mts +46 -211
  76. package/dist/v3/index.d.ts +46 -211
  77. package/dist/v3/index.js +3 -2
  78. package/dist/v3/index.js.map +1 -1
  79. package/dist/v3/index.mjs +3 -2
  80. package/dist/v3/index.mjs.map +1 -1
  81. package/dist/v3/logger-api.d.mts +24 -0
  82. package/dist/v3/logger-api.d.ts +24 -0
  83. package/dist/v3/logger-api.js +118 -0
  84. package/dist/v3/logger-api.js.map +1 -0
  85. package/dist/v3/logger-api.mjs +116 -0
  86. package/dist/v3/logger-api.mjs.map +1 -0
  87. package/dist/v3/otel/index.js +1 -1
  88. package/dist/v3/otel/index.js.map +1 -1
  89. package/dist/v3/otel/index.mjs +1 -1
  90. package/dist/v3/otel/index.mjs.map +1 -1
  91. package/dist/v3/prod/index.d.mts +3 -3
  92. package/dist/v3/prod/index.d.ts +3 -3
  93. package/dist/v3/schemas/index.d.mts +110 -110
  94. package/dist/v3/schemas/index.d.ts +110 -110
  95. package/dist/v3/schemas/index.js +2 -1
  96. package/dist/v3/schemas/index.js.map +1 -1
  97. package/dist/v3/schemas/index.mjs +2 -1
  98. package/dist/v3/schemas/index.mjs.map +1 -1
  99. package/dist/v3/semanticInternalAttributes.d.mts +56 -0
  100. package/dist/v3/semanticInternalAttributes.d.ts +56 -0
  101. package/dist/v3/semanticInternalAttributes.js +61 -0
  102. package/dist/v3/semanticInternalAttributes.js.map +1 -0
  103. package/dist/v3/semanticInternalAttributes.mjs +59 -0
  104. package/dist/v3/semanticInternalAttributes.mjs.map +1 -0
  105. package/dist/v3/utils/flattenAttributes.d.mts +8 -0
  106. package/dist/v3/utils/flattenAttributes.d.ts +8 -0
  107. package/dist/v3/utils/flattenAttributes.js +131 -0
  108. package/dist/v3/utils/flattenAttributes.js.map +1 -0
  109. package/dist/v3/utils/flattenAttributes.mjs +126 -0
  110. package/dist/v3/utils/flattenAttributes.mjs.map +1 -0
  111. package/dist/v3/utils/ioSerialization.d.mts +21 -0
  112. package/dist/v3/utils/ioSerialization.d.ts +21 -0
  113. package/dist/v3/utils/ioSerialization.js +2348 -0
  114. package/dist/v3/utils/ioSerialization.js.map +1 -0
  115. package/dist/v3/utils/ioSerialization.mjs +2339 -0
  116. package/dist/v3/utils/ioSerialization.mjs.map +1 -0
  117. package/dist/v3/utils/omit.d.mts +3 -0
  118. package/dist/v3/utils/omit.d.ts +3 -0
  119. package/dist/v3/utils/omit.js +20 -0
  120. package/dist/v3/utils/omit.js.map +1 -0
  121. package/dist/v3/utils/omit.mjs +18 -0
  122. package/dist/v3/utils/omit.mjs.map +1 -0
  123. package/dist/v3/utils/retries.d.mts +46 -0
  124. package/dist/v3/utils/retries.d.ts +46 -0
  125. package/dist/v3/utils/retries.js +118 -0
  126. package/dist/v3/utils/retries.js.map +1 -0
  127. package/dist/v3/utils/retries.mjs +113 -0
  128. package/dist/v3/utils/retries.mjs.map +1 -0
  129. package/dist/v3/workers/index.d.mts +7 -6
  130. package/dist/v3/workers/index.d.ts +7 -6
  131. package/dist/v3/workers/index.js +3 -2
  132. package/dist/v3/workers/index.js.map +1 -1
  133. package/dist/v3/workers/index.mjs +3 -2
  134. package/dist/v3/workers/index.mjs.map +1 -1
  135. package/dist/v3/zodIpc.js.map +1 -1
  136. package/dist/v3/zodIpc.mjs.map +1 -1
  137. package/dist/v3/zodMessageHandler.d.mts +16 -3
  138. package/dist/v3/zodMessageHandler.d.ts +16 -3
  139. package/dist/v3/zodMessageHandler.js +59 -13
  140. package/dist/v3/zodMessageHandler.js.map +1 -1
  141. package/dist/v3/zodMessageHandler.mjs +59 -13
  142. package/dist/v3/zodMessageHandler.mjs.map +1 -1
  143. package/dist/v3/zodNamespace.js.map +1 -1
  144. package/dist/v3/zodNamespace.mjs.map +1 -1
  145. package/dist/v3/zodfetch.d.mts +1 -1
  146. package/dist/v3/zodfetch.d.ts +1 -1
  147. package/dist/versions.d.mts +11 -0
  148. package/dist/versions.d.ts +11 -0
  149. package/dist/versions.js +31 -0
  150. package/dist/versions.js.map +1 -0
  151. package/dist/versions.mjs +27 -0
  152. package/dist/versions.mjs.map +1 -0
  153. package/package.json +137 -17
  154. package/dist/{messages-Sggr4tid.d.mts → messages-I-h-zZN9.d.mts} +32 -32
  155. package/dist/{messages-Sggr4tid.d.ts → messages-I-h-zZN9.d.ts} +32 -32
package/dist/retry.mjs ADDED
@@ -0,0 +1,97 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/retry.ts
5
+ var DEFAULT_RETRY_OPTIONS = {
6
+ limit: 5,
7
+ factor: 1.8,
8
+ minTimeoutInMs: 1e3,
9
+ maxTimeoutInMs: 6e4,
10
+ randomize: true
11
+ };
12
+ function calculateRetryAt(retryOptions, attempts) {
13
+ const options = {
14
+ ...DEFAULT_RETRY_OPTIONS,
15
+ ...retryOptions
16
+ };
17
+ const retryCount = attempts + 1;
18
+ if (retryCount >= options.limit) {
19
+ return;
20
+ }
21
+ const random = options.randomize ? Math.random() + 1 : 1;
22
+ let timeoutInMs = Math.round(random * Math.max(options.minTimeoutInMs, 1) * Math.pow(options.factor, Math.max(attempts - 1, 0)));
23
+ timeoutInMs = Math.min(timeoutInMs, options.maxTimeoutInMs);
24
+ return new Date(Date.now() + timeoutInMs);
25
+ }
26
+ __name(calculateRetryAt, "calculateRetryAt");
27
+ function calculateResetAt(resets, format, now = /* @__PURE__ */ new Date()) {
28
+ if (!resets)
29
+ return;
30
+ switch (format) {
31
+ case "iso_8601_duration_openai_variant": {
32
+ return calculateISO8601DurationOpenAIVariantResetAt(resets, now);
33
+ }
34
+ case "iso_8601": {
35
+ return calculateISO8601ResetAt(resets, now);
36
+ }
37
+ case "unix_timestamp": {
38
+ return calculateUnixTimestampResetAt(resets, now);
39
+ }
40
+ case "unix_timestamp_in_ms": {
41
+ return calculateUnixTimestampInMsResetAt(resets, now);
42
+ }
43
+ }
44
+ }
45
+ __name(calculateResetAt, "calculateResetAt");
46
+ function calculateUnixTimestampResetAt(resets, now = /* @__PURE__ */ new Date()) {
47
+ if (!resets)
48
+ return void 0;
49
+ const resetAt = parseInt(resets, 10);
50
+ if (isNaN(resetAt))
51
+ return void 0;
52
+ return new Date(resetAt * 1e3);
53
+ }
54
+ __name(calculateUnixTimestampResetAt, "calculateUnixTimestampResetAt");
55
+ function calculateUnixTimestampInMsResetAt(resets, now = /* @__PURE__ */ new Date()) {
56
+ if (!resets)
57
+ return void 0;
58
+ const resetAt = parseInt(resets, 10);
59
+ if (isNaN(resetAt))
60
+ return void 0;
61
+ return new Date(resetAt);
62
+ }
63
+ __name(calculateUnixTimestampInMsResetAt, "calculateUnixTimestampInMsResetAt");
64
+ function calculateISO8601ResetAt(resets, now = /* @__PURE__ */ new Date()) {
65
+ if (!resets)
66
+ return void 0;
67
+ const resetAt = new Date(resets);
68
+ if (isNaN(resetAt.getTime()))
69
+ return void 0;
70
+ return resetAt;
71
+ }
72
+ __name(calculateISO8601ResetAt, "calculateISO8601ResetAt");
73
+ function calculateISO8601DurationOpenAIVariantResetAt(resets, now = /* @__PURE__ */ new Date()) {
74
+ if (!resets)
75
+ return void 0;
76
+ const pattern = /^(?:(\d+)d)?(?:(\d+)h)?(?:(\d+)m)?(?:(\d+(?:\.\d+)?)s)?(?:(\d+)ms)?$/;
77
+ const match = resets.match(pattern);
78
+ if (!match)
79
+ return void 0;
80
+ const days = parseInt(match[1], 10) || 0;
81
+ const hours = parseInt(match[2], 10) || 0;
82
+ const minutes = parseInt(match[3], 10) || 0;
83
+ const seconds = parseFloat(match[4]) || 0;
84
+ const milliseconds = parseInt(match[5], 10) || 0;
85
+ const resetAt = new Date(now);
86
+ resetAt.setDate(resetAt.getDate() + days);
87
+ resetAt.setHours(resetAt.getHours() + hours);
88
+ resetAt.setMinutes(resetAt.getMinutes() + minutes);
89
+ resetAt.setSeconds(resetAt.getSeconds() + Math.floor(seconds));
90
+ resetAt.setMilliseconds(resetAt.getMilliseconds() + (seconds - Math.floor(seconds)) * 1e3 + milliseconds);
91
+ return resetAt;
92
+ }
93
+ __name(calculateISO8601DurationOpenAIVariantResetAt, "calculateISO8601DurationOpenAIVariantResetAt");
94
+
95
+ export { calculateResetAt, calculateRetryAt };
96
+ //# sourceMappingURL=out.js.map
97
+ //# sourceMappingURL=retry.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/retry.ts"],"names":["DEFAULT_RETRY_OPTIONS","limit","factor","minTimeoutInMs","maxTimeoutInMs","randomize","calculateRetryAt","retryOptions","attempts","options","retryCount","random","Math","timeoutInMs","round","max","pow","min","Date","now","calculateResetAt","resets","format","calculateISO8601DurationOpenAIVariantResetAt","calculateISO8601ResetAt","calculateUnixTimestampResetAt","calculateUnixTimestampInMsResetAt","undefined","resetAt","parseInt","isNaN","getTime","pattern","match","days","hours","minutes","seconds","parseFloat","milliseconds","setDate","getDate","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","floor","setMilliseconds","getMilliseconds"],"mappings":"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","sourcesContent":["import { RetryOptions } from \"./schemas\";\n\nconst DEFAULT_RETRY_OPTIONS = {\n limit: 5,\n factor: 1.8,\n minTimeoutInMs: 1000,\n maxTimeoutInMs: 60000,\n randomize: true,\n} satisfies RetryOptions;\n\nexport function calculateRetryAt(retryOptions: RetryOptions, attempts: number): Date | undefined {\n const options = {\n ...DEFAULT_RETRY_OPTIONS,\n ...retryOptions,\n };\n\n const retryCount = attempts + 1;\n\n if (retryCount >= options.limit) {\n return;\n }\n\n const random = options.randomize ? Math.random() + 1 : 1;\n\n let timeoutInMs = Math.round(\n random *\n Math.max(options.minTimeoutInMs, 1) *\n Math.pow(options.factor, Math.max(attempts - 1, 0))\n );\n\n timeoutInMs = Math.min(timeoutInMs, options.maxTimeoutInMs);\n\n return new Date(Date.now() + timeoutInMs);\n}\n\nexport function calculateResetAt(\n resets: string | undefined | null,\n format:\n | \"unix_timestamp\"\n | \"iso_8601\"\n | \"iso_8601_duration_openai_variant\"\n | \"unix_timestamp_in_ms\",\n now: Date = new Date()\n): Date | undefined {\n if (!resets) return;\n\n switch (format) {\n case \"iso_8601_duration_openai_variant\": {\n return calculateISO8601DurationOpenAIVariantResetAt(resets, now);\n }\n case \"iso_8601\": {\n return calculateISO8601ResetAt(resets, now);\n }\n case \"unix_timestamp\": {\n return calculateUnixTimestampResetAt(resets, now);\n }\n case \"unix_timestamp_in_ms\": {\n return calculateUnixTimestampInMsResetAt(resets, now);\n }\n }\n}\n\nfunction calculateUnixTimestampResetAt(resets: string, now: Date = new Date()): Date | undefined {\n // Check if the input is null or undefined\n if (!resets) return undefined;\n\n // Convert the string to a number\n const resetAt = parseInt(resets, 10);\n\n // If the string doesn't match the expected format, return undefined\n if (isNaN(resetAt)) return undefined;\n\n // Return the date\n return new Date(resetAt * 1000);\n}\n\nfunction calculateUnixTimestampInMsResetAt(\n resets: string,\n now: Date = new Date()\n): Date | undefined {\n // Check if the input is null or undefined\n if (!resets) return undefined;\n\n // Convert the string to a number\n const resetAt = parseInt(resets, 10);\n\n // If the string doesn't match the expected format, return undefined\n if (isNaN(resetAt)) return undefined;\n\n // Return the date\n return new Date(resetAt);\n}\n\nfunction calculateISO8601ResetAt(resets: string, now: Date = new Date()): Date | undefined {\n // Check if the input is null or undefined\n if (!resets) return undefined;\n\n // Parse the date\n const resetAt = new Date(resets);\n\n // If the string doesn't match the expected format, return undefined\n if (isNaN(resetAt.getTime())) return undefined;\n\n return resetAt;\n}\n\nfunction calculateISO8601DurationOpenAIVariantResetAt(\n resets: string,\n now: Date = new Date()\n): Date | undefined {\n // Check if the input is null or undefined\n if (!resets) return undefined;\n\n // Regular expression to match the duration string pattern\n const pattern = /^(?:(\\d+)d)?(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+(?:\\.\\d+)?)s)?(?:(\\d+)ms)?$/;\n const match = resets.match(pattern);\n\n // If the string doesn't match the expected format, return undefined\n if (!match) return undefined;\n\n // Extract days, hours, minutes, seconds, and milliseconds from the string\n const days = parseInt(match[1], 10) || 0;\n const hours = parseInt(match[2], 10) || 0;\n const minutes = parseInt(match[3], 10) || 0;\n const seconds = parseFloat(match[4]) || 0;\n const milliseconds = parseInt(match[5], 10) || 0;\n\n // Calculate the future date based on the current date plus the extracted time\n const resetAt = new Date(now);\n resetAt.setDate(resetAt.getDate() + days);\n resetAt.setHours(resetAt.getHours() + hours);\n resetAt.setMinutes(resetAt.getMinutes() + minutes);\n resetAt.setSeconds(resetAt.getSeconds() + Math.floor(seconds));\n resetAt.setMilliseconds(\n resetAt.getMilliseconds() + (seconds - Math.floor(seconds)) * 1000 + milliseconds\n );\n\n return resetAt;\n}\n"]}