hardhat 3.1.8 → 3.1.10
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.
- package/CHANGELOG.md +23 -0
- package/dist/src/config.d.ts +20 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +31 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/coverage-manager.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/coverage-manager.js +33 -21
- package/dist/src/internal/builtin-plugins/coverage/coverage-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js +7 -8
- package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -1
- package/dist/src/internal/builtin-plugins/coverage/instrumentation.d.ts +27 -0
- package/dist/src/internal/builtin-plugins/coverage/instrumentation.d.ts.map +1 -0
- package/dist/src/internal/builtin-plugins/coverage/instrumentation.js +27 -0
- package/dist/src/internal/builtin-plugins/coverage/instrumentation.js.map +1 -0
- package/dist/src/internal/builtin-plugins/flatten/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/flatten/task-action.js +1 -1
- package/dist/src/internal/builtin-plugins/flatten/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts +0 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js +4 -8
- package/dist/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/config.js +58 -20
- package/dist/src/internal/builtin-plugins/network-manager/hook-handlers/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js +8 -0
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/node/task-action.js +1 -2
- package/dist/src/internal/builtin-plugins/node/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.d.ts +0 -3
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js +8 -10
- package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.d.ts +2 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.js +4 -2
- package/dist/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.d.ts +3 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js +8 -2
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/error-messages.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/error-messages.js +19 -5
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/error-messages.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.d.ts +8 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.js +54 -20
- package/dist/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts +22 -0
- package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/config.js +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/config.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/type-extensions.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/solidity-test/type-extensions.d.ts.map +1 -1
- package/dist/src/internal/cli/error-handler.d.ts.map +1 -1
- package/dist/src/internal/cli/error-handler.js +15 -0
- package/dist/src/internal/cli/error-handler.js.map +1 -1
- package/dist/src/internal/cli/telemetry/sentry/reporter.d.ts.map +1 -1
- package/dist/src/internal/cli/telemetry/sentry/reporter.js +4 -0
- package/dist/src/internal/cli/telemetry/sentry/reporter.js.map +1 -1
- package/dist/src/internal/cli/telemetry/sentry/transport.js +1 -0
- package/dist/src/internal/cli/telemetry/sentry/transport.js.map +1 -1
- package/dist/src/internal/core/config-validation.d.ts +3 -3
- package/dist/src/internal/core/config-validation.d.ts.map +1 -1
- package/dist/src/internal/core/config-validation.js +48 -18
- package/dist/src/internal/core/config-validation.js.map +1 -1
- package/dist/src/internal/core/tasks/builders.d.ts +26 -16
- package/dist/src/internal/core/tasks/builders.d.ts.map +1 -1
- package/dist/src/internal/core/tasks/builders.js +65 -6
- package/dist/src/internal/core/tasks/builders.js.map +1 -1
- package/dist/src/internal/core/tasks/resolved-task.d.ts +2 -2
- package/dist/src/internal/core/tasks/resolved-task.d.ts.map +1 -1
- package/dist/src/internal/core/tasks/resolved-task.js +23 -9
- package/dist/src/internal/core/tasks/resolved-task.js.map +1 -1
- package/dist/src/internal/core/tasks/task-manager.d.ts.map +1 -1
- package/dist/src/internal/core/tasks/task-manager.js +14 -6
- package/dist/src/internal/core/tasks/task-manager.js.map +1 -1
- package/dist/src/internal/core/tasks/validations.d.ts +2 -0
- package/dist/src/internal/core/tasks/validations.d.ts.map +1 -1
- package/dist/src/internal/core/tasks/validations.js +11 -0
- package/dist/src/internal/core/tasks/validations.js.map +1 -1
- package/dist/src/internal/deprecated-module-imported-from-hardhat2-plugin.d.ts +2 -0
- package/dist/src/internal/deprecated-module-imported-from-hardhat2-plugin.d.ts.map +1 -0
- package/dist/src/internal/deprecated-module-imported-from-hardhat2-plugin.js +12 -0
- package/dist/src/internal/deprecated-module-imported-from-hardhat2-plugin.js.map +1 -0
- package/dist/src/internal/using-hardhat2-plugin-errors.d.ts +35 -0
- package/dist/src/internal/using-hardhat2-plugin-errors.d.ts.map +1 -0
- package/dist/src/internal/using-hardhat2-plugin-errors.js +98 -0
- package/dist/src/internal/using-hardhat2-plugin-errors.js.map +1 -0
- package/dist/src/plugins.d.ts +8 -0
- package/dist/src/plugins.d.ts.map +1 -1
- package/dist/src/plugins.js +13 -0
- package/dist/src/plugins.js.map +1 -1
- package/dist/src/types/index.d.ts +15 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +15 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/plugins.d.ts +2 -2
- package/dist/src/types/solidity/errors.d.ts +18 -0
- package/dist/src/types/solidity/errors.d.ts.map +1 -1
- package/dist/src/types/solidity/errors.js.map +1 -1
- package/dist/src/types/tasks.d.ts +95 -34
- package/dist/src/types/tasks.d.ts.map +1 -1
- package/package.json +10 -6
- package/src/config.ts +37 -0
- package/src/internal/builtin-plugins/coverage/coverage-manager.ts +57 -50
- package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +6 -17
- package/src/internal/builtin-plugins/coverage/instrumentation.ts +52 -0
- package/src/internal/builtin-plugins/flatten/task-action.ts +1 -0
- package/src/internal/builtin-plugins/gas-analytics/gas-analytics-manager.ts +6 -11
- package/src/internal/builtin-plugins/network-manager/hook-handlers/config.ts +65 -21
- package/src/internal/builtin-plugins/network-manager/type-validation.ts +9 -0
- package/src/internal/builtin-plugins/node/task-action.ts +2 -2
- package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +1 -0
- package/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.ts +14 -11
- package/src/internal/builtin-plugins/solidity/build-system/dependency-graph-building.ts +23 -1
- package/src/internal/builtin-plugins/solidity/build-system/resolver/dependency-resolver.ts +16 -2
- package/src/internal/builtin-plugins/solidity/build-system/resolver/error-messages.ts +19 -5
- package/src/internal/builtin-plugins/solidity/build-system/resolver/remapped-npm-packages-graph.ts +103 -29
- package/src/internal/builtin-plugins/solidity/type-extensions.ts +28 -0
- package/src/internal/builtin-plugins/solidity-test/config.ts +1 -0
- package/src/internal/builtin-plugins/solidity-test/type-extensions.ts +1 -0
- package/src/internal/cli/error-handler.ts +18 -0
- package/src/internal/cli/telemetry/sentry/reporter.ts +5 -0
- package/src/internal/cli/telemetry/sentry/transport.ts +1 -0
- package/src/internal/core/config-validation.ts +67 -18
- package/src/internal/core/tasks/builders.ts +174 -30
- package/src/internal/core/tasks/resolved-task.ts +31 -13
- package/src/internal/core/tasks/task-manager.ts +23 -5
- package/src/internal/core/tasks/validations.ts +40 -0
- package/src/internal/deprecated-module-imported-from-hardhat2-plugin.ts +12 -0
- package/src/internal/using-hardhat2-plugin-errors.ts +108 -0
- package/src/plugins.ts +16 -0
- package/src/types/index.ts +14 -0
- package/src/types/plugins.ts +2 -2
- package/src/types/solidity/errors.ts +22 -0
- package/src/types/tasks.ts +133 -36
- package/templates/hardhat-3/01-node-test-runner-viem/package.json +10 -10
- package/templates/hardhat-3/02-mocha-ethers/package.json +16 -16
- package/templates/hardhat-3/03-minimal/package.json +1 -1
|
@@ -48,6 +48,20 @@ export declare enum TaskDefinitionType {
|
|
|
48
48
|
NEW_TASK = "NEW_TASK",
|
|
49
49
|
TASK_OVERRIDE = "TASK_OVERRIDE"
|
|
50
50
|
}
|
|
51
|
+
export type TaskAction = {
|
|
52
|
+
action: LazyActionObject<NewTaskActionFunction>;
|
|
53
|
+
inlineAction?: never;
|
|
54
|
+
} | {
|
|
55
|
+
inlineAction: NewTaskActionFunction;
|
|
56
|
+
action?: never;
|
|
57
|
+
};
|
|
58
|
+
export type TaskOverrideAction = {
|
|
59
|
+
action: LazyActionObject<TaskOverrideActionFunction>;
|
|
60
|
+
inlineAction?: never;
|
|
61
|
+
} | {
|
|
62
|
+
inlineAction: TaskOverrideActionFunction;
|
|
63
|
+
action?: never;
|
|
64
|
+
};
|
|
51
65
|
/**
|
|
52
66
|
* Empty task definition. It is meant to be used as a placeholder task that only
|
|
53
67
|
* prints information about its subtasks.
|
|
@@ -62,26 +76,32 @@ export interface EmptyTaskDefinition {
|
|
|
62
76
|
description: string;
|
|
63
77
|
}
|
|
64
78
|
/**
|
|
65
|
-
* The definition of a new task.
|
|
79
|
+
* The base definition of a new task.
|
|
66
80
|
*/
|
|
67
|
-
export interface
|
|
81
|
+
export interface BaseTaskDefinition {
|
|
68
82
|
type: TaskDefinitionType.NEW_TASK;
|
|
69
83
|
id: string[];
|
|
70
84
|
description: string;
|
|
71
|
-
action: LazyActionObject<NewTaskActionFunction>;
|
|
72
85
|
options: Record<string, OptionDefinition>;
|
|
73
86
|
positionalArguments: PositionalArgumentDefinition[];
|
|
74
87
|
}
|
|
75
88
|
/**
|
|
76
|
-
*
|
|
89
|
+
* The definition of a new task.
|
|
77
90
|
*/
|
|
78
|
-
export
|
|
91
|
+
export type NewTaskDefinition = BaseTaskDefinition & TaskAction;
|
|
92
|
+
/**
|
|
93
|
+
* The base definition of an override of an existing task.
|
|
94
|
+
*/
|
|
95
|
+
export interface BaseTaskOverrideDefinition {
|
|
79
96
|
type: TaskDefinitionType.TASK_OVERRIDE;
|
|
80
97
|
id: string[];
|
|
81
98
|
description?: string;
|
|
82
|
-
action: LazyActionObject<TaskOverrideActionFunction>;
|
|
83
99
|
options: Record<string, OptionDefinition>;
|
|
84
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* An override of an existing task.
|
|
103
|
+
*/
|
|
104
|
+
export type TaskOverrideDefinition = BaseTaskOverrideDefinition & TaskOverrideAction;
|
|
85
105
|
/**
|
|
86
106
|
* The definition of a task, as used in the plugins and user config. They are
|
|
87
107
|
* declarative descriptions of the task, which are later processed to create the
|
|
@@ -103,8 +123,11 @@ export interface EmptyTaskDefinitionBuilder {
|
|
|
103
123
|
}
|
|
104
124
|
/**
|
|
105
125
|
* A builder for creating NewTaskDefinitions.
|
|
126
|
+
*
|
|
127
|
+
* @template TaskArgumentsT The arguments of the task.
|
|
128
|
+
* @template ActionTypeT Tracks if the action is "LAZY_ACTION" (Plugin Safe) or "INLINE_ACTION".
|
|
106
129
|
*/
|
|
107
|
-
export interface NewTaskDefinitionBuilder<TaskArgumentsT extends TaskArguments = TaskArguments> {
|
|
130
|
+
export interface NewTaskDefinitionBuilder<TaskArgumentsT extends TaskArguments = TaskArguments, ActionTypeT extends "LAZY_ACTION" | "INLINE_ACTION" | "MISSING_ACTION" = "MISSING_ACTION"> {
|
|
108
131
|
/**
|
|
109
132
|
* Sets the description of the task.
|
|
110
133
|
*/
|
|
@@ -112,13 +135,33 @@ export interface NewTaskDefinitionBuilder<TaskArgumentsT extends TaskArguments =
|
|
|
112
135
|
/**
|
|
113
136
|
* Sets the action of the task.
|
|
114
137
|
*
|
|
115
|
-
* It
|
|
116
|
-
*
|
|
138
|
+
* It must be provided as a lazy import function that returns a module with
|
|
139
|
+
* a default export, like `() => import("./my-action.js")`.
|
|
117
140
|
*
|
|
118
|
-
* Note that plugins
|
|
119
|
-
*
|
|
141
|
+
* Note that plugins cannot use inline actions (see {@link setInlineAction}).
|
|
142
|
+
* They must use this method with a lazy import.
|
|
143
|
+
*
|
|
144
|
+
* @remarks
|
|
145
|
+
* This method can only be called once per task definition. Calling it multiple
|
|
146
|
+
* times will result in a runtime error.
|
|
147
|
+
*
|
|
148
|
+
* This method cannot be used together with {@link setInlineAction} on the same
|
|
149
|
+
* task. Use one or the other.
|
|
150
|
+
*/
|
|
151
|
+
setAction(action: LazyActionObject<NewTaskActionFunction<TaskArgumentsT>>): NewTaskDefinitionBuilder<TaskArgumentsT, "LAZY_ACTION">;
|
|
152
|
+
/**
|
|
153
|
+
* Sets the inline action of the task.
|
|
154
|
+
*
|
|
155
|
+
* It must be provided as a function.
|
|
156
|
+
*
|
|
157
|
+
* @remarks
|
|
158
|
+
* This method can only be called once per task definition. Calling it multiple
|
|
159
|
+
* times will result in a runtime error.
|
|
160
|
+
*
|
|
161
|
+
* This method cannot be used together with {@link setAction} on the same
|
|
162
|
+
* task. Use one or the other.
|
|
120
163
|
*/
|
|
121
|
-
|
|
164
|
+
setInlineAction(inlineAction: NewTaskActionFunction<TaskArgumentsT>): NewTaskDefinitionBuilder<TaskArgumentsT, "INLINE_ACTION">;
|
|
122
165
|
/**
|
|
123
166
|
* Adds an option to the task.
|
|
124
167
|
*
|
|
@@ -135,7 +178,7 @@ export interface NewTaskDefinitionBuilder<TaskArgumentsT extends TaskArguments =
|
|
|
135
178
|
type?: TypeT;
|
|
136
179
|
defaultValue: ArgumentTypeToValueType<TypeT>;
|
|
137
180
|
hidden?: boolean;
|
|
138
|
-
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, TypeT, TaskArgumentsT
|
|
181
|
+
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, TypeT, TaskArgumentsT>, ActionTypeT>;
|
|
139
182
|
/**
|
|
140
183
|
* Adds an option of flag type and default value false.
|
|
141
184
|
*/
|
|
@@ -144,7 +187,7 @@ export interface NewTaskDefinitionBuilder<TaskArgumentsT extends TaskArguments =
|
|
|
144
187
|
shortName?: string;
|
|
145
188
|
description?: string;
|
|
146
189
|
hidden?: boolean;
|
|
147
|
-
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, ArgumentType.FLAG, TaskArgumentsT
|
|
190
|
+
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, ArgumentType.FLAG, TaskArgumentsT>, ActionTypeT>;
|
|
148
191
|
/**
|
|
149
192
|
* Adds an option of level type and default value 0.
|
|
150
193
|
*/
|
|
@@ -153,7 +196,7 @@ export interface NewTaskDefinitionBuilder<TaskArgumentsT extends TaskArguments =
|
|
|
153
196
|
shortName?: string;
|
|
154
197
|
description?: string;
|
|
155
198
|
defaultValue?: number;
|
|
156
|
-
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, ArgumentType.LEVEL, TaskArgumentsT
|
|
199
|
+
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, ArgumentType.LEVEL, TaskArgumentsT>, ActionTypeT>;
|
|
157
200
|
/**
|
|
158
201
|
* Adds a positional argument to the task.
|
|
159
202
|
*
|
|
@@ -175,7 +218,7 @@ export interface NewTaskDefinitionBuilder<TaskArgumentsT extends TaskArguments =
|
|
|
175
218
|
description?: string;
|
|
176
219
|
type?: TypeT;
|
|
177
220
|
defaultValue?: ArgumentTypeToValueType<TypeT>;
|
|
178
|
-
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, TypeT, TaskArgumentsT
|
|
221
|
+
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, TypeT, TaskArgumentsT>, ActionTypeT>;
|
|
179
222
|
/**
|
|
180
223
|
* Adds a variadic positional argument to the task.
|
|
181
224
|
*
|
|
@@ -195,16 +238,23 @@ export interface NewTaskDefinitionBuilder<TaskArgumentsT extends TaskArguments =
|
|
|
195
238
|
description?: string;
|
|
196
239
|
type?: TypeT;
|
|
197
240
|
defaultValue?: Array<ArgumentTypeToValueType<TypeT>>;
|
|
198
|
-
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, TypeT[], TaskArgumentsT
|
|
241
|
+
}): NewTaskDefinitionBuilder<ExtendTaskArguments<NameT, TypeT[], TaskArgumentsT>, ActionTypeT>;
|
|
199
242
|
/**
|
|
200
243
|
* Builds the NewTaskDefinition.
|
|
201
244
|
*/
|
|
202
|
-
build(): NewTaskDefinition
|
|
245
|
+
build(): ActionTypeT extends "LAZY_ACTION" ? Extract<NewTaskDefinition, {
|
|
246
|
+
action: LazyActionObject<NewTaskActionFunction>;
|
|
247
|
+
}> : ActionTypeT extends "INLINE_ACTION" ? Extract<NewTaskDefinition, {
|
|
248
|
+
inlineAction: NewTaskActionFunction;
|
|
249
|
+
}> : never;
|
|
203
250
|
}
|
|
204
251
|
/**
|
|
205
|
-
* A builder for overriding existing tasks
|
|
252
|
+
* A builder for overriding existing tasks
|
|
253
|
+
*
|
|
254
|
+
* @template TaskArgumentsT The arguments of the task.
|
|
255
|
+
* @template ActionTypeT Tracks if the action is "LAZY_ACTION" (Plugin Safe) or "INLINE_ACTION".
|
|
206
256
|
*/
|
|
207
|
-
export interface TaskOverrideDefinitionBuilder<TaskArgumentsT extends TaskArguments = TaskArguments> {
|
|
257
|
+
export interface TaskOverrideDefinitionBuilder<TaskArgumentsT extends TaskArguments = TaskArguments, ActionTypeT extends "LAZY_ACTION" | "INLINE_ACTION" | "MISSING_ACTION" = "MISSING_ACTION"> {
|
|
208
258
|
/**
|
|
209
259
|
* Sets a new description for the task.
|
|
210
260
|
*/
|
|
@@ -214,7 +264,13 @@ export interface TaskOverrideDefinitionBuilder<TaskArgumentsT extends TaskArgume
|
|
|
214
264
|
*
|
|
215
265
|
* @see NewTaskDefinitionBuilder.setAction
|
|
216
266
|
*/
|
|
217
|
-
setAction(action: LazyActionObject<TaskOverrideActionFunction<TaskArgumentsT>>):
|
|
267
|
+
setAction(action: LazyActionObject<TaskOverrideActionFunction<TaskArgumentsT>>): TaskOverrideDefinitionBuilder<TaskArgumentsT, "LAZY_ACTION">;
|
|
268
|
+
/**
|
|
269
|
+
* Sets a new inline action for the task.
|
|
270
|
+
*
|
|
271
|
+
* @see NewTaskDefinitionBuilder.setInlineAction
|
|
272
|
+
*/
|
|
273
|
+
setInlineAction(inlineAction: TaskOverrideActionFunction<TaskArgumentsT>): TaskOverrideDefinitionBuilder<TaskArgumentsT, "INLINE_ACTION">;
|
|
218
274
|
/**
|
|
219
275
|
* Adds a new option to the task.
|
|
220
276
|
*
|
|
@@ -227,7 +283,7 @@ export interface TaskOverrideDefinitionBuilder<TaskArgumentsT extends TaskArgume
|
|
|
227
283
|
type?: TypeT;
|
|
228
284
|
defaultValue: ArgumentTypeToValueType<TypeT>;
|
|
229
285
|
hidden?: boolean;
|
|
230
|
-
}): TaskOverrideDefinitionBuilder<ExtendTaskArguments<NameT, TypeT, TaskArgumentsT
|
|
286
|
+
}): TaskOverrideDefinitionBuilder<ExtendTaskArguments<NameT, TypeT, TaskArgumentsT>, ActionTypeT>;
|
|
231
287
|
/**
|
|
232
288
|
* Adds an option of flag type and default value false.
|
|
233
289
|
*/
|
|
@@ -236,7 +292,7 @@ export interface TaskOverrideDefinitionBuilder<TaskArgumentsT extends TaskArgume
|
|
|
236
292
|
shortName?: string;
|
|
237
293
|
description?: string;
|
|
238
294
|
hidden?: boolean;
|
|
239
|
-
}): TaskOverrideDefinitionBuilder<ExtendTaskArguments<NameT, ArgumentType.FLAG, TaskArgumentsT
|
|
295
|
+
}): TaskOverrideDefinitionBuilder<ExtendTaskArguments<NameT, ArgumentType.FLAG, TaskArgumentsT>, ActionTypeT>;
|
|
240
296
|
/**
|
|
241
297
|
* Adds an option of level type and default value 0.
|
|
242
298
|
*/
|
|
@@ -245,33 +301,38 @@ export interface TaskOverrideDefinitionBuilder<TaskArgumentsT extends TaskArgume
|
|
|
245
301
|
shortName?: string;
|
|
246
302
|
description?: string;
|
|
247
303
|
defaultValue?: number;
|
|
248
|
-
}): TaskOverrideDefinitionBuilder<ExtendTaskArguments<NameT, ArgumentType.LEVEL, TaskArgumentsT
|
|
304
|
+
}): TaskOverrideDefinitionBuilder<ExtendTaskArguments<NameT, ArgumentType.LEVEL, TaskArgumentsT>, ActionTypeT>;
|
|
249
305
|
/**
|
|
250
306
|
* Builds the TaskOverrideDefinition.
|
|
251
307
|
*/
|
|
252
|
-
build(): TaskOverrideDefinition
|
|
308
|
+
build(): ActionTypeT extends "LAZY_ACTION" ? Extract<TaskOverrideDefinition, {
|
|
309
|
+
action: LazyActionObject<TaskOverrideActionFunction>;
|
|
310
|
+
}> : ActionTypeT extends "INLINE_ACTION" ? Extract<TaskOverrideDefinition, {
|
|
311
|
+
inlineAction: TaskOverrideActionFunction;
|
|
312
|
+
}> : never;
|
|
253
313
|
}
|
|
254
314
|
/**
|
|
255
315
|
* The actions associated to the task, in order.
|
|
256
316
|
*
|
|
257
317
|
* Each of them has the pluginId of the plugin that defined it, if any, and the
|
|
258
|
-
* action itself.
|
|
318
|
+
* action itself. The action is stored either in `action` or `inlineAction`.
|
|
319
|
+
* Note that `inlineAction` is reserved for user tasks and is not allowed for plugins.
|
|
259
320
|
*
|
|
260
|
-
* Note that the first action is a `NewTaskActionFunction
|
|
261
|
-
* `undefined
|
|
321
|
+
* Note that the first action is a `NewTaskActionFunction` or undefined.
|
|
322
|
+
* `undefined` is only used for empty tasks.
|
|
262
323
|
*
|
|
263
|
-
* The rest of the actions always have a `TaskOverrideActionFunction
|
|
264
|
-
* `string`.
|
|
324
|
+
* The rest of the actions always have a `TaskOverrideActionFunction`.
|
|
265
325
|
*/
|
|
266
326
|
export type TaskActions = [
|
|
267
327
|
{
|
|
268
328
|
pluginId?: string;
|
|
269
|
-
|
|
270
|
-
|
|
329
|
+
} & (TaskAction | {
|
|
330
|
+
action?: undefined;
|
|
331
|
+
inlineAction?: undefined;
|
|
332
|
+
}),
|
|
271
333
|
...Array<{
|
|
272
334
|
pluginId?: string;
|
|
273
|
-
|
|
274
|
-
}>
|
|
335
|
+
} & TaskOverrideAction>
|
|
275
336
|
];
|
|
276
337
|
/**
|
|
277
338
|
* A task.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/types/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAK1D,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAiB,yBAAyB;QACxC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;KAC7B;CACF;AAKD,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAiB,iBAAiB;QAChC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;KAC1B;IAED,UAAiB,aAAa;QAC5B,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,CAC/B,cAAc,SAAS,aAAa,GAAG,aAAa,IAClD,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,yBAAyB,KAAK,GAAG,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,MAAM,0BAA0B,CACpC,cAAc,SAAS,aAAa,GAAG,aAAa,IAClD,CACF,aAAa,EAAE,cAAc,GAAG,aAAa,EAC7C,GAAG,EAAE,yBAAyB,EAC9B,QAAQ,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,CAAC,KACrD,GAAG,CAAC;AAET;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;CAChC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,kBAAkB,CAAC,UAAU,CAAC;IACpC,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/types/tasks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.10",
|
|
4
4
|
"description": "Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.",
|
|
5
5
|
"homepage": "https://github.com/nomicfoundation/hardhat/tree/v-next/v-next/hardhat",
|
|
6
6
|
"repository": {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"./hre": "./dist/src/hre.js",
|
|
22
22
|
"./plugins": "./dist/src/plugins.js",
|
|
23
23
|
"./internal/lsp-helpers": "./dist/src/lsp-helpers.js",
|
|
24
|
+
"./types": "./dist/src/types/index.js",
|
|
24
25
|
"./types/arguments": "./dist/src/types/arguments.js",
|
|
25
26
|
"./types/artifacts": "./dist/src/types/artifacts.js",
|
|
26
27
|
"./types/config": "./dist/src/types/config.js",
|
|
@@ -38,7 +39,10 @@
|
|
|
38
39
|
"./console.sol": "./console.sol",
|
|
39
40
|
"./internal/coverage": "./dist/src/internal/builtin-plugins/coverage/exports.js",
|
|
40
41
|
"./internal/gas-analytics": "./dist/src/internal/builtin-plugins/gas-analytics/exports.js",
|
|
41
|
-
"./utils/contract-names": "./dist/src/utils/contract-names.js"
|
|
42
|
+
"./utils/contract-names": "./dist/src/utils/contract-names.js",
|
|
43
|
+
"./types/runtime": "./dist/src/internal/deprecated-module-imported-from-hardhat2-plugin.js",
|
|
44
|
+
"./builtin-tasks/task-names": "./dist/src/internal/deprecated-module-imported-from-hardhat2-plugin.js",
|
|
45
|
+
"./internal/artifacts": "./dist/src/internal/deprecated-module-imported-from-hardhat2-plugin.js"
|
|
42
46
|
},
|
|
43
47
|
"keywords": [
|
|
44
48
|
"ethereum",
|
|
@@ -68,14 +72,14 @@
|
|
|
68
72
|
"prettier": "3.2.5",
|
|
69
73
|
"rimraf": "^5.0.5",
|
|
70
74
|
"typescript": "~5.8.0",
|
|
71
|
-
"@nomicfoundation/hardhat-test-utils": "^2.0.
|
|
75
|
+
"@nomicfoundation/hardhat-test-utils": "^2.0.2"
|
|
72
76
|
},
|
|
73
77
|
"dependencies": {
|
|
74
78
|
"@nomicfoundation/edr": "0.12.0-next.24",
|
|
75
|
-
"@nomicfoundation/hardhat-errors": "^3.0.
|
|
76
|
-
"@nomicfoundation/hardhat-utils": "^
|
|
79
|
+
"@nomicfoundation/hardhat-errors": "^3.0.7",
|
|
80
|
+
"@nomicfoundation/hardhat-utils": "^4.0.0",
|
|
77
81
|
"@nomicfoundation/hardhat-vendored": "^3.0.1",
|
|
78
|
-
"@nomicfoundation/hardhat-zod-utils": "^3.0.
|
|
82
|
+
"@nomicfoundation/hardhat-zod-utils": "^3.0.2",
|
|
79
83
|
"@nomicfoundation/solidity-analyzer": "^0.1.1",
|
|
80
84
|
"@sentry/core": "^9.4.0",
|
|
81
85
|
"adm-zip": "^0.4.16",
|
package/src/config.ts
CHANGED
|
@@ -8,6 +8,8 @@ export type { HardhatUserConfig } from "./types/config.js";
|
|
|
8
8
|
import "./internal/builtin-plugins/index.js";
|
|
9
9
|
import type { HardhatUserConfig } from "./types/config.js";
|
|
10
10
|
|
|
11
|
+
import { throwUsingHardhat2PluginError } from "./internal/using-hardhat2-plugin-errors.js";
|
|
12
|
+
|
|
11
13
|
/**
|
|
12
14
|
* Defines a Hardhat user config.
|
|
13
15
|
*
|
|
@@ -38,3 +40,38 @@ export function defineConfig(config: HardhatUserConfig): HardhatUserConfig {
|
|
|
38
40
|
// use it and have a better user experience.
|
|
39
41
|
return config;
|
|
40
42
|
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated This function is part of the Hardhat 2 plugin API.
|
|
46
|
+
*/
|
|
47
|
+
export function extendConfig(..._args: any): any {
|
|
48
|
+
throwUsingHardhat2PluginError();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated This function is part of the Hardhat 2 plugin API.
|
|
53
|
+
*/
|
|
54
|
+
export function extendEnvironment(..._args: any): any {
|
|
55
|
+
throwUsingHardhat2PluginError();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @deprecated This function is part of the Hardhat 2 plugin API.
|
|
60
|
+
*/
|
|
61
|
+
export function extendProvider(..._args: any): any {
|
|
62
|
+
throwUsingHardhat2PluginError();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated This function is part of the Hardhat 2 plugin API.
|
|
67
|
+
*/
|
|
68
|
+
export function scope(..._args: any): any {
|
|
69
|
+
throwUsingHardhat2PluginError();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @deprecated This function is part of the Hardhat 2 plugin API.
|
|
74
|
+
*/
|
|
75
|
+
export function subtask(..._args: any): any {
|
|
76
|
+
throwUsingHardhat2PluginError();
|
|
77
|
+
}
|
|
@@ -8,7 +8,7 @@ import type { TableItem } from "@nomicfoundation/hardhat-utils/format";
|
|
|
8
8
|
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import { formatTable } from "@nomicfoundation/hardhat-utils/format";
|
|
12
12
|
import {
|
|
13
13
|
ensureDir,
|
|
14
14
|
getAllFilesMatching,
|
|
@@ -433,55 +433,60 @@ export class CoverageManagerImplementation implements CoverageManager {
|
|
|
433
433
|
|
|
434
434
|
const rows: TableItem[] = [];
|
|
435
435
|
|
|
436
|
-
rows.push(
|
|
437
|
-
|
|
436
|
+
rows.push({
|
|
437
|
+
type: "title",
|
|
438
|
+
text: chalk.bold("Coverage Report"),
|
|
439
|
+
});
|
|
438
440
|
|
|
439
|
-
rows.push(
|
|
440
|
-
|
|
441
|
-
|
|
441
|
+
rows.push({
|
|
442
|
+
type: "section-header",
|
|
443
|
+
text: chalk.bold("File Coverage"),
|
|
444
|
+
});
|
|
445
|
+
|
|
446
|
+
rows.push({
|
|
447
|
+
type: "header",
|
|
448
|
+
cells: ["File Path", "Line %", "Statement %", "Uncovered Lines"].map(
|
|
449
|
+
(s) => chalk.yellow(s),
|
|
442
450
|
),
|
|
443
|
-
);
|
|
451
|
+
});
|
|
444
452
|
|
|
445
|
-
const
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
453
|
+
for (const [
|
|
454
|
+
relativePath,
|
|
455
|
+
{
|
|
456
|
+
executedStatementsCount,
|
|
457
|
+
unexecutedStatementsCount,
|
|
458
|
+
lineExecutionCounts,
|
|
459
|
+
executedLinesCount,
|
|
460
|
+
unexecutedLines,
|
|
461
|
+
},
|
|
462
|
+
] of Object.entries(report)) {
|
|
463
|
+
const lineCoverage =
|
|
464
|
+
lineExecutionCounts.size === 0
|
|
465
|
+
? 0
|
|
466
|
+
: (executedLinesCount * 100.0) / lineExecutionCounts.size;
|
|
467
|
+
const statementCoverage =
|
|
468
|
+
executedStatementsCount === 0
|
|
469
|
+
? 0
|
|
470
|
+
: (executedStatementsCount * 100.0) /
|
|
471
|
+
(executedStatementsCount + unexecutedStatementsCount);
|
|
472
|
+
|
|
473
|
+
totalExecutedLines += executedLinesCount;
|
|
474
|
+
totalExecutableLines += lineExecutionCounts.size;
|
|
475
|
+
|
|
476
|
+
totalExecutedStatements += executedStatementsCount;
|
|
477
|
+
totalExecutableStatements +=
|
|
478
|
+
executedStatementsCount + unexecutedStatementsCount;
|
|
479
|
+
|
|
480
|
+
rows.push({
|
|
481
|
+
type: "row",
|
|
482
|
+
cells: [
|
|
474
483
|
this.formatRelativePath(relativePath),
|
|
475
484
|
this.formatCoverage(lineCoverage),
|
|
476
485
|
this.formatCoverage(statementCoverage),
|
|
477
486
|
this.formatLines(unexecutedLines),
|
|
478
|
-
]
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
},
|
|
482
|
-
);
|
|
483
|
-
|
|
484
|
-
rows.push(...bodyRows);
|
|
487
|
+
],
|
|
488
|
+
});
|
|
489
|
+
}
|
|
485
490
|
|
|
486
491
|
const totalLineCoverage =
|
|
487
492
|
totalExecutableLines === 0
|
|
@@ -492,13 +497,15 @@ export class CoverageManagerImplementation implements CoverageManager {
|
|
|
492
497
|
? 0
|
|
493
498
|
: (totalExecutedStatements * 100.0) / totalExecutableStatements;
|
|
494
499
|
|
|
495
|
-
rows.push(
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
500
|
+
rows.push({
|
|
501
|
+
type: "header",
|
|
502
|
+
cells: [
|
|
503
|
+
chalk.yellow("Total"),
|
|
504
|
+
this.formatCoverage(totalLineCoverage),
|
|
505
|
+
this.formatCoverage(totalStatementCoverage),
|
|
506
|
+
"",
|
|
507
|
+
],
|
|
508
|
+
});
|
|
502
509
|
|
|
503
510
|
return formatTable(rows);
|
|
504
511
|
}
|
|
@@ -3,10 +3,6 @@ import type { CoverageMetadata } from "../types.js";
|
|
|
3
3
|
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
addStatementCoverageInstrumentation,
|
|
8
|
-
latestSupportedSolidityVersion,
|
|
9
|
-
} from "@nomicfoundation/edr";
|
|
10
6
|
import {
|
|
11
7
|
assertHardhatInvariant,
|
|
12
8
|
HardhatError,
|
|
@@ -15,9 +11,9 @@ import { ensureError } from "@nomicfoundation/hardhat-utils/error";
|
|
|
15
11
|
import { readUtf8File } from "@nomicfoundation/hardhat-utils/fs";
|
|
16
12
|
import { findClosestPackageRoot } from "@nomicfoundation/hardhat-utils/package";
|
|
17
13
|
import debug from "debug";
|
|
18
|
-
import { satisfies } from "semver";
|
|
19
14
|
|
|
20
15
|
import { CoverageManagerImplementation } from "../coverage-manager.js";
|
|
16
|
+
import { instrumentSolidityFileForCompilationJob } from "../instrumentation.js";
|
|
21
17
|
|
|
22
18
|
const log = debug("hardhat:core:coverage:hook-handlers:solidity");
|
|
23
19
|
|
|
@@ -40,19 +36,12 @@ export default async (): Promise<Partial<SolidityHooks>> => ({
|
|
|
40
36
|
|
|
41
37
|
if (context.globalOptions.coverage && !isTestSource) {
|
|
42
38
|
try {
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
console.log(
|
|
46
|
-
`Solidity version ${solcVersion} is not yet supported for coverage instrumentation. Hardhat will try the latest supported version ${latestSupportedVersion} instead.`,
|
|
47
|
-
);
|
|
48
|
-
solcVersion = latestSupportedVersion;
|
|
49
|
-
}
|
|
50
|
-
const { source, metadata } = addStatementCoverageInstrumentation(
|
|
51
|
-
fileContent,
|
|
39
|
+
const { source, metadata } = instrumentSolidityFileForCompilationJob({
|
|
40
|
+
compilationJobSolcVersion: solcVersion,
|
|
52
41
|
sourceName,
|
|
53
|
-
|
|
54
|
-
COVERAGE_LIBRARY_PATH,
|
|
55
|
-
);
|
|
42
|
+
fileContent,
|
|
43
|
+
coverageLibraryPath: COVERAGE_LIBRARY_PATH,
|
|
44
|
+
});
|
|
56
45
|
|
|
57
46
|
// TODO: Remove this once EDR starts returning line information as part
|
|
58
47
|
// of the metadata.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { InstrumentationMetadata } from "@nomicfoundation/edr";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
addStatementCoverageInstrumentation,
|
|
5
|
+
latestSupportedSolidityVersion,
|
|
6
|
+
} from "@nomicfoundation/edr";
|
|
7
|
+
import { satisfies } from "semver";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Instruments a solidity source file as part of a compilation job. i.e. the
|
|
11
|
+
* file is about to be compile as either a root file or a transitive dependency
|
|
12
|
+
* of one of the root files.
|
|
13
|
+
*
|
|
14
|
+
* @param compilationJobSolcVersion The solc version that the compilation job
|
|
15
|
+
* will use.
|
|
16
|
+
* @param sourceName The source name of the file, as present in the compilation
|
|
17
|
+
* job.
|
|
18
|
+
* @param fileContent The contents of the file.
|
|
19
|
+
* @param coverageLibraryPath The path to the coverage library. i.e. where to
|
|
20
|
+
* import it from.
|
|
21
|
+
* @returns An object with the instrumented source and its metadata, and the
|
|
22
|
+
* solidity version used to instrument the sources.
|
|
23
|
+
*/
|
|
24
|
+
export function instrumentSolidityFileForCompilationJob({
|
|
25
|
+
compilationJobSolcVersion,
|
|
26
|
+
sourceName,
|
|
27
|
+
fileContent,
|
|
28
|
+
coverageLibraryPath,
|
|
29
|
+
}: {
|
|
30
|
+
compilationJobSolcVersion: string;
|
|
31
|
+
sourceName: string;
|
|
32
|
+
fileContent: string;
|
|
33
|
+
coverageLibraryPath: string;
|
|
34
|
+
}): {
|
|
35
|
+
source: string;
|
|
36
|
+
metadata: InstrumentationMetadata[];
|
|
37
|
+
instrumentationVersion: string;
|
|
38
|
+
} {
|
|
39
|
+
const latestSupportedVersion = latestSupportedSolidityVersion();
|
|
40
|
+
let instrumentationVersion = compilationJobSolcVersion;
|
|
41
|
+
if (!satisfies(instrumentationVersion, `<=${latestSupportedVersion}`)) {
|
|
42
|
+
instrumentationVersion = latestSupportedVersion;
|
|
43
|
+
}
|
|
44
|
+
const { source, metadata } = addStatementCoverageInstrumentation(
|
|
45
|
+
fileContent,
|
|
46
|
+
sourceName,
|
|
47
|
+
instrumentationVersion,
|
|
48
|
+
coverageLibraryPath,
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
return { source, metadata, instrumentationVersion };
|
|
52
|
+
}
|