@trigger.dev/core 3.0.13 → 3.1.1

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 (193) hide show
  1. package/dist/commonjs/v3/apiClient/core.d.ts +1 -1
  2. package/dist/commonjs/v3/apiClient/core.js +9 -1
  3. package/dist/commonjs/v3/apiClient/core.js.map +1 -1
  4. package/dist/commonjs/v3/apiClient/index.d.ts +64 -36
  5. package/dist/commonjs/v3/apiClient/index.js +100 -4
  6. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  7. package/dist/commonjs/v3/apiClient/runStream.d.ts +50 -0
  8. package/dist/commonjs/v3/apiClient/runStream.js +159 -0
  9. package/dist/commonjs/v3/apiClient/runStream.js.map +1 -0
  10. package/dist/commonjs/v3/apiClient/stream.d.ts +9 -0
  11. package/dist/commonjs/v3/apiClient/stream.js +37 -0
  12. package/dist/commonjs/v3/apiClient/stream.js.map +1 -0
  13. package/dist/commonjs/v3/apiClient/types.d.ts +4 -0
  14. package/dist/commonjs/v3/apiClientManager/index.d.ts +2 -1
  15. package/dist/commonjs/v3/apiClientManager/index.js +18 -7
  16. package/dist/commonjs/v3/apiClientManager/index.js.map +1 -1
  17. package/dist/commonjs/v3/apiClientManager/types.d.ts +7 -0
  18. package/dist/commonjs/v3/apps/process.d.ts +2 -0
  19. package/dist/commonjs/v3/apps/process.js +2 -0
  20. package/dist/commonjs/v3/apps/process.js.map +1 -1
  21. package/dist/commonjs/v3/errors.d.ts +5 -0
  22. package/dist/commonjs/v3/errors.js +193 -30
  23. package/dist/commonjs/v3/errors.js.map +1 -1
  24. package/dist/commonjs/v3/index.d.ts +2 -1
  25. package/dist/commonjs/v3/index.js +4 -3
  26. package/dist/commonjs/v3/index.js.map +1 -1
  27. package/dist/commonjs/v3/jwt.d.ts +10 -0
  28. package/dist/commonjs/v3/jwt.js +34 -0
  29. package/dist/commonjs/v3/jwt.js.map +1 -0
  30. package/dist/commonjs/v3/links.d.ts +3 -0
  31. package/dist/commonjs/v3/links.js +3 -0
  32. package/dist/commonjs/v3/links.js.map +1 -1
  33. package/dist/commonjs/v3/otel/index.d.ts +2 -3
  34. package/dist/commonjs/v3/otel/index.js +15 -21
  35. package/dist/commonjs/v3/otel/index.js.map +1 -1
  36. package/dist/commonjs/v3/otel/utils.d.ts +2 -0
  37. package/dist/commonjs/v3/otel/utils.js +24 -0
  38. package/dist/commonjs/v3/otel/utils.js.map +1 -0
  39. package/dist/commonjs/v3/runMetadata/index.d.ts +8 -6
  40. package/dist/commonjs/v3/runMetadata/index.js +18 -39
  41. package/dist/commonjs/v3/runMetadata/index.js.map +1 -1
  42. package/dist/commonjs/v3/runMetadata/manager.d.ts +17 -0
  43. package/dist/commonjs/v3/runMetadata/manager.js +116 -0
  44. package/dist/commonjs/v3/runMetadata/manager.js.map +1 -0
  45. package/dist/commonjs/v3/runMetadata/noopManager.d.ts +12 -0
  46. package/dist/commonjs/v3/runMetadata/noopManager.js +26 -0
  47. package/dist/commonjs/v3/runMetadata/noopManager.js.map +1 -0
  48. package/dist/commonjs/v3/runMetadata/types.d.ts +11 -0
  49. package/dist/commonjs/v3/runMetadata/types.js +3 -0
  50. package/dist/commonjs/v3/runMetadata/types.js.map +1 -0
  51. package/dist/commonjs/v3/runtime/noopRuntimeManager.js +5 -1
  52. package/dist/commonjs/v3/runtime/noopRuntimeManager.js.map +1 -1
  53. package/dist/commonjs/v3/schemas/api.d.ts +193 -64
  54. package/dist/commonjs/v3/schemas/api.js +34 -4
  55. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  56. package/dist/commonjs/v3/schemas/build.d.ts +12 -12
  57. package/dist/commonjs/v3/schemas/common.d.ts +24 -24
  58. package/dist/commonjs/v3/schemas/common.js +3 -0
  59. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  60. package/dist/commonjs/v3/schemas/messages.d.ts +124 -123
  61. package/dist/commonjs/v3/schemas/messages.js +1 -0
  62. package/dist/commonjs/v3/schemas/messages.js.map +1 -1
  63. package/dist/commonjs/v3/schemas/schemas.d.ts +2 -2
  64. package/dist/commonjs/v3/tracer.js +2 -2
  65. package/dist/commonjs/v3/types/idempotencyKeys.d.ts +7 -0
  66. package/dist/commonjs/v3/types/idempotencyKeys.js +3 -0
  67. package/dist/commonjs/v3/types/idempotencyKeys.js.map +1 -0
  68. package/dist/commonjs/v3/types/index.d.ts +9 -63
  69. package/dist/commonjs/v3/types/index.js +2 -0
  70. package/dist/commonjs/v3/types/index.js.map +1 -1
  71. package/dist/commonjs/v3/types/schemas.d.ts +44 -0
  72. package/dist/commonjs/v3/types/schemas.js +41 -0
  73. package/dist/commonjs/v3/types/schemas.js.map +1 -0
  74. package/dist/commonjs/v3/types/tasks.d.ts +474 -0
  75. package/dist/commonjs/v3/types/tasks.js +42 -0
  76. package/dist/commonjs/v3/types/tasks.js.map +1 -0
  77. package/dist/commonjs/v3/utils/flattenAttributes.d.ts +2 -1
  78. package/dist/commonjs/v3/utils/flattenAttributes.js +39 -16
  79. package/dist/commonjs/v3/utils/flattenAttributes.js.map +1 -1
  80. package/dist/commonjs/v3/utils/getEnv.d.ts +1 -0
  81. package/dist/commonjs/v3/utils/getEnv.js +12 -0
  82. package/dist/commonjs/v3/utils/getEnv.js.map +1 -1
  83. package/dist/commonjs/v3/utils/globals.d.ts +2 -2
  84. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  85. package/dist/commonjs/v3/utils/ioSerialization.d.ts +1 -0
  86. package/dist/commonjs/v3/utils/ioSerialization.js +21 -3
  87. package/dist/commonjs/v3/utils/ioSerialization.js.map +1 -1
  88. package/dist/commonjs/v3/utils/safeAsyncLocalStorage.d.ts +1 -0
  89. package/dist/commonjs/v3/utils/safeAsyncLocalStorage.js +3 -0
  90. package/dist/commonjs/v3/utils/safeAsyncLocalStorage.js.map +1 -1
  91. package/dist/commonjs/v3/workers/index.d.ts +2 -1
  92. package/dist/commonjs/v3/workers/index.js +4 -1
  93. package/dist/commonjs/v3/workers/index.js.map +1 -1
  94. package/dist/commonjs/v3/workers/taskExecutor.js +43 -9
  95. package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
  96. package/dist/commonjs/version.js +1 -1
  97. package/dist/esm/v3/apiClient/core.d.ts +1 -1
  98. package/dist/esm/v3/apiClient/core.js +9 -1
  99. package/dist/esm/v3/apiClient/core.js.map +1 -1
  100. package/dist/esm/v3/apiClient/index.d.ts +64 -36
  101. package/dist/esm/v3/apiClient/index.js +100 -4
  102. package/dist/esm/v3/apiClient/index.js.map +1 -1
  103. package/dist/esm/v3/apiClient/runStream.d.ts +50 -0
  104. package/dist/esm/v3/apiClient/runStream.js +154 -0
  105. package/dist/esm/v3/apiClient/runStream.js.map +1 -0
  106. package/dist/esm/v3/apiClient/stream.d.ts +9 -0
  107. package/dist/esm/v3/apiClient/stream.js +33 -0
  108. package/dist/esm/v3/apiClient/stream.js.map +1 -0
  109. package/dist/esm/v3/apiClient/types.d.ts +4 -0
  110. package/dist/esm/v3/apiClientManager/index.d.ts +2 -1
  111. package/dist/esm/v3/apiClientManager/index.js +18 -7
  112. package/dist/esm/v3/apiClientManager/index.js.map +1 -1
  113. package/dist/esm/v3/apiClientManager/types.d.ts +7 -0
  114. package/dist/esm/v3/apps/process.d.ts +2 -0
  115. package/dist/esm/v3/apps/process.js +2 -0
  116. package/dist/esm/v3/apps/process.js.map +1 -1
  117. package/dist/esm/v3/errors.d.ts +5 -0
  118. package/dist/esm/v3/errors.js +190 -29
  119. package/dist/esm/v3/errors.js.map +1 -1
  120. package/dist/esm/v3/index.d.ts +2 -1
  121. package/dist/esm/v3/index.js +2 -1
  122. package/dist/esm/v3/index.js.map +1 -1
  123. package/dist/esm/v3/jwt.d.ts +10 -0
  124. package/dist/esm/v3/jwt.js +29 -0
  125. package/dist/esm/v3/jwt.js.map +1 -0
  126. package/dist/esm/v3/links.d.ts +3 -0
  127. package/dist/esm/v3/links.js +3 -0
  128. package/dist/esm/v3/links.js.map +1 -1
  129. package/dist/esm/v3/otel/index.d.ts +2 -3
  130. package/dist/esm/v3/otel/index.js +1 -20
  131. package/dist/esm/v3/otel/index.js.map +1 -1
  132. package/dist/esm/v3/otel/utils.d.ts +2 -0
  133. package/dist/esm/v3/otel/utils.js +21 -0
  134. package/dist/esm/v3/otel/utils.js.map +1 -0
  135. package/dist/esm/v3/runMetadata/index.d.ts +8 -6
  136. package/dist/esm/v3/runMetadata/index.js +20 -41
  137. package/dist/esm/v3/runMetadata/index.js.map +1 -1
  138. package/dist/esm/v3/runMetadata/manager.d.ts +17 -0
  139. package/dist/esm/v3/runMetadata/manager.js +112 -0
  140. package/dist/esm/v3/runMetadata/manager.js.map +1 -0
  141. package/dist/esm/v3/runMetadata/noopManager.d.ts +12 -0
  142. package/dist/esm/v3/runMetadata/noopManager.js +22 -0
  143. package/dist/esm/v3/runMetadata/noopManager.js.map +1 -0
  144. package/dist/esm/v3/runMetadata/types.d.ts +11 -0
  145. package/dist/esm/v3/runMetadata/types.js +2 -0
  146. package/dist/esm/v3/runMetadata/types.js.map +1 -0
  147. package/dist/esm/v3/runtime/noopRuntimeManager.js +5 -1
  148. package/dist/esm/v3/runtime/noopRuntimeManager.js.map +1 -1
  149. package/dist/esm/v3/schemas/api.d.ts +193 -64
  150. package/dist/esm/v3/schemas/api.js +33 -3
  151. package/dist/esm/v3/schemas/api.js.map +1 -1
  152. package/dist/esm/v3/schemas/build.d.ts +12 -12
  153. package/dist/esm/v3/schemas/common.d.ts +24 -24
  154. package/dist/esm/v3/schemas/common.js +3 -0
  155. package/dist/esm/v3/schemas/common.js.map +1 -1
  156. package/dist/esm/v3/schemas/messages.d.ts +124 -123
  157. package/dist/esm/v3/schemas/messages.js +1 -0
  158. package/dist/esm/v3/schemas/messages.js.map +1 -1
  159. package/dist/esm/v3/schemas/schemas.d.ts +2 -2
  160. package/dist/esm/v3/tracer.js +1 -1
  161. package/dist/esm/v3/types/idempotencyKeys.d.ts +7 -0
  162. package/dist/esm/v3/types/idempotencyKeys.js +2 -0
  163. package/dist/esm/v3/types/idempotencyKeys.js.map +1 -0
  164. package/dist/esm/v3/types/index.d.ts +9 -63
  165. package/dist/esm/v3/types/index.js +2 -0
  166. package/dist/esm/v3/types/index.js.map +1 -1
  167. package/dist/esm/v3/types/schemas.d.ts +44 -0
  168. package/dist/esm/v3/types/schemas.js +38 -0
  169. package/dist/esm/v3/types/schemas.js.map +1 -0
  170. package/dist/esm/v3/types/tasks.d.ts +474 -0
  171. package/dist/esm/v3/types/tasks.js +37 -0
  172. package/dist/esm/v3/types/tasks.js.map +1 -0
  173. package/dist/esm/v3/utils/flattenAttributes.d.ts +2 -1
  174. package/dist/esm/v3/utils/flattenAttributes.js +38 -15
  175. package/dist/esm/v3/utils/flattenAttributes.js.map +1 -1
  176. package/dist/esm/v3/utils/getEnv.d.ts +1 -0
  177. package/dist/esm/v3/utils/getEnv.js +11 -0
  178. package/dist/esm/v3/utils/getEnv.js.map +1 -1
  179. package/dist/esm/v3/utils/globals.d.ts +2 -2
  180. package/dist/esm/v3/utils/globals.js.map +1 -1
  181. package/dist/esm/v3/utils/ioSerialization.d.ts +1 -0
  182. package/dist/esm/v3/utils/ioSerialization.js +20 -3
  183. package/dist/esm/v3/utils/ioSerialization.js.map +1 -1
  184. package/dist/esm/v3/utils/safeAsyncLocalStorage.d.ts +1 -0
  185. package/dist/esm/v3/utils/safeAsyncLocalStorage.js +3 -0
  186. package/dist/esm/v3/utils/safeAsyncLocalStorage.js.map +1 -1
  187. package/dist/esm/v3/workers/index.d.ts +2 -1
  188. package/dist/esm/v3/workers/index.js +2 -1
  189. package/dist/esm/v3/workers/index.js.map +1 -1
  190. package/dist/esm/v3/workers/taskExecutor.js +44 -10
  191. package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
  192. package/dist/esm/version.js +1 -1
  193. package/package.json +35 -1
@@ -0,0 +1,154 @@
1
+ import { SubscribeRunRawShape } from "../schemas/api.js";
2
+ import { conditionallyImportAndParsePacket, parsePacket, } from "../utils/ioSerialization.js";
3
+ import { createAsyncIterableStream, zodShapeStream } from "./stream.js";
4
+ export function runShapeStream(url, options) {
5
+ return new RunSubscription(url, options);
6
+ }
7
+ export class RunSubscription {
8
+ url;
9
+ options;
10
+ abortController;
11
+ unsubscribeShape;
12
+ stream;
13
+ packetCache = new Map();
14
+ constructor(url, options) {
15
+ this.url = url;
16
+ this.options = options;
17
+ this.abortController = new AbortController();
18
+ const source = new ReadableStream({
19
+ start: async (controller) => {
20
+ this.unsubscribeShape = await zodShapeStream(SubscribeRunRawShape, this.url, async (shape) => {
21
+ controller.enqueue(shape);
22
+ if (this.options?.closeOnComplete &&
23
+ shape.completedAt &&
24
+ !this.abortController.signal.aborted) {
25
+ controller.close();
26
+ this.abortController.abort();
27
+ }
28
+ }, {
29
+ signal: this.abortController.signal,
30
+ fetchClient: this.options?.fetchClient,
31
+ headers: this.options?.headers,
32
+ });
33
+ },
34
+ cancel: () => {
35
+ this.unsubscribe();
36
+ },
37
+ });
38
+ this.stream = createAsyncIterableStream(source, {
39
+ transform: async (chunk, controller) => {
40
+ const run = await this.transformRunShape(chunk);
41
+ controller.enqueue(run);
42
+ },
43
+ });
44
+ }
45
+ unsubscribe() {
46
+ if (!this.abortController.signal.aborted) {
47
+ this.abortController.abort();
48
+ }
49
+ this.unsubscribeShape?.();
50
+ }
51
+ [Symbol.asyncIterator]() {
52
+ return this.stream[Symbol.asyncIterator]();
53
+ }
54
+ getReader() {
55
+ return this.stream.getReader();
56
+ }
57
+ async transformRunShape(row) {
58
+ const payloadPacket = row.payloadType
59
+ ? { data: row.payload ?? undefined, dataType: row.payloadType }
60
+ : undefined;
61
+ const outputPacket = row.outputType
62
+ ? { data: row.output ?? undefined, dataType: row.outputType }
63
+ : undefined;
64
+ const [payload, output] = await Promise.all([
65
+ { packet: payloadPacket, key: "payload" },
66
+ { packet: outputPacket, key: "output" },
67
+ ].map(async ({ packet, key }) => {
68
+ if (!packet) {
69
+ return;
70
+ }
71
+ const cachedResult = this.packetCache.get(`${row.friendlyId}/${key}`);
72
+ if (typeof cachedResult !== "undefined") {
73
+ return cachedResult;
74
+ }
75
+ const result = await conditionallyImportAndParsePacket(packet);
76
+ this.packetCache.set(`${row.friendlyId}/${key}`, result);
77
+ return result;
78
+ }));
79
+ const metadata = row.metadata && row.metadataType
80
+ ? await parsePacket({ data: row.metadata, dataType: row.metadataType })
81
+ : undefined;
82
+ return {
83
+ id: row.friendlyId,
84
+ payload,
85
+ output,
86
+ createdAt: row.createdAt,
87
+ updatedAt: row.updatedAt,
88
+ taskIdentifier: row.taskIdentifier,
89
+ number: row.number,
90
+ status: apiStatusFromRunStatus(row.status),
91
+ durationMs: row.usageDurationMs,
92
+ costInCents: row.costInCents,
93
+ baseCostInCents: row.baseCostInCents,
94
+ tags: row.runTags ?? [],
95
+ idempotencyKey: row.idempotencyKey ?? undefined,
96
+ expiredAt: row.expiredAt ?? undefined,
97
+ finishedAt: row.completedAt ?? undefined,
98
+ startedAt: row.startedAt ?? undefined,
99
+ delayedUntil: row.delayUntil ?? undefined,
100
+ queuedAt: row.queuedAt ?? undefined,
101
+ error: row.error ?? undefined,
102
+ isTest: row.isTest,
103
+ metadata,
104
+ };
105
+ }
106
+ }
107
+ function apiStatusFromRunStatus(status) {
108
+ switch (status) {
109
+ case "DELAYED": {
110
+ return "DELAYED";
111
+ }
112
+ case "WAITING_FOR_DEPLOY": {
113
+ return "WAITING_FOR_DEPLOY";
114
+ }
115
+ case "PENDING": {
116
+ return "QUEUED";
117
+ }
118
+ case "PAUSED":
119
+ case "WAITING_TO_RESUME": {
120
+ return "FROZEN";
121
+ }
122
+ case "RETRYING_AFTER_FAILURE": {
123
+ return "REATTEMPTING";
124
+ }
125
+ case "EXECUTING": {
126
+ return "EXECUTING";
127
+ }
128
+ case "CANCELED": {
129
+ return "CANCELED";
130
+ }
131
+ case "COMPLETED_SUCCESSFULLY": {
132
+ return "COMPLETED";
133
+ }
134
+ case "SYSTEM_FAILURE": {
135
+ return "SYSTEM_FAILURE";
136
+ }
137
+ case "INTERRUPTED": {
138
+ return "INTERRUPTED";
139
+ }
140
+ case "CRASHED": {
141
+ return "CRASHED";
142
+ }
143
+ case "COMPLETED_WITH_ERRORS": {
144
+ return "FAILED";
145
+ }
146
+ case "EXPIRED": {
147
+ return "EXPIRED";
148
+ }
149
+ default: {
150
+ throw new Error(`Unknown status: ${status}`);
151
+ }
152
+ }
153
+ }
154
+ //# sourceMappingURL=runStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runStream.js","sourceRoot":"","sources":["../../../../src/v3/apiClient/runStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ export type ZodShapeStreamOptions = {
3
+ headers?: Record<string, string>;
4
+ fetchClient?: typeof fetch;
5
+ signal?: AbortSignal;
6
+ };
7
+ export declare function zodShapeStream<TShapeSchema extends z.ZodTypeAny>(schema: TShapeSchema, url: string, callback: (shape: z.output<TShapeSchema>) => void | Promise<void>, options?: ZodShapeStreamOptions): Promise<() => void>;
8
+ export type AsyncIterableStream<T> = AsyncIterable<T> & ReadableStream<T>;
9
+ export declare function createAsyncIterableStream<S, T>(source: ReadableStream<S>, transformer: Transformer<S, T>): AsyncIterableStream<T>;
@@ -0,0 +1,33 @@
1
+ export async function zodShapeStream(schema, url, callback, options) {
2
+ const { ShapeStream, Shape } = await import("@electric-sql/client");
3
+ const stream = new ShapeStream({
4
+ url,
5
+ headers: options?.headers,
6
+ fetchClient: options?.fetchClient,
7
+ signal: options?.signal,
8
+ });
9
+ const shape = new Shape(stream);
10
+ const initialValue = await shape.value;
11
+ for (const shapeRow of initialValue.values()) {
12
+ await callback(schema.parse(shapeRow));
13
+ }
14
+ return shape.subscribe(async (newShape) => {
15
+ for (const shapeRow of newShape.values()) {
16
+ await callback(schema.parse(shapeRow));
17
+ }
18
+ });
19
+ }
20
+ export function createAsyncIterableStream(source, transformer) {
21
+ const transformedStream = source.pipeThrough(new TransformStream(transformer));
22
+ transformedStream[Symbol.asyncIterator] = () => {
23
+ const reader = transformedStream.getReader();
24
+ return {
25
+ async next() {
26
+ const { done, value } = await reader.read();
27
+ return done ? { done: true, value: undefined } : { done: false, value };
28
+ },
29
+ };
30
+ };
31
+ return transformedStream;
32
+ }
33
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../src/v3/apiClient/stream.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAoB,EACpB,GAAW,EACX,QAAiE,EACjE,OAA+B;IAE/B,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAwB;QACpD,GAAG;QACH,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC;IAEvC,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7C,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACxC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAID,MAAM,UAAU,yBAAyB,CACvC,MAAyB,EACzB,WAA8B;IAE9B,MAAM,iBAAiB,GAAQ,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpF,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAC7C,OAAO;YACL,KAAK,CAAC,IAAI;gBACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC1E,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
@@ -31,3 +31,7 @@ export interface ListRunsQueryParams extends CursorPageParams {
31
31
  export interface ListProjectRunsQueryParams extends CursorPageParams, ListRunsQueryParams {
32
32
  env?: Array<"dev" | "staging" | "prod"> | "dev" | "staging" | "prod";
33
33
  }
34
+ export interface SubscribeToRunsQueryParams {
35
+ tasks?: Array<string> | string;
36
+ tags?: Array<string> | string;
37
+ }
@@ -9,10 +9,11 @@ export declare class APIClientManagerAPI {
9
9
  private constructor();
10
10
  static getInstance(): APIClientManagerAPI;
11
11
  disable(): void;
12
- setGlobalAPIClientConfiguration(config: ApiClientConfiguration): boolean;
13
12
  get baseURL(): string | undefined;
14
13
  get accessToken(): string | undefined;
15
14
  get client(): ApiClient | undefined;
16
15
  clientOrThrow(): ApiClient;
16
+ runWithConfig<R extends (...args: any[]) => Promise<any>>(config: ApiClientConfiguration, fn: R): Promise<ReturnType<R>>;
17
+ setGlobalAPIClientConfiguration(config: ApiClientConfiguration): boolean;
17
18
  apiClientMissingError(): "You need to set the TRIGGER_API_URL and TRIGGER_SECRET_KEY environment variables. See https://trigger.dev/docs/management/overview#authentication" | "You need to set the TRIGGER_API_URL environment variable. See https://trigger.dev/docs/management/overview#authentication" | "You need to set the TRIGGER_SECRET_KEY environment variable. See https://trigger.dev/docs/management/overview#authentication" | "Unknown error";
18
19
  }
@@ -20,16 +20,16 @@ export class APIClientManagerAPI {
20
20
  disable() {
21
21
  unregisterGlobal(API_NAME);
22
22
  }
23
- setGlobalAPIClientConfiguration(config) {
24
- return registerGlobal(API_NAME, config);
25
- }
26
23
  get baseURL() {
27
- const store = this.#getConfig();
28
- return store?.baseURL ?? getEnvVar("TRIGGER_API_URL") ?? "https://api.trigger.dev";
24
+ const config = this.#getConfig();
25
+ return config?.baseURL ?? getEnvVar("TRIGGER_API_URL") ?? "https://api.trigger.dev";
29
26
  }
30
27
  get accessToken() {
31
- const store = this.#getConfig();
32
- return store?.secretKey ?? getEnvVar("TRIGGER_SECRET_KEY") ?? getEnvVar("TRIGGER_ACCESS_TOKEN");
28
+ const config = this.#getConfig();
29
+ return (config?.secretKey ??
30
+ config?.accessToken ??
31
+ getEnvVar("TRIGGER_SECRET_KEY") ??
32
+ getEnvVar("TRIGGER_ACCESS_TOKEN"));
33
33
  }
34
34
  get client() {
35
35
  if (!this.baseURL || !this.accessToken) {
@@ -43,6 +43,17 @@ export class APIClientManagerAPI {
43
43
  }
44
44
  return new ApiClient(this.baseURL, this.accessToken);
45
45
  }
46
+ runWithConfig(config, fn) {
47
+ const originalConfig = this.#getConfig();
48
+ const $config = { ...originalConfig, ...config };
49
+ registerGlobal(API_NAME, $config, true);
50
+ return fn().finally(() => {
51
+ registerGlobal(API_NAME, originalConfig, true);
52
+ });
53
+ }
54
+ setGlobalAPIClientConfiguration(config) {
55
+ return registerGlobal(API_NAME, config);
56
+ }
46
57
  #getConfig() {
47
58
  return getGlobal(API_NAME);
48
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/apiClientManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,QAAQ,GAAG,YAAY,CAAC;AAE9B,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAC,SAAS,CAAuB;IAE/C,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEM,OAAO;QACZ,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAEM,+BAA+B,CAAC,MAA8B;QACnE,OAAO,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,EAAE,OAAO,IAAI,SAAS,CAAC,iBAAiB,CAAC,IAAI,yBAAyB,CAAC;IACrF,CAAC;IAED,IAAI,WAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,EAAE,SAAS,IAAI,SAAS,CAAC,oBAAoB,CAAC,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,UAAU;QACR,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,qBAAqB;QACnB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,UAAU,IAAI,CAAC,cAAc,EAAE,CAAC;YACnC,OAAO,mJAAmJ,CAAC;QAC7J,CAAC;aAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,2HAA2H,CAAC;QACrI,CAAC;aAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3B,OAAO,8HAA8H,CAAC;QACxI,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/apiClientManager/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
1
  import { type ApiRequestOptions } from "../apiClient/index.js";
2
2
  export type ApiClientConfiguration = {
3
3
  baseURL?: string;
4
+ /**
5
+ * @deprecated Use `accessToken` instead.
6
+ */
4
7
  secretKey?: string;
8
+ /**
9
+ * The access token to authenticate with the Trigger API.
10
+ */
11
+ accessToken?: string;
5
12
  requestOptions?: ApiRequestOptions;
6
13
  };
@@ -1,2 +1,4 @@
1
+ /** This was used by the old build system in case of indexing failures */
1
2
  export declare const EXIT_CODE_ALREADY_HANDLED = 111;
3
+ /** This means what it says and is only set once we have completed the attempt */
2
4
  export declare const EXIT_CODE_CHILD_NONZERO = 112;
@@ -1,3 +1,5 @@
1
+ /** This was used by the old build system in case of indexing failures */
1
2
  export const EXIT_CODE_ALREADY_HANDLED = 111;
3
+ /** This means what it says and is only set once we have completed the attempt */
2
4
  export const EXIT_CODE_CHILD_NONZERO = 112;
3
5
  //# sourceMappingURL=process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../../src/v3/apps/process.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../../src/v3/apps/process.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAC7C,iFAAiF;AACjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC"}
@@ -7,10 +7,15 @@ import { ExceptionEventProperties } from "./schemas/openTelemetry.js";
7
7
  export declare class AbortTaskRunError extends Error {
8
8
  constructor(message: string);
9
9
  }
10
+ export declare class TaskPayloadParsedError extends Error {
11
+ readonly cause: unknown;
12
+ constructor(cause: unknown);
13
+ }
10
14
  export declare function parseError(error: unknown): TaskRunError;
11
15
  export declare function createErrorTaskError(error: TaskRunError): any;
12
16
  export declare function createJsonErrorObject(error: TaskRunError): SerializedError;
13
17
  export declare function sanitizeError(error: TaskRunError): TaskRunError;
18
+ export declare function shouldRetryError(error: TaskRunError): boolean;
14
19
  export declare function correctErrorStackTrace(stackTrace: string, projectDir?: string, options?: {
15
20
  removeFirstLine?: boolean;
16
21
  isDev?: boolean;
@@ -2,12 +2,22 @@ import { ImportTaskFileErrors } from "./schemas/build.js";
2
2
  import { TaskRunErrorCodes, } from "./schemas/common.js";
3
3
  import { TaskMetadataFailedToParseData } from "./schemas/messages.js";
4
4
  import { links } from "./links.js";
5
+ import { assertExhaustive } from "../utils.js";
5
6
  export class AbortTaskRunError extends Error {
6
7
  constructor(message) {
7
8
  super(message);
8
9
  this.name = "AbortTaskRunError";
9
10
  }
10
11
  }
12
+ export class TaskPayloadParsedError extends Error {
13
+ cause;
14
+ constructor(cause) {
15
+ const causeMessage = cause instanceof Error ? cause.message : String(cause);
16
+ super("Parsing payload with schema failed: " + causeMessage);
17
+ this.name = "TaskPayloadParsedError";
18
+ this.cause = cause;
19
+ }
20
+ }
11
21
  export function parseError(error) {
12
22
  if (error instanceof Error) {
13
23
  return {
@@ -118,6 +128,55 @@ export function sanitizeError(error) {
118
128
  }
119
129
  }
120
130
  }
131
+ export function shouldRetryError(error) {
132
+ switch (error.type) {
133
+ case "INTERNAL_ERROR": {
134
+ switch (error.code) {
135
+ case "COULD_NOT_FIND_EXECUTOR":
136
+ case "COULD_NOT_FIND_TASK":
137
+ case "COULD_NOT_IMPORT_TASK":
138
+ case "CONFIGURED_INCORRECTLY":
139
+ case "TASK_ALREADY_RUNNING":
140
+ case "TASK_PROCESS_SIGKILL_TIMEOUT":
141
+ case "TASK_PROCESS_SIGSEGV":
142
+ case "TASK_PROCESS_OOM_KILLED":
143
+ case "TASK_PROCESS_MAYBE_OOM_KILLED":
144
+ case "TASK_RUN_CANCELLED":
145
+ case "MAX_DURATION_EXCEEDED":
146
+ case "DISK_SPACE_EXCEEDED":
147
+ case "TASK_RUN_HEARTBEAT_TIMEOUT":
148
+ case "OUTDATED_SDK_VERSION":
149
+ return false;
150
+ case "GRACEFUL_EXIT_TIMEOUT":
151
+ case "HANDLE_ERROR_ERROR":
152
+ case "TASK_INPUT_ERROR":
153
+ case "TASK_OUTPUT_ERROR":
154
+ case "POD_EVICTED":
155
+ case "POD_UNKNOWN_ERROR":
156
+ case "TASK_EXECUTION_ABORTED":
157
+ case "TASK_EXECUTION_FAILED":
158
+ case "TASK_RUN_CRASHED":
159
+ case "TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE":
160
+ case "TASK_PROCESS_SIGTERM":
161
+ return true;
162
+ default:
163
+ assertExhaustive(error.code);
164
+ }
165
+ }
166
+ case "STRING_ERROR": {
167
+ return true;
168
+ }
169
+ case "BUILT_IN_ERROR": {
170
+ return true;
171
+ }
172
+ case "CUSTOM_ERROR": {
173
+ return true;
174
+ }
175
+ default: {
176
+ assertExhaustive(error);
177
+ }
178
+ }
179
+ }
121
180
  export function correctErrorStackTrace(stackTrace, projectDir, options) {
122
181
  const [errorLine, ...traceLines] = stackTrace.split("\n");
123
182
  return [
@@ -265,6 +324,14 @@ const prettyInternalErrors = {
265
324
  href: links.docs.machines.home,
266
325
  },
267
326
  },
327
+ TASK_PROCESS_SIGSEGV: {
328
+ message: "Your task crashed with a segmentation fault (SIGSEGV). Most likely there's a bug in a package or binary you're using. If this keeps happening and you're unsure why, please get in touch.",
329
+ link: {
330
+ name: "Contact us",
331
+ href: links.site.contact,
332
+ magic: "CONTACT_FORM",
333
+ },
334
+ },
268
335
  TASK_PROCESS_SIGTERM: {
269
336
  message: "Your task exited after receiving SIGTERM but we don't know why. If this keeps happening, please get in touch so we can investigate.",
270
337
  link: {
@@ -273,23 +340,77 @@ const prettyInternalErrors = {
273
340
  magic: "CONTACT_FORM",
274
341
  },
275
342
  },
343
+ OUTDATED_SDK_VERSION: {
344
+ message: "Your task is using an outdated version of the SDK. Please upgrade to the latest version.",
345
+ link: {
346
+ name: "Beta upgrade guide",
347
+ href: links.docs.upgrade.beta,
348
+ },
349
+ },
350
+ };
351
+ const getPrettyTaskRunError = (code) => {
352
+ return {
353
+ type: "INTERNAL_ERROR",
354
+ code,
355
+ ...prettyInternalErrors[code],
356
+ };
357
+ };
358
+ const getPrettyExceptionEvent = (code) => {
359
+ return {
360
+ type: code,
361
+ ...prettyInternalErrors[code],
362
+ };
363
+ };
364
+ const findSignalInMessage = (message, truncateLength = 100) => {
365
+ if (!message) {
366
+ return;
367
+ }
368
+ const trunc = truncateLength ? message.slice(0, truncateLength) : message;
369
+ if (trunc.includes("SIGTERM")) {
370
+ return "SIGTERM";
371
+ }
372
+ else if (trunc.includes("SIGSEGV")) {
373
+ return "SIGSEGV";
374
+ }
375
+ else if (trunc.includes("SIGKILL")) {
376
+ return "SIGKILL";
377
+ }
378
+ else {
379
+ return;
380
+ }
276
381
  };
277
382
  export function taskRunErrorEnhancer(error) {
278
383
  switch (error.type) {
279
384
  case "BUILT_IN_ERROR": {
280
385
  if (error.name === "UnexpectedExitError") {
281
386
  if (error.message.startsWith("Unexpected exit with code -1")) {
282
- if (error.message.includes("SIGTERM")) {
283
- return {
284
- type: "INTERNAL_ERROR",
285
- code: TaskRunErrorCodes.TASK_PROCESS_SIGTERM,
286
- ...prettyInternalErrors.TASK_PROCESS_SIGTERM,
287
- };
387
+ const signal = findSignalInMessage(error.stackTrace);
388
+ switch (signal) {
389
+ case "SIGTERM":
390
+ return {
391
+ ...getPrettyTaskRunError("TASK_PROCESS_SIGTERM"),
392
+ };
393
+ case "SIGSEGV":
394
+ return {
395
+ ...getPrettyTaskRunError("TASK_PROCESS_SIGSEGV"),
396
+ };
397
+ case "SIGKILL":
398
+ return {
399
+ ...getPrettyTaskRunError("TASK_PROCESS_MAYBE_OOM_KILLED"),
400
+ };
401
+ default:
402
+ return {
403
+ ...getPrettyTaskRunError("TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE"),
404
+ message: error.message,
405
+ stackTrace: error.stackTrace,
406
+ };
288
407
  }
408
+ }
409
+ }
410
+ if (error.name === "Error") {
411
+ if (error.message === "ffmpeg was killed with signal SIGKILL") {
289
412
  return {
290
- type: "INTERNAL_ERROR",
291
- code: TaskRunErrorCodes.TASK_PROCESS_MAYBE_OOM_KILLED,
292
- ...prettyInternalErrors.TASK_PROCESS_MAYBE_OOM_KILLED,
413
+ ...getPrettyTaskRunError("TASK_PROCESS_OOM_KILLED"),
293
414
  };
294
415
  }
295
416
  }
@@ -303,27 +424,33 @@ export function taskRunErrorEnhancer(error) {
303
424
  }
304
425
  case "INTERNAL_ERROR": {
305
426
  if (error.code === TaskRunErrorCodes.TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE) {
306
- if (error.message?.includes("SIGTERM")) {
307
- return {
308
- type: "INTERNAL_ERROR",
309
- code: TaskRunErrorCodes.TASK_PROCESS_SIGTERM,
310
- ...prettyInternalErrors.TASK_PROCESS_SIGTERM,
311
- };
427
+ const signal = findSignalInMessage(error.message);
428
+ switch (signal) {
429
+ case "SIGTERM":
430
+ return {
431
+ ...getPrettyTaskRunError("TASK_PROCESS_SIGTERM"),
432
+ };
433
+ case "SIGSEGV":
434
+ return {
435
+ ...getPrettyTaskRunError("TASK_PROCESS_SIGSEGV"),
436
+ };
437
+ case "SIGKILL":
438
+ return {
439
+ ...getPrettyTaskRunError("TASK_PROCESS_MAYBE_OOM_KILLED"),
440
+ };
441
+ default: {
442
+ return {
443
+ ...getPrettyTaskRunError("TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE"),
444
+ message: error.message,
445
+ stackTrace: error.stackTrace,
446
+ };
447
+ }
312
448
  }
313
- return {
314
- type: "INTERNAL_ERROR",
315
- code: TaskRunErrorCodes.TASK_PROCESS_MAYBE_OOM_KILLED,
316
- ...prettyInternalErrors.TASK_PROCESS_MAYBE_OOM_KILLED,
317
- };
318
- }
319
- const prettyError = prettyInternalErrors[error.code];
320
- if (prettyError) {
321
- return {
322
- ...error,
323
- ...prettyError,
324
- };
325
449
  }
326
- break;
450
+ return {
451
+ ...error,
452
+ ...getPrettyTaskRunError(error.code),
453
+ };
327
454
  }
328
455
  }
329
456
  return error;
@@ -339,12 +466,46 @@ export function exceptionEventEnhancer(exception) {
339
466
  }
340
467
  break;
341
468
  }
469
+ case "Internal error": {
470
+ if (exception.message?.startsWith(TaskRunErrorCodes.TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE)) {
471
+ const signal = findSignalInMessage(exception.message);
472
+ switch (signal) {
473
+ case "SIGTERM":
474
+ return {
475
+ ...exception,
476
+ ...getPrettyExceptionEvent("TASK_PROCESS_SIGTERM"),
477
+ };
478
+ case "SIGSEGV":
479
+ return {
480
+ ...exception,
481
+ ...getPrettyExceptionEvent("TASK_PROCESS_SIGSEGV"),
482
+ };
483
+ case "SIGKILL":
484
+ return {
485
+ ...exception,
486
+ ...getPrettyExceptionEvent("TASK_PROCESS_MAYBE_OOM_KILLED"),
487
+ };
488
+ default:
489
+ return exception;
490
+ }
491
+ }
492
+ break;
493
+ }
494
+ case "Error": {
495
+ if (exception.message === "ffmpeg was killed with signal SIGKILL") {
496
+ return {
497
+ ...exception,
498
+ ...prettyInternalErrors.TASK_PROCESS_OOM_KILLED,
499
+ };
500
+ }
501
+ break;
502
+ }
342
503
  case TaskRunErrorCodes.TASK_PROCESS_MAYBE_OOM_KILLED:
343
504
  case TaskRunErrorCodes.TASK_PROCESS_OOM_KILLED:
344
505
  case TaskRunErrorCodes.TASK_PROCESS_SIGTERM: {
345
506
  return {
346
507
  ...exception,
347
- ...prettyInternalErrors[exception.type],
508
+ ...getPrettyExceptionEvent(exception.type),
348
509
  };
349
510
  }
350
511
  }