@depup/artillery 2.0.30-depup.0

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 (90) hide show
  1. package/README.md +63 -0
  2. package/bin/run +29 -0
  3. package/bin/run.cmd +3 -0
  4. package/changes.json +138 -0
  5. package/console-reporter.js +1 -0
  6. package/lib/artillery-global.js +33 -0
  7. package/lib/cli/banner.js +8 -0
  8. package/lib/cli/common-flags.js +80 -0
  9. package/lib/cli/hooks/version.js +20 -0
  10. package/lib/cmds/dino.js +109 -0
  11. package/lib/cmds/quick.js +122 -0
  12. package/lib/cmds/report.js +34 -0
  13. package/lib/cmds/run-aci.js +91 -0
  14. package/lib/cmds/run-fargate.js +192 -0
  15. package/lib/cmds/run-lambda.js +96 -0
  16. package/lib/cmds/run.js +671 -0
  17. package/lib/console-capture.js +92 -0
  18. package/lib/console-reporter.js +438 -0
  19. package/lib/create-bom/built-in-plugins.js +12 -0
  20. package/lib/create-bom/create-bom.js +301 -0
  21. package/lib/dispatcher.js +9 -0
  22. package/lib/dist.js +222 -0
  23. package/lib/index.js +5 -0
  24. package/lib/launch-platform.js +439 -0
  25. package/lib/load-plugins.js +113 -0
  26. package/lib/platform/aws/aws-cloudwatch.js +106 -0
  27. package/lib/platform/aws/aws-create-sqs-queue.js +58 -0
  28. package/lib/platform/aws/aws-ensure-s3-bucket-exists.js +78 -0
  29. package/lib/platform/aws/aws-get-account-id.js +26 -0
  30. package/lib/platform/aws/aws-get-bucket-region.js +18 -0
  31. package/lib/platform/aws/aws-get-credentials.js +28 -0
  32. package/lib/platform/aws/aws-get-default-region.js +26 -0
  33. package/lib/platform/aws/aws-whoami.js +15 -0
  34. package/lib/platform/aws/constants.js +7 -0
  35. package/lib/platform/aws/iam-cf-templates/aws-iam-fargate-cf-template.yml +219 -0
  36. package/lib/platform/aws/iam-cf-templates/aws-iam-lambda-cf-template.yml +125 -0
  37. package/lib/platform/aws/iam-cf-templates/gh-oidc-fargate.yml +241 -0
  38. package/lib/platform/aws/iam-cf-templates/gh-oidc-lambda.yml +153 -0
  39. package/lib/platform/aws-ecs/ecs.js +247 -0
  40. package/lib/platform/aws-ecs/legacy/aws-util.js +134 -0
  41. package/lib/platform/aws-ecs/legacy/bom.js +528 -0
  42. package/lib/platform/aws-ecs/legacy/constants.js +27 -0
  43. package/lib/platform/aws-ecs/legacy/create-s3-client.js +24 -0
  44. package/lib/platform/aws-ecs/legacy/create-test.js +247 -0
  45. package/lib/platform/aws-ecs/legacy/errors.js +34 -0
  46. package/lib/platform/aws-ecs/legacy/find-public-subnets.js +149 -0
  47. package/lib/platform/aws-ecs/legacy/plugins/artillery-plugin-inspect-script/index.js +27 -0
  48. package/lib/platform/aws-ecs/legacy/plugins/artillery-plugin-sqs-reporter/azure-aqs.js +80 -0
  49. package/lib/platform/aws-ecs/legacy/plugins/artillery-plugin-sqs-reporter/index.js +202 -0
  50. package/lib/platform/aws-ecs/legacy/plugins.js +16 -0
  51. package/lib/platform/aws-ecs/legacy/run-cluster.js +1994 -0
  52. package/lib/platform/aws-ecs/legacy/sqs-reporter.js +401 -0
  53. package/lib/platform/aws-ecs/legacy/tags.js +22 -0
  54. package/lib/platform/aws-ecs/legacy/test-run-status.js +9 -0
  55. package/lib/platform/aws-ecs/legacy/time.js +67 -0
  56. package/lib/platform/aws-ecs/legacy/util.js +97 -0
  57. package/lib/platform/aws-ecs/worker/Dockerfile +64 -0
  58. package/lib/platform/aws-ecs/worker/helpers.sh +80 -0
  59. package/lib/platform/aws-ecs/worker/loadgen-worker +656 -0
  60. package/lib/platform/aws-lambda/dependencies.js +130 -0
  61. package/lib/platform/aws-lambda/index.js +734 -0
  62. package/lib/platform/aws-lambda/lambda-handler/a9-handler-dependencies.js +73 -0
  63. package/lib/platform/aws-lambda/lambda-handler/a9-handler-helpers.js +43 -0
  64. package/lib/platform/aws-lambda/lambda-handler/a9-handler-index.js +235 -0
  65. package/lib/platform/aws-lambda/lambda-handler/package.json +15 -0
  66. package/lib/platform/aws-lambda/prices.js +29 -0
  67. package/lib/platform/az/aci.js +694 -0
  68. package/lib/platform/az/aqs-queue-consumer.js +88 -0
  69. package/lib/platform/az/regions.js +52 -0
  70. package/lib/platform/cloud/api.js +72 -0
  71. package/lib/platform/cloud/cloud.js +448 -0
  72. package/lib/platform/cloud/http-client.js +19 -0
  73. package/lib/platform/local/artillery-worker-local.js +154 -0
  74. package/lib/platform/local/index.js +174 -0
  75. package/lib/platform/local/worker.js +261 -0
  76. package/lib/platform/worker-states.js +13 -0
  77. package/lib/queue-consumer/index.js +56 -0
  78. package/lib/stash.js +41 -0
  79. package/lib/telemetry.js +78 -0
  80. package/lib/util/await-on-ee.js +24 -0
  81. package/lib/util/generate-id.js +9 -0
  82. package/lib/util/parse-tag-string.js +21 -0
  83. package/lib/util/prepare-test-execution-plan.js +216 -0
  84. package/lib/util/sleep.js +7 -0
  85. package/lib/util/validate-script.js +132 -0
  86. package/lib/util.js +294 -0
  87. package/lib/utils-config.js +31 -0
  88. package/package.json +323 -0
  89. package/types.d.ts +317 -0
  90. package/util.js +1 -0
package/lib/util.js ADDED
@@ -0,0 +1,294 @@
1
+
2
+
3
+ const fs = require('node:fs');
4
+ const path = require('node:path');
5
+ const YAML = require('js-yaml');
6
+ const debug = require('debug')('util');
7
+ const moment = require('moment');
8
+ const _ = require('lodash');
9
+
10
+ const chalk = require('chalk');
11
+
12
+ const engineUtil = require('@artilleryio/int-commons').engine_util;
13
+ const renderVariables = engineUtil._renderVariables;
14
+ const template = engineUtil.template;
15
+ const { contextFuncs } = require('@artilleryio/int-core').runner;
16
+
17
+ const p = require('node:util').promisify;
18
+
19
+ module.exports = {
20
+ readScript,
21
+ parseScript,
22
+ addOverrides,
23
+ addVariables,
24
+ addDefaultPlugins,
25
+ resolveConfigPath,
26
+ resolveConfigTemplates,
27
+ checkConfig,
28
+ renderVariables,
29
+ template,
30
+ formatDuration,
31
+ padded,
32
+ rainbow
33
+ };
34
+
35
+ async function readScript(scriptPath) {
36
+ const data = p(fs.readFile)(scriptPath, 'utf-8');
37
+ return data;
38
+ }
39
+
40
+ async function parseScript(data) {
41
+ return YAML.safeLoad(data);
42
+ }
43
+
44
+ async function addOverrides(script, flags) {
45
+ if (!flags.overrides) {
46
+ return script;
47
+ }
48
+
49
+ const o = JSON.parse(flags.overrides);
50
+ const result = _.mergeWith(
51
+ script,
52
+ o,
53
+ function customizer(_objVal, srcVal, _k, _obj, _src, _stack) {
54
+ if (_.isArray(srcVal)) {
55
+ return srcVal;
56
+ } else {
57
+ return undefined;
58
+ }
59
+ }
60
+ );
61
+
62
+ return result;
63
+ }
64
+
65
+ async function addVariables(script, flags) {
66
+ if (!flags.variables) {
67
+ return script;
68
+ }
69
+
70
+ const variables = JSON.parse(flags.variables);
71
+ script.config.variables = script.config.variables || {};
72
+ for (const [k, v] of Object.entries(variables)) {
73
+ script.config.variables[k] = v;
74
+ }
75
+
76
+ return script;
77
+ }
78
+
79
+ function addDefaultPlugins(script) {
80
+ const finalScript = _.cloneDeep(script);
81
+
82
+ if (!script.config.plugins) {
83
+ finalScript.config.plugins = {};
84
+ }
85
+
86
+ const additionalPluginsAndOptions = {
87
+ 'metrics-by-endpoint': { suppressOutput: true, stripQueryString: true }
88
+ };
89
+
90
+ for (const [pluginName, pluginOptions] of Object.entries(
91
+ additionalPluginsAndOptions
92
+ )) {
93
+ if (!finalScript.config.plugins[pluginName]) {
94
+ finalScript.config.plugins[pluginName] = pluginOptions;
95
+ }
96
+ }
97
+
98
+ return finalScript;
99
+ }
100
+
101
+ async function resolveConfigTemplates(script, flags, configPath, scriptPath) {
102
+ const cliVariables = flags.variables ? JSON.parse(flags.variables) : {};
103
+
104
+ script.config = engineUtil.template(script.config, {
105
+ vars: {
106
+ $scenarioFile: scriptPath,
107
+ $dirname: path.dirname(configPath),
108
+ $testId: global.artillery.testRunId,
109
+ $processEnvironment: process.env,
110
+ $env: process.env,
111
+ $environment: flags.environment,
112
+ ...cliVariables
113
+ },
114
+ funcs: contextFuncs
115
+ });
116
+
117
+ return script;
118
+ }
119
+
120
+ async function checkConfig(script, scriptPath, flags) {
121
+ script._environment = flags.environment;
122
+ script.config = script.config || {};
123
+
124
+ if (flags.environment) {
125
+ debug('environment specified: %s', flags.environment);
126
+ if (
127
+ script.config.environments?.[flags.environment]
128
+ ) {
129
+ _.merge(script.config, script.config.environments[flags.environment]);
130
+ } else {
131
+ // TODO: Emit an event instead
132
+ console.log(
133
+ `WARNING: environment ${flags.environment} is set but is not defined in the script`
134
+ );
135
+ }
136
+ }
137
+
138
+ if (flags.target && script.config) {
139
+ script.config.target = flags.target;
140
+ }
141
+
142
+ //
143
+ // Override/set config.tls if needed:
144
+ //
145
+ if (flags.insecure) {
146
+ if (script.config.tls) {
147
+ if (script.config.tls.rejectUnauthorized) {
148
+ console.log(
149
+ 'WARNING: TLS certificate validation enabled in the ' +
150
+ 'test script, but explicitly disabled with ' +
151
+ '-k/--insecure.'
152
+ );
153
+ }
154
+ script.config.tls.rejectUnauthorized = false;
155
+ } else {
156
+ script.config.tls = { rejectUnauthorized: false };
157
+ }
158
+ }
159
+
160
+ //
161
+ // Turn config.payload into an array:
162
+ //
163
+ if (_.get(script, 'config.payload')) {
164
+ // Is it an object or an array?
165
+ if (_.isArray(script.config.payload)) {
166
+ // an array - nothing to do
167
+ } else if (_.isObject(script.config.payload)) {
168
+ if (flags.payload && !_.get(script.config.payload, 'path')) {
169
+ script.config.payload.path = path.resolve(process.cwd(), flags.payload);
170
+ } else if (!flags.payload && !_.get(script.config.payload, 'path')) {
171
+ console.log(
172
+ 'WARNING: config.payload.path not set and payload file not specified with -p'
173
+ );
174
+ } else if (flags.payload && _.get(script.config.payload, 'path')) {
175
+ console.log(
176
+ 'WARNING - both -p and config.payload.path are set, config.payload.path will be ignored.'
177
+ );
178
+ script.config.payload.path = flags.payload;
179
+ } else {
180
+ // no -p but config.payload.path is set - nothing to do
181
+ }
182
+
183
+ // Make it an array
184
+ script.config.payload = [script.config.payload];
185
+ } else {
186
+ console.log('Ignoring config.payload, not an object or an array.');
187
+ }
188
+ }
189
+
190
+ //
191
+ // Resolve all payload paths to absolute paths now:
192
+ //
193
+ const absoluteScriptPath = path.resolve(process.cwd(), scriptPath);
194
+ _.forEach(script.config.payload, (payloadSpec) => {
195
+ const resolvedPathToPayload = path.resolve(
196
+ path.dirname(absoluteScriptPath),
197
+ payloadSpec.path
198
+ );
199
+ payloadSpec.path = resolvedPathToPayload;
200
+ });
201
+ script._scriptPath = absoluteScriptPath;
202
+ return script;
203
+ }
204
+
205
+ async function resolveConfigPath(script, flags, scriptPath) {
206
+ if (!flags.config) {
207
+ script._configPath = scriptPath;
208
+ return script;
209
+ }
210
+
211
+ const absoluteConfigPath = path.resolve(process.cwd(), flags.config);
212
+ script._configPath = absoluteConfigPath;
213
+
214
+ if (!script.config.processor) {
215
+ return script;
216
+ }
217
+
218
+ const processorPath = path.resolve(
219
+ path.dirname(absoluteConfigPath),
220
+ script.config.processor
221
+ );
222
+
223
+ const stats = fs.statSync(processorPath, { throwIfNoEntry: false });
224
+
225
+ if (typeof stats === 'undefined') {
226
+ // No file at that path - backwards compatibility mode:
227
+ console.log(
228
+ 'WARNING - config.processor is now resolved relative to the config file'
229
+ );
230
+ console.log('Expected to find file at:', processorPath);
231
+ } else {
232
+ script.config.processor = processorPath;
233
+ }
234
+
235
+ return script;
236
+ }
237
+
238
+ function formatDuration(durationInMs) {
239
+ const duration = moment.duration(durationInMs);
240
+
241
+ const days = duration.days();
242
+ const hours = duration.hours();
243
+ const minutes = duration.minutes();
244
+ const seconds = duration.seconds();
245
+
246
+ const timeComponents = [];
247
+ if (days) {
248
+ timeComponents.push(`${days} ${maybePluralize(days, 'day')}`);
249
+ }
250
+
251
+ if (hours || days) {
252
+ timeComponents.push(`${hours} ${maybePluralize(hours, 'hour')}`);
253
+ }
254
+
255
+ if (minutes || hours || days) {
256
+ timeComponents.push(`${minutes} ${maybePluralize(minutes, 'minute')}`);
257
+ }
258
+
259
+ timeComponents.push(`${seconds} ${maybePluralize(seconds, 'second')}`);
260
+
261
+ return timeComponents.join(', ');
262
+ }
263
+
264
+ function maybePluralize(amount, singular, plural = `${singular}s`) {
265
+ return amount === 1 ? singular : plural;
266
+ }
267
+
268
+ function padded(str1, str2, length = 79, formatPadding = chalk.gray) {
269
+ const truncated = maybeTruncate(str1, length);
270
+ return (
271
+ truncated +
272
+ ' ' +
273
+ formatPadding('.'.repeat(length - truncated.length)) +
274
+ ' ' +
275
+ str2
276
+ );
277
+ }
278
+
279
+ function maybeTruncate(str, length) {
280
+ return str.length > length ? `${str.slice(0, length - 3)}...` : str;
281
+ }
282
+
283
+ function rainbow(str) {
284
+ const letters = str.split('');
285
+ const colors = ['red', 'yellow', 'green', 'cyan', 'blue', 'magenta'];
286
+ const colorsCount = colors.length;
287
+
288
+ return letters
289
+ .map((l, i) => {
290
+ const color = colors[i % colorsCount];
291
+ return chalk[color](l);
292
+ })
293
+ .join('');
294
+ }
@@ -0,0 +1,31 @@
1
+ const fs = require('node:fs');
2
+ const os = require('node:os');
3
+
4
+ const configFilePath = `${os.homedir()}/.artilleryrc`;
5
+
6
+ function readArtilleryConfig() {
7
+ try {
8
+ const config = fs.readFileSync(configFilePath, 'utf-8');
9
+
10
+ return JSON.parse(config);
11
+ } catch (_err) {
12
+ return {};
13
+ }
14
+ }
15
+
16
+ function updateArtilleryConfig(data) {
17
+ try {
18
+ const updatedConf = {
19
+ ...readArtilleryConfig(),
20
+ ...data
21
+ };
22
+
23
+ fs.writeFileSync(configFilePath, JSON.stringify(updatedConf));
24
+
25
+ return updatedConf;
26
+ } catch (err) {
27
+ console.error(err);
28
+ }
29
+ }
30
+
31
+ module.exports = { readArtilleryConfig, updateArtilleryConfig };
package/package.json ADDED
@@ -0,0 +1,323 @@
1
+ {
2
+ "name": "@depup/artillery",
3
+ "version": "2.0.30-depup.0",
4
+ "description": "Cloud-scale load testing. https://www.artillery.io (with updated dependencies)",
5
+ "types": "./types.d.ts",
6
+ "exports": {
7
+ ".": {
8
+ "require": "./lib/index.js",
9
+ "types": "./types.d.ts"
10
+ },
11
+ "./util": {
12
+ "require": "./lib/util.js"
13
+ }
14
+ },
15
+ "engines": {
16
+ "node": ">= 22.13.0"
17
+ },
18
+ "files": [
19
+ "/bin",
20
+ "/lib",
21
+ "console-reporter.js",
22
+ "util.js",
23
+ ".artilleryrc",
24
+ "types.d.ts",
25
+ "changes.json",
26
+ "README.md"
27
+ ],
28
+ "oclif": {
29
+ "update": {
30
+ "s3": {
31
+ "bucket": "artillery-cli-assets"
32
+ }
33
+ },
34
+ "commands": "./lib/cmds",
35
+ "hooks": {
36
+ "init": [
37
+ "./lib/cli/hooks/version"
38
+ ]
39
+ },
40
+ "bin": "artillery",
41
+ "_helpClass": "./bin/help",
42
+ "plugins": [
43
+ "@oclif/plugin-help",
44
+ "@oclif/plugin-not-found"
45
+ ],
46
+ "topics": {
47
+ "aws": {
48
+ "description": "run tests on AWS",
49
+ "hidden": true
50
+ },
51
+ "pro": {
52
+ "description": "deploy and manage Artillery Pro",
53
+ "hidden": true
54
+ }
55
+ }
56
+ },
57
+ "scripts": {
58
+ "test:unit": "tap --timeout=420 test/unit/*.test.js",
59
+ "test:acceptance": "tap --timeout=420 test/cli/*.test.js && bash test/lib/run.sh && tap --timeout=420 test/publish-metrics/**/*.test.js && tap --timeout=420 test/integration/**/*.test.js",
60
+ "test": " npm run test:unit && npm run test:acceptance",
61
+ "test:windows": "npm run test:unit && tap --timeout=420 test/cli/*.test.js",
62
+ "test:aws": "tap --timeout=4200 test/cloud-e2e/**/*.test.js",
63
+ "test:aws:ci": "tap --timeout=4200",
64
+ "test:aws:windows": "tap --timeout=420 test/cloud-e2e/**/*.test.js --grep \"@windows\"",
65
+ "lint": "npx @biomejs/biome check .",
66
+ "lint-fix": "npx @biomejs/biome check --write ."
67
+ },
68
+ "tap": {
69
+ "disable-coverage": true,
70
+ "allow-empty-coverage": true,
71
+ "color": true,
72
+ "test-env": [
73
+ "ARTILLERY_TELEMETRY_DEFAULTS={\"source\":\"test-suite\"}"
74
+ ]
75
+ },
76
+ "lint-staged": {
77
+ "**/*.{js,ts,tsx}": "npx @biomejs/biome check --write --files-ignore-unknown=true --no-errors-on-unmatched"
78
+ },
79
+ "keywords": [
80
+ "artillery",
81
+ "depup",
82
+ "updated-dependencies",
83
+ "security",
84
+ "latest",
85
+ "patched",
86
+ "load testing",
87
+ "stress testing",
88
+ "benchmark",
89
+ "performance",
90
+ "blackbox testing"
91
+ ],
92
+ "author": "Hassy Veldstra <h@veldstra.org>",
93
+ "contributors": [
94
+ "Kieran Gorman (https://github.com/kjgorman)",
95
+ "Antony Jones (https://github.com/antony)",
96
+ "Joe Schofield (https://github.com/JoeScho)",
97
+ "Kush Jain (https://github.com/kush-jain)"
98
+ ],
99
+ "license": "MPL-2.0",
100
+ "preferGlobal": true,
101
+ "man": "./man/artillery.1",
102
+ "bin": {
103
+ "artillery": "./bin/run"
104
+ },
105
+ "repository": {
106
+ "type": "git",
107
+ "url": "https://github.com/artilleryio/artillery.git"
108
+ },
109
+ "bugs": {
110
+ "url": "https://github.com/artilleryio/artillery/issues",
111
+ "email": "npm@veldstra.org"
112
+ },
113
+ "dependencies": {
114
+ "@artilleryio/int-commons": "2.21.0",
115
+ "@artilleryio/int-core": "2.25.0",
116
+ "@aws-sdk/client-cloudwatch-logs": "^3.1012.0",
117
+ "@aws-sdk/client-ec2": "^3.1012.0",
118
+ "@aws-sdk/client-ecs": "^3.1012.0",
119
+ "@aws-sdk/client-iam": "^3.1012.0",
120
+ "@aws-sdk/client-lambda": "^3.1012.0",
121
+ "@aws-sdk/client-s3": "^3.1012.0",
122
+ "@aws-sdk/client-sqs": "^3.1012.0",
123
+ "@aws-sdk/client-ssm": "^3.1012.0",
124
+ "@aws-sdk/client-sts": "^3.1012.0",
125
+ "@aws-sdk/credential-providers": "^3.1012.0",
126
+ "@azure/arm-containerinstance": "^9.1.0",
127
+ "@azure/identity": "^4.13.0",
128
+ "@azure/storage-blob": "^12.31.0",
129
+ "@azure/storage-queue": "^12.29.0",
130
+ "@oclif/core": "^4.9.0",
131
+ "@oclif/plugin-help": "^6.2.38",
132
+ "@oclif/plugin-not-found": "^3.2.75",
133
+ "@upstash/redis": "^1.37.0",
134
+ "artillery-engine-playwright": "1.27.0",
135
+ "artillery-plugin-apdex": "1.21.0",
136
+ "artillery-plugin-ensure": "1.24.0",
137
+ "artillery-plugin-expect": "2.24.0",
138
+ "artillery-plugin-fake-data": "1.21.0",
139
+ "artillery-plugin-metrics-by-endpoint": "1.24.0",
140
+ "artillery-plugin-publish-metrics": "2.35.0",
141
+ "artillery-plugin-slack": "1.19.0",
142
+ "async": "^3.2.6",
143
+ "chalk": "^5.6.2",
144
+ "chokidar": "^5.0.0",
145
+ "ci-info": "^4.4.0",
146
+ "cli-table3": "^0.6.5",
147
+ "cross-spawn": "^7.0.6",
148
+ "csv-parse": "^6.2.0",
149
+ "debug": "^4.4.3",
150
+ "dependency-tree": "^11.4.0",
151
+ "detective-es6": "^5.0.1",
152
+ "dotenv": "^17.3.1",
153
+ "driftless": "^2.0.3",
154
+ "esbuild-wasm": "^0.27.4",
155
+ "eventemitter3": "^5.0.4",
156
+ "fs-extra": "^11.3.4",
157
+ "got": "^14.6.6",
158
+ "joi": "^18.0.2",
159
+ "js-yaml": "^4.1.1",
160
+ "jsonwebtoken": "^9.0.3",
161
+ "lodash": "^4.17.23",
162
+ "moment": "^2.30.1",
163
+ "nanoid": "^5.1.7",
164
+ "ora": "^9.3.0",
165
+ "rc": "^1.2.8",
166
+ "sqs-consumer": "^14.2.3",
167
+ "tempy": "^3.2.0",
168
+ "walk-sync": "^4.0.1",
169
+ "yaml-js": "^0.3.1"
170
+ },
171
+ "devDependencies": {
172
+ "@aws-sdk/client-xray": "^3.879.0",
173
+ "@biomejs/biome": "^2.3.3",
174
+ "@hapi/hapi": "^20.1.3",
175
+ "execa": "^0.10.0",
176
+ "get-bin-path": "^5.1.0",
177
+ "rewiremock": "^3.14.3",
178
+ "sinon": "^4.5.0",
179
+ "tap": "^19.0.2",
180
+ "zx": "^8.6.1"
181
+ },
182
+ "depup": {
183
+ "changes": {
184
+ "@aws-sdk/client-cloudwatch-logs": {
185
+ "from": "^3.972.0",
186
+ "to": "^3.1012.0"
187
+ },
188
+ "@aws-sdk/client-ec2": {
189
+ "from": "^3.972.0",
190
+ "to": "^3.1012.0"
191
+ },
192
+ "@aws-sdk/client-ecs": {
193
+ "from": "^3.972.0",
194
+ "to": "^3.1012.0"
195
+ },
196
+ "@aws-sdk/client-iam": {
197
+ "from": "^3.972.0",
198
+ "to": "^3.1012.0"
199
+ },
200
+ "@aws-sdk/client-lambda": {
201
+ "from": "^3.972.0",
202
+ "to": "^3.1012.0"
203
+ },
204
+ "@aws-sdk/client-s3": {
205
+ "from": "^3.972.0",
206
+ "to": "^3.1012.0"
207
+ },
208
+ "@aws-sdk/client-sqs": {
209
+ "from": "^3.972.0",
210
+ "to": "^3.1012.0"
211
+ },
212
+ "@aws-sdk/client-ssm": {
213
+ "from": "^3.972.0",
214
+ "to": "^3.1012.0"
215
+ },
216
+ "@aws-sdk/client-sts": {
217
+ "from": "^3.972.0",
218
+ "to": "^3.1012.0"
219
+ },
220
+ "@aws-sdk/credential-providers": {
221
+ "from": "^3.972.0",
222
+ "to": "^3.1012.0"
223
+ },
224
+ "@azure/storage-blob": {
225
+ "from": "^12.30.0",
226
+ "to": "^12.31.0"
227
+ },
228
+ "@oclif/core": {
229
+ "from": "^4.8.0",
230
+ "to": "^4.9.0"
231
+ },
232
+ "@oclif/plugin-help": {
233
+ "from": "^6.2.36",
234
+ "to": "^6.2.38"
235
+ },
236
+ "@oclif/plugin-not-found": {
237
+ "from": "^3.2.73",
238
+ "to": "^3.2.75"
239
+ },
240
+ "@upstash/redis": {
241
+ "from": "^1.36.1",
242
+ "to": "^1.37.0"
243
+ },
244
+ "async": {
245
+ "from": "^2.6.4",
246
+ "to": "^3.2.6"
247
+ },
248
+ "chalk": {
249
+ "from": "^2.4.2",
250
+ "to": "^5.6.2"
251
+ },
252
+ "chokidar": {
253
+ "from": "^3.6.0",
254
+ "to": "^5.0.0"
255
+ },
256
+ "ci-info": {
257
+ "from": "^4.3.1",
258
+ "to": "^4.4.0"
259
+ },
260
+ "csv-parse": {
261
+ "from": "^4.16.3",
262
+ "to": "^6.2.0"
263
+ },
264
+ "dependency-tree": {
265
+ "from": "^11.2.0",
266
+ "to": "^11.4.0"
267
+ },
268
+ "dotenv": {
269
+ "from": "^16.6.1",
270
+ "to": "^17.3.1"
271
+ },
272
+ "esbuild-wasm": {
273
+ "from": "^0.19.12",
274
+ "to": "^0.27.4"
275
+ },
276
+ "fs-extra": {
277
+ "from": "^11.3.3",
278
+ "to": "^11.3.4"
279
+ },
280
+ "got": {
281
+ "from": "^11.8.5",
282
+ "to": "^14.6.6"
283
+ },
284
+ "joi": {
285
+ "from": "^17.13.3",
286
+ "to": "^18.0.2"
287
+ },
288
+ "js-yaml": {
289
+ "from": "^3.14.1",
290
+ "to": "^4.1.1"
291
+ },
292
+ "lodash": {
293
+ "from": "^4.17.21",
294
+ "to": "^4.17.23"
295
+ },
296
+ "nanoid": {
297
+ "from": "^3.3.4",
298
+ "to": "^5.1.7"
299
+ },
300
+ "ora": {
301
+ "from": "^4.0.4",
302
+ "to": "^9.3.0"
303
+ },
304
+ "sqs-consumer": {
305
+ "from": "6.0.2",
306
+ "to": "^14.2.3"
307
+ },
308
+ "tempy": {
309
+ "from": "3.1.0",
310
+ "to": "^3.2.0"
311
+ },
312
+ "walk-sync": {
313
+ "from": "^0.2.3",
314
+ "to": "^4.0.1"
315
+ }
316
+ },
317
+ "depsUpdated": 33,
318
+ "originalPackage": "artillery",
319
+ "originalVersion": "2.0.30",
320
+ "processedAt": "2026-03-19T03:31:16.001Z",
321
+ "smokeTest": "failed"
322
+ }
323
+ }