@trigger.dev/core 3.0.0-beta.5 → 3.0.0-beta.51

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 (201) hide show
  1. package/dist/api-Pl9fxB8v.d.mts +13879 -0
  2. package/dist/api-sNoooMbT.d.ts +13879 -0
  3. package/dist/catalog-H7yFiZ60.d.mts +202 -0
  4. package/dist/catalog-h79CG5Wy.d.ts +202 -0
  5. package/dist/common-CLW82lkt.d.mts +1423 -0
  6. package/dist/common-CLW82lkt.d.ts +1423 -0
  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 -16657
  16. package/dist/index.d.ts +14 -16657
  17. package/dist/index.js +8 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +8 -2
  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-KvCabW1a.d.mts +18 -0
  24. package/dist/manager-OBA35PzR.d.ts +18 -0
  25. package/dist/messages-JvHJ83wv.d.mts +19428 -0
  26. package/dist/messages-JvHJ83wv.d.ts +19428 -0
  27. package/dist/replacements.d.mts +22 -0
  28. package/dist/replacements.d.ts +22 -0
  29. package/dist/replacements.js +33 -0
  30. package/dist/replacements.js.map +1 -0
  31. package/dist/replacements.mjs +28 -0
  32. package/dist/replacements.mjs.map +1 -0
  33. package/dist/requestFilter-HNZQEpQb.d.ts +180 -0
  34. package/dist/requestFilter-b5W2_1oP.d.mts +180 -0
  35. package/dist/requestFilterMatches.d.mts +13 -0
  36. package/dist/requestFilterMatches.d.ts +13 -0
  37. package/dist/requestFilterMatches.js +238 -0
  38. package/dist/requestFilterMatches.js.map +1 -0
  39. package/dist/requestFilterMatches.mjs +235 -0
  40. package/dist/requestFilterMatches.mjs.map +1 -0
  41. package/dist/retry.d.mts +10 -0
  42. package/dist/retry.d.ts +10 -0
  43. package/dist/retry.js +100 -0
  44. package/dist/retry.js.map +1 -0
  45. package/dist/retry.mjs +97 -0
  46. package/dist/retry.mjs.map +1 -0
  47. package/dist/schemas/index.d.mts +2611 -0
  48. package/dist/schemas/index.d.ts +2611 -0
  49. package/dist/schemas/index.js +1630 -0
  50. package/dist/schemas/index.js.map +1 -0
  51. package/dist/schemas/index.mjs +1463 -0
  52. package/dist/schemas/index.mjs.map +1 -0
  53. package/dist/schemas-C9ssfehv.d.mts +2568 -0
  54. package/dist/schemas-C9ssfehv.d.ts +2568 -0
  55. package/dist/taskLogger-CzADe4je.d.ts +33 -0
  56. package/dist/taskLogger-r_AFTX45.d.mts +33 -0
  57. package/dist/tracer-N0p2Fuuv.d.mts +23 -0
  58. package/dist/tracer-N0p2Fuuv.d.ts +23 -0
  59. package/dist/types.d.mts +11 -0
  60. package/dist/types.d.ts +11 -0
  61. package/dist/types.js +4 -0
  62. package/dist/types.js.map +1 -0
  63. package/dist/types.mjs +3 -0
  64. package/dist/types.mjs.map +1 -0
  65. package/dist/utils.d.mts +7 -0
  66. package/dist/utils.d.ts +7 -0
  67. package/dist/utils.js +33 -0
  68. package/dist/utils.js.map +1 -0
  69. package/dist/utils.mjs +30 -0
  70. package/dist/utils.mjs.map +1 -0
  71. package/dist/v3/dev/index.d.mts +29 -0
  72. package/dist/v3/dev/index.d.ts +29 -0
  73. package/dist/v3/dev/index.js +93 -0
  74. package/dist/v3/dev/index.js.map +1 -0
  75. package/dist/v3/dev/index.mjs +91 -0
  76. package/dist/v3/dev/index.mjs.map +1 -0
  77. package/dist/v3/errors.d.mts +39 -0
  78. package/dist/v3/errors.d.ts +39 -0
  79. package/dist/v3/errors.js +204 -0
  80. package/dist/v3/errors.js.map +1 -0
  81. package/dist/v3/errors.mjs +195 -0
  82. package/dist/v3/errors.mjs.map +1 -0
  83. package/dist/v3/index.d.mts +445 -20508
  84. package/dist/v3/index.d.ts +445 -20508
  85. package/dist/v3/index.js +2843 -2884
  86. package/dist/v3/index.js.map +1 -1
  87. package/dist/v3/index.mjs +2785 -2856
  88. package/dist/v3/index.mjs.map +1 -1
  89. package/dist/v3/logger-api.d.mts +24 -0
  90. package/dist/v3/logger-api.d.ts +24 -0
  91. package/dist/v3/logger-api.js +118 -0
  92. package/dist/v3/logger-api.js.map +1 -0
  93. package/dist/v3/logger-api.mjs +116 -0
  94. package/dist/v3/logger-api.mjs.map +1 -0
  95. package/dist/v3/otel/index.js +119 -53
  96. package/dist/v3/otel/index.js.map +1 -1
  97. package/dist/v3/otel/index.mjs +119 -53
  98. package/dist/v3/otel/index.mjs.map +1 -1
  99. package/dist/v3/prod/index.d.mts +46 -0
  100. package/dist/v3/prod/index.d.ts +46 -0
  101. package/dist/v3/prod/index.js +180 -0
  102. package/dist/v3/prod/index.js.map +1 -0
  103. package/dist/v3/prod/index.mjs +178 -0
  104. package/dist/v3/prod/index.mjs.map +1 -0
  105. package/dist/v3/schemas/index.d.mts +4807 -0
  106. package/dist/v3/schemas/index.d.ts +4807 -0
  107. package/dist/v3/schemas/index.js +2054 -0
  108. package/dist/v3/schemas/index.js.map +1 -0
  109. package/dist/v3/schemas/index.mjs +1913 -0
  110. package/dist/v3/schemas/index.mjs.map +1 -0
  111. package/dist/v3/semanticInternalAttributes.d.mts +56 -0
  112. package/dist/v3/semanticInternalAttributes.d.ts +56 -0
  113. package/dist/v3/semanticInternalAttributes.js +61 -0
  114. package/dist/v3/semanticInternalAttributes.js.map +1 -0
  115. package/dist/v3/semanticInternalAttributes.mjs +59 -0
  116. package/dist/v3/semanticInternalAttributes.mjs.map +1 -0
  117. package/dist/v3/utils/durations.d.mts +15 -0
  118. package/dist/v3/utils/durations.d.ts +15 -0
  119. package/dist/v3/utils/durations.js +93 -0
  120. package/dist/v3/utils/durations.js.map +1 -0
  121. package/dist/v3/utils/durations.mjs +82 -0
  122. package/dist/v3/utils/durations.mjs.map +1 -0
  123. package/dist/v3/utils/flattenAttributes.d.mts +8 -0
  124. package/dist/v3/utils/flattenAttributes.d.ts +8 -0
  125. package/dist/v3/utils/flattenAttributes.js +131 -0
  126. package/dist/v3/utils/flattenAttributes.js.map +1 -0
  127. package/dist/v3/utils/flattenAttributes.mjs +126 -0
  128. package/dist/v3/utils/flattenAttributes.mjs.map +1 -0
  129. package/dist/v3/utils/ioSerialization.d.mts +21 -0
  130. package/dist/v3/utils/ioSerialization.d.ts +21 -0
  131. package/dist/v3/utils/ioSerialization.js +2392 -0
  132. package/dist/v3/utils/ioSerialization.js.map +1 -0
  133. package/dist/v3/utils/ioSerialization.mjs +2383 -0
  134. package/dist/v3/utils/ioSerialization.mjs.map +1 -0
  135. package/dist/v3/utils/omit.d.mts +3 -0
  136. package/dist/v3/utils/omit.d.ts +3 -0
  137. package/dist/v3/utils/omit.js +20 -0
  138. package/dist/v3/utils/omit.js.map +1 -0
  139. package/dist/v3/utils/omit.mjs +18 -0
  140. package/dist/v3/utils/omit.mjs.map +1 -0
  141. package/dist/v3/utils/retries.d.mts +46 -0
  142. package/dist/v3/utils/retries.d.ts +46 -0
  143. package/dist/v3/utils/retries.js +118 -0
  144. package/dist/v3/utils/retries.js.map +1 -0
  145. package/dist/v3/utils/retries.mjs +113 -0
  146. package/dist/v3/utils/retries.mjs.map +1 -0
  147. package/dist/v3/utils/structuredLogger.d.mts +31 -0
  148. package/dist/v3/utils/structuredLogger.d.ts +31 -0
  149. package/dist/v3/utils/structuredLogger.js +88 -0
  150. package/dist/v3/utils/structuredLogger.js.map +1 -0
  151. package/dist/v3/utils/structuredLogger.mjs +86 -0
  152. package/dist/v3/utils/structuredLogger.mjs.map +1 -0
  153. package/dist/v3/utils/timers.d.mts +6 -0
  154. package/dist/v3/utils/timers.d.ts +6 -0
  155. package/dist/v3/utils/timers.js +31 -0
  156. package/dist/v3/utils/timers.js.map +1 -0
  157. package/dist/v3/utils/timers.mjs +28 -0
  158. package/dist/v3/utils/timers.mjs.map +1 -0
  159. package/dist/v3/workers/index.d.mts +144 -0
  160. package/dist/v3/workers/index.d.ts +144 -0
  161. package/dist/v3/workers/index.js +3708 -0
  162. package/dist/v3/workers/index.js.map +1 -0
  163. package/dist/v3/workers/index.mjs +3689 -0
  164. package/dist/v3/workers/index.mjs.map +1 -0
  165. package/dist/v3/zodIpc.d.mts +32 -0
  166. package/dist/v3/zodIpc.d.ts +32 -0
  167. package/dist/v3/zodIpc.js +268 -0
  168. package/dist/v3/zodIpc.js.map +1 -0
  169. package/dist/v3/zodIpc.mjs +266 -0
  170. package/dist/v3/zodIpc.mjs.map +1 -0
  171. package/dist/v3/zodMessageHandler.d.mts +82 -0
  172. package/dist/v3/zodMessageHandler.d.ts +82 -0
  173. package/dist/v3/zodMessageHandler.js +222 -0
  174. package/dist/v3/zodMessageHandler.js.map +1 -0
  175. package/dist/v3/zodMessageHandler.mjs +217 -0
  176. package/dist/v3/zodMessageHandler.mjs.map +1 -0
  177. package/dist/v3/zodNamespace.d.mts +3663 -0
  178. package/dist/v3/zodNamespace.d.ts +3663 -0
  179. package/dist/v3/zodNamespace.js +397 -0
  180. package/dist/v3/zodNamespace.js.map +1 -0
  181. package/dist/v3/zodNamespace.mjs +395 -0
  182. package/dist/v3/zodNamespace.mjs.map +1 -0
  183. package/dist/v3/zodSocket.d.mts +93 -0
  184. package/dist/v3/zodSocket.d.ts +93 -0
  185. package/dist/v3/zodSocket.js +350 -0
  186. package/dist/v3/zodSocket.js.map +1 -0
  187. package/dist/v3/zodSocket.mjs +346 -0
  188. package/dist/v3/zodSocket.mjs.map +1 -0
  189. package/dist/v3/zodfetch.d.mts +219 -0
  190. package/dist/v3/zodfetch.d.ts +219 -0
  191. package/dist/v3/zodfetch.js +834 -0
  192. package/dist/v3/zodfetch.js.map +1 -0
  193. package/dist/v3/zodfetch.mjs +811 -0
  194. package/dist/v3/zodfetch.mjs.map +1 -0
  195. package/dist/versions.d.mts +11 -0
  196. package/dist/versions.d.ts +11 -0
  197. package/dist/versions.js +31 -0
  198. package/dist/versions.js.map +1 -0
  199. package/dist/versions.mjs +27 -0
  200. package/dist/versions.mjs.map +1 -0
  201. package/package.json +223 -5
@@ -0,0 +1,46 @@
1
+ import { R as RetryOptions } from '../../schemas-C9ssfehv.js';
2
+ import 'zod';
3
+
4
+ declare const defaultRetryOptions: {
5
+ maxAttempts: number;
6
+ factor: number;
7
+ minTimeoutInMs: number;
8
+ maxTimeoutInMs: number;
9
+ randomize: true;
10
+ };
11
+ declare const defaultFetchRetryOptions: {
12
+ byStatus: {
13
+ "429,408,409,5xx": {
14
+ maxAttempts: number;
15
+ factor: number;
16
+ minTimeoutInMs: number;
17
+ maxTimeoutInMs: number;
18
+ randomize: true;
19
+ strategy: "backoff";
20
+ };
21
+ };
22
+ connectionError: {
23
+ maxAttempts: number;
24
+ factor: number;
25
+ minTimeoutInMs: number;
26
+ maxTimeoutInMs: number;
27
+ randomize: true;
28
+ };
29
+ timeout: {
30
+ maxAttempts: number;
31
+ factor: number;
32
+ minTimeoutInMs: number;
33
+ maxTimeoutInMs: number;
34
+ randomize: true;
35
+ };
36
+ };
37
+ /**
38
+ *
39
+ * @param options
40
+ * @param attempt - The current attempt number. If the first attempt has failed, this will be 1.
41
+ * @returns
42
+ */
43
+ declare function calculateNextRetryDelay(options: RetryOptions, attempt: number): number | undefined;
44
+ declare function calculateResetAt(resets: string | undefined | null, format: "unix_timestamp" | "iso_8601" | "iso_8601_duration_openai_variant" | "unix_timestamp_in_ms", now?: number): number | undefined;
45
+
46
+ export { calculateNextRetryDelay, calculateResetAt, defaultFetchRetryOptions, defaultRetryOptions };
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+
6
+ // src/retry.ts
7
+ function calculateResetAt(resets, format, now = /* @__PURE__ */ new Date()) {
8
+ if (!resets)
9
+ return;
10
+ switch (format) {
11
+ case "iso_8601_duration_openai_variant": {
12
+ return calculateISO8601DurationOpenAIVariantResetAt(resets, now);
13
+ }
14
+ case "iso_8601": {
15
+ return calculateISO8601ResetAt(resets, now);
16
+ }
17
+ case "unix_timestamp": {
18
+ return calculateUnixTimestampResetAt(resets, now);
19
+ }
20
+ case "unix_timestamp_in_ms": {
21
+ return calculateUnixTimestampInMsResetAt(resets, now);
22
+ }
23
+ }
24
+ }
25
+ __name(calculateResetAt, "calculateResetAt");
26
+ function calculateUnixTimestampResetAt(resets, now = /* @__PURE__ */ new Date()) {
27
+ if (!resets)
28
+ return void 0;
29
+ const resetAt = parseInt(resets, 10);
30
+ if (isNaN(resetAt))
31
+ return void 0;
32
+ return new Date(resetAt * 1e3);
33
+ }
34
+ __name(calculateUnixTimestampResetAt, "calculateUnixTimestampResetAt");
35
+ function calculateUnixTimestampInMsResetAt(resets, now = /* @__PURE__ */ new Date()) {
36
+ if (!resets)
37
+ return void 0;
38
+ const resetAt = parseInt(resets, 10);
39
+ if (isNaN(resetAt))
40
+ return void 0;
41
+ return new Date(resetAt);
42
+ }
43
+ __name(calculateUnixTimestampInMsResetAt, "calculateUnixTimestampInMsResetAt");
44
+ function calculateISO8601ResetAt(resets, now = /* @__PURE__ */ new Date()) {
45
+ if (!resets)
46
+ return void 0;
47
+ const resetAt = new Date(resets);
48
+ if (isNaN(resetAt.getTime()))
49
+ return void 0;
50
+ return resetAt;
51
+ }
52
+ __name(calculateISO8601ResetAt, "calculateISO8601ResetAt");
53
+ function calculateISO8601DurationOpenAIVariantResetAt(resets, now = /* @__PURE__ */ new Date()) {
54
+ if (!resets)
55
+ return void 0;
56
+ const pattern = /^(?:(\d+)d)?(?:(\d+)h)?(?:(\d+)m)?(?:(\d+(?:\.\d+)?)s)?(?:(\d+)ms)?$/;
57
+ const match = resets.match(pattern);
58
+ if (!match)
59
+ return void 0;
60
+ const days = parseInt(match[1], 10) || 0;
61
+ const hours = parseInt(match[2], 10) || 0;
62
+ const minutes = parseInt(match[3], 10) || 0;
63
+ const seconds = parseFloat(match[4]) || 0;
64
+ const milliseconds = parseInt(match[5], 10) || 0;
65
+ const resetAt = new Date(now);
66
+ resetAt.setDate(resetAt.getDate() + days);
67
+ resetAt.setHours(resetAt.getHours() + hours);
68
+ resetAt.setMinutes(resetAt.getMinutes() + minutes);
69
+ resetAt.setSeconds(resetAt.getSeconds() + Math.floor(seconds));
70
+ resetAt.setMilliseconds(resetAt.getMilliseconds() + (seconds - Math.floor(seconds)) * 1e3 + milliseconds);
71
+ return resetAt;
72
+ }
73
+ __name(calculateISO8601DurationOpenAIVariantResetAt, "calculateISO8601DurationOpenAIVariantResetAt");
74
+
75
+ // src/v3/utils/retries.ts
76
+ var defaultRetryOptions = {
77
+ maxAttempts: 3,
78
+ factor: 2,
79
+ minTimeoutInMs: 1e3,
80
+ maxTimeoutInMs: 6e4,
81
+ randomize: true
82
+ };
83
+ var defaultFetchRetryOptions = {
84
+ byStatus: {
85
+ "429,408,409,5xx": {
86
+ strategy: "backoff",
87
+ ...defaultRetryOptions
88
+ }
89
+ },
90
+ connectionError: defaultRetryOptions,
91
+ timeout: defaultRetryOptions
92
+ };
93
+ function calculateNextRetryDelay(options, attempt) {
94
+ const opts = {
95
+ ...defaultRetryOptions,
96
+ ...options
97
+ };
98
+ if (attempt >= opts.maxAttempts) {
99
+ return;
100
+ }
101
+ const { factor, minTimeoutInMs, maxTimeoutInMs, randomize } = opts;
102
+ const random = randomize ? Math.random() + 1 : 1;
103
+ const timeout = Math.min(maxTimeoutInMs, random * minTimeoutInMs * Math.pow(factor, attempt - 1));
104
+ return Math.round(timeout);
105
+ }
106
+ __name(calculateNextRetryDelay, "calculateNextRetryDelay");
107
+ function calculateResetAt2(resets, format, now = Date.now()) {
108
+ const resetAt = calculateResetAt(resets, format, new Date(now));
109
+ return resetAt?.getTime();
110
+ }
111
+ __name(calculateResetAt2, "calculateResetAt");
112
+
113
+ exports.calculateNextRetryDelay = calculateNextRetryDelay;
114
+ exports.calculateResetAt = calculateResetAt2;
115
+ exports.defaultFetchRetryOptions = defaultFetchRetryOptions;
116
+ exports.defaultRetryOptions = defaultRetryOptions;
117
+ //# sourceMappingURL=out.js.map
118
+ //# sourceMappingURL=retries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/retry.ts","../../../src/v3/utils/retries.ts"],"names":["calculateResetAt","resets","format","now","Date","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","Math","floor","setMilliseconds","getMilliseconds","defaultRetryOptions","maxAttempts","factor","minTimeoutInMs","maxTimeoutInMs","randomize","defaultFetchRetryOptions","byStatus","strategy","connectionError","timeout","calculateNextRetryDelay","options","attempt","opts","random","min","pow","round","calculateResetAtInternal"],"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","import { calculateResetAt as calculateResetAtInternal } from \"../../retry\";\nimport { FetchRetryOptions, type RetryOptions } from \"../schemas\";\n\nexport const defaultRetryOptions = {\n maxAttempts: 3,\n factor: 2,\n minTimeoutInMs: 1000,\n maxTimeoutInMs: 60000,\n randomize: true,\n} satisfies RetryOptions;\n\nexport const defaultFetchRetryOptions = {\n byStatus: {\n \"429,408,409,5xx\": {\n strategy: \"backoff\",\n ...defaultRetryOptions,\n },\n },\n connectionError: defaultRetryOptions,\n timeout: defaultRetryOptions,\n} satisfies FetchRetryOptions;\n\n/**\n *\n * @param options\n * @param attempt - The current attempt number. If the first attempt has failed, this will be 1.\n * @returns\n */\nexport function calculateNextRetryDelay(options: RetryOptions, attempt: number) {\n const opts = { ...defaultRetryOptions, ...options };\n\n if (attempt >= opts.maxAttempts) {\n return;\n }\n\n const { factor, minTimeoutInMs, maxTimeoutInMs, randomize } = opts;\n\n const random = randomize ? Math.random() + 1 : 1;\n\n const timeout = Math.min(maxTimeoutInMs, random * minTimeoutInMs * Math.pow(factor, attempt - 1));\n\n // Round to the nearest integer\n return Math.round(timeout);\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: number = Date.now()\n): number | undefined {\n const resetAt = calculateResetAtInternal(resets, format, new Date(now));\n\n return resetAt?.getTime();\n}\n"]}
@@ -0,0 +1,113 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/retry.ts
5
+ function calculateResetAt(resets, format, now = /* @__PURE__ */ new Date()) {
6
+ if (!resets)
7
+ return;
8
+ switch (format) {
9
+ case "iso_8601_duration_openai_variant": {
10
+ return calculateISO8601DurationOpenAIVariantResetAt(resets, now);
11
+ }
12
+ case "iso_8601": {
13
+ return calculateISO8601ResetAt(resets, now);
14
+ }
15
+ case "unix_timestamp": {
16
+ return calculateUnixTimestampResetAt(resets, now);
17
+ }
18
+ case "unix_timestamp_in_ms": {
19
+ return calculateUnixTimestampInMsResetAt(resets, now);
20
+ }
21
+ }
22
+ }
23
+ __name(calculateResetAt, "calculateResetAt");
24
+ function calculateUnixTimestampResetAt(resets, now = /* @__PURE__ */ new Date()) {
25
+ if (!resets)
26
+ return void 0;
27
+ const resetAt = parseInt(resets, 10);
28
+ if (isNaN(resetAt))
29
+ return void 0;
30
+ return new Date(resetAt * 1e3);
31
+ }
32
+ __name(calculateUnixTimestampResetAt, "calculateUnixTimestampResetAt");
33
+ function calculateUnixTimestampInMsResetAt(resets, now = /* @__PURE__ */ new Date()) {
34
+ if (!resets)
35
+ return void 0;
36
+ const resetAt = parseInt(resets, 10);
37
+ if (isNaN(resetAt))
38
+ return void 0;
39
+ return new Date(resetAt);
40
+ }
41
+ __name(calculateUnixTimestampInMsResetAt, "calculateUnixTimestampInMsResetAt");
42
+ function calculateISO8601ResetAt(resets, now = /* @__PURE__ */ new Date()) {
43
+ if (!resets)
44
+ return void 0;
45
+ const resetAt = new Date(resets);
46
+ if (isNaN(resetAt.getTime()))
47
+ return void 0;
48
+ return resetAt;
49
+ }
50
+ __name(calculateISO8601ResetAt, "calculateISO8601ResetAt");
51
+ function calculateISO8601DurationOpenAIVariantResetAt(resets, now = /* @__PURE__ */ new Date()) {
52
+ if (!resets)
53
+ return void 0;
54
+ const pattern = /^(?:(\d+)d)?(?:(\d+)h)?(?:(\d+)m)?(?:(\d+(?:\.\d+)?)s)?(?:(\d+)ms)?$/;
55
+ const match = resets.match(pattern);
56
+ if (!match)
57
+ return void 0;
58
+ const days = parseInt(match[1], 10) || 0;
59
+ const hours = parseInt(match[2], 10) || 0;
60
+ const minutes = parseInt(match[3], 10) || 0;
61
+ const seconds = parseFloat(match[4]) || 0;
62
+ const milliseconds = parseInt(match[5], 10) || 0;
63
+ const resetAt = new Date(now);
64
+ resetAt.setDate(resetAt.getDate() + days);
65
+ resetAt.setHours(resetAt.getHours() + hours);
66
+ resetAt.setMinutes(resetAt.getMinutes() + minutes);
67
+ resetAt.setSeconds(resetAt.getSeconds() + Math.floor(seconds));
68
+ resetAt.setMilliseconds(resetAt.getMilliseconds() + (seconds - Math.floor(seconds)) * 1e3 + milliseconds);
69
+ return resetAt;
70
+ }
71
+ __name(calculateISO8601DurationOpenAIVariantResetAt, "calculateISO8601DurationOpenAIVariantResetAt");
72
+
73
+ // src/v3/utils/retries.ts
74
+ var defaultRetryOptions = {
75
+ maxAttempts: 3,
76
+ factor: 2,
77
+ minTimeoutInMs: 1e3,
78
+ maxTimeoutInMs: 6e4,
79
+ randomize: true
80
+ };
81
+ var defaultFetchRetryOptions = {
82
+ byStatus: {
83
+ "429,408,409,5xx": {
84
+ strategy: "backoff",
85
+ ...defaultRetryOptions
86
+ }
87
+ },
88
+ connectionError: defaultRetryOptions,
89
+ timeout: defaultRetryOptions
90
+ };
91
+ function calculateNextRetryDelay(options, attempt) {
92
+ const opts = {
93
+ ...defaultRetryOptions,
94
+ ...options
95
+ };
96
+ if (attempt >= opts.maxAttempts) {
97
+ return;
98
+ }
99
+ const { factor, minTimeoutInMs, maxTimeoutInMs, randomize } = opts;
100
+ const random = randomize ? Math.random() + 1 : 1;
101
+ const timeout = Math.min(maxTimeoutInMs, random * minTimeoutInMs * Math.pow(factor, attempt - 1));
102
+ return Math.round(timeout);
103
+ }
104
+ __name(calculateNextRetryDelay, "calculateNextRetryDelay");
105
+ function calculateResetAt2(resets, format, now = Date.now()) {
106
+ const resetAt = calculateResetAt(resets, format, new Date(now));
107
+ return resetAt?.getTime();
108
+ }
109
+ __name(calculateResetAt2, "calculateResetAt");
110
+
111
+ export { calculateNextRetryDelay, calculateResetAt2 as calculateResetAt, defaultFetchRetryOptions, defaultRetryOptions };
112
+ //# sourceMappingURL=out.js.map
113
+ //# sourceMappingURL=retries.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/retry.ts","../../../src/v3/utils/retries.ts"],"names":["calculateResetAt","resets","format","now","Date","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","Math","floor","setMilliseconds","getMilliseconds","defaultRetryOptions","maxAttempts","factor","minTimeoutInMs","maxTimeoutInMs","randomize","defaultFetchRetryOptions","byStatus","strategy","connectionError","timeout","calculateNextRetryDelay","options","attempt","opts","random","min","pow","round","calculateResetAtInternal"],"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","import { calculateResetAt as calculateResetAtInternal } from \"../../retry\";\nimport { FetchRetryOptions, type RetryOptions } from \"../schemas\";\n\nexport const defaultRetryOptions = {\n maxAttempts: 3,\n factor: 2,\n minTimeoutInMs: 1000,\n maxTimeoutInMs: 60000,\n randomize: true,\n} satisfies RetryOptions;\n\nexport const defaultFetchRetryOptions = {\n byStatus: {\n \"429,408,409,5xx\": {\n strategy: \"backoff\",\n ...defaultRetryOptions,\n },\n },\n connectionError: defaultRetryOptions,\n timeout: defaultRetryOptions,\n} satisfies FetchRetryOptions;\n\n/**\n *\n * @param options\n * @param attempt - The current attempt number. If the first attempt has failed, this will be 1.\n * @returns\n */\nexport function calculateNextRetryDelay(options: RetryOptions, attempt: number) {\n const opts = { ...defaultRetryOptions, ...options };\n\n if (attempt >= opts.maxAttempts) {\n return;\n }\n\n const { factor, minTimeoutInMs, maxTimeoutInMs, randomize } = opts;\n\n const random = randomize ? Math.random() + 1 : 1;\n\n const timeout = Math.min(maxTimeoutInMs, random * minTimeoutInMs * Math.pow(factor, attempt - 1));\n\n // Round to the nearest integer\n return Math.round(timeout);\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: number = Date.now()\n): number | undefined {\n const resetAt = calculateResetAtInternal(resets, format, new Date(now));\n\n return resetAt?.getTime();\n}\n"]}
@@ -0,0 +1,31 @@
1
+ type StructuredArgs = (Record<string, unknown> | undefined)[];
2
+ interface StructuredLogger {
3
+ log: (message: string, ...args: StructuredArgs) => any;
4
+ error: (message: string, ...args: StructuredArgs) => any;
5
+ warn: (message: string, ...args: StructuredArgs) => any;
6
+ info: (message: string, ...args: StructuredArgs) => any;
7
+ debug: (message: string, ...args: StructuredArgs) => any;
8
+ child: (fields: Record<string, unknown>) => StructuredLogger;
9
+ }
10
+ declare enum LogLevel {
11
+ "log" = 0,
12
+ "error" = 1,
13
+ "warn" = 2,
14
+ "info" = 3,
15
+ "debug" = 4
16
+ }
17
+ declare class SimpleStructuredLogger implements StructuredLogger {
18
+ #private;
19
+ private name;
20
+ private level;
21
+ private fields?;
22
+ constructor(name: string, level?: LogLevel, fields?: Record<string, unknown> | undefined);
23
+ child(fields: Record<string, unknown>, level?: LogLevel): SimpleStructuredLogger;
24
+ log(message: string, ...args: StructuredArgs): void;
25
+ error(message: string, ...args: StructuredArgs): void;
26
+ warn(message: string, ...args: StructuredArgs): void;
27
+ info(message: string, ...args: StructuredArgs): void;
28
+ debug(message: string, ...args: StructuredArgs): void;
29
+ }
30
+
31
+ export { LogLevel, SimpleStructuredLogger, type StructuredLogger };
@@ -0,0 +1,31 @@
1
+ type StructuredArgs = (Record<string, unknown> | undefined)[];
2
+ interface StructuredLogger {
3
+ log: (message: string, ...args: StructuredArgs) => any;
4
+ error: (message: string, ...args: StructuredArgs) => any;
5
+ warn: (message: string, ...args: StructuredArgs) => any;
6
+ info: (message: string, ...args: StructuredArgs) => any;
7
+ debug: (message: string, ...args: StructuredArgs) => any;
8
+ child: (fields: Record<string, unknown>) => StructuredLogger;
9
+ }
10
+ declare enum LogLevel {
11
+ "log" = 0,
12
+ "error" = 1,
13
+ "warn" = 2,
14
+ "info" = 3,
15
+ "debug" = 4
16
+ }
17
+ declare class SimpleStructuredLogger implements StructuredLogger {
18
+ #private;
19
+ private name;
20
+ private level;
21
+ private fields?;
22
+ constructor(name: string, level?: LogLevel, fields?: Record<string, unknown> | undefined);
23
+ child(fields: Record<string, unknown>, level?: LogLevel): SimpleStructuredLogger;
24
+ log(message: string, ...args: StructuredArgs): void;
25
+ error(message: string, ...args: StructuredArgs): void;
26
+ warn(message: string, ...args: StructuredArgs): void;
27
+ info(message: string, ...args: StructuredArgs): void;
28
+ debug(message: string, ...args: StructuredArgs): void;
29
+ }
30
+
31
+ export { LogLevel, SimpleStructuredLogger, type StructuredLogger };
@@ -0,0 +1,88 @@
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ var __accessCheck = (obj, member, msg) => {
6
+ if (!member.has(obj))
7
+ throw TypeError("Cannot " + msg);
8
+ };
9
+ var __privateAdd = (obj, member, value) => {
10
+ if (member.has(obj))
11
+ throw TypeError("Cannot add the same private member more than once");
12
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
13
+ };
14
+ var __privateMethod = (obj, member, method) => {
15
+ __accessCheck(obj, member, "access private method");
16
+ return method;
17
+ };
18
+
19
+ // src/v3/utils/structuredLogger.ts
20
+ exports.LogLevel = void 0;
21
+ (function(LogLevel2) {
22
+ LogLevel2[LogLevel2["log"] = 0] = "log";
23
+ LogLevel2[LogLevel2["error"] = 1] = "error";
24
+ LogLevel2[LogLevel2["warn"] = 2] = "warn";
25
+ LogLevel2[LogLevel2["info"] = 3] = "info";
26
+ LogLevel2[LogLevel2["debug"] = 4] = "debug";
27
+ })(exports.LogLevel || (exports.LogLevel = {}));
28
+ var _structuredLog, structuredLog_fn;
29
+ var _SimpleStructuredLogger = class _SimpleStructuredLogger {
30
+ constructor(name, level = [
31
+ "1",
32
+ "true"
33
+ ].includes(process.env.DEBUG ?? "") ? exports.LogLevel.debug : exports.LogLevel.info, fields) {
34
+ __privateAdd(this, _structuredLog);
35
+ this.name = name;
36
+ this.level = level;
37
+ this.fields = fields;
38
+ }
39
+ child(fields, level) {
40
+ return new _SimpleStructuredLogger(this.name, level, {
41
+ ...this.fields,
42
+ ...fields
43
+ });
44
+ }
45
+ log(message, ...args) {
46
+ if (this.level < exports.LogLevel.log)
47
+ return;
48
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.log, message, "log", ...args);
49
+ }
50
+ error(message, ...args) {
51
+ if (this.level < exports.LogLevel.error)
52
+ return;
53
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.error, message, "error", ...args);
54
+ }
55
+ warn(message, ...args) {
56
+ if (this.level < exports.LogLevel.warn)
57
+ return;
58
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.warn, message, "warn", ...args);
59
+ }
60
+ info(message, ...args) {
61
+ if (this.level < exports.LogLevel.info)
62
+ return;
63
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.info, message, "info", ...args);
64
+ }
65
+ debug(message, ...args) {
66
+ if (this.level < exports.LogLevel.debug)
67
+ return;
68
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.debug, message, "debug", ...args);
69
+ }
70
+ };
71
+ _structuredLog = new WeakSet();
72
+ structuredLog_fn = /* @__PURE__ */ __name(function(loggerFunction, message, level, ...args) {
73
+ const structuredLog = {
74
+ ...args.length === 1 ? args[0] : args,
75
+ ...this.fields,
76
+ timestamp: /* @__PURE__ */ new Date(),
77
+ name: this.name,
78
+ message,
79
+ level
80
+ };
81
+ loggerFunction(JSON.stringify(structuredLog));
82
+ }, "#structuredLog");
83
+ __name(_SimpleStructuredLogger, "SimpleStructuredLogger");
84
+ var SimpleStructuredLogger = _SimpleStructuredLogger;
85
+
86
+ exports.SimpleStructuredLogger = SimpleStructuredLogger;
87
+ //# sourceMappingURL=out.js.map
88
+ //# sourceMappingURL=structuredLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/v3/utils/structuredLogger.ts"],"names":["LogLevel","SimpleStructuredLogger","constructor","name","level","includes","process","env","DEBUG","debug","info","fields","child","log","message","args","console","error","warn","loggerFunction","structuredLog","length","timestamp","Date","JSON","stringify"],"mappings":";;;;;;;;;;;;;;;;;IAWO;UAAKA,WAAQ;AAARA,EAAAA,UAAAA,UACV,KAAA,IAAA,CAAA,IAAA;AADUA,EAAAA,UAAAA,UAEV,OAAA,IAAA,CAAA,IAAA;AAFUA,EAAAA,UAAAA,UAGV,MAAA,IAAA,CAAA,IAAA;AAHUA,EAAAA,UAAAA,UAIV,MAAA,IAAA,CAAA,IAAA;AAJUA,EAAAA,UAAAA,UAKV,OAAA,IAAA,CAAA,IAAA;GALUA,aAAAA,WAAAA,CAAAA,EAAAA;;AAQL,IAAMC,0BAAN,MAAMA,wBAAAA;EACXC,YACUC,MACAC,QAAkB;IAAC;IAAK;IAAQC,SAASC,QAAQC,IAAIC,SAAS,EAAA,IAClER,SAASS,QACTT,SAASU,MACLC,QACR;AAoCF;gBAzCUR;iBACAC;kBAGAO;EACP;EAEHC,MAAMD,QAAiCP,OAAkB;AACvD,WAAO,IAAIH,wBAAuB,KAAKE,MAAMC,OAAO;MAAE,GAAG,KAAKO;MAAQ,GAAGA;IAAO,CAAA;EAClF;EAEAE,IAAIC,YAAoBC,MAAsB;AAC5C,QAAI,KAAKX,QAAQJ,SAASa;AAAK;AAE/B,0BAAK,kCAAL,WAAoBG,QAAQH,KAAKC,SAAS,OAAA,GAAUC;EACtD;EAEAE,MAAMH,YAAoBC,MAAsB;AAC9C,QAAI,KAAKX,QAAQJ,SAASiB;AAAO;AAEjC,0BAAK,kCAAL,WAAoBD,QAAQC,OAAOH,SAAS,SAAA,GAAYC;EAC1D;EAEAG,KAAKJ,YAAoBC,MAAsB;AAC7C,QAAI,KAAKX,QAAQJ,SAASkB;AAAM;AAEhC,0BAAK,kCAAL,WAAoBF,QAAQE,MAAMJ,SAAS,QAAA,GAAWC;EACxD;EAEAL,KAAKI,YAAoBC,MAAsB;AAC7C,QAAI,KAAKX,QAAQJ,SAASU;AAAM;AAEhC,0BAAK,kCAAL,WAAoBM,QAAQN,MAAMI,SAAS,QAAA,GAAWC;EACxD;EAEAN,MAAMK,YAAoBC,MAAsB;AAC9C,QAAI,KAAKX,QAAQJ,SAASS;AAAO;AAEjC,0BAAK,kCAAL,WAAoBO,QAAQP,OAAOK,SAAS,SAAA,GAAYC;EAC1D;AAmBF;AAjBE;mBAAc,gCACZI,gBACAL,SACAV,UACGW,MACH;AACA,QAAMK,gBAAgB;IACpB,GAAIL,KAAKM,WAAW,IAAIN,KAAK,CAAA,IAAKA;IAClC,GAAG,KAAKJ;IACRW,WAAW,oBAAIC,KAAAA;IACfpB,MAAM,KAAKA;IACXW;IACAV;EACF;AAEAe,iBAAeK,KAAKC,UAAUL,aAAAA,CAAAA;AAChC,GAhBc;AA3CHnB;AAAN,IAAMA,yBAAN","sourcesContent":["type StructuredArgs = (Record<string, unknown> | undefined)[];\n\nexport interface StructuredLogger {\n log: (message: string, ...args: StructuredArgs) => any;\n error: (message: string, ...args: StructuredArgs) => any;\n warn: (message: string, ...args: StructuredArgs) => any;\n info: (message: string, ...args: StructuredArgs) => any;\n debug: (message: string, ...args: StructuredArgs) => any;\n child: (fields: Record<string, unknown>) => StructuredLogger;\n}\n\nexport enum LogLevel {\n \"log\",\n \"error\",\n \"warn\",\n \"info\",\n \"debug\",\n}\n\nexport class SimpleStructuredLogger implements StructuredLogger {\n constructor(\n private name: string,\n private level: LogLevel = [\"1\", \"true\"].includes(process.env.DEBUG ?? \"\")\n ? LogLevel.debug\n : LogLevel.info,\n private fields?: Record<string, unknown>\n ) {}\n\n child(fields: Record<string, unknown>, level?: LogLevel) {\n return new SimpleStructuredLogger(this.name, level, { ...this.fields, ...fields });\n }\n\n log(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.log) return;\n\n this.#structuredLog(console.log, message, \"log\", ...args);\n }\n\n error(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.error) return;\n\n this.#structuredLog(console.error, message, \"error\", ...args);\n }\n\n warn(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.warn) return;\n\n this.#structuredLog(console.warn, message, \"warn\", ...args);\n }\n\n info(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.info) return;\n\n this.#structuredLog(console.info, message, \"info\", ...args);\n }\n\n debug(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.debug) return;\n\n this.#structuredLog(console.debug, message, \"debug\", ...args);\n }\n\n #structuredLog(\n loggerFunction: (message: string, ...args: any[]) => void,\n message: string,\n level: string,\n ...args: StructuredArgs\n ) {\n const structuredLog = {\n ...(args.length === 1 ? args[0] : args),\n ...this.fields,\n timestamp: new Date(),\n name: this.name,\n message,\n level,\n };\n\n loggerFunction(JSON.stringify(structuredLog));\n }\n}\n"]}
@@ -0,0 +1,86 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ var __accessCheck = (obj, member, msg) => {
4
+ if (!member.has(obj))
5
+ throw TypeError("Cannot " + msg);
6
+ };
7
+ var __privateAdd = (obj, member, value) => {
8
+ if (member.has(obj))
9
+ throw TypeError("Cannot add the same private member more than once");
10
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
11
+ };
12
+ var __privateMethod = (obj, member, method) => {
13
+ __accessCheck(obj, member, "access private method");
14
+ return method;
15
+ };
16
+
17
+ // src/v3/utils/structuredLogger.ts
18
+ var LogLevel;
19
+ (function(LogLevel2) {
20
+ LogLevel2[LogLevel2["log"] = 0] = "log";
21
+ LogLevel2[LogLevel2["error"] = 1] = "error";
22
+ LogLevel2[LogLevel2["warn"] = 2] = "warn";
23
+ LogLevel2[LogLevel2["info"] = 3] = "info";
24
+ LogLevel2[LogLevel2["debug"] = 4] = "debug";
25
+ })(LogLevel || (LogLevel = {}));
26
+ var _structuredLog, structuredLog_fn;
27
+ var _SimpleStructuredLogger = class _SimpleStructuredLogger {
28
+ constructor(name, level = [
29
+ "1",
30
+ "true"
31
+ ].includes(process.env.DEBUG ?? "") ? LogLevel.debug : LogLevel.info, fields) {
32
+ __privateAdd(this, _structuredLog);
33
+ this.name = name;
34
+ this.level = level;
35
+ this.fields = fields;
36
+ }
37
+ child(fields, level) {
38
+ return new _SimpleStructuredLogger(this.name, level, {
39
+ ...this.fields,
40
+ ...fields
41
+ });
42
+ }
43
+ log(message, ...args) {
44
+ if (this.level < LogLevel.log)
45
+ return;
46
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.log, message, "log", ...args);
47
+ }
48
+ error(message, ...args) {
49
+ if (this.level < LogLevel.error)
50
+ return;
51
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.error, message, "error", ...args);
52
+ }
53
+ warn(message, ...args) {
54
+ if (this.level < LogLevel.warn)
55
+ return;
56
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.warn, message, "warn", ...args);
57
+ }
58
+ info(message, ...args) {
59
+ if (this.level < LogLevel.info)
60
+ return;
61
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.info, message, "info", ...args);
62
+ }
63
+ debug(message, ...args) {
64
+ if (this.level < LogLevel.debug)
65
+ return;
66
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.debug, message, "debug", ...args);
67
+ }
68
+ };
69
+ _structuredLog = new WeakSet();
70
+ structuredLog_fn = /* @__PURE__ */ __name(function(loggerFunction, message, level, ...args) {
71
+ const structuredLog = {
72
+ ...args.length === 1 ? args[0] : args,
73
+ ...this.fields,
74
+ timestamp: /* @__PURE__ */ new Date(),
75
+ name: this.name,
76
+ message,
77
+ level
78
+ };
79
+ loggerFunction(JSON.stringify(structuredLog));
80
+ }, "#structuredLog");
81
+ __name(_SimpleStructuredLogger, "SimpleStructuredLogger");
82
+ var SimpleStructuredLogger = _SimpleStructuredLogger;
83
+
84
+ export { LogLevel, SimpleStructuredLogger };
85
+ //# sourceMappingURL=out.js.map
86
+ //# sourceMappingURL=structuredLogger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/v3/utils/structuredLogger.ts"],"names":["LogLevel","SimpleStructuredLogger","constructor","name","level","includes","process","env","DEBUG","debug","info","fields","child","log","message","args","console","error","warn","loggerFunction","structuredLog","length","timestamp","Date","JSON","stringify"],"mappings":";;;;;;;;;;;;;;;;;IAWO;UAAKA,WAAQ;AAARA,EAAAA,UAAAA,UACV,KAAA,IAAA,CAAA,IAAA;AADUA,EAAAA,UAAAA,UAEV,OAAA,IAAA,CAAA,IAAA;AAFUA,EAAAA,UAAAA,UAGV,MAAA,IAAA,CAAA,IAAA;AAHUA,EAAAA,UAAAA,UAIV,MAAA,IAAA,CAAA,IAAA;AAJUA,EAAAA,UAAAA,UAKV,OAAA,IAAA,CAAA,IAAA;GALUA,aAAAA,WAAAA,CAAAA,EAAAA;;AAQL,IAAMC,0BAAN,MAAMA,wBAAAA;EACXC,YACUC,MACAC,QAAkB;IAAC;IAAK;IAAQC,SAASC,QAAQC,IAAIC,SAAS,EAAA,IAClER,SAASS,QACTT,SAASU,MACLC,QACR;AAoCF;gBAzCUR;iBACAC;kBAGAO;EACP;EAEHC,MAAMD,QAAiCP,OAAkB;AACvD,WAAO,IAAIH,wBAAuB,KAAKE,MAAMC,OAAO;MAAE,GAAG,KAAKO;MAAQ,GAAGA;IAAO,CAAA;EAClF;EAEAE,IAAIC,YAAoBC,MAAsB;AAC5C,QAAI,KAAKX,QAAQJ,SAASa;AAAK;AAE/B,0BAAK,kCAAL,WAAoBG,QAAQH,KAAKC,SAAS,OAAA,GAAUC;EACtD;EAEAE,MAAMH,YAAoBC,MAAsB;AAC9C,QAAI,KAAKX,QAAQJ,SAASiB;AAAO;AAEjC,0BAAK,kCAAL,WAAoBD,QAAQC,OAAOH,SAAS,SAAA,GAAYC;EAC1D;EAEAG,KAAKJ,YAAoBC,MAAsB;AAC7C,QAAI,KAAKX,QAAQJ,SAASkB;AAAM;AAEhC,0BAAK,kCAAL,WAAoBF,QAAQE,MAAMJ,SAAS,QAAA,GAAWC;EACxD;EAEAL,KAAKI,YAAoBC,MAAsB;AAC7C,QAAI,KAAKX,QAAQJ,SAASU;AAAM;AAEhC,0BAAK,kCAAL,WAAoBM,QAAQN,MAAMI,SAAS,QAAA,GAAWC;EACxD;EAEAN,MAAMK,YAAoBC,MAAsB;AAC9C,QAAI,KAAKX,QAAQJ,SAASS;AAAO;AAEjC,0BAAK,kCAAL,WAAoBO,QAAQP,OAAOK,SAAS,SAAA,GAAYC;EAC1D;AAmBF;AAjBE;mBAAc,gCACZI,gBACAL,SACAV,UACGW,MACH;AACA,QAAMK,gBAAgB;IACpB,GAAIL,KAAKM,WAAW,IAAIN,KAAK,CAAA,IAAKA;IAClC,GAAG,KAAKJ;IACRW,WAAW,oBAAIC,KAAAA;IACfpB,MAAM,KAAKA;IACXW;IACAV;EACF;AAEAe,iBAAeK,KAAKC,UAAUL,aAAAA,CAAAA;AAChC,GAhBc;AA3CHnB;AAAN,IAAMA,yBAAN","sourcesContent":["type StructuredArgs = (Record<string, unknown> | undefined)[];\n\nexport interface StructuredLogger {\n log: (message: string, ...args: StructuredArgs) => any;\n error: (message: string, ...args: StructuredArgs) => any;\n warn: (message: string, ...args: StructuredArgs) => any;\n info: (message: string, ...args: StructuredArgs) => any;\n debug: (message: string, ...args: StructuredArgs) => any;\n child: (fields: Record<string, unknown>) => StructuredLogger;\n}\n\nexport enum LogLevel {\n \"log\",\n \"error\",\n \"warn\",\n \"info\",\n \"debug\",\n}\n\nexport class SimpleStructuredLogger implements StructuredLogger {\n constructor(\n private name: string,\n private level: LogLevel = [\"1\", \"true\"].includes(process.env.DEBUG ?? \"\")\n ? LogLevel.debug\n : LogLevel.info,\n private fields?: Record<string, unknown>\n ) {}\n\n child(fields: Record<string, unknown>, level?: LogLevel) {\n return new SimpleStructuredLogger(this.name, level, { ...this.fields, ...fields });\n }\n\n log(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.log) return;\n\n this.#structuredLog(console.log, message, \"log\", ...args);\n }\n\n error(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.error) return;\n\n this.#structuredLog(console.error, message, \"error\", ...args);\n }\n\n warn(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.warn) return;\n\n this.#structuredLog(console.warn, message, \"warn\", ...args);\n }\n\n info(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.info) return;\n\n this.#structuredLog(console.info, message, \"info\", ...args);\n }\n\n debug(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.debug) return;\n\n this.#structuredLog(console.debug, message, \"debug\", ...args);\n }\n\n #structuredLog(\n loggerFunction: (message: string, ...args: any[]) => void,\n message: string,\n level: string,\n ...args: StructuredArgs\n ) {\n const structuredLog = {\n ...(args.length === 1 ? args[0] : args),\n ...this.fields,\n timestamp: new Date(),\n name: this.name,\n message,\n level,\n };\n\n loggerFunction(JSON.stringify(structuredLog));\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { setTimeout } from 'node:timers/promises';
2
+
3
+ declare function unboundedTimeout<T = void>(delay?: number, value?: T, options?: Parameters<typeof setTimeout>[2]): Promise<T>;
4
+ declare function checkpointSafeTimeout(delay?: number): Promise<void>;
5
+
6
+ export { checkpointSafeTimeout, unboundedTimeout };
@@ -0,0 +1,6 @@
1
+ import { setTimeout } from 'node:timers/promises';
2
+
3
+ declare function unboundedTimeout<T = void>(delay?: number, value?: T, options?: Parameters<typeof setTimeout>[2]): Promise<T>;
4
+ declare function checkpointSafeTimeout(delay?: number): Promise<void>;
5
+
6
+ export { checkpointSafeTimeout, unboundedTimeout };
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var promises = require('timers/promises');
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ async function unboundedTimeout(delay = 0, value, options) {
8
+ const maxDelay = 2147483647;
9
+ const fullTimeouts = Math.floor(delay / maxDelay);
10
+ const remainingDelay = delay % maxDelay;
11
+ let lastTimeoutResult = await promises.setTimeout(remainingDelay, value, options);
12
+ for (let i = 0; i < fullTimeouts; i++) {
13
+ lastTimeoutResult = await promises.setTimeout(maxDelay, value, options);
14
+ }
15
+ return lastTimeoutResult;
16
+ }
17
+ __name(unboundedTimeout, "unboundedTimeout");
18
+ async function checkpointSafeTimeout(delay = 0) {
19
+ const scanIntervalMs = 1e3;
20
+ for await (const start of promises.setInterval(scanIntervalMs, Date.now())) {
21
+ if (Date.now() - start > delay) {
22
+ break;
23
+ }
24
+ }
25
+ }
26
+ __name(checkpointSafeTimeout, "checkpointSafeTimeout");
27
+
28
+ exports.checkpointSafeTimeout = checkpointSafeTimeout;
29
+ exports.unboundedTimeout = unboundedTimeout;
30
+ //# sourceMappingURL=out.js.map
31
+ //# sourceMappingURL=timers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/v3/utils/timers.ts"],"names":["setInterval","setTimeout","unboundedTimeout","delay","value","options","maxDelay","fullTimeouts","Math","floor","remainingDelay","lastTimeoutResult","i","checkpointSafeTimeout","scanIntervalMs","start","Date","now"],"mappings":";;;;AAAA,SAASA,aAAaC,kBAAkB;AAExC,eAAsBC,iBACpBC,QAAgB,GAChBC,OACAC,SACY;AACZ,QAAMC,WAAW;AAEjB,QAAMC,eAAeC,KAAKC,MAAMN,QAAQG,QAAAA;AACxC,QAAMI,iBAAiBP,QAAQG;AAE/B,MAAIK,oBAAoB,MAAMV,WAAWS,gBAAgBN,OAAOC,OAAAA;AAEhE,WAASO,IAAI,GAAGA,IAAIL,cAAcK,KAAK;AACrCD,wBAAoB,MAAMV,WAAWK,UAAUF,OAAOC,OAAAA;EACxD;AAEA,SAAOM;AACT;AAjBsBT;AAmBtB,eAAsBW,sBAAsBV,QAAgB,GAAkB;AAC5E,QAAMW,iBAAiB;AAGvB,mBAAiBC,SAASf,YAAYc,gBAAgBE,KAAKC,IAAG,CAAA,GAAK;AACjE,QAAID,KAAKC,IAAG,IAAKF,QAAQZ,OAAO;AAC9B;IACF;EACF;AACF;AATsBU","sourcesContent":["import { setInterval, setTimeout } from \"node:timers/promises\";\n\nexport async function unboundedTimeout<T = void>(\n delay: number = 0,\n value?: T,\n options?: Parameters<typeof setTimeout>[2]\n): Promise<T> {\n const maxDelay = 2147483647; // Highest value that will fit in a 32-bit signed integer\n\n const fullTimeouts = Math.floor(delay / maxDelay);\n const remainingDelay = delay % maxDelay;\n\n let lastTimeoutResult = await setTimeout(remainingDelay, value, options);\n\n for (let i = 0; i < fullTimeouts; i++) {\n lastTimeoutResult = await setTimeout(maxDelay, value, options);\n }\n\n return lastTimeoutResult;\n}\n\nexport async function checkpointSafeTimeout(delay: number = 0): Promise<void> {\n const scanIntervalMs = 1000;\n\n // Every scanIntervalMs, check if delay has elapsed\n for await (const start of setInterval(scanIntervalMs, Date.now())) {\n if (Date.now() - start > delay) {\n break;\n }\n }\n}\n"]}