mirror of
https://github.com/napi-rs/napi-rs.git
synced 2025-12-08 19:56:07 +00:00
chore(bench): migrate to vitest (#2637)
This commit is contained in:
parent
8e481c1eba
commit
46bd338093
41
bench/async.bench.ts
Normal file
41
bench/async.bench.ts
Normal file
@ -0,0 +1,41 @@
|
||||
import { cpus } from 'node:os'
|
||||
import { createRequire } from 'node:module'
|
||||
|
||||
import { bench } from 'vitest'
|
||||
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
const {
|
||||
benchAsyncTask,
|
||||
benchThreadsafeFunction,
|
||||
benchTokioFuture,
|
||||
} = require('./index.node')
|
||||
|
||||
const buffer = Buffer.from('hello 🚀 rust!')
|
||||
|
||||
const ALL_THREADS = Array.from({ length: cpus().length })
|
||||
|
||||
bench('spawn task', async () => {
|
||||
await Promise.all(ALL_THREADS.map(() => benchAsyncTask(buffer)))
|
||||
})
|
||||
|
||||
bench('ThreadSafeFunction', async () => {
|
||||
await Promise.all(
|
||||
ALL_THREADS.map(
|
||||
() =>
|
||||
new Promise<number | undefined>((resolve, reject) => {
|
||||
benchThreadsafeFunction(buffer, (err?: Error, value?: number) => {
|
||||
if (err) {
|
||||
reject(err)
|
||||
} else {
|
||||
resolve(value)
|
||||
}
|
||||
})
|
||||
}),
|
||||
),
|
||||
)
|
||||
})
|
||||
|
||||
bench('Tokio future to Promise', async () => {
|
||||
await Promise.all(ALL_THREADS.map(() => benchTokioFuture(buffer)))
|
||||
})
|
||||
@ -1,42 +0,0 @@
|
||||
import { cpus } from 'os'
|
||||
|
||||
import b from 'benny'
|
||||
|
||||
const {
|
||||
benchAsyncTask,
|
||||
benchThreadsafeFunction,
|
||||
benchTokioFuture,
|
||||
} = require('./index.node')
|
||||
|
||||
const buffer = Buffer.from('hello 🚀 rust!')
|
||||
|
||||
const ALL_THREADS = Array.from({ length: cpus().length })
|
||||
|
||||
export const benchAsync = () =>
|
||||
b.suite(
|
||||
'Async task',
|
||||
b.add('spawn task', async () => {
|
||||
await Promise.all(ALL_THREADS.map(() => benchAsyncTask(buffer)))
|
||||
}),
|
||||
b.add('ThreadSafeFunction', async () => {
|
||||
await Promise.all(
|
||||
ALL_THREADS.map(
|
||||
() =>
|
||||
new Promise<number | undefined>((resolve, reject) => {
|
||||
benchThreadsafeFunction(buffer, (err?: Error, value?: number) => {
|
||||
if (err) {
|
||||
reject(err)
|
||||
} else {
|
||||
resolve(value)
|
||||
}
|
||||
})
|
||||
}),
|
||||
),
|
||||
)
|
||||
}),
|
||||
b.add('Tokio future to Promise', async () => {
|
||||
await Promise.all(ALL_THREADS.map(() => benchTokioFuture(buffer)))
|
||||
}),
|
||||
b.cycle(),
|
||||
b.complete(),
|
||||
)
|
||||
@ -1,43 +0,0 @@
|
||||
import { promises as fs } from 'fs'
|
||||
import { join } from 'path'
|
||||
|
||||
import { Summary } from 'benny/lib/internal/common-types'
|
||||
|
||||
import { benchAsync } from './async'
|
||||
import { benchBuffer } from './buffer'
|
||||
import { benchCreateArray } from './create-array'
|
||||
import { benchGetArray } from './get-array-from-js'
|
||||
import { benchGetSetProperty } from './get-set-property'
|
||||
import { benchNoop } from './noop'
|
||||
import { benchPlus } from './plus'
|
||||
import { benchQuery } from './query'
|
||||
|
||||
async function run() {
|
||||
const output = [
|
||||
await benchNoop(),
|
||||
await benchPlus(),
|
||||
await benchBuffer(),
|
||||
await benchCreateArray(),
|
||||
await benchGetArray(),
|
||||
await benchGetSetProperty(),
|
||||
await benchAsync(),
|
||||
await benchQuery(),
|
||||
]
|
||||
.map(formatSummary)
|
||||
.join('\n')
|
||||
|
||||
await fs.writeFile(join(process.cwd(), 'bench.txt'), output, 'utf8')
|
||||
}
|
||||
|
||||
function formatSummary(summary: Summary): string {
|
||||
return summary.results
|
||||
.map(
|
||||
(result) =>
|
||||
`${summary.name}#${result.name} x ${result.ops} ops/sec ±${result.margin}% (${result.samples} runs sampled)`,
|
||||
)
|
||||
.join('\n')
|
||||
}
|
||||
|
||||
run().catch((e) => {
|
||||
console.error(e)
|
||||
})
|
||||
22
bench/buffer.bench.ts
Normal file
22
bench/buffer.bench.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import { createRequire } from 'node:module'
|
||||
|
||||
import { bench } from 'vitest'
|
||||
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
const { benchCreateBuffer } = require('./index.node')
|
||||
|
||||
function createBuffer() {
|
||||
const buf = Buffer.allocUnsafe(1024)
|
||||
buf[0] = 1
|
||||
buf[1] = 2
|
||||
return buf
|
||||
}
|
||||
|
||||
bench('napi-rs', () => {
|
||||
benchCreateBuffer()
|
||||
})
|
||||
|
||||
bench('JavaScript', () => {
|
||||
createBuffer()
|
||||
})
|
||||
@ -1,23 +0,0 @@
|
||||
import b from 'benny'
|
||||
|
||||
const { benchCreateBuffer } = require('./index.node')
|
||||
|
||||
function createBuffer() {
|
||||
const buf = Buffer.allocUnsafe(1024)
|
||||
buf[0] = 1
|
||||
buf[1] = 2
|
||||
return buf
|
||||
}
|
||||
|
||||
export const benchBuffer = () =>
|
||||
b.suite(
|
||||
'Create buffer',
|
||||
b.add('napi-rs', () => {
|
||||
benchCreateBuffer()
|
||||
}),
|
||||
b.add('JavaScript', () => {
|
||||
createBuffer()
|
||||
}),
|
||||
b.cycle(),
|
||||
b.complete(),
|
||||
)
|
||||
23
bench/create-array.bench.ts
Normal file
23
bench/create-array.bench.ts
Normal file
@ -0,0 +1,23 @@
|
||||
import { createRequire } from 'node:module'
|
||||
|
||||
import { bench } from 'vitest'
|
||||
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
const {
|
||||
createArrayJson,
|
||||
createArray,
|
||||
createArrayWithSerdeTrait,
|
||||
} = require('./index.node')
|
||||
|
||||
bench('createArrayJson', () => {
|
||||
JSON.parse(createArrayJson())
|
||||
})
|
||||
|
||||
bench('create array for loop', () => {
|
||||
createArray()
|
||||
})
|
||||
|
||||
bench('create array with serde trait', () => {
|
||||
createArrayWithSerdeTrait()
|
||||
})
|
||||
@ -1,25 +0,0 @@
|
||||
import b from 'benny'
|
||||
|
||||
const {
|
||||
createArrayJson,
|
||||
createArray,
|
||||
createArrayWithSerdeTrait,
|
||||
} = require('./index.node')
|
||||
|
||||
export const benchCreateArray = () =>
|
||||
b.suite(
|
||||
'createArray',
|
||||
b.add('createArrayJson', () => {
|
||||
JSON.parse(createArrayJson())
|
||||
}),
|
||||
b.add('create array for loop', () => {
|
||||
createArray()
|
||||
}),
|
||||
|
||||
b.add('create array with serde trait', () => {
|
||||
createArrayWithSerdeTrait()
|
||||
}),
|
||||
|
||||
b.cycle(),
|
||||
b.complete(),
|
||||
)
|
||||
25
bench/get-array-from-js.bench.ts
Normal file
25
bench/get-array-from-js.bench.ts
Normal file
@ -0,0 +1,25 @@
|
||||
import { createRequire } from 'node:module'
|
||||
|
||||
import { bench } from 'vitest'
|
||||
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
const {
|
||||
getArrayFromJson,
|
||||
getArrayFromJsArray,
|
||||
getArrayWithForLoop,
|
||||
} = require('./index.node')
|
||||
|
||||
const FIXTURE = Array.from({ length: 1000 }).fill(42)
|
||||
|
||||
bench('get array from json string', () => {
|
||||
getArrayFromJson(JSON.stringify(FIXTURE))
|
||||
})
|
||||
|
||||
bench('get array from serde', () => {
|
||||
getArrayFromJsArray(FIXTURE)
|
||||
})
|
||||
|
||||
bench('get array with for loop', () => {
|
||||
getArrayWithForLoop(FIXTURE)
|
||||
})
|
||||
@ -1,27 +0,0 @@
|
||||
import b from 'benny'
|
||||
|
||||
const {
|
||||
getArrayFromJson,
|
||||
getArrayFromJsArray,
|
||||
getArrayWithForLoop,
|
||||
} = require('./index.node')
|
||||
|
||||
const FIXTURE = Array.from({ length: 1000 }).fill(42)
|
||||
|
||||
export const benchGetArray = () =>
|
||||
b.suite(
|
||||
'getArrayFromJs',
|
||||
b.add('get array from json string', () => {
|
||||
getArrayFromJson(JSON.stringify(FIXTURE))
|
||||
}),
|
||||
b.add('get array from serde', () => {
|
||||
getArrayFromJsArray(FIXTURE)
|
||||
}),
|
||||
|
||||
b.add('get array with for loop', () => {
|
||||
getArrayWithForLoop(FIXTURE)
|
||||
}),
|
||||
|
||||
b.cycle(),
|
||||
b.complete(),
|
||||
)
|
||||
51
bench/get-set-property.bench.ts
Normal file
51
bench/get-set-property.bench.ts
Normal file
@ -0,0 +1,51 @@
|
||||
import { createRequire } from 'node:module'
|
||||
|
||||
import { bench } from 'vitest'
|
||||
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
const { TestClass } = require('./index.node')
|
||||
|
||||
function createClass() {
|
||||
const testObject = new TestClass()
|
||||
|
||||
Object.defineProperty(testObject, '_miterLimit', {
|
||||
value: 10,
|
||||
configurable: false,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
})
|
||||
|
||||
Object.defineProperty(testObject, '_lineJoin', {
|
||||
value: 'miter',
|
||||
configurable: false,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
})
|
||||
|
||||
return testObject
|
||||
}
|
||||
|
||||
bench('Get Set from native#u32', () => {
|
||||
const o = createClass()
|
||||
o.miterNative
|
||||
o.miterNative = 1
|
||||
})
|
||||
|
||||
bench('Get Set from JavaScript#u32', () => {
|
||||
const o = createClass()
|
||||
o.miter
|
||||
o.miter = 1
|
||||
})
|
||||
|
||||
bench('Get Set from native#string', () => {
|
||||
const o = createClass()
|
||||
o.lineJoinNative
|
||||
o.lineJoinNative = 'bevel'
|
||||
})
|
||||
|
||||
bench('Get Set from JavaScript#string', () => {
|
||||
const o = createClass()
|
||||
o.lineJoin
|
||||
o.lineJoin = 'bevel'
|
||||
})
|
||||
@ -1,52 +0,0 @@
|
||||
import b from 'benny'
|
||||
|
||||
const { TestClass } = require('./index.node')
|
||||
|
||||
function createClass() {
|
||||
const testObject = new TestClass()
|
||||
|
||||
Object.defineProperty(testObject, '_miterLimit', {
|
||||
value: 10,
|
||||
configurable: false,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
})
|
||||
|
||||
Object.defineProperty(testObject, '_lineJoin', {
|
||||
value: 'miter',
|
||||
configurable: false,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
})
|
||||
|
||||
return testObject
|
||||
}
|
||||
|
||||
export const benchGetSetProperty = () =>
|
||||
b.suite(
|
||||
'Get Set property',
|
||||
b.add('Get Set from native#u32', () => {
|
||||
const o = createClass()
|
||||
o.miterNative
|
||||
o.miterNative = 1
|
||||
}),
|
||||
b.add('Get Set from JavaScript#u32', () => {
|
||||
const o = createClass()
|
||||
o.miter
|
||||
o.miter = 1
|
||||
}),
|
||||
|
||||
b.add('Get Set from native#string', () => {
|
||||
const o = createClass()
|
||||
o.lineJoinNative
|
||||
o.lineJoinNative = 'bevel'
|
||||
}),
|
||||
b.add('Get Set from JavaScript#string', () => {
|
||||
const o = createClass()
|
||||
o.lineJoin
|
||||
o.lineJoin = 'bevel'
|
||||
}),
|
||||
|
||||
b.cycle(),
|
||||
b.complete(),
|
||||
)
|
||||
17
bench/noop.bench.ts
Normal file
17
bench/noop.bench.ts
Normal file
@ -0,0 +1,17 @@
|
||||
import { createRequire } from 'node:module'
|
||||
|
||||
import { bench } from 'vitest'
|
||||
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
const { noop: napiNoop } = require('./index.node')
|
||||
|
||||
function noop() {}
|
||||
|
||||
bench('napi-rs', () => {
|
||||
napiNoop()
|
||||
})
|
||||
|
||||
bench('JavaScript', () => {
|
||||
noop()
|
||||
})
|
||||
@ -1,19 +0,0 @@
|
||||
import b from 'benny'
|
||||
|
||||
const { noop: napiNoop } = require('./index.node')
|
||||
|
||||
function noop() {}
|
||||
|
||||
export const benchNoop = () =>
|
||||
b.suite(
|
||||
'noop',
|
||||
b.add('napi-rs', () => {
|
||||
napiNoop()
|
||||
}),
|
||||
b.add('JavaScript', () => {
|
||||
noop()
|
||||
}),
|
||||
|
||||
b.cycle(),
|
||||
b.complete(),
|
||||
)
|
||||
@ -2,11 +2,14 @@
|
||||
"name": "bench",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"bench": "vitest bench ",
|
||||
"build": "napi-raw build --js false --release"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@napi-rs/cli": "workspace:*",
|
||||
"benny": "^3.7.1"
|
||||
"tinybench": "^4.0.1",
|
||||
"vitest": "^3.1.3"
|
||||
}
|
||||
}
|
||||
|
||||
19
bench/plus.bench.ts
Normal file
19
bench/plus.bench.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import { createRequire } from 'node:module'
|
||||
|
||||
import { bench } from 'vitest'
|
||||
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
const { plus } = require('./index.node')
|
||||
|
||||
function plusJavascript(a: number, b: number) {
|
||||
return a + b
|
||||
}
|
||||
|
||||
bench('napi-rs', () => {
|
||||
plus(1, 100)
|
||||
})
|
||||
|
||||
bench('JavaScript', () => {
|
||||
plusJavascript(1, 100)
|
||||
})
|
||||
@ -1,21 +0,0 @@
|
||||
import b from 'benny'
|
||||
|
||||
const { plus } = require('./index.node')
|
||||
|
||||
function plusJavascript(a: number, b: number) {
|
||||
return a + b
|
||||
}
|
||||
|
||||
export const benchPlus = () =>
|
||||
b.suite(
|
||||
'Plus number',
|
||||
b.add('napi-rs', () => {
|
||||
plus(1, 100)
|
||||
}),
|
||||
b.add('JavaScript', () => {
|
||||
plusJavascript(1, 100)
|
||||
}),
|
||||
|
||||
b.cycle(),
|
||||
b.complete(),
|
||||
)
|
||||
17
bench/query.bench.ts
Normal file
17
bench/query.bench.ts
Normal file
@ -0,0 +1,17 @@
|
||||
import { createRequire } from 'node:module'
|
||||
|
||||
import { bench } from 'vitest'
|
||||
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
const { query, engine } = require('./index.node')
|
||||
|
||||
const e = engine('model A {}')
|
||||
|
||||
bench('query * 100', async () => {
|
||||
await Promise.all(Array.from({ length: 100 }).map(() => query(e)))
|
||||
})
|
||||
|
||||
bench('query * 1', async () => {
|
||||
await query(e)
|
||||
})
|
||||
@ -1,19 +0,0 @@
|
||||
import b from 'benny'
|
||||
|
||||
const { query, engine } = require('./index.node')
|
||||
|
||||
const e = engine('model A {}')
|
||||
|
||||
export const benchQuery = () =>
|
||||
b.suite(
|
||||
'Query',
|
||||
b.add('query * 100', async () => {
|
||||
await Promise.all(Array.from({ length: 100 }).map(() => query(e)))
|
||||
}),
|
||||
b.add('query * 1', async () => {
|
||||
await query(e)
|
||||
}),
|
||||
|
||||
b.cycle(),
|
||||
b.complete(),
|
||||
)
|
||||
@ -2,6 +2,8 @@
|
||||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"target": "ESNext",
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"rootDir": "."
|
||||
},
|
||||
"include": ["."],
|
||||
|
||||
5
bench/vite.config.ts
Normal file
5
bench/vite.config.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { defineConfig } from 'vitest/config'
|
||||
|
||||
export default defineConfig({
|
||||
mode: 'benchmark',
|
||||
})
|
||||
@ -18,7 +18,7 @@
|
||||
},
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"bench": "cross-env TS_NODE_PROJECT='./bench/tsconfig.json' node -r ts-node/register/transpile-only bench/bench.ts",
|
||||
"bench": "yarn workspace bench bench",
|
||||
"build": "lerna run build --scope '@napi-rs/*'",
|
||||
"build:bench": "yarn workspace bench build",
|
||||
"build:memory": "yarn workspace memory-testing build",
|
||||
@ -87,7 +87,6 @@
|
||||
"shx": "^0.4.0",
|
||||
"sinon": "^20.0.0",
|
||||
"source-map-support": "^0.5.21",
|
||||
"ts-node": "^10.9.2",
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.8.2"
|
||||
},
|
||||
|
||||
302
yarn.lock
302
yarn.lock
@ -5,50 +5,6 @@ __metadata:
|
||||
version: 8
|
||||
cacheKey: 10c0
|
||||
|
||||
"@arrows/array@npm:^1.4.1":
|
||||
version: 1.4.1
|
||||
resolution: "@arrows/array@npm:1.4.1"
|
||||
dependencies:
|
||||
"@arrows/composition": "npm:^1.2.2"
|
||||
checksum: 10c0/8516a08df3dca85e62386bd25366df368ccaf74b3d0812865850ef20b02f04adf7a9948fa0bdab7251ca7e9cb88a2f65663267dc3f315ec7cce3d18171fe305d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@arrows/composition@npm:^1.0.0, @arrows/composition@npm:^1.2.2":
|
||||
version: 1.2.2
|
||||
resolution: "@arrows/composition@npm:1.2.2"
|
||||
checksum: 10c0/d8b07682b2f6cba12a8d8e1bec0457acc6456683c2f1fa7377680be11990377a4c089eb7c5bb597c90a25754a2237ad6bba5a41f21924d247c9702cc994df87c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@arrows/dispatch@npm:^1.0.2":
|
||||
version: 1.0.3
|
||||
resolution: "@arrows/dispatch@npm:1.0.3"
|
||||
dependencies:
|
||||
"@arrows/composition": "npm:^1.2.2"
|
||||
checksum: 10c0/302c63727cd78f8227409a0c70daa7869f4690c2803bbbd730f5c87cb2e636bbc74cf5cc1d2037dad8994ca19c69a3763088dddd15e1d729e1dd1c72c6b63015
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@arrows/error@npm:^1.0.2":
|
||||
version: 1.0.2
|
||||
resolution: "@arrows/error@npm:1.0.2"
|
||||
checksum: 10c0/b8e003d8f9b4743a3dafc61985706cc59678d8d2f125ce250821284cac33eea3f877dc0a3626b196f48863b55da9f0917dad48929e9350c2459176131c8dee26
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@arrows/multimethod@npm:^1.1.6":
|
||||
version: 1.4.1
|
||||
resolution: "@arrows/multimethod@npm:1.4.1"
|
||||
dependencies:
|
||||
"@arrows/array": "npm:^1.4.1"
|
||||
"@arrows/composition": "npm:^1.2.2"
|
||||
"@arrows/error": "npm:^1.0.2"
|
||||
fast-deep-equal: "npm:^3.1.3"
|
||||
checksum: 10c0/760bc4781cc66531990eb8dfbb40ef48b7b21be832dce272dad2a2cc0a7d200e45e816ae3ebba3e9daa2e2bd6498413994c6d3cd5c088e34673b37d93609df3c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4":
|
||||
version: 7.27.1
|
||||
resolution: "@babel/code-frame@npm:7.27.1"
|
||||
@ -3158,6 +3114,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/expect@npm:3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "@vitest/expect@npm:3.1.3"
|
||||
dependencies:
|
||||
"@vitest/spy": "npm:3.1.3"
|
||||
"@vitest/utils": "npm:3.1.3"
|
||||
chai: "npm:^5.2.0"
|
||||
tinyrainbow: "npm:^2.0.0"
|
||||
checksum: 10c0/3a61e5526ed57491c9c230cb592849a2c15e6b4376bfaec4f623ac75fdcf5c24c322949cfb5362136fc8be5eb19be88d094917ea5f700bd3da0ea0c68ee4a8d9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/mocker@npm:3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "@vitest/mocker@npm:3.1.2"
|
||||
@ -3177,6 +3145,25 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/mocker@npm:3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "@vitest/mocker@npm:3.1.3"
|
||||
dependencies:
|
||||
"@vitest/spy": "npm:3.1.3"
|
||||
estree-walker: "npm:^3.0.3"
|
||||
magic-string: "npm:^0.30.17"
|
||||
peerDependencies:
|
||||
msw: ^2.4.9
|
||||
vite: ^5.0.0 || ^6.0.0
|
||||
peerDependenciesMeta:
|
||||
msw:
|
||||
optional: true
|
||||
vite:
|
||||
optional: true
|
||||
checksum: 10c0/6e6a62e27aa6cd146d14ae64eb9acfc0f49e7479ca426af1fb4df362456aa3456abf29731247659032e4bfb7ac9482fca1d1c7e1501e1a186eb211221e1f613a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/pretty-format@npm:3.1.2, @vitest/pretty-format@npm:^3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "@vitest/pretty-format@npm:3.1.2"
|
||||
@ -3186,6 +3173,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/pretty-format@npm:3.1.3, @vitest/pretty-format@npm:^3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "@vitest/pretty-format@npm:3.1.3"
|
||||
dependencies:
|
||||
tinyrainbow: "npm:^2.0.0"
|
||||
checksum: 10c0/eba164d2c0b2babbcf6bb054da3b326d08cc3a0289ade3c64309bfe5e7c3124cd4d45a60b2f673cf4f5b3a97381fb7af7009780a5d9665afdf7f8263fa34c068
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/runner@npm:3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "@vitest/runner@npm:3.1.2"
|
||||
@ -3196,6 +3192,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/runner@npm:3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "@vitest/runner@npm:3.1.3"
|
||||
dependencies:
|
||||
"@vitest/utils": "npm:3.1.3"
|
||||
pathe: "npm:^2.0.3"
|
||||
checksum: 10c0/f03c26e72657242ce68a93b46ee8a4e6fa1a290850be608988622a3efef744ffadc0436123acafe61977608b287b1637f4f781d27107ee0c33937c54f547159d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/snapshot@npm:3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "@vitest/snapshot@npm:3.1.2"
|
||||
@ -3207,6 +3213,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/snapshot@npm:3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "@vitest/snapshot@npm:3.1.3"
|
||||
dependencies:
|
||||
"@vitest/pretty-format": "npm:3.1.3"
|
||||
magic-string: "npm:^0.30.17"
|
||||
pathe: "npm:^2.0.3"
|
||||
checksum: 10c0/60b70c1d878c3d9a4fe3464d14be2318a7a3be24131beb801712735d5dcbc7db7b798f21c98c6fbad4998554992038b29655e1b6e2503242627f203fd89c97c3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/spy@npm:3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "@vitest/spy@npm:3.1.2"
|
||||
@ -3216,6 +3233,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/spy@npm:3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "@vitest/spy@npm:3.1.3"
|
||||
dependencies:
|
||||
tinyspy: "npm:^3.0.2"
|
||||
checksum: 10c0/6a8c187069827c56f3492f212ccf76c797fe52392849948af736a0f579e4533fa91041d829e2574b252af4aaadec066ca0714450d6457b31526153978bc55192
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/ui@npm:^3.1.1":
|
||||
version: 3.1.2
|
||||
resolution: "@vitest/ui@npm:3.1.2"
|
||||
@ -3244,6 +3270,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitest/utils@npm:3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "@vitest/utils@npm:3.1.3"
|
||||
dependencies:
|
||||
"@vitest/pretty-format": "npm:3.1.3"
|
||||
loupe: "npm:^3.1.3"
|
||||
tinyrainbow: "npm:^2.0.0"
|
||||
checksum: 10c0/1c4ea711b87a8b2c7dc2da91f20427dccc34c0d1d0e81b8142780d24b6caa3c724e8287f7e01e9e875262b6bb912d55711fb99e66f718ba30cc21706a335829d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@wdio/config@npm:9.12.6":
|
||||
version: 9.12.6
|
||||
resolution: "@wdio/config@npm:9.12.6"
|
||||
@ -3456,7 +3493,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0, ansi-escapes@npm:^4.3.2":
|
||||
"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.2":
|
||||
version: 4.3.2
|
||||
resolution: "ansi-escapes@npm:4.3.2"
|
||||
dependencies:
|
||||
@ -3907,37 +3944,11 @@ __metadata:
|
||||
resolution: "bench@workspace:bench"
|
||||
dependencies:
|
||||
"@napi-rs/cli": "workspace:*"
|
||||
benny: "npm:^3.7.1"
|
||||
tinybench: "npm:^4.0.1"
|
||||
vitest: "npm:^3.1.3"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"benchmark@npm:^2.1.4":
|
||||
version: 2.1.4
|
||||
resolution: "benchmark@npm:2.1.4"
|
||||
dependencies:
|
||||
lodash: "npm:^4.17.4"
|
||||
platform: "npm:^1.3.3"
|
||||
checksum: 10c0/510224c01f7578e9aa60cef67ec3dd8f84ac6670007bcc96285f87865375122aca0853ab4e542cc80cfeeed436356dfdd63bb66cb5e72365abb912685b2139be
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"benny@npm:^3.7.1":
|
||||
version: 3.7.1
|
||||
resolution: "benny@npm:3.7.1"
|
||||
dependencies:
|
||||
"@arrows/composition": "npm:^1.0.0"
|
||||
"@arrows/dispatch": "npm:^1.0.2"
|
||||
"@arrows/multimethod": "npm:^1.1.6"
|
||||
benchmark: "npm:^2.1.4"
|
||||
common-tags: "npm:^1.8.0"
|
||||
fs-extra: "npm:^10.0.0"
|
||||
json2csv: "npm:^5.0.6"
|
||||
kleur: "npm:^4.1.4"
|
||||
log-update: "npm:^4.0.0"
|
||||
checksum: 10c0/3f731a58aa5d7483f0cce69bd62f9db0589c0f86e677669397a64ad56e85a307e340e9a957b19da51feab8ddb3082039b6bfa71fefd00a4b195a11420a8c9b03
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"bin-links@npm:^4.0.4":
|
||||
version: 4.0.4
|
||||
resolution: "bin-links@npm:4.0.4"
|
||||
@ -4733,13 +4744,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"commander@npm:^6.1.0":
|
||||
version: 6.2.1
|
||||
resolution: "commander@npm:6.2.1"
|
||||
checksum: 10c0/85748abd9d18c8bc88febed58b98f66b7c591d9b5017cad459565761d7b29ca13b7783ea2ee5ce84bf235897333706c4ce29adf1ce15c8252780e7000e2ce9ea
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"commander@npm:^9.3.0":
|
||||
version: 9.5.0
|
||||
resolution: "commander@npm:9.5.0"
|
||||
@ -4761,13 +4765,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"common-tags@npm:^1.8.0":
|
||||
version: 1.8.2
|
||||
resolution: "common-tags@npm:1.8.2"
|
||||
checksum: 10c0/23efe47ff0a1a7c91489271b3a1e1d2a171c12ec7f9b35b29b2fce51270124aff0ec890087e2bc2182c1cb746e232ab7561aaafe05f1e7452aea733d2bfe3f63
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"commondir@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "commondir@npm:1.0.1"
|
||||
@ -5793,7 +5790,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"es-module-lexer@npm:^1.6.0":
|
||||
"es-module-lexer@npm:^1.6.0, es-module-lexer@npm:^1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "es-module-lexer@npm:1.7.0"
|
||||
checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b
|
||||
@ -6394,17 +6391,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fs-extra@npm:^10.0.0":
|
||||
version: 10.1.0
|
||||
resolution: "fs-extra@npm:10.1.0"
|
||||
dependencies:
|
||||
graceful-fs: "npm:^4.2.0"
|
||||
jsonfile: "npm:^6.0.1"
|
||||
universalify: "npm:^2.0.0"
|
||||
checksum: 10c0/5f579466e7109719d162a9249abbeffe7f426eb133ea486e020b89bc6d67a741134076bf439983f2eb79276ceaf6bd7b7c1e43c3fd67fe889863e69072fb0a5e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fs-extra@npm:^11.2.0":
|
||||
version: 11.3.0
|
||||
resolution: "fs-extra@npm:11.3.0"
|
||||
@ -7744,19 +7730,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json2csv@npm:^5.0.6":
|
||||
version: 5.0.7
|
||||
resolution: "json2csv@npm:5.0.7"
|
||||
dependencies:
|
||||
commander: "npm:^6.1.0"
|
||||
jsonparse: "npm:^1.3.1"
|
||||
lodash.get: "npm:^4.4.2"
|
||||
bin:
|
||||
json2csv: bin/json2csv.js
|
||||
checksum: 10c0/4a4240c2f39ce89ff8c51296cee710ca1a0f487cc5a5ab4035a590f03fe19aa9f0883f2ea8ce68515c30d1f1e733ed594fde8a50b29a19893bdcfe2796f83689
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json5@npm:^2.2.2":
|
||||
version: 2.2.3
|
||||
resolution: "json5@npm:2.2.3"
|
||||
@ -7847,13 +7820,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"kleur@npm:^4.1.4":
|
||||
version: 4.1.5
|
||||
resolution: "kleur@npm:4.1.5"
|
||||
checksum: 10c0/e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lazystream@npm:^1.0.0":
|
||||
version: 1.0.1
|
||||
resolution: "lazystream@npm:1.0.1"
|
||||
@ -8162,7 +8128,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:^4.17.4":
|
||||
"lodash@npm:^4.17.15, lodash@npm:^4.17.21":
|
||||
version: 4.17.21
|
||||
resolution: "lodash@npm:4.17.21"
|
||||
checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
|
||||
@ -8179,18 +8145,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"log-update@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "log-update@npm:4.0.0"
|
||||
dependencies:
|
||||
ansi-escapes: "npm:^4.3.0"
|
||||
cli-cursor: "npm:^3.1.0"
|
||||
slice-ansi: "npm:^4.0.0"
|
||||
wrap-ansi: "npm:^6.2.0"
|
||||
checksum: 10c0/18b299e230432a156f2535660776406d15ba8bb7817dd3eaadd58004b363756d4ecaabcd658f9949f90b62ea7d3354423be3fdeb7a201ab951ec0e8d6139af86
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"log-update@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "log-update@npm:6.1.0"
|
||||
@ -8893,7 +8847,6 @@ __metadata:
|
||||
shx: "npm:^0.4.0"
|
||||
sinon: "npm:^20.0.0"
|
||||
source-map-support: "npm:^0.5.21"
|
||||
ts-node: "npm:^10.9.2"
|
||||
tslib: "npm:^2.8.1"
|
||||
typescript: "npm:^5.8.2"
|
||||
languageName: unknown
|
||||
@ -10074,13 +10027,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"platform@npm:^1.3.3":
|
||||
version: 1.3.6
|
||||
resolution: "platform@npm:1.3.6"
|
||||
checksum: 10c0/69f2eb692e15f1a343dd0d9347babd9ca933824c8673096be746ff66f99f2bdc909fadd8609076132e6ec768349080babb7362299f2a7f885b98f1254ae6224b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"playwright-core@npm:1.52.0":
|
||||
version: 1.52.0
|
||||
resolution: "playwright-core@npm:1.52.0"
|
||||
@ -11818,6 +11764,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tinybench@npm:^4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "tinybench@npm:4.0.1"
|
||||
checksum: 10c0/42ed8abf2eb914cfbff2cede5fa98cca7dcaf135ab5342a3701d2f90ed3d29fc1a2dcc092a91b1dc483d0de1fa69feac3fea64fad2ddef284bba34391bc96405
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tinyexec@npm:^0.3.2":
|
||||
version: 0.3.2
|
||||
resolution: "tinyexec@npm:0.3.2"
|
||||
@ -12328,6 +12281,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vite-node@npm:3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "vite-node@npm:3.1.3"
|
||||
dependencies:
|
||||
cac: "npm:^6.7.14"
|
||||
debug: "npm:^4.4.0"
|
||||
es-module-lexer: "npm:^1.7.0"
|
||||
pathe: "npm:^2.0.3"
|
||||
vite: "npm:^5.0.0 || ^6.0.0"
|
||||
bin:
|
||||
vite-node: vite-node.mjs
|
||||
checksum: 10c0/d69a1e52361bc0af22d1178db61674ef768cfd3c5610733794bb1e7a36af113da287dd89662a1ad57fd4f6c3360ca99678f5428ba837f239df4091d7891f2e4c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vite-plugin-node-polyfills@npm:^0.23.0":
|
||||
version: 0.23.0
|
||||
resolution: "vite-plugin-node-polyfills@npm:0.23.0"
|
||||
@ -12449,6 +12417,60 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vitest@npm:^3.1.3":
|
||||
version: 3.1.3
|
||||
resolution: "vitest@npm:3.1.3"
|
||||
dependencies:
|
||||
"@vitest/expect": "npm:3.1.3"
|
||||
"@vitest/mocker": "npm:3.1.3"
|
||||
"@vitest/pretty-format": "npm:^3.1.3"
|
||||
"@vitest/runner": "npm:3.1.3"
|
||||
"@vitest/snapshot": "npm:3.1.3"
|
||||
"@vitest/spy": "npm:3.1.3"
|
||||
"@vitest/utils": "npm:3.1.3"
|
||||
chai: "npm:^5.2.0"
|
||||
debug: "npm:^4.4.0"
|
||||
expect-type: "npm:^1.2.1"
|
||||
magic-string: "npm:^0.30.17"
|
||||
pathe: "npm:^2.0.3"
|
||||
std-env: "npm:^3.9.0"
|
||||
tinybench: "npm:^2.9.0"
|
||||
tinyexec: "npm:^0.3.2"
|
||||
tinyglobby: "npm:^0.2.13"
|
||||
tinypool: "npm:^1.0.2"
|
||||
tinyrainbow: "npm:^2.0.0"
|
||||
vite: "npm:^5.0.0 || ^6.0.0"
|
||||
vite-node: "npm:3.1.3"
|
||||
why-is-node-running: "npm:^2.3.0"
|
||||
peerDependencies:
|
||||
"@edge-runtime/vm": "*"
|
||||
"@types/debug": ^4.1.12
|
||||
"@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
|
||||
"@vitest/browser": 3.1.3
|
||||
"@vitest/ui": 3.1.3
|
||||
happy-dom: "*"
|
||||
jsdom: "*"
|
||||
peerDependenciesMeta:
|
||||
"@edge-runtime/vm":
|
||||
optional: true
|
||||
"@types/debug":
|
||||
optional: true
|
||||
"@types/node":
|
||||
optional: true
|
||||
"@vitest/browser":
|
||||
optional: true
|
||||
"@vitest/ui":
|
||||
optional: true
|
||||
happy-dom:
|
||||
optional: true
|
||||
jsdom:
|
||||
optional: true
|
||||
bin:
|
||||
vitest: vitest.mjs
|
||||
checksum: 10c0/954b3579a2d925606df7f78e367ae64eab52c8c5ba2bb2fed94d335a06c910202a4ce080bb02d8148c8b4782488c6d229e963617be8d0c7da96a1c944dd291d7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vm-browserify@npm:^1.0.1":
|
||||
version: 1.1.2
|
||||
resolution: "vm-browserify@npm:1.1.2"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user