@trigger.dev/core 3.0.0-beta.2 → 3.0.0-beta.21

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/catalog-KJXg8k3W.d.ts +6667 -0
  2. package/dist/catalog-PA64uhhi.d.mts +6667 -0
  3. package/dist/manager-M9GLDnhJ.d.mts +1158 -0
  4. package/dist/manager-M9GLDnhJ.d.ts +1158 -0
  5. package/dist/messages-AriaDDm0.d.mts +8696 -0
  6. package/dist/messages-AriaDDm0.d.ts +8696 -0
  7. package/dist/v3/dev/index.d.mts +28 -0
  8. package/dist/v3/dev/index.d.ts +28 -0
  9. package/dist/v3/dev/index.js +93 -0
  10. package/dist/v3/dev/index.js.map +1 -0
  11. package/dist/v3/dev/index.mjs +91 -0
  12. package/dist/v3/dev/index.mjs.map +1 -0
  13. package/dist/v3/index.d.mts +808 -16920
  14. package/dist/v3/index.d.ts +808 -16920
  15. package/dist/v3/index.js +1337 -2436
  16. package/dist/v3/index.js.map +1 -1
  17. package/dist/v3/index.mjs +1195 -2294
  18. package/dist/v3/index.mjs.map +1 -1
  19. package/dist/v3/otel/index.js +69 -42
  20. package/dist/v3/otel/index.js.map +1 -1
  21. package/dist/v3/otel/index.mjs +69 -42
  22. package/dist/v3/otel/index.mjs.map +1 -1
  23. package/dist/v3/prod/index.d.mts +45 -0
  24. package/dist/v3/prod/index.d.ts +45 -0
  25. package/dist/v3/prod/index.js +205 -0
  26. package/dist/v3/prod/index.js.map +1 -0
  27. package/dist/v3/prod/index.mjs +203 -0
  28. package/dist/v3/prod/index.mjs.map +1 -0
  29. package/dist/v3/utils/structuredLogger.d.mts +31 -0
  30. package/dist/v3/utils/structuredLogger.d.ts +31 -0
  31. package/dist/v3/utils/structuredLogger.js +88 -0
  32. package/dist/v3/utils/structuredLogger.js.map +1 -0
  33. package/dist/v3/utils/structuredLogger.mjs +86 -0
  34. package/dist/v3/utils/structuredLogger.mjs.map +1 -0
  35. package/dist/v3/workers/index.d.mts +95 -0
  36. package/dist/v3/workers/index.d.ts +95 -0
  37. package/dist/v3/workers/index.js +2770 -0
  38. package/dist/v3/workers/index.js.map +1 -0
  39. package/dist/v3/workers/index.mjs +2754 -0
  40. package/dist/v3/workers/index.mjs.map +1 -0
  41. package/dist/v3/zodIpc.d.mts +32 -0
  42. package/dist/v3/zodIpc.d.ts +32 -0
  43. package/dist/v3/zodIpc.js +268 -0
  44. package/dist/v3/zodIpc.js.map +1 -0
  45. package/dist/v3/zodIpc.mjs +266 -0
  46. package/dist/v3/zodIpc.mjs.map +1 -0
  47. package/dist/v3/zodMessageHandler.d.mts +69 -0
  48. package/dist/v3/zodMessageHandler.d.ts +69 -0
  49. package/dist/v3/zodMessageHandler.js +168 -0
  50. package/dist/v3/zodMessageHandler.js.map +1 -0
  51. package/dist/v3/zodMessageHandler.mjs +163 -0
  52. package/dist/v3/zodMessageHandler.mjs.map +1 -0
  53. package/dist/v3/zodNamespace.d.mts +3663 -0
  54. package/dist/v3/zodNamespace.d.ts +3663 -0
  55. package/dist/v3/zodNamespace.js +356 -0
  56. package/dist/v3/zodNamespace.js.map +1 -0
  57. package/dist/v3/zodNamespace.mjs +354 -0
  58. package/dist/v3/zodNamespace.mjs.map +1 -0
  59. package/dist/v3/zodSocket.d.mts +88 -0
  60. package/dist/v3/zodSocket.d.ts +88 -0
  61. package/dist/v3/zodSocket.js +309 -0
  62. package/dist/v3/zodSocket.js.map +1 -0
  63. package/dist/v3/zodSocket.mjs +305 -0
  64. package/dist/v3/zodSocket.mjs.map +1 -0
  65. package/package.json +70 -5
@@ -0,0 +1,203 @@
1
+ import { PreciseDate } from '@google-cloud/precise-date';
2
+ import { setTimeout } from 'node:timers/promises';
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __accessCheck = (obj, member, msg) => {
7
+ if (!member.has(obj))
8
+ throw TypeError("Cannot " + msg);
9
+ };
10
+ var __privateAdd = (obj, member, value) => {
11
+ if (member.has(obj))
12
+ throw TypeError("Cannot add the same private member more than once");
13
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
14
+ };
15
+ var __privateMethod = (obj, member, method) => {
16
+ __accessCheck(obj, member, "access private method");
17
+ return method;
18
+ };
19
+
20
+ // src/v3/utils/platform.ts
21
+ var _globalThis = typeof globalThis === "object" ? globalThis : global;
22
+
23
+ // src/v3/utils/globals.ts
24
+ var GLOBAL_TRIGGER_DOT_DEV_KEY = Symbol.for(`dev.trigger.ts.api`);
25
+ var _global = _globalThis;
26
+ function registerGlobal(type, instance, allowOverride = false) {
27
+ const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] ?? {};
28
+ if (!allowOverride && api[type]) {
29
+ return false;
30
+ }
31
+ api[type] = instance;
32
+ return true;
33
+ }
34
+ __name(registerGlobal, "registerGlobal");
35
+ function getGlobal(type) {
36
+ return _global[GLOBAL_TRIGGER_DOT_DEV_KEY]?.[type];
37
+ }
38
+ __name(getGlobal, "getGlobal");
39
+ var _SimpleClock = class _SimpleClock {
40
+ preciseNow() {
41
+ const now = new PreciseDate();
42
+ const nowStruct = now.toStruct();
43
+ return [
44
+ nowStruct.seconds,
45
+ nowStruct.nanos
46
+ ];
47
+ }
48
+ reset() {
49
+ }
50
+ };
51
+ __name(_SimpleClock, "SimpleClock");
52
+ var SimpleClock = _SimpleClock;
53
+
54
+ // src/v3/clock/index.ts
55
+ var API_NAME = "clock";
56
+ var SIMPLE_CLOCK = new SimpleClock();
57
+ var _getClock, getClock_fn;
58
+ var _ClockAPI = class _ClockAPI {
59
+ constructor() {
60
+ __privateAdd(this, _getClock);
61
+ }
62
+ static getInstance() {
63
+ if (!this._instance) {
64
+ this._instance = new _ClockAPI();
65
+ }
66
+ return this._instance;
67
+ }
68
+ setGlobalClock(clock2) {
69
+ return registerGlobal(API_NAME, clock2);
70
+ }
71
+ preciseNow() {
72
+ return __privateMethod(this, _getClock, getClock_fn).call(this).preciseNow();
73
+ }
74
+ reset() {
75
+ __privateMethod(this, _getClock, getClock_fn).call(this).reset();
76
+ }
77
+ };
78
+ _getClock = new WeakSet();
79
+ getClock_fn = /* @__PURE__ */ __name(function() {
80
+ return getGlobal(API_NAME) ?? SIMPLE_CLOCK;
81
+ }, "#getClock");
82
+ __name(_ClockAPI, "ClockAPI");
83
+ var ClockAPI = _ClockAPI;
84
+
85
+ // src/v3/clock-api.ts
86
+ var clock = ClockAPI.getInstance();
87
+ async function unboundedTimeout(delay = 0, value, options) {
88
+ const maxDelay = 2147483647;
89
+ const fullTimeouts = Math.floor(delay / maxDelay);
90
+ const remainingDelay = delay % maxDelay;
91
+ let lastTimeoutResult = await setTimeout(remainingDelay, value, options);
92
+ for (let i = 0; i < fullTimeouts; i++) {
93
+ lastTimeoutResult = await setTimeout(maxDelay, value, options);
94
+ }
95
+ return lastTimeoutResult;
96
+ }
97
+ __name(unboundedTimeout, "unboundedTimeout");
98
+
99
+ // src/v3/runtime/prodRuntimeManager.ts
100
+ var _ProdRuntimeManager = class _ProdRuntimeManager {
101
+ constructor(ipc, options = {}) {
102
+ this.ipc = ipc;
103
+ this.options = options;
104
+ this._taskWaits = /* @__PURE__ */ new Map();
105
+ this._batchWaits = /* @__PURE__ */ new Map();
106
+ }
107
+ disable() {
108
+ }
109
+ async waitForDuration(ms) {
110
+ const now = Date.now();
111
+ const resolveAfterDuration = unboundedTimeout(ms, "duration");
112
+ if (ms <= this.waitThresholdInMs) {
113
+ await resolveAfterDuration;
114
+ return;
115
+ }
116
+ const waitForRestore = new Promise((resolve, reject) => {
117
+ this._waitForRestore = {
118
+ resolve,
119
+ reject
120
+ };
121
+ });
122
+ const { willCheckpointAndRestore } = await this.ipc.sendWithAck("WAIT_FOR_DURATION", {
123
+ ms,
124
+ now
125
+ });
126
+ if (!willCheckpointAndRestore) {
127
+ await resolveAfterDuration;
128
+ return;
129
+ }
130
+ this.ipc.send("READY_FOR_CHECKPOINT", {});
131
+ await Promise.race([
132
+ waitForRestore,
133
+ resolveAfterDuration
134
+ ]);
135
+ this.ipc.send("CANCEL_CHECKPOINT", {});
136
+ }
137
+ resumeAfterRestore() {
138
+ if (!this._waitForRestore) {
139
+ return;
140
+ }
141
+ clock.reset();
142
+ this._waitForRestore.resolve("restore");
143
+ this._waitForRestore = void 0;
144
+ }
145
+ async waitUntil(date) {
146
+ return this.waitForDuration(date.getTime() - Date.now());
147
+ }
148
+ async waitForTask(params) {
149
+ const promise = new Promise((resolve) => {
150
+ this._taskWaits.set(params.id, {
151
+ resolve
152
+ });
153
+ });
154
+ await this.ipc.send("WAIT_FOR_TASK", {
155
+ friendlyId: params.id
156
+ });
157
+ const result = await promise;
158
+ clock.reset();
159
+ return result;
160
+ }
161
+ async waitForBatch(params) {
162
+ if (!params.runs.length) {
163
+ return Promise.resolve({
164
+ id: params.id,
165
+ items: []
166
+ });
167
+ }
168
+ const promise = Promise.all(params.runs.map((runId) => {
169
+ return new Promise((resolve, reject) => {
170
+ this._taskWaits.set(runId, {
171
+ resolve
172
+ });
173
+ });
174
+ }));
175
+ await this.ipc.send("WAIT_FOR_BATCH", {
176
+ batchFriendlyId: params.id,
177
+ runFriendlyIds: params.runs
178
+ });
179
+ const results = await promise;
180
+ clock.reset();
181
+ return {
182
+ id: params.id,
183
+ items: results
184
+ };
185
+ }
186
+ resumeTask(completion, execution) {
187
+ const wait = this._taskWaits.get(execution.run.id);
188
+ if (!wait) {
189
+ return;
190
+ }
191
+ wait.resolve(completion);
192
+ this._taskWaits.delete(execution.run.id);
193
+ }
194
+ get waitThresholdInMs() {
195
+ return this.options.waitThresholdInMs ?? 3e4;
196
+ }
197
+ };
198
+ __name(_ProdRuntimeManager, "ProdRuntimeManager");
199
+ var ProdRuntimeManager = _ProdRuntimeManager;
200
+
201
+ export { ProdRuntimeManager };
202
+ //# sourceMappingURL=out.js.map
203
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/v3/utils/platform.ts","../../../src/v3/utils/globals.ts","../../../src/v3/clock/simpleClock.ts","../../../src/v3/clock/index.ts","../../../src/v3/clock-api.ts","../../../src/v3/utils/timers.ts","../../../src/v3/runtime/prodRuntimeManager.ts"],"names":["_globalThis","globalThis","global","GLOBAL_TRIGGER_DOT_DEV_KEY","Symbol","for","_global","registerGlobal","type","instance","allowOverride","api","err","Error","getGlobal","PreciseDate","SimpleClock","preciseNow","now","nowStruct","toStruct","seconds","nanos","reset","API_NAME","SIMPLE_CLOCK","ClockAPI","getInstance","_instance","setGlobalClock","clock","setTimeout","unboundedTimeout","delay","value","options","maxDelay","fullTimeouts","Math","floor","remainingDelay","lastTimeoutResult","i","ProdRuntimeManager","constructor","ipc","_taskWaits","Map","_batchWaits","disable","waitForDuration","ms","Date","resolveAfterDuration","waitThresholdInMs","waitForRestore","Promise","resolve","reject","_waitForRestore","willCheckpointAndRestore","sendWithAck","send","race","resumeAfterRestore","undefined","waitUntil","date","getTime","waitForTask","params","promise","set","id","friendlyId","result","waitForBatch","runs","length","items","all","map","runId","batchFriendlyId","runFriendlyIds","results","resumeTask","completion","execution","wait","get","run","delete"],"mappings":"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","sourcesContent":["export const _globalThis = typeof globalThis === \"object\" ? globalThis : global;\n","import { Clock } from \"../clock/clock\";\nimport type { RuntimeManager } from \"../runtime/manager\";\nimport { TaskCatalog } from \"../task-catalog/catalog\";\nimport { TaskContext } from \"../taskContext/types\";\nimport { _globalThis } from \"./platform\";\n\nconst GLOBAL_TRIGGER_DOT_DEV_KEY = Symbol.for(`dev.trigger.ts.api`);\n\nconst _global = _globalThis as TriggerDotDevGlobal;\n\nexport function registerGlobal<Type extends keyof TriggerDotDevGlobalAPI>(\n type: Type,\n instance: TriggerDotDevGlobalAPI[Type],\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_TRIGGER_DOT_DEV_KEY] = _global[GLOBAL_TRIGGER_DOT_DEV_KEY] ?? {});\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(`trigger.dev: Attempted duplicate registration of API: ${type}`);\n return false;\n }\n\n api[type] = instance;\n\n return true;\n}\n\nexport function getGlobal<Type extends keyof TriggerDotDevGlobalAPI>(\n type: Type\n): TriggerDotDevGlobalAPI[Type] | undefined {\n return _global[GLOBAL_TRIGGER_DOT_DEV_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof TriggerDotDevGlobalAPI) {\n const api = _global[GLOBAL_TRIGGER_DOT_DEV_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype TriggerDotDevGlobal = {\n [GLOBAL_TRIGGER_DOT_DEV_KEY]?: TriggerDotDevGlobalAPI;\n};\n\ntype TriggerDotDevGlobalAPI = {\n runtime?: RuntimeManager;\n logger?: any;\n clock?: Clock;\n [\"task-catalog\"]?: TaskCatalog;\n [\"task-context\"]?: TaskContext;\n};\n","import { PreciseDate } from \"@google-cloud/precise-date\";\nimport { Clock } from \"./clock\";\n\nexport class SimpleClock implements Clock {\n preciseNow(): [number, number] {\n const now = new PreciseDate();\n const nowStruct = now.toStruct();\n\n return [nowStruct.seconds, nowStruct.nanos];\n }\n\n reset() {\n // do nothing\n }\n}\n","const API_NAME = \"clock\";\n\nimport { getGlobal, registerGlobal } from \"../utils/globals\";\nimport type { Clock, ClockTime } from \"./clock\";\nimport { SimpleClock } from \"./simpleClock\";\n\nconst SIMPLE_CLOCK = new SimpleClock();\n\nexport class ClockAPI {\n private static _instance?: ClockAPI;\n\n private constructor() {}\n\n public static getInstance(): ClockAPI {\n if (!this._instance) {\n this._instance = new ClockAPI();\n }\n\n return this._instance;\n }\n\n public setGlobalClock(clock: Clock): boolean {\n return registerGlobal(API_NAME, clock);\n }\n\n public preciseNow(): ClockTime {\n return this.#getClock().preciseNow();\n }\n\n public reset(): void {\n this.#getClock().reset();\n }\n\n #getClock(): Clock {\n return getGlobal(API_NAME) ?? SIMPLE_CLOCK;\n }\n}\n","// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { ClockAPI } from \"./clock\";\n/** Entrypoint for clock API */\nexport const clock = ClockAPI.getInstance();\n","import { TimerOptions } from \"node:timers\";\nimport { setTimeout } from \"node:timers/promises\";\n\nexport async function unboundedTimeout<T = void>(\n delay: number = 0,\n value?: T,\n options?: TimerOptions\n): Promise<T> {\n const maxDelay = 2147483647; // Highest value that will fit in a 32-bit signed integer\n\n const fullTimeouts = Math.floor(delay / maxDelay);\n const remainingDelay = delay % maxDelay;\n\n let lastTimeoutResult = await setTimeout(remainingDelay, value, options);\n\n for (let i = 0; i < fullTimeouts; i++) {\n lastTimeoutResult = await setTimeout(maxDelay, value, options);\n }\n\n return lastTimeoutResult;\n}\n","import { clock } from \"../clock-api\";\nimport {\n BatchTaskRunExecutionResult,\n ProdChildToWorkerMessages,\n ProdWorkerToChildMessages,\n TaskRunContext,\n TaskRunExecution,\n TaskRunExecutionResult,\n} from \"../schemas\";\nimport { unboundedTimeout } from \"../utils/timers\";\nimport { ZodIpcConnection } from \"../zodIpc\";\nimport { RuntimeManager } from \"./manager\";\n\nexport type ProdRuntimeManagerOptions = {\n waitThresholdInMs?: number;\n};\n\nexport class ProdRuntimeManager implements RuntimeManager {\n _taskWaits: Map<string, { resolve: (value: TaskRunExecutionResult) => void }> = new Map();\n\n _batchWaits: Map<\n string,\n { resolve: (value: BatchTaskRunExecutionResult) => void; reject: (err?: any) => void }\n > = new Map();\n\n _waitForRestore: { resolve: (value: \"restore\") => void; reject: (err?: any) => void } | undefined;\n\n constructor(\n private ipc: ZodIpcConnection<\n typeof ProdWorkerToChildMessages,\n typeof ProdChildToWorkerMessages\n >,\n private options: ProdRuntimeManagerOptions = {}\n ) {}\n\n disable(): void {\n // do nothing\n }\n\n async waitForDuration(ms: number): Promise<void> {\n const now = Date.now();\n\n const resolveAfterDuration = unboundedTimeout(ms, \"duration\" as const);\n\n if (ms <= this.waitThresholdInMs) {\n await resolveAfterDuration;\n return;\n }\n\n const waitForRestore = new Promise<\"restore\">((resolve, reject) => {\n this._waitForRestore = { resolve, reject };\n });\n\n const { willCheckpointAndRestore } = await this.ipc.sendWithAck(\"WAIT_FOR_DURATION\", {\n ms,\n now,\n });\n\n if (!willCheckpointAndRestore) {\n await resolveAfterDuration;\n return;\n }\n\n this.ipc.send(\"READY_FOR_CHECKPOINT\", {});\n\n // Don't wait for checkpoint beyond the requested wait duration\n await Promise.race([waitForRestore, resolveAfterDuration]);\n\n // The coordinator can then cancel any in-progress checkpoints\n this.ipc.send(\"CANCEL_CHECKPOINT\", {});\n }\n\n resumeAfterRestore(): void {\n if (!this._waitForRestore) {\n return;\n }\n\n // Resets the clock to the current time\n clock.reset();\n\n this._waitForRestore.resolve(\"restore\");\n this._waitForRestore = undefined;\n }\n\n async waitUntil(date: Date): Promise<void> {\n return this.waitForDuration(date.getTime() - Date.now());\n }\n\n async waitForTask(params: { id: string; ctx: TaskRunContext }): Promise<TaskRunExecutionResult> {\n const promise = new Promise<TaskRunExecutionResult>((resolve) => {\n this._taskWaits.set(params.id, { resolve });\n });\n\n await this.ipc.send(\"WAIT_FOR_TASK\", {\n friendlyId: params.id,\n });\n\n const result = await promise;\n\n clock.reset();\n\n return result;\n }\n\n async waitForBatch(params: {\n id: string;\n runs: string[];\n ctx: TaskRunContext;\n }): Promise<BatchTaskRunExecutionResult> {\n if (!params.runs.length) {\n return Promise.resolve({ id: params.id, items: [] });\n }\n\n const promise = Promise.all(\n params.runs.map((runId) => {\n return new Promise<TaskRunExecutionResult>((resolve, reject) => {\n this._taskWaits.set(runId, { resolve });\n });\n })\n );\n\n await this.ipc.send(\"WAIT_FOR_BATCH\", {\n batchFriendlyId: params.id,\n runFriendlyIds: params.runs,\n });\n\n const results = await promise;\n\n clock.reset();\n\n return {\n id: params.id,\n items: results,\n };\n }\n\n resumeTask(completion: TaskRunExecutionResult, execution: TaskRunExecution): void {\n const wait = this._taskWaits.get(execution.run.id);\n\n if (!wait) {\n return;\n }\n\n wait.resolve(completion);\n\n this._taskWaits.delete(execution.run.id);\n }\n\n private get waitThresholdInMs(): number {\n return this.options.waitThresholdInMs ?? 30_000;\n }\n}\n"]}
@@ -0,0 +1,31 @@
1
+ type StructuredArgs = (Record<string, unknown> | undefined)[];
2
+ interface StructuredLogger {
3
+ log: (message: string, ...args: StructuredArgs) => any;
4
+ error: (message: string, ...args: StructuredArgs) => any;
5
+ warn: (message: string, ...args: StructuredArgs) => any;
6
+ info: (message: string, ...args: StructuredArgs) => any;
7
+ debug: (message: string, ...args: StructuredArgs) => any;
8
+ child: (fields: Record<string, unknown>) => StructuredLogger;
9
+ }
10
+ declare enum LogLevel {
11
+ "log" = 0,
12
+ "error" = 1,
13
+ "warn" = 2,
14
+ "info" = 3,
15
+ "debug" = 4
16
+ }
17
+ declare class SimpleStructuredLogger implements StructuredLogger {
18
+ #private;
19
+ private name;
20
+ private level;
21
+ private fields?;
22
+ constructor(name: string, level?: LogLevel, fields?: Record<string, unknown> | undefined);
23
+ child(fields: Record<string, unknown>, level?: LogLevel): SimpleStructuredLogger;
24
+ log(message: string, ...args: StructuredArgs): void;
25
+ error(message: string, ...args: StructuredArgs): void;
26
+ warn(message: string, ...args: StructuredArgs): void;
27
+ info(message: string, ...args: StructuredArgs): void;
28
+ debug(message: string, ...args: StructuredArgs): void;
29
+ }
30
+
31
+ export { LogLevel, SimpleStructuredLogger, type StructuredLogger };
@@ -0,0 +1,31 @@
1
+ type StructuredArgs = (Record<string, unknown> | undefined)[];
2
+ interface StructuredLogger {
3
+ log: (message: string, ...args: StructuredArgs) => any;
4
+ error: (message: string, ...args: StructuredArgs) => any;
5
+ warn: (message: string, ...args: StructuredArgs) => any;
6
+ info: (message: string, ...args: StructuredArgs) => any;
7
+ debug: (message: string, ...args: StructuredArgs) => any;
8
+ child: (fields: Record<string, unknown>) => StructuredLogger;
9
+ }
10
+ declare enum LogLevel {
11
+ "log" = 0,
12
+ "error" = 1,
13
+ "warn" = 2,
14
+ "info" = 3,
15
+ "debug" = 4
16
+ }
17
+ declare class SimpleStructuredLogger implements StructuredLogger {
18
+ #private;
19
+ private name;
20
+ private level;
21
+ private fields?;
22
+ constructor(name: string, level?: LogLevel, fields?: Record<string, unknown> | undefined);
23
+ child(fields: Record<string, unknown>, level?: LogLevel): SimpleStructuredLogger;
24
+ log(message: string, ...args: StructuredArgs): void;
25
+ error(message: string, ...args: StructuredArgs): void;
26
+ warn(message: string, ...args: StructuredArgs): void;
27
+ info(message: string, ...args: StructuredArgs): void;
28
+ debug(message: string, ...args: StructuredArgs): void;
29
+ }
30
+
31
+ export { LogLevel, SimpleStructuredLogger, type StructuredLogger };
@@ -0,0 +1,88 @@
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ var __accessCheck = (obj, member, msg) => {
6
+ if (!member.has(obj))
7
+ throw TypeError("Cannot " + msg);
8
+ };
9
+ var __privateAdd = (obj, member, value) => {
10
+ if (member.has(obj))
11
+ throw TypeError("Cannot add the same private member more than once");
12
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
13
+ };
14
+ var __privateMethod = (obj, member, method) => {
15
+ __accessCheck(obj, member, "access private method");
16
+ return method;
17
+ };
18
+
19
+ // src/v3/utils/structuredLogger.ts
20
+ exports.LogLevel = void 0;
21
+ (function(LogLevel2) {
22
+ LogLevel2[LogLevel2["log"] = 0] = "log";
23
+ LogLevel2[LogLevel2["error"] = 1] = "error";
24
+ LogLevel2[LogLevel2["warn"] = 2] = "warn";
25
+ LogLevel2[LogLevel2["info"] = 3] = "info";
26
+ LogLevel2[LogLevel2["debug"] = 4] = "debug";
27
+ })(exports.LogLevel || (exports.LogLevel = {}));
28
+ var _structuredLog, structuredLog_fn;
29
+ var _SimpleStructuredLogger = class _SimpleStructuredLogger {
30
+ constructor(name, level = [
31
+ "1",
32
+ "true"
33
+ ].includes(process.env.DEBUG ?? "") ? exports.LogLevel.debug : exports.LogLevel.info, fields) {
34
+ __privateAdd(this, _structuredLog);
35
+ this.name = name;
36
+ this.level = level;
37
+ this.fields = fields;
38
+ }
39
+ child(fields, level) {
40
+ return new _SimpleStructuredLogger(this.name, level, {
41
+ ...this.fields,
42
+ ...fields
43
+ });
44
+ }
45
+ log(message, ...args) {
46
+ if (this.level < exports.LogLevel.log)
47
+ return;
48
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.log, message, "log", ...args);
49
+ }
50
+ error(message, ...args) {
51
+ if (this.level < exports.LogLevel.error)
52
+ return;
53
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.error, message, "error", ...args);
54
+ }
55
+ warn(message, ...args) {
56
+ if (this.level < exports.LogLevel.warn)
57
+ return;
58
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.warn, message, "warn", ...args);
59
+ }
60
+ info(message, ...args) {
61
+ if (this.level < exports.LogLevel.info)
62
+ return;
63
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.info, message, "info", ...args);
64
+ }
65
+ debug(message, ...args) {
66
+ if (this.level < exports.LogLevel.debug)
67
+ return;
68
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.debug, message, "debug", ...args);
69
+ }
70
+ };
71
+ _structuredLog = new WeakSet();
72
+ structuredLog_fn = /* @__PURE__ */ __name(function(loggerFunction, message, level, ...args) {
73
+ const structuredLog = {
74
+ ...args.length === 1 ? args[0] : args,
75
+ ...this.fields,
76
+ timestamp: /* @__PURE__ */ new Date(),
77
+ name: this.name,
78
+ message,
79
+ level
80
+ };
81
+ loggerFunction(JSON.stringify(structuredLog));
82
+ }, "#structuredLog");
83
+ __name(_SimpleStructuredLogger, "SimpleStructuredLogger");
84
+ var SimpleStructuredLogger = _SimpleStructuredLogger;
85
+
86
+ exports.SimpleStructuredLogger = SimpleStructuredLogger;
87
+ //# sourceMappingURL=out.js.map
88
+ //# sourceMappingURL=structuredLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/v3/utils/structuredLogger.ts"],"names":["LogLevel","SimpleStructuredLogger","constructor","name","level","includes","process","env","DEBUG","debug","info","fields","child","log","message","args","console","error","warn","loggerFunction","structuredLog","length","timestamp","Date","JSON","stringify"],"mappings":";;;;;;;;;;;;;;;;;IAWO;UAAKA,WAAQ;AAARA,EAAAA,UAAAA,UACV,KAAA,IAAA,CAAA,IAAA;AADUA,EAAAA,UAAAA,UAEV,OAAA,IAAA,CAAA,IAAA;AAFUA,EAAAA,UAAAA,UAGV,MAAA,IAAA,CAAA,IAAA;AAHUA,EAAAA,UAAAA,UAIV,MAAA,IAAA,CAAA,IAAA;AAJUA,EAAAA,UAAAA,UAKV,OAAA,IAAA,CAAA,IAAA;GALUA,aAAAA,WAAAA,CAAAA,EAAAA;;AAQL,IAAMC,0BAAN,MAAMA,wBAAAA;EACXC,YACUC,MACAC,QAAkB;IAAC;IAAK;IAAQC,SAASC,QAAQC,IAAIC,SAAS,EAAA,IAClER,SAASS,QACTT,SAASU,MACLC,QACR;AAoCF;gBAzCUR;iBACAC;kBAGAO;EACP;EAEHC,MAAMD,QAAiCP,OAAkB;AACvD,WAAO,IAAIH,wBAAuB,KAAKE,MAAMC,OAAO;MAAE,GAAG,KAAKO;MAAQ,GAAGA;IAAO,CAAA;EAClF;EAEAE,IAAIC,YAAoBC,MAAsB;AAC5C,QAAI,KAAKX,QAAQJ,SAASa;AAAK;AAE/B,0BAAK,kCAAL,WAAoBG,QAAQH,KAAKC,SAAS,OAAA,GAAUC;EACtD;EAEAE,MAAMH,YAAoBC,MAAsB;AAC9C,QAAI,KAAKX,QAAQJ,SAASiB;AAAO;AAEjC,0BAAK,kCAAL,WAAoBD,QAAQC,OAAOH,SAAS,SAAA,GAAYC;EAC1D;EAEAG,KAAKJ,YAAoBC,MAAsB;AAC7C,QAAI,KAAKX,QAAQJ,SAASkB;AAAM;AAEhC,0BAAK,kCAAL,WAAoBF,QAAQE,MAAMJ,SAAS,QAAA,GAAWC;EACxD;EAEAL,KAAKI,YAAoBC,MAAsB;AAC7C,QAAI,KAAKX,QAAQJ,SAASU;AAAM;AAEhC,0BAAK,kCAAL,WAAoBM,QAAQN,MAAMI,SAAS,QAAA,GAAWC;EACxD;EAEAN,MAAMK,YAAoBC,MAAsB;AAC9C,QAAI,KAAKX,QAAQJ,SAASS;AAAO;AAEjC,0BAAK,kCAAL,WAAoBO,QAAQP,OAAOK,SAAS,SAAA,GAAYC;EAC1D;AAmBF;AAjBE;mBAAc,gCACZI,gBACAL,SACAV,UACGW,MACH;AACA,QAAMK,gBAAgB;IACpB,GAAIL,KAAKM,WAAW,IAAIN,KAAK,CAAA,IAAKA;IAClC,GAAG,KAAKJ;IACRW,WAAW,oBAAIC,KAAAA;IACfpB,MAAM,KAAKA;IACXW;IACAV;EACF;AAEAe,iBAAeK,KAAKC,UAAUL,aAAAA,CAAAA;AAChC,GAhBc;AA3CHnB;AAAN,IAAMA,yBAAN","sourcesContent":["type StructuredArgs = (Record<string, unknown> | undefined)[];\n\nexport interface StructuredLogger {\n log: (message: string, ...args: StructuredArgs) => any;\n error: (message: string, ...args: StructuredArgs) => any;\n warn: (message: string, ...args: StructuredArgs) => any;\n info: (message: string, ...args: StructuredArgs) => any;\n debug: (message: string, ...args: StructuredArgs) => any;\n child: (fields: Record<string, unknown>) => StructuredLogger;\n}\n\nexport enum LogLevel {\n \"log\",\n \"error\",\n \"warn\",\n \"info\",\n \"debug\",\n}\n\nexport class SimpleStructuredLogger implements StructuredLogger {\n constructor(\n private name: string,\n private level: LogLevel = [\"1\", \"true\"].includes(process.env.DEBUG ?? \"\")\n ? LogLevel.debug\n : LogLevel.info,\n private fields?: Record<string, unknown>\n ) {}\n\n child(fields: Record<string, unknown>, level?: LogLevel) {\n return new SimpleStructuredLogger(this.name, level, { ...this.fields, ...fields });\n }\n\n log(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.log) return;\n\n this.#structuredLog(console.log, message, \"log\", ...args);\n }\n\n error(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.error) return;\n\n this.#structuredLog(console.error, message, \"error\", ...args);\n }\n\n warn(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.warn) return;\n\n this.#structuredLog(console.warn, message, \"warn\", ...args);\n }\n\n info(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.info) return;\n\n this.#structuredLog(console.info, message, \"info\", ...args);\n }\n\n debug(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.debug) return;\n\n this.#structuredLog(console.debug, message, \"debug\", ...args);\n }\n\n #structuredLog(\n loggerFunction: (message: string, ...args: any[]) => void,\n message: string,\n level: string,\n ...args: StructuredArgs\n ) {\n const structuredLog = {\n ...(args.length === 1 ? args[0] : args),\n ...this.fields,\n timestamp: new Date(),\n name: this.name,\n message,\n level,\n };\n\n loggerFunction(JSON.stringify(structuredLog));\n }\n}\n"]}
@@ -0,0 +1,86 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ var __accessCheck = (obj, member, msg) => {
4
+ if (!member.has(obj))
5
+ throw TypeError("Cannot " + msg);
6
+ };
7
+ var __privateAdd = (obj, member, value) => {
8
+ if (member.has(obj))
9
+ throw TypeError("Cannot add the same private member more than once");
10
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
11
+ };
12
+ var __privateMethod = (obj, member, method) => {
13
+ __accessCheck(obj, member, "access private method");
14
+ return method;
15
+ };
16
+
17
+ // src/v3/utils/structuredLogger.ts
18
+ var LogLevel;
19
+ (function(LogLevel2) {
20
+ LogLevel2[LogLevel2["log"] = 0] = "log";
21
+ LogLevel2[LogLevel2["error"] = 1] = "error";
22
+ LogLevel2[LogLevel2["warn"] = 2] = "warn";
23
+ LogLevel2[LogLevel2["info"] = 3] = "info";
24
+ LogLevel2[LogLevel2["debug"] = 4] = "debug";
25
+ })(LogLevel || (LogLevel = {}));
26
+ var _structuredLog, structuredLog_fn;
27
+ var _SimpleStructuredLogger = class _SimpleStructuredLogger {
28
+ constructor(name, level = [
29
+ "1",
30
+ "true"
31
+ ].includes(process.env.DEBUG ?? "") ? LogLevel.debug : LogLevel.info, fields) {
32
+ __privateAdd(this, _structuredLog);
33
+ this.name = name;
34
+ this.level = level;
35
+ this.fields = fields;
36
+ }
37
+ child(fields, level) {
38
+ return new _SimpleStructuredLogger(this.name, level, {
39
+ ...this.fields,
40
+ ...fields
41
+ });
42
+ }
43
+ log(message, ...args) {
44
+ if (this.level < LogLevel.log)
45
+ return;
46
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.log, message, "log", ...args);
47
+ }
48
+ error(message, ...args) {
49
+ if (this.level < LogLevel.error)
50
+ return;
51
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.error, message, "error", ...args);
52
+ }
53
+ warn(message, ...args) {
54
+ if (this.level < LogLevel.warn)
55
+ return;
56
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.warn, message, "warn", ...args);
57
+ }
58
+ info(message, ...args) {
59
+ if (this.level < LogLevel.info)
60
+ return;
61
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.info, message, "info", ...args);
62
+ }
63
+ debug(message, ...args) {
64
+ if (this.level < LogLevel.debug)
65
+ return;
66
+ __privateMethod(this, _structuredLog, structuredLog_fn).call(this, console.debug, message, "debug", ...args);
67
+ }
68
+ };
69
+ _structuredLog = new WeakSet();
70
+ structuredLog_fn = /* @__PURE__ */ __name(function(loggerFunction, message, level, ...args) {
71
+ const structuredLog = {
72
+ ...args.length === 1 ? args[0] : args,
73
+ ...this.fields,
74
+ timestamp: /* @__PURE__ */ new Date(),
75
+ name: this.name,
76
+ message,
77
+ level
78
+ };
79
+ loggerFunction(JSON.stringify(structuredLog));
80
+ }, "#structuredLog");
81
+ __name(_SimpleStructuredLogger, "SimpleStructuredLogger");
82
+ var SimpleStructuredLogger = _SimpleStructuredLogger;
83
+
84
+ export { LogLevel, SimpleStructuredLogger };
85
+ //# sourceMappingURL=out.js.map
86
+ //# sourceMappingURL=structuredLogger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/v3/utils/structuredLogger.ts"],"names":["LogLevel","SimpleStructuredLogger","constructor","name","level","includes","process","env","DEBUG","debug","info","fields","child","log","message","args","console","error","warn","loggerFunction","structuredLog","length","timestamp","Date","JSON","stringify"],"mappings":";;;;;;;;;;;;;;;;;IAWO;UAAKA,WAAQ;AAARA,EAAAA,UAAAA,UACV,KAAA,IAAA,CAAA,IAAA;AADUA,EAAAA,UAAAA,UAEV,OAAA,IAAA,CAAA,IAAA;AAFUA,EAAAA,UAAAA,UAGV,MAAA,IAAA,CAAA,IAAA;AAHUA,EAAAA,UAAAA,UAIV,MAAA,IAAA,CAAA,IAAA;AAJUA,EAAAA,UAAAA,UAKV,OAAA,IAAA,CAAA,IAAA;GALUA,aAAAA,WAAAA,CAAAA,EAAAA;;AAQL,IAAMC,0BAAN,MAAMA,wBAAAA;EACXC,YACUC,MACAC,QAAkB;IAAC;IAAK;IAAQC,SAASC,QAAQC,IAAIC,SAAS,EAAA,IAClER,SAASS,QACTT,SAASU,MACLC,QACR;AAoCF;gBAzCUR;iBACAC;kBAGAO;EACP;EAEHC,MAAMD,QAAiCP,OAAkB;AACvD,WAAO,IAAIH,wBAAuB,KAAKE,MAAMC,OAAO;MAAE,GAAG,KAAKO;MAAQ,GAAGA;IAAO,CAAA;EAClF;EAEAE,IAAIC,YAAoBC,MAAsB;AAC5C,QAAI,KAAKX,QAAQJ,SAASa;AAAK;AAE/B,0BAAK,kCAAL,WAAoBG,QAAQH,KAAKC,SAAS,OAAA,GAAUC;EACtD;EAEAE,MAAMH,YAAoBC,MAAsB;AAC9C,QAAI,KAAKX,QAAQJ,SAASiB;AAAO;AAEjC,0BAAK,kCAAL,WAAoBD,QAAQC,OAAOH,SAAS,SAAA,GAAYC;EAC1D;EAEAG,KAAKJ,YAAoBC,MAAsB;AAC7C,QAAI,KAAKX,QAAQJ,SAASkB;AAAM;AAEhC,0BAAK,kCAAL,WAAoBF,QAAQE,MAAMJ,SAAS,QAAA,GAAWC;EACxD;EAEAL,KAAKI,YAAoBC,MAAsB;AAC7C,QAAI,KAAKX,QAAQJ,SAASU;AAAM;AAEhC,0BAAK,kCAAL,WAAoBM,QAAQN,MAAMI,SAAS,QAAA,GAAWC;EACxD;EAEAN,MAAMK,YAAoBC,MAAsB;AAC9C,QAAI,KAAKX,QAAQJ,SAASS;AAAO;AAEjC,0BAAK,kCAAL,WAAoBO,QAAQP,OAAOK,SAAS,SAAA,GAAYC;EAC1D;AAmBF;AAjBE;mBAAc,gCACZI,gBACAL,SACAV,UACGW,MACH;AACA,QAAMK,gBAAgB;IACpB,GAAIL,KAAKM,WAAW,IAAIN,KAAK,CAAA,IAAKA;IAClC,GAAG,KAAKJ;IACRW,WAAW,oBAAIC,KAAAA;IACfpB,MAAM,KAAKA;IACXW;IACAV;EACF;AAEAe,iBAAeK,KAAKC,UAAUL,aAAAA,CAAAA;AAChC,GAhBc;AA3CHnB;AAAN,IAAMA,yBAAN","sourcesContent":["type StructuredArgs = (Record<string, unknown> | undefined)[];\n\nexport interface StructuredLogger {\n log: (message: string, ...args: StructuredArgs) => any;\n error: (message: string, ...args: StructuredArgs) => any;\n warn: (message: string, ...args: StructuredArgs) => any;\n info: (message: string, ...args: StructuredArgs) => any;\n debug: (message: string, ...args: StructuredArgs) => any;\n child: (fields: Record<string, unknown>) => StructuredLogger;\n}\n\nexport enum LogLevel {\n \"log\",\n \"error\",\n \"warn\",\n \"info\",\n \"debug\",\n}\n\nexport class SimpleStructuredLogger implements StructuredLogger {\n constructor(\n private name: string,\n private level: LogLevel = [\"1\", \"true\"].includes(process.env.DEBUG ?? \"\")\n ? LogLevel.debug\n : LogLevel.info,\n private fields?: Record<string, unknown>\n ) {}\n\n child(fields: Record<string, unknown>, level?: LogLevel) {\n return new SimpleStructuredLogger(this.name, level, { ...this.fields, ...fields });\n }\n\n log(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.log) return;\n\n this.#structuredLog(console.log, message, \"log\", ...args);\n }\n\n error(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.error) return;\n\n this.#structuredLog(console.error, message, \"error\", ...args);\n }\n\n warn(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.warn) return;\n\n this.#structuredLog(console.warn, message, \"warn\", ...args);\n }\n\n info(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.info) return;\n\n this.#structuredLog(console.info, message, \"info\", ...args);\n }\n\n debug(message: string, ...args: StructuredArgs) {\n if (this.level < LogLevel.debug) return;\n\n this.#structuredLog(console.debug, message, \"debug\", ...args);\n }\n\n #structuredLog(\n loggerFunction: (message: string, ...args: any[]) => void,\n message: string,\n level: string,\n ...args: StructuredArgs\n ) {\n const structuredLog = {\n ...(args.length === 1 ? args[0] : args),\n ...this.fields,\n timestamp: new Date(),\n name: this.name,\n message,\n level,\n };\n\n loggerFunction(JSON.stringify(structuredLog));\n }\n}\n"]}
@@ -0,0 +1,95 @@
1
+ import * as logsAPI from '@opentelemetry/api-logs';
2
+ import { TracingSDK } from '../otel/index.mjs';
3
+ export { TracingDiagnosticLogLevel, recordSpanException } from '../otel/index.mjs';
4
+ import { p as TaskRunExecution, T as TaskRunExecutionResult } from '../../manager-M9GLDnhJ.mjs';
5
+ export { R as RuntimeManager } from '../../manager-M9GLDnhJ.mjs';
6
+ import { B as BackgroundWorkerProperties, T as TaskFileMetadata, a as TaskMetadataWithFilePath } from '../../messages-AriaDDm0.mjs';
7
+ import { d as TriggerTracer, g as Config, z as ProjectConfig, x as HandleErrorFunction, c as TaskMetadataWithFunctions, C as Clock, a as ClockTime, b as TaskCatalog } from '../../catalog-PA64uhhi.mjs';
8
+ export { O as OtelTaskLogger, A as logLevels } from '../../catalog-PA64uhhi.mjs';
9
+ import { PreciseDate } from '@google-cloud/precise-date';
10
+ import { LogRecordProcessor, LogRecord } from '@opentelemetry/sdk-logs';
11
+ import { SpanProcessor, Span } from '@opentelemetry/sdk-trace-base';
12
+ import { Context } from '@opentelemetry/api';
13
+ import '@opentelemetry/instrumentation';
14
+ import '@opentelemetry/resources';
15
+ import 'zod';
16
+
17
+ declare class ConsoleInterceptor {
18
+ #private;
19
+ private readonly logger;
20
+ private readonly sendToStdIO;
21
+ constructor(logger: logsAPI.Logger, sendToStdIO: boolean);
22
+ intercept<T>(console: Console, callback: () => Promise<T>): Promise<T>;
23
+ debug(...args: unknown[]): void;
24
+ log(...args: unknown[]): void;
25
+ info(...args: unknown[]): void;
26
+ warn(...args: unknown[]): void;
27
+ error(...args: unknown[]): void;
28
+ }
29
+
30
+ type TaskExecutorOptions = {
31
+ tracingSDK: TracingSDK;
32
+ tracer: TriggerTracer;
33
+ consoleInterceptor: ConsoleInterceptor;
34
+ projectConfig: Config;
35
+ importedConfig: ProjectConfig | undefined;
36
+ handleErrorFn: HandleErrorFunction | undefined;
37
+ };
38
+ declare class TaskExecutor {
39
+ #private;
40
+ task: TaskMetadataWithFunctions;
41
+ private _tracingSDK;
42
+ private _tracer;
43
+ private _consoleInterceptor;
44
+ private _config;
45
+ private _importedConfig;
46
+ private _handleErrorFn;
47
+ constructor(task: TaskMetadataWithFunctions, options: TaskExecutorOptions);
48
+ execute(execution: TaskRunExecution, worker: BackgroundWorkerProperties, traceContext: Record<string, unknown>): Promise<TaskRunExecutionResult>;
49
+ }
50
+
51
+ type PreciseWallClockOptions = {
52
+ origin?: ClockTime;
53
+ now?: PreciseDate;
54
+ };
55
+ declare class PreciseWallClock implements Clock {
56
+ #private;
57
+ private _origin;
58
+ constructor(options?: PreciseWallClockOptions);
59
+ preciseNow(): [number, number];
60
+ reset(): void;
61
+ }
62
+
63
+ declare function getEnvVar(name: string): string | undefined;
64
+
65
+ declare class StandardTaskCatalog implements TaskCatalog {
66
+ private _taskMetadata;
67
+ private _taskFunctions;
68
+ private _taskFileMetadata;
69
+ registerTaskMetadata(task: TaskMetadataWithFunctions): void;
70
+ updateTaskMetadata(id: string, updates: Partial<TaskMetadataWithFunctions>): void;
71
+ registerTaskFileMetadata(id: string, metadata: TaskFileMetadata): void;
72
+ getAllTaskMetadata(): Array<TaskMetadataWithFilePath>;
73
+ getTaskMetadata(id: string): TaskMetadataWithFilePath | undefined;
74
+ getTask(id: string): TaskMetadataWithFunctions | undefined;
75
+ taskExists(id: string): boolean;
76
+ disable(): void;
77
+ }
78
+
79
+ declare class TaskContextSpanProcessor implements SpanProcessor {
80
+ private _innerProcessor;
81
+ constructor(innerProcessor: SpanProcessor);
82
+ onStart(span: Span, parentContext: Context): void;
83
+ onEnd(span: Span): void;
84
+ shutdown(): Promise<void>;
85
+ forceFlush(): Promise<void>;
86
+ }
87
+ declare class TaskContextLogProcessor implements LogRecordProcessor {
88
+ private _innerProcessor;
89
+ constructor(innerProcessor: LogRecordProcessor);
90
+ forceFlush(): Promise<void>;
91
+ onEmit(logRecord: LogRecord, context?: Context | undefined): void;
92
+ shutdown(): Promise<void>;
93
+ }
94
+
95
+ export { ConsoleInterceptor, PreciseWallClock as DurableClock, StandardTaskCatalog, TaskContextLogProcessor, TaskContextSpanProcessor, TaskExecutor, type TaskExecutorOptions, TracingSDK, getEnvVar };