@trigger.dev/core 0.0.0-prerelease-20241023140846 → 0.0.0-prerelease-20241119135607

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 (249) hide show
  1. package/dist/commonjs/schemas/api.d.ts +8 -8
  2. package/dist/commonjs/v3/apiClient/core.d.ts +1 -1
  3. package/dist/commonjs/v3/apiClient/core.js +9 -1
  4. package/dist/commonjs/v3/apiClient/core.js.map +1 -1
  5. package/dist/commonjs/v3/apiClient/index.d.ts +109 -75
  6. package/dist/commonjs/v3/apiClient/index.js +116 -4
  7. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  8. package/dist/commonjs/v3/apiClient/runStream.d.ts +99 -0
  9. package/dist/commonjs/v3/apiClient/runStream.js +260 -0
  10. package/dist/commonjs/v3/apiClient/runStream.js.map +1 -0
  11. package/dist/commonjs/v3/apiClient/stream.d.ts +9 -0
  12. package/dist/commonjs/v3/apiClient/stream.js +51 -0
  13. package/dist/commonjs/v3/apiClient/stream.js.map +1 -0
  14. package/dist/commonjs/v3/apiClient/types.d.ts +4 -0
  15. package/dist/commonjs/v3/apiClientManager/index.d.ts +2 -1
  16. package/dist/commonjs/v3/apiClientManager/index.js +18 -7
  17. package/dist/commonjs/v3/apiClientManager/index.js.map +1 -1
  18. package/dist/commonjs/v3/apiClientManager/types.d.ts +7 -0
  19. package/dist/commonjs/v3/apps/process.d.ts +2 -0
  20. package/dist/commonjs/v3/apps/process.js +2 -0
  21. package/dist/commonjs/v3/apps/process.js.map +1 -1
  22. package/dist/commonjs/v3/build/extensions.d.ts +1 -0
  23. package/dist/commonjs/v3/errors.d.ts +5 -0
  24. package/dist/commonjs/v3/errors.js +193 -30
  25. package/dist/commonjs/v3/errors.js.map +1 -1
  26. package/dist/commonjs/v3/idempotencyKeys.d.ts +41 -0
  27. package/dist/commonjs/v3/idempotencyKeys.js +83 -0
  28. package/dist/commonjs/v3/idempotencyKeys.js.map +1 -0
  29. package/dist/commonjs/v3/index.d.ts +4 -1
  30. package/dist/commonjs/v3/index.js +6 -3
  31. package/dist/commonjs/v3/index.js.map +1 -1
  32. package/dist/commonjs/v3/jwt.d.ts +19 -0
  33. package/dist/commonjs/v3/jwt.js +47 -0
  34. package/dist/commonjs/v3/jwt.js.map +1 -0
  35. package/dist/commonjs/v3/links.d.ts +3 -0
  36. package/dist/commonjs/v3/links.js +3 -0
  37. package/dist/commonjs/v3/links.js.map +1 -1
  38. package/dist/commonjs/v3/otel/index.d.ts +2 -3
  39. package/dist/commonjs/v3/otel/index.js +15 -21
  40. package/dist/commonjs/v3/otel/index.js.map +1 -1
  41. package/dist/commonjs/v3/otel/utils.d.ts +2 -0
  42. package/dist/commonjs/v3/otel/utils.js +24 -0
  43. package/dist/commonjs/v3/otel/utils.js.map +1 -0
  44. package/dist/commonjs/v3/runMetadata/index.d.ts +13 -6
  45. package/dist/commonjs/v3/runMetadata/index.js +33 -39
  46. package/dist/commonjs/v3/runMetadata/index.js.map +1 -1
  47. package/dist/commonjs/v3/runMetadata/manager.d.ts +30 -0
  48. package/dist/commonjs/v3/runMetadata/manager.js +278 -0
  49. package/dist/commonjs/v3/runMetadata/manager.js.map +1 -0
  50. package/dist/commonjs/v3/runMetadata/metadataStream.d.ts +21 -0
  51. package/dist/commonjs/v3/runMetadata/metadataStream.js +71 -0
  52. package/dist/commonjs/v3/runMetadata/metadataStream.js.map +1 -0
  53. package/dist/commonjs/v3/runMetadata/noopManager.d.ts +17 -0
  54. package/dist/commonjs/v3/runMetadata/noopManager.js +41 -0
  55. package/dist/commonjs/v3/runMetadata/noopManager.js.map +1 -0
  56. package/dist/commonjs/v3/runMetadata/types.d.ts +16 -0
  57. package/dist/commonjs/v3/runMetadata/types.js +3 -0
  58. package/dist/commonjs/v3/runMetadata/types.js.map +1 -0
  59. package/dist/commonjs/v3/runtime/devRuntimeManager.js.map +1 -1
  60. package/dist/commonjs/v3/runtime/noopRuntimeManager.js +5 -1
  61. package/dist/commonjs/v3/runtime/noopRuntimeManager.js.map +1 -1
  62. package/dist/commonjs/v3/schemas/api.d.ts +300 -164
  63. package/dist/commonjs/v3/schemas/api.js +34 -4
  64. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  65. package/dist/commonjs/v3/schemas/build.d.ts +84 -70
  66. package/dist/commonjs/v3/schemas/common.d.ts +124 -124
  67. package/dist/commonjs/v3/schemas/common.js +3 -0
  68. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  69. package/dist/commonjs/v3/schemas/messages.d.ts +949 -917
  70. package/dist/commonjs/v3/schemas/messages.js +1 -0
  71. package/dist/commonjs/v3/schemas/messages.js.map +1 -1
  72. package/dist/commonjs/v3/schemas/resources.d.ts +30 -22
  73. package/dist/commonjs/v3/schemas/resources.js +1 -0
  74. package/dist/commonjs/v3/schemas/resources.js.map +1 -1
  75. package/dist/commonjs/v3/schemas/schemas.d.ts +102 -96
  76. package/dist/commonjs/v3/schemas/schemas.js +1 -0
  77. package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
  78. package/dist/commonjs/v3/tracer.js +2 -2
  79. package/dist/commonjs/v3/types/idempotencyKeys.d.ts +7 -0
  80. package/dist/commonjs/v3/types/idempotencyKeys.js +3 -0
  81. package/dist/commonjs/v3/types/idempotencyKeys.js.map +1 -0
  82. package/dist/commonjs/v3/types/index.d.ts +10 -63
  83. package/dist/commonjs/v3/types/index.js +3 -0
  84. package/dist/commonjs/v3/types/index.js.map +1 -1
  85. package/dist/commonjs/v3/types/schemas.d.ts +44 -0
  86. package/dist/commonjs/v3/types/schemas.js +41 -0
  87. package/dist/commonjs/v3/types/schemas.js.map +1 -0
  88. package/dist/commonjs/v3/types/tasks.d.ts +487 -0
  89. package/dist/commonjs/v3/types/tasks.js +42 -0
  90. package/dist/commonjs/v3/types/tasks.js.map +1 -0
  91. package/dist/commonjs/v3/types/tools.d.ts +6 -0
  92. package/dist/commonjs/v3/types/tools.js +22 -0
  93. package/dist/commonjs/v3/types/tools.js.map +1 -0
  94. package/dist/commonjs/v3/utils/flattenAttributes.d.ts +2 -1
  95. package/dist/commonjs/v3/utils/flattenAttributes.js +39 -16
  96. package/dist/commonjs/v3/utils/flattenAttributes.js.map +1 -1
  97. package/dist/commonjs/v3/utils/getEnv.d.ts +2 -1
  98. package/dist/commonjs/v3/utils/getEnv.js +15 -3
  99. package/dist/commonjs/v3/utils/getEnv.js.map +1 -1
  100. package/dist/commonjs/v3/utils/globals.d.ts +4 -2
  101. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  102. package/dist/commonjs/v3/utils/ioSerialization.d.ts +8 -2
  103. package/dist/commonjs/v3/utils/ioSerialization.js +62 -37
  104. package/dist/commonjs/v3/utils/ioSerialization.js.map +1 -1
  105. package/dist/commonjs/v3/utils/safeAsyncLocalStorage.d.ts +1 -0
  106. package/dist/commonjs/v3/utils/safeAsyncLocalStorage.js +3 -0
  107. package/dist/commonjs/v3/utils/safeAsyncLocalStorage.js.map +1 -1
  108. package/dist/commonjs/v3/wait-until-api.d.ts +2 -0
  109. package/dist/commonjs/v3/wait-until-api.js +8 -0
  110. package/dist/commonjs/v3/wait-until-api.js.map +1 -0
  111. package/dist/commonjs/v3/waitUntil/index.d.ts +11 -0
  112. package/dist/commonjs/v3/waitUntil/index.js +44 -0
  113. package/dist/commonjs/v3/waitUntil/index.js.map +1 -0
  114. package/dist/commonjs/v3/waitUntil/manager.d.ts +8 -0
  115. package/dist/commonjs/v3/waitUntil/manager.js +28 -0
  116. package/dist/commonjs/v3/waitUntil/manager.js.map +1 -0
  117. package/dist/commonjs/v3/waitUntil/types.d.ts +9 -0
  118. package/dist/commonjs/v3/waitUntil/types.js +3 -0
  119. package/dist/commonjs/v3/waitUntil/types.js.map +1 -0
  120. package/dist/commonjs/v3/workers/index.d.ts +3 -1
  121. package/dist/commonjs/v3/workers/index.js +6 -1
  122. package/dist/commonjs/v3/workers/index.js.map +1 -1
  123. package/dist/commonjs/v3/workers/taskExecutor.js +56 -9
  124. package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
  125. package/dist/commonjs/version.js +1 -1
  126. package/dist/esm/v3/apiClient/core.d.ts +1 -1
  127. package/dist/esm/v3/apiClient/core.js +9 -1
  128. package/dist/esm/v3/apiClient/core.js.map +1 -1
  129. package/dist/esm/v3/apiClient/index.d.ts +109 -75
  130. package/dist/esm/v3/apiClient/index.js +116 -4
  131. package/dist/esm/v3/apiClient/index.js.map +1 -1
  132. package/dist/esm/v3/apiClient/runStream.d.ts +99 -0
  133. package/dist/esm/v3/apiClient/runStream.js +253 -0
  134. package/dist/esm/v3/apiClient/runStream.js.map +1 -0
  135. package/dist/esm/v3/apiClient/stream.d.ts +9 -0
  136. package/dist/esm/v3/apiClient/stream.js +47 -0
  137. package/dist/esm/v3/apiClient/stream.js.map +1 -0
  138. package/dist/esm/v3/apiClient/types.d.ts +4 -0
  139. package/dist/esm/v3/apiClientManager/index.d.ts +2 -1
  140. package/dist/esm/v3/apiClientManager/index.js +18 -7
  141. package/dist/esm/v3/apiClientManager/index.js.map +1 -1
  142. package/dist/esm/v3/apiClientManager/types.d.ts +7 -0
  143. package/dist/esm/v3/apps/process.d.ts +2 -0
  144. package/dist/esm/v3/apps/process.js +2 -0
  145. package/dist/esm/v3/apps/process.js.map +1 -1
  146. package/dist/esm/v3/build/extensions.d.ts +1 -0
  147. package/dist/esm/v3/errors.d.ts +5 -0
  148. package/dist/esm/v3/errors.js +190 -29
  149. package/dist/esm/v3/errors.js.map +1 -1
  150. package/dist/esm/v3/idempotencyKeys.d.ts +41 -0
  151. package/dist/esm/v3/idempotencyKeys.js +78 -0
  152. package/dist/esm/v3/idempotencyKeys.js.map +1 -0
  153. package/dist/esm/v3/index.d.ts +4 -1
  154. package/dist/esm/v3/index.js +4 -1
  155. package/dist/esm/v3/index.js.map +1 -1
  156. package/dist/esm/v3/jwt.d.ts +19 -0
  157. package/dist/esm/v3/jwt.js +42 -0
  158. package/dist/esm/v3/jwt.js.map +1 -0
  159. package/dist/esm/v3/links.d.ts +3 -0
  160. package/dist/esm/v3/links.js +3 -0
  161. package/dist/esm/v3/links.js.map +1 -1
  162. package/dist/esm/v3/otel/index.d.ts +2 -3
  163. package/dist/esm/v3/otel/index.js +1 -20
  164. package/dist/esm/v3/otel/index.js.map +1 -1
  165. package/dist/esm/v3/otel/utils.d.ts +2 -0
  166. package/dist/esm/v3/otel/utils.js +21 -0
  167. package/dist/esm/v3/otel/utils.js.map +1 -0
  168. package/dist/esm/v3/runMetadata/index.d.ts +13 -6
  169. package/dist/esm/v3/runMetadata/index.js +35 -41
  170. package/dist/esm/v3/runMetadata/index.js.map +1 -1
  171. package/dist/esm/v3/runMetadata/manager.d.ts +30 -0
  172. package/dist/esm/v3/runMetadata/manager.js +274 -0
  173. package/dist/esm/v3/runMetadata/manager.js.map +1 -0
  174. package/dist/esm/v3/runMetadata/metadataStream.d.ts +21 -0
  175. package/dist/esm/v3/runMetadata/metadataStream.js +67 -0
  176. package/dist/esm/v3/runMetadata/metadataStream.js.map +1 -0
  177. package/dist/esm/v3/runMetadata/noopManager.d.ts +17 -0
  178. package/dist/esm/v3/runMetadata/noopManager.js +37 -0
  179. package/dist/esm/v3/runMetadata/noopManager.js.map +1 -0
  180. package/dist/esm/v3/runMetadata/types.d.ts +16 -0
  181. package/dist/esm/v3/runMetadata/types.js +2 -0
  182. package/dist/esm/v3/runMetadata/types.js.map +1 -0
  183. package/dist/esm/v3/runtime/devRuntimeManager.js.map +1 -1
  184. package/dist/esm/v3/runtime/noopRuntimeManager.js +5 -1
  185. package/dist/esm/v3/runtime/noopRuntimeManager.js.map +1 -1
  186. package/dist/esm/v3/schemas/api.d.ts +300 -164
  187. package/dist/esm/v3/schemas/api.js +33 -3
  188. package/dist/esm/v3/schemas/api.js.map +1 -1
  189. package/dist/esm/v3/schemas/build.d.ts +84 -70
  190. package/dist/esm/v3/schemas/common.d.ts +24 -24
  191. package/dist/esm/v3/schemas/common.js +3 -0
  192. package/dist/esm/v3/schemas/common.js.map +1 -1
  193. package/dist/esm/v3/schemas/messages.d.ts +949 -917
  194. package/dist/esm/v3/schemas/messages.js +1 -0
  195. package/dist/esm/v3/schemas/messages.js.map +1 -1
  196. package/dist/esm/v3/schemas/resources.d.ts +30 -22
  197. package/dist/esm/v3/schemas/resources.js +1 -0
  198. package/dist/esm/v3/schemas/resources.js.map +1 -1
  199. package/dist/esm/v3/schemas/schemas.d.ts +102 -96
  200. package/dist/esm/v3/schemas/schemas.js +1 -0
  201. package/dist/esm/v3/schemas/schemas.js.map +1 -1
  202. package/dist/esm/v3/tracer.js +1 -1
  203. package/dist/esm/v3/types/idempotencyKeys.d.ts +7 -0
  204. package/dist/esm/v3/types/idempotencyKeys.js +2 -0
  205. package/dist/esm/v3/types/idempotencyKeys.js.map +1 -0
  206. package/dist/esm/v3/types/index.d.ts +10 -63
  207. package/dist/esm/v3/types/index.js +3 -0
  208. package/dist/esm/v3/types/index.js.map +1 -1
  209. package/dist/esm/v3/types/schemas.d.ts +44 -0
  210. package/dist/esm/v3/types/schemas.js +38 -0
  211. package/dist/esm/v3/types/schemas.js.map +1 -0
  212. package/dist/esm/v3/types/tasks.d.ts +487 -0
  213. package/dist/esm/v3/types/tasks.js +37 -0
  214. package/dist/esm/v3/types/tasks.js.map +1 -0
  215. package/dist/esm/v3/types/tools.d.ts +6 -0
  216. package/dist/esm/v3/types/tools.js +19 -0
  217. package/dist/esm/v3/types/tools.js.map +1 -0
  218. package/dist/esm/v3/utils/flattenAttributes.d.ts +2 -1
  219. package/dist/esm/v3/utils/flattenAttributes.js +38 -15
  220. package/dist/esm/v3/utils/flattenAttributes.js.map +1 -1
  221. package/dist/esm/v3/utils/getEnv.d.ts +2 -1
  222. package/dist/esm/v3/utils/getEnv.js +14 -3
  223. package/dist/esm/v3/utils/getEnv.js.map +1 -1
  224. package/dist/esm/v3/utils/globals.d.ts +4 -2
  225. package/dist/esm/v3/utils/globals.js.map +1 -1
  226. package/dist/esm/v3/utils/ioSerialization.d.ts +8 -2
  227. package/dist/esm/v3/utils/ioSerialization.js +61 -37
  228. package/dist/esm/v3/utils/ioSerialization.js.map +1 -1
  229. package/dist/esm/v3/utils/safeAsyncLocalStorage.d.ts +1 -0
  230. package/dist/esm/v3/utils/safeAsyncLocalStorage.js +3 -0
  231. package/dist/esm/v3/utils/safeAsyncLocalStorage.js.map +1 -1
  232. package/dist/esm/v3/wait-until-api.d.ts +2 -0
  233. package/dist/esm/v3/wait-until-api.js +5 -0
  234. package/dist/esm/v3/wait-until-api.js.map +1 -0
  235. package/dist/esm/v3/waitUntil/index.d.ts +11 -0
  236. package/dist/esm/v3/waitUntil/index.js +40 -0
  237. package/dist/esm/v3/waitUntil/index.js.map +1 -0
  238. package/dist/esm/v3/waitUntil/manager.d.ts +8 -0
  239. package/dist/esm/v3/waitUntil/manager.js +24 -0
  240. package/dist/esm/v3/waitUntil/manager.js.map +1 -0
  241. package/dist/esm/v3/waitUntil/types.d.ts +9 -0
  242. package/dist/esm/v3/waitUntil/types.js +2 -0
  243. package/dist/esm/v3/waitUntil/types.js.map +1 -0
  244. package/dist/esm/v3/workers/index.d.ts +3 -1
  245. package/dist/esm/v3/workers/index.js +3 -1
  246. package/dist/esm/v3/workers/index.js.map +1 -1
  247. package/dist/esm/v3/workers/taskExecutor.js +58 -11
  248. package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
  249. package/package.json +39 -1
@@ -0,0 +1,487 @@
1
+ import { SerializableJson } from "../../schemas/json.js";
2
+ import { TriggerApiRequestOptions } from "../apiClient/index.js";
3
+ import { RunTags } from "../schemas/api.js";
4
+ import { MachineCpu, MachineMemory, RetryOptions, TaskMetadata, TaskRunContext } from "../schemas/index.js";
5
+ import { QueueOptions } from "../schemas/schemas.js";
6
+ import { IdempotencyKey } from "./idempotencyKeys.js";
7
+ import { AnySchemaParseFn, inferSchemaIn, inferSchemaOut, Schema } from "./schemas.js";
8
+ import { Prettify } from "./utils.js";
9
+ import { inferToolParameters, ToolTaskParameters } from "./tools.js";
10
+ type RequireOne<T, K extends keyof T> = {
11
+ [X in Exclude<keyof T, K>]?: T[X];
12
+ } & {
13
+ [P in K]-?: T[P];
14
+ };
15
+ export type Queue = RequireOne<QueueOptions, "name">;
16
+ export type TaskSchema = Schema;
17
+ export type { inferSchemaIn } from "./schemas.js";
18
+ type TaskRunConcurrencyOptions = Queue;
19
+ export declare class SubtaskUnwrapError extends Error {
20
+ readonly taskId: string;
21
+ readonly runId: string;
22
+ readonly cause?: unknown;
23
+ constructor(taskId: string, runId: string, subtaskError: unknown);
24
+ }
25
+ export declare class TaskRunPromise<T> extends Promise<TaskRunResult<T>> {
26
+ private readonly taskId;
27
+ constructor(executor: (resolve: (value: TaskRunResult<T> | PromiseLike<TaskRunResult<T>>) => void, reject: (reason?: any) => void) => void, taskId: string);
28
+ unwrap(): Promise<T>;
29
+ }
30
+ export type InitOutput = Record<string, any> | void | undefined;
31
+ export type RunFnParams<TInitOutput extends InitOutput> = Prettify<{
32
+ /** Metadata about the task, run, attempt, queue, environment, organization, project and batch. */
33
+ ctx: Context;
34
+ /** If you use the `init` function, this will be whatever you returned. */
35
+ init?: TInitOutput;
36
+ /** Abort signal that is aborted when a task run exceeds it's maxDuration. Can be used to automatically cancel downstream requests */
37
+ signal?: AbortSignal;
38
+ }>;
39
+ export type MiddlewareFnParams = Prettify<{
40
+ ctx: Context;
41
+ next: () => Promise<void>;
42
+ /** Abort signal that is aborted when a task run exceeds it's maxDuration. Can be used to automatically cancel downstream requests */
43
+ signal?: AbortSignal;
44
+ }>;
45
+ export type InitFnParams = Prettify<{
46
+ ctx: Context;
47
+ /** Abort signal that is aborted when a task run exceeds it's maxDuration. Can be used to automatically cancel downstream requests */
48
+ signal?: AbortSignal;
49
+ }>;
50
+ export type StartFnParams = Prettify<{
51
+ ctx: Context;
52
+ /** Abort signal that is aborted when a task run exceeds it's maxDuration. Can be used to automatically cancel downstream requests */
53
+ signal?: AbortSignal;
54
+ }>;
55
+ export type Context = TaskRunContext;
56
+ export type SuccessFnParams<TInitOutput extends InitOutput> = RunFnParams<TInitOutput>;
57
+ export type FailureFnParams<TInitOutput extends InitOutput> = RunFnParams<TInitOutput>;
58
+ export type HandleErrorFnParams<TInitOutput extends InitOutput> = RunFnParams<TInitOutput> & Prettify<{
59
+ retry?: RetryOptions;
60
+ retryAt?: Date;
61
+ retryDelayInMs?: number;
62
+ }>;
63
+ export type HandleErrorModificationOptions = {
64
+ skipRetrying?: boolean | undefined;
65
+ retryAt?: Date | undefined;
66
+ retryDelayInMs?: number | undefined;
67
+ retry?: RetryOptions | undefined;
68
+ error?: unknown;
69
+ };
70
+ export type HandleErrorResult = undefined | void | HandleErrorModificationOptions | Promise<undefined | void | HandleErrorModificationOptions>;
71
+ export type HandleErrorArgs = {
72
+ ctx: Context;
73
+ init: unknown;
74
+ retry?: RetryOptions;
75
+ retryAt?: Date;
76
+ retryDelayInMs?: number;
77
+ /** Abort signal that is aborted when a task run exceeds it's maxDuration. Can be used to automatically cancel downstream requests */
78
+ signal?: AbortSignal;
79
+ };
80
+ export type HandleErrorFunction = (payload: any, error: unknown, params: HandleErrorArgs) => HandleErrorResult;
81
+ type CommonTaskOptions<TIdentifier extends string, TPayload = void, TOutput = unknown, TInitOutput extends InitOutput = any> = {
82
+ /** An id for your task. This must be unique inside your project and not change between versions. */
83
+ id: TIdentifier;
84
+ description?: string;
85
+ /** The retry settings when an uncaught error is thrown.
86
+ *
87
+ * If omitted it will use the values in your `trigger.config.ts` file.
88
+ *
89
+ * @example
90
+ *
91
+ * ```
92
+ * export const taskWithRetries = task({
93
+ id: "task-with-retries",
94
+ retry: {
95
+ maxAttempts: 10,
96
+ factor: 1.8,
97
+ minTimeoutInMs: 500,
98
+ maxTimeoutInMs: 30_000,
99
+ randomize: false,
100
+ },
101
+ run: async ({ payload, ctx }) => {
102
+ //...
103
+ },
104
+ });
105
+ * ```
106
+ * */
107
+ retry?: RetryOptions;
108
+ /** Used to configure what should happen when more than one run is triggered at the same time.
109
+ *
110
+ * @example
111
+ * one at a time execution
112
+ *
113
+ * ```ts
114
+ * export const oneAtATime = task({
115
+ id: "one-at-a-time",
116
+ queue: {
117
+ concurrencyLimit: 1,
118
+ },
119
+ run: async ({ payload, ctx }) => {
120
+ //...
121
+ },
122
+ });
123
+ * ```
124
+ */
125
+ queue?: QueueOptions;
126
+ /** Configure the spec of the machine you want your task to run on.
127
+ *
128
+ * @example
129
+ *
130
+ * ```ts
131
+ * export const heavyTask = task({
132
+ id: "heavy-task",
133
+ machine: {
134
+ cpu: 2,
135
+ memory: 4,
136
+ },
137
+ run: async ({ payload, ctx }) => {
138
+ //...
139
+ },
140
+ });
141
+ * ```
142
+ */
143
+ machine?: {
144
+ /** vCPUs. The default is 0.5.
145
+ *
146
+ * Possible values:
147
+ * - 0.25
148
+ * - 0.5
149
+ * - 1
150
+ * - 2
151
+ * - 4
152
+ * @deprecated use preset instead
153
+ */
154
+ cpu?: MachineCpu;
155
+ /** In GBs of RAM. The default is 1.
156
+ *
157
+ * Possible values:
158
+ * - 0.25
159
+ * - 0.5
160
+ * - 1
161
+ * - 2
162
+ * - 4
163
+ * - 8
164
+ * * @deprecated use preset instead
165
+ */
166
+ memory?: MachineMemory;
167
+ /** Preset to use for the machine. Defaults to small-1x */
168
+ preset?: "micro" | "small-1x" | "small-2x" | "medium-1x" | "medium-2x" | "large-1x" | "large-2x";
169
+ };
170
+ /**
171
+ * The maximum duration in compute-time seconds that a task run is allowed to run. If the task run exceeds this duration, it will be stopped.
172
+ *
173
+ * Minimum value is 5 seconds
174
+ */
175
+ maxDuration?: number;
176
+ /** This gets called when a task is triggered. It's where you put the code you want to execute.
177
+ *
178
+ * @param payload - The payload that is passed to your task when it's triggered. This must be JSON serializable.
179
+ * @param params - Metadata about the run.
180
+ */
181
+ run: (payload: TPayload, params: RunFnParams<TInitOutput>) => Promise<TOutput>;
182
+ /**
183
+ * init is called before the run function is called. It's useful for setting up any global state.
184
+ */
185
+ init?: (payload: TPayload, params: InitFnParams) => Promise<TInitOutput>;
186
+ /**
187
+ * cleanup is called after the run function has completed.
188
+ */
189
+ cleanup?: (payload: TPayload, params: RunFnParams<TInitOutput>) => Promise<void>;
190
+ /**
191
+ * handleError is called when the run function throws an error. It can be used to modify the error or return new retry options.
192
+ */
193
+ handleError?: (payload: TPayload, error: unknown, params: HandleErrorFnParams<TInitOutput>) => HandleErrorResult;
194
+ /**
195
+ * middleware allows you to run code "around" the run function. This can be useful for logging, metrics, or other cross-cutting concerns.
196
+ *
197
+ * When writing middleware, you should always call `next()` to continue the execution of the task:
198
+ *
199
+ * ```ts
200
+ * export const middlewareTask = task({
201
+ * id: "middleware-task",
202
+ * middleware: async (payload, { ctx, next }) => {
203
+ * console.log("Before run");
204
+ * await next();
205
+ * console.log("After run");
206
+ * },
207
+ * run: async (payload, { ctx }) => {}
208
+ * });
209
+ * ```
210
+ */
211
+ middleware?: (payload: TPayload, params: MiddlewareFnParams) => Promise<void>;
212
+ /**
213
+ * onStart is called the first time a task is executed in a run (not before every retry)
214
+ */
215
+ onStart?: (payload: TPayload, params: StartFnParams) => Promise<void>;
216
+ /**
217
+ * onSuccess is called after the run function has successfully completed.
218
+ */
219
+ onSuccess?: (payload: TPayload, output: TOutput, params: SuccessFnParams<TInitOutput>) => Promise<void>;
220
+ /**
221
+ * onFailure is called after a task run has failed (meaning the run function threw an error and won't be retried anymore)
222
+ */
223
+ onFailure?: (payload: TPayload, error: unknown, params: FailureFnParams<TInitOutput>) => Promise<void>;
224
+ };
225
+ export type TaskOptions<TIdentifier extends string, TPayload = void, TOutput = unknown, TInitOutput extends InitOutput = any> = CommonTaskOptions<TIdentifier, TPayload, TOutput, TInitOutput>;
226
+ export type TaskWithSchemaOptions<TIdentifier extends string, TSchema extends TaskSchema | undefined = undefined, TOutput = unknown, TInitOutput extends InitOutput = any> = CommonTaskOptions<TIdentifier, inferSchemaOut<TSchema>, TOutput, TInitOutput> & {
227
+ schema?: TSchema;
228
+ };
229
+ export type TaskWithToolOptions<TIdentifier extends string, TParameters extends ToolTaskParameters, TOutput = unknown, TInitOutput extends InitOutput = any> = CommonTaskOptions<TIdentifier, inferToolParameters<TParameters>, TOutput, TInitOutput> & {
230
+ parameters: TParameters;
231
+ };
232
+ declare const __output: unique symbol;
233
+ declare const __payload: unique symbol;
234
+ type BrandRun<P, O> = {
235
+ [__output]: O;
236
+ [__payload]: P;
237
+ };
238
+ export type BrandedRun<T, P, O> = T & BrandRun<O, P>;
239
+ export type RunHandle<TTaskIdentifier extends string, TPayload, TOutput> = BrandedRun<{
240
+ id: string;
241
+ /**
242
+ * An auto-generated JWT that can be used to access the run
243
+ */
244
+ publicAccessToken: string;
245
+ taskIdentifier: TTaskIdentifier;
246
+ }, TPayload, TOutput>;
247
+ export type AnyRunHandle = RunHandle<string, any, any>;
248
+ /**
249
+ * A BatchRunHandle can be used to retrieve the runs of a batch trigger in a typesafe manner.
250
+ */
251
+ export type BatchRunHandle<TTaskIdentifier extends string, TPayload, TOutput> = BrandedRun<{
252
+ batchId: string;
253
+ runs: Array<RunHandle<TTaskIdentifier, TPayload, TOutput>>;
254
+ publicAccessToken: string;
255
+ taskIdentifier: TTaskIdentifier;
256
+ }, TOutput, TPayload>;
257
+ export type RunHandleOutput<TRunHandle> = TRunHandle extends RunHandle<string, any, infer TOutput> ? TOutput : never;
258
+ export type RunHandlePayload<TRunHandle> = TRunHandle extends RunHandle<string, infer TPayload, any> ? TPayload : never;
259
+ export type RunHandleTaskIdentifier<TRunHandle> = TRunHandle extends RunHandle<infer TTaskIdentifier, any, any> ? TTaskIdentifier : never;
260
+ export type TaskRunResult<TOutput = any> = {
261
+ ok: true;
262
+ id: string;
263
+ output: TOutput;
264
+ } | {
265
+ ok: false;
266
+ id: string;
267
+ error: unknown;
268
+ };
269
+ export type BatchResult<TOutput = any> = {
270
+ id: string;
271
+ runs: TaskRunResult<TOutput>[];
272
+ };
273
+ export type BatchItem<TInput> = {
274
+ payload: TInput;
275
+ options?: TaskRunOptions;
276
+ };
277
+ export interface Task<TIdentifier extends string, TInput = void, TOutput = any> {
278
+ /**
279
+ * The id of the task.
280
+ */
281
+ id: TIdentifier;
282
+ description?: string;
283
+ /**
284
+ * Trigger a task with the given payload, and continue without waiting for the result. If you want to wait for the result, use `triggerAndWait`. Returns the id of the triggered task run.
285
+ * @param payload
286
+ * @param options
287
+ * @returns RunHandle
288
+ * - `id` - The id of the triggered task run.
289
+ */
290
+ trigger: (payload: TInput, options?: TaskRunOptions, requestOptions?: TriggerApiRequestOptions) => Promise<RunHandle<TIdentifier, TInput, TOutput>>;
291
+ /**
292
+ * Batch trigger multiple task runs with the given payloads, and continue without waiting for the results. If you want to wait for the results, use `batchTriggerAndWait`. Returns the id of the triggered batch.
293
+ * @param items
294
+ * @returns InvokeBatchHandle
295
+ * - `batchId` - The id of the triggered batch.
296
+ * - `runs` - The ids of the triggered task runs.
297
+ */
298
+ batchTrigger: (items: Array<BatchItem<TInput>>, requestOptions?: TriggerApiRequestOptions) => Promise<BatchRunHandle<TIdentifier, TInput, TOutput>>;
299
+ /**
300
+ * Trigger a task with the given payload, and wait for the result. Returns the result of the task run
301
+ * @param payload
302
+ * @param options - Options for the task run
303
+ * @returns TaskRunResult
304
+ * @example
305
+ * ```
306
+ * const result = await task.triggerAndWait({ foo: "bar" });
307
+ *
308
+ * if (result.ok) {
309
+ * console.log(result.output);
310
+ * } else {
311
+ * console.error(result.error);
312
+ * }
313
+ * ```
314
+ */
315
+ triggerAndWait: (payload: TInput, options?: TaskRunOptions) => TaskRunPromise<TOutput>;
316
+ /**
317
+ * Batch trigger multiple task runs with the given payloads, and wait for the results. Returns the results of the task runs.
318
+ * @param items
319
+ * @returns BatchResult
320
+ * @example
321
+ * ```
322
+ * const result = await task.batchTriggerAndWait([
323
+ * { payload: { foo: "bar" } },
324
+ * { payload: { foo: "baz" } },
325
+ * ]);
326
+ *
327
+ * for (const run of result.runs) {
328
+ * if (run.ok) {
329
+ * console.log(run.output);
330
+ * } else {
331
+ * console.error(run.error);
332
+ * }
333
+ * }
334
+ * ```
335
+ */
336
+ batchTriggerAndWait: (items: Array<BatchItem<TInput>>) => Promise<BatchResult<TOutput>>;
337
+ }
338
+ export interface TaskWithSchema<TIdentifier extends string, TSchema extends TaskSchema | undefined = undefined, TOutput = any> extends Task<TIdentifier, inferSchemaIn<TSchema>, TOutput> {
339
+ schema?: TSchema;
340
+ }
341
+ export interface ToolTask<TIdentifier extends string, TParameters extends ToolTaskParameters, TOutput = any> extends Task<TIdentifier, inferToolParameters<TParameters>, TOutput> {
342
+ tool: {
343
+ parameters: TParameters;
344
+ description?: string;
345
+ execute: (args: inferToolParameters<TParameters>) => Promise<TOutput>;
346
+ };
347
+ }
348
+ export type AnyTask = Task<string, any, any>;
349
+ export type TaskPayload<TTask extends AnyTask> = TTask extends Task<string, infer TInput, any> ? TInput : never;
350
+ export type TaskOutput<TTask extends AnyTask> = TTask extends Task<string, any, infer TOutput> ? TOutput : never;
351
+ export type TaskOutputHandle<TTask extends AnyTask> = TTask extends Task<infer TIdentifier, infer TInput, infer TOutput> ? RunHandle<TIdentifier, TOutput, TInput> : never;
352
+ export type TaskBatchOutputHandle<TTask extends AnyTask> = TTask extends Task<infer TIdentifier, infer TInput, infer TOutput> ? BatchRunHandle<TIdentifier, TOutput, TInput> : never;
353
+ export type TaskIdentifier<TTask extends AnyTask> = TTask extends Task<infer TIdentifier, any, any> ? TIdentifier : never;
354
+ export type TriggerJwtOptions = {
355
+ /**
356
+ * The expiration time of the JWT. This can be a string like "1h" or a Date object.
357
+ *
358
+ * Defaults to 1 hour.
359
+ */
360
+ expirationTime?: number | Date | string;
361
+ };
362
+ export type TaskRunOptions = {
363
+ /**
364
+ * A unique key that can be used to ensure that a task is only triggered once per key.
365
+ *
366
+ * You can use `idempotencyKeys.create` to create an idempotency key first, and then pass it to the task options.
367
+ *
368
+ * @example
369
+ *
370
+ * ```typescript
371
+ * import { idempotencyKeys, task } from "@trigger.dev/sdk/v3";
372
+ *
373
+ * export const myTask = task({
374
+ * id: "my-task",
375
+ * run: async (payload: any) => {
376
+ * // scoped to the task run by default
377
+ * const idempotencyKey = await idempotencyKeys.create("my-task-key");
378
+ *
379
+ * // Use the idempotency key when triggering child tasks
380
+ * await childTask.triggerAndWait(payload, { idempotencyKey });
381
+ *
382
+ * // scoped globally, does not include the task run ID
383
+ * const globalIdempotencyKey = await idempotencyKeys.create("my-task-key", { scope: "global" });
384
+ *
385
+ * await childTask.triggerAndWait(payload, { idempotencyKey: globalIdempotencyKey });
386
+ *
387
+ * // You can also pass a string directly, which is the same as a global idempotency key
388
+ * await childTask.triggerAndWait(payload, { idempotencyKey: "my-very-unique-key" });
389
+ * }
390
+ * });
391
+ * ```
392
+ *
393
+ * When triggering a task inside another task, we automatically inject the run ID into the key material.
394
+ *
395
+ * If you are triggering a task from your backend, ensure you include some sufficiently unique key material to prevent collisions.
396
+ *
397
+ * @example
398
+ *
399
+ * ```typescript
400
+ * import { idempotencyKeys, tasks } from "@trigger.dev/sdk/v3";
401
+ *
402
+ * // Somewhere in your backend
403
+ * const idempotencyKey = await idempotenceKeys.create(["my-task-trigger", "user-123"]);
404
+ * await tasks.trigger("my-task", { foo: "bar" }, { idempotencyKey });
405
+ * ```
406
+ *
407
+ */
408
+ idempotencyKey?: IdempotencyKey | string | string[];
409
+ maxAttempts?: number;
410
+ queue?: TaskRunConcurrencyOptions;
411
+ concurrencyKey?: string;
412
+ /**
413
+ * The delay before the task is executed. This can be a string like "1h" or a Date object.
414
+ *
415
+ * @example
416
+ * "1h" - 1 hour
417
+ * "30d" - 30 days
418
+ * "15m" - 15 minutes
419
+ * "2w" - 2 weeks
420
+ * "60s" - 60 seconds
421
+ * new Date("2025-01-01T00:00:00Z")
422
+ */
423
+ delay?: string | Date;
424
+ /**
425
+ * Set a time-to-live for this run. If the run is not executed within this time, it will be removed from the queue and never execute.
426
+ *
427
+ * @example
428
+ *
429
+ * ```ts
430
+ * await myTask.trigger({ foo: "bar" }, { ttl: "1h" });
431
+ * await myTask.trigger({ foo: "bar" }, { ttl: 60 * 60 }); // 1 hour
432
+ * ```
433
+ *
434
+ * The minimum value is 1 second. Setting the `ttl` to `0` will disable the TTL and the run will never expire.
435
+ *
436
+ * **Note:** Runs in development have a default `ttl` of 10 minutes. You can override this by setting the `ttl` option.
437
+ */
438
+ ttl?: string | number;
439
+ /**
440
+ * Tags to attach to the run. Tags can be used to filter runs in the dashboard and using the SDK.
441
+ *
442
+ * You can set up to 10 tags per run, they must be less than 128 characters each.
443
+ *
444
+ * We recommend prefixing tags with a namespace using an underscore or colon, like `user_1234567` or `org:9876543`.
445
+ *
446
+ * @example
447
+ *
448
+ * ```ts
449
+ * await myTask.trigger({ foo: "bar" }, { tags: ["user:1234567", "org:9876543"] });
450
+ * ```
451
+ */
452
+ tags?: RunTags;
453
+ /**
454
+ * Metadata to attach to the run. Metadata can be used to store additional information about the run. Limited to 4KB.
455
+ */
456
+ metadata?: Record<string, SerializableJson>;
457
+ /**
458
+ * The maximum duration in compute-time seconds that a task run is allowed to run. If the task run exceeds this duration, it will be stopped.
459
+ *
460
+ * This will override the task's maxDuration.
461
+ *
462
+ * Minimum value is 5 seconds
463
+ */
464
+ maxDuration?: number;
465
+ };
466
+ export type TaskMetadataWithFunctions = TaskMetadata & {
467
+ fns: {
468
+ run: (payload: any, params: RunFnParams<any>) => Promise<any>;
469
+ init?: (payload: any, params: InitFnParams) => Promise<InitOutput>;
470
+ cleanup?: (payload: any, params: RunFnParams<any>) => Promise<void>;
471
+ middleware?: (payload: any, params: MiddlewareFnParams) => Promise<void>;
472
+ handleError?: (payload: any, error: unknown, params: HandleErrorFnParams<any>) => HandleErrorResult;
473
+ onSuccess?: (payload: any, output: any, params: SuccessFnParams<any>) => Promise<void>;
474
+ onFailure?: (payload: any, error: unknown, params: FailureFnParams<any>) => Promise<void>;
475
+ onStart?: (payload: any, params: StartFnParams) => Promise<void>;
476
+ parsePayload?: AnySchemaParseFn;
477
+ };
478
+ };
479
+ export type RunTypes<TTaskIdentifier extends string, TPayload, TOutput> = {
480
+ output: TOutput;
481
+ payload: TPayload;
482
+ taskIdentifier: TTaskIdentifier;
483
+ };
484
+ export type AnyRunTypes = RunTypes<string, any, any>;
485
+ export type InferRunTypes<T> = T extends RunHandle<infer TTaskIdentifier, infer TPayload, infer TOutput> ? RunTypes<TTaskIdentifier, TPayload, TOutput> : T extends Task<infer TTaskIdentifier, infer TPayload, infer TOutput> ? RunTypes<TTaskIdentifier, TPayload, TOutput> : AnyRunTypes;
486
+ export type RunHandleFromTypes<TRunTypes extends AnyRunTypes> = RunHandle<TRunTypes["taskIdentifier"], TRunTypes["payload"], TRunTypes["output"]>;
487
+ export type BatchRunHandleFromTypes<TRunTypes extends AnyRunTypes> = BatchRunHandle<TRunTypes["taskIdentifier"], TRunTypes["payload"], TRunTypes["output"]>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskRunPromise = exports.SubtaskUnwrapError = void 0;
4
+ class SubtaskUnwrapError extends Error {
5
+ taskId;
6
+ runId;
7
+ cause;
8
+ constructor(taskId, runId, subtaskError) {
9
+ if (subtaskError instanceof Error) {
10
+ super(`Error in ${taskId}: ${subtaskError.message}`);
11
+ this.cause = subtaskError;
12
+ this.name = "SubtaskUnwrapError";
13
+ }
14
+ else {
15
+ super(`Error in ${taskId}`);
16
+ this.name = "SubtaskUnwrapError";
17
+ this.cause = subtaskError;
18
+ }
19
+ this.taskId = taskId;
20
+ this.runId = runId;
21
+ }
22
+ }
23
+ exports.SubtaskUnwrapError = SubtaskUnwrapError;
24
+ class TaskRunPromise extends Promise {
25
+ taskId;
26
+ constructor(executor, taskId) {
27
+ super(executor);
28
+ this.taskId = taskId;
29
+ }
30
+ unwrap() {
31
+ return this.then((result) => {
32
+ if (result.ok) {
33
+ return result.output;
34
+ }
35
+ else {
36
+ throw new SubtaskUnwrapError(this.taskId, result.id, result.error);
37
+ }
38
+ });
39
+ }
40
+ }
41
+ exports.TaskRunPromise = TaskRunPromise;
42
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../../src/v3/types/tasks.ts"],"names":[],"mappings":";;;AA8BA,MAAa,kBAAmB,SAAQ,KAAK;IAC3B,MAAM,CAAS;IACf,KAAK,CAAS;IACd,KAAK,CAAW;IAEhC,YAAY,MAAc,EAAE,KAAa,EAAE,YAAqB;QAC9D,IAAI,YAAY,YAAY,KAAK,EAAE,CAAC;YAClC,KAAK,CAAC,YAAY,MAAM,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAnBD,gDAmBC;AAED,MAAa,cAAkB,SAAQ,OAAyB;IAM3C;IALnB,YACE,QAGS,EACQ,MAAc;QAE/B,KAAK,CAAC,QAAQ,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAAQ;IAGjC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,OAAO,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AApBD,wCAoBC"}
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+ import type { Schema as AISchema } from "ai";
3
+ import { Schema } from "./schemas.js";
4
+ export type ToolTaskParameters = z.ZodTypeAny | AISchema<any>;
5
+ export type inferToolParameters<PARAMETERS extends ToolTaskParameters> = PARAMETERS extends AISchema<any> ? PARAMETERS["_type"] : PARAMETERS extends z.ZodTypeAny ? z.infer<PARAMETERS> : never;
6
+ export declare function convertToolParametersToSchema<TToolParameters extends ToolTaskParameters>(toolParameters: TToolParameters): Schema;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertToolParametersToSchema = convertToolParametersToSchema;
4
+ const zod_1 = require("zod");
5
+ function convertToolParametersToSchema(toolParameters) {
6
+ return toolParameters instanceof zod_1.z.ZodSchema
7
+ ? toolParameters
8
+ : convertAISchemaToTaskSchema(toolParameters);
9
+ }
10
+ function convertAISchemaToTaskSchema(schema) {
11
+ return (payload) => {
12
+ const result = schema.validate?.(payload);
13
+ if (!result) {
14
+ throw new Error("Invalid payload");
15
+ }
16
+ if (!result.success) {
17
+ throw result.error;
18
+ }
19
+ return result.value;
20
+ };
21
+ }
22
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/v3/types/tools.ts"],"names":[],"mappings":";;AAaA,sEAMC;AAnBD,6BAAwB;AAaxB,SAAgB,6BAA6B,CAC3C,cAA+B;IAE/B,OAAO,cAAc,YAAY,OAAC,CAAC,SAAS;QAC1C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAqB;IACxD,OAAO,CAAC,OAAgB,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Attributes } from "@opentelemetry/api";
2
2
  export declare const NULL_SENTINEL = "$@null((";
3
- export declare function flattenAttributes(obj: Record<string, unknown> | Array<unknown> | string | boolean | number | null | undefined, prefix?: string): Attributes;
3
+ export declare const CIRCULAR_REFERENCE_SENTINEL = "$@circular((";
4
+ export declare function flattenAttributes(obj: Record<string, unknown> | Array<unknown> | string | boolean | number | null | undefined, prefix?: string, seen?: WeakSet<object>): Attributes;
4
5
  export declare function unflattenAttributes(obj: Attributes): Record<string, unknown> | string | number | boolean | null | undefined;
5
6
  export declare function primitiveValueOrflattenedAttributes(obj: Record<string, unknown> | Array<unknown> | string | boolean | number | undefined, prefix: string | undefined): Attributes | string | number | boolean | undefined;