'warn',
{
skipWords: [
+ 'argv',
'axios',
'benoit',
'browserslist',
'linebreak',
'localhost',
'microjob',
+ 'mitata',
'mjs',
'nodemailer',
'npx',
'poolifier',
'prepend',
'prepends',
+ 'positionals',
'readdir',
'readonly',
'req',
--hash "$GITHUB_SHA" \
--err \
--github-actions ${{ secrets.GITHUB_TOKEN }} \
- "pnpm benchmark:prod"
+ "pnpm benchmark:benchmark.js:prod"
{
"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": ["<node_internals>/**"],
+ "stopOnEntry": true
+ },
+ {
+ "type": "node",
+ "request": "launch",
+ "name": "Launch Mitata Benchmark Debug",
+ "cwd": "${workspaceFolder}",
+ "runtimeExecutable": "pnpm",
+ "runtimeArgs": ["run", "benchmark:mitata:debug"],
"skipFiles": ["<node_internals>/**"],
"stopOnEntry": true
}
"maxdepth",
"microjob",
"microtime",
+ "mitata",
"mochawesome",
"MYBENCH",
"nanothreads",
"pioardi",
"poolifier",
"poolify",
+ "positionals",
"preinstall",
"Quadflieg",
"Shinigami",
### 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)
const { randomInt } = require('node:crypto')
-const { strictEqual } = require('node:assert')
const {
existsSync,
mkdirSync,
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 = {
}
module.exports = {
- LIST_FORMATTER,
- executeTaskFunction,
- runPoolifierPoolBenchmark
+ executeTaskFunction
}
--- /dev/null
+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'
+})
import { exit } from 'node:process'
+import { parseArgs } from 'node:util'
+
+import { run } from 'mitata'
import {
availableParallelism,
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
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()
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 || {}
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,
)
}
-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 })
-import Benchmark from 'benchmark'
-
-import { LIST_FORMATTER } from '../benchmarks-utils.cjs'
+import { bench, group, run } from 'mitata'
function generateWorkersArray (numberOfWorkers) {
return [...Array(numberOfWorkers).keys()]
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 })
"poolifier": "^3.1.27"
},
"devDependencies": {
- "@types/node": "^20.11.30",
+ "@types/node": "^20.12.2",
"typescript": "^5.4.3"
}
}
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
"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",
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
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:
/@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
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:
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
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:
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:
"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",
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
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:
/@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
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:
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
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:
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:
},
"devDependencies": {
"@types/express": "^4.17.21",
- "@types/node": "^20.11.30",
+ "@types/node": "^20.12.2",
"autocannon": "^7.15.0",
"typescript": "^5.4.3"
}
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
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
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
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:
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:
},
"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",
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
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
},
"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",
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
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
"poolifier": "^3.1.27"
},
"devDependencies": {
- "@types/node": "^20.11.30",
+ "@types/node": "^20.12.2",
"autocannon": "^7.15.0",
"typescript": "^5.4.3"
}
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
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
"poolifier": "^3.1.27"
},
"devDependencies": {
- "@types/node": "^20.11.30",
+ "@types/node": "^20.12.2",
"@types/nodemailer": "^6.4.14",
"typescript": "^5.4.3"
}
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
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
/@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:
},
"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",
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
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
/@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:
},
"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",
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
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
/@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:
"ws": "^8.16.0"
},
"devDependencies": {
- "@types/node": "^20.11.30",
+ "@types/node": "^20.12.2",
"@types/ws": "^8.5.10",
"typescript": "^5.4.3"
},
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
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
/@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:
"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",
"@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",
"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",
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
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)
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
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
'@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:
'@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
'@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
dependencies:
rollup: 4.13.2
serialize-javascript: 6.0.2
- smob: 1.4.1
+ smob: 1.5.0
terser: 5.30.0
dev: true
/@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:
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:
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
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)
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
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
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
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
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
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
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:
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
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
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
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
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
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
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'}
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
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:
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
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
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
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:
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