@trigger.dev/core 0.0.0-prerelease-20240603154820 → 0.0.0-prerelease-20240723165848

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 (187) hide show
  1. package/dist/api-Pl9fxB8v.d.mts +13879 -0
  2. package/dist/api-sNoooMbT.d.ts +13879 -0
  3. package/dist/{catalog-dRKTgwQ7.d.ts → catalog-H7yFiZ60.d.mts} +52 -52
  4. package/dist/{catalog-XTlJQaMn.d.mts → catalog-h79CG5Wy.d.ts} +52 -52
  5. package/dist/{manager-JkbddlcO.d.mts → common-CLW82lkt.d.mts} +280 -16
  6. package/dist/{manager-JkbddlcO.d.ts → common-CLW82lkt.d.ts} +280 -16
  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-KvCabW1a.d.mts +18 -0
  24. package/dist/manager-OBA35PzR.d.ts +18 -0
  25. package/dist/{messages-6_-q72KG.d.mts → messages-JvHJ83wv.d.mts} +2978 -291
  26. package/dist/{messages-6_-q72KG.d.ts → messages-JvHJ83wv.d.ts} +2978 -291
  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-r4ZP9S-F.d.mts → schemas-C9ssfehv.d.mts} +270 -33
  54. package/dist/{schemas-r4ZP9S-F.d.ts → schemas-C9ssfehv.d.ts} +270 -33
  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 +2 -1
  72. package/dist/v3/dev/index.d.ts +2 -1
  73. package/dist/v3/dev/index.js.map +1 -1
  74. package/dist/v3/dev/index.mjs.map +1 -1
  75. package/dist/v3/errors.d.mts +39 -0
  76. package/dist/v3/errors.d.ts +39 -0
  77. package/dist/v3/errors.js +204 -0
  78. package/dist/v3/errors.js.map +1 -0
  79. package/dist/v3/errors.mjs +195 -0
  80. package/dist/v3/errors.mjs.map +1 -0
  81. package/dist/v3/index.d.mts +172 -4737
  82. package/dist/v3/index.d.ts +172 -4737
  83. package/dist/v3/index.js +871 -620
  84. package/dist/v3/index.js.map +1 -1
  85. package/dist/v3/index.mjs +856 -620
  86. package/dist/v3/index.mjs.map +1 -1
  87. package/dist/v3/logger-api.d.mts +24 -0
  88. package/dist/v3/logger-api.d.ts +24 -0
  89. package/dist/v3/logger-api.js +118 -0
  90. package/dist/v3/logger-api.js.map +1 -0
  91. package/dist/v3/logger-api.mjs +116 -0
  92. package/dist/v3/logger-api.mjs.map +1 -0
  93. package/dist/v3/otel/index.js +36 -12
  94. package/dist/v3/otel/index.js.map +1 -1
  95. package/dist/v3/otel/index.mjs +36 -12
  96. package/dist/v3/otel/index.mjs.map +1 -1
  97. package/dist/v3/prod/index.d.mts +4 -3
  98. package/dist/v3/prod/index.d.ts +4 -3
  99. package/dist/v3/prod/index.js +7 -131
  100. package/dist/v3/prod/index.js.map +1 -1
  101. package/dist/v3/prod/index.mjs +7 -131
  102. package/dist/v3/prod/index.mjs.map +1 -1
  103. package/dist/v3/schemas/index.d.mts +4807 -0
  104. package/dist/v3/schemas/index.d.ts +4807 -0
  105. package/dist/v3/schemas/index.js +2065 -0
  106. package/dist/v3/schemas/index.js.map +1 -0
  107. package/dist/v3/schemas/index.mjs +1924 -0
  108. package/dist/v3/schemas/index.mjs.map +1 -0
  109. package/dist/v3/semanticInternalAttributes.d.mts +56 -0
  110. package/dist/v3/semanticInternalAttributes.d.ts +56 -0
  111. package/dist/v3/semanticInternalAttributes.js +61 -0
  112. package/dist/v3/semanticInternalAttributes.js.map +1 -0
  113. package/dist/v3/semanticInternalAttributes.mjs +59 -0
  114. package/dist/v3/semanticInternalAttributes.mjs.map +1 -0
  115. package/dist/v3/utils/durations.d.mts +15 -0
  116. package/dist/v3/utils/durations.d.ts +15 -0
  117. package/dist/v3/utils/durations.js +93 -0
  118. package/dist/v3/utils/durations.js.map +1 -0
  119. package/dist/v3/utils/durations.mjs +82 -0
  120. package/dist/v3/utils/durations.mjs.map +1 -0
  121. package/dist/v3/utils/flattenAttributes.d.mts +8 -0
  122. package/dist/v3/utils/flattenAttributes.d.ts +8 -0
  123. package/dist/v3/utils/flattenAttributes.js +131 -0
  124. package/dist/v3/utils/flattenAttributes.js.map +1 -0
  125. package/dist/v3/utils/flattenAttributes.mjs +126 -0
  126. package/dist/v3/utils/flattenAttributes.mjs.map +1 -0
  127. package/dist/v3/utils/ioSerialization.d.mts +21 -0
  128. package/dist/v3/utils/ioSerialization.d.ts +21 -0
  129. package/dist/v3/utils/ioSerialization.js +2403 -0
  130. package/dist/v3/utils/ioSerialization.js.map +1 -0
  131. package/dist/v3/utils/ioSerialization.mjs +2394 -0
  132. package/dist/v3/utils/ioSerialization.mjs.map +1 -0
  133. package/dist/v3/utils/omit.d.mts +3 -0
  134. package/dist/v3/utils/omit.d.ts +3 -0
  135. package/dist/v3/utils/omit.js +20 -0
  136. package/dist/v3/utils/omit.js.map +1 -0
  137. package/dist/v3/utils/omit.mjs +18 -0
  138. package/dist/v3/utils/omit.mjs.map +1 -0
  139. package/dist/v3/utils/retries.d.mts +46 -0
  140. package/dist/v3/utils/retries.d.ts +46 -0
  141. package/dist/v3/utils/retries.js +118 -0
  142. package/dist/v3/utils/retries.js.map +1 -0
  143. package/dist/v3/utils/retries.mjs +113 -0
  144. package/dist/v3/utils/retries.mjs.map +1 -0
  145. package/dist/v3/utils/timers.d.mts +6 -0
  146. package/dist/v3/utils/timers.d.ts +6 -0
  147. package/dist/v3/utils/timers.js +31 -0
  148. package/dist/v3/utils/timers.js.map +1 -0
  149. package/dist/v3/utils/timers.mjs +28 -0
  150. package/dist/v3/utils/timers.mjs.map +1 -0
  151. package/dist/v3/workers/index.d.mts +56 -8
  152. package/dist/v3/workers/index.d.ts +56 -8
  153. package/dist/v3/workers/index.js +755 -279
  154. package/dist/v3/workers/index.js.map +1 -1
  155. package/dist/v3/workers/index.mjs +753 -280
  156. package/dist/v3/workers/index.mjs.map +1 -1
  157. package/dist/v3/zodIpc.js.map +1 -1
  158. package/dist/v3/zodIpc.mjs.map +1 -1
  159. package/dist/v3/zodMessageHandler.d.mts +16 -3
  160. package/dist/v3/zodMessageHandler.d.ts +16 -3
  161. package/dist/v3/zodMessageHandler.js +77 -23
  162. package/dist/v3/zodMessageHandler.js.map +1 -1
  163. package/dist/v3/zodMessageHandler.mjs +77 -23
  164. package/dist/v3/zodMessageHandler.mjs.map +1 -1
  165. package/dist/v3/zodNamespace.js +59 -28
  166. package/dist/v3/zodNamespace.js.map +1 -1
  167. package/dist/v3/zodNamespace.mjs +60 -29
  168. package/dist/v3/zodNamespace.mjs.map +1 -1
  169. package/dist/v3/zodSocket.d.mts +8 -3
  170. package/dist/v3/zodSocket.d.ts +8 -3
  171. package/dist/v3/zodSocket.js +56 -25
  172. package/dist/v3/zodSocket.js.map +1 -1
  173. package/dist/v3/zodSocket.mjs +57 -26
  174. package/dist/v3/zodSocket.mjs.map +1 -1
  175. package/dist/v3/zodfetch.d.mts +15 -58
  176. package/dist/v3/zodfetch.d.ts +15 -58
  177. package/dist/v3/zodfetch.js +246 -156
  178. package/dist/v3/zodfetch.js.map +1 -1
  179. package/dist/v3/zodfetch.mjs +244 -149
  180. package/dist/v3/zodfetch.mjs.map +1 -1
  181. package/dist/versions.d.mts +11 -0
  182. package/dist/versions.d.ts +11 -0
  183. package/dist/versions.js +31 -0
  184. package/dist/versions.js.map +1 -0
  185. package/dist/versions.mjs +27 -0
  186. package/dist/versions.mjs.map +1 -0
  187. package/package.json +154 -10
@@ -0,0 +1,33 @@
1
+ import { Span, SpanOptions } from '@opentelemetry/api';
2
+ import { Logger } from '@opentelemetry/api-logs';
3
+ import { T as TriggerTracer } from './tracer-N0p2Fuuv.js';
4
+
5
+ type LogLevel = "none" | "error" | "warn" | "info" | "debug" | "log";
6
+ declare const logLevels: Array<LogLevel>;
7
+ type TaskLoggerConfig = {
8
+ logger: Logger;
9
+ tracer: TriggerTracer;
10
+ level: LogLevel;
11
+ };
12
+ interface TaskLogger {
13
+ debug(message: string, properties?: Record<string, unknown>): void;
14
+ log(message: string, properties?: Record<string, unknown>): void;
15
+ info(message: string, properties?: Record<string, unknown>): void;
16
+ warn(message: string, properties?: Record<string, unknown>): void;
17
+ error(message: string, properties?: Record<string, unknown>): void;
18
+ trace<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions): Promise<T>;
19
+ }
20
+ declare class OtelTaskLogger implements TaskLogger {
21
+ #private;
22
+ private readonly _config;
23
+ private readonly _level;
24
+ constructor(_config: TaskLoggerConfig);
25
+ debug(message: string, properties?: Record<string, unknown>): void;
26
+ log(message: string, properties?: Record<string, unknown>): void;
27
+ info(message: string, properties?: Record<string, unknown>): void;
28
+ warn(message: string, properties?: Record<string, unknown>): void;
29
+ error(message: string, properties?: Record<string, unknown>): void;
30
+ trace<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions): Promise<T>;
31
+ }
32
+
33
+ export { type LogLevel as L, OtelTaskLogger as O, type TaskLogger as T, logLevels as l };
@@ -0,0 +1,33 @@
1
+ import { Span, SpanOptions } from '@opentelemetry/api';
2
+ import { Logger } from '@opentelemetry/api-logs';
3
+ import { T as TriggerTracer } from './tracer-N0p2Fuuv.mjs';
4
+
5
+ type LogLevel = "none" | "error" | "warn" | "info" | "debug" | "log";
6
+ declare const logLevels: Array<LogLevel>;
7
+ type TaskLoggerConfig = {
8
+ logger: Logger;
9
+ tracer: TriggerTracer;
10
+ level: LogLevel;
11
+ };
12
+ interface TaskLogger {
13
+ debug(message: string, properties?: Record<string, unknown>): void;
14
+ log(message: string, properties?: Record<string, unknown>): void;
15
+ info(message: string, properties?: Record<string, unknown>): void;
16
+ warn(message: string, properties?: Record<string, unknown>): void;
17
+ error(message: string, properties?: Record<string, unknown>): void;
18
+ trace<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions): Promise<T>;
19
+ }
20
+ declare class OtelTaskLogger implements TaskLogger {
21
+ #private;
22
+ private readonly _config;
23
+ private readonly _level;
24
+ constructor(_config: TaskLoggerConfig);
25
+ debug(message: string, properties?: Record<string, unknown>): void;
26
+ log(message: string, properties?: Record<string, unknown>): void;
27
+ info(message: string, properties?: Record<string, unknown>): void;
28
+ warn(message: string, properties?: Record<string, unknown>): void;
29
+ error(message: string, properties?: Record<string, unknown>): void;
30
+ trace<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions): Promise<T>;
31
+ }
32
+
33
+ export { type LogLevel as L, OtelTaskLogger as O, type TaskLogger as T, logLevels as l };
@@ -0,0 +1,23 @@
1
+ import { Context, Span, SpanOptions, Tracer } from '@opentelemetry/api';
2
+ import { Logger } from '@opentelemetry/api-logs';
3
+
4
+ type TriggerTracerConfig = {
5
+ name: string;
6
+ version: string;
7
+ } | {
8
+ tracer: Tracer;
9
+ logger: Logger;
10
+ };
11
+ declare class TriggerTracer {
12
+ private readonly _config;
13
+ constructor(_config: TriggerTracerConfig);
14
+ private _tracer;
15
+ private get tracer();
16
+ private _logger;
17
+ private get logger();
18
+ extractContext(traceContext?: Record<string, unknown>): Context;
19
+ startActiveSpan<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions, ctx?: Context): Promise<T>;
20
+ startSpan(name: string, options?: SpanOptions, ctx?: Context): Span;
21
+ }
22
+
23
+ export { TriggerTracer as T };
@@ -0,0 +1,23 @@
1
+ import { Context, Span, SpanOptions, Tracer } from '@opentelemetry/api';
2
+ import { Logger } from '@opentelemetry/api-logs';
3
+
4
+ type TriggerTracerConfig = {
5
+ name: string;
6
+ version: string;
7
+ } | {
8
+ tracer: Tracer;
9
+ logger: Logger;
10
+ };
11
+ declare class TriggerTracer {
12
+ private readonly _config;
13
+ constructor(_config: TriggerTracerConfig);
14
+ private _tracer;
15
+ private get tracer();
16
+ private _logger;
17
+ private get logger();
18
+ extractContext(traceContext?: Record<string, unknown>): Context;
19
+ startActiveSpan<T>(name: string, fn: (span: Span) => Promise<T>, options?: SpanOptions, ctx?: Context): Promise<T>;
20
+ startSpan(name: string, options?: SpanOptions, ctx?: Context): Span;
21
+ }
22
+
23
+ export { TriggerTracer as T };
@@ -0,0 +1,11 @@
1
+ type Prettify<T> = {
2
+ [K in keyof T]: T[K];
3
+ } & {};
4
+ interface AsyncMap {
5
+ delete: (key: string) => Promise<boolean>;
6
+ get: (key: string) => Promise<any>;
7
+ has: (key: string) => Promise<boolean>;
8
+ set: (key: string, value: any) => Promise<any>;
9
+ }
10
+
11
+ export type { AsyncMap, Prettify };
@@ -0,0 +1,11 @@
1
+ type Prettify<T> = {
2
+ [K in keyof T]: T[K];
3
+ } & {};
4
+ interface AsyncMap {
5
+ delete: (key: string) => Promise<boolean>;
6
+ get: (key: string) => Promise<any>;
7
+ has: (key: string) => Promise<boolean>;
8
+ set: (key: string, value: any) => Promise<any>;
9
+ }
10
+
11
+ export type { AsyncMap, Prettify };
package/dist/types.js ADDED
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=out.js.map
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
package/dist/types.mjs ADDED
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { E as EventFilter } from './eventFilter-66NaBAMi.mjs';
2
+ import 'zod';
3
+
4
+ declare function deepMergeFilters(...filters: EventFilter[]): EventFilter;
5
+ declare function assertExhaustive(x: never): never;
6
+
7
+ export { assertExhaustive, deepMergeFilters };
@@ -0,0 +1,7 @@
1
+ import { E as EventFilter } from './eventFilter-66NaBAMi.js';
2
+ import 'zod';
3
+
4
+ declare function deepMergeFilters(...filters: EventFilter[]): EventFilter;
5
+ declare function assertExhaustive(x: never): never;
6
+
7
+ export { assertExhaustive, deepMergeFilters };
package/dist/utils.js ADDED
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+
6
+ // src/utils.ts
7
+ function deepMergeFilters(...filters) {
8
+ const result = {};
9
+ for (const filter of filters) {
10
+ for (const key in filter) {
11
+ if (filter.hasOwnProperty(key)) {
12
+ const filterValue = filter[key];
13
+ const existingValue = result[key];
14
+ if (existingValue && typeof existingValue === "object" && typeof filterValue === "object" && !Array.isArray(existingValue) && !Array.isArray(filterValue) && existingValue !== null && filterValue !== null) {
15
+ result[key] = deepMergeFilters(existingValue, filterValue);
16
+ } else {
17
+ result[key] = filterValue;
18
+ }
19
+ }
20
+ }
21
+ }
22
+ return result;
23
+ }
24
+ __name(deepMergeFilters, "deepMergeFilters");
25
+ function assertExhaustive(x) {
26
+ throw new Error("Unexpected object: " + x);
27
+ }
28
+ __name(assertExhaustive, "assertExhaustive");
29
+
30
+ exports.assertExhaustive = assertExhaustive;
31
+ exports.deepMergeFilters = deepMergeFilters;
32
+ //# sourceMappingURL=out.js.map
33
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils.ts"],"names":["deepMergeFilters","filters","result","filter","key","hasOwnProperty","filterValue","existingValue","Array","isArray","assertExhaustive","x","Error"],"mappings":";;;;AAKO,SAASA,oBAAoBC,SAAqC;AACvE,QAAMC,SAAsB,CAAC;AAE7B,aAAWC,UAAUF,SAAS;AAC5B,eAAWG,OAAOD,QAAQ;AACxB,UAAIA,OAAOE,eAAeD,GAAAA,GAAM;AAC9B,cAAME,cAAcH,OAAOC,GAAAA;AAC3B,cAAMG,gBAAgBL,OAAOE,GAAAA;AAE7B,YACEG,iBACA,OAAOA,kBAAkB,YACzB,OAAOD,gBAAgB,YACvB,CAACE,MAAMC,QAAQF,aAAAA,KACf,CAACC,MAAMC,QAAQH,WAAAA,KACfC,kBAAkB,QAClBD,gBAAgB,MAChB;AACAJ,iBAAOE,GAAAA,IAAOJ,iBAAiBO,eAAeD,WAAAA;QAChD,OAAO;AACLJ,iBAAOE,GAAAA,IAAOE;QAChB;MACF;IACF;EACF;AAEA,SAAOJ;AACT;AA3BgBF;AA6BT,SAASU,iBAAiBC,GAAiB;AAChD,QAAM,IAAIC,MAAM,wBAAwBD,CAAAA;AAC1C;AAFgBD","sourcesContent":["// EventFilter is typed as type EventFilter = { [key: string]: EventFilter | string[] | number[] | boolean[] }\n\nimport { EventFilter } from \"./schemas\";\n\n// This function should take any number of EventFilters and return a new EventFilter that is the result of merging of them.\nexport function deepMergeFilters(...filters: EventFilter[]): EventFilter {\n const result: EventFilter = {};\n\n for (const filter of filters) {\n for (const key in filter) {\n if (filter.hasOwnProperty(key)) {\n const filterValue = filter[key];\n const existingValue = result[key];\n\n if (\n existingValue &&\n typeof existingValue === \"object\" &&\n typeof filterValue === \"object\" &&\n !Array.isArray(existingValue) &&\n !Array.isArray(filterValue) &&\n existingValue !== null &&\n filterValue !== null\n ) {\n result[key] = deepMergeFilters(existingValue, filterValue);\n } else {\n result[key] = filterValue;\n }\n }\n }\n }\n\n return result;\n}\n\nexport function assertExhaustive(x: never): never {\n throw new Error(\"Unexpected object: \" + x);\n}\n"]}
package/dist/utils.mjs ADDED
@@ -0,0 +1,30 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/utils.ts
5
+ function deepMergeFilters(...filters) {
6
+ const result = {};
7
+ for (const filter of filters) {
8
+ for (const key in filter) {
9
+ if (filter.hasOwnProperty(key)) {
10
+ const filterValue = filter[key];
11
+ const existingValue = result[key];
12
+ if (existingValue && typeof existingValue === "object" && typeof filterValue === "object" && !Array.isArray(existingValue) && !Array.isArray(filterValue) && existingValue !== null && filterValue !== null) {
13
+ result[key] = deepMergeFilters(existingValue, filterValue);
14
+ } else {
15
+ result[key] = filterValue;
16
+ }
17
+ }
18
+ }
19
+ }
20
+ return result;
21
+ }
22
+ __name(deepMergeFilters, "deepMergeFilters");
23
+ function assertExhaustive(x) {
24
+ throw new Error("Unexpected object: " + x);
25
+ }
26
+ __name(assertExhaustive, "assertExhaustive");
27
+
28
+ export { assertExhaustive, deepMergeFilters };
29
+ //# sourceMappingURL=out.js.map
30
+ //# sourceMappingURL=utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils.ts"],"names":["deepMergeFilters","filters","result","filter","key","hasOwnProperty","filterValue","existingValue","Array","isArray","assertExhaustive","x","Error"],"mappings":";;;;AAKO,SAASA,oBAAoBC,SAAqC;AACvE,QAAMC,SAAsB,CAAC;AAE7B,aAAWC,UAAUF,SAAS;AAC5B,eAAWG,OAAOD,QAAQ;AACxB,UAAIA,OAAOE,eAAeD,GAAAA,GAAM;AAC9B,cAAME,cAAcH,OAAOC,GAAAA;AAC3B,cAAMG,gBAAgBL,OAAOE,GAAAA;AAE7B,YACEG,iBACA,OAAOA,kBAAkB,YACzB,OAAOD,gBAAgB,YACvB,CAACE,MAAMC,QAAQF,aAAAA,KACf,CAACC,MAAMC,QAAQH,WAAAA,KACfC,kBAAkB,QAClBD,gBAAgB,MAChB;AACAJ,iBAAOE,GAAAA,IAAOJ,iBAAiBO,eAAeD,WAAAA;QAChD,OAAO;AACLJ,iBAAOE,GAAAA,IAAOE;QAChB;MACF;IACF;EACF;AAEA,SAAOJ;AACT;AA3BgBF;AA6BT,SAASU,iBAAiBC,GAAiB;AAChD,QAAM,IAAIC,MAAM,wBAAwBD,CAAAA;AAC1C;AAFgBD","sourcesContent":["// EventFilter is typed as type EventFilter = { [key: string]: EventFilter | string[] | number[] | boolean[] }\n\nimport { EventFilter } from \"./schemas\";\n\n// This function should take any number of EventFilters and return a new EventFilter that is the result of merging of them.\nexport function deepMergeFilters(...filters: EventFilter[]): EventFilter {\n const result: EventFilter = {};\n\n for (const filter of filters) {\n for (const key in filter) {\n if (filter.hasOwnProperty(key)) {\n const filterValue = filter[key];\n const existingValue = result[key];\n\n if (\n existingValue &&\n typeof existingValue === \"object\" &&\n typeof filterValue === \"object\" &&\n !Array.isArray(existingValue) &&\n !Array.isArray(filterValue) &&\n existingValue !== null &&\n filterValue !== null\n ) {\n result[key] = deepMergeFilters(existingValue, filterValue);\n } else {\n result[key] = filterValue;\n }\n }\n }\n }\n\n return result;\n}\n\nexport function assertExhaustive(x: never): never {\n throw new Error(\"Unexpected object: \" + x);\n}\n"]}
@@ -1,4 +1,5 @@
1
- import { R as RuntimeManager, T as TaskRunExecutionResult, B as BatchTaskRunExecutionResult, a as TaskRunContext } from '../../manager-JkbddlcO.mjs';
1
+ import { T as TaskRunExecutionResult, B as BatchTaskRunExecutionResult, a as TaskRunContext } from '../../common-CLW82lkt.mjs';
2
+ import { R as RuntimeManager } from '../../manager-KvCabW1a.mjs';
2
3
  import 'zod';
3
4
 
4
5
  declare class DevRuntimeManager implements RuntimeManager {
@@ -1,4 +1,5 @@
1
- import { R as RuntimeManager, T as TaskRunExecutionResult, B as BatchTaskRunExecutionResult, a as TaskRunContext } from '../../manager-JkbddlcO.js';
1
+ import { T as TaskRunExecutionResult, B as BatchTaskRunExecutionResult, a as TaskRunContext } from '../../common-CLW82lkt.js';
2
+ import { R as RuntimeManager } from '../../manager-OBA35PzR.js';
2
3
  import 'zod';
3
4
 
4
5
  declare class DevRuntimeManager implements RuntimeManager {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/v3/utils/timers.ts","../../../src/v3/runtime/devRuntimeManager.ts"],"names":["setInterval","setTimeout","unboundedTimeout","delay","value","options","maxDelay","fullTimeouts","Math","floor","remainingDelay","lastTimeoutResult","i","DevRuntimeManager","_taskWaits","Map","_batchWaits","_pendingCompletionNotifications","disable","waitForDuration","ms","waitUntil","date","getTime","Date","now","waitForTask","params","pendingCompletion","get","id","delete","promise","Promise","resolve","set","waitForBatch","runs","length","items","all","map","runId","reject","results","resumeTask","completion","wait"],"mappings":";;;;;;;;;AACA,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;;;ACMf,IAAMW,qBAAN,MAAMA,mBAAAA;EAAN;AACLC,sCAAgF,oBAAIC,IAAAA;AAEpFC,uCAGI,oBAAID,IAAAA;AAERE,2DAAuE,oBAAIF,IAAAA;;EAE3EG,UAAgB;EAEhB;EAEA,MAAMC,gBAAgBC,IAA2B;AAC/C,UAAMlB,iBAAiBkB,EAAAA;EACzB;EAEA,MAAMC,UAAUC,MAA2B;AACzC,WAAO,KAAKH,gBAAgBG,KAAKC,QAAO,IAAKC,KAAKC,IAAG,CAAA;EACvD;EAEA,MAAMC,YAAYC,QAA8E;AAC9F,UAAMC,oBAAoB,KAAKX,gCAAgCY,IAAIF,OAAOG,EAAE;AAE5E,QAAIF,mBAAmB;AACrB,WAAKX,gCAAgCc,OAAOJ,OAAOG,EAAE;AAErD,aAAOF;IACT;AAEA,UAAMI,UAAU,IAAIC,QAAgC,CAACC,YAAY;AAC/D,WAAKpB,WAAWqB,IAAIR,OAAOG,IAAI;QAAEI;MAAQ,CAAA;IAC3C,CAAA;AAEA,WAAO,MAAMF;EACf;EAEA,MAAMI,aAAaT,QAIsB;AACvC,QAAI,CAACA,OAAOU,KAAKC,QAAQ;AACvB,aAAOL,QAAQC,QAAQ;QAAEJ,IAAIH,OAAOG;QAAIS,OAAO,CAAA;MAAG,CAAA;IACpD;AAEA,UAAMP,UAAUC,QAAQO,IACtBb,OAAOU,KAAKI,IAAI,CAACC,UAAU;AACzB,aAAO,IAAIT,QAAgC,CAACC,SAASS,WAAW;AAC9D,cAAMf,oBAAoB,KAAKX,gCAAgCY,IAAIa,KAAAA;AAEnE,YAAId,mBAAmB;AACrB,eAAKX,gCAAgCc,OAAOW,KAAAA;AAE5CR,kBAAQN,iBAAAA;AAER;QACF;AAEA,aAAKd,WAAWqB,IAAIO,OAAO;UAAER;QAAQ,CAAA;MACvC,CAAA;IACF,CAAA,CAAA;AAGF,UAAMU,UAAU,MAAMZ;AAEtB,WAAO;MACLF,IAAIH,OAAOG;MACXS,OAAOK;IACT;EACF;EAEAC,WAAWC,YAAoCJ,OAAqB;AAClE,UAAMK,OAAO,KAAKjC,WAAWe,IAAIa,KAAAA;AAEjC,QAAI,CAACK,MAAM;AAET,WAAK9B,gCAAgCkB,IAAIO,OAAOI,UAAAA;AAEhD;IACF;AAEAC,SAAKb,QAAQY,UAAAA;AAEb,SAAKhC,WAAWiB,OAAOW,KAAAA;EACzB;AACF;AAvFa7B;AAAN,IAAMA,oBAAN","sourcesContent":["import { TimerOptions } from \"node:timers\";\nimport { setInterval, setTimeout } from \"node:timers/promises\";\n\nexport async function unboundedTimeout<T = void>(\n delay: number = 0,\n value?: T,\n options?: TimerOptions\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","import {\n BatchTaskRunExecutionResult,\n TaskRunContext,\n TaskRunExecution,\n TaskRunExecutionResult,\n} from \"../schemas\";\nimport { RuntimeManager } from \"./manager\";\nimport { unboundedTimeout } from \"../utils/timers\";\n\nexport class DevRuntimeManager implements RuntimeManager {\n _taskWaits: Map<string, { resolve: (value: TaskRunExecutionResult) => void }> = new Map();\n\n _batchWaits: Map<\n string,\n { resolve: (value: BatchTaskRunExecutionResult) => void; reject: (err?: any) => void }\n > = new Map();\n\n _pendingCompletionNotifications: Map<string, TaskRunExecutionResult> = new Map();\n\n disable(): void {\n // do nothing\n }\n\n async waitForDuration(ms: number): Promise<void> {\n await unboundedTimeout(ms);\n }\n\n async waitUntil(date: Date): Promise<void> {\n return this.waitForDuration(date.getTime() - Date.now());\n }\n\n async waitForTask(params: { id: string; ctx: TaskRunContext }): Promise<TaskRunExecutionResult> {\n const pendingCompletion = this._pendingCompletionNotifications.get(params.id);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(params.id);\n\n return pendingCompletion;\n }\n\n const promise = new Promise<TaskRunExecutionResult>((resolve) => {\n this._taskWaits.set(params.id, { resolve });\n });\n\n return await promise;\n }\n\n async waitForBatch(params: {\n id: string;\n runs: string[];\n ctx: TaskRunContext;\n }): Promise<BatchTaskRunExecutionResult> {\n if (!params.runs.length) {\n return Promise.resolve({ id: params.id, items: [] });\n }\n\n const promise = Promise.all(\n params.runs.map((runId) => {\n return new Promise<TaskRunExecutionResult>((resolve, reject) => {\n const pendingCompletion = this._pendingCompletionNotifications.get(runId);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(runId);\n\n resolve(pendingCompletion);\n\n return;\n }\n\n this._taskWaits.set(runId, { resolve });\n });\n })\n );\n\n const results = await promise;\n\n return {\n id: params.id,\n items: results,\n };\n }\n\n resumeTask(completion: TaskRunExecutionResult, runId: string): void {\n const wait = this._taskWaits.get(runId);\n\n if (!wait) {\n // We need to store the completion in case the task is awaited later\n this._pendingCompletionNotifications.set(runId, completion);\n\n return;\n }\n\n wait.resolve(completion);\n\n this._taskWaits.delete(runId);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/v3/utils/timers.ts","../../../src/v3/runtime/devRuntimeManager.ts"],"names":["setInterval","setTimeout","unboundedTimeout","delay","value","options","maxDelay","fullTimeouts","Math","floor","remainingDelay","lastTimeoutResult","i","DevRuntimeManager","_taskWaits","Map","_batchWaits","_pendingCompletionNotifications","disable","waitForDuration","ms","waitUntil","date","getTime","Date","now","waitForTask","params","pendingCompletion","get","id","delete","promise","Promise","resolve","set","waitForBatch","runs","length","items","all","map","runId","reject","results","resumeTask","completion","wait"],"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;;;ACOf,IAAMW,qBAAN,MAAMA,mBAAAA;EAAN;AACLC,sCAAgF,oBAAIC,IAAAA;AAEpFC,uCAGI,oBAAID,IAAAA;AAERE,2DAAuE,oBAAIF,IAAAA;;EAE3EG,UAAgB;EAEhB;EAEA,MAAMC,gBAAgBC,IAA2B;AAC/C,UAAMlB,iBAAiBkB,EAAAA;EACzB;EAEA,MAAMC,UAAUC,MAA2B;AACzC,WAAO,KAAKH,gBAAgBG,KAAKC,QAAO,IAAKC,KAAKC,IAAG,CAAA;EACvD;EAEA,MAAMC,YAAYC,QAA8E;AAC9F,UAAMC,oBAAoB,KAAKX,gCAAgCY,IAAIF,OAAOG,EAAE;AAE5E,QAAIF,mBAAmB;AACrB,WAAKX,gCAAgCc,OAAOJ,OAAOG,EAAE;AAErD,aAAOF;IACT;AAEA,UAAMI,UAAU,IAAIC,QAAgC,CAACC,YAAY;AAC/D,WAAKpB,WAAWqB,IAAIR,OAAOG,IAAI;QAAEI;MAAQ,CAAA;IAC3C,CAAA;AAEA,WAAO,MAAMF;EACf;EAEA,MAAMI,aAAaT,QAIsB;AACvC,QAAI,CAACA,OAAOU,KAAKC,QAAQ;AACvB,aAAOL,QAAQC,QAAQ;QAAEJ,IAAIH,OAAOG;QAAIS,OAAO,CAAA;MAAG,CAAA;IACpD;AAEA,UAAMP,UAAUC,QAAQO,IACtBb,OAAOU,KAAKI,IAAI,CAACC,UAAU;AACzB,aAAO,IAAIT,QAAgC,CAACC,SAASS,WAAW;AAC9D,cAAMf,oBAAoB,KAAKX,gCAAgCY,IAAIa,KAAAA;AAEnE,YAAId,mBAAmB;AACrB,eAAKX,gCAAgCc,OAAOW,KAAAA;AAE5CR,kBAAQN,iBAAAA;AAER;QACF;AAEA,aAAKd,WAAWqB,IAAIO,OAAO;UAAER;QAAQ,CAAA;MACvC,CAAA;IACF,CAAA,CAAA;AAGF,UAAMU,UAAU,MAAMZ;AAEtB,WAAO;MACLF,IAAIH,OAAOG;MACXS,OAAOK;IACT;EACF;EAEAC,WAAWC,YAAoCJ,OAAqB;AAClE,UAAMK,OAAO,KAAKjC,WAAWe,IAAIa,KAAAA;AAEjC,QAAI,CAACK,MAAM;AAET,WAAK9B,gCAAgCkB,IAAIO,OAAOI,UAAAA;AAEhD;IACF;AAEAC,SAAKb,QAAQY,UAAAA;AAEb,SAAKhC,WAAWiB,OAAOW,KAAAA;EACzB;AACF;AAvFa7B;AAAN,IAAMA,oBAAN","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","import {\n BatchTaskRunExecutionResult,\n TaskRunContext,\n TaskRunExecution,\n TaskRunExecutionResult,\n} from \"../schemas\";\nimport { RuntimeManager } from \"./manager\";\nimport { unboundedTimeout } from \"../utils/timers\";\n\nexport class DevRuntimeManager implements RuntimeManager {\n _taskWaits: Map<string, { resolve: (value: TaskRunExecutionResult) => void }> = new Map();\n\n _batchWaits: Map<\n string,\n { resolve: (value: BatchTaskRunExecutionResult) => void; reject: (err?: any) => void }\n > = new Map();\n\n _pendingCompletionNotifications: Map<string, TaskRunExecutionResult> = new Map();\n\n disable(): void {\n // do nothing\n }\n\n async waitForDuration(ms: number): Promise<void> {\n await unboundedTimeout(ms);\n }\n\n async waitUntil(date: Date): Promise<void> {\n return this.waitForDuration(date.getTime() - Date.now());\n }\n\n async waitForTask(params: { id: string; ctx: TaskRunContext }): Promise<TaskRunExecutionResult> {\n const pendingCompletion = this._pendingCompletionNotifications.get(params.id);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(params.id);\n\n return pendingCompletion;\n }\n\n const promise = new Promise<TaskRunExecutionResult>((resolve) => {\n this._taskWaits.set(params.id, { resolve });\n });\n\n return await promise;\n }\n\n async waitForBatch(params: {\n id: string;\n runs: string[];\n ctx: TaskRunContext;\n }): Promise<BatchTaskRunExecutionResult> {\n if (!params.runs.length) {\n return Promise.resolve({ id: params.id, items: [] });\n }\n\n const promise = Promise.all(\n params.runs.map((runId) => {\n return new Promise<TaskRunExecutionResult>((resolve, reject) => {\n const pendingCompletion = this._pendingCompletionNotifications.get(runId);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(runId);\n\n resolve(pendingCompletion);\n\n return;\n }\n\n this._taskWaits.set(runId, { resolve });\n });\n })\n );\n\n const results = await promise;\n\n return {\n id: params.id,\n items: results,\n };\n }\n\n resumeTask(completion: TaskRunExecutionResult, runId: string): void {\n const wait = this._taskWaits.get(runId);\n\n if (!wait) {\n // We need to store the completion in case the task is awaited later\n this._pendingCompletionNotifications.set(runId, completion);\n\n return;\n }\n\n wait.resolve(completion);\n\n this._taskWaits.delete(runId);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/v3/utils/timers.ts","../../../src/v3/runtime/devRuntimeManager.ts"],"names":["setInterval","setTimeout","unboundedTimeout","delay","value","options","maxDelay","fullTimeouts","Math","floor","remainingDelay","lastTimeoutResult","i","DevRuntimeManager","_taskWaits","Map","_batchWaits","_pendingCompletionNotifications","disable","waitForDuration","ms","waitUntil","date","getTime","Date","now","waitForTask","params","pendingCompletion","get","id","delete","promise","Promise","resolve","set","waitForBatch","runs","length","items","all","map","runId","reject","results","resumeTask","completion","wait"],"mappings":";;;;;;;;;AACA,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;;;ACMf,IAAMW,qBAAN,MAAMA,mBAAAA;EAAN;AACLC,sCAAgF,oBAAIC,IAAAA;AAEpFC,uCAGI,oBAAID,IAAAA;AAERE,2DAAuE,oBAAIF,IAAAA;;EAE3EG,UAAgB;EAEhB;EAEA,MAAMC,gBAAgBC,IAA2B;AAC/C,UAAMlB,iBAAiBkB,EAAAA;EACzB;EAEA,MAAMC,UAAUC,MAA2B;AACzC,WAAO,KAAKH,gBAAgBG,KAAKC,QAAO,IAAKC,KAAKC,IAAG,CAAA;EACvD;EAEA,MAAMC,YAAYC,QAA8E;AAC9F,UAAMC,oBAAoB,KAAKX,gCAAgCY,IAAIF,OAAOG,EAAE;AAE5E,QAAIF,mBAAmB;AACrB,WAAKX,gCAAgCc,OAAOJ,OAAOG,EAAE;AAErD,aAAOF;IACT;AAEA,UAAMI,UAAU,IAAIC,QAAgC,CAACC,YAAY;AAC/D,WAAKpB,WAAWqB,IAAIR,OAAOG,IAAI;QAAEI;MAAQ,CAAA;IAC3C,CAAA;AAEA,WAAO,MAAMF;EACf;EAEA,MAAMI,aAAaT,QAIsB;AACvC,QAAI,CAACA,OAAOU,KAAKC,QAAQ;AACvB,aAAOL,QAAQC,QAAQ;QAAEJ,IAAIH,OAAOG;QAAIS,OAAO,CAAA;MAAG,CAAA;IACpD;AAEA,UAAMP,UAAUC,QAAQO,IACtBb,OAAOU,KAAKI,IAAI,CAACC,UAAU;AACzB,aAAO,IAAIT,QAAgC,CAACC,SAASS,WAAW;AAC9D,cAAMf,oBAAoB,KAAKX,gCAAgCY,IAAIa,KAAAA;AAEnE,YAAId,mBAAmB;AACrB,eAAKX,gCAAgCc,OAAOW,KAAAA;AAE5CR,kBAAQN,iBAAAA;AAER;QACF;AAEA,aAAKd,WAAWqB,IAAIO,OAAO;UAAER;QAAQ,CAAA;MACvC,CAAA;IACF,CAAA,CAAA;AAGF,UAAMU,UAAU,MAAMZ;AAEtB,WAAO;MACLF,IAAIH,OAAOG;MACXS,OAAOK;IACT;EACF;EAEAC,WAAWC,YAAoCJ,OAAqB;AAClE,UAAMK,OAAO,KAAKjC,WAAWe,IAAIa,KAAAA;AAEjC,QAAI,CAACK,MAAM;AAET,WAAK9B,gCAAgCkB,IAAIO,OAAOI,UAAAA;AAEhD;IACF;AAEAC,SAAKb,QAAQY,UAAAA;AAEb,SAAKhC,WAAWiB,OAAOW,KAAAA;EACzB;AACF;AAvFa7B;AAAN,IAAMA,oBAAN","sourcesContent":["import { TimerOptions } from \"node:timers\";\nimport { setInterval, setTimeout } from \"node:timers/promises\";\n\nexport async function unboundedTimeout<T = void>(\n delay: number = 0,\n value?: T,\n options?: TimerOptions\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","import {\n BatchTaskRunExecutionResult,\n TaskRunContext,\n TaskRunExecution,\n TaskRunExecutionResult,\n} from \"../schemas\";\nimport { RuntimeManager } from \"./manager\";\nimport { unboundedTimeout } from \"../utils/timers\";\n\nexport class DevRuntimeManager implements RuntimeManager {\n _taskWaits: Map<string, { resolve: (value: TaskRunExecutionResult) => void }> = new Map();\n\n _batchWaits: Map<\n string,\n { resolve: (value: BatchTaskRunExecutionResult) => void; reject: (err?: any) => void }\n > = new Map();\n\n _pendingCompletionNotifications: Map<string, TaskRunExecutionResult> = new Map();\n\n disable(): void {\n // do nothing\n }\n\n async waitForDuration(ms: number): Promise<void> {\n await unboundedTimeout(ms);\n }\n\n async waitUntil(date: Date): Promise<void> {\n return this.waitForDuration(date.getTime() - Date.now());\n }\n\n async waitForTask(params: { id: string; ctx: TaskRunContext }): Promise<TaskRunExecutionResult> {\n const pendingCompletion = this._pendingCompletionNotifications.get(params.id);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(params.id);\n\n return pendingCompletion;\n }\n\n const promise = new Promise<TaskRunExecutionResult>((resolve) => {\n this._taskWaits.set(params.id, { resolve });\n });\n\n return await promise;\n }\n\n async waitForBatch(params: {\n id: string;\n runs: string[];\n ctx: TaskRunContext;\n }): Promise<BatchTaskRunExecutionResult> {\n if (!params.runs.length) {\n return Promise.resolve({ id: params.id, items: [] });\n }\n\n const promise = Promise.all(\n params.runs.map((runId) => {\n return new Promise<TaskRunExecutionResult>((resolve, reject) => {\n const pendingCompletion = this._pendingCompletionNotifications.get(runId);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(runId);\n\n resolve(pendingCompletion);\n\n return;\n }\n\n this._taskWaits.set(runId, { resolve });\n });\n })\n );\n\n const results = await promise;\n\n return {\n id: params.id,\n items: results,\n };\n }\n\n resumeTask(completion: TaskRunExecutionResult, runId: string): void {\n const wait = this._taskWaits.get(runId);\n\n if (!wait) {\n // We need to store the completion in case the task is awaited later\n this._pendingCompletionNotifications.set(runId, completion);\n\n return;\n }\n\n wait.resolve(completion);\n\n this._taskWaits.delete(runId);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/v3/utils/timers.ts","../../../src/v3/runtime/devRuntimeManager.ts"],"names":["setInterval","setTimeout","unboundedTimeout","delay","value","options","maxDelay","fullTimeouts","Math","floor","remainingDelay","lastTimeoutResult","i","DevRuntimeManager","_taskWaits","Map","_batchWaits","_pendingCompletionNotifications","disable","waitForDuration","ms","waitUntil","date","getTime","Date","now","waitForTask","params","pendingCompletion","get","id","delete","promise","Promise","resolve","set","waitForBatch","runs","length","items","all","map","runId","reject","results","resumeTask","completion","wait"],"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;;;ACOf,IAAMW,qBAAN,MAAMA,mBAAAA;EAAN;AACLC,sCAAgF,oBAAIC,IAAAA;AAEpFC,uCAGI,oBAAID,IAAAA;AAERE,2DAAuE,oBAAIF,IAAAA;;EAE3EG,UAAgB;EAEhB;EAEA,MAAMC,gBAAgBC,IAA2B;AAC/C,UAAMlB,iBAAiBkB,EAAAA;EACzB;EAEA,MAAMC,UAAUC,MAA2B;AACzC,WAAO,KAAKH,gBAAgBG,KAAKC,QAAO,IAAKC,KAAKC,IAAG,CAAA;EACvD;EAEA,MAAMC,YAAYC,QAA8E;AAC9F,UAAMC,oBAAoB,KAAKX,gCAAgCY,IAAIF,OAAOG,EAAE;AAE5E,QAAIF,mBAAmB;AACrB,WAAKX,gCAAgCc,OAAOJ,OAAOG,EAAE;AAErD,aAAOF;IACT;AAEA,UAAMI,UAAU,IAAIC,QAAgC,CAACC,YAAY;AAC/D,WAAKpB,WAAWqB,IAAIR,OAAOG,IAAI;QAAEI;MAAQ,CAAA;IAC3C,CAAA;AAEA,WAAO,MAAMF;EACf;EAEA,MAAMI,aAAaT,QAIsB;AACvC,QAAI,CAACA,OAAOU,KAAKC,QAAQ;AACvB,aAAOL,QAAQC,QAAQ;QAAEJ,IAAIH,OAAOG;QAAIS,OAAO,CAAA;MAAG,CAAA;IACpD;AAEA,UAAMP,UAAUC,QAAQO,IACtBb,OAAOU,KAAKI,IAAI,CAACC,UAAU;AACzB,aAAO,IAAIT,QAAgC,CAACC,SAASS,WAAW;AAC9D,cAAMf,oBAAoB,KAAKX,gCAAgCY,IAAIa,KAAAA;AAEnE,YAAId,mBAAmB;AACrB,eAAKX,gCAAgCc,OAAOW,KAAAA;AAE5CR,kBAAQN,iBAAAA;AAER;QACF;AAEA,aAAKd,WAAWqB,IAAIO,OAAO;UAAER;QAAQ,CAAA;MACvC,CAAA;IACF,CAAA,CAAA;AAGF,UAAMU,UAAU,MAAMZ;AAEtB,WAAO;MACLF,IAAIH,OAAOG;MACXS,OAAOK;IACT;EACF;EAEAC,WAAWC,YAAoCJ,OAAqB;AAClE,UAAMK,OAAO,KAAKjC,WAAWe,IAAIa,KAAAA;AAEjC,QAAI,CAACK,MAAM;AAET,WAAK9B,gCAAgCkB,IAAIO,OAAOI,UAAAA;AAEhD;IACF;AAEAC,SAAKb,QAAQY,UAAAA;AAEb,SAAKhC,WAAWiB,OAAOW,KAAAA;EACzB;AACF;AAvFa7B;AAAN,IAAMA,oBAAN","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","import {\n BatchTaskRunExecutionResult,\n TaskRunContext,\n TaskRunExecution,\n TaskRunExecutionResult,\n} from \"../schemas\";\nimport { RuntimeManager } from \"./manager\";\nimport { unboundedTimeout } from \"../utils/timers\";\n\nexport class DevRuntimeManager implements RuntimeManager {\n _taskWaits: Map<string, { resolve: (value: TaskRunExecutionResult) => void }> = new Map();\n\n _batchWaits: Map<\n string,\n { resolve: (value: BatchTaskRunExecutionResult) => void; reject: (err?: any) => void }\n > = new Map();\n\n _pendingCompletionNotifications: Map<string, TaskRunExecutionResult> = new Map();\n\n disable(): void {\n // do nothing\n }\n\n async waitForDuration(ms: number): Promise<void> {\n await unboundedTimeout(ms);\n }\n\n async waitUntil(date: Date): Promise<void> {\n return this.waitForDuration(date.getTime() - Date.now());\n }\n\n async waitForTask(params: { id: string; ctx: TaskRunContext }): Promise<TaskRunExecutionResult> {\n const pendingCompletion = this._pendingCompletionNotifications.get(params.id);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(params.id);\n\n return pendingCompletion;\n }\n\n const promise = new Promise<TaskRunExecutionResult>((resolve) => {\n this._taskWaits.set(params.id, { resolve });\n });\n\n return await promise;\n }\n\n async waitForBatch(params: {\n id: string;\n runs: string[];\n ctx: TaskRunContext;\n }): Promise<BatchTaskRunExecutionResult> {\n if (!params.runs.length) {\n return Promise.resolve({ id: params.id, items: [] });\n }\n\n const promise = Promise.all(\n params.runs.map((runId) => {\n return new Promise<TaskRunExecutionResult>((resolve, reject) => {\n const pendingCompletion = this._pendingCompletionNotifications.get(runId);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(runId);\n\n resolve(pendingCompletion);\n\n return;\n }\n\n this._taskWaits.set(runId, { resolve });\n });\n })\n );\n\n const results = await promise;\n\n return {\n id: params.id,\n items: results,\n };\n }\n\n resumeTask(completion: TaskRunExecutionResult, runId: string): void {\n const wait = this._taskWaits.get(runId);\n\n if (!wait) {\n // We need to store the completion in case the task is awaited later\n this._pendingCompletionNotifications.set(runId, completion);\n\n return;\n }\n\n wait.resolve(completion);\n\n this._taskWaits.delete(runId);\n }\n}\n"]}
@@ -0,0 +1,39 @@
1
+ import { z } from 'zod';
2
+ import { b as TaskRunError } from '../common-CLW82lkt.mjs';
3
+
4
+ declare class AbortTaskRunError extends Error {
5
+ constructor(message: string);
6
+ }
7
+ declare function parseError(error: unknown): TaskRunError;
8
+ declare function createErrorTaskError(error: TaskRunError): any;
9
+ declare const SerializedError: z.ZodObject<{
10
+ message: z.ZodString;
11
+ name: z.ZodOptional<z.ZodString>;
12
+ stackTrace: z.ZodOptional<z.ZodString>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ message: string;
15
+ name?: string | undefined;
16
+ stackTrace?: string | undefined;
17
+ }, {
18
+ message: string;
19
+ name?: string | undefined;
20
+ stackTrace?: string | undefined;
21
+ }>;
22
+ type SerializedError = z.infer<typeof SerializedError>;
23
+ declare function createJsonErrorObject(error: TaskRunError): SerializedError;
24
+ declare function sanitizeError(error: TaskRunError): TaskRunError;
25
+ declare function correctErrorStackTrace(stackTrace: string, projectDir?: string, options?: {
26
+ removeFirstLine?: boolean;
27
+ isDev?: boolean;
28
+ }): string;
29
+ declare function groupTaskMetadataIssuesByTask(tasks: any, issues: z.ZodIssue[]): Record<number, {
30
+ id: any;
31
+ exportName: string;
32
+ filePath: string;
33
+ issues: Array<{
34
+ message: string;
35
+ path?: string;
36
+ }>;
37
+ }>;
38
+
39
+ export { AbortTaskRunError, SerializedError, correctErrorStackTrace, createErrorTaskError, createJsonErrorObject, groupTaskMetadataIssuesByTask, parseError, sanitizeError };
@@ -0,0 +1,39 @@
1
+ import { z } from 'zod';
2
+ import { b as TaskRunError } from '../common-CLW82lkt.js';
3
+
4
+ declare class AbortTaskRunError extends Error {
5
+ constructor(message: string);
6
+ }
7
+ declare function parseError(error: unknown): TaskRunError;
8
+ declare function createErrorTaskError(error: TaskRunError): any;
9
+ declare const SerializedError: z.ZodObject<{
10
+ message: z.ZodString;
11
+ name: z.ZodOptional<z.ZodString>;
12
+ stackTrace: z.ZodOptional<z.ZodString>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ message: string;
15
+ name?: string | undefined;
16
+ stackTrace?: string | undefined;
17
+ }, {
18
+ message: string;
19
+ name?: string | undefined;
20
+ stackTrace?: string | undefined;
21
+ }>;
22
+ type SerializedError = z.infer<typeof SerializedError>;
23
+ declare function createJsonErrorObject(error: TaskRunError): SerializedError;
24
+ declare function sanitizeError(error: TaskRunError): TaskRunError;
25
+ declare function correctErrorStackTrace(stackTrace: string, projectDir?: string, options?: {
26
+ removeFirstLine?: boolean;
27
+ isDev?: boolean;
28
+ }): string;
29
+ declare function groupTaskMetadataIssuesByTask(tasks: any, issues: z.ZodIssue[]): Record<number, {
30
+ id: any;
31
+ exportName: string;
32
+ filePath: string;
33
+ issues: Array<{
34
+ message: string;
35
+ path?: string;
36
+ }>;
37
+ }>;
38
+
39
+ export { AbortTaskRunError, SerializedError, correctErrorStackTrace, createErrorTaskError, createJsonErrorObject, groupTaskMetadataIssuesByTask, parseError, sanitizeError };
@@ -0,0 +1,204 @@
1
+ 'use strict';
2
+
3
+ var zod = require('zod');
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var _AbortTaskRunError = class _AbortTaskRunError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = "AbortTaskRunError";
11
+ }
12
+ };
13
+ __name(_AbortTaskRunError, "AbortTaskRunError");
14
+ var AbortTaskRunError = _AbortTaskRunError;
15
+ function parseError(error) {
16
+ if (error instanceof Error) {
17
+ return {
18
+ type: "BUILT_IN_ERROR",
19
+ name: error.name,
20
+ message: error.message,
21
+ stackTrace: error.stack ?? ""
22
+ };
23
+ }
24
+ if (typeof error === "string") {
25
+ return {
26
+ type: "STRING_ERROR",
27
+ raw: error
28
+ };
29
+ }
30
+ try {
31
+ return {
32
+ type: "CUSTOM_ERROR",
33
+ raw: JSON.stringify(error)
34
+ };
35
+ } catch (e) {
36
+ return {
37
+ type: "CUSTOM_ERROR",
38
+ raw: String(error)
39
+ };
40
+ }
41
+ }
42
+ __name(parseError, "parseError");
43
+ function createErrorTaskError(error) {
44
+ switch (error.type) {
45
+ case "BUILT_IN_ERROR": {
46
+ const e = new Error(error.message);
47
+ e.name = error.name;
48
+ e.stack = error.stackTrace;
49
+ return e;
50
+ }
51
+ case "STRING_ERROR": {
52
+ return error.raw;
53
+ }
54
+ case "CUSTOM_ERROR": {
55
+ return JSON.parse(error.raw);
56
+ }
57
+ case "INTERNAL_ERROR": {
58
+ return new Error(`trigger.dev internal error (${error.code})`);
59
+ }
60
+ }
61
+ }
62
+ __name(createErrorTaskError, "createErrorTaskError");
63
+ var SerializedError = zod.z.object({
64
+ message: zod.z.string(),
65
+ name: zod.z.string().optional(),
66
+ stackTrace: zod.z.string().optional()
67
+ });
68
+ function createJsonErrorObject(error) {
69
+ switch (error.type) {
70
+ case "BUILT_IN_ERROR": {
71
+ return {
72
+ name: error.name,
73
+ message: error.message,
74
+ stackTrace: error.stackTrace
75
+ };
76
+ }
77
+ case "STRING_ERROR": {
78
+ return {
79
+ message: error.raw
80
+ };
81
+ }
82
+ case "CUSTOM_ERROR": {
83
+ return {
84
+ message: error.raw
85
+ };
86
+ }
87
+ case "INTERNAL_ERROR": {
88
+ return {
89
+ message: `trigger.dev internal error (${error.code})`
90
+ };
91
+ }
92
+ }
93
+ }
94
+ __name(createJsonErrorObject, "createJsonErrorObject");
95
+ function sanitizeError(error) {
96
+ switch (error.type) {
97
+ case "BUILT_IN_ERROR": {
98
+ return {
99
+ type: "BUILT_IN_ERROR",
100
+ message: error.message?.replace(/\0/g, ""),
101
+ name: error.name?.replace(/\0/g, ""),
102
+ stackTrace: error.stackTrace?.replace(/\0/g, "")
103
+ };
104
+ }
105
+ case "STRING_ERROR": {
106
+ return {
107
+ type: "STRING_ERROR",
108
+ raw: error.raw.replace(/\0/g, "")
109
+ };
110
+ }
111
+ case "CUSTOM_ERROR": {
112
+ return {
113
+ type: "CUSTOM_ERROR",
114
+ raw: error.raw.replace(/\0/g, "")
115
+ };
116
+ }
117
+ case "INTERNAL_ERROR": {
118
+ return {
119
+ type: "INTERNAL_ERROR",
120
+ code: error.code,
121
+ message: error.message?.replace(/\0/g, ""),
122
+ stackTrace: error.stackTrace?.replace(/\0/g, "")
123
+ };
124
+ }
125
+ }
126
+ }
127
+ __name(sanitizeError, "sanitizeError");
128
+ function correctErrorStackTrace(stackTrace, projectDir, options) {
129
+ const [errorLine, ...traceLines] = stackTrace.split("\n");
130
+ return [
131
+ options?.removeFirstLine ? void 0 : errorLine,
132
+ ...traceLines.map((line) => correctStackTraceLine(line, projectDir, options?.isDev))
133
+ ].filter(Boolean).join("\n");
134
+ }
135
+ __name(correctErrorStackTrace, "correctErrorStackTrace");
136
+ var LINES_TO_IGNORE = [
137
+ /ConsoleInterceptor/,
138
+ /TriggerTracer/,
139
+ /TaskExecutor/,
140
+ /EXECUTE_TASK_RUN/,
141
+ /@trigger.dev\/core/,
142
+ /packages\/core\/src\/v3/,
143
+ /safeJsonProcess/,
144
+ /__entryPoint.ts/,
145
+ /ZodIpc/,
146
+ /startActiveSpan/,
147
+ /processTicksAndRejections/
148
+ ];
149
+ function correctStackTraceLine(line, projectDir, isDev) {
150
+ if (LINES_TO_IGNORE.some((regex) => regex.test(line))) {
151
+ return;
152
+ }
153
+ if (isDev && projectDir && !line.includes(projectDir)) {
154
+ return;
155
+ }
156
+ return line.trim();
157
+ }
158
+ __name(correctStackTraceLine, "correctStackTraceLine");
159
+ function groupTaskMetadataIssuesByTask(tasks, issues) {
160
+ return issues.reduce((acc, issue) => {
161
+ if (issue.path.length === 0) {
162
+ return acc;
163
+ }
164
+ const taskIndex = issue.path[1];
165
+ if (typeof taskIndex !== "number") {
166
+ return acc;
167
+ }
168
+ const task = tasks[taskIndex];
169
+ if (!task) {
170
+ return acc;
171
+ }
172
+ const restOfPath = issue.path.slice(2);
173
+ const taskId = task.id;
174
+ const taskName = task.exportName;
175
+ const filePath = task.filePath;
176
+ const key = taskIndex;
177
+ const existing = acc[key] ?? {
178
+ id: taskId,
179
+ exportName: taskName,
180
+ filePath,
181
+ issues: []
182
+ };
183
+ existing.issues.push({
184
+ message: issue.message,
185
+ path: restOfPath.length === 0 ? void 0 : restOfPath.join(".")
186
+ });
187
+ return {
188
+ ...acc,
189
+ [key]: existing
190
+ };
191
+ }, {});
192
+ }
193
+ __name(groupTaskMetadataIssuesByTask, "groupTaskMetadataIssuesByTask");
194
+
195
+ exports.AbortTaskRunError = AbortTaskRunError;
196
+ exports.SerializedError = SerializedError;
197
+ exports.correctErrorStackTrace = correctErrorStackTrace;
198
+ exports.createErrorTaskError = createErrorTaskError;
199
+ exports.createJsonErrorObject = createJsonErrorObject;
200
+ exports.groupTaskMetadataIssuesByTask = groupTaskMetadataIssuesByTask;
201
+ exports.parseError = parseError;
202
+ exports.sanitizeError = sanitizeError;
203
+ //# sourceMappingURL=out.js.map
204
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/v3/errors.ts"],"names":["z","AbortTaskRunError","Error","constructor","message","name","parseError","error","type","stackTrace","stack","raw","JSON","stringify","e","String","createErrorTaskError","parse","code","SerializedError","object","string","optional","createJsonErrorObject","sanitizeError","replace","correctErrorStackTrace","projectDir","options","errorLine","traceLines","split","removeFirstLine","undefined","map","line","correctStackTraceLine","isDev","filter","Boolean","join","LINES_TO_IGNORE","some","regex","test","includes","trim","groupTaskMetadataIssuesByTask","tasks","issues","reduce","acc","issue","path","length","taskIndex","task","restOfPath","slice","taskId","id","taskName","exportName","filePath","key","existing","push"],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport { TaskRunError } from \"./schemas/common\";\n\nexport class AbortTaskRunError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"AbortTaskRunError\";\n }\n}\n\nexport function parseError(error: unknown): TaskRunError {\n if (error instanceof Error) {\n return {\n type: \"BUILT_IN_ERROR\",\n name: error.name,\n message: error.message,\n stackTrace: error.stack ?? \"\",\n };\n }\n\n if (typeof error === \"string\") {\n return {\n type: \"STRING_ERROR\",\n raw: error,\n };\n }\n\n try {\n return {\n type: \"CUSTOM_ERROR\",\n raw: JSON.stringify(error),\n };\n } catch (e) {\n return {\n type: \"CUSTOM_ERROR\",\n raw: String(error),\n };\n }\n}\n\nexport function createErrorTaskError(error: TaskRunError): any {\n switch (error.type) {\n case \"BUILT_IN_ERROR\": {\n const e = new Error(error.message);\n\n e.name = error.name;\n e.stack = error.stackTrace;\n\n return e;\n }\n case \"STRING_ERROR\": {\n return error.raw;\n }\n case \"CUSTOM_ERROR\": {\n return JSON.parse(error.raw);\n }\n case \"INTERNAL_ERROR\": {\n return new Error(`trigger.dev internal error (${error.code})`);\n }\n }\n}\n\nexport const SerializedError = z.object({\n message: z.string(),\n name: z.string().optional(),\n stackTrace: z.string().optional(),\n});\n\nexport type SerializedError = z.infer<typeof SerializedError>;\n\nexport function createJsonErrorObject(error: TaskRunError): SerializedError {\n switch (error.type) {\n case \"BUILT_IN_ERROR\": {\n return {\n name: error.name,\n message: error.message,\n stackTrace: error.stackTrace,\n };\n }\n case \"STRING_ERROR\": {\n return {\n message: error.raw,\n };\n }\n case \"CUSTOM_ERROR\": {\n return {\n message: error.raw,\n };\n }\n case \"INTERNAL_ERROR\": {\n return {\n message: `trigger.dev internal error (${error.code})`,\n };\n }\n }\n}\n\n// Removes any null characters from the error message\nexport function sanitizeError(error: TaskRunError): TaskRunError {\n switch (error.type) {\n case \"BUILT_IN_ERROR\": {\n return {\n type: \"BUILT_IN_ERROR\",\n message: error.message?.replace(/\\0/g, \"\"),\n name: error.name?.replace(/\\0/g, \"\"),\n stackTrace: error.stackTrace?.replace(/\\0/g, \"\"),\n };\n }\n case \"STRING_ERROR\": {\n return {\n type: \"STRING_ERROR\",\n raw: error.raw.replace(/\\0/g, \"\"),\n };\n }\n case \"CUSTOM_ERROR\": {\n return {\n type: \"CUSTOM_ERROR\",\n raw: error.raw.replace(/\\0/g, \"\"),\n };\n }\n case \"INTERNAL_ERROR\": {\n return {\n type: \"INTERNAL_ERROR\",\n code: error.code,\n message: error.message?.replace(/\\0/g, \"\"),\n stackTrace: error.stackTrace?.replace(/\\0/g, \"\"),\n };\n }\n }\n}\n\nexport function correctErrorStackTrace(\n stackTrace: string,\n projectDir?: string,\n options?: { removeFirstLine?: boolean; isDev?: boolean }\n) {\n const [errorLine, ...traceLines] = stackTrace.split(\"\\n\");\n\n return [\n options?.removeFirstLine ? undefined : errorLine,\n ...traceLines.map((line) => correctStackTraceLine(line, projectDir, options?.isDev)),\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nconst LINES_TO_IGNORE = [\n /ConsoleInterceptor/,\n /TriggerTracer/,\n /TaskExecutor/,\n /EXECUTE_TASK_RUN/,\n /@trigger.dev\\/core/,\n /packages\\/core\\/src\\/v3/,\n /safeJsonProcess/,\n /__entryPoint.ts/,\n /ZodIpc/,\n /startActiveSpan/,\n /processTicksAndRejections/,\n];\n\nfunction correctStackTraceLine(line: string, projectDir?: string, isDev?: boolean) {\n if (LINES_TO_IGNORE.some((regex) => regex.test(line))) {\n return;\n }\n\n // Check to see if the path is inside the project directory\n if (isDev && projectDir && !line.includes(projectDir)) {\n return;\n }\n\n return line.trim();\n}\n\nexport function groupTaskMetadataIssuesByTask(tasks: any, issues: z.ZodIssue[]) {\n return issues.reduce(\n (acc, issue) => {\n if (issue.path.length === 0) {\n return acc;\n }\n\n const taskIndex = issue.path[1];\n\n if (typeof taskIndex !== \"number\") {\n return acc;\n }\n\n const task = tasks[taskIndex];\n\n if (!task) {\n return acc;\n }\n\n const restOfPath = issue.path.slice(2);\n\n const taskId = task.id;\n const taskName = task.exportName;\n const filePath = task.filePath;\n\n const key = taskIndex;\n\n const existing = acc[key] ?? {\n id: taskId,\n exportName: taskName,\n filePath,\n issues: [] as Array<{ message: string; path?: string }>,\n };\n\n existing.issues.push({\n message: issue.message,\n path: restOfPath.length === 0 ? undefined : restOfPath.join(\".\"),\n });\n\n return {\n ...acc,\n [key]: existing,\n };\n },\n {} as Record<\n number,\n {\n id: any;\n exportName: string;\n filePath: string;\n issues: Array<{ message: string; path?: string }>;\n }\n >\n );\n}\n"]}