From 0804b9b4106132c5487b57be518958c699ce2563 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sat, 30 Mar 2024 18:51:19 +0100 Subject: [PATCH] feat: add support for mitata benchmark MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .eslintrc.cjs | 3 + .github/workflows/internal-benchmark.yml | 2 +- .vscode/launch.json | 14 +- .vscode/settings.json | 2 + benchmarks/README.md | 5 +- benchmarks/benchmarks-utils.cjs | 182 +------------ benchmarks/benchmarks-utils.mjs | 251 ++++++++++++++++++ benchmarks/internal/bench.mjs | 160 +++++++---- benchmarks/internal/thread-worker.mjs | 2 +- benchmarks/worker-selection/least.mjs | 30 +-- benchmarks/worker-selection/round-robin.mjs | 26 +- .../typescript/http-client-pool/package.json | 2 +- .../http-client-pool/pnpm-lock.yaml | 8 +- .../express-cluster/package.json | 2 +- .../express-cluster/pnpm-lock.yaml | 20 +- .../express-hybrid/package.json | 2 +- .../express-hybrid/pnpm-lock.yaml | 20 +- .../express-worker_threads/package.json | 2 +- .../express-worker_threads/pnpm-lock.yaml | 18 +- .../fastify-cluster/package.json | 2 +- .../fastify-cluster/pnpm-lock.yaml | 10 +- .../fastify-hybrid/package.json | 2 +- .../fastify-hybrid/pnpm-lock.yaml | 10 +- .../fastify-worker_threads/package.json | 2 +- .../fastify-worker_threads/pnpm-lock.yaml | 8 +- .../typescript/smtp-client-pool/package.json | 2 +- .../smtp-client-pool/pnpm-lock.yaml | 10 +- .../ws-cluster/package.json | 2 +- .../ws-cluster/pnpm-lock.yaml | 12 +- .../ws-hybrid/package.json | 2 +- .../ws-hybrid/pnpm-lock.yaml | 12 +- .../ws-worker_threads/package.json | 2 +- .../ws-worker_threads/pnpm-lock.yaml | 10 +- package.json | 12 +- pnpm-lock.yaml | 91 ++++--- 35 files changed, 546 insertions(+), 394 deletions(-) create mode 100644 benchmarks/benchmarks-utils.mjs diff --git a/.eslintrc.cjs b/.eslintrc.cjs index c2f4abe2..6027efd0 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -32,6 +32,7 @@ module.exports = defineConfig({ 'warn', { skipWords: [ + 'argv', 'axios', 'benoit', 'browserslist', @@ -67,6 +68,7 @@ module.exports = defineConfig({ 'linebreak', 'localhost', 'microjob', + 'mitata', 'mjs', 'nodemailer', 'npx', @@ -78,6 +80,7 @@ module.exports = defineConfig({ 'poolifier', 'prepend', 'prepends', + 'positionals', 'readdir', 'readonly', 'req', diff --git a/.github/workflows/internal-benchmark.yml b/.github/workflows/internal-benchmark.yml index cd5ff85d..fbd6d571 100644 --- a/.github/workflows/internal-benchmark.yml +++ b/.github/workflows/internal-benchmark.yml @@ -42,4 +42,4 @@ jobs: --hash "$GITHUB_SHA" \ --err \ --github-actions ${{ secrets.GITHUB_TOKEN }} \ - "pnpm benchmark:prod" + "pnpm benchmark:benchmark.js:prod" diff --git a/.vscode/launch.json b/.vscode/launch.json index 13790c65..921886b8 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -17,10 +17,20 @@ { "type": "node", "request": "launch", - "name": "Launch Benchmarks Debug", + "name": "Launch Benchmark.js Benchmark Debug", "cwd": "${workspaceFolder}", "runtimeExecutable": "pnpm", - "runtimeArgs": ["run", "benchmark:debug"], + "runtimeArgs": ["run", "benchmark:benchmark.js:debug"], + "skipFiles": ["/**"], + "stopOnEntry": true + }, + { + "type": "node", + "request": "launch", + "name": "Launch Mitata Benchmark Debug", + "cwd": "${workspaceFolder}", + "runtimeExecutable": "pnpm", + "runtimeArgs": ["run", "benchmark:mitata:debug"], "skipFiles": ["/**"], "stopOnEntry": true } diff --git a/.vscode/settings.json b/.vscode/settings.json index c3f75102..ffab16b6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -33,6 +33,7 @@ "maxdepth", "microjob", "microtime", + "mitata", "mochawesome", "MYBENCH", "nanothreads", @@ -45,6 +46,7 @@ "pioardi", "poolifier", "poolify", + "positionals", "preinstall", "Quadflieg", "Shinigami", diff --git a/benchmarks/README.md b/benchmarks/README.md index 273b1535..3468dce5 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -22,6 +22,9 @@ See the dedicated repository [README.md](https://github.com/poolifier/benchmark# ### Usage -To run the internal benchmark, you just need to navigate to the root of poolifier cloned repository and run `pnpm benchmark`. +To run the internal benchmark, you just need to navigate to the root of poolifier cloned repository and run: + +- `pnpm benchmark:benchmark.js` or +- `pnpm benchmark:mitata` ### [Results](https://bencher.dev/perf/poolifier) diff --git a/benchmarks/benchmarks-utils.cjs b/benchmarks/benchmarks-utils.cjs index f5f41be9..c3b470f7 100644 --- a/benchmarks/benchmarks-utils.cjs +++ b/benchmarks/benchmarks-utils.cjs @@ -1,5 +1,4 @@ const { randomInt } = require('node:crypto') -const { strictEqual } = require('node:assert') const { existsSync, mkdirSync, @@ -7,185 +6,8 @@ const { rmSync, writeFileSync } = require('node:fs') -const Benchmark = require('benchmark') -const { - DynamicClusterPool, - DynamicThreadPool, - FixedClusterPool, - FixedThreadPool, - Measurements, - PoolTypes, - WorkerChoiceStrategies, - WorkerTypes -} = require('../lib/index.cjs') const { TaskFunctions } = require('./benchmarks-types.cjs') -const buildPoolifierPool = (workerType, poolType, poolSize, poolOptions) => { - switch (poolType) { - case PoolTypes.fixed: - switch (workerType) { - case WorkerTypes.thread: - return new FixedThreadPool( - poolSize, - './benchmarks/internal/thread-worker.mjs', - poolOptions - ) - case WorkerTypes.cluster: - return new FixedClusterPool( - poolSize, - './benchmarks/internal/cluster-worker.cjs', - poolOptions - ) - } - break - case PoolTypes.dynamic: - switch (workerType) { - case WorkerTypes.thread: - return new DynamicThreadPool( - Math.floor(poolSize / 2), - poolSize, - './benchmarks/internal/thread-worker.mjs', - poolOptions - ) - case WorkerTypes.cluster: - return new DynamicClusterPool( - Math.floor(poolSize / 2), - poolSize, - './benchmarks/internal/cluster-worker.cjs', - poolOptions - ) - } - break - } -} - -const runPoolifierPool = async (pool, { taskExecutions, workerData }) => { - return await new Promise((resolve, reject) => { - let executions = 0 - for (let i = 1; i <= taskExecutions; i++) { - pool - .execute(workerData) - .then(() => { - ++executions - if (executions === taskExecutions) { - resolve({ ok: 1 }) - } - return undefined - }) - .catch(err => { - console.error(err) - reject(err) - }) - } - }) -} - -const runPoolifierPoolBenchmark = async ( - name, - workerType, - poolType, - poolSize, - { taskExecutions, workerData } -) => { - return await new Promise((resolve, reject) => { - const pool = buildPoolifierPool(workerType, poolType, poolSize) - try { - const suite = new Benchmark.Suite(name) - for (const workerChoiceStrategy of Object.values( - WorkerChoiceStrategies - )) { - for (const enableTasksQueue of [false, true]) { - if (workerChoiceStrategy === WorkerChoiceStrategies.FAIR_SHARE) { - for (const measurement of [ - Measurements.runTime, - Measurements.elu - ]) { - suite.add( - `${name} with ${workerChoiceStrategy}, with ${measurement} and ${ - enableTasksQueue ? 'with' : 'without' - } tasks queue`, - async () => { - pool.setWorkerChoiceStrategy(workerChoiceStrategy, { - measurement - }) - pool.enableTasksQueue(enableTasksQueue) - strictEqual( - pool.opts.workerChoiceStrategy, - workerChoiceStrategy - ) - strictEqual(pool.opts.enableTasksQueue, enableTasksQueue) - strictEqual( - pool.opts.workerChoiceStrategyOptions.measurement, - measurement - ) - await runPoolifierPool(pool, { - taskExecutions, - workerData - }) - } - ) - } - } else { - suite.add( - `${name} with ${workerChoiceStrategy} and ${ - enableTasksQueue ? 'with' : 'without' - } tasks queue`, - async () => { - pool.setWorkerChoiceStrategy(workerChoiceStrategy) - pool.enableTasksQueue(enableTasksQueue) - strictEqual( - pool.opts.workerChoiceStrategy, - workerChoiceStrategy - ) - strictEqual(pool.opts.enableTasksQueue, enableTasksQueue) - await runPoolifierPool(pool, { - taskExecutions, - workerData - }) - } - ) - } - } - } - suite - .on('cycle', event => { - console.info(event.target.toString()) - }) - .on('complete', function () { - console.info( - 'Fastest is ' + - LIST_FORMATTER.format(this.filter('fastest').map('name')) - ) - const destroyTimeout = setTimeout(() => { - console.error('Pool destroy timeout reached (30s)') - resolve() - }, 30000) - pool - .destroy() - .then(resolve) - .catch(reject) - .finally(() => { - clearTimeout(destroyTimeout) - }) - .catch(() => {}) - }) - .run({ async: true }) - } catch (error) { - pool - .destroy() - .then(() => { - return reject(error) - }) - .catch(() => {}) - } - }) -} - -const LIST_FORMATTER = new Intl.ListFormat('en-US', { - style: 'long', - type: 'conjunction' -}) - const jsonIntegerSerialization = n => { for (let i = 0; i < n; i++) { const o = { @@ -267,7 +89,5 @@ const executeTaskFunction = data => { } module.exports = { - LIST_FORMATTER, - executeTaskFunction, - runPoolifierPoolBenchmark + executeTaskFunction } diff --git a/benchmarks/benchmarks-utils.mjs b/benchmarks/benchmarks-utils.mjs new file mode 100644 index 00000000..1878988f --- /dev/null +++ b/benchmarks/benchmarks-utils.mjs @@ -0,0 +1,251 @@ +import { strictEqual } from 'node:assert' + +import Benchmark from 'benchmark' +import { bench, group } from 'mitata' + +import { + DynamicClusterPool, + DynamicThreadPool, + FixedClusterPool, + FixedThreadPool, + Measurements, + PoolTypes, + WorkerChoiceStrategies, + WorkerTypes +} from '../lib/index.mjs' + +const buildPoolifierPool = (workerType, poolType, poolSize, poolOptions) => { + switch (poolType) { + case PoolTypes.fixed: + switch (workerType) { + case WorkerTypes.thread: + return new FixedThreadPool( + poolSize, + './benchmarks/internal/thread-worker.mjs', + poolOptions + ) + case WorkerTypes.cluster: + return new FixedClusterPool( + poolSize, + './benchmarks/internal/cluster-worker.cjs', + poolOptions + ) + } + break + case PoolTypes.dynamic: + switch (workerType) { + case WorkerTypes.thread: + return new DynamicThreadPool( + Math.floor(poolSize / 2), + poolSize, + './benchmarks/internal/thread-worker.mjs', + poolOptions + ) + case WorkerTypes.cluster: + return new DynamicClusterPool( + Math.floor(poolSize / 2), + poolSize, + './benchmarks/internal/cluster-worker.cjs', + poolOptions + ) + } + break + } +} + +const runPoolifierPool = async (pool, { taskExecutions, workerData }) => { + return await new Promise((resolve, reject) => { + let executions = 0 + for (let i = 1; i <= taskExecutions; i++) { + pool + .execute(workerData) + .then(() => { + ++executions + if (executions === taskExecutions) { + resolve({ ok: 1 }) + } + return undefined + }) + .catch(err => { + console.error(err) + reject(err) + }) + } + }) +} + +export const runPoolifierBenchmarkBenchmarkJs = async ( + name, + workerType, + poolType, + poolSize, + { taskExecutions, workerData } +) => { + return await new Promise((resolve, reject) => { + const pool = buildPoolifierPool(workerType, poolType, poolSize) + try { + const suite = new Benchmark.Suite(name) + for (const workerChoiceStrategy of Object.values( + WorkerChoiceStrategies + )) { + for (const enableTasksQueue of [false, true]) { + if (workerChoiceStrategy === WorkerChoiceStrategies.FAIR_SHARE) { + for (const measurement of [ + Measurements.runTime, + Measurements.elu + ]) { + suite.add( + `${name} with ${workerChoiceStrategy}, with ${measurement} and ${ + enableTasksQueue ? 'with' : 'without' + } tasks queue`, + async () => { + pool.setWorkerChoiceStrategy(workerChoiceStrategy, { + measurement + }) + pool.enableTasksQueue(enableTasksQueue) + strictEqual( + pool.opts.workerChoiceStrategy, + workerChoiceStrategy + ) + strictEqual(pool.opts.enableTasksQueue, enableTasksQueue) + strictEqual( + pool.opts.workerChoiceStrategyOptions.measurement, + measurement + ) + await runPoolifierPool(pool, { + taskExecutions, + workerData + }) + } + ) + } + } else { + suite.add( + `${name} with ${workerChoiceStrategy} and ${ + enableTasksQueue ? 'with' : 'without' + } tasks queue`, + async () => { + pool.setWorkerChoiceStrategy(workerChoiceStrategy) + pool.enableTasksQueue(enableTasksQueue) + strictEqual( + pool.opts.workerChoiceStrategy, + workerChoiceStrategy + ) + strictEqual(pool.opts.enableTasksQueue, enableTasksQueue) + await runPoolifierPool(pool, { + taskExecutions, + workerData + }) + } + ) + } + } + } + suite + .on('cycle', event => { + console.info(event.target.toString()) + }) + .on('complete', function () { + console.info( + 'Fastest is ' + + LIST_FORMATTER.format(this.filter('fastest').map('name')) + ) + const destroyTimeout = setTimeout(() => { + console.error('Pool destroy timeout reached (30s)') + resolve() + }, 30000) + pool + .destroy() + .then(resolve) + .catch(reject) + .finally(() => { + clearTimeout(destroyTimeout) + }) + .catch(() => {}) + }) + .run({ async: true }) + } catch (error) { + pool + .destroy() + .then(() => { + return reject(error) + }) + .catch(() => {}) + } + }) +} + +export const buildPoolifierBenchmarkMitata = ( + name, + workerType, + poolType, + poolSize, + { taskExecutions, workerData } +) => { + try { + const pool = buildPoolifierPool(workerType, poolType, poolSize) + for (const workerChoiceStrategy of Object.values(WorkerChoiceStrategies)) { + for (const enableTasksQueue of [false, true]) { + if (workerChoiceStrategy === WorkerChoiceStrategies.FAIR_SHARE) { + for (const measurement of [Measurements.runTime, Measurements.elu]) { + group(name, () => { + bench( + `${name} with ${workerChoiceStrategy}, with ${measurement} and ${ + enableTasksQueue ? 'with' : 'without' + } tasks queue`, + async () => { + pool.setWorkerChoiceStrategy(workerChoiceStrategy, { + measurement + }) + pool.enableTasksQueue(enableTasksQueue) + strictEqual( + pool.opts.workerChoiceStrategy, + workerChoiceStrategy + ) + strictEqual(pool.opts.enableTasksQueue, enableTasksQueue) + strictEqual( + pool.opts.workerChoiceStrategyOptions.measurement, + measurement + ) + await runPoolifierPool(pool, { + taskExecutions, + workerData + }) + } + ) + }) + } + } else { + group(name, () => { + bench( + `${name} with ${workerChoiceStrategy} and ${ + enableTasksQueue ? 'with' : 'without' + } tasks queue`, + async () => { + pool.setWorkerChoiceStrategy(workerChoiceStrategy) + pool.enableTasksQueue(enableTasksQueue) + strictEqual( + pool.opts.workerChoiceStrategy, + workerChoiceStrategy + ) + strictEqual(pool.opts.enableTasksQueue, enableTasksQueue) + await runPoolifierPool(pool, { + taskExecutions, + workerData + }) + } + ) + }) + } + } + } + return pool + } catch (error) { + console.error(error) + } +} + +const LIST_FORMATTER = new Intl.ListFormat('en-US', { + style: 'long', + type: 'conjunction' +}) diff --git a/benchmarks/internal/bench.mjs b/benchmarks/internal/bench.mjs index 62eefe64..442326a7 100644 --- a/benchmarks/internal/bench.mjs +++ b/benchmarks/internal/bench.mjs @@ -1,4 +1,7 @@ import { exit } from 'node:process' +import { parseArgs } from 'node:util' + +import { run } from 'mitata' import { availableParallelism, @@ -6,7 +9,10 @@ import { WorkerTypes } from '../../lib/index.mjs' import { TaskFunctions } from '../benchmarks-types.cjs' -import { runPoolifierPoolBenchmark } from '../benchmarks-utils.cjs' +import { + buildPoolifierBenchmarkMitata, + runPoolifierBenchmarkBenchmarkJs +} from '../benchmarks-utils.mjs' const poolSize = availableParallelism() const taskExecutions = 1 @@ -15,52 +21,114 @@ const workerData = { taskSize: 50000 } -// FixedThreadPool -await runPoolifierPoolBenchmark( - 'FixedThreadPool', - WorkerTypes.thread, - PoolTypes.fixed, - poolSize, - { - taskExecutions, - workerData +const options = { + type: { + type: 'string', + short: 't' } -) - -// DynamicThreadPool -await runPoolifierPoolBenchmark( - 'DynamicThreadPool', - WorkerTypes.thread, - PoolTypes.dynamic, - poolSize, - { - taskExecutions, - workerData - } -) - -// FixedClusterPool -await runPoolifierPoolBenchmark( - 'FixedClusterPool', - WorkerTypes.cluster, - PoolTypes.fixed, - poolSize, - { - taskExecutions, - workerData - } -) +} +const { values } = parseArgs({ + args: process.argv, + options, + strict: true, + allowPositionals: true +}) -// DynamicClusterPool -await runPoolifierPoolBenchmark( - 'DynamicClusterPool', - WorkerTypes.cluster, - PoolTypes.dynamic, - poolSize, - { - taskExecutions, - workerData - } -) +let fixedThreadPool +let dynamicThreadPool +let fixedClusterPool +let dynamicClusterPool +switch (values.type) { + case 'mitata': + fixedThreadPool = buildPoolifierBenchmarkMitata( + 'FixedThreadPool', + WorkerTypes.thread, + PoolTypes.fixed, + poolSize, + { + taskExecutions, + workerData + } + ) + dynamicThreadPool = buildPoolifierBenchmarkMitata( + 'DynamicThreadPool', + WorkerTypes.thread, + PoolTypes.dynamic, + poolSize, + { + taskExecutions, + workerData + } + ) + fixedClusterPool = buildPoolifierBenchmarkMitata( + 'FixedClusterPool', + WorkerTypes.cluster, + PoolTypes.fixed, + poolSize, + { + taskExecutions, + workerData + } + ) + dynamicClusterPool = buildPoolifierBenchmarkMitata( + 'DynamicClusterPool', + WorkerTypes.cluster, + PoolTypes.dynamic, + poolSize, + { + taskExecutions, + workerData + } + ) + await run() + await fixedThreadPool.destroy() + await dynamicThreadPool.destroy() + await fixedClusterPool.destroy() + await dynamicClusterPool.destroy() + break + case 'benchmark.js': + default: + await runPoolifierBenchmarkBenchmarkJs( + 'FixedThreadPool', + WorkerTypes.thread, + PoolTypes.fixed, + poolSize, + { + taskExecutions, + workerData + } + ) + await runPoolifierBenchmarkBenchmarkJs( + 'DynamicThreadPool', + WorkerTypes.thread, + PoolTypes.dynamic, + poolSize, + { + taskExecutions, + workerData + } + ) + await runPoolifierBenchmarkBenchmarkJs( + 'FixedClusterPool', + WorkerTypes.cluster, + PoolTypes.fixed, + poolSize, + { + taskExecutions, + workerData + } + ) + await runPoolifierBenchmarkBenchmarkJs( + 'DynamicClusterPool', + WorkerTypes.cluster, + PoolTypes.dynamic, + poolSize, + { + taskExecutions, + workerData + } + ) + break +} exit() diff --git a/benchmarks/internal/thread-worker.mjs b/benchmarks/internal/thread-worker.mjs index e7c58f70..232881b5 100644 --- a/benchmarks/internal/thread-worker.mjs +++ b/benchmarks/internal/thread-worker.mjs @@ -2,7 +2,7 @@ import { isMainThread } from 'node:worker_threads' import { ThreadWorker } from '../../lib/index.mjs' import { TaskFunctions } from '../benchmarks-types.cjs' -import { executeTaskFunction } from '../benchmarks-utils.cjs' +import { executeTaskFunction } from '../benchmarks-utils.mjs' const taskFunction = data => { data = data || {} diff --git a/benchmarks/worker-selection/least.mjs b/benchmarks/worker-selection/least.mjs index d08bec0e..40b360ea 100644 --- a/benchmarks/worker-selection/least.mjs +++ b/benchmarks/worker-selection/least.mjs @@ -1,8 +1,6 @@ import { randomInt } from 'node:crypto' -import Benchmark from 'benchmark' - -import { LIST_FORMATTER } from '../benchmarks-utils.cjs' +import { bench, group, run } from 'mitata' function generateRandomTasksMap ( numberOfWorkers, @@ -170,31 +168,25 @@ function quickSelectRecursionRandomPivot (tasksMap) { ) } -new Benchmark.Suite('Least used worker tasks distribution') - .add('Loop select', () => { +group('Least used worker tasks distribution', () => { + bench('Loop select', () => { loopSelect(tasksMap) }) - .add('Array sort select', () => { + bench('Array sort select', () => { arraySortSelect(tasksMap) }) - .add('Quick select loop', () => { + bench('Quick select loop', () => { quickSelectLoop(tasksMap) }) - .add('Quick select loop with random pivot', () => { + bench('Quick select loop with random pivot', () => { quickSelectLoopRandomPivot(tasksMap) }) - .add('Quick select recursion', () => { + bench('Quick select recursion', () => { quickSelectRecursion(tasksMap) }) - .add('Quick select recursion with random pivot', () => { + bench('Quick select recursion with random pivot', () => { quickSelectRecursionRandomPivot(tasksMap) }) - .on('cycle', event => { - console.info(event.target.toString()) - }) - .on('complete', function () { - console.info( - 'Fastest is ' + LIST_FORMATTER.format(this.filter('fastest').map('name')) - ) - }) - .run() +}) + +await run({ units: true }) diff --git a/benchmarks/worker-selection/round-robin.mjs b/benchmarks/worker-selection/round-robin.mjs index f9d125d7..c9366262 100644 --- a/benchmarks/worker-selection/round-robin.mjs +++ b/benchmarks/worker-selection/round-robin.mjs @@ -1,6 +1,4 @@ -import Benchmark from 'benchmark' - -import { LIST_FORMATTER } from '../benchmarks-utils.cjs' +import { bench, group, run } from 'mitata' function generateWorkersArray (numberOfWorkers) { return [...Array(numberOfWorkers).keys()] @@ -38,29 +36,23 @@ function roundRobinIncrementModulo () { return chosenWorker } -new Benchmark.Suite('Round robin tasks distribution') - .add('Ternary off by one', () => { +group('Round robin tasks distribution', () => { + bench('Ternary off by one', () => { nextWorkerIndex = 0 roundRobinTernaryOffByOne() }) - .add('Ternary with negation', () => { + bench('Ternary with negation', () => { nextWorkerIndex = 0 roundRobinTernaryWithNegation() }) - .add('Ternary with pre-choosing', () => { + bench('Ternary with pre-choosing', () => { nextWorkerIndex = 0 roundRobinTernaryWithPreChoosing() }) - .add('Increment+Modulo', () => { + bench('Increment+Modulo', () => { nextWorkerIndex = 0 roundRobinIncrementModulo() }) - .on('cycle', event => { - console.info(event.target.toString()) - }) - .on('complete', function () { - console.info( - 'Fastest is ' + LIST_FORMATTER.format(this.filter('fastest').map('name')) - ) - }) - .run() +}) + +await run({ units: true }) diff --git a/examples/typescript/http-client-pool/package.json b/examples/typescript/http-client-pool/package.json index 38bd7ebd..167f94d5 100644 --- a/examples/typescript/http-client-pool/package.json +++ b/examples/typescript/http-client-pool/package.json @@ -25,7 +25,7 @@ "poolifier": "^3.1.27" }, "devDependencies": { - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "typescript": "^5.4.3" } } diff --git a/examples/typescript/http-client-pool/pnpm-lock.yaml b/examples/typescript/http-client-pool/pnpm-lock.yaml index 38a03a05..b2545e72 100644 --- a/examples/typescript/http-client-pool/pnpm-lock.yaml +++ b/examples/typescript/http-client-pool/pnpm-lock.yaml @@ -17,16 +17,16 @@ dependencies: devDependencies: '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 typescript: specifier: ^5.4.3 version: 5.4.3 packages: - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true diff --git a/examples/typescript/http-server-pool/express-cluster/package.json b/examples/typescript/http-server-pool/express-cluster/package.json index d7eb7ef3..7ecea2df 100644 --- a/examples/typescript/http-server-pool/express-cluster/package.json +++ b/examples/typescript/http-server-pool/express-cluster/package.json @@ -27,7 +27,7 @@ "devDependencies": { "@rollup/plugin-typescript": "^11.1.6", "@types/express": "^4.17.21", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "autocannon": "^7.15.0", "rollup": "^4.13.2", "rollup-plugin-delete": "^2.0.0", diff --git a/examples/typescript/http-server-pool/express-cluster/pnpm-lock.yaml b/examples/typescript/http-server-pool/express-cluster/pnpm-lock.yaml index 403c07e1..49bb317d 100644 --- a/examples/typescript/http-server-pool/express-cluster/pnpm-lock.yaml +++ b/examples/typescript/http-server-pool/express-cluster/pnpm-lock.yaml @@ -20,8 +20,8 @@ devDependencies: specifier: ^4.17.21 version: 4.17.21 '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 autocannon: specifier: ^7.15.0 version: 7.15.0 @@ -231,13 +231,13 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/estree@1.0.5: @@ -247,7 +247,7 @@ packages: /@types/express-serve-static-core@4.17.43: resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -266,7 +266,7 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/http-errors@2.0.4: @@ -285,8 +285,8 @@ packages: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true @@ -303,7 +303,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/serve-static@1.15.5: @@ -311,7 +311,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /accepts@1.3.8: diff --git a/examples/typescript/http-server-pool/express-hybrid/package.json b/examples/typescript/http-server-pool/express-hybrid/package.json index 035cc6d8..23c56bd1 100644 --- a/examples/typescript/http-server-pool/express-hybrid/package.json +++ b/examples/typescript/http-server-pool/express-hybrid/package.json @@ -27,7 +27,7 @@ "devDependencies": { "@rollup/plugin-typescript": "^11.1.6", "@types/express": "^4.17.21", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "autocannon": "^7.15.0", "rollup": "^4.13.2", "rollup-plugin-delete": "^2.0.0", diff --git a/examples/typescript/http-server-pool/express-hybrid/pnpm-lock.yaml b/examples/typescript/http-server-pool/express-hybrid/pnpm-lock.yaml index 403c07e1..49bb317d 100644 --- a/examples/typescript/http-server-pool/express-hybrid/pnpm-lock.yaml +++ b/examples/typescript/http-server-pool/express-hybrid/pnpm-lock.yaml @@ -20,8 +20,8 @@ devDependencies: specifier: ^4.17.21 version: 4.17.21 '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 autocannon: specifier: ^7.15.0 version: 7.15.0 @@ -231,13 +231,13 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/estree@1.0.5: @@ -247,7 +247,7 @@ packages: /@types/express-serve-static-core@4.17.43: resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -266,7 +266,7 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/http-errors@2.0.4: @@ -285,8 +285,8 @@ packages: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true @@ -303,7 +303,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/serve-static@1.15.5: @@ -311,7 +311,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /accepts@1.3.8: diff --git a/examples/typescript/http-server-pool/express-worker_threads/package.json b/examples/typescript/http-server-pool/express-worker_threads/package.json index de54766a..cd30f3c3 100644 --- a/examples/typescript/http-server-pool/express-worker_threads/package.json +++ b/examples/typescript/http-server-pool/express-worker_threads/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@types/express": "^4.17.21", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "autocannon": "^7.15.0", "typescript": "^5.4.3" } diff --git a/examples/typescript/http-server-pool/express-worker_threads/pnpm-lock.yaml b/examples/typescript/http-server-pool/express-worker_threads/pnpm-lock.yaml index a9a4cdf5..f778f367 100644 --- a/examples/typescript/http-server-pool/express-worker_threads/pnpm-lock.yaml +++ b/examples/typescript/http-server-pool/express-worker_threads/pnpm-lock.yaml @@ -17,8 +17,8 @@ devDependencies: specifier: ^4.17.21 version: 4.17.21 '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 autocannon: specifier: ^7.15.0 version: 7.15.0 @@ -43,19 +43,19 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/express-serve-static-core@4.17.43: resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -82,8 +82,8 @@ packages: resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} dev: true - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true @@ -100,7 +100,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/serve-static@1.15.5: @@ -108,7 +108,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /accepts@1.3.8: diff --git a/examples/typescript/http-server-pool/fastify-cluster/package.json b/examples/typescript/http-server-pool/fastify-cluster/package.json index df01f32b..968b99f2 100644 --- a/examples/typescript/http-server-pool/fastify-cluster/package.json +++ b/examples/typescript/http-server-pool/fastify-cluster/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^11.1.6", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "autocannon": "^7.15.0", "rollup": "^4.13.2", "rollup-plugin-delete": "^2.0.0", diff --git a/examples/typescript/http-server-pool/fastify-cluster/pnpm-lock.yaml b/examples/typescript/http-server-pool/fastify-cluster/pnpm-lock.yaml index a77b7520..79d19f9e 100644 --- a/examples/typescript/http-server-pool/fastify-cluster/pnpm-lock.yaml +++ b/examples/typescript/http-server-pool/fastify-cluster/pnpm-lock.yaml @@ -17,8 +17,8 @@ devDependencies: specifier: ^11.1.6 version: 11.1.6(rollup@4.13.2)(tslib@2.6.2)(typescript@5.4.3) '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 autocannon: specifier: ^7.15.0 version: 7.15.0 @@ -256,15 +256,15 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/minimatch@5.1.2: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true diff --git a/examples/typescript/http-server-pool/fastify-hybrid/package.json b/examples/typescript/http-server-pool/fastify-hybrid/package.json index 4eedb89a..61ff1ce8 100644 --- a/examples/typescript/http-server-pool/fastify-hybrid/package.json +++ b/examples/typescript/http-server-pool/fastify-hybrid/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^11.1.6", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "autocannon": "^7.15.0", "rollup": "^4.13.2", "rollup-plugin-delete": "^2.0.0", diff --git a/examples/typescript/http-server-pool/fastify-hybrid/pnpm-lock.yaml b/examples/typescript/http-server-pool/fastify-hybrid/pnpm-lock.yaml index cf2a9ecf..f26a25fe 100644 --- a/examples/typescript/http-server-pool/fastify-hybrid/pnpm-lock.yaml +++ b/examples/typescript/http-server-pool/fastify-hybrid/pnpm-lock.yaml @@ -20,8 +20,8 @@ devDependencies: specifier: ^11.1.6 version: 11.1.6(rollup@4.13.2)(tslib@2.6.2)(typescript@5.4.3) '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 autocannon: specifier: ^7.15.0 version: 7.15.0 @@ -259,15 +259,15 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/minimatch@5.1.2: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true diff --git a/examples/typescript/http-server-pool/fastify-worker_threads/package.json b/examples/typescript/http-server-pool/fastify-worker_threads/package.json index 6f7c35a2..492af95b 100644 --- a/examples/typescript/http-server-pool/fastify-worker_threads/package.json +++ b/examples/typescript/http-server-pool/fastify-worker_threads/package.json @@ -26,7 +26,7 @@ "poolifier": "^3.1.27" }, "devDependencies": { - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "autocannon": "^7.15.0", "typescript": "^5.4.3" } diff --git a/examples/typescript/http-server-pool/fastify-worker_threads/pnpm-lock.yaml b/examples/typescript/http-server-pool/fastify-worker_threads/pnpm-lock.yaml index 963dcc12..326fcb2c 100644 --- a/examples/typescript/http-server-pool/fastify-worker_threads/pnpm-lock.yaml +++ b/examples/typescript/http-server-pool/fastify-worker_threads/pnpm-lock.yaml @@ -17,8 +17,8 @@ dependencies: devDependencies: '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 autocannon: specifier: ^7.15.0 version: 7.15.0 @@ -63,8 +63,8 @@ packages: fast-deep-equal: 3.1.3 dev: false - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true diff --git a/examples/typescript/smtp-client-pool/package.json b/examples/typescript/smtp-client-pool/package.json index 878ff4af..8aac8336 100644 --- a/examples/typescript/smtp-client-pool/package.json +++ b/examples/typescript/smtp-client-pool/package.json @@ -23,7 +23,7 @@ "poolifier": "^3.1.27" }, "devDependencies": { - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "@types/nodemailer": "^6.4.14", "typescript": "^5.4.3" } diff --git a/examples/typescript/smtp-client-pool/pnpm-lock.yaml b/examples/typescript/smtp-client-pool/pnpm-lock.yaml index 5f306e24..082463bd 100644 --- a/examples/typescript/smtp-client-pool/pnpm-lock.yaml +++ b/examples/typescript/smtp-client-pool/pnpm-lock.yaml @@ -14,8 +14,8 @@ dependencies: devDependencies: '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 '@types/nodemailer': specifier: ^6.4.14 version: 6.4.14 @@ -25,8 +25,8 @@ devDependencies: packages: - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true @@ -34,7 +34,7 @@ packages: /@types/nodemailer@6.4.14: resolution: {integrity: sha512-fUWthHO9k9DSdPCSPRqcu6TWhYyxTBg382vlNIttSe9M7XfsT06y0f24KHXtbnijPGGRIcVvdKHTNikOI6qiHA==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /nodemailer@6.9.13: diff --git a/examples/typescript/websocket-server-pool/ws-cluster/package.json b/examples/typescript/websocket-server-pool/ws-cluster/package.json index 7fc8a087..d3643f90 100644 --- a/examples/typescript/websocket-server-pool/ws-cluster/package.json +++ b/examples/typescript/websocket-server-pool/ws-cluster/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^11.1.6", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "@types/ws": "^8.5.10", "rollup": "^4.13.2", "rollup-plugin-delete": "^2.0.0", diff --git a/examples/typescript/websocket-server-pool/ws-cluster/pnpm-lock.yaml b/examples/typescript/websocket-server-pool/ws-cluster/pnpm-lock.yaml index 8c23a982..1caceb97 100644 --- a/examples/typescript/websocket-server-pool/ws-cluster/pnpm-lock.yaml +++ b/examples/typescript/websocket-server-pool/ws-cluster/pnpm-lock.yaml @@ -25,8 +25,8 @@ devDependencies: specifier: ^11.1.6 version: 11.1.6(rollup@4.13.2)(tslib@2.6.2)(typescript@5.4.3) '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 '@types/ws': specifier: ^8.5.10 version: 8.5.10 @@ -229,15 +229,15 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/minimatch@5.1.2: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true @@ -245,7 +245,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /aggregate-error@3.1.0: diff --git a/examples/typescript/websocket-server-pool/ws-hybrid/package.json b/examples/typescript/websocket-server-pool/ws-hybrid/package.json index 838f598d..e132ab48 100644 --- a/examples/typescript/websocket-server-pool/ws-hybrid/package.json +++ b/examples/typescript/websocket-server-pool/ws-hybrid/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^11.1.6", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "@types/ws": "^8.5.10", "rollup": "^4.13.2", "rollup-plugin-delete": "^2.0.0", diff --git a/examples/typescript/websocket-server-pool/ws-hybrid/pnpm-lock.yaml b/examples/typescript/websocket-server-pool/ws-hybrid/pnpm-lock.yaml index 8c23a982..1caceb97 100644 --- a/examples/typescript/websocket-server-pool/ws-hybrid/pnpm-lock.yaml +++ b/examples/typescript/websocket-server-pool/ws-hybrid/pnpm-lock.yaml @@ -25,8 +25,8 @@ devDependencies: specifier: ^11.1.6 version: 11.1.6(rollup@4.13.2)(tslib@2.6.2)(typescript@5.4.3) '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 '@types/ws': specifier: ^8.5.10 version: 8.5.10 @@ -229,15 +229,15 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/minimatch@5.1.2: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true @@ -245,7 +245,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /aggregate-error@3.1.0: diff --git a/examples/typescript/websocket-server-pool/ws-worker_threads/package.json b/examples/typescript/websocket-server-pool/ws-worker_threads/package.json index c88b2ca3..c7e8b90a 100644 --- a/examples/typescript/websocket-server-pool/ws-worker_threads/package.json +++ b/examples/typescript/websocket-server-pool/ws-worker_threads/package.json @@ -24,7 +24,7 @@ "ws": "^8.16.0" }, "devDependencies": { - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "@types/ws": "^8.5.10", "typescript": "^5.4.3" }, diff --git a/examples/typescript/websocket-server-pool/ws-worker_threads/pnpm-lock.yaml b/examples/typescript/websocket-server-pool/ws-worker_threads/pnpm-lock.yaml index b3727c84..764b2190 100644 --- a/examples/typescript/websocket-server-pool/ws-worker_threads/pnpm-lock.yaml +++ b/examples/typescript/websocket-server-pool/ws-worker_threads/pnpm-lock.yaml @@ -22,8 +22,8 @@ optionalDependencies: devDependencies: '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 '@types/ws': specifier: ^8.5.10 version: 8.5.10 @@ -33,8 +33,8 @@ devDependencies: packages: - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true @@ -42,7 +42,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /bufferutil@4.0.8: diff --git a/package.json b/package.json index 94f1c44d..d1822c25 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,12 @@ "build:prod": "rollup --config", "build:typedoc": "rollup --config --environment DOCUMENTATION,BUILD:development", "build:analyze": "rollup --config --environment ANALYZE,BUILD:development", - "benchmark": "pnpm build && node --max-old-space-size=8192 --enable-source-maps benchmarks/internal/bench.mjs", - "benchmark:prod": "pnpm build:prod && node --max-old-space-size=8192 --enable-source-maps benchmarks/internal/bench.mjs", - "benchmark:debug": "pnpm build && node --max-old-space-size=8192 --enable-source-maps --inspect benchmarks/internal/bench.mjs", + "benchmark:benchmark.js": "pnpm build && node --max-old-space-size=8192 --enable-source-maps benchmarks/internal/bench.mjs -t benchmark.js", + "benchmark:benchmark.js:prod": "pnpm build:prod && node --max-old-space-size=8192 --enable-source-maps benchmarks/internal/bench.mjs -t benchmark.js", + "benchmark:benchmark.js:debug": "pnpm build && node --max-old-space-size=8192 --enable-source-maps --inspect benchmarks/internal/bench.mjs -t benchmark.js", + "benchmark:mitata": "pnpm build && node --enable-source-maps benchmarks/internal/bench.mjs -t mitata", + "benchmark:mitata:prod": "pnpm build:prod && node --enable-source-maps benchmarks/internal/bench.mjs -t mitata", + "benchmark:mitata:debug": "pnpm build && node --enable-source-maps --inspect benchmarks/internal/bench.mjs -t mitata", "test": "pnpm build --environment SOURCEMAP:false && cross-env NODE_ENV=test c8 mocha 'tests/**/*.test.mjs'", "test:debug": "pnpm build && cross-env NODE_ENV=test mocha --no-parallel --inspect 'tests/**/*.test.mjs'", "coverage": "c8 report --reporter=lcov", @@ -108,7 +111,7 @@ "@release-it/keep-a-changelog": "^5.0.0", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "@typescript-eslint/eslint-plugin": "^7.4.0", "@typescript-eslint/parser": "^7.4.0", "benchmark": "^2.1.4", @@ -130,6 +133,7 @@ "husky": "^9.0.11", "lint-staged": "^15.2.2", "microtime": "^3.1.1", + "mitata": "^0.1.11", "mocha": "^10.4.0", "mochawesome": "^7.1.3", "prettier": "^3.2.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ae17008..19a2745f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ devDependencies: version: 1.6.3 '@commitlint/cli': specifier: ^19.2.1 - version: 19.2.1(@types/node@20.11.30)(typescript@5.4.3) + version: 19.2.1(@types/node@20.12.2)(typescript@5.4.3) '@commitlint/config-conventional': specifier: ^19.1.0 version: 19.1.0 @@ -30,8 +30,8 @@ devDependencies: specifier: ^11.1.6 version: 11.1.6(rollup@4.13.2)(typescript@5.4.3) '@types/node': - specifier: ^20.11.30 - version: 20.11.30 + specifier: ^20.12.2 + version: 20.12.2 '@typescript-eslint/eslint-plugin': specifier: ^7.4.0 version: 7.4.0(@typescript-eslint/parser@7.4.0)(eslint@8.57.0)(typescript@5.4.3) @@ -95,6 +95,9 @@ devDependencies: microtime: specifier: ^3.1.1 version: 3.1.1 + mitata: + specifier: ^0.1.11 + version: 0.1.11 mocha: specifier: ^10.4.0 version: 10.4.0 @@ -256,14 +259,14 @@ packages: dev: true optional: true - /@commitlint/cli@19.2.1(@types/node@20.11.30)(typescript@5.4.3): + /@commitlint/cli@19.2.1(@types/node@20.12.2)(typescript@5.4.3): resolution: {integrity: sha512-cbkYUJsLqRomccNxvoJTyv5yn0bSy05BBizVyIcLACkRbVUqYorC351Diw/XFSWC/GtpwiwT2eOvQgFZa374bg==} engines: {node: '>=v18'} hasBin: true dependencies: '@commitlint/format': 19.0.3 '@commitlint/lint': 19.1.0 - '@commitlint/load': 19.2.0(@types/node@20.11.30)(typescript@5.4.3) + '@commitlint/load': 19.2.0(@types/node@20.12.2)(typescript@5.4.3) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 @@ -332,7 +335,7 @@ packages: '@commitlint/types': 19.0.3 dev: true - /@commitlint/load@19.2.0(@types/node@20.11.30)(typescript@5.4.3): + /@commitlint/load@19.2.0(@types/node@20.12.2)(typescript@5.4.3): resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} engines: {node: '>=v18'} dependencies: @@ -342,7 +345,7 @@ packages: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.4.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.30)(cosmiconfig@9.0.0)(typescript@5.4.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.2)(cosmiconfig@9.0.0)(typescript@5.4.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -515,7 +518,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.30 + '@types/node': 20.12.2 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true @@ -760,7 +763,7 @@ packages: dependencies: rollup: 4.13.2 serialize-javascript: 6.0.2 - smob: 1.4.1 + smob: 1.5.0 terser: 5.30.0 dev: true @@ -976,7 +979,7 @@ packages: /@types/conventional-commits-parser@5.0.0: resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/estree@1.0.5: @@ -987,7 +990,7 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/http-cache-semantics@4.0.4: @@ -1022,8 +1025,8 @@ packages: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} dependencies: undici-types: 5.26.5 dev: true @@ -1268,8 +1271,8 @@ packages: hasBin: true dev: true - /agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + /agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: debug: 4.3.4(supports-color@8.1.1) @@ -1400,7 +1403,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 @@ -1417,7 +1420,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -1429,7 +1432,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 dev: true @@ -1439,7 +1442,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 dev: true @@ -1449,7 +1452,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-array-method-boxes-properly: 1.0.0 es-object-atoms: 1.0.0 is-string: 1.0.7 @@ -1462,7 +1465,7 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -1865,7 +1868,7 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.30)(cosmiconfig@9.0.0)(typescript@5.4.3): + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.2)(cosmiconfig@9.0.0)(typescript@5.4.3): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} peerDependencies: @@ -1873,7 +1876,7 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 cosmiconfig: 9.0.0(typescript@5.4.3) jiti: 1.21.0 typescript: 5.4.3 @@ -2179,8 +2182,8 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.23.2: - resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 @@ -2891,7 +2894,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 functions-have-names: 1.2.3 dev: true @@ -3196,7 +3199,7 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -3214,7 +3217,7 @@ packages: resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -3744,7 +3747,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.11.30 + '@types/node': 20.12.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4157,6 +4160,10 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true + /mitata@0.1.11: + resolution: {integrity: sha512-cs6FiWcnRxn7atVumm8wA8R70XCDmMXgVgb/qWUSjr5dwuIBr7zC+22mbGYPlbyFixlIOjuP//A0e72Q1ZoGDw==} + dev: true + /mocha@10.4.0: resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} engines: {node: '>= 14.0.0'} @@ -4336,7 +4343,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 dev: true @@ -4346,7 +4353,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 dev: true /object.values@1.2.0: @@ -4493,13 +4500,13 @@ packages: engines: {node: '>= 14'} dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.2 + socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color dev: true @@ -4646,7 +4653,7 @@ packages: array.prototype.map: 1.0.7 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 get-intrinsic: 1.2.4 iterate-value: 1.0.2 dev: true @@ -4671,14 +4678,14 @@ packages: resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 lru-cache: 7.18.3 pac-proxy-agent: 7.0.1 proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.2 + socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color dev: true @@ -5149,15 +5156,15 @@ packages: engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} dev: true - /smob@1.4.1: - resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==} + /smob@1.5.0: + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} dev: true - /socks-proxy-agent@8.0.2: - resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + /socks-proxy-agent@8.0.3: + resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) socks: 2.8.1 transitivePeerDependencies: @@ -5269,7 +5276,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 dev: true -- 2.34.1