@trigger.dev/core 0.0.0-prerelease-20250213143202 → 0.0.0-python-preview-20250226140121

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 (151) hide show
  1. package/dist/commonjs/schemas/api.d.ts +1999 -1999
  2. package/dist/commonjs/schemas/events.d.ts +8 -8
  3. package/dist/commonjs/schemas/fetch.d.ts +54 -54
  4. package/dist/commonjs/schemas/integrations.d.ts +4 -4
  5. package/dist/commonjs/schemas/notifications.d.ts +80 -80
  6. package/dist/commonjs/schemas/properties.d.ts +4 -4
  7. package/dist/commonjs/schemas/request.d.ts +4 -4
  8. package/dist/commonjs/schemas/requestFilter.d.ts +2 -2
  9. package/dist/commonjs/schemas/runs.d.ts +39 -39
  10. package/dist/commonjs/schemas/schedules.d.ts +12 -12
  11. package/dist/commonjs/schemas/statuses.d.ts +24 -24
  12. package/dist/commonjs/schemas/tasks.d.ts +50 -50
  13. package/dist/commonjs/schemas/triggers.d.ts +36 -36
  14. package/dist/commonjs/v3/apiClient/index.d.ts +51 -51
  15. package/dist/commonjs/v3/apiClientManager/index.d.ts +1 -1
  16. package/dist/commonjs/v3/apps/provider.d.ts +1 -0
  17. package/dist/commonjs/v3/apps/provider.js +1 -0
  18. package/dist/commonjs/v3/apps/provider.js.map +1 -1
  19. package/dist/commonjs/v3/errors.d.ts +1 -0
  20. package/dist/commonjs/v3/errors.js +31 -0
  21. package/dist/commonjs/v3/errors.js.map +1 -1
  22. package/dist/commonjs/v3/index.d.ts +1 -0
  23. package/dist/commonjs/v3/index.js +1 -0
  24. package/dist/commonjs/v3/index.js.map +1 -1
  25. package/dist/commonjs/v3/links.d.ts +3 -0
  26. package/dist/commonjs/v3/links.js +3 -0
  27. package/dist/commonjs/v3/links.js.map +1 -1
  28. package/dist/commonjs/v3/run-timeline-metrics-api.d.ts +2 -0
  29. package/dist/commonjs/v3/run-timeline-metrics-api.js +8 -0
  30. package/dist/commonjs/v3/run-timeline-metrics-api.js.map +1 -0
  31. package/dist/commonjs/v3/runTimelineMetrics/index.d.ts +23 -0
  32. package/dist/commonjs/v3/runTimelineMetrics/index.js +160 -0
  33. package/dist/commonjs/v3/runTimelineMetrics/index.js.map +1 -0
  34. package/dist/commonjs/v3/runTimelineMetrics/runTimelineMetricsManager.d.ts +13 -0
  35. package/dist/commonjs/v3/runTimelineMetrics/runTimelineMetricsManager.js +52 -0
  36. package/dist/commonjs/v3/runTimelineMetrics/runTimelineMetricsManager.js.map +1 -0
  37. package/dist/commonjs/v3/runTimelineMetrics/types.d.ts +11 -0
  38. package/dist/commonjs/v3/runTimelineMetrics/types.js +3 -0
  39. package/dist/commonjs/v3/runTimelineMetrics/types.js.map +1 -0
  40. package/dist/commonjs/v3/schemas/api.d.ts +293 -293
  41. package/dist/commonjs/v3/schemas/build.d.ts +196 -196
  42. package/dist/commonjs/v3/schemas/common.d.ts +24 -24
  43. package/dist/commonjs/v3/schemas/common.js +1 -0
  44. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  45. package/dist/commonjs/v3/schemas/fetch.d.ts +13 -13
  46. package/dist/commonjs/v3/schemas/messages.d.ts +6605 -4119
  47. package/dist/commonjs/v3/schemas/messages.js +22 -0
  48. package/dist/commonjs/v3/schemas/messages.js.map +1 -1
  49. package/dist/commonjs/v3/schemas/openTelemetry.d.ts +20 -20
  50. package/dist/commonjs/v3/schemas/resources.d.ts +52 -52
  51. package/dist/commonjs/v3/schemas/schemas.d.ts +485 -352
  52. package/dist/commonjs/v3/schemas/schemas.js +17 -1
  53. package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
  54. package/dist/commonjs/v3/schemas/webhooks.d.ts +238 -238
  55. package/dist/commonjs/v3/semanticInternalAttributes.d.ts +1 -0
  56. package/dist/commonjs/v3/semanticInternalAttributes.js +1 -0
  57. package/dist/commonjs/v3/semanticInternalAttributes.js.map +1 -1
  58. package/dist/commonjs/v3/taskContext/index.js +1 -1
  59. package/dist/commonjs/v3/taskContext/index.js.map +1 -1
  60. package/dist/commonjs/v3/tracer.d.ts +10 -2
  61. package/dist/commonjs/v3/tracer.js +13 -4
  62. package/dist/commonjs/v3/tracer.js.map +1 -1
  63. package/dist/commonjs/v3/utils/flattenAttributes.js.map +1 -1
  64. package/dist/commonjs/v3/utils/globals.d.ts +2 -0
  65. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  66. package/dist/commonjs/v3/workers/index.d.ts +1 -0
  67. package/dist/commonjs/v3/workers/index.js +3 -1
  68. package/dist/commonjs/v3/workers/index.js.map +1 -1
  69. package/dist/commonjs/v3/workers/taskExecutor.js +19 -9
  70. package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
  71. package/dist/commonjs/v3/zodMessageHandler.d.ts +2 -2
  72. package/dist/commonjs/v3/zodSocket.d.ts +2 -2
  73. package/dist/commonjs/v3/zodSocket.js +3 -2
  74. package/dist/commonjs/v3/zodSocket.js.map +1 -1
  75. package/dist/commonjs/version.js +1 -1
  76. package/dist/esm/schemas/api.d.ts +2001 -2001
  77. package/dist/esm/schemas/events.d.ts +8 -8
  78. package/dist/esm/schemas/fetch.d.ts +54 -54
  79. package/dist/esm/schemas/integrations.d.ts +4 -4
  80. package/dist/esm/schemas/notifications.d.ts +80 -80
  81. package/dist/esm/schemas/properties.d.ts +4 -4
  82. package/dist/esm/schemas/request.d.ts +4 -4
  83. package/dist/esm/schemas/requestFilter.d.ts +2 -2
  84. package/dist/esm/schemas/runs.d.ts +39 -39
  85. package/dist/esm/schemas/schedules.d.ts +12 -12
  86. package/dist/esm/schemas/statuses.d.ts +24 -24
  87. package/dist/esm/schemas/tasks.d.ts +50 -50
  88. package/dist/esm/schemas/triggers.d.ts +36 -36
  89. package/dist/esm/v3/apiClient/index.d.ts +51 -51
  90. package/dist/esm/v3/apiClientManager/index.d.ts +1 -1
  91. package/dist/esm/v3/apps/provider.d.ts +1 -0
  92. package/dist/esm/v3/apps/provider.js +1 -0
  93. package/dist/esm/v3/apps/provider.js.map +1 -1
  94. package/dist/esm/v3/errors.d.ts +1 -0
  95. package/dist/esm/v3/errors.js +30 -0
  96. package/dist/esm/v3/errors.js.map +1 -1
  97. package/dist/esm/v3/index.d.ts +1 -0
  98. package/dist/esm/v3/index.js +1 -0
  99. package/dist/esm/v3/index.js.map +1 -1
  100. package/dist/esm/v3/links.d.ts +3 -0
  101. package/dist/esm/v3/links.js +3 -0
  102. package/dist/esm/v3/links.js.map +1 -1
  103. package/dist/esm/v3/run-timeline-metrics-api.d.ts +2 -0
  104. package/dist/esm/v3/run-timeline-metrics-api.js +5 -0
  105. package/dist/esm/v3/run-timeline-metrics-api.js.map +1 -0
  106. package/dist/esm/v3/runTimelineMetrics/index.d.ts +23 -0
  107. package/dist/esm/v3/runTimelineMetrics/index.js +156 -0
  108. package/dist/esm/v3/runTimelineMetrics/index.js.map +1 -0
  109. package/dist/esm/v3/runTimelineMetrics/runTimelineMetricsManager.d.ts +13 -0
  110. package/dist/esm/v3/runTimelineMetrics/runTimelineMetricsManager.js +47 -0
  111. package/dist/esm/v3/runTimelineMetrics/runTimelineMetricsManager.js.map +1 -0
  112. package/dist/esm/v3/runTimelineMetrics/types.d.ts +11 -0
  113. package/dist/esm/v3/runTimelineMetrics/types.js +2 -0
  114. package/dist/esm/v3/runTimelineMetrics/types.js.map +1 -0
  115. package/dist/esm/v3/schemas/api.d.ts +293 -293
  116. package/dist/esm/v3/schemas/build.d.ts +196 -196
  117. package/dist/esm/v3/schemas/common.d.ts +24 -24
  118. package/dist/esm/v3/schemas/common.js +1 -0
  119. package/dist/esm/v3/schemas/common.js.map +1 -1
  120. package/dist/esm/v3/schemas/fetch.d.ts +13 -13
  121. package/dist/esm/v3/schemas/messages.d.ts +6605 -4119
  122. package/dist/esm/v3/schemas/messages.js +23 -1
  123. package/dist/esm/v3/schemas/messages.js.map +1 -1
  124. package/dist/esm/v3/schemas/openTelemetry.d.ts +20 -20
  125. package/dist/esm/v3/schemas/resources.d.ts +52 -52
  126. package/dist/esm/v3/schemas/schemas.d.ts +485 -352
  127. package/dist/esm/v3/schemas/schemas.js +16 -0
  128. package/dist/esm/v3/schemas/schemas.js.map +1 -1
  129. package/dist/esm/v3/schemas/webhooks.d.ts +238 -238
  130. package/dist/esm/v3/semanticInternalAttributes.d.ts +1 -0
  131. package/dist/esm/v3/semanticInternalAttributes.js +1 -0
  132. package/dist/esm/v3/semanticInternalAttributes.js.map +1 -1
  133. package/dist/esm/v3/taskContext/index.js +1 -1
  134. package/dist/esm/v3/taskContext/index.js.map +1 -1
  135. package/dist/esm/v3/tracer.d.ts +10 -2
  136. package/dist/esm/v3/tracer.js +13 -4
  137. package/dist/esm/v3/tracer.js.map +1 -1
  138. package/dist/esm/v3/utils/flattenAttributes.js.map +1 -1
  139. package/dist/esm/v3/utils/globals.d.ts +2 -0
  140. package/dist/esm/v3/utils/globals.js.map +1 -1
  141. package/dist/esm/v3/workers/index.d.ts +1 -0
  142. package/dist/esm/v3/workers/index.js +1 -0
  143. package/dist/esm/v3/workers/index.js.map +1 -1
  144. package/dist/esm/v3/workers/taskExecutor.js +20 -10
  145. package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
  146. package/dist/esm/v3/zodMessageHandler.d.ts +2 -2
  147. package/dist/esm/v3/zodSocket.d.ts +2 -2
  148. package/dist/esm/v3/zodSocket.js +3 -2
  149. package/dist/esm/v3/zodSocket.js.map +1 -1
  150. package/dist/esm/version.js +1 -1
  151. package/package.json +1 -1
@@ -0,0 +1,23 @@
1
+ import { Attributes } from "@opentelemetry/api";
2
+ import { TriggerTracerSpanEvent } from "../tracer.js";
3
+ import { RunTimelineMetric, RunTimelineMetricsManager } from "./types.js";
4
+ export declare class RunTimelineMetricsAPI implements RunTimelineMetricsManager {
5
+ #private;
6
+ private static _instance?;
7
+ private constructor();
8
+ static getInstance(): RunTimelineMetricsAPI;
9
+ registerMetric(metric: RunTimelineMetric): void;
10
+ getMetrics(): RunTimelineMetric[];
11
+ /**
12
+ * Measures the execution time of an async function and registers it as a metric
13
+ * @param metricName The name of the metric
14
+ * @param eventName The event name
15
+ * @param attributesOrCallback Optional attributes or the callback function
16
+ * @param callbackFn The async function to measure (if attributes were provided)
17
+ * @returns The result of the callback function
18
+ */
19
+ measureMetric<T>(metricName: string, eventName: string, attributesOrCallback: Attributes | (() => Promise<T>), callbackFn?: () => Promise<T>): Promise<T>;
20
+ convertMetricsToSpanEvents(): TriggerTracerSpanEvent[];
21
+ convertMetricsToSpanAttributes(): Attributes;
22
+ setGlobalManager(manager: RunTimelineMetricsManager): boolean;
23
+ }
@@ -0,0 +1,156 @@
1
+ import { getGlobal, registerGlobal } from "../utils/globals.js";
2
+ import { NoopRunTimelineMetricsManager } from "./runTimelineMetricsManager.js";
3
+ import { flattenAttributes } from "../utils/flattenAttributes.js";
4
+ import { SemanticInternalAttributes } from "../semanticInternalAttributes.js";
5
+ const API_NAME = "run-timeline-metrics";
6
+ const NOOP_MANAGER = new NoopRunTimelineMetricsManager();
7
+ export class RunTimelineMetricsAPI {
8
+ static _instance;
9
+ constructor() { }
10
+ static getInstance() {
11
+ if (!this._instance) {
12
+ this._instance = new RunTimelineMetricsAPI();
13
+ }
14
+ return this._instance;
15
+ }
16
+ registerMetric(metric) {
17
+ this.#getManager().registerMetric(metric);
18
+ }
19
+ getMetrics() {
20
+ return this.#getManager().getMetrics();
21
+ }
22
+ /**
23
+ * Measures the execution time of an async function and registers it as a metric
24
+ * @param metricName The name of the metric
25
+ * @param eventName The event name
26
+ * @param attributesOrCallback Optional attributes or the callback function
27
+ * @param callbackFn The async function to measure (if attributes were provided)
28
+ * @returns The result of the callback function
29
+ */
30
+ async measureMetric(metricName, eventName, attributesOrCallback, callbackFn) {
31
+ // Handle overloaded function signature
32
+ let attributes = {};
33
+ let callback;
34
+ if (typeof attributesOrCallback === "function") {
35
+ callback = attributesOrCallback;
36
+ }
37
+ else {
38
+ attributes = attributesOrCallback || {};
39
+ if (!callbackFn) {
40
+ throw new Error("Callback function is required when attributes are provided");
41
+ }
42
+ callback = callbackFn;
43
+ }
44
+ // Record start time
45
+ const startTime = Date.now();
46
+ try {
47
+ // Execute the callback
48
+ const result = await callback();
49
+ // Calculate duration
50
+ const duration = Date.now() - startTime;
51
+ // Register the metric
52
+ this.registerMetric({
53
+ name: metricName,
54
+ event: eventName,
55
+ attributes: {
56
+ ...attributes,
57
+ duration,
58
+ },
59
+ timestamp: startTime,
60
+ });
61
+ return result;
62
+ }
63
+ catch (error) {
64
+ // Register the metric even if there's an error, but mark it as failed
65
+ const duration = Date.now() - startTime;
66
+ this.registerMetric({
67
+ name: metricName,
68
+ event: eventName,
69
+ attributes: {
70
+ ...attributes,
71
+ duration,
72
+ error: error instanceof Error ? error.message : String(error),
73
+ status: "failed",
74
+ },
75
+ timestamp: startTime,
76
+ });
77
+ // Re-throw the error
78
+ throw error;
79
+ }
80
+ }
81
+ convertMetricsToSpanEvents() {
82
+ const metrics = this.getMetrics();
83
+ const spanEvents = metrics.map((metric) => {
84
+ return {
85
+ name: metric.name,
86
+ startTime: metric.timestamp,
87
+ attributes: {
88
+ ...metric.attributes,
89
+ event: metric.event,
90
+ },
91
+ };
92
+ });
93
+ return spanEvents;
94
+ }
95
+ convertMetricsToSpanAttributes() {
96
+ const metrics = this.getMetrics();
97
+ if (metrics.length === 0) {
98
+ return {};
99
+ }
100
+ // Group metrics by name
101
+ const metricsByName = metrics.reduce((acc, metric) => {
102
+ if (!acc[metric.name]) {
103
+ acc[metric.name] = [];
104
+ }
105
+ acc[metric.name].push(metric);
106
+ return acc;
107
+ }, {});
108
+ // Process each metric type
109
+ const reducedMetrics = metrics.reduce((acc, metric) => {
110
+ acc[metric.event] = {
111
+ name: metric.name,
112
+ timestamp: metric.timestamp,
113
+ event: metric.event,
114
+ ...flattenAttributes(metric.attributes, "attributes"),
115
+ };
116
+ return acc;
117
+ }, {});
118
+ const metricEventRollups = {};
119
+ // Calculate duration for each metric type
120
+ // Calculate duration for each metric type
121
+ for (const [metricName, metricEvents] of Object.entries(metricsByName)) {
122
+ // Skip if there are no events for this metric
123
+ if (metricEvents.length === 0)
124
+ continue;
125
+ // Sort events by timestamp
126
+ const sortedEvents = [...metricEvents].sort((a, b) => a.timestamp - b.timestamp);
127
+ // Get first event timestamp (we know it exists because we checked length above)
128
+ const firstTimestamp = sortedEvents[0].timestamp;
129
+ // Get last event (we know it exists because we checked length above)
130
+ const lastEvent = sortedEvents[sortedEvents.length - 1];
131
+ // Calculate total duration: from first event to (last event + its duration)
132
+ // Use optional chaining and nullish coalescing for safety
133
+ const lastEventDuration = lastEvent.attributes?.duration ?? 0;
134
+ const lastEventEndTime = lastEvent.timestamp + lastEventDuration;
135
+ // Store the total duration for this metric type
136
+ const duration = lastEventEndTime - firstTimestamp;
137
+ const timestamp = firstTimestamp;
138
+ metricEventRollups[metricName] = {
139
+ name: metricName,
140
+ duration,
141
+ timestamp,
142
+ };
143
+ }
144
+ return {
145
+ ...flattenAttributes(reducedMetrics, SemanticInternalAttributes.METRIC_EVENTS),
146
+ ...flattenAttributes(metricEventRollups, SemanticInternalAttributes.METRIC_EVENTS),
147
+ };
148
+ }
149
+ setGlobalManager(manager) {
150
+ return registerGlobal(API_NAME, manager);
151
+ }
152
+ #getManager() {
153
+ return getGlobal(API_NAME) ?? NOOP_MANAGER;
154
+ }
155
+ }
156
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runTimelineMetrics/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { TaskRunExecutionMetrics } from "../schemas/schemas.js";
2
+ import { RunTimelineMetric, RunTimelineMetricsManager } from "./types.js";
3
+ export declare class StandardRunTimelineMetricsManager implements RunTimelineMetricsManager {
4
+ private _metrics;
5
+ registerMetric(metric: RunTimelineMetric): void;
6
+ getMetrics(): RunTimelineMetric[];
7
+ registerMetricsFromExecution(metrics?: TaskRunExecutionMetrics): void;
8
+ seedMetricsFromEnvironment(): void;
9
+ }
10
+ export declare class NoopRunTimelineMetricsManager implements RunTimelineMetricsManager {
11
+ registerMetric(metric: RunTimelineMetric): void;
12
+ getMetrics(): RunTimelineMetric[];
13
+ }
@@ -0,0 +1,47 @@
1
+ import { getEnvVar } from "../utils/getEnv.js";
2
+ export class StandardRunTimelineMetricsManager {
3
+ _metrics = [];
4
+ registerMetric(metric) {
5
+ this._metrics.push(metric);
6
+ }
7
+ getMetrics() {
8
+ return this._metrics;
9
+ }
10
+ registerMetricsFromExecution(metrics) {
11
+ if (metrics) {
12
+ metrics.forEach((metric) => {
13
+ this.registerMetric({
14
+ name: `trigger.dev/${metric.name}`,
15
+ event: metric.event,
16
+ timestamp: metric.timestamp,
17
+ attributes: {
18
+ duration: metric.duration,
19
+ },
20
+ });
21
+ });
22
+ }
23
+ }
24
+ seedMetricsFromEnvironment() {
25
+ const forkStartTime = getEnvVar("TRIGGER_PROCESS_FORK_START_TIME");
26
+ if (typeof forkStartTime === "string") {
27
+ const forkStartTimeMs = parseInt(forkStartTime, 10);
28
+ this.registerMetric({
29
+ name: "trigger.dev/start",
30
+ event: "fork",
31
+ attributes: {
32
+ duration: Date.now() - forkStartTimeMs,
33
+ },
34
+ timestamp: forkStartTimeMs,
35
+ });
36
+ }
37
+ }
38
+ }
39
+ export class NoopRunTimelineMetricsManager {
40
+ registerMetric(metric) {
41
+ // Do nothing
42
+ }
43
+ getMetrics() {
44
+ return [];
45
+ }
46
+ }
47
+ //# sourceMappingURL=runTimelineMetricsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runTimelineMetricsManager.js","sourceRoot":"","sources":["../../../../src/v3/runTimelineMetrics/runTimelineMetricsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,OAAO,iCAAiC;IACpC,QAAQ,GAAwB,EAAE,CAAC;IAE3C,cAAc,CAAC,MAAyB;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,4BAA4B,CAAC,OAAiC;QAC5D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzB,IAAI,CAAC,cAAc,CAAC;oBAClB,IAAI,EAAE,eAAe,MAAM,CAAC,IAAI,EAAE;oBAClC,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,UAAU,EAAE;wBACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0BAA0B;QACxB,MAAM,aAAa,GAAG,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAEnE,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAEpD,IAAI,CAAC,cAAc,CAAC;gBAClB,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,MAAM;gBACb,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe;iBACvC;gBACD,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,6BAA6B;IACxC,cAAc,CAAC,MAAyB;QACtC,aAAa;IACf,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { Attributes } from "@opentelemetry/api";
2
+ export type RunTimelineMetric = {
3
+ name: string;
4
+ event: string;
5
+ timestamp: number;
6
+ attributes?: Attributes;
7
+ };
8
+ export interface RunTimelineMetricsManager {
9
+ registerMetric(metric: RunTimelineMetric): void;
10
+ getMetrics(): RunTimelineMetric[];
11
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/v3/runTimelineMetrics/types.ts"],"names":[],"mappings":""}