@trigger.dev/core 0.0.0-v3-trigger-dirs-20240423123825 → 0.0.0-v3-update-command-20240423125505

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 (65) hide show
  1. package/dist/v3/index.d.mts +17310 -260
  2. package/dist/v3/index.d.ts +17310 -260
  3. package/dist/v3/index.js +2569 -794
  4. package/dist/v3/index.js.map +1 -1
  5. package/dist/v3/index.mjs +2545 -796
  6. package/dist/v3/index.mjs.map +1 -1
  7. package/dist/v3/otel/index.js +38 -62
  8. package/dist/v3/otel/index.js.map +1 -1
  9. package/dist/v3/otel/index.mjs +38 -62
  10. package/dist/v3/otel/index.mjs.map +1 -1
  11. package/package.json +7 -71
  12. package/dist/catalog-e2OUDZEa.d.mts +0 -6645
  13. package/dist/catalog-ndN7py2b.d.ts +0 -6645
  14. package/dist/manager-M9GLDnhJ.d.mts +0 -1158
  15. package/dist/manager-M9GLDnhJ.d.ts +0 -1158
  16. package/dist/messages-AriaDDm0.d.mts +0 -8696
  17. package/dist/messages-AriaDDm0.d.ts +0 -8696
  18. package/dist/v3/dev/index.d.mts +0 -28
  19. package/dist/v3/dev/index.d.ts +0 -28
  20. package/dist/v3/dev/index.js +0 -93
  21. package/dist/v3/dev/index.js.map +0 -1
  22. package/dist/v3/dev/index.mjs +0 -91
  23. package/dist/v3/dev/index.mjs.map +0 -1
  24. package/dist/v3/prod/index.d.mts +0 -45
  25. package/dist/v3/prod/index.d.ts +0 -45
  26. package/dist/v3/prod/index.js +0 -205
  27. package/dist/v3/prod/index.js.map +0 -1
  28. package/dist/v3/prod/index.mjs +0 -203
  29. package/dist/v3/prod/index.mjs.map +0 -1
  30. package/dist/v3/utils/structuredLogger.d.mts +0 -31
  31. package/dist/v3/utils/structuredLogger.d.ts +0 -31
  32. package/dist/v3/utils/structuredLogger.js +0 -88
  33. package/dist/v3/utils/structuredLogger.js.map +0 -1
  34. package/dist/v3/utils/structuredLogger.mjs +0 -86
  35. package/dist/v3/utils/structuredLogger.mjs.map +0 -1
  36. package/dist/v3/workers/index.d.mts +0 -94
  37. package/dist/v3/workers/index.d.ts +0 -94
  38. package/dist/v3/workers/index.js +0 -2660
  39. package/dist/v3/workers/index.js.map +0 -1
  40. package/dist/v3/workers/index.mjs +0 -2644
  41. package/dist/v3/workers/index.mjs.map +0 -1
  42. package/dist/v3/zodIpc.d.mts +0 -32
  43. package/dist/v3/zodIpc.d.ts +0 -32
  44. package/dist/v3/zodIpc.js +0 -268
  45. package/dist/v3/zodIpc.js.map +0 -1
  46. package/dist/v3/zodIpc.mjs +0 -266
  47. package/dist/v3/zodIpc.mjs.map +0 -1
  48. package/dist/v3/zodMessageHandler.d.mts +0 -69
  49. package/dist/v3/zodMessageHandler.d.ts +0 -69
  50. package/dist/v3/zodMessageHandler.js +0 -168
  51. package/dist/v3/zodMessageHandler.js.map +0 -1
  52. package/dist/v3/zodMessageHandler.mjs +0 -163
  53. package/dist/v3/zodMessageHandler.mjs.map +0 -1
  54. package/dist/v3/zodNamespace.d.mts +0 -3663
  55. package/dist/v3/zodNamespace.d.ts +0 -3663
  56. package/dist/v3/zodNamespace.js +0 -356
  57. package/dist/v3/zodNamespace.js.map +0 -1
  58. package/dist/v3/zodNamespace.mjs +0 -354
  59. package/dist/v3/zodNamespace.mjs.map +0 -1
  60. package/dist/v3/zodSocket.d.mts +0 -88
  61. package/dist/v3/zodSocket.d.ts +0 -88
  62. package/dist/v3/zodSocket.js +0 -309
  63. package/dist/v3/zodSocket.js.map +0 -1
  64. package/dist/v3/zodSocket.mjs +0 -305
  65. package/dist/v3/zodSocket.mjs.map +0 -1
package/dist/v3/index.js CHANGED
@@ -1,18 +1,30 @@
1
1
  'use strict';
2
2
 
3
+ var zod = require('zod');
3
4
  var api = require('@opentelemetry/api');
4
5
  var zodValidationError = require('zod-validation-error');
5
- var zod = require('zod');
6
6
  var async_hooks = require('async_hooks');
7
- var preciseDate = require('@google-cloud/precise-date');
7
+ var socket_ioClient = require('socket.io-client');
8
+ var crypto = require('crypto');
8
9
  var nodePath = require('path');
9
10
  var apiLogs = require('@opentelemetry/api-logs');
11
+ var preciseDate = require('@google-cloud/precise-date');
10
12
  var humanizeDuration = require('humanize-duration');
13
+ var promises = require('timers/promises');
14
+ var util = require('util');
15
+ var exporterLogsOtlpHttp = require('@opentelemetry/exporter-logs-otlp-http');
16
+ var exporterTraceOtlpHttp = require('@opentelemetry/exporter-trace-otlp-http');
17
+ var instrumentation = require('@opentelemetry/instrumentation');
18
+ var resources = require('@opentelemetry/resources');
19
+ var sdkLogs = require('@opentelemetry/sdk-logs');
20
+ var sdkTraceNode = require('@opentelemetry/sdk-trace-node');
21
+ var semanticConventions = require('@opentelemetry/semantic-conventions');
11
22
 
12
23
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
24
 
14
25
  var nodePath__default = /*#__PURE__*/_interopDefault(nodePath);
15
26
  var humanizeDuration__default = /*#__PURE__*/_interopDefault(humanizeDuration);
27
+ var util__default = /*#__PURE__*/_interopDefault(util);
16
28
 
17
29
  var __defProp = Object.defineProperty;
18
30
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -25,433 +37,71 @@ var __accessCheck = (obj, member, msg) => {
25
37
  if (!member.has(obj))
26
38
  throw TypeError("Cannot " + msg);
27
39
  };
40
+ var __privateGet = (obj, member, getter) => {
41
+ __accessCheck(obj, member, "read from private field");
42
+ return getter ? getter.call(obj) : member.get(obj);
43
+ };
28
44
  var __privateAdd = (obj, member, value) => {
29
45
  if (member.has(obj))
30
46
  throw TypeError("Cannot add the same private member more than once");
31
47
  member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
32
48
  };
49
+ var __privateSet = (obj, member, value, setter) => {
50
+ __accessCheck(obj, member, "write to private field");
51
+ setter ? setter.call(obj, value) : member.set(obj, value);
52
+ return value;
53
+ };
54
+ var __privateWrapper = (obj, member, setter, getter) => ({
55
+ set _(value) {
56
+ __privateSet(obj, member, value, setter);
57
+ },
58
+ get _() {
59
+ return __privateGet(obj, member, getter);
60
+ }
61
+ });
33
62
  var __privateMethod = (obj, member, method) => {
34
63
  __accessCheck(obj, member, "access private method");
35
64
  return method;
36
65
  };
37
-
38
- // src/v3/apiErrors.ts
39
- var _APIError = class _APIError extends Error {
40
- constructor(status, error, message, headers) {
41
- super(`${_APIError.makeMessage(status, error, message)}`);
42
- this.status = status;
43
- this.headers = headers;
44
- const data = error;
45
- this.error = data;
46
- this.code = data?.["code"];
47
- this.param = data?.["param"];
48
- this.type = data?.["type"];
49
- }
50
- static makeMessage(status, error, message) {
51
- const msg = error?.message ? typeof error.message === "string" ? error.message : JSON.stringify(error.message) : error ? JSON.stringify(error) : message;
52
- if (status && msg) {
53
- return `${status} ${msg}`;
54
- }
55
- if (status) {
56
- return `${status} status code (no body)`;
57
- }
58
- if (msg) {
59
- return msg;
60
- }
61
- return "(no status code or body)";
62
- }
63
- static generate(status, errorResponse, message, headers) {
64
- if (!status) {
65
- return new APIConnectionError({
66
- cause: castToError(errorResponse)
67
- });
68
- }
69
- const error = errorResponse?.["error"];
70
- if (status === 400) {
71
- return new BadRequestError(status, error, message, headers);
72
- }
73
- if (status === 401) {
74
- return new AuthenticationError(status, error, message, headers);
75
- }
76
- if (status === 403) {
77
- return new PermissionDeniedError(status, error, message, headers);
78
- }
79
- if (status === 404) {
80
- return new NotFoundError(status, error, message, headers);
81
- }
82
- if (status === 409) {
83
- return new ConflictError(status, error, message, headers);
84
- }
85
- if (status === 422) {
86
- return new UnprocessableEntityError(status, error, message, headers);
87
- }
88
- if (status === 429) {
89
- return new RateLimitError(status, error, message, headers);
90
- }
91
- if (status >= 500) {
92
- return new InternalServerError(status, error, message, headers);
93
- }
94
- return new _APIError(status, error, message, headers);
95
- }
96
- };
97
- __name(_APIError, "APIError");
98
- var APIError = _APIError;
99
- var _APIConnectionError = class _APIConnectionError extends APIError {
100
- constructor({ message, cause }) {
101
- super(void 0, void 0, message || "Connection error.", void 0);
102
- __publicField(this, "status");
103
- if (cause)
104
- this.cause = cause;
105
- }
106
- };
107
- __name(_APIConnectionError, "APIConnectionError");
108
- var APIConnectionError = _APIConnectionError;
109
- var _BadRequestError = class _BadRequestError extends APIError {
110
- constructor() {
111
- super(...arguments);
112
- __publicField(this, "status", 400);
113
- }
114
- };
115
- __name(_BadRequestError, "BadRequestError");
116
- var BadRequestError = _BadRequestError;
117
- var _AuthenticationError = class _AuthenticationError extends APIError {
118
- constructor() {
119
- super(...arguments);
120
- __publicField(this, "status", 401);
121
- }
122
- };
123
- __name(_AuthenticationError, "AuthenticationError");
124
- var AuthenticationError = _AuthenticationError;
125
- var _PermissionDeniedError = class _PermissionDeniedError extends APIError {
126
- constructor() {
127
- super(...arguments);
128
- __publicField(this, "status", 403);
129
- }
130
- };
131
- __name(_PermissionDeniedError, "PermissionDeniedError");
132
- var PermissionDeniedError = _PermissionDeniedError;
133
- var _NotFoundError = class _NotFoundError extends APIError {
134
- constructor() {
135
- super(...arguments);
136
- __publicField(this, "status", 404);
137
- }
138
- };
139
- __name(_NotFoundError, "NotFoundError");
140
- var NotFoundError = _NotFoundError;
141
- var _ConflictError = class _ConflictError extends APIError {
142
- constructor() {
143
- super(...arguments);
144
- __publicField(this, "status", 409);
145
- }
146
- };
147
- __name(_ConflictError, "ConflictError");
148
- var ConflictError = _ConflictError;
149
- var _UnprocessableEntityError = class _UnprocessableEntityError extends APIError {
150
- constructor() {
151
- super(...arguments);
152
- __publicField(this, "status", 422);
153
- }
154
- };
155
- __name(_UnprocessableEntityError, "UnprocessableEntityError");
156
- var UnprocessableEntityError = _UnprocessableEntityError;
157
- var _RateLimitError = class _RateLimitError extends APIError {
158
- constructor() {
159
- super(...arguments);
160
- __publicField(this, "status", 429);
161
- }
162
- };
163
- __name(_RateLimitError, "RateLimitError");
164
- var RateLimitError = _RateLimitError;
165
- var _InternalServerError = class _InternalServerError extends APIError {
166
- };
167
- __name(_InternalServerError, "InternalServerError");
168
- var InternalServerError = _InternalServerError;
169
- function castToError(err) {
170
- if (err instanceof Error)
171
- return err;
172
- return new Error(err);
173
- }
174
- __name(castToError, "castToError");
175
-
176
- // src/retry.ts
177
- function calculateResetAt(resets, format, now = /* @__PURE__ */ new Date()) {
178
- if (!resets)
179
- return;
180
- switch (format) {
181
- case "iso_8601_duration_openai_variant": {
182
- return calculateISO8601DurationOpenAIVariantResetAt(resets, now);
183
- }
184
- case "iso_8601": {
185
- return calculateISO8601ResetAt(resets, now);
186
- }
187
- case "unix_timestamp": {
188
- return calculateUnixTimestampResetAt(resets, now);
189
- }
190
- case "unix_timestamp_in_ms": {
191
- return calculateUnixTimestampInMsResetAt(resets, now);
192
- }
193
- }
194
- }
195
- __name(calculateResetAt, "calculateResetAt");
196
- function calculateUnixTimestampResetAt(resets, now = /* @__PURE__ */ new Date()) {
197
- if (!resets)
198
- return void 0;
199
- const resetAt = parseInt(resets, 10);
200
- if (isNaN(resetAt))
201
- return void 0;
202
- return new Date(resetAt * 1e3);
203
- }
204
- __name(calculateUnixTimestampResetAt, "calculateUnixTimestampResetAt");
205
- function calculateUnixTimestampInMsResetAt(resets, now = /* @__PURE__ */ new Date()) {
206
- if (!resets)
207
- return void 0;
208
- const resetAt = parseInt(resets, 10);
209
- if (isNaN(resetAt))
210
- return void 0;
211
- return new Date(resetAt);
212
- }
213
- __name(calculateUnixTimestampInMsResetAt, "calculateUnixTimestampInMsResetAt");
214
- function calculateISO8601ResetAt(resets, now = /* @__PURE__ */ new Date()) {
215
- if (!resets)
216
- return void 0;
217
- const resetAt = new Date(resets);
218
- if (isNaN(resetAt.getTime()))
219
- return void 0;
220
- return resetAt;
221
- }
222
- __name(calculateISO8601ResetAt, "calculateISO8601ResetAt");
223
- function calculateISO8601DurationOpenAIVariantResetAt(resets, now = /* @__PURE__ */ new Date()) {
224
- if (!resets)
225
- return void 0;
226
- const pattern = /^(?:(\d+)d)?(?:(\d+)h)?(?:(\d+)m)?(?:(\d+(?:\.\d+)?)s)?(?:(\d+)ms)?$/;
227
- const match = resets.match(pattern);
228
- if (!match)
229
- return void 0;
230
- const days = parseInt(match[1], 10) || 0;
231
- const hours = parseInt(match[2], 10) || 0;
232
- const minutes = parseInt(match[3], 10) || 0;
233
- const seconds = parseFloat(match[4]) || 0;
234
- const milliseconds = parseInt(match[5], 10) || 0;
235
- const resetAt = new Date(now);
236
- resetAt.setDate(resetAt.getDate() + days);
237
- resetAt.setHours(resetAt.getHours() + hours);
238
- resetAt.setMinutes(resetAt.getMinutes() + minutes);
239
- resetAt.setSeconds(resetAt.getSeconds() + Math.floor(seconds));
240
- resetAt.setMilliseconds(resetAt.getMilliseconds() + (seconds - Math.floor(seconds)) * 1e3 + milliseconds);
241
- return resetAt;
242
- }
243
- __name(calculateISO8601DurationOpenAIVariantResetAt, "calculateISO8601DurationOpenAIVariantResetAt");
244
-
245
- // src/v3/utils/retries.ts
246
- var defaultRetryOptions = {
247
- maxAttempts: 3,
248
- factor: 2,
249
- minTimeoutInMs: 1e3,
250
- maxTimeoutInMs: 6e4,
251
- randomize: true
252
- };
253
- var defaultFetchRetryOptions = {
254
- byStatus: {
255
- "429,408,409,5xx": {
256
- strategy: "backoff",
257
- ...defaultRetryOptions
258
- }
259
- },
260
- connectionError: defaultRetryOptions,
261
- timeout: defaultRetryOptions
262
- };
263
- function calculateNextRetryDelay(options, attempt) {
264
- const opts = {
265
- ...defaultRetryOptions,
266
- ...options
267
- };
268
- if (attempt >= opts.maxAttempts) {
269
- return;
270
- }
271
- const { factor, minTimeoutInMs, maxTimeoutInMs, randomize } = opts;
272
- const random = randomize ? Math.random() + 1 : 1;
273
- const timeout = Math.min(maxTimeoutInMs, random * minTimeoutInMs * Math.pow(factor, attempt - 1));
274
- return Math.round(timeout);
275
- }
276
- __name(calculateNextRetryDelay, "calculateNextRetryDelay");
277
- function calculateResetAt2(resets, format, now = Date.now()) {
278
- const resetAt = calculateResetAt(resets, format, new Date(now));
279
- return resetAt?.getTime();
280
- }
281
- __name(calculateResetAt2, "calculateResetAt");
282
-
283
- // src/v3/zodfetch.ts
284
- var defaultRetryOptions2 = {
285
- maxAttempts: 3,
286
- factor: 2,
287
- minTimeoutInMs: 1e3,
288
- maxTimeoutInMs: 6e4,
289
- randomize: false
290
- };
291
- async function zodfetch(schema, url, requestInit, options) {
292
- return await _doZodFetch(schema, url, requestInit, options);
293
- }
294
- __name(zodfetch, "zodfetch");
295
- async function _doZodFetch(schema, url, requestInit, options, attempt = 1) {
296
- try {
297
- const response = await fetch(url, requestInitWithCache(requestInit));
298
- const responseHeaders = createResponseHeaders(response.headers);
299
- if (!response.ok) {
300
- const retryResult = shouldRetry(response, attempt, options?.retry);
301
- if (retryResult.retry) {
302
- await new Promise((resolve) => setTimeout(resolve, retryResult.delay));
303
- return await _doZodFetch(schema, url, requestInit, options, attempt + 1);
304
- } else {
305
- const errText = await response.text().catch((e) => castToError2(e).message);
306
- const errJSON = safeJsonParse(errText);
307
- const errMessage = errJSON ? void 0 : errText;
308
- throw APIError.generate(response.status, errJSON, errMessage, responseHeaders);
309
- }
310
- }
311
- const jsonBody = await response.json();
312
- const parsedResult = schema.safeParse(jsonBody);
313
- if (parsedResult.success) {
314
- return parsedResult.data;
315
- }
316
- throw zodValidationError.fromZodError(parsedResult.error);
317
- } catch (error) {
318
- if (error instanceof APIError) {
319
- throw error;
320
- }
321
- if (options?.retry) {
322
- const retry = {
323
- ...defaultRetryOptions2,
324
- ...options.retry
325
- };
326
- const delay = calculateNextRetryDelay(retry, attempt);
327
- if (delay) {
328
- await new Promise((resolve) => setTimeout(resolve, delay));
329
- return await _doZodFetch(schema, url, requestInit, options, attempt + 1);
330
- }
331
- }
332
- throw new APIConnectionError({
333
- cause: castToError2(error)
334
- });
335
- }
336
- }
337
- __name(_doZodFetch, "_doZodFetch");
338
- function castToError2(err) {
339
- if (err instanceof Error)
340
- return err;
341
- return new Error(err);
342
- }
343
- __name(castToError2, "castToError");
344
- function shouldRetry(response, attempt, retryOptions) {
345
- function shouldRetryForOptions() {
346
- const retry = {
347
- ...defaultRetryOptions2,
348
- ...retryOptions
349
- };
350
- const delay = calculateNextRetryDelay(retry, attempt);
351
- if (delay) {
352
- return {
353
- retry: true,
354
- delay
355
- };
356
- } else {
357
- return {
358
- retry: false
359
- };
360
- }
361
- }
362
- __name(shouldRetryForOptions, "shouldRetryForOptions");
363
- const shouldRetryHeader = response.headers.get("x-should-retry");
364
- if (shouldRetryHeader === "true")
365
- return shouldRetryForOptions();
366
- if (shouldRetryHeader === "false")
367
- return {
368
- retry: false
369
- };
370
- if (response.status === 408)
371
- return shouldRetryForOptions();
372
- if (response.status === 409)
373
- return shouldRetryForOptions();
374
- if (response.status === 429)
375
- return shouldRetryForOptions();
376
- if (response.status >= 500)
377
- return shouldRetryForOptions();
378
- return {
379
- retry: false
380
- };
381
- }
382
- __name(shouldRetry, "shouldRetry");
383
- function safeJsonParse(text) {
384
- try {
385
- return JSON.parse(text);
386
- } catch (e) {
387
- return void 0;
388
- }
389
- }
390
- __name(safeJsonParse, "safeJsonParse");
391
- function createResponseHeaders(headers) {
392
- return new Proxy(Object.fromEntries(
393
- // @ts-ignore
394
- headers.entries()
395
- ), {
396
- get(target, name) {
397
- const key = name.toString();
398
- return target[key.toLowerCase()] || target[key];
399
- }
400
- });
401
- }
402
- __name(createResponseHeaders, "createResponseHeaders");
403
- function requestInitWithCache(requestInit) {
404
- try {
405
- const withCache = {
406
- ...requestInit,
407
- cache: "no-cache"
408
- };
409
- const _ = new Request("http://localhost", withCache);
410
- return withCache;
411
- } catch (error) {
412
- return requestInit ?? {};
413
- }
414
- }
415
- __name(requestInitWithCache, "requestInitWithCache");
416
- var CreateAuthorizationCodeResponseSchema = zod.z.object({
417
- url: zod.z.string().url(),
418
- authorizationCode: zod.z.string()
419
- });
420
- var GetPersonalAccessTokenRequestSchema = zod.z.object({
421
- authorizationCode: zod.z.string()
422
- });
423
- var GetPersonalAccessTokenResponseSchema = zod.z.object({
424
- token: zod.z.object({
425
- token: zod.z.string(),
426
- obfuscatedToken: zod.z.string()
427
- }).nullable()
428
- });
429
- var TaskRunBuiltInError = zod.z.object({
430
- type: zod.z.literal("BUILT_IN_ERROR"),
431
- name: zod.z.string(),
432
- message: zod.z.string(),
433
- stackTrace: zod.z.string()
434
- });
435
- var TaskRunCustomErrorObject = zod.z.object({
436
- type: zod.z.literal("CUSTOM_ERROR"),
437
- raw: zod.z.string()
438
- });
439
- var TaskRunStringError = zod.z.object({
440
- type: zod.z.literal("STRING_ERROR"),
441
- raw: zod.z.string()
442
- });
443
- var TaskRunErrorCodes = {
444
- COULD_NOT_FIND_EXECUTOR: "COULD_NOT_FIND_EXECUTOR",
445
- COULD_NOT_FIND_TASK: "COULD_NOT_FIND_TASK",
446
- CONFIGURED_INCORRECTLY: "CONFIGURED_INCORRECTLY",
447
- TASK_ALREADY_RUNNING: "TASK_ALREADY_RUNNING",
448
- TASK_EXECUTION_FAILED: "TASK_EXECUTION_FAILED",
449
- TASK_EXECUTION_ABORTED: "TASK_EXECUTION_ABORTED",
450
- TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE: "TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE",
451
- TASK_RUN_CANCELLED: "TASK_RUN_CANCELLED",
452
- TASK_OUTPUT_ERROR: "TASK_OUTPUT_ERROR",
453
- HANDLE_ERROR_ERROR: "HANDLE_ERROR_ERROR",
454
- GRACEFUL_EXIT_TIMEOUT: "GRACEFUL_EXIT_TIMEOUT"
66
+ var CreateAuthorizationCodeResponseSchema = zod.z.object({
67
+ url: zod.z.string().url(),
68
+ authorizationCode: zod.z.string()
69
+ });
70
+ var GetPersonalAccessTokenRequestSchema = zod.z.object({
71
+ authorizationCode: zod.z.string()
72
+ });
73
+ var GetPersonalAccessTokenResponseSchema = zod.z.object({
74
+ token: zod.z.object({
75
+ token: zod.z.string(),
76
+ obfuscatedToken: zod.z.string()
77
+ }).nullable()
78
+ });
79
+ var TaskRunBuiltInError = zod.z.object({
80
+ type: zod.z.literal("BUILT_IN_ERROR"),
81
+ name: zod.z.string(),
82
+ message: zod.z.string(),
83
+ stackTrace: zod.z.string()
84
+ });
85
+ var TaskRunCustomErrorObject = zod.z.object({
86
+ type: zod.z.literal("CUSTOM_ERROR"),
87
+ raw: zod.z.string()
88
+ });
89
+ var TaskRunStringError = zod.z.object({
90
+ type: zod.z.literal("STRING_ERROR"),
91
+ raw: zod.z.string()
92
+ });
93
+ var TaskRunErrorCodes = {
94
+ COULD_NOT_FIND_EXECUTOR: "COULD_NOT_FIND_EXECUTOR",
95
+ COULD_NOT_FIND_TASK: "COULD_NOT_FIND_TASK",
96
+ CONFIGURED_INCORRECTLY: "CONFIGURED_INCORRECTLY",
97
+ TASK_ALREADY_RUNNING: "TASK_ALREADY_RUNNING",
98
+ TASK_EXECUTION_FAILED: "TASK_EXECUTION_FAILED",
99
+ TASK_EXECUTION_ABORTED: "TASK_EXECUTION_ABORTED",
100
+ TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE: "TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE",
101
+ TASK_RUN_CANCELLED: "TASK_RUN_CANCELLED",
102
+ TASK_OUTPUT_ERROR: "TASK_OUTPUT_ERROR",
103
+ HANDLE_ERROR_ERROR: "HANDLE_ERROR_ERROR",
104
+ GRACEFUL_EXIT_TIMEOUT: "GRACEFUL_EXIT_TIMEOUT"
455
105
  };
456
106
  var TaskRunInternalError = zod.z.object({
457
107
  type: zod.z.literal("INTERNAL_ERROR"),
@@ -1890,32 +1540,492 @@ var SpanMessagingEvent = zod.z.object({
1890
1540
  destination: zod.z.string().optional()
1891
1541
  });
1892
1542
 
1893
- // src/v3/utils/platform.ts
1894
- var _globalThis = typeof globalThis === "object" ? globalThis : global;
1895
-
1896
- // src/v3/utils/globals.ts
1897
- var GLOBAL_TRIGGER_DOT_DEV_KEY = Symbol.for(`dev.trigger.ts.api`);
1898
- var _global = _globalThis;
1899
- function registerGlobal(type, instance, allowOverride = false) {
1900
- const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] ?? {};
1901
- if (!allowOverride && api[type]) {
1902
- return false;
1543
+ // src/v3/apiErrors.ts
1544
+ var _APIError = class _APIError extends Error {
1545
+ constructor(status, error, message, headers) {
1546
+ super(`${_APIError.makeMessage(status, error, message)}`);
1547
+ this.status = status;
1548
+ this.headers = headers;
1549
+ const data = error;
1550
+ this.error = data;
1551
+ this.code = data?.["code"];
1552
+ this.param = data?.["param"];
1553
+ this.type = data?.["type"];
1903
1554
  }
1904
- api[type] = instance;
1905
- return true;
1906
- }
1907
- __name(registerGlobal, "registerGlobal");
1908
- function getGlobal(type) {
1909
- return _global[GLOBAL_TRIGGER_DOT_DEV_KEY]?.[type];
1910
- }
1911
- __name(getGlobal, "getGlobal");
1912
- function unregisterGlobal(type) {
1913
- const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY];
1914
- if (api) {
1915
- delete api[type];
1555
+ static makeMessage(status, error, message) {
1556
+ const msg = error?.message ? typeof error.message === "string" ? error.message : JSON.stringify(error.message) : error ? JSON.stringify(error) : message;
1557
+ if (status && msg) {
1558
+ return `${status} ${msg}`;
1559
+ }
1560
+ if (status) {
1561
+ return `${status} status code (no body)`;
1562
+ }
1563
+ if (msg) {
1564
+ return msg;
1565
+ }
1566
+ return "(no status code or body)";
1916
1567
  }
1568
+ static generate(status, errorResponse, message, headers) {
1569
+ if (!status) {
1570
+ return new APIConnectionError({
1571
+ cause: castToError(errorResponse)
1572
+ });
1573
+ }
1574
+ const error = errorResponse?.["error"];
1575
+ if (status === 400) {
1576
+ return new BadRequestError(status, error, message, headers);
1577
+ }
1578
+ if (status === 401) {
1579
+ return new AuthenticationError(status, error, message, headers);
1580
+ }
1581
+ if (status === 403) {
1582
+ return new PermissionDeniedError(status, error, message, headers);
1583
+ }
1584
+ if (status === 404) {
1585
+ return new NotFoundError(status, error, message, headers);
1586
+ }
1587
+ if (status === 409) {
1588
+ return new ConflictError(status, error, message, headers);
1589
+ }
1590
+ if (status === 422) {
1591
+ return new UnprocessableEntityError(status, error, message, headers);
1592
+ }
1593
+ if (status === 429) {
1594
+ return new RateLimitError(status, error, message, headers);
1595
+ }
1596
+ if (status >= 500) {
1597
+ return new InternalServerError(status, error, message, headers);
1598
+ }
1599
+ return new _APIError(status, error, message, headers);
1600
+ }
1601
+ };
1602
+ __name(_APIError, "APIError");
1603
+ var APIError = _APIError;
1604
+ var _APIConnectionError = class _APIConnectionError extends APIError {
1605
+ constructor({ message, cause }) {
1606
+ super(void 0, void 0, message || "Connection error.", void 0);
1607
+ __publicField(this, "status");
1608
+ if (cause)
1609
+ this.cause = cause;
1610
+ }
1611
+ };
1612
+ __name(_APIConnectionError, "APIConnectionError");
1613
+ var APIConnectionError = _APIConnectionError;
1614
+ var _BadRequestError = class _BadRequestError extends APIError {
1615
+ constructor() {
1616
+ super(...arguments);
1617
+ __publicField(this, "status", 400);
1618
+ }
1619
+ };
1620
+ __name(_BadRequestError, "BadRequestError");
1621
+ var BadRequestError = _BadRequestError;
1622
+ var _AuthenticationError = class _AuthenticationError extends APIError {
1623
+ constructor() {
1624
+ super(...arguments);
1625
+ __publicField(this, "status", 401);
1626
+ }
1627
+ };
1628
+ __name(_AuthenticationError, "AuthenticationError");
1629
+ var AuthenticationError = _AuthenticationError;
1630
+ var _PermissionDeniedError = class _PermissionDeniedError extends APIError {
1631
+ constructor() {
1632
+ super(...arguments);
1633
+ __publicField(this, "status", 403);
1634
+ }
1635
+ };
1636
+ __name(_PermissionDeniedError, "PermissionDeniedError");
1637
+ var PermissionDeniedError = _PermissionDeniedError;
1638
+ var _NotFoundError = class _NotFoundError extends APIError {
1639
+ constructor() {
1640
+ super(...arguments);
1641
+ __publicField(this, "status", 404);
1642
+ }
1643
+ };
1644
+ __name(_NotFoundError, "NotFoundError");
1645
+ var NotFoundError = _NotFoundError;
1646
+ var _ConflictError = class _ConflictError extends APIError {
1647
+ constructor() {
1648
+ super(...arguments);
1649
+ __publicField(this, "status", 409);
1650
+ }
1651
+ };
1652
+ __name(_ConflictError, "ConflictError");
1653
+ var ConflictError = _ConflictError;
1654
+ var _UnprocessableEntityError = class _UnprocessableEntityError extends APIError {
1655
+ constructor() {
1656
+ super(...arguments);
1657
+ __publicField(this, "status", 422);
1658
+ }
1659
+ };
1660
+ __name(_UnprocessableEntityError, "UnprocessableEntityError");
1661
+ var UnprocessableEntityError = _UnprocessableEntityError;
1662
+ var _RateLimitError = class _RateLimitError extends APIError {
1663
+ constructor() {
1664
+ super(...arguments);
1665
+ __publicField(this, "status", 429);
1666
+ }
1667
+ };
1668
+ __name(_RateLimitError, "RateLimitError");
1669
+ var RateLimitError = _RateLimitError;
1670
+ var _InternalServerError = class _InternalServerError extends APIError {
1671
+ };
1672
+ __name(_InternalServerError, "InternalServerError");
1673
+ var InternalServerError = _InternalServerError;
1674
+ function castToError(err) {
1675
+ if (err instanceof Error)
1676
+ return err;
1677
+ return new Error(err);
1678
+ }
1679
+ __name(castToError, "castToError");
1680
+
1681
+ // src/retry.ts
1682
+ function calculateResetAt(resets, format, now = /* @__PURE__ */ new Date()) {
1683
+ if (!resets)
1684
+ return;
1685
+ switch (format) {
1686
+ case "iso_8601_duration_openai_variant": {
1687
+ return calculateISO8601DurationOpenAIVariantResetAt(resets, now);
1688
+ }
1689
+ case "iso_8601": {
1690
+ return calculateISO8601ResetAt(resets, now);
1691
+ }
1692
+ case "unix_timestamp": {
1693
+ return calculateUnixTimestampResetAt(resets, now);
1694
+ }
1695
+ case "unix_timestamp_in_ms": {
1696
+ return calculateUnixTimestampInMsResetAt(resets, now);
1697
+ }
1698
+ }
1699
+ }
1700
+ __name(calculateResetAt, "calculateResetAt");
1701
+ function calculateUnixTimestampResetAt(resets, now = /* @__PURE__ */ new Date()) {
1702
+ if (!resets)
1703
+ return void 0;
1704
+ const resetAt = parseInt(resets, 10);
1705
+ if (isNaN(resetAt))
1706
+ return void 0;
1707
+ return new Date(resetAt * 1e3);
1708
+ }
1709
+ __name(calculateUnixTimestampResetAt, "calculateUnixTimestampResetAt");
1710
+ function calculateUnixTimestampInMsResetAt(resets, now = /* @__PURE__ */ new Date()) {
1711
+ if (!resets)
1712
+ return void 0;
1713
+ const resetAt = parseInt(resets, 10);
1714
+ if (isNaN(resetAt))
1715
+ return void 0;
1716
+ return new Date(resetAt);
1717
+ }
1718
+ __name(calculateUnixTimestampInMsResetAt, "calculateUnixTimestampInMsResetAt");
1719
+ function calculateISO8601ResetAt(resets, now = /* @__PURE__ */ new Date()) {
1720
+ if (!resets)
1721
+ return void 0;
1722
+ const resetAt = new Date(resets);
1723
+ if (isNaN(resetAt.getTime()))
1724
+ return void 0;
1725
+ return resetAt;
1726
+ }
1727
+ __name(calculateISO8601ResetAt, "calculateISO8601ResetAt");
1728
+ function calculateISO8601DurationOpenAIVariantResetAt(resets, now = /* @__PURE__ */ new Date()) {
1729
+ if (!resets)
1730
+ return void 0;
1731
+ const pattern = /^(?:(\d+)d)?(?:(\d+)h)?(?:(\d+)m)?(?:(\d+(?:\.\d+)?)s)?(?:(\d+)ms)?$/;
1732
+ const match = resets.match(pattern);
1733
+ if (!match)
1734
+ return void 0;
1735
+ const days = parseInt(match[1], 10) || 0;
1736
+ const hours = parseInt(match[2], 10) || 0;
1737
+ const minutes = parseInt(match[3], 10) || 0;
1738
+ const seconds = parseFloat(match[4]) || 0;
1739
+ const milliseconds = parseInt(match[5], 10) || 0;
1740
+ const resetAt = new Date(now);
1741
+ resetAt.setDate(resetAt.getDate() + days);
1742
+ resetAt.setHours(resetAt.getHours() + hours);
1743
+ resetAt.setMinutes(resetAt.getMinutes() + minutes);
1744
+ resetAt.setSeconds(resetAt.getSeconds() + Math.floor(seconds));
1745
+ resetAt.setMilliseconds(resetAt.getMilliseconds() + (seconds - Math.floor(seconds)) * 1e3 + milliseconds);
1746
+ return resetAt;
1747
+ }
1748
+ __name(calculateISO8601DurationOpenAIVariantResetAt, "calculateISO8601DurationOpenAIVariantResetAt");
1749
+
1750
+ // src/v3/utils/retries.ts
1751
+ var defaultRetryOptions = {
1752
+ maxAttempts: 3,
1753
+ factor: 2,
1754
+ minTimeoutInMs: 1e3,
1755
+ maxTimeoutInMs: 6e4,
1756
+ randomize: true
1757
+ };
1758
+ var defaultFetchRetryOptions = {
1759
+ byStatus: {
1760
+ "429,408,409,5xx": {
1761
+ strategy: "backoff",
1762
+ ...defaultRetryOptions
1763
+ }
1764
+ },
1765
+ connectionError: defaultRetryOptions,
1766
+ timeout: defaultRetryOptions
1767
+ };
1768
+ function calculateNextRetryDelay(options, attempt) {
1769
+ const opts = {
1770
+ ...defaultRetryOptions,
1771
+ ...options
1772
+ };
1773
+ if (attempt >= opts.maxAttempts) {
1774
+ return;
1775
+ }
1776
+ const { factor, minTimeoutInMs, maxTimeoutInMs, randomize } = opts;
1777
+ const random = randomize ? Math.random() + 1 : 1;
1778
+ const timeout = Math.min(maxTimeoutInMs, random * minTimeoutInMs * Math.pow(factor, attempt - 1));
1779
+ return Math.round(timeout);
1780
+ }
1781
+ __name(calculateNextRetryDelay, "calculateNextRetryDelay");
1782
+ function calculateResetAt2(resets, format, now = Date.now()) {
1783
+ const resetAt = calculateResetAt(resets, format, new Date(now));
1784
+ return resetAt?.getTime();
1785
+ }
1786
+ __name(calculateResetAt2, "calculateResetAt");
1787
+
1788
+ // src/v3/zodfetch.ts
1789
+ var defaultRetryOptions2 = {
1790
+ maxAttempts: 3,
1791
+ factor: 2,
1792
+ minTimeoutInMs: 1e3,
1793
+ maxTimeoutInMs: 6e4,
1794
+ randomize: false
1795
+ };
1796
+ async function zodfetch(schema, url, requestInit, options) {
1797
+ return await _doZodFetch(schema, url, requestInit, options);
1798
+ }
1799
+ __name(zodfetch, "zodfetch");
1800
+ async function _doZodFetch(schema, url, requestInit, options, attempt = 1) {
1801
+ try {
1802
+ const response = await fetch(url, requestInitWithCache(requestInit));
1803
+ const responseHeaders = createResponseHeaders(response.headers);
1804
+ if (!response.ok) {
1805
+ const retryResult = shouldRetry(response, attempt, options?.retry);
1806
+ if (retryResult.retry) {
1807
+ await new Promise((resolve) => setTimeout(resolve, retryResult.delay));
1808
+ return await _doZodFetch(schema, url, requestInit, options, attempt + 1);
1809
+ } else {
1810
+ const errText = await response.text().catch((e) => castToError2(e).message);
1811
+ const errJSON = safeJsonParse(errText);
1812
+ const errMessage = errJSON ? void 0 : errText;
1813
+ throw APIError.generate(response.status, errJSON, errMessage, responseHeaders);
1814
+ }
1815
+ }
1816
+ const jsonBody = await response.json();
1817
+ const parsedResult = schema.safeParse(jsonBody);
1818
+ if (parsedResult.success) {
1819
+ return parsedResult.data;
1820
+ }
1821
+ throw zodValidationError.fromZodError(parsedResult.error);
1822
+ } catch (error) {
1823
+ if (error instanceof APIError) {
1824
+ throw error;
1825
+ }
1826
+ if (options?.retry) {
1827
+ const retry = {
1828
+ ...defaultRetryOptions2,
1829
+ ...options.retry
1830
+ };
1831
+ const delay = calculateNextRetryDelay(retry, attempt);
1832
+ if (delay) {
1833
+ await new Promise((resolve) => setTimeout(resolve, delay));
1834
+ return await _doZodFetch(schema, url, requestInit, options, attempt + 1);
1835
+ }
1836
+ }
1837
+ throw new APIConnectionError({
1838
+ cause: castToError2(error)
1839
+ });
1840
+ }
1841
+ }
1842
+ __name(_doZodFetch, "_doZodFetch");
1843
+ function castToError2(err) {
1844
+ if (err instanceof Error)
1845
+ return err;
1846
+ return new Error(err);
1847
+ }
1848
+ __name(castToError2, "castToError");
1849
+ function shouldRetry(response, attempt, retryOptions) {
1850
+ function shouldRetryForOptions() {
1851
+ const retry = {
1852
+ ...defaultRetryOptions2,
1853
+ ...retryOptions
1854
+ };
1855
+ const delay = calculateNextRetryDelay(retry, attempt);
1856
+ if (delay) {
1857
+ return {
1858
+ retry: true,
1859
+ delay
1860
+ };
1861
+ } else {
1862
+ return {
1863
+ retry: false
1864
+ };
1865
+ }
1866
+ }
1867
+ __name(shouldRetryForOptions, "shouldRetryForOptions");
1868
+ const shouldRetryHeader = response.headers.get("x-should-retry");
1869
+ if (shouldRetryHeader === "true")
1870
+ return shouldRetryForOptions();
1871
+ if (shouldRetryHeader === "false")
1872
+ return {
1873
+ retry: false
1874
+ };
1875
+ if (response.status === 408)
1876
+ return shouldRetryForOptions();
1877
+ if (response.status === 409)
1878
+ return shouldRetryForOptions();
1879
+ if (response.status === 429)
1880
+ return shouldRetryForOptions();
1881
+ if (response.status >= 500)
1882
+ return shouldRetryForOptions();
1883
+ return {
1884
+ retry: false
1885
+ };
1886
+ }
1887
+ __name(shouldRetry, "shouldRetry");
1888
+ function safeJsonParse(text) {
1889
+ try {
1890
+ return JSON.parse(text);
1891
+ } catch (e) {
1892
+ return void 0;
1893
+ }
1894
+ }
1895
+ __name(safeJsonParse, "safeJsonParse");
1896
+ function createResponseHeaders(headers) {
1897
+ return new Proxy(Object.fromEntries(
1898
+ // @ts-ignore
1899
+ headers.entries()
1900
+ ), {
1901
+ get(target, name) {
1902
+ const key = name.toString();
1903
+ return target[key.toLowerCase()] || target[key];
1904
+ }
1905
+ });
1906
+ }
1907
+ __name(createResponseHeaders, "createResponseHeaders");
1908
+ function requestInitWithCache(requestInit) {
1909
+ try {
1910
+ const withCache = {
1911
+ ...requestInit,
1912
+ cache: "no-cache"
1913
+ };
1914
+ const _ = new Request("http://localhost", withCache);
1915
+ return withCache;
1916
+ } catch (error) {
1917
+ return requestInit ?? {};
1918
+ }
1919
+ }
1920
+ __name(requestInitWithCache, "requestInitWithCache");
1921
+
1922
+ // src/v3/utils/flattenAttributes.ts
1923
+ function flattenAttributes(obj, prefix) {
1924
+ const result = {};
1925
+ if (!obj) {
1926
+ return result;
1927
+ }
1928
+ if (typeof obj === "string") {
1929
+ result[prefix || ""] = obj;
1930
+ return result;
1931
+ }
1932
+ if (typeof obj === "number") {
1933
+ result[prefix || ""] = obj;
1934
+ return result;
1935
+ }
1936
+ if (typeof obj === "boolean") {
1937
+ result[prefix || ""] = obj;
1938
+ return result;
1939
+ }
1940
+ for (const [key, value] of Object.entries(obj)) {
1941
+ const newPrefix = `${prefix ? `${prefix}.` : ""}${key}`;
1942
+ if (Array.isArray(value)) {
1943
+ for (let i = 0; i < value.length; i++) {
1944
+ if (typeof value[i] === "object" && value[i] !== null) {
1945
+ Object.assign(result, flattenAttributes(value[i], `${newPrefix}.[${i}]`));
1946
+ } else {
1947
+ result[`${newPrefix}.[${i}]`] = value[i];
1948
+ }
1949
+ }
1950
+ } else if (isRecord(value)) {
1951
+ Object.assign(result, flattenAttributes(value, newPrefix));
1952
+ } else {
1953
+ if (typeof value === "number" || typeof value === "string" || typeof value === "boolean") {
1954
+ result[newPrefix] = value;
1955
+ }
1956
+ }
1957
+ }
1958
+ return result;
1959
+ }
1960
+ __name(flattenAttributes, "flattenAttributes");
1961
+ function isRecord(value) {
1962
+ return value !== null && typeof value === "object" && !Array.isArray(value);
1963
+ }
1964
+ __name(isRecord, "isRecord");
1965
+ function unflattenAttributes(obj) {
1966
+ if (typeof obj !== "object" || obj === null || Array.isArray(obj)) {
1967
+ return obj;
1968
+ }
1969
+ const result = {};
1970
+ for (const [key, value] of Object.entries(obj)) {
1971
+ const parts = key.split(".").reduce((acc, part) => {
1972
+ if (detectIsArrayIndex(part)) {
1973
+ acc.push(part);
1974
+ } else {
1975
+ acc.push(...part.split(/\.\[(.*?)\]/).filter(Boolean));
1976
+ }
1977
+ return acc;
1978
+ }, []);
1979
+ let current = result;
1980
+ for (let i = 0; i < parts.length - 1; i++) {
1981
+ const part = parts[i];
1982
+ const isArray = detectIsArrayIndex(part);
1983
+ const cleanPart = isArray ? part.substring(1, part.length - 1) : part;
1984
+ const nextIsArray = detectIsArrayIndex(parts[i + 1]);
1985
+ if (!current[cleanPart]) {
1986
+ current[cleanPart] = nextIsArray ? [] : {};
1987
+ }
1988
+ current = current[cleanPart];
1989
+ }
1990
+ const lastPart = parts[parts.length - 1];
1991
+ const cleanLastPart = detectIsArrayIndex(lastPart) ? parseInt(lastPart.substring(1, lastPart.length - 1), 10) : lastPart;
1992
+ current[cleanLastPart] = value;
1993
+ }
1994
+ return result;
1995
+ }
1996
+ __name(unflattenAttributes, "unflattenAttributes");
1997
+ function detectIsArrayIndex(key) {
1998
+ const match = key.match(/^\[(\d+)\]$/);
1999
+ if (match) {
2000
+ return true;
2001
+ }
2002
+ return false;
2003
+ }
2004
+ __name(detectIsArrayIndex, "detectIsArrayIndex");
2005
+ function primitiveValueOrflattenedAttributes(obj, prefix) {
2006
+ if (typeof obj === "string" || typeof obj === "number" || typeof obj === "boolean" || obj === null || obj === void 0) {
2007
+ return obj;
2008
+ }
2009
+ const attributes = flattenAttributes(obj, prefix);
2010
+ if (prefix !== void 0 && typeof attributes[prefix] !== "undefined" && attributes[prefix] !== null) {
2011
+ return attributes[prefix];
2012
+ }
2013
+ return attributes;
1917
2014
  }
1918
- __name(unregisterGlobal, "unregisterGlobal");
2015
+ __name(primitiveValueOrflattenedAttributes, "primitiveValueOrflattenedAttributes");
2016
+ var _SafeAsyncLocalStorage = class _SafeAsyncLocalStorage {
2017
+ constructor() {
2018
+ this.storage = new async_hooks.AsyncLocalStorage();
2019
+ }
2020
+ runWith(context3, fn) {
2021
+ return this.storage.run(context3, fn);
2022
+ }
2023
+ getStore() {
2024
+ return this.storage.getStore();
2025
+ }
2026
+ };
2027
+ __name(_SafeAsyncLocalStorage, "SafeAsyncLocalStorage");
2028
+ var SafeAsyncLocalStorage = _SafeAsyncLocalStorage;
1919
2029
 
1920
2030
  // src/v3/semanticInternalAttributes.ts
1921
2031
  var SemanticInternalAttributes = {
@@ -1964,27 +2074,23 @@ var SemanticInternalAttributes = {
1964
2074
  IDEMPOTENCY_KEY: "ctx.run.idempotencyKey"
1965
2075
  };
1966
2076
 
1967
- // src/v3/taskContext/index.ts
1968
- var API_NAME = "task-context";
1969
- var _getTaskContext, getTaskContext_fn;
1970
- var _TaskContextAPI = class _TaskContextAPI {
2077
+ // src/v3/tasks/taskContextManager.ts
2078
+ var _getStore, getStore_fn;
2079
+ var _TaskContextManager = class _TaskContextManager {
1971
2080
  constructor() {
1972
- __privateAdd(this, _getTaskContext);
1973
- }
1974
- static getInstance() {
1975
- if (!this._instance) {
1976
- this._instance = new _TaskContextAPI();
1977
- }
1978
- return this._instance;
2081
+ __privateAdd(this, _getStore);
2082
+ __publicField(this, "_storage", new SafeAsyncLocalStorage());
1979
2083
  }
1980
2084
  get isInsideTask() {
1981
- return __privateMethod(this, _getTaskContext, getTaskContext_fn).call(this) !== void 0;
2085
+ return __privateMethod(this, _getStore, getStore_fn).call(this) !== void 0;
1982
2086
  }
1983
2087
  get ctx() {
1984
- return __privateMethod(this, _getTaskContext, getTaskContext_fn).call(this)?.ctx;
2088
+ const store = __privateMethod(this, _getStore, getStore_fn).call(this);
2089
+ return store?.ctx;
1985
2090
  }
1986
2091
  get worker() {
1987
- return __privateMethod(this, _getTaskContext, getTaskContext_fn).call(this)?.worker;
2092
+ const store = __privateMethod(this, _getStore, getStore_fn).call(this);
2093
+ return store?.worker;
1988
2094
  }
1989
2095
  get attributes() {
1990
2096
  if (this.ctx) {
@@ -2030,22 +2136,66 @@ var _TaskContextAPI = class _TaskContextAPI {
2030
2136
  }
2031
2137
  return {};
2032
2138
  }
2033
- disable() {
2034
- unregisterGlobal(API_NAME);
2139
+ runWith(context3, fn) {
2140
+ return this._storage.runWith(context3, fn);
2141
+ }
2142
+ };
2143
+ _getStore = new WeakSet();
2144
+ getStore_fn = /* @__PURE__ */ __name(function() {
2145
+ return this._storage.getStore();
2146
+ }, "#getStore");
2147
+ __name(_TaskContextManager, "TaskContextManager");
2148
+ var TaskContextManager = _TaskContextManager;
2149
+ var taskContextManager = new TaskContextManager();
2150
+ var _TaskContextSpanProcessor = class _TaskContextSpanProcessor {
2151
+ constructor(innerProcessor) {
2152
+ this._innerProcessor = innerProcessor;
2153
+ }
2154
+ // Called when a span starts
2155
+ onStart(span, parentContext) {
2156
+ if (taskContextManager.ctx) {
2157
+ span.setAttributes(flattenAttributes({
2158
+ [SemanticInternalAttributes.ATTEMPT_ID]: taskContextManager.ctx.attempt.id,
2159
+ [SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContextManager.ctx.attempt.number
2160
+ }, SemanticInternalAttributes.METADATA));
2161
+ }
2162
+ this._innerProcessor.onStart(span, parentContext);
2035
2163
  }
2036
- setGlobalTaskContext(taskContext2) {
2037
- return registerGlobal(API_NAME, taskContext2);
2164
+ // Delegate the rest of the methods to the wrapped processor
2165
+ onEnd(span) {
2166
+ this._innerProcessor.onEnd(span);
2167
+ }
2168
+ shutdown() {
2169
+ return this._innerProcessor.shutdown();
2170
+ }
2171
+ forceFlush() {
2172
+ return this._innerProcessor.forceFlush();
2038
2173
  }
2039
2174
  };
2040
- _getTaskContext = new WeakSet();
2041
- getTaskContext_fn = /* @__PURE__ */ __name(function() {
2042
- return getGlobal(API_NAME);
2043
- }, "#getTaskContext");
2044
- __name(_TaskContextAPI, "TaskContextAPI");
2045
- var TaskContextAPI = _TaskContextAPI;
2046
-
2047
- // src/v3/task-context-api.ts
2048
- var taskContext = TaskContextAPI.getInstance();
2175
+ __name(_TaskContextSpanProcessor, "TaskContextSpanProcessor");
2176
+ var TaskContextSpanProcessor = _TaskContextSpanProcessor;
2177
+ var _TaskContextLogProcessor = class _TaskContextLogProcessor {
2178
+ constructor(innerProcessor) {
2179
+ this._innerProcessor = innerProcessor;
2180
+ }
2181
+ forceFlush() {
2182
+ return this._innerProcessor.forceFlush();
2183
+ }
2184
+ onEmit(logRecord, context3) {
2185
+ if (taskContextManager.ctx) {
2186
+ logRecord.setAttributes(flattenAttributes({
2187
+ [SemanticInternalAttributes.ATTEMPT_ID]: taskContextManager.ctx.attempt.id,
2188
+ [SemanticInternalAttributes.ATTEMPT_NUMBER]: taskContextManager.ctx.attempt.number
2189
+ }, SemanticInternalAttributes.METADATA));
2190
+ }
2191
+ this._innerProcessor.onEmit(logRecord, context3);
2192
+ }
2193
+ shutdown() {
2194
+ return this._innerProcessor.shutdown();
2195
+ }
2196
+ };
2197
+ __name(_TaskContextLogProcessor, "TaskContextLogProcessor");
2198
+ var TaskContextLogProcessor = _TaskContextLogProcessor;
2049
2199
 
2050
2200
  // src/v3/utils/getEnv.ts
2051
2201
  function getEnvVar(name) {
@@ -2054,19 +2204,6 @@ function getEnvVar(name) {
2054
2204
  }
2055
2205
  }
2056
2206
  __name(getEnvVar, "getEnvVar");
2057
- var _SafeAsyncLocalStorage = class _SafeAsyncLocalStorage {
2058
- constructor() {
2059
- this.storage = new async_hooks.AsyncLocalStorage();
2060
- }
2061
- runWith(context3, fn) {
2062
- return this.storage.run(context3, fn);
2063
- }
2064
- getStore() {
2065
- return this.storage.getStore();
2066
- }
2067
- };
2068
- __name(_SafeAsyncLocalStorage, "SafeAsyncLocalStorage");
2069
- var SafeAsyncLocalStorage = _SafeAsyncLocalStorage;
2070
2207
 
2071
2208
  // src/v3/apiClient/index.ts
2072
2209
  var zodFetchOptions = {
@@ -2202,7 +2339,7 @@ getHeaders_fn = /* @__PURE__ */ __name(function(spanParentAsLink) {
2202
2339
  "Content-Type": "application/json",
2203
2340
  Authorization: `Bearer ${this.accessToken}`
2204
2341
  };
2205
- if (taskContext.isInsideTask) {
2342
+ if (taskContextManager.isInsideTask) {
2206
2343
  api.propagation.inject(api.context.active(), headers);
2207
2344
  if (spanParentAsLink) {
2208
2345
  headers["x-trigger-span-parent-as-link"] = "1";
@@ -2212,18 +2349,18 @@ getHeaders_fn = /* @__PURE__ */ __name(function(spanParentAsLink) {
2212
2349
  }, "#getHeaders");
2213
2350
  __name(_ApiClient, "ApiClient");
2214
2351
  var ApiClient = _ApiClient;
2215
- var _getStore, getStore_fn;
2352
+ var _getStore2, getStore_fn2;
2216
2353
  var _ApiClientManager = class _ApiClientManager {
2217
2354
  constructor() {
2218
- __privateAdd(this, _getStore);
2355
+ __privateAdd(this, _getStore2);
2219
2356
  __publicField(this, "_storage", new SafeAsyncLocalStorage());
2220
2357
  }
2221
2358
  get baseURL() {
2222
- const store = __privateMethod(this, _getStore, getStore_fn).call(this);
2359
+ const store = __privateMethod(this, _getStore2, getStore_fn2).call(this);
2223
2360
  return store?.baseURL ?? getEnvVar("TRIGGER_API_URL") ?? "https://api.trigger.dev";
2224
2361
  }
2225
2362
  get accessToken() {
2226
- const store = __privateMethod(this, _getStore, getStore_fn).call(this);
2363
+ const store = __privateMethod(this, _getStore2, getStore_fn2).call(this);
2227
2364
  return store?.accessToken ?? getEnvVar("TRIGGER_SECRET_KEY");
2228
2365
  }
2229
2366
  get client() {
@@ -2236,61 +2373,736 @@ var _ApiClientManager = class _ApiClientManager {
2236
2373
  return this._storage.runWith(context3, fn);
2237
2374
  }
2238
2375
  };
2239
- _getStore = new WeakSet();
2240
- getStore_fn = /* @__PURE__ */ __name(function() {
2376
+ _getStore2 = new WeakSet();
2377
+ getStore_fn2 = /* @__PURE__ */ __name(function() {
2241
2378
  return this._storage.getStore();
2242
2379
  }, "#getStore");
2243
2380
  __name(_ApiClientManager, "ApiClientManager");
2244
2381
  var ApiClientManager = _ApiClientManager;
2245
2382
  var apiClientManager = new ApiClientManager();
2246
- var _SimpleClock = class _SimpleClock {
2247
- preciseNow() {
2248
- const now = new preciseDate.PreciseDate();
2249
- const nowStruct = now.toStruct();
2250
- return [
2251
- nowStruct.seconds,
2252
- nowStruct.nanos
2253
- ];
2383
+ var _ZodSchemaParsedError = class _ZodSchemaParsedError extends Error {
2384
+ constructor(error, payload) {
2385
+ super(error.message);
2386
+ this.error = error;
2387
+ this.payload = payload;
2254
2388
  }
2255
- reset() {
2389
+ };
2390
+ __name(_ZodSchemaParsedError, "ZodSchemaParsedError");
2391
+ var ZodSchemaParsedError = _ZodSchemaParsedError;
2392
+ var ZodMessageSchema = zod.z.object({
2393
+ version: zod.z.literal("v1").default("v1"),
2394
+ type: zod.z.string(),
2395
+ payload: zod.z.unknown()
2396
+ });
2397
+ var _schema, _handlers;
2398
+ var _ZodMessageHandler = class _ZodMessageHandler {
2399
+ constructor(options) {
2400
+ __privateAdd(this, _schema, void 0);
2401
+ __privateAdd(this, _handlers, void 0);
2402
+ __privateSet(this, _schema, options.schema);
2403
+ __privateSet(this, _handlers, options.messages);
2404
+ }
2405
+ async handleMessage(message) {
2406
+ const parsedMessage = this.parseMessage(message);
2407
+ if (!__privateGet(this, _handlers)) {
2408
+ throw new Error("No handlers provided");
2409
+ }
2410
+ const handler = __privateGet(this, _handlers)[parsedMessage.type];
2411
+ if (!handler) {
2412
+ console.error(`No handler for message type: ${String(parsedMessage.type)}`);
2413
+ return;
2414
+ }
2415
+ const ack = await handler(parsedMessage.payload);
2416
+ return ack;
2417
+ }
2418
+ parseMessage(message) {
2419
+ const parsedMessage = ZodMessageSchema.safeParse(message);
2420
+ if (!parsedMessage.success) {
2421
+ throw new Error(`Failed to parse message: ${JSON.stringify(parsedMessage.error)}`);
2422
+ }
2423
+ const schema = __privateGet(this, _schema)[parsedMessage.data.type];
2424
+ if (!schema) {
2425
+ throw new Error(`Unknown message type: ${parsedMessage.data.type}`);
2426
+ }
2427
+ const parsedPayload = schema.safeParse(parsedMessage.data.payload);
2428
+ if (!parsedPayload.success) {
2429
+ throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
2430
+ }
2431
+ return {
2432
+ type: parsedMessage.data.type,
2433
+ payload: parsedPayload.data
2434
+ };
2435
+ }
2436
+ registerHandlers(emitter, logger2) {
2437
+ const log = logger2 ?? console;
2438
+ if (!__privateGet(this, _handlers)) {
2439
+ log.info("No handlers provided");
2440
+ return;
2441
+ }
2442
+ for (const eventName of Object.keys(__privateGet(this, _schema))) {
2443
+ emitter.on(eventName, async (message, callback) => {
2444
+ log.info(`handling ${eventName}`, {
2445
+ payload: message,
2446
+ hasCallback: !!callback
2447
+ });
2448
+ let ack;
2449
+ if ("payload" in message) {
2450
+ ack = await this.handleMessage({
2451
+ type: eventName,
2452
+ ...message
2453
+ });
2454
+ } else {
2455
+ const { version, ...payload } = message;
2456
+ ack = await this.handleMessage({
2457
+ type: eventName,
2458
+ version,
2459
+ payload
2460
+ });
2461
+ }
2462
+ if (callback && typeof callback === "function") {
2463
+ callback(ack);
2464
+ }
2465
+ });
2466
+ }
2256
2467
  }
2257
2468
  };
2258
- __name(_SimpleClock, "SimpleClock");
2259
- var SimpleClock = _SimpleClock;
2469
+ _schema = new WeakMap();
2470
+ _handlers = new WeakMap();
2471
+ __name(_ZodMessageHandler, "ZodMessageHandler");
2472
+ var ZodMessageHandler = _ZodMessageHandler;
2473
+ var _schema2, _sender;
2474
+ var _ZodMessageSender = class _ZodMessageSender {
2475
+ constructor(options) {
2476
+ __privateAdd(this, _schema2, void 0);
2477
+ __privateAdd(this, _sender, void 0);
2478
+ __privateSet(this, _schema2, options.schema);
2479
+ __privateSet(this, _sender, options.sender);
2480
+ }
2481
+ async send(type, payload) {
2482
+ const schema = __privateGet(this, _schema2)[type];
2483
+ if (!schema) {
2484
+ throw new Error(`Unknown message type: ${type}`);
2485
+ }
2486
+ const parsedPayload = schema.safeParse(payload);
2487
+ if (!parsedPayload.success) {
2488
+ throw new ZodSchemaParsedError(parsedPayload.error, payload);
2489
+ }
2490
+ await __privateGet(this, _sender).call(this, {
2491
+ type,
2492
+ payload,
2493
+ version: "v1"
2494
+ });
2495
+ }
2496
+ async forwardMessage(message) {
2497
+ const parsedMessage = ZodMessageSchema.safeParse(message);
2498
+ if (!parsedMessage.success) {
2499
+ throw new Error(`Failed to parse message: ${JSON.stringify(parsedMessage.error)}`);
2500
+ }
2501
+ const schema = __privateGet(this, _schema2)[parsedMessage.data.type];
2502
+ if (!schema) {
2503
+ throw new Error(`Unknown message type: ${parsedMessage.data.type}`);
2504
+ }
2505
+ const parsedPayload = schema.safeParse(parsedMessage.data.payload);
2506
+ if (!parsedPayload.success) {
2507
+ throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
2508
+ }
2509
+ await __privateGet(this, _sender).call(this, {
2510
+ type: parsedMessage.data.type,
2511
+ payload: parsedPayload.data,
2512
+ version: "v1"
2513
+ });
2514
+ }
2515
+ };
2516
+ _schema2 = new WeakMap();
2517
+ _sender = new WeakMap();
2518
+ __name(_ZodMessageSender, "ZodMessageSender");
2519
+ var ZodMessageSender = _ZodMessageSender;
2520
+ var messageSchema = zod.z.object({
2521
+ version: zod.z.literal("v1").default("v1"),
2522
+ type: zod.z.string(),
2523
+ payload: zod.z.unknown()
2524
+ });
2525
+ var _schema3, _handlers2;
2526
+ var _ZodSocketMessageHandler = class _ZodSocketMessageHandler {
2527
+ constructor(options) {
2528
+ __privateAdd(this, _schema3, void 0);
2529
+ __privateAdd(this, _handlers2, void 0);
2530
+ __privateSet(this, _schema3, options.schema);
2531
+ __privateSet(this, _handlers2, options.handlers);
2532
+ }
2533
+ async handleMessage(message) {
2534
+ const parsedMessage = this.parseMessage(message);
2535
+ if (!__privateGet(this, _handlers2)) {
2536
+ throw new Error("No handlers provided");
2537
+ }
2538
+ const handler = __privateGet(this, _handlers2)[parsedMessage.type];
2539
+ if (!handler) {
2540
+ console.error(`No handler for message type: ${String(parsedMessage.type)}`);
2541
+ return;
2542
+ }
2543
+ const ack = await handler(parsedMessage.payload);
2544
+ return ack;
2545
+ }
2546
+ parseMessage(message) {
2547
+ const parsedMessage = messageSchema.safeParse(message);
2548
+ if (!parsedMessage.success) {
2549
+ throw new Error(`Failed to parse message: ${JSON.stringify(parsedMessage.error)}`);
2550
+ }
2551
+ const schema = __privateGet(this, _schema3)[parsedMessage.data.type]["message"];
2552
+ if (!schema) {
2553
+ throw new Error(`Unknown message type: ${parsedMessage.data.type}`);
2554
+ }
2555
+ const parsedPayload = schema.safeParse(parsedMessage.data.payload);
2556
+ if (!parsedPayload.success) {
2557
+ throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
2558
+ }
2559
+ return {
2560
+ type: parsedMessage.data.type,
2561
+ payload: parsedPayload.data
2562
+ };
2563
+ }
2564
+ registerHandlers(emitter, logger2) {
2565
+ const log = logger2 ?? console;
2566
+ if (!__privateGet(this, _handlers2)) {
2567
+ log.info("No handlers provided");
2568
+ return;
2569
+ }
2570
+ for (const eventName of Object.keys(__privateGet(this, _handlers2))) {
2571
+ emitter.on(eventName, async (message, callback) => {
2572
+ log.info(`handling ${eventName}`, {
2573
+ payload: message,
2574
+ hasCallback: !!callback
2575
+ });
2576
+ let ack;
2577
+ try {
2578
+ if ("payload" in message) {
2579
+ ack = await this.handleMessage({
2580
+ type: eventName,
2581
+ ...message
2582
+ });
2583
+ } else {
2584
+ const { version, ...payload } = message;
2585
+ ack = await this.handleMessage({
2586
+ type: eventName,
2587
+ version,
2588
+ payload
2589
+ });
2590
+ }
2591
+ } catch (error) {
2592
+ log.error("Error while handling message", {
2593
+ error
2594
+ });
2595
+ return;
2596
+ }
2597
+ if (callback && typeof callback === "function") {
2598
+ callback(ack);
2599
+ }
2600
+ });
2601
+ }
2602
+ }
2603
+ };
2604
+ _schema3 = new WeakMap();
2605
+ _handlers2 = new WeakMap();
2606
+ __name(_ZodSocketMessageHandler, "ZodSocketMessageHandler");
2607
+ var ZodSocketMessageHandler = _ZodSocketMessageHandler;
2608
+ var _schema4, _socket;
2609
+ var _ZodSocketMessageSender = class _ZodSocketMessageSender {
2610
+ constructor(options) {
2611
+ __privateAdd(this, _schema4, void 0);
2612
+ __privateAdd(this, _socket, void 0);
2613
+ __privateSet(this, _schema4, options.schema);
2614
+ __privateSet(this, _socket, options.socket);
2615
+ }
2616
+ send(type, payload) {
2617
+ const schema = __privateGet(this, _schema4)[type]["message"];
2618
+ if (!schema) {
2619
+ throw new Error(`Unknown message type: ${type}`);
2620
+ }
2621
+ const parsedPayload = schema.safeParse(payload);
2622
+ if (!parsedPayload.success) {
2623
+ throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
2624
+ }
2625
+ __privateGet(this, _socket).emit(type, {
2626
+ payload,
2627
+ version: "v1"
2628
+ });
2629
+ return;
2630
+ }
2631
+ async sendWithAck(type, payload) {
2632
+ const schema = __privateGet(this, _schema4)[type]["message"];
2633
+ if (!schema) {
2634
+ throw new Error(`Unknown message type: ${type}`);
2635
+ }
2636
+ const parsedPayload = schema.safeParse(payload);
2637
+ if (!parsedPayload.success) {
2638
+ throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
2639
+ }
2640
+ const callbackResult = await __privateGet(this, _socket).emitWithAck(type, {
2641
+ payload,
2642
+ version: "v1"
2643
+ });
2644
+ return callbackResult;
2645
+ }
2646
+ };
2647
+ _schema4 = new WeakMap();
2648
+ _socket = new WeakMap();
2649
+ __name(_ZodSocketMessageSender, "ZodSocketMessageSender");
2650
+ var ZodSocketMessageSender = _ZodSocketMessageSender;
2651
+ var _sender2, _handler, _logger;
2652
+ var _ZodSocketConnection = class _ZodSocketConnection {
2653
+ constructor(opts) {
2654
+ __privateAdd(this, _sender2, void 0);
2655
+ __privateAdd(this, _handler, void 0);
2656
+ __privateAdd(this, _logger, void 0);
2657
+ const uri = `${opts.secure ? "wss" : "ws"}://${opts.host}:${opts.port ?? (opts.secure ? "443" : "80")}/${opts.namespace}`;
2658
+ const logger2 = new SimpleStructuredLogger(opts.namespace, exports.LogLevel.info);
2659
+ logger2.log("new zod socket", {
2660
+ uri
2661
+ });
2662
+ this.socket = socket_ioClient.io(uri, {
2663
+ transports: [
2664
+ "websocket"
2665
+ ],
2666
+ auth: {
2667
+ token: opts.authToken
2668
+ },
2669
+ extraHeaders: opts.extraHeaders,
2670
+ reconnectionDelay: 500,
2671
+ reconnectionDelayMax: 1e3
2672
+ });
2673
+ __privateSet(this, _logger, logger2.child({
2674
+ socketId: this.socket.id
2675
+ }));
2676
+ __privateSet(this, _handler, new ZodSocketMessageHandler({
2677
+ schema: opts.serverMessages,
2678
+ handlers: opts.handlers
2679
+ }));
2680
+ __privateGet(this, _handler).registerHandlers(this.socket, __privateGet(this, _logger));
2681
+ __privateSet(this, _sender2, new ZodSocketMessageSender({
2682
+ schema: opts.clientMessages,
2683
+ socket: this.socket
2684
+ }));
2685
+ this.socket.on("connect_error", async (error) => {
2686
+ __privateGet(this, _logger).error(`connect_error: ${error}`);
2687
+ if (opts.onError) {
2688
+ await opts.onError(this.socket, error, __privateGet(this, _logger));
2689
+ }
2690
+ });
2691
+ this.socket.on("connect", async () => {
2692
+ __privateGet(this, _logger).info("connect");
2693
+ if (opts.onConnection) {
2694
+ await opts.onConnection(this.socket, __privateGet(this, _handler), __privateGet(this, _sender2), __privateGet(this, _logger));
2695
+ }
2696
+ });
2697
+ this.socket.on("disconnect", async (reason, description) => {
2698
+ __privateGet(this, _logger).info("disconnect", {
2699
+ reason,
2700
+ description
2701
+ });
2702
+ if (opts.onDisconnect) {
2703
+ await opts.onDisconnect(this.socket, reason, description, __privateGet(this, _logger));
2704
+ }
2705
+ });
2706
+ }
2707
+ close() {
2708
+ this.socket.close();
2709
+ }
2710
+ connect() {
2711
+ this.socket.connect();
2712
+ }
2713
+ get send() {
2714
+ return __privateGet(this, _sender2).send.bind(__privateGet(this, _sender2));
2715
+ }
2716
+ get sendWithAck() {
2717
+ return __privateGet(this, _sender2).sendWithAck.bind(__privateGet(this, _sender2));
2718
+ }
2719
+ };
2720
+ _sender2 = new WeakMap();
2721
+ _handler = new WeakMap();
2722
+ _logger = new WeakMap();
2723
+ __name(_ZodSocketConnection, "ZodSocketConnection");
2724
+ var ZodSocketConnection = _ZodSocketConnection;
2260
2725
 
2261
- // src/v3/clock/index.ts
2262
- var API_NAME2 = "clock";
2263
- var SIMPLE_CLOCK = new SimpleClock();
2264
- var _getClock, getClock_fn;
2265
- var _ClockAPI = class _ClockAPI {
2266
- constructor() {
2267
- __privateAdd(this, _getClock);
2726
+ // src/v3/zodNamespace.ts
2727
+ exports.LogLevel = void 0;
2728
+ (function(LogLevel2) {
2729
+ LogLevel2[LogLevel2["log"] = 0] = "log";
2730
+ LogLevel2[LogLevel2["error"] = 1] = "error";
2731
+ LogLevel2[LogLevel2["warn"] = 2] = "warn";
2732
+ LogLevel2[LogLevel2["info"] = 3] = "info";
2733
+ LogLevel2[LogLevel2["debug"] = 4] = "debug";
2734
+ })(exports.LogLevel || (exports.LogLevel = {}));
2735
+ var _structuredLog, structuredLog_fn;
2736
+ var _SimpleStructuredLogger = class _SimpleStructuredLogger {
2737
+ constructor(name, level = [
2738
+ "1",
2739
+ "true"
2740
+ ].includes(process.env.DEBUG ?? "") ? exports.LogLevel.debug : exports.LogLevel.info, fields) {
2741
+ __privateAdd(this, _structuredLog);
2742
+ this.name = name;
2743
+ this.level = level;
2744
+ this.fields = fields;
2745
+ }
2746
+ child(fields, level) {
2747
+ return new _SimpleStructuredLogger(this.name, level, {
2748
+ ...this.fields,
2749
+ ...fields
2750
+ });
2268
2751
  }
2269
- static getInstance() {
2270
- if (!this._instance) {
2271
- this._instance = new _ClockAPI();
2752
+ log(message, ...args) {
2753
+ if (this.level < exports.LogLevel.log)
2754
+ return;
2755
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.log, message, "log", ...args);
2756
+ }
2757
+ error(message, ...args) {
2758
+ if (this.level < exports.LogLevel.error)
2759
+ return;
2760
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.error, message, "error", ...args);
2761
+ }
2762
+ warn(message, ...args) {
2763
+ if (this.level < exports.LogLevel.warn)
2764
+ return;
2765
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.warn, message, "warn", ...args);
2766
+ }
2767
+ info(message, ...args) {
2768
+ if (this.level < exports.LogLevel.info)
2769
+ return;
2770
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.info, message, "info", ...args);
2771
+ }
2772
+ debug(message, ...args) {
2773
+ if (this.level < exports.LogLevel.debug)
2774
+ return;
2775
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.debug, message, "debug", ...args);
2776
+ }
2777
+ };
2778
+ _structuredLog = new WeakSet();
2779
+ structuredLog_fn = /* @__PURE__ */ __name(function(loggerFunction, message, level, ...args) {
2780
+ const structuredLog = {
2781
+ ...args.length === 1 ? args[0] : args,
2782
+ ...this.fields,
2783
+ timestamp: /* @__PURE__ */ new Date(),
2784
+ name: this.name,
2785
+ message,
2786
+ level
2787
+ };
2788
+ loggerFunction(JSON.stringify(structuredLog));
2789
+ }, "#structuredLog");
2790
+ __name(_SimpleStructuredLogger, "SimpleStructuredLogger");
2791
+ var SimpleStructuredLogger = _SimpleStructuredLogger;
2792
+ var _logger2, _handler2;
2793
+ var _ZodNamespace = class _ZodNamespace {
2794
+ constructor(opts) {
2795
+ __privateAdd(this, _logger2, void 0);
2796
+ __privateAdd(this, _handler2, void 0);
2797
+ __privateSet(this, _logger2, opts.logger ?? new SimpleStructuredLogger(opts.name));
2798
+ __privateSet(this, _handler2, new ZodSocketMessageHandler({
2799
+ schema: opts.clientMessages,
2800
+ handlers: opts.handlers
2801
+ }));
2802
+ this.io = opts.io;
2803
+ this.namespace = this.io.of(opts.name);
2804
+ this.sender = new ZodMessageSender({
2805
+ schema: opts.serverMessages,
2806
+ sender: async (message) => {
2807
+ return new Promise((resolve, reject) => {
2808
+ try {
2809
+ this.namespace.emit(message.type, message.payload);
2810
+ resolve();
2811
+ } catch (err) {
2812
+ reject(err);
2813
+ }
2814
+ });
2815
+ }
2816
+ });
2817
+ if (opts.preAuth) {
2818
+ this.namespace.use(async (socket, next) => {
2819
+ const logger2 = __privateGet(this, _logger2).child({
2820
+ socketId: socket.id,
2821
+ socketStage: "preAuth"
2822
+ });
2823
+ if (typeof opts.preAuth === "function") {
2824
+ await opts.preAuth(socket, next, logger2);
2825
+ }
2826
+ });
2827
+ }
2828
+ if (opts.authToken) {
2829
+ this.namespace.use((socket, next) => {
2830
+ const logger2 = __privateGet(this, _logger2).child({
2831
+ socketId: socket.id,
2832
+ socketStage: "auth"
2833
+ });
2834
+ const { auth } = socket.handshake;
2835
+ if (!("token" in auth)) {
2836
+ logger2.error("no token");
2837
+ return socket.disconnect(true);
2838
+ }
2839
+ if (auth.token !== opts.authToken) {
2840
+ logger2.error("invalid token");
2841
+ return socket.disconnect(true);
2842
+ }
2843
+ logger2.info("success");
2844
+ next();
2845
+ });
2846
+ }
2847
+ if (opts.postAuth) {
2848
+ this.namespace.use(async (socket, next) => {
2849
+ const logger2 = __privateGet(this, _logger2).child({
2850
+ socketId: socket.id,
2851
+ socketStage: "auth"
2852
+ });
2853
+ if (typeof opts.postAuth === "function") {
2854
+ await opts.postAuth(socket, next, logger2);
2855
+ }
2856
+ });
2857
+ }
2858
+ this.namespace.on("connection", async (socket) => {
2859
+ const logger2 = __privateGet(this, _logger2).child({
2860
+ socketId: socket.id,
2861
+ socketStage: "connection"
2862
+ });
2863
+ logger2.info("connected");
2864
+ __privateGet(this, _handler2).registerHandlers(socket, logger2);
2865
+ socket.on("disconnect", async (reason, description) => {
2866
+ logger2.info("disconnect", {
2867
+ reason,
2868
+ description
2869
+ });
2870
+ if (opts.onDisconnect) {
2871
+ await opts.onDisconnect(socket, reason, description, logger2);
2872
+ }
2873
+ });
2874
+ socket.on("error", async (error) => {
2875
+ logger2.error("error", {
2876
+ error
2877
+ });
2878
+ if (opts.onError) {
2879
+ await opts.onError(socket, error, logger2);
2880
+ }
2881
+ });
2882
+ if (opts.onConnection) {
2883
+ await opts.onConnection(socket, __privateGet(this, _handler2), this.sender, logger2);
2884
+ }
2885
+ });
2886
+ }
2887
+ fetchSockets() {
2888
+ return this.namespace.fetchSockets();
2889
+ }
2890
+ };
2891
+ _logger2 = new WeakMap();
2892
+ _handler2 = new WeakMap();
2893
+ __name(_ZodNamespace, "ZodNamespace");
2894
+ var ZodNamespace = _ZodNamespace;
2895
+ var messageSchema2 = zod.z.object({
2896
+ version: zod.z.literal("v1").default("v1"),
2897
+ type: zod.z.string(),
2898
+ payload: zod.z.unknown()
2899
+ });
2900
+ var _schema5, _handlers3, _sender3, _a;
2901
+ var ZodIpcMessageHandler = (_a = class {
2902
+ constructor(options) {
2903
+ __privateAdd(this, _schema5, void 0);
2904
+ __privateAdd(this, _handlers3, void 0);
2905
+ __privateAdd(this, _sender3, void 0);
2906
+ __privateSet(this, _schema5, options.schema);
2907
+ __privateSet(this, _handlers3, options.handlers);
2908
+ __privateSet(this, _sender3, options.sender);
2909
+ }
2910
+ async handleMessage(message) {
2911
+ const parsedMessage = this.parseMessage(message);
2912
+ if (!__privateGet(this, _handlers3)) {
2913
+ throw new Error("No handlers provided");
2914
+ }
2915
+ const handler = __privateGet(this, _handlers3)[parsedMessage.type];
2916
+ if (!handler) {
2917
+ return;
2918
+ }
2919
+ const ack = await handler(parsedMessage.payload, __privateGet(this, _sender3));
2920
+ return ack;
2921
+ }
2922
+ parseMessage(message) {
2923
+ const parsedMessage = messageSchema2.safeParse(message);
2924
+ if (!parsedMessage.success) {
2925
+ throw new Error(`Failed to parse message: ${JSON.stringify(parsedMessage.error)}`);
2926
+ }
2927
+ const schema = __privateGet(this, _schema5)[parsedMessage.data.type]["message"];
2928
+ if (!schema) {
2929
+ throw new Error(`Unknown message type: ${parsedMessage.data.type}`);
2930
+ }
2931
+ const parsedPayload = schema.safeParse(parsedMessage.data.payload);
2932
+ if (!parsedPayload.success) {
2933
+ throw new Error(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
2934
+ }
2935
+ return {
2936
+ type: parsedMessage.data.type,
2937
+ payload: parsedPayload.data
2938
+ };
2939
+ }
2940
+ }, _schema5 = new WeakMap(), _handlers3 = new WeakMap(), _sender3 = new WeakMap(), __name(_a, "ZodIpcMessageHandler"), _a);
2941
+ var Packet = zod.z.discriminatedUnion("type", [
2942
+ zod.z.object({
2943
+ type: zod.z.literal("CONNECT"),
2944
+ sessionId: zod.z.string().optional()
2945
+ }),
2946
+ zod.z.object({
2947
+ type: zod.z.literal("ACK"),
2948
+ message: zod.z.any(),
2949
+ id: zod.z.number()
2950
+ }),
2951
+ zod.z.object({
2952
+ type: zod.z.literal("EVENT"),
2953
+ message: zod.z.any(),
2954
+ id: zod.z.number().optional()
2955
+ })
2956
+ ]);
2957
+ var _sessionId, _messageCounter, _handler3, _acks, _registerHandlers, registerHandlers_fn, _handlePacket, handlePacket_fn, _sendPacket, sendPacket_fn;
2958
+ var _ZodIpcConnection = class _ZodIpcConnection {
2959
+ constructor(opts) {
2960
+ __privateAdd(this, _registerHandlers);
2961
+ __privateAdd(this, _handlePacket);
2962
+ __privateAdd(this, _sendPacket);
2963
+ __privateAdd(this, _sessionId, void 0);
2964
+ __privateAdd(this, _messageCounter, void 0);
2965
+ __privateAdd(this, _handler3, void 0);
2966
+ __privateAdd(this, _acks, void 0);
2967
+ this.opts = opts;
2968
+ __privateSet(this, _messageCounter, 0);
2969
+ __privateSet(this, _acks, /* @__PURE__ */ new Map());
2970
+ __privateSet(this, _handler3, new ZodIpcMessageHandler({
2971
+ schema: opts.listenSchema,
2972
+ handlers: opts.handlers,
2973
+ sender: {
2974
+ send: this.send.bind(this),
2975
+ sendWithAck: this.sendWithAck.bind(this)
2976
+ }
2977
+ }));
2978
+ __privateMethod(this, _registerHandlers, registerHandlers_fn).call(this);
2979
+ }
2980
+ async connect() {
2981
+ __privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
2982
+ type: "CONNECT"
2983
+ });
2984
+ }
2985
+ async send(type, payload) {
2986
+ const schema = this.opts.emitSchema[type]["message"];
2987
+ if (!schema) {
2988
+ throw new Error(`Unknown message type: ${type}`);
2989
+ }
2990
+ const parsedPayload = schema.safeParse(payload);
2991
+ if (!parsedPayload.success) {
2992
+ throw new ZodSchemaParsedError(parsedPayload.error, payload);
2993
+ }
2994
+ await __privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
2995
+ type: "EVENT",
2996
+ message: {
2997
+ type,
2998
+ payload,
2999
+ version: "v1"
3000
+ }
3001
+ });
3002
+ }
3003
+ async sendWithAck(type, payload, timeoutInMs) {
3004
+ const currentId = __privateWrapper(this, _messageCounter)._++;
3005
+ return new Promise(async (resolve, reject) => {
3006
+ const defaultTimeoutInMs = 2e3;
3007
+ const timeout = setTimeout(() => {
3008
+ reject(JSON.stringify({
3009
+ reason: "sendWithAck() timeout",
3010
+ timeoutInMs: timeoutInMs ?? defaultTimeoutInMs,
3011
+ type,
3012
+ payload
3013
+ }));
3014
+ }, timeoutInMs ?? defaultTimeoutInMs);
3015
+ __privateGet(this, _acks).set(currentId, {
3016
+ resolve,
3017
+ reject,
3018
+ timeout
3019
+ });
3020
+ const schema = this.opts.emitSchema[type]["message"];
3021
+ if (!schema) {
3022
+ clearTimeout(timeout);
3023
+ return reject(`Unknown message type: ${type}`);
3024
+ }
3025
+ const parsedPayload = schema.safeParse(payload);
3026
+ if (!parsedPayload.success) {
3027
+ clearTimeout(timeout);
3028
+ return reject(`Failed to parse message payload: ${JSON.stringify(parsedPayload.error)}`);
3029
+ }
3030
+ await __privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
3031
+ type: "EVENT",
3032
+ message: {
3033
+ type,
3034
+ payload,
3035
+ version: "v1"
3036
+ },
3037
+ id: currentId
3038
+ });
3039
+ });
3040
+ }
3041
+ };
3042
+ _sessionId = new WeakMap();
3043
+ _messageCounter = new WeakMap();
3044
+ _handler3 = new WeakMap();
3045
+ _acks = new WeakMap();
3046
+ _registerHandlers = new WeakSet();
3047
+ registerHandlers_fn = /* @__PURE__ */ __name(async function() {
3048
+ if (!this.opts.process.on) {
3049
+ return;
3050
+ }
3051
+ this.opts.process.on("message", async (message) => {
3052
+ __privateMethod(this, _handlePacket, handlePacket_fn).call(this, message);
3053
+ });
3054
+ }, "#registerHandlers");
3055
+ _handlePacket = new WeakSet();
3056
+ handlePacket_fn = /* @__PURE__ */ __name(async function(packet) {
3057
+ const parsedPacket = Packet.safeParse(packet);
3058
+ if (!parsedPacket.success) {
3059
+ return;
3060
+ }
3061
+ switch (parsedPacket.data.type) {
3062
+ case "ACK": {
3063
+ const ack = __privateGet(this, _acks).get(parsedPacket.data.id);
3064
+ if (!ack) {
3065
+ return;
3066
+ }
3067
+ clearTimeout(ack.timeout);
3068
+ ack.resolve(parsedPacket.data.message);
3069
+ break;
3070
+ }
3071
+ case "CONNECT": {
3072
+ if (!parsedPacket.data.sessionId) {
3073
+ const id = crypto.randomUUID();
3074
+ await __privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
3075
+ type: "CONNECT",
3076
+ sessionId: id
3077
+ });
3078
+ return;
3079
+ }
3080
+ if (__privateGet(this, _sessionId)) {
3081
+ return;
3082
+ }
3083
+ __privateSet(this, _sessionId, parsedPacket.data.sessionId);
3084
+ break;
3085
+ }
3086
+ case "EVENT": {
3087
+ const result = await __privateGet(this, _handler3).handleMessage(parsedPacket.data.message);
3088
+ if (typeof parsedPacket.data.id === "undefined") {
3089
+ return;
3090
+ }
3091
+ await __privateMethod(this, _sendPacket, sendPacket_fn).call(this, {
3092
+ type: "ACK",
3093
+ id: parsedPacket.data.id,
3094
+ message: result
3095
+ });
3096
+ break;
2272
3097
  }
2273
- return this._instance;
2274
- }
2275
- setGlobalClock(clock2) {
2276
- return registerGlobal(API_NAME2, clock2);
2277
- }
2278
- preciseNow() {
2279
- return __privateMethod(this, _getClock, getClock_fn).call(this).preciseNow();
2280
- }
2281
- reset() {
2282
- __privateMethod(this, _getClock, getClock_fn).call(this).reset();
2283
3098
  }
2284
- };
2285
- _getClock = new WeakSet();
2286
- getClock_fn = /* @__PURE__ */ __name(function() {
2287
- return getGlobal(API_NAME2) ?? SIMPLE_CLOCK;
2288
- }, "#getClock");
2289
- __name(_ClockAPI, "ClockAPI");
2290
- var ClockAPI = _ClockAPI;
2291
-
2292
- // src/v3/clock-api.ts
2293
- var clock = ClockAPI.getInstance();
3099
+ }, "#handlePacket");
3100
+ _sendPacket = new WeakSet();
3101
+ sendPacket_fn = /* @__PURE__ */ __name(async function(packet1) {
3102
+ await this.opts.process.send?.(packet1);
3103
+ }, "#sendPacket");
3104
+ __name(_ZodIpcConnection, "ZodIpcConnection");
3105
+ var ZodIpcConnection = _ZodIpcConnection;
2294
3106
  function parseError(error) {
2295
3107
  if (error instanceof Error) {
2296
3108
  return {
@@ -2402,146 +3214,261 @@ function groupTaskMetadataIssuesByTask(tasks, issues) {
2402
3214
  }
2403
3215
  __name(groupTaskMetadataIssuesByTask, "groupTaskMetadataIssuesByTask");
2404
3216
 
2405
- // src/v3/limits.ts
2406
- var OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT = 256;
2407
- var OTEL_LOG_ATTRIBUTE_COUNT_LIMIT = 256;
2408
- var OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;
2409
- var OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;
2410
- var OTEL_SPAN_EVENT_COUNT_LIMIT = 10;
2411
- var OTEL_LINK_COUNT_LIMIT = 2;
2412
- var OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT = 10;
2413
- var OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT = 10;
2414
- var OFFLOAD_IO_PACKET_LENGTH_LIMIT = 128 * 1024;
2415
- function imposeAttributeLimits(attributes) {
2416
- const newAttributes = {};
2417
- for (const [key, value] of Object.entries(attributes)) {
2418
- if (calculateAttributeValueLength(value) > OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT) {
2419
- continue;
2420
- }
2421
- if (Object.keys(newAttributes).length >= OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT) {
2422
- break;
2423
- }
2424
- newAttributes[key] = value;
3217
+ // src/v3/utils/platform.ts
3218
+ var _globalThis = typeof globalThis === "object" ? globalThis : global;
3219
+
3220
+ // src/v3/utils/globals.ts
3221
+ var GLOBAL_TRIGGER_DOT_DEV_KEY = Symbol.for(`dev.trigger.ts.api`);
3222
+ var _global = _globalThis;
3223
+ function registerGlobal(type, instance, allowOverride = false) {
3224
+ const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] ?? {};
3225
+ if (!allowOverride && api[type]) {
3226
+ return false;
2425
3227
  }
2426
- return newAttributes;
3228
+ api[type] = instance;
3229
+ return true;
2427
3230
  }
2428
- __name(imposeAttributeLimits, "imposeAttributeLimits");
2429
- function calculateAttributeValueLength(value) {
2430
- if (value === void 0 || value === null) {
2431
- return 0;
3231
+ __name(registerGlobal, "registerGlobal");
3232
+ function getGlobal(type) {
3233
+ return _global[GLOBAL_TRIGGER_DOT_DEV_KEY]?.[type];
3234
+ }
3235
+ __name(getGlobal, "getGlobal");
3236
+ function unregisterGlobal(type) {
3237
+ const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY];
3238
+ if (api) {
3239
+ delete api[type];
2432
3240
  }
2433
- if (typeof value === "string") {
2434
- return value.length;
3241
+ }
3242
+ __name(unregisterGlobal, "unregisterGlobal");
3243
+
3244
+ // src/v3/runtime/noopRuntimeManager.ts
3245
+ var _NoopRuntimeManager = class _NoopRuntimeManager {
3246
+ disable() {
2435
3247
  }
2436
- if (typeof value === "number") {
2437
- return 8;
3248
+ waitForDuration(ms) {
3249
+ return Promise.resolve();
2438
3250
  }
2439
- if (typeof value === "boolean") {
2440
- return 4;
3251
+ waitUntil(date) {
3252
+ return Promise.resolve();
2441
3253
  }
2442
- if (Array.isArray(value)) {
2443
- return value.reduce((acc, v) => acc + calculateAttributeValueLength(v), 0);
3254
+ waitForTask(params) {
3255
+ return Promise.resolve({
3256
+ ok: false,
3257
+ id: params.id,
3258
+ error: {
3259
+ type: "INTERNAL_ERROR",
3260
+ code: "CONFIGURED_INCORRECTLY"
3261
+ }
3262
+ });
2444
3263
  }
2445
- return 0;
2446
- }
2447
- __name(calculateAttributeValueLength, "calculateAttributeValueLength");
3264
+ waitForBatch(params) {
3265
+ return Promise.resolve({
3266
+ id: params.id,
3267
+ items: []
3268
+ });
3269
+ }
3270
+ };
3271
+ __name(_NoopRuntimeManager, "NoopRuntimeManager");
3272
+ var NoopRuntimeManager = _NoopRuntimeManager;
2448
3273
 
2449
- // src/v3/utils/flattenAttributes.ts
2450
- function flattenAttributes(obj, prefix) {
2451
- const result = {};
2452
- if (!obj) {
2453
- return result;
3274
+ // src/v3/runtime/index.ts
3275
+ var API_NAME = "runtime";
3276
+ var NOOP_RUNTIME_MANAGER = new NoopRuntimeManager();
3277
+ var _getRuntimeManager, getRuntimeManager_fn;
3278
+ var _RuntimeAPI = class _RuntimeAPI {
3279
+ constructor() {
3280
+ __privateAdd(this, _getRuntimeManager);
2454
3281
  }
2455
- if (typeof obj === "string") {
2456
- result[prefix || ""] = obj;
2457
- return result;
3282
+ static getInstance() {
3283
+ if (!this._instance) {
3284
+ this._instance = new _RuntimeAPI();
3285
+ }
3286
+ return this._instance;
2458
3287
  }
2459
- if (typeof obj === "number") {
2460
- result[prefix || ""] = obj;
2461
- return result;
3288
+ waitForDuration(ms) {
3289
+ return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForDuration(ms);
2462
3290
  }
2463
- if (typeof obj === "boolean") {
2464
- result[prefix || ""] = obj;
2465
- return result;
3291
+ waitUntil(date) {
3292
+ return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitUntil(date);
2466
3293
  }
2467
- for (const [key, value] of Object.entries(obj)) {
2468
- const newPrefix = `${prefix ? `${prefix}.` : ""}${key}`;
2469
- if (Array.isArray(value)) {
2470
- for (let i = 0; i < value.length; i++) {
2471
- if (typeof value[i] === "object" && value[i] !== null) {
2472
- Object.assign(result, flattenAttributes(value[i], `${newPrefix}.[${i}]`));
2473
- } else {
2474
- result[`${newPrefix}.[${i}]`] = value[i];
2475
- }
2476
- }
2477
- } else if (isRecord(value)) {
2478
- Object.assign(result, flattenAttributes(value, newPrefix));
2479
- } else {
2480
- if (typeof value === "number" || typeof value === "string" || typeof value === "boolean") {
2481
- result[newPrefix] = value;
2482
- }
2483
- }
3294
+ waitForTask(params) {
3295
+ return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForTask(params);
3296
+ }
3297
+ waitForBatch(params) {
3298
+ return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForBatch(params);
3299
+ }
3300
+ setGlobalRuntimeManager(runtimeManager) {
3301
+ return registerGlobal(API_NAME, runtimeManager);
3302
+ }
3303
+ disable() {
3304
+ __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).disable();
3305
+ unregisterGlobal(API_NAME);
3306
+ }
3307
+ };
3308
+ _getRuntimeManager = new WeakSet();
3309
+ getRuntimeManager_fn = /* @__PURE__ */ __name(function() {
3310
+ return getGlobal(API_NAME) ?? NOOP_RUNTIME_MANAGER;
3311
+ }, "#getRuntimeManager");
3312
+ __name(_RuntimeAPI, "RuntimeAPI");
3313
+ var RuntimeAPI = _RuntimeAPI;
3314
+
3315
+ // src/v3/runtime-api.ts
3316
+ var runtime = RuntimeAPI.getInstance();
3317
+ function iconStringForSeverity(severityNumber) {
3318
+ switch (severityNumber) {
3319
+ case apiLogs.SeverityNumber.UNSPECIFIED:
3320
+ return void 0;
3321
+ case apiLogs.SeverityNumber.TRACE:
3322
+ case apiLogs.SeverityNumber.TRACE2:
3323
+ case apiLogs.SeverityNumber.TRACE3:
3324
+ case apiLogs.SeverityNumber.TRACE4:
3325
+ return "trace";
3326
+ case apiLogs.SeverityNumber.DEBUG:
3327
+ case apiLogs.SeverityNumber.DEBUG2:
3328
+ case apiLogs.SeverityNumber.DEBUG3:
3329
+ case apiLogs.SeverityNumber.DEBUG4:
3330
+ return "debug";
3331
+ case apiLogs.SeverityNumber.INFO:
3332
+ case apiLogs.SeverityNumber.INFO2:
3333
+ case apiLogs.SeverityNumber.INFO3:
3334
+ case apiLogs.SeverityNumber.INFO4:
3335
+ return "info";
3336
+ case apiLogs.SeverityNumber.WARN:
3337
+ case apiLogs.SeverityNumber.WARN2:
3338
+ case apiLogs.SeverityNumber.WARN3:
3339
+ case apiLogs.SeverityNumber.WARN4:
3340
+ return "warn";
3341
+ case apiLogs.SeverityNumber.ERROR:
3342
+ case apiLogs.SeverityNumber.ERROR2:
3343
+ case apiLogs.SeverityNumber.ERROR3:
3344
+ case apiLogs.SeverityNumber.ERROR4:
3345
+ return "error";
3346
+ case apiLogs.SeverityNumber.FATAL:
3347
+ case apiLogs.SeverityNumber.FATAL2:
3348
+ case apiLogs.SeverityNumber.FATAL3:
3349
+ case apiLogs.SeverityNumber.FATAL4:
3350
+ return "fatal";
2484
3351
  }
2485
- return result;
2486
- }
2487
- __name(flattenAttributes, "flattenAttributes");
2488
- function isRecord(value) {
2489
- return value !== null && typeof value === "object" && !Array.isArray(value);
2490
3352
  }
2491
- __name(isRecord, "isRecord");
2492
- function unflattenAttributes(obj) {
2493
- if (typeof obj !== "object" || obj === null || Array.isArray(obj)) {
2494
- return obj;
3353
+ __name(iconStringForSeverity, "iconStringForSeverity");
3354
+ var _SimpleClock = class _SimpleClock {
3355
+ preciseNow() {
3356
+ const now = new preciseDate.PreciseDate();
3357
+ const nowStruct = now.toStruct();
3358
+ return [
3359
+ nowStruct.seconds,
3360
+ nowStruct.nanos
3361
+ ];
2495
3362
  }
2496
- const result = {};
2497
- for (const [key, value] of Object.entries(obj)) {
2498
- const parts = key.split(".").reduce((acc, part) => {
2499
- if (detectIsArrayIndex(part)) {
2500
- acc.push(part);
2501
- } else {
2502
- acc.push(...part.split(/\.\[(.*?)\]/).filter(Boolean));
2503
- }
2504
- return acc;
2505
- }, []);
2506
- let current = result;
2507
- for (let i = 0; i < parts.length - 1; i++) {
2508
- const part = parts[i];
2509
- const isArray = detectIsArrayIndex(part);
2510
- const cleanPart = isArray ? part.substring(1, part.length - 1) : part;
2511
- const nextIsArray = detectIsArrayIndex(parts[i + 1]);
2512
- if (!current[cleanPart]) {
2513
- current[cleanPart] = nextIsArray ? [] : {};
2514
- }
2515
- current = current[cleanPart];
3363
+ reset() {
3364
+ }
3365
+ };
3366
+ __name(_SimpleClock, "SimpleClock");
3367
+ var SimpleClock = _SimpleClock;
3368
+
3369
+ // src/v3/clock/index.ts
3370
+ var API_NAME2 = "clock";
3371
+ var SIMPLE_CLOCK = new SimpleClock();
3372
+ var _getClock, getClock_fn;
3373
+ var _ClockAPI = class _ClockAPI {
3374
+ constructor() {
3375
+ __privateAdd(this, _getClock);
3376
+ }
3377
+ static getInstance() {
3378
+ if (!this._instance) {
3379
+ this._instance = new _ClockAPI();
2516
3380
  }
2517
- const lastPart = parts[parts.length - 1];
2518
- const cleanLastPart = detectIsArrayIndex(lastPart) ? parseInt(lastPart.substring(1, lastPart.length - 1), 10) : lastPart;
2519
- current[cleanLastPart] = value;
3381
+ return this._instance;
3382
+ }
3383
+ setGlobalClock(clock2) {
3384
+ return registerGlobal(API_NAME2, clock2);
3385
+ }
3386
+ preciseNow() {
3387
+ return __privateMethod(this, _getClock, getClock_fn).call(this).preciseNow();
3388
+ }
3389
+ reset() {
3390
+ __privateMethod(this, _getClock, getClock_fn).call(this).reset();
3391
+ }
3392
+ };
3393
+ _getClock = new WeakSet();
3394
+ getClock_fn = /* @__PURE__ */ __name(function() {
3395
+ return getGlobal(API_NAME2) ?? SIMPLE_CLOCK;
3396
+ }, "#getClock");
3397
+ __name(_ClockAPI, "ClockAPI");
3398
+ var ClockAPI = _ClockAPI;
3399
+
3400
+ // src/v3/clock-api.ts
3401
+ var clock = ClockAPI.getInstance();
3402
+
3403
+ // src/v3/logger/taskLogger.ts
3404
+ var logLevels = [
3405
+ "none",
3406
+ "error",
3407
+ "warn",
3408
+ "log",
3409
+ "info",
3410
+ "debug"
3411
+ ];
3412
+ var _emitLog, emitLog_fn, _getTimestampInHrTime, getTimestampInHrTime_fn;
3413
+ var _OtelTaskLogger = class _OtelTaskLogger {
3414
+ constructor(_config) {
3415
+ __privateAdd(this, _emitLog);
3416
+ __privateAdd(this, _getTimestampInHrTime);
3417
+ this._config = _config;
3418
+ this._level = logLevels.indexOf(_config.level);
2520
3419
  }
2521
- return result;
2522
- }
2523
- __name(unflattenAttributes, "unflattenAttributes");
2524
- function detectIsArrayIndex(key) {
2525
- const match = key.match(/^\[(\d+)\]$/);
2526
- if (match) {
2527
- return true;
3420
+ debug(message, properties) {
3421
+ if (this._level < 5)
3422
+ return;
3423
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "debug", apiLogs.SeverityNumber.DEBUG, properties);
2528
3424
  }
2529
- return false;
2530
- }
2531
- __name(detectIsArrayIndex, "detectIsArrayIndex");
2532
- function primitiveValueOrflattenedAttributes(obj, prefix) {
2533
- if (typeof obj === "string" || typeof obj === "number" || typeof obj === "boolean" || obj === null || obj === void 0) {
2534
- return obj;
3425
+ log(message, properties) {
3426
+ if (this._level < 3)
3427
+ return;
3428
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "log", apiLogs.SeverityNumber.INFO, properties);
2535
3429
  }
2536
- const attributes = flattenAttributes(obj, prefix);
2537
- if (prefix !== void 0 && typeof attributes[prefix] !== "undefined" && attributes[prefix] !== null) {
2538
- return attributes[prefix];
3430
+ info(message, properties) {
3431
+ if (this._level < 4)
3432
+ return;
3433
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "info", apiLogs.SeverityNumber.INFO, properties);
2539
3434
  }
2540
- return attributes;
2541
- }
2542
- __name(primitiveValueOrflattenedAttributes, "primitiveValueOrflattenedAttributes");
2543
-
2544
- // src/v3/logger/taskLogger.ts
3435
+ warn(message, properties) {
3436
+ if (this._level < 2)
3437
+ return;
3438
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "warn", apiLogs.SeverityNumber.WARN, properties);
3439
+ }
3440
+ error(message, properties) {
3441
+ if (this._level < 1)
3442
+ return;
3443
+ __privateMethod(this, _emitLog, emitLog_fn).call(this, message, __privateMethod(this, _getTimestampInHrTime, getTimestampInHrTime_fn).call(this), "error", apiLogs.SeverityNumber.ERROR, properties);
3444
+ }
3445
+ trace(name, fn, options) {
3446
+ return this._config.tracer.startActiveSpan(name, fn, options);
3447
+ }
3448
+ };
3449
+ _emitLog = new WeakSet();
3450
+ emitLog_fn = /* @__PURE__ */ __name(function(message, timestamp, severityText, severityNumber, properties) {
3451
+ let attributes = {
3452
+ ...flattenAttributes(safeJsonProcess(properties))
3453
+ };
3454
+ const icon = iconStringForSeverity(severityNumber);
3455
+ if (icon !== void 0) {
3456
+ attributes[SemanticInternalAttributes.STYLE_ICON] = icon;
3457
+ }
3458
+ this._config.logger.emit({
3459
+ severityNumber,
3460
+ severityText,
3461
+ body: message,
3462
+ attributes,
3463
+ timestamp
3464
+ });
3465
+ }, "#emitLog");
3466
+ _getTimestampInHrTime = new WeakSet();
3467
+ getTimestampInHrTime_fn = /* @__PURE__ */ __name(function() {
3468
+ return clock.preciseNow();
3469
+ }, "#getTimestampInHrTime");
3470
+ __name(_OtelTaskLogger, "OtelTaskLogger");
3471
+ var OtelTaskLogger = _OtelTaskLogger;
2545
3472
  var _NoopTaskLogger = class _NoopTaskLogger {
2546
3473
  debug() {
2547
3474
  }
@@ -2559,6 +3486,25 @@ var _NoopTaskLogger = class _NoopTaskLogger {
2559
3486
  };
2560
3487
  __name(_NoopTaskLogger, "NoopTaskLogger");
2561
3488
  var NoopTaskLogger = _NoopTaskLogger;
3489
+ function safeJsonProcess(value) {
3490
+ try {
3491
+ return JSON.parse(JSON.stringify(value, jsonErrorReplacer));
3492
+ } catch {
3493
+ return value;
3494
+ }
3495
+ }
3496
+ __name(safeJsonProcess, "safeJsonProcess");
3497
+ function jsonErrorReplacer(key, value) {
3498
+ if (value instanceof Error) {
3499
+ return {
3500
+ name: value.name,
3501
+ message: value.message,
3502
+ stack: value.stack
3503
+ };
3504
+ }
3505
+ return value;
3506
+ }
3507
+ __name(jsonErrorReplacer, "jsonErrorReplacer");
2562
3508
 
2563
3509
  // src/v3/logger/index.ts
2564
3510
  var API_NAME3 = "logger";
@@ -2609,80 +3555,6 @@ var LoggerAPI = _LoggerAPI;
2609
3555
  // src/v3/logger-api.ts
2610
3556
  var logger = LoggerAPI.getInstance();
2611
3557
 
2612
- // src/v3/runtime/noopRuntimeManager.ts
2613
- var _NoopRuntimeManager = class _NoopRuntimeManager {
2614
- disable() {
2615
- }
2616
- waitForDuration(ms) {
2617
- return Promise.resolve();
2618
- }
2619
- waitUntil(date) {
2620
- return Promise.resolve();
2621
- }
2622
- waitForTask(params) {
2623
- return Promise.resolve({
2624
- ok: false,
2625
- id: params.id,
2626
- error: {
2627
- type: "INTERNAL_ERROR",
2628
- code: "CONFIGURED_INCORRECTLY"
2629
- }
2630
- });
2631
- }
2632
- waitForBatch(params) {
2633
- return Promise.resolve({
2634
- id: params.id,
2635
- items: []
2636
- });
2637
- }
2638
- };
2639
- __name(_NoopRuntimeManager, "NoopRuntimeManager");
2640
- var NoopRuntimeManager = _NoopRuntimeManager;
2641
-
2642
- // src/v3/runtime/index.ts
2643
- var API_NAME4 = "runtime";
2644
- var NOOP_RUNTIME_MANAGER = new NoopRuntimeManager();
2645
- var _getRuntimeManager, getRuntimeManager_fn;
2646
- var _RuntimeAPI = class _RuntimeAPI {
2647
- constructor() {
2648
- __privateAdd(this, _getRuntimeManager);
2649
- }
2650
- static getInstance() {
2651
- if (!this._instance) {
2652
- this._instance = new _RuntimeAPI();
2653
- }
2654
- return this._instance;
2655
- }
2656
- waitForDuration(ms) {
2657
- return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForDuration(ms);
2658
- }
2659
- waitUntil(date) {
2660
- return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitUntil(date);
2661
- }
2662
- waitForTask(params) {
2663
- return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForTask(params);
2664
- }
2665
- waitForBatch(params) {
2666
- return __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).waitForBatch(params);
2667
- }
2668
- setGlobalRuntimeManager(runtimeManager) {
2669
- return registerGlobal(API_NAME4, runtimeManager);
2670
- }
2671
- disable() {
2672
- __privateMethod(this, _getRuntimeManager, getRuntimeManager_fn).call(this).disable();
2673
- unregisterGlobal(API_NAME4);
2674
- }
2675
- };
2676
- _getRuntimeManager = new WeakSet();
2677
- getRuntimeManager_fn = /* @__PURE__ */ __name(function() {
2678
- return getGlobal(API_NAME4) ?? NOOP_RUNTIME_MANAGER;
2679
- }, "#getRuntimeManager");
2680
- __name(_RuntimeAPI, "RuntimeAPI");
2681
- var RuntimeAPI = _RuntimeAPI;
2682
-
2683
- // src/v3/runtime-api.ts
2684
- var runtime = RuntimeAPI.getInstance();
2685
-
2686
3558
  // src/v3/task-catalog/noopTaskCatalog.ts
2687
3559
  var _NoopTaskCatalog = class _NoopTaskCatalog {
2688
3560
  registerTaskMetadata(task) {
@@ -2707,7 +3579,7 @@ __name(_NoopTaskCatalog, "NoopTaskCatalog");
2707
3579
  var NoopTaskCatalog = _NoopTaskCatalog;
2708
3580
 
2709
3581
  // src/v3/task-catalog/index.ts
2710
- var API_NAME5 = "task-catalog";
3582
+ var API_NAME4 = "task-catalog";
2711
3583
  var NOOP_TASK_CATALOG = new NoopTaskCatalog();
2712
3584
  var _getCatalog, getCatalog_fn;
2713
3585
  var _TaskCatalogAPI = class _TaskCatalogAPI {
@@ -2721,10 +3593,10 @@ var _TaskCatalogAPI = class _TaskCatalogAPI {
2721
3593
  return this._instance;
2722
3594
  }
2723
3595
  setGlobalTaskCatalog(taskCatalog2) {
2724
- return registerGlobal(API_NAME5, taskCatalog2);
3596
+ return registerGlobal(API_NAME4, taskCatalog2);
2725
3597
  }
2726
3598
  disable() {
2727
- unregisterGlobal(API_NAME5);
3599
+ unregisterGlobal(API_NAME4);
2728
3600
  }
2729
3601
  registerTaskMetadata(task) {
2730
3602
  __privateMethod(this, _getCatalog, getCatalog_fn).call(this).registerTaskMetadata(task);
@@ -2747,13 +3619,57 @@ var _TaskCatalogAPI = class _TaskCatalogAPI {
2747
3619
  };
2748
3620
  _getCatalog = new WeakSet();
2749
3621
  getCatalog_fn = /* @__PURE__ */ __name(function() {
2750
- return getGlobal(API_NAME5) ?? NOOP_TASK_CATALOG;
3622
+ return getGlobal(API_NAME4) ?? NOOP_TASK_CATALOG;
2751
3623
  }, "#getCatalog");
2752
3624
  __name(_TaskCatalogAPI, "TaskCatalogAPI");
2753
3625
  var TaskCatalogAPI = _TaskCatalogAPI;
2754
3626
 
2755
3627
  // src/v3/task-catalog-api.ts
2756
3628
  var taskCatalog = TaskCatalogAPI.getInstance();
3629
+
3630
+ // src/v3/limits.ts
3631
+ var OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT = 256;
3632
+ var OTEL_LOG_ATTRIBUTE_COUNT_LIMIT = 256;
3633
+ var OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;
3634
+ var OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT = 1028;
3635
+ var OTEL_SPAN_EVENT_COUNT_LIMIT = 10;
3636
+ var OTEL_LINK_COUNT_LIMIT = 2;
3637
+ var OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT = 10;
3638
+ var OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT = 10;
3639
+ var OFFLOAD_IO_PACKET_LENGTH_LIMIT = 128 * 1024;
3640
+ function imposeAttributeLimits(attributes) {
3641
+ const newAttributes = {};
3642
+ for (const [key, value] of Object.entries(attributes)) {
3643
+ if (calculateAttributeValueLength(value) > OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT) {
3644
+ continue;
3645
+ }
3646
+ if (Object.keys(newAttributes).length >= OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT) {
3647
+ break;
3648
+ }
3649
+ newAttributes[key] = value;
3650
+ }
3651
+ return newAttributes;
3652
+ }
3653
+ __name(imposeAttributeLimits, "imposeAttributeLimits");
3654
+ function calculateAttributeValueLength(value) {
3655
+ if (value === void 0 || value === null) {
3656
+ return 0;
3657
+ }
3658
+ if (typeof value === "string") {
3659
+ return value.length;
3660
+ }
3661
+ if (typeof value === "number") {
3662
+ return 8;
3663
+ }
3664
+ if (typeof value === "boolean") {
3665
+ return 4;
3666
+ }
3667
+ if (Array.isArray(value)) {
3668
+ return value.reduce((acc, v) => acc + calculateAttributeValueLength(v), 0);
3669
+ }
3670
+ return 0;
3671
+ }
3672
+ __name(calculateAttributeValueLength, "calculateAttributeValueLength");
2757
3673
  function dateDifference(date1, date2) {
2758
3674
  return Math.abs(date1.getTime() - date2.getTime());
2759
3675
  }
@@ -2795,39 +3711,256 @@ function formatDurationMilliseconds(milliseconds, options) {
2795
3711
  if (!options) {
2796
3712
  return duration;
2797
3713
  }
2798
- switch (options.style) {
2799
- case "short":
2800
- duration = duration.replace(" milliseconds", "ms");
2801
- duration = duration.replace(" millisecond", "ms");
2802
- duration = duration.replace(" seconds", "s");
2803
- duration = duration.replace(" second", "s");
2804
- duration = duration.replace(" minutes", "m");
2805
- duration = duration.replace(" minute", "m");
2806
- duration = duration.replace(" hours", "h");
2807
- duration = duration.replace(" hour", "h");
2808
- duration = duration.replace(" days", "d");
2809
- duration = duration.replace(" day", "d");
2810
- duration = duration.replace(" weeks", "w");
2811
- duration = duration.replace(" week", "w");
2812
- duration = duration.replace(" months", "mo");
2813
- duration = duration.replace(" month", "mo");
2814
- duration = duration.replace(" years", "y");
2815
- duration = duration.replace(" year", "y");
3714
+ switch (options.style) {
3715
+ case "short":
3716
+ duration = duration.replace(" milliseconds", "ms");
3717
+ duration = duration.replace(" millisecond", "ms");
3718
+ duration = duration.replace(" seconds", "s");
3719
+ duration = duration.replace(" second", "s");
3720
+ duration = duration.replace(" minutes", "m");
3721
+ duration = duration.replace(" minute", "m");
3722
+ duration = duration.replace(" hours", "h");
3723
+ duration = duration.replace(" hour", "h");
3724
+ duration = duration.replace(" days", "d");
3725
+ duration = duration.replace(" day", "d");
3726
+ duration = duration.replace(" weeks", "w");
3727
+ duration = duration.replace(" week", "w");
3728
+ duration = duration.replace(" months", "mo");
3729
+ duration = duration.replace(" month", "mo");
3730
+ duration = duration.replace(" years", "y");
3731
+ duration = duration.replace(" year", "y");
3732
+ }
3733
+ return duration;
3734
+ }
3735
+ __name(formatDurationMilliseconds, "formatDurationMilliseconds");
3736
+ function formatDurationInDays(milliseconds) {
3737
+ let duration = humanizeDuration__default.default(milliseconds, {
3738
+ maxDecimalPoints: 0,
3739
+ largest: 2,
3740
+ units: [
3741
+ "d"
3742
+ ]
3743
+ });
3744
+ return duration;
3745
+ }
3746
+ __name(formatDurationInDays, "formatDurationInDays");
3747
+ async function unboundedTimeout(delay = 0, value, options) {
3748
+ const maxDelay = 2147483647;
3749
+ const fullTimeouts = Math.floor(delay / maxDelay);
3750
+ const remainingDelay = delay % maxDelay;
3751
+ let lastTimeoutResult = await promises.setTimeout(remainingDelay, value, options);
3752
+ for (let i = 0; i < fullTimeouts; i++) {
3753
+ lastTimeoutResult = await promises.setTimeout(maxDelay, value, options);
3754
+ }
3755
+ return lastTimeoutResult;
3756
+ }
3757
+ __name(unboundedTimeout, "unboundedTimeout");
3758
+
3759
+ // src/v3/runtime/devRuntimeManager.ts
3760
+ var _DevRuntimeManager = class _DevRuntimeManager {
3761
+ constructor() {
3762
+ __publicField(this, "_taskWaits", /* @__PURE__ */ new Map());
3763
+ __publicField(this, "_batchWaits", /* @__PURE__ */ new Map());
3764
+ __publicField(this, "_pendingCompletionNotifications", /* @__PURE__ */ new Map());
3765
+ }
3766
+ disable() {
3767
+ }
3768
+ async waitForDuration(ms) {
3769
+ await unboundedTimeout(ms);
3770
+ }
3771
+ async waitUntil(date) {
3772
+ return this.waitForDuration(date.getTime() - Date.now());
3773
+ }
3774
+ async waitForTask(params) {
3775
+ const pendingCompletion = this._pendingCompletionNotifications.get(params.id);
3776
+ if (pendingCompletion) {
3777
+ this._pendingCompletionNotifications.delete(params.id);
3778
+ return pendingCompletion;
3779
+ }
3780
+ const promise = new Promise((resolve) => {
3781
+ this._taskWaits.set(params.id, {
3782
+ resolve
3783
+ });
3784
+ });
3785
+ return await promise;
3786
+ }
3787
+ async waitForBatch(params) {
3788
+ if (!params.runs.length) {
3789
+ return Promise.resolve({
3790
+ id: params.id,
3791
+ items: []
3792
+ });
3793
+ }
3794
+ const promise = Promise.all(params.runs.map((runId) => {
3795
+ return new Promise((resolve, reject) => {
3796
+ const pendingCompletion = this._pendingCompletionNotifications.get(runId);
3797
+ if (pendingCompletion) {
3798
+ this._pendingCompletionNotifications.delete(runId);
3799
+ resolve(pendingCompletion);
3800
+ return;
3801
+ }
3802
+ this._taskWaits.set(runId, {
3803
+ resolve
3804
+ });
3805
+ });
3806
+ }));
3807
+ const results = await promise;
3808
+ return {
3809
+ id: params.id,
3810
+ items: results
3811
+ };
3812
+ }
3813
+ resumeTask(completion, execution) {
3814
+ const wait = this._taskWaits.get(execution.run.id);
3815
+ if (!wait) {
3816
+ this._pendingCompletionNotifications.set(execution.run.id, completion);
3817
+ return;
3818
+ }
3819
+ wait.resolve(completion);
3820
+ this._taskWaits.delete(execution.run.id);
3821
+ }
3822
+ };
3823
+ __name(_DevRuntimeManager, "DevRuntimeManager");
3824
+ var DevRuntimeManager = _DevRuntimeManager;
3825
+
3826
+ // src/v3/runtime/prodRuntimeManager.ts
3827
+ var _ProdRuntimeManager = class _ProdRuntimeManager {
3828
+ constructor(ipc, options = {}) {
3829
+ this.ipc = ipc;
3830
+ this.options = options;
3831
+ this._taskWaits = /* @__PURE__ */ new Map();
3832
+ this._batchWaits = /* @__PURE__ */ new Map();
3833
+ }
3834
+ disable() {
3835
+ }
3836
+ async waitForDuration(ms) {
3837
+ const now = Date.now();
3838
+ const resolveAfterDuration = unboundedTimeout(ms, "duration");
3839
+ if (ms <= this.waitThresholdInMs) {
3840
+ await resolveAfterDuration;
3841
+ return;
3842
+ }
3843
+ const waitForRestore = new Promise((resolve, reject) => {
3844
+ this._waitForRestore = {
3845
+ resolve,
3846
+ reject
3847
+ };
3848
+ });
3849
+ const { willCheckpointAndRestore } = await this.ipc.sendWithAck("WAIT_FOR_DURATION", {
3850
+ ms,
3851
+ now
3852
+ });
3853
+ if (!willCheckpointAndRestore) {
3854
+ await resolveAfterDuration;
3855
+ return;
3856
+ }
3857
+ this.ipc.send("READY_FOR_CHECKPOINT", {});
3858
+ await Promise.race([
3859
+ waitForRestore,
3860
+ resolveAfterDuration
3861
+ ]);
3862
+ this.ipc.send("CANCEL_CHECKPOINT", {});
3863
+ }
3864
+ resumeAfterRestore() {
3865
+ if (!this._waitForRestore) {
3866
+ return;
3867
+ }
3868
+ clock.reset();
3869
+ this._waitForRestore.resolve("restore");
3870
+ this._waitForRestore = void 0;
3871
+ }
3872
+ async waitUntil(date) {
3873
+ return this.waitForDuration(date.getTime() - Date.now());
3874
+ }
3875
+ async waitForTask(params) {
3876
+ const promise = new Promise((resolve) => {
3877
+ this._taskWaits.set(params.id, {
3878
+ resolve
3879
+ });
3880
+ });
3881
+ await this.ipc.send("WAIT_FOR_TASK", {
3882
+ friendlyId: params.id
3883
+ });
3884
+ const result = await promise;
3885
+ clock.reset();
3886
+ return result;
3887
+ }
3888
+ async waitForBatch(params) {
3889
+ if (!params.runs.length) {
3890
+ return Promise.resolve({
3891
+ id: params.id,
3892
+ items: []
3893
+ });
3894
+ }
3895
+ const promise = Promise.all(params.runs.map((runId) => {
3896
+ return new Promise((resolve, reject) => {
3897
+ this._taskWaits.set(runId, {
3898
+ resolve
3899
+ });
3900
+ });
3901
+ }));
3902
+ await this.ipc.send("WAIT_FOR_BATCH", {
3903
+ batchFriendlyId: params.id,
3904
+ runFriendlyIds: params.runs
3905
+ });
3906
+ const results = await promise;
3907
+ clock.reset();
3908
+ return {
3909
+ id: params.id,
3910
+ items: results
3911
+ };
3912
+ }
3913
+ resumeTask(completion, execution) {
3914
+ const wait = this._taskWaits.get(execution.run.id);
3915
+ if (!wait) {
3916
+ return;
3917
+ }
3918
+ wait.resolve(completion);
3919
+ this._taskWaits.delete(execution.run.id);
3920
+ }
3921
+ get waitThresholdInMs() {
3922
+ return this.options.waitThresholdInMs ?? 3e4;
3923
+ }
3924
+ };
3925
+ __name(_ProdRuntimeManager, "ProdRuntimeManager");
3926
+ var ProdRuntimeManager = _ProdRuntimeManager;
3927
+ var _originClockTime, originClockTime_get, _originPreciseDate, originPreciseDate_get;
3928
+ var _PreciseWallClock = class _PreciseWallClock {
3929
+ constructor(options = {}) {
3930
+ __privateAdd(this, _originClockTime);
3931
+ __privateAdd(this, _originPreciseDate);
3932
+ this._origin = {
3933
+ clockTime: options.origin ?? process.hrtime(),
3934
+ preciseDate: options.now ?? new preciseDate.PreciseDate()
3935
+ };
3936
+ }
3937
+ preciseNow() {
3938
+ const elapsedHrTime = process.hrtime(__privateGet(this, _originClockTime, originClockTime_get));
3939
+ const elapsedNanoseconds = BigInt(elapsedHrTime[0]) * BigInt(1e9) + BigInt(elapsedHrTime[1]);
3940
+ const preciseDate$1 = new preciseDate.PreciseDate(__privateGet(this, _originPreciseDate, originPreciseDate_get).getFullTime() + elapsedNanoseconds);
3941
+ const dateStruct = preciseDate$1.toStruct();
3942
+ return [
3943
+ dateStruct.seconds,
3944
+ dateStruct.nanos
3945
+ ];
3946
+ }
3947
+ reset() {
3948
+ this._origin = {
3949
+ clockTime: process.hrtime(),
3950
+ preciseDate: new preciseDate.PreciseDate()
3951
+ };
2816
3952
  }
2817
- return duration;
2818
- }
2819
- __name(formatDurationMilliseconds, "formatDurationMilliseconds");
2820
- function formatDurationInDays(milliseconds) {
2821
- let duration = humanizeDuration__default.default(milliseconds, {
2822
- maxDecimalPoints: 0,
2823
- largest: 2,
2824
- units: [
2825
- "d"
2826
- ]
2827
- });
2828
- return duration;
2829
- }
2830
- __name(formatDurationInDays, "formatDurationInDays");
3953
+ };
3954
+ _originClockTime = new WeakSet();
3955
+ originClockTime_get = /* @__PURE__ */ __name(function() {
3956
+ return this._origin.clockTime;
3957
+ }, "#originClockTime");
3958
+ _originPreciseDate = new WeakSet();
3959
+ originPreciseDate_get = /* @__PURE__ */ __name(function() {
3960
+ return this._origin.preciseDate;
3961
+ }, "#originPreciseDate");
3962
+ __name(_PreciseWallClock, "PreciseWallClock");
3963
+ var PreciseWallClock = _PreciseWallClock;
2831
3964
  var _TriggerTracer = class _TriggerTracer {
2832
3965
  constructor(_config) {
2833
3966
  this._config = _config;
@@ -2899,6 +4032,146 @@ var _TriggerTracer = class _TriggerTracer {
2899
4032
  };
2900
4033
  __name(_TriggerTracer, "TriggerTracer");
2901
4034
  var TriggerTracer = _TriggerTracer;
4035
+ var _handleLog, handleLog_fn, _getTimestampInHrTime2, getTimestampInHrTime_fn2, _getAttributes, getAttributes_fn;
4036
+ var _ConsoleInterceptor = class _ConsoleInterceptor {
4037
+ constructor(logger2, sendToStdIO) {
4038
+ __privateAdd(this, _handleLog);
4039
+ __privateAdd(this, _getTimestampInHrTime2);
4040
+ __privateAdd(this, _getAttributes);
4041
+ this.logger = logger2;
4042
+ this.sendToStdIO = sendToStdIO;
4043
+ }
4044
+ // Intercept the console and send logs to the OpenTelemetry logger
4045
+ // during the execution of the callback
4046
+ async intercept(console2, callback) {
4047
+ const originalConsole = {
4048
+ log: console2.log,
4049
+ info: console2.info,
4050
+ warn: console2.warn,
4051
+ error: console2.error,
4052
+ debug: console2.debug
4053
+ };
4054
+ console2.log = this.log.bind(this);
4055
+ console2.info = this.info.bind(this);
4056
+ console2.warn = this.warn.bind(this);
4057
+ console2.error = this.error.bind(this);
4058
+ console2.debug = this.debug.bind(this);
4059
+ try {
4060
+ return await callback();
4061
+ } finally {
4062
+ console2.log = originalConsole.log;
4063
+ console2.info = originalConsole.info;
4064
+ console2.warn = originalConsole.warn;
4065
+ console2.error = originalConsole.error;
4066
+ console2.debug = originalConsole.debug;
4067
+ }
4068
+ }
4069
+ debug(...args) {
4070
+ __privateMethod(this, _handleLog, handleLog_fn).call(this, apiLogs.SeverityNumber.DEBUG, __privateMethod(this, _getTimestampInHrTime2, getTimestampInHrTime_fn2).call(this), "Debug", ...args);
4071
+ }
4072
+ log(...args) {
4073
+ __privateMethod(this, _handleLog, handleLog_fn).call(this, apiLogs.SeverityNumber.INFO, __privateMethod(this, _getTimestampInHrTime2, getTimestampInHrTime_fn2).call(this), "Log", ...args);
4074
+ }
4075
+ info(...args) {
4076
+ __privateMethod(this, _handleLog, handleLog_fn).call(this, apiLogs.SeverityNumber.INFO, __privateMethod(this, _getTimestampInHrTime2, getTimestampInHrTime_fn2).call(this), "Info", ...args);
4077
+ }
4078
+ warn(...args) {
4079
+ __privateMethod(this, _handleLog, handleLog_fn).call(this, apiLogs.SeverityNumber.WARN, __privateMethod(this, _getTimestampInHrTime2, getTimestampInHrTime_fn2).call(this), "Warn", ...args);
4080
+ }
4081
+ error(...args) {
4082
+ __privateMethod(this, _handleLog, handleLog_fn).call(this, apiLogs.SeverityNumber.ERROR, __privateMethod(this, _getTimestampInHrTime2, getTimestampInHrTime_fn2).call(this), "Error", ...args);
4083
+ }
4084
+ };
4085
+ _handleLog = new WeakSet();
4086
+ handleLog_fn = /* @__PURE__ */ __name(function(severityNumber, timestamp, severityText, ...args) {
4087
+ const body = util__default.default.format(...args);
4088
+ if (this.sendToStdIO) {
4089
+ if (severityNumber === apiLogs.SeverityNumber.ERROR) {
4090
+ process.stderr.write(body);
4091
+ } else {
4092
+ process.stdout.write(body);
4093
+ }
4094
+ }
4095
+ const parsed = tryParseJSON(body);
4096
+ if (parsed.ok) {
4097
+ this.logger.emit({
4098
+ severityNumber,
4099
+ severityText,
4100
+ body: getLogMessage(parsed.value, severityText),
4101
+ attributes: {
4102
+ ...__privateMethod(this, _getAttributes, getAttributes_fn).call(this, severityNumber),
4103
+ ...flattenAttributes(parsed.value)
4104
+ },
4105
+ timestamp
4106
+ });
4107
+ return;
4108
+ }
4109
+ this.logger.emit({
4110
+ severityNumber,
4111
+ severityText,
4112
+ body,
4113
+ attributes: __privateMethod(this, _getAttributes, getAttributes_fn).call(this, severityNumber),
4114
+ timestamp
4115
+ });
4116
+ }, "#handleLog");
4117
+ _getTimestampInHrTime2 = new WeakSet();
4118
+ getTimestampInHrTime_fn2 = /* @__PURE__ */ __name(function() {
4119
+ return clock.preciseNow();
4120
+ }, "#getTimestampInHrTime");
4121
+ _getAttributes = new WeakSet();
4122
+ getAttributes_fn = /* @__PURE__ */ __name(function(severityNumber1) {
4123
+ const icon = iconStringForSeverity(severityNumber1);
4124
+ let result = {};
4125
+ if (icon !== void 0) {
4126
+ result[SemanticInternalAttributes.STYLE_ICON] = icon;
4127
+ }
4128
+ return result;
4129
+ }, "#getAttributes");
4130
+ __name(_ConsoleInterceptor, "ConsoleInterceptor");
4131
+ var ConsoleInterceptor = _ConsoleInterceptor;
4132
+ function getLogMessage(value, fallback) {
4133
+ if (typeof value["message"] === "string") {
4134
+ return value["message"];
4135
+ }
4136
+ if (typeof value["msg"] === "string") {
4137
+ return value["msg"];
4138
+ }
4139
+ if (typeof value["body"] === "string") {
4140
+ return value["body"];
4141
+ }
4142
+ if (typeof value["error"] === "string") {
4143
+ return value["error"];
4144
+ }
4145
+ return fallback;
4146
+ }
4147
+ __name(getLogMessage, "getLogMessage");
4148
+ function tryParseJSON(value) {
4149
+ try {
4150
+ const parsed = JSON.parse(value);
4151
+ if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
4152
+ return {
4153
+ ok: true,
4154
+ value: parsed
4155
+ };
4156
+ }
4157
+ return {
4158
+ ok: false,
4159
+ value
4160
+ };
4161
+ } catch (e) {
4162
+ return {
4163
+ ok: false,
4164
+ value
4165
+ };
4166
+ }
4167
+ }
4168
+ __name(tryParseJSON, "tryParseJSON");
4169
+
4170
+ // src/v3/utils/styleAttributes.ts
4171
+ function accessoryAttributes(accessory) {
4172
+ return flattenAttributes(accessory, SemanticInternalAttributes.STYLE_ACCESSORY);
4173
+ }
4174
+ __name(accessoryAttributes, "accessoryAttributes");
2902
4175
 
2903
4176
  // src/eventFilterMatches.ts
2904
4177
  function eventFilterMatches(payload, filter) {
@@ -3068,41 +4341,150 @@ function omit(obj, ...keys) {
3068
4341
  return result;
3069
4342
  }
3070
4343
  __name(omit, "omit");
3071
-
3072
- // src/v3/utils/styleAttributes.ts
3073
- function accessoryAttributes(accessory) {
3074
- return flattenAttributes(accessory, SemanticInternalAttributes.STYLE_ACCESSORY);
3075
- }
3076
- __name(accessoryAttributes, "accessoryAttributes");
3077
-
3078
- // package.json
3079
- var dependencies = {
3080
- "@google-cloud/precise-date": "^4.0.0",
3081
- "@opentelemetry/api": "^1.8.0",
3082
- "@opentelemetry/api-logs": "^0.48.0",
3083
- "@opentelemetry/exporter-logs-otlp-http": "^0.49.1",
3084
- "@opentelemetry/exporter-trace-otlp-http": "^0.49.1",
3085
- "@opentelemetry/instrumentation": "^0.49.1",
3086
- "@opentelemetry/resources": "^1.22.0",
3087
- "@opentelemetry/sdk-logs": "^0.49.1",
3088
- "@opentelemetry/sdk-node": "^0.49.1",
3089
- "@opentelemetry/sdk-trace-base": "^1.22.0",
3090
- "@opentelemetry/sdk-trace-node": "^1.22.0",
3091
- "@opentelemetry/semantic-conventions": "^1.22.0",
3092
- "humanize-duration": "^3.27.3",
3093
- superjson: "^2.2.1",
3094
- ulidx: "^2.2.1",
3095
- zod: "3.22.3",
3096
- "zod-error": "1.5.0",
3097
- "zod-validation-error": "^1.5.0",
3098
- "socket.io-client": "4.7.4"
4344
+ var _a2;
4345
+ var AsyncResourceDetector = (_a2 = class {
4346
+ constructor() {
4347
+ __publicField(this, "_resolved", false);
4348
+ this._promise = new Promise((resolver) => {
4349
+ this._resolver = resolver;
4350
+ });
4351
+ }
4352
+ detect(_config) {
4353
+ return new resources.Resource({}, this._promise);
4354
+ }
4355
+ resolveWithAttributes(attributes) {
4356
+ if (!this._resolver) {
4357
+ throw new Error("Resolver not available");
4358
+ }
4359
+ if (this._resolved) {
4360
+ return;
4361
+ }
4362
+ this._resolved = true;
4363
+ this._resolver(attributes);
4364
+ }
4365
+ }, __name(_a2, "AsyncResourceDetector"), _a2);
4366
+ var _TracingSDK = class _TracingSDK {
4367
+ constructor(config) {
4368
+ this.config = config;
4369
+ this.asyncResourceDetector = new AsyncResourceDetector();
4370
+ setLogLevel(config.diagLogLevel ?? "none");
4371
+ const envResourceAttributesSerialized = getEnvVar("OTEL_RESOURCE_ATTRIBUTES");
4372
+ const envResourceAttributes = envResourceAttributesSerialized ? JSON.parse(envResourceAttributesSerialized) : {};
4373
+ const commonResources = resources.detectResourcesSync({
4374
+ detectors: [
4375
+ this.asyncResourceDetector,
4376
+ resources.processDetectorSync
4377
+ ]
4378
+ }).merge(new resources.Resource({
4379
+ [semanticConventions.SemanticResourceAttributes.CLOUD_PROVIDER]: "trigger.dev",
4380
+ [SemanticInternalAttributes.TRIGGER]: true
4381
+ })).merge(config.resource ?? new resources.Resource({})).merge(new resources.Resource(envResourceAttributes));
4382
+ const traceProvider = new sdkTraceNode.NodeTracerProvider({
4383
+ forceFlushTimeoutMillis: config.forceFlushTimeoutMillis ?? 500,
4384
+ resource: commonResources,
4385
+ spanLimits: {
4386
+ attributeCountLimit: OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,
4387
+ attributeValueLengthLimit: OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT,
4388
+ eventCountLimit: OTEL_SPAN_EVENT_COUNT_LIMIT,
4389
+ attributePerEventCountLimit: OTEL_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,
4390
+ linkCountLimit: OTEL_LINK_COUNT_LIMIT,
4391
+ attributePerLinkCountLimit: OTEL_ATTRIBUTE_PER_LINK_COUNT_LIMIT
4392
+ }
4393
+ });
4394
+ const spanExporter = new exporterTraceOtlpHttp.OTLPTraceExporter({
4395
+ url: `${config.url}/v1/traces`,
4396
+ timeoutMillis: config.forceFlushTimeoutMillis ?? 1e3
4397
+ });
4398
+ traceProvider.addSpanProcessor(new TaskContextSpanProcessor(getEnvVar("OTEL_BATCH_PROCESSING_ENABLED") === "1" ? new sdkTraceNode.BatchSpanProcessor(spanExporter, {
4399
+ maxExportBatchSize: parseInt(getEnvVar("OTEL_SPAN_MAX_EXPORT_BATCH_SIZE") ?? "64"),
4400
+ scheduledDelayMillis: parseInt(getEnvVar("OTEL_SPAN_SCHEDULED_DELAY_MILLIS") ?? "200"),
4401
+ exportTimeoutMillis: parseInt(getEnvVar("OTEL_SPAN_EXPORT_TIMEOUT_MILLIS") ?? "30000"),
4402
+ maxQueueSize: parseInt(getEnvVar("OTEL_SPAN_MAX_QUEUE_SIZE") ?? "512")
4403
+ }) : new sdkTraceNode.SimpleSpanProcessor(spanExporter)));
4404
+ traceProvider.register();
4405
+ instrumentation.registerInstrumentations({
4406
+ instrumentations: config.instrumentations ?? [],
4407
+ tracerProvider: traceProvider
4408
+ });
4409
+ const logExporter = new exporterLogsOtlpHttp.OTLPLogExporter({
4410
+ url: `${config.url}/v1/logs`
4411
+ });
4412
+ const loggerProvider = new sdkLogs.LoggerProvider({
4413
+ resource: commonResources,
4414
+ logRecordLimits: {
4415
+ attributeCountLimit: OTEL_LOG_ATTRIBUTE_COUNT_LIMIT,
4416
+ attributeValueLengthLimit: OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT
4417
+ }
4418
+ });
4419
+ loggerProvider.addLogRecordProcessor(new TaskContextLogProcessor(getEnvVar("OTEL_BATCH_PROCESSING_ENABLED") === "1" ? new sdkLogs.BatchLogRecordProcessor(logExporter, {
4420
+ maxExportBatchSize: parseInt(getEnvVar("OTEL_LOG_MAX_EXPORT_BATCH_SIZE") ?? "64"),
4421
+ scheduledDelayMillis: parseInt(getEnvVar("OTEL_LOG_SCHEDULED_DELAY_MILLIS") ?? "200"),
4422
+ exportTimeoutMillis: parseInt(getEnvVar("OTEL_LOG_EXPORT_TIMEOUT_MILLIS") ?? "30000"),
4423
+ maxQueueSize: parseInt(getEnvVar("OTEL_LOG_MAX_QUEUE_SIZE") ?? "512")
4424
+ }) : new sdkLogs.SimpleLogRecordProcessor(logExporter)));
4425
+ this._logProvider = loggerProvider;
4426
+ this._spanExporter = spanExporter;
4427
+ this._traceProvider = traceProvider;
4428
+ apiLogs.logs.setGlobalLoggerProvider(loggerProvider);
4429
+ this.getLogger = loggerProvider.getLogger.bind(loggerProvider);
4430
+ this.getTracer = traceProvider.getTracer.bind(traceProvider);
4431
+ }
4432
+ async flush() {
4433
+ await this._traceProvider.forceFlush();
4434
+ await this._logProvider.forceFlush();
4435
+ }
4436
+ async shutdown() {
4437
+ await this._traceProvider.shutdown();
4438
+ await this._logProvider.shutdown();
4439
+ }
3099
4440
  };
4441
+ __name(_TracingSDK, "TracingSDK");
4442
+ var TracingSDK = _TracingSDK;
4443
+ function setLogLevel(level) {
4444
+ let diagLogLevel;
4445
+ switch (level) {
4446
+ case "none":
4447
+ diagLogLevel = api.DiagLogLevel.NONE;
4448
+ break;
4449
+ case "error":
4450
+ diagLogLevel = api.DiagLogLevel.ERROR;
4451
+ break;
4452
+ case "warn":
4453
+ diagLogLevel = api.DiagLogLevel.WARN;
4454
+ break;
4455
+ case "info":
4456
+ diagLogLevel = api.DiagLogLevel.INFO;
4457
+ break;
4458
+ case "debug":
4459
+ diagLogLevel = api.DiagLogLevel.DEBUG;
4460
+ break;
4461
+ case "verbose":
4462
+ diagLogLevel = api.DiagLogLevel.VERBOSE;
4463
+ break;
4464
+ case "all":
4465
+ diagLogLevel = api.DiagLogLevel.ALL;
4466
+ break;
4467
+ default:
4468
+ diagLogLevel = api.DiagLogLevel.NONE;
4469
+ }
4470
+ api.diag.setLogger(new api.DiagConsoleLogger(), diagLogLevel);
4471
+ }
4472
+ __name(setLogLevel, "setLogLevel");
3100
4473
 
3101
- // src/v3/utils/detectDependencyVersion.ts
3102
- function detectDependencyVersion(dependency) {
3103
- return dependencies[dependency];
4474
+ // src/v3/otel/index.ts
4475
+ function recordSpanException(span, error) {
4476
+ if (error instanceof Error) {
4477
+ span.recordException(error);
4478
+ } else if (typeof error === "string") {
4479
+ span.recordException(new Error(error));
4480
+ } else {
4481
+ span.recordException(new Error(JSON.stringify(error)));
4482
+ }
4483
+ span.setStatus({
4484
+ code: api.SpanStatusCode.ERROR
4485
+ });
3104
4486
  }
3105
- __name(detectDependencyVersion, "detectDependencyVersion");
4487
+ __name(recordSpanException, "recordSpanException");
3106
4488
 
3107
4489
  // src/v3/utils/ioSerialization.ts
3108
4490
  async function parsePacket(value) {
@@ -3372,6 +4754,374 @@ function safeJsonParse2(value) {
3372
4754
  }
3373
4755
  __name(safeJsonParse2, "safeJsonParse");
3374
4756
 
4757
+ // src/v3/workers/taskExecutor.ts
4758
+ var _callRun, callRun_fn, _callTaskInit, callTaskInit_fn, _callTaskCleanup, callTaskCleanup_fn, _handleError, handleError_fn;
4759
+ var _TaskExecutor = class _TaskExecutor {
4760
+ constructor(task, options) {
4761
+ __privateAdd(this, _callRun);
4762
+ __privateAdd(this, _callTaskInit);
4763
+ __privateAdd(this, _callTaskCleanup);
4764
+ __privateAdd(this, _handleError);
4765
+ this.task = task;
4766
+ this._tracingSDK = options.tracingSDK;
4767
+ this._tracer = options.tracer;
4768
+ this._consoleInterceptor = options.consoleInterceptor;
4769
+ this._config = options.projectConfig;
4770
+ this._importedConfig = options.importedConfig;
4771
+ this._handleErrorFn = options.handleErrorFn;
4772
+ }
4773
+ async execute(execution, worker, traceContext) {
4774
+ const ctx = TaskRunContext.parse(execution);
4775
+ const attemptMessage = `Attempt ${execution.attempt.number}`;
4776
+ const originalPacket = {
4777
+ data: execution.run.payload,
4778
+ dataType: execution.run.payloadType
4779
+ };
4780
+ const result = await taskContextManager.runWith({
4781
+ ctx,
4782
+ worker
4783
+ }, async () => {
4784
+ this._tracingSDK.asyncResourceDetector.resolveWithAttributes({
4785
+ ...taskContextManager.attributes,
4786
+ [SemanticInternalAttributes.SDK_VERSION]: this.task.packageVersion,
4787
+ [SemanticInternalAttributes.SDK_LANGUAGE]: "typescript"
4788
+ });
4789
+ return await this._tracer.startActiveSpan(attemptMessage, async (span) => {
4790
+ return await this._consoleInterceptor.intercept(console, async () => {
4791
+ let parsedPayload;
4792
+ let initOutput;
4793
+ try {
4794
+ const payloadPacket = await conditionallyImportPacket(originalPacket, this._tracer);
4795
+ parsedPayload = await parsePacket(payloadPacket);
4796
+ initOutput = await __privateMethod(this, _callTaskInit, callTaskInit_fn).call(this, parsedPayload, ctx);
4797
+ const output = await __privateMethod(this, _callRun, callRun_fn).call(this, parsedPayload, ctx, initOutput);
4798
+ try {
4799
+ const stringifiedOutput = await stringifyIO(output);
4800
+ const finalOutput = await conditionallyExportPacket(stringifiedOutput, `${execution.attempt.id}/output`, this._tracer);
4801
+ const attributes = await createPacketAttributes(finalOutput, SemanticInternalAttributes.OUTPUT, SemanticInternalAttributes.OUTPUT_TYPE);
4802
+ if (attributes) {
4803
+ span.setAttributes(attributes);
4804
+ }
4805
+ return {
4806
+ ok: true,
4807
+ id: execution.run.id,
4808
+ output: finalOutput.data,
4809
+ outputType: finalOutput.dataType
4810
+ };
4811
+ } catch (stringifyError) {
4812
+ recordSpanException(span, stringifyError);
4813
+ return {
4814
+ ok: false,
4815
+ id: execution.run.id,
4816
+ error: {
4817
+ type: "INTERNAL_ERROR",
4818
+ code: TaskRunErrorCodes.TASK_OUTPUT_ERROR,
4819
+ message: stringifyError instanceof Error ? stringifyError.message : typeof stringifyError === "string" ? stringifyError : void 0
4820
+ }
4821
+ };
4822
+ }
4823
+ } catch (runError) {
4824
+ try {
4825
+ const handleErrorResult = await __privateMethod(this, _handleError, handleError_fn).call(this, execution, runError, parsedPayload, ctx);
4826
+ recordSpanException(span, handleErrorResult.error ?? runError);
4827
+ return {
4828
+ id: execution.run.id,
4829
+ ok: false,
4830
+ error: handleErrorResult.error ? parseError(handleErrorResult.error) : parseError(runError),
4831
+ retry: handleErrorResult.status === "retry" ? handleErrorResult.retry : void 0,
4832
+ skippedRetrying: handleErrorResult.status === "skipped"
4833
+ };
4834
+ } catch (handleErrorError) {
4835
+ recordSpanException(span, handleErrorError);
4836
+ return {
4837
+ ok: false,
4838
+ id: execution.run.id,
4839
+ error: {
4840
+ type: "INTERNAL_ERROR",
4841
+ code: TaskRunErrorCodes.HANDLE_ERROR_ERROR,
4842
+ message: handleErrorError instanceof Error ? handleErrorError.message : typeof handleErrorError === "string" ? handleErrorError : void 0
4843
+ }
4844
+ };
4845
+ }
4846
+ } finally {
4847
+ await __privateMethod(this, _callTaskCleanup, callTaskCleanup_fn).call(this, parsedPayload, ctx, initOutput);
4848
+ }
4849
+ });
4850
+ }, {
4851
+ kind: api.SpanKind.CONSUMER,
4852
+ attributes: {
4853
+ [SemanticInternalAttributes.STYLE_ICON]: "attempt",
4854
+ ...accessoryAttributes({
4855
+ items: [
4856
+ {
4857
+ text: ctx.task.filePath
4858
+ },
4859
+ {
4860
+ text: `${ctx.task.exportName}.run()`
4861
+ }
4862
+ ],
4863
+ style: "codepath"
4864
+ })
4865
+ }
4866
+ }, this._tracer.extractContext(traceContext));
4867
+ });
4868
+ return result;
4869
+ }
4870
+ };
4871
+ _callRun = new WeakSet();
4872
+ callRun_fn = /* @__PURE__ */ __name(async function(payload, ctx, init) {
4873
+ const runFn = this.task.fns.run;
4874
+ const middlewareFn = this.task.fns.middleware;
4875
+ if (!runFn) {
4876
+ throw new Error("Task does not have a run function");
4877
+ }
4878
+ if (!middlewareFn) {
4879
+ return runFn(payload, {
4880
+ ctx
4881
+ });
4882
+ }
4883
+ return middlewareFn(payload, {
4884
+ ctx,
4885
+ next: async () => runFn(payload, {
4886
+ ctx,
4887
+ init
4888
+ })
4889
+ });
4890
+ }, "#callRun");
4891
+ _callTaskInit = new WeakSet();
4892
+ callTaskInit_fn = /* @__PURE__ */ __name(async function(payload1, ctx1) {
4893
+ const initFn = this.task.fns.init;
4894
+ if (!initFn) {
4895
+ return {};
4896
+ }
4897
+ return this._tracer.startActiveSpan("init", async (span) => {
4898
+ return await initFn(payload1, {
4899
+ ctx: ctx1
4900
+ });
4901
+ });
4902
+ }, "#callTaskInit");
4903
+ _callTaskCleanup = new WeakSet();
4904
+ callTaskCleanup_fn = /* @__PURE__ */ __name(async function(payload2, ctx2, init1) {
4905
+ const cleanupFn = this.task.fns.cleanup;
4906
+ if (!cleanupFn) {
4907
+ return;
4908
+ }
4909
+ return this._tracer.startActiveSpan("cleanup", async (span) => {
4910
+ return await cleanupFn(payload2, {
4911
+ ctx: ctx2,
4912
+ init: init1
4913
+ });
4914
+ });
4915
+ }, "#callTaskCleanup");
4916
+ _handleError = new WeakSet();
4917
+ handleError_fn = /* @__PURE__ */ __name(async function(execution, error, payload3, ctx3) {
4918
+ const retriesConfig = this._importedConfig?.retries ?? this._config.retries;
4919
+ const retry = this.task.retry ?? retriesConfig?.default;
4920
+ if (!retry) {
4921
+ return {
4922
+ status: "noop"
4923
+ };
4924
+ }
4925
+ const delay = calculateNextRetryDelay(retry, execution.attempt.number);
4926
+ if (execution.environment.type === "DEVELOPMENT" && typeof retriesConfig?.enabledInDev === "boolean" && !retriesConfig.enabledInDev) {
4927
+ return {
4928
+ status: "skipped"
4929
+ };
4930
+ }
4931
+ return this._tracer.startActiveSpan("handleError()", async (span) => {
4932
+ const handleErrorResult = this.task.fns.handleError ? await this.task.fns.handleError(payload3, error, {
4933
+ ctx: ctx3,
4934
+ retry,
4935
+ retryDelayInMs: delay,
4936
+ retryAt: delay ? new Date(Date.now() + delay) : void 0
4937
+ }) : this._importedConfig ? await this._handleErrorFn?.(payload3, error, {
4938
+ ctx: ctx3,
4939
+ retry,
4940
+ retryDelayInMs: delay,
4941
+ retryAt: delay ? new Date(Date.now() + delay) : void 0
4942
+ }) : void 0;
4943
+ if (!handleErrorResult) {
4944
+ return typeof delay === "undefined" ? {
4945
+ status: "noop"
4946
+ } : {
4947
+ status: "retry",
4948
+ retry: {
4949
+ timestamp: Date.now() + delay,
4950
+ delay
4951
+ }
4952
+ };
4953
+ }
4954
+ if (handleErrorResult.skipRetrying) {
4955
+ return {
4956
+ status: "skipped",
4957
+ error: handleErrorResult.error
4958
+ };
4959
+ }
4960
+ if (typeof handleErrorResult.retryAt !== "undefined") {
4961
+ return {
4962
+ status: "retry",
4963
+ retry: {
4964
+ timestamp: handleErrorResult.retryAt.getTime(),
4965
+ delay: handleErrorResult.retryAt.getTime() - Date.now()
4966
+ },
4967
+ error: handleErrorResult.error
4968
+ };
4969
+ }
4970
+ if (typeof handleErrorResult.retryDelayInMs === "number") {
4971
+ return {
4972
+ status: "retry",
4973
+ retry: {
4974
+ timestamp: Date.now() + handleErrorResult.retryDelayInMs,
4975
+ delay: handleErrorResult.retryDelayInMs
4976
+ },
4977
+ error: handleErrorResult.error
4978
+ };
4979
+ }
4980
+ if (handleErrorResult.retry && typeof handleErrorResult.retry === "object") {
4981
+ const delay2 = calculateNextRetryDelay(handleErrorResult.retry, execution.attempt.number);
4982
+ return typeof delay2 === "undefined" ? {
4983
+ status: "noop",
4984
+ error: handleErrorResult.error
4985
+ } : {
4986
+ status: "retry",
4987
+ retry: {
4988
+ timestamp: Date.now() + delay2,
4989
+ delay: delay2
4990
+ },
4991
+ error: handleErrorResult.error
4992
+ };
4993
+ }
4994
+ return {
4995
+ status: "noop",
4996
+ error: handleErrorResult.error
4997
+ };
4998
+ }, {
4999
+ attributes: {
5000
+ [SemanticInternalAttributes.STYLE_ICON]: "exclamation-circle"
5001
+ }
5002
+ });
5003
+ }, "#handleError");
5004
+ __name(_TaskExecutor, "TaskExecutor");
5005
+ var TaskExecutor = _TaskExecutor;
5006
+
5007
+ // package.json
5008
+ var dependencies = {
5009
+ "@google-cloud/precise-date": "^4.0.0",
5010
+ "@opentelemetry/api": "^1.8.0",
5011
+ "@opentelemetry/api-logs": "^0.48.0",
5012
+ "@opentelemetry/exporter-logs-otlp-http": "^0.49.1",
5013
+ "@opentelemetry/exporter-trace-otlp-http": "^0.49.1",
5014
+ "@opentelemetry/instrumentation": "^0.49.1",
5015
+ "@opentelemetry/resources": "^1.22.0",
5016
+ "@opentelemetry/sdk-logs": "^0.49.1",
5017
+ "@opentelemetry/sdk-node": "^0.49.1",
5018
+ "@opentelemetry/sdk-trace-base": "^1.22.0",
5019
+ "@opentelemetry/sdk-trace-node": "^1.22.0",
5020
+ "@opentelemetry/semantic-conventions": "^1.22.0",
5021
+ "humanize-duration": "^3.27.3",
5022
+ "socket.io": "^4.7.4",
5023
+ "socket.io-client": "^4.7.4",
5024
+ superjson: "^2.2.1",
5025
+ ulidx: "^2.2.1",
5026
+ zod: "3.22.3",
5027
+ "zod-error": "1.5.0",
5028
+ "zod-validation-error": "^1.5.0"
5029
+ };
5030
+
5031
+ // src/v3/utils/detectDependencyVersion.ts
5032
+ function detectDependencyVersion(dependency) {
5033
+ return dependencies[dependency];
5034
+ }
5035
+ __name(detectDependencyVersion, "detectDependencyVersion");
5036
+
5037
+ // src/v3/task-catalog/standardTaskCatalog.ts
5038
+ var _StandardTaskCatalog = class _StandardTaskCatalog {
5039
+ constructor() {
5040
+ __publicField(this, "_taskMetadata", /* @__PURE__ */ new Map());
5041
+ __publicField(this, "_taskFunctions", /* @__PURE__ */ new Map());
5042
+ __publicField(this, "_taskFileMetadata", /* @__PURE__ */ new Map());
5043
+ }
5044
+ registerTaskMetadata(task) {
5045
+ const { fns, ...metadata } = task;
5046
+ this._taskMetadata.set(task.id, metadata);
5047
+ this._taskFunctions.set(task.id, fns);
5048
+ }
5049
+ updateTaskMetadata(id, updates) {
5050
+ const existingMetadata = this._taskMetadata.get(id);
5051
+ if (existingMetadata) {
5052
+ this._taskMetadata.set(id, {
5053
+ ...existingMetadata,
5054
+ ...updates
5055
+ });
5056
+ }
5057
+ if (updates.fns) {
5058
+ const existingFunctions = this._taskFunctions.get(id);
5059
+ if (existingFunctions) {
5060
+ this._taskFunctions.set(id, {
5061
+ ...existingFunctions,
5062
+ ...updates.fns
5063
+ });
5064
+ }
5065
+ }
5066
+ }
5067
+ registerTaskFileMetadata(id, metadata) {
5068
+ this._taskFileMetadata.set(id, metadata);
5069
+ }
5070
+ // Return all the tasks, without the functions
5071
+ getAllTaskMetadata() {
5072
+ const result = [];
5073
+ for (const [id, metadata] of this._taskMetadata) {
5074
+ const fileMetadata = this._taskFileMetadata.get(id);
5075
+ if (!fileMetadata) {
5076
+ continue;
5077
+ }
5078
+ result.push({
5079
+ ...metadata,
5080
+ ...fileMetadata
5081
+ });
5082
+ }
5083
+ return result;
5084
+ }
5085
+ getTaskMetadata(id) {
5086
+ const metadata = this._taskMetadata.get(id);
5087
+ const fileMetadata = this._taskFileMetadata.get(id);
5088
+ if (!metadata || !fileMetadata) {
5089
+ return void 0;
5090
+ }
5091
+ return {
5092
+ ...metadata,
5093
+ ...fileMetadata
5094
+ };
5095
+ }
5096
+ getTask(id) {
5097
+ const metadata = this._taskMetadata.get(id);
5098
+ const fileMetadata = this._taskFileMetadata.get(id);
5099
+ const fns = this._taskFunctions.get(id);
5100
+ if (!metadata || !fns || !fileMetadata) {
5101
+ return void 0;
5102
+ }
5103
+ return {
5104
+ ...metadata,
5105
+ ...fileMetadata,
5106
+ fns
5107
+ };
5108
+ }
5109
+ disable() {
5110
+ }
5111
+ };
5112
+ __name(_StandardTaskCatalog, "StandardTaskCatalog");
5113
+ var StandardTaskCatalog = _StandardTaskCatalog;
5114
+
5115
+ // src/v3/index.ts
5116
+ function parseTriggerTaskRequestBody(body) {
5117
+ return TriggerTaskRequestBody.safeParse(body);
5118
+ }
5119
+ __name(parseTriggerTaskRequestBody, "parseTriggerTaskRequestBody");
5120
+ function parseBatchTriggerTaskRequestBody(body) {
5121
+ return BatchTriggerTaskRequestBody.safeParse(body);
5122
+ }
5123
+ __name(parseBatchTriggerTaskRequestBody, "parseBatchTriggerTaskRequestBody");
5124
+
3375
5125
  exports.APIConnectionError = APIConnectionError;
3376
5126
  exports.APIError = APIError;
3377
5127
  exports.ApiClient = ApiClient;
@@ -3390,6 +5140,7 @@ exports.CancellationSpanEvent = CancellationSpanEvent;
3390
5140
  exports.ClientToSharedQueueMessages = ClientToSharedQueueMessages;
3391
5141
  exports.Config = Config;
3392
5142
  exports.ConflictError = ConflictError;
5143
+ exports.ConsoleInterceptor = ConsoleInterceptor;
3393
5144
  exports.CoordinatorToPlatformMessages = CoordinatorToPlatformMessages;
3394
5145
  exports.CoordinatorToProdWorkerMessages = CoordinatorToProdWorkerMessages;
3395
5146
  exports.CreateAuthorizationCodeResponseSchema = CreateAuthorizationCodeResponseSchema;
@@ -3399,6 +5150,8 @@ exports.CreateScheduleOptions = CreateScheduleOptions;
3399
5150
  exports.CreateUploadPayloadUrlResponseBody = CreateUploadPayloadUrlResponseBody;
3400
5151
  exports.DeletedScheduleObject = DeletedScheduleObject;
3401
5152
  exports.DeploymentErrorData = DeploymentErrorData;
5153
+ exports.DevRuntimeManager = DevRuntimeManager;
5154
+ exports.DurableClock = PreciseWallClock;
3402
5155
  exports.EnvironmentType = EnvironmentType;
3403
5156
  exports.EventFilter = EventFilter;
3404
5157
  exports.ExceptionEventProperties = ExceptionEventProperties;
@@ -3438,6 +5191,7 @@ exports.OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_LIMIT = OTEL_LOG_ATTRIBUTE_VALUE_LENGTH_
3438
5191
  exports.OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT = OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT;
3439
5192
  exports.OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT = OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT;
3440
5193
  exports.OTEL_SPAN_EVENT_COUNT_LIMIT = OTEL_SPAN_EVENT_COUNT_LIMIT;
5194
+ exports.OtelTaskLogger = OtelTaskLogger;
3441
5195
  exports.OtherSpanEvent = OtherSpanEvent;
3442
5196
  exports.PRIMARY_VARIANT = PRIMARY_VARIANT;
3443
5197
  exports.PermissionDeniedError = PermissionDeniedError;
@@ -3446,6 +5200,7 @@ exports.PlatformToProviderMessages = PlatformToProviderMessages;
3446
5200
  exports.PostStartCauses = PostStartCauses;
3447
5201
  exports.PreStopCauses = PreStopCauses;
3448
5202
  exports.ProdChildToWorkerMessages = ProdChildToWorkerMessages;
5203
+ exports.ProdRuntimeManager = ProdRuntimeManager;
3449
5204
  exports.ProdTaskRunExecution = ProdTaskRunExecution;
3450
5205
  exports.ProdTaskRunExecutionPayload = ProdTaskRunExecutionPayload;
3451
5206
  exports.ProdWorkerSocketData = ProdWorkerSocketData;
@@ -3461,13 +5216,17 @@ exports.ScheduleObject = ScheduleObject;
3461
5216
  exports.ScheduledTaskPayload = ScheduledTaskPayload;
3462
5217
  exports.SemanticInternalAttributes = SemanticInternalAttributes;
3463
5218
  exports.SharedQueueToClientMessages = SharedQueueToClientMessages;
5219
+ exports.SimpleStructuredLogger = SimpleStructuredLogger;
3464
5220
  exports.SlidingWindowRateLimit = SlidingWindowRateLimit;
3465
5221
  exports.SpanEvent = SpanEvent;
3466
5222
  exports.SpanEvents = SpanEvents;
3467
5223
  exports.SpanMessagingEvent = SpanMessagingEvent;
5224
+ exports.StandardTaskCatalog = StandardTaskCatalog;
3468
5225
  exports.StartDeploymentIndexingRequestBody = StartDeploymentIndexingRequestBody;
3469
5226
  exports.StartDeploymentIndexingResponseBody = StartDeploymentIndexingResponseBody;
5227
+ exports.TaskContextSpanProcessor = TaskContextSpanProcessor;
3470
5228
  exports.TaskEventStyle = TaskEventStyle;
5229
+ exports.TaskExecutor = TaskExecutor;
3471
5230
  exports.TaskFileMetadata = TaskFileMetadata;
3472
5231
  exports.TaskMetadata = TaskMetadata;
3473
5232
  exports.TaskMetadataFailedToParseData = TaskMetadataFailedToParseData;
@@ -3494,6 +5253,7 @@ exports.TaskRunFailedExecutionResult = TaskRunFailedExecutionResult;
3494
5253
  exports.TaskRunInternalError = TaskRunInternalError;
3495
5254
  exports.TaskRunStringError = TaskRunStringError;
3496
5255
  exports.TaskRunSuccessfulExecutionResult = TaskRunSuccessfulExecutionResult;
5256
+ exports.TracingSDK = TracingSDK;
3497
5257
  exports.TriggerTaskRequestBody = TriggerTaskRequestBody;
3498
5258
  exports.TriggerTaskResponse = TriggerTaskResponse;
3499
5259
  exports.TriggerTracer = TriggerTracer;
@@ -3502,6 +5262,15 @@ exports.UnprocessableEntityError = UnprocessableEntityError;
3502
5262
  exports.UpdateScheduleOptions = UpdateScheduleOptions;
3503
5263
  exports.WaitReason = WaitReason;
3504
5264
  exports.WhoAmIResponseSchema = WhoAmIResponseSchema;
5265
+ exports.ZodIpcConnection = ZodIpcConnection;
5266
+ exports.ZodMessageHandler = ZodMessageHandler;
5267
+ exports.ZodMessageSchema = ZodMessageSchema;
5268
+ exports.ZodMessageSender = ZodMessageSender;
5269
+ exports.ZodNamespace = ZodNamespace;
5270
+ exports.ZodSchemaParsedError = ZodSchemaParsedError;
5271
+ exports.ZodSocketConnection = ZodSocketConnection;
5272
+ exports.ZodSocketMessageHandler = ZodSocketMessageHandler;
5273
+ exports.ZodSocketMessageSender = ZodSocketMessageSender;
3505
5274
  exports.accessoryAttributes = accessoryAttributes;
3506
5275
  exports.apiClientManager = apiClientManager;
3507
5276
  exports.calculateNextRetryDelay = calculateNextRetryDelay;
@@ -3524,25 +5293,31 @@ exports.formatDuration = formatDuration;
3524
5293
  exports.formatDurationInDays = formatDurationInDays;
3525
5294
  exports.formatDurationMilliseconds = formatDurationMilliseconds;
3526
5295
  exports.formatDurationNanoseconds = formatDurationNanoseconds;
5296
+ exports.getEnvVar = getEnvVar;
3527
5297
  exports.groupTaskMetadataIssuesByTask = groupTaskMetadataIssuesByTask;
5298
+ exports.iconStringForSeverity = iconStringForSeverity;
3528
5299
  exports.imposeAttributeLimits = imposeAttributeLimits;
3529
5300
  exports.isCancellationSpanEvent = isCancellationSpanEvent;
3530
5301
  exports.isExceptionSpanEvent = isExceptionSpanEvent;
5302
+ exports.logLevels = logLevels;
3531
5303
  exports.logger = logger;
3532
5304
  exports.millisecondsToNanoseconds = millisecondsToNanoseconds;
3533
5305
  exports.nanosecondsToMilliseconds = nanosecondsToMilliseconds;
3534
5306
  exports.omit = omit;
3535
5307
  exports.packetRequiresOffloading = packetRequiresOffloading;
5308
+ exports.parseBatchTriggerTaskRequestBody = parseBatchTriggerTaskRequestBody;
3536
5309
  exports.parseError = parseError;
3537
5310
  exports.parsePacket = parsePacket;
5311
+ exports.parseTriggerTaskRequestBody = parseTriggerTaskRequestBody;
3538
5312
  exports.prettyPrintPacket = prettyPrintPacket;
3539
5313
  exports.primitiveValueOrflattenedAttributes = primitiveValueOrflattenedAttributes;
5314
+ exports.recordSpanException = recordSpanException;
3540
5315
  exports.runtime = runtime;
3541
5316
  exports.serverWebsocketMessages = serverWebsocketMessages;
3542
5317
  exports.stringPatternMatchers = stringPatternMatchers;
3543
5318
  exports.stringifyIO = stringifyIO;
3544
5319
  exports.taskCatalog = taskCatalog;
3545
- exports.taskContext = taskContext;
5320
+ exports.taskContextManager = taskContextManager;
3546
5321
  exports.unflattenAttributes = unflattenAttributes;
3547
5322
  exports.workerToChildMessages = workerToChildMessages;
3548
5323
  //# sourceMappingURL=out.js.map