diff --git a/.config/deno-import-map.json b/.config/deno-import-map.json
new file mode 100644
index 00000000..6787a03c
--- /dev/null
+++ b/.config/deno-import-map.json
@@ -0,0 +1,24 @@
+{
+ "imports": {
+ "@fuman/utils": "jsr:@fuman/utils@0.0.10",
+ "chai": "https://esm.sh/chai@5.1.2?pin=v135",
+ "node:test": "./deno-shims/node-test.js",
+ "mtcute": "../packages/deno/src/index.ts",
+ "mtcute/utils.js": "../packages/deno/src/utils.ts",
+ "@mtcute/core": "../packages/core/src/index.ts",
+ "@mtcute/core/client.js": "../packages/core/src/highlevel/client.ts",
+ "@mtcute/core/methods.js": "../packages/core/src/highlevel/methods.ts",
+ "@mtcute/core/utils.js": "../packages/core/src/utils/index.ts",
+ "@mtcute/core/worker.js": "../packages/core/src/highlevel/worker/index.ts",
+ "@mtcute/markdown-parser": "../packages/markdown-parser/src/index.ts",
+ "@mtcute/html-parser": "../packages/html-parser/src/index.ts",
+ "@mtcute/file-id": "../packages/file-id/src/index.ts",
+ "@mtcute/tl-runtime": "../packages/tl-runtime/src/index.ts",
+ "@mtcute/wasm": "../packages/wasm/src/index.ts",
+ "@mtcute/tl": "./deno-shims/tl.js",
+ "@mtcute/tl/binary/rsa-keys.js": "./deno-shims/tl-rsa.js",
+ "@mtcute/tl/binary/reader.js": "./deno-shims/tl-reader.js",
+ "@mtcute/tl/compat/reader.js": "./deno-shims/tl-reader-compat.js",
+ "@mtcute/tl/binary/writer.js": "./deno-shims/tl-writer.js"
+ }
+}
\ No newline at end of file
diff --git a/e2e/tests/deno-shims/node-test.js b/.config/deno-shims/node-test.js
similarity index 100%
rename from e2e/tests/deno-shims/node-test.js
rename to .config/deno-shims/node-test.js
diff --git a/.config/deno-shims/tl-reader-compat.js b/.config/deno-shims/tl-reader-compat.js
new file mode 100644
index 00000000..4989fa5b
--- /dev/null
+++ b/.config/deno-shims/tl-reader-compat.js
@@ -0,0 +1,5 @@
+import { createRequire } from 'node:module'
+
+const require = createRequire(import.meta.url)
+
+export const { __tlReaderMapCompat } = require('../../packages/tl/compat/reader.js')
diff --git a/e2e/tests/deno-shims/tl-reader.js b/.config/deno-shims/tl-reader.js
similarity index 53%
rename from e2e/tests/deno-shims/tl-reader.js
rename to .config/deno-shims/tl-reader.js
index 3f4bd0a7..ccd67e8f 100644
--- a/e2e/tests/deno-shims/tl-reader.js
+++ b/.config/deno-shims/tl-reader.js
@@ -2,4 +2,4 @@ import { createRequire } from 'node:module'
const require = createRequire(import.meta.url)
-export const { __tlReaderMap } = require('../../../packages/tl/binary/reader.js')
+export const { __tlReaderMap } = require('../../packages/tl/binary/reader.js')
diff --git a/e2e/tests/deno-shims/tl-rsa.js b/.config/deno-shims/tl-rsa.js
similarity index 51%
rename from e2e/tests/deno-shims/tl-rsa.js
rename to .config/deno-shims/tl-rsa.js
index 7be0398d..425a3816 100644
--- a/e2e/tests/deno-shims/tl-rsa.js
+++ b/.config/deno-shims/tl-rsa.js
@@ -2,4 +2,4 @@ import { createRequire } from 'node:module'
const require = createRequire(import.meta.url)
-export const { __publicKeyIndex } = require('../../../packages/tl/binary/rsa-keys.js')
+export const { __publicKeyIndex } = require('../../packages/tl/binary/rsa-keys.js')
diff --git a/e2e/tests/deno-shims/tl-writer.js b/.config/deno-shims/tl-writer.js
similarity index 53%
rename from e2e/tests/deno-shims/tl-writer.js
rename to .config/deno-shims/tl-writer.js
index b2882e45..c0db0a46 100644
--- a/e2e/tests/deno-shims/tl-writer.js
+++ b/.config/deno-shims/tl-writer.js
@@ -2,4 +2,4 @@ import { createRequire } from 'node:module'
const require = createRequire(import.meta.url)
-export const { __tlWriterMap } = require('../../../packages/tl/binary/writer.js')
+export const { __tlWriterMap } = require('../../packages/tl/binary/writer.js')
diff --git a/e2e/tests/deno-shims/tl.js b/.config/deno-shims/tl.js
similarity index 57%
rename from e2e/tests/deno-shims/tl.js
rename to .config/deno-shims/tl.js
index 7d0486d4..38c3151e 100644
--- a/e2e/tests/deno-shims/tl.js
+++ b/.config/deno-shims/tl.js
@@ -2,4 +2,4 @@ import { createRequire } from 'node:module'
const require = createRequire(import.meta.url)
-export const { tl, mtp } = require('../../../packages/tl/index.js')
+export const { tl, mtp } = require('../../packages/tl/index.js')
diff --git a/.config/vite-utils/collect-test-entrypoints.ts b/.config/vite-utils/collect-test-entrypoints.ts
deleted file mode 100644
index 33623065..00000000
--- a/.config/vite-utils/collect-test-entrypoints.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import * as fs from 'node:fs'
-import { join, resolve } from 'node:path'
-
-import { globSync } from 'glob'
-
-export function collectTestEntrypoints(params: { skipPackages: string[], skipTests: string[] }) {
- const files: string[] = []
-
- const packages = resolve(__dirname, '../../packages')
-
- const skipTests = params.skipTests.map(path => resolve(packages, path))
-
- for (const dir of fs.readdirSync(packages)) {
- if (dir.startsWith('.') || params.skipPackages.includes(dir)) continue
- if (!fs.statSync(resolve(packages, dir)).isDirectory()) continue
-
- const fullDir = resolve(packages, dir)
-
- for (const file of globSync(join(fullDir, '**/*.test.ts'))) {
- if (skipTests.includes(file)) continue
- if (file.match(/\/(node_modules|dist)\//)) continue
- files.push(file)
- }
- }
-
- return files
-}
diff --git a/.config/vite-utils/package-json.js b/.config/vite-utils/package-json.js
deleted file mode 100644
index 57a74cfc..00000000
--- a/.config/vite-utils/package-json.js
+++ /dev/null
@@ -1,172 +0,0 @@
-import { readFileSync } from 'node:fs'
-import { resolve } from 'node:path'
-import { fileURLToPath } from 'node:url'
-
-const rootPackageJson = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf-8'))
-const packagesDir = fileURLToPath(new URL('../../packages', import.meta.url))
-const IS_JSR = process.env.JSR === '1'
-
-export function getPackageVersion(name) {
- const json = JSON.parse(readFileSync(resolve(packagesDir, name, 'package.json'), 'utf-8'))
- return json.version
-}
-
-export function processPackageJson(packageDir) {
- const packageJsonOrig = JSON.parse(readFileSync(resolve(packageDir, 'package.json'), 'utf-8'))
- const packageJson = structuredClone(packageJsonOrig)
- const entrypoints = {}
-
- // copy common fields from root
- for (const field of ['license', 'author', 'contributors', 'homepage', 'repository', 'bugs']) {
- if (rootPackageJson[field]) {
- packageJson[field] = rootPackageJson[field]
- }
- }
-
- const newScripts = {}
-
- if (packageJson.keepScripts) {
- for (const script of packageJson.keepScripts) {
- newScripts[script] = packageJson.scripts[script]
- }
- delete packageJson.keepScripts
- }
- packageJson.scripts = newScripts
- delete packageJson.devDependencies
- delete packageJson.private
-
- if (packageJson.distOnlyFields) {
- Object.assign(packageJson, packageJson.distOnlyFields)
- delete packageJson.distOnlyFields
- }
-
- if (packageJson.jsrOnlyFields) {
- if (IS_JSR) {
- Object.assign(packageJson, packageJson.jsrOnlyFields)
- }
- delete packageJson.jsrOnlyFields
- }
-
- function replaceWorkspaceDependencies(field) {
- if (!packageJson[field]) return
-
- const dependencies = packageJson[field]
-
- for (const name of Object.keys(dependencies)) {
- if (name.startsWith('@fuman/')) {
- delete dependencies[name] // fuman is bundled with vite for now
- continue
- }
-
- const value = dependencies[name]
-
- if (value.startsWith('workspace:')) {
- if (value !== 'workspace:^' && value !== 'workspace:*') {
- throw new Error(
- `Cannot replace workspace dependency ${name} with ${value} - only workspace:^ and * are supported`,
- )
- }
- if (!name.startsWith('@mtcute/')) {
- throw new Error(`Cannot replace workspace dependency ${name} - only @mtcute/* is supported`)
- }
-
- // note: pnpm replaces workspace:* with the current version, unlike this script
- const depVersion = value === 'workspace:*' ? '*' : `^${getPackageVersion(name.slice(8))}`
- dependencies[name] = depVersion
- }
- }
- }
-
- replaceWorkspaceDependencies('dependencies')
- replaceWorkspaceDependencies('devDependencies')
- replaceWorkspaceDependencies('peerDependencies')
- replaceWorkspaceDependencies('optionalDependencies')
-
- delete packageJson.typedoc
-
- if (packageJson.browser) {
- function maybeFixPath(p, repl) {
- if (!p) return p
-
- if (p.startsWith('./src/')) {
- return repl + p.slice(6)
- }
-
- if (p.startsWith('./')) {
- return repl + p.slice(2)
- }
-
- return p
- }
-
- for (const key of Object.keys(packageJson.browser)) {
- if (!key.startsWith('./src/')) continue
-
- const path = key.slice(6)
- packageJson.browser[`./esm/${path}`] = maybeFixPath(packageJson.browser[key], './esm/')
-
- delete packageJson.browser[key]
- }
- }
-
- if (packageJson.exports) {
- let exports = packageJson.exports
- if (typeof exports === 'string') {
- exports = { '.': exports }
- }
- if (typeof exports !== 'object') {
- throw new TypeError('package.json exports must be an object')
- }
-
- const newExports = {}
- for (const [key, value] of Object.entries(exports)) {
- if (typeof value !== 'string') {
- throw new TypeError(`package.json exports value must be a string: ${key}`)
- }
- if (value.endsWith('.wasm')) {
- newExports[key] = value
- continue
- }
-
- let entrypointName = key.replace(/^\.(\/|$)/, '').replace(/\.js$/, '')
- if (entrypointName === '') entrypointName = 'index'
-
- entrypoints[entrypointName] = value
- newExports[key] = {
- import: {
- types: `./${entrypointName}.d.ts`,
- default: `./${entrypointName}.js`,
- },
- require: {
- types: `./${entrypointName}.d.cts`,
- default: `./${entrypointName}.cjs`,
- },
- }
- }
-
- packageJson.exports = newExports
- }
-
- if (typeof packageJson.bin === 'object') {
- const newBin = {}
- for (const [key, value] of Object.entries(packageJson.bin)) {
- if (typeof value !== 'string') {
- throw new TypeError(`package.json bin value must be a string: ${key}`)
- }
-
- let entrypointName = key.replace(/^\.(\/|$)/, '').replace(/\.js$/, '')
- if (entrypointName === '') entrypointName = 'index'
-
- entrypoints[entrypointName] = value
- newBin[key] = `./${entrypointName}.js`
- }
-
- packageJson.bin = newBin
- }
-
- return {
- packageJsonOrig,
- packageJson,
- entrypoints,
- }
-}
diff --git a/.config/vite-utils/polyfills-bun.ts b/.config/vite-utils/polyfills-bun.ts
deleted file mode 100644
index c94942f6..00000000
--- a/.config/vite-utils/polyfills-bun.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import * as vitestExpect from '@vitest/expect'
-import * as vitestSpy from '@vitest/spy'
-import { afterAll, afterEach, beforeAll, beforeEach, vi as bunVi, it, jest } from 'bun:test'
-import * as chai from 'chai'
-
-import { setupChai, stubGlobal, unstubAllGlobals, waitFor } from './polyfills'
-
-setupChai(chai, vitestExpect)
-
-export { afterAll, afterEach, beforeAll, beforeEach, it }
-export const expect = chai.expect
-
-export const vi = {
- ...jest,
- ...bunVi,
- ...vitestSpy,
- mocked: fn => fn,
- stubGlobal,
- unstubAllGlobals,
- waitFor,
- ...['setSystemTime', 'advanceTimersByTimeAsync', 'advanceTimersByTime', 'doMock'].reduce(
- (acc, name) => ({
- ...acc,
- [name]: () => {
- throw new Error(name)
- },
- }),
- {},
- ),
-}
diff --git a/.config/vite-utils/polyfills-deno.ts b/.config/vite-utils/polyfills-deno.ts
deleted file mode 100644
index bbbcf29b..00000000
--- a/.config/vite-utils/polyfills-deno.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import util from 'node:util'
-
-// @ts-expect-error no typings
-import { describe as _describe, afterAll, afterEach, beforeAll, beforeEach, it } from 'jsr:@std/testing/bdd'
-// @ts-expect-error no typings
-import * as vitestExpect from 'npm:@vitest/expect@1.4.0'
-// @ts-expect-error no typings
-import * as vitestSpy from 'npm:@vitest/spy@1.4.0'
-// @ts-expect-error no typings
-import * as chai from 'npm:chai'
-
-import { setupChai, stubGlobal, unstubAllGlobals, waitFor } from './polyfills'
-
-export { afterAll, afterEach, beforeAll, beforeEach, it }
-
-setupChai(chai, vitestExpect)
-
-// https://github.com/denoland/deno_std/issues/2213
-Object.defineProperty(it, 'each', {
- // eslint-disable-next-line ts/no-unsafe-function-type
- value: (items: any[][]) => (name: string, fn: Function) => {
- return items.map((item) => {
- return it(`${util.format(name, ...item)}`, () => fn(...item))
- })
- },
-})
-
-// https://github.com/denoland/deno_std/issues/4634
-export function describe(...args) {
- const fn = args.find(arg => typeof arg === 'function')
- if (fn.toString().startsWith('async')) {
- return
- }
-
- return _describe(...args)
-}
-describe.skip = _describe.skip
-describe.only = _describe.only
-describe.ignore = _describe.ignore
-
-export const expect = chai.expect
-
-export const vi = {
- ...vitestSpy,
- mocked: (fn: any) => fn,
- stubGlobal,
- unstubAllGlobals,
- waitFor,
- // todo use @sinonjs/fake-timers (see https://github.com/vitest-dev/vitest/blob/main/packages/vitest/src/integrations/mock/timers.ts)
- ...['setSystemTime', 'advanceTimersByTimeAsync', 'advanceTimersByTime', 'doMock'].reduce(
- (acc, name) => ({
- ...acc,
- [name]: () => {
- throw new Error(name)
- },
- }),
- {},
- ),
-}
diff --git a/.config/vite-utils/polyfills.ts b/.config/vite-utils/polyfills.ts
deleted file mode 100644
index 85710032..00000000
--- a/.config/vite-utils/polyfills.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-export function setupChai(chai: any, vitestExpect: any) {
- chai.use(vitestExpect.JestExtend)
- chai.use(vitestExpect.JestChaiExpect)
- chai.use(vitestExpect.JestAsymmetricMatchers)
- chai.use((chai: any, utils: any) => {
- utils.addMethod(
- chai.Assertion.prototype,
- 'toMatchInlineSnapshot',
- function (properties?: object, inlineSnapshot?: string) {
- // based on https://github.com/vitest-dev/vitest/blob/main/packages/vitest/src/integrations/snapshot/chai.ts
-
- const received = utils.flag(this, 'object')
- if (typeof properties === 'string') {
- inlineSnapshot = properties
- properties = undefined
- }
-
- if (typeof inlineSnapshot !== 'string') {
- throw new TypeError('toMatchInlineSnapshot requires a string argument')
- }
-
- // todo use @vitest/snapshot
- if (typeof received === 'string') {
- const snapshot = `"${received}"`
- return chai.expect(snapshot).eql(inlineSnapshot.trim())
- } else {
- // eslint-disable-next-line no-eval
- const obj = eval(`(${inlineSnapshot})`) // idc lol
- return chai.expect(received).eql(obj)
- }
- },
- )
-
- utils.addMethod(chai.Assertion.prototype, 'toMatchSnapshot', () => {
- // todo use @vitest/snapshot
- })
- })
-
- vitestExpect.setState(
- {
- assertionCalls: 0,
- isExpectingAssertions: false,
- isExpectingAssertionsError: null,
- expectedAssertionsNumber: null,
- expectedAssertionsNumberErrorGen: null,
- environment: 'deno',
- testPath: 'deno-test.ts',
- currentTestName: 'deno-test',
- },
- chai.expect,
- )
- Object.defineProperty(globalThis, vitestExpect.GLOBAL_EXPECT, {
- value: chai.expect,
- writable: true,
- configurable: true,
- })
-
- chai.expect.addEqualityTesters = customTesters => vitestExpect.addCustomEqualityTesters(customTesters)
-}
-
-const stubbedGlobal = new Map()
-export function stubGlobal(name: string, value: any) {
- stubbedGlobal.set(name, globalThis[name])
- globalThis[name] = value
-}
-
-export function unstubAllGlobals() {
- for (const [name, value] of stubbedGlobal) {
- globalThis[name] = value
- }
- stubbedGlobal.clear()
-}
-
-// eslint-disable-next-line ts/no-unsafe-function-type
-export async function waitFor(fn: Function) {
- // less customizations than vi.waitFor but it's good enough for now
- const timeout = Date.now() + 5000
-
- let lastError: unknown
- while (Date.now() < timeout) {
- try {
- return await fn()
- } catch (e) {
- lastError = e
- await new Promise(resolve => setTimeout(resolve, 10))
- }
- }
-
- throw lastError
-}
diff --git a/.config/vite-utils/test-setup-plugin.ts b/.config/vite-utils/test-setup-plugin.ts
deleted file mode 100644
index 421d444c..00000000
--- a/.config/vite-utils/test-setup-plugin.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import type { Plugin } from 'vite'
-
-import { fileURLToPath } from 'node:url'
-
-const setupFile = fileURLToPath(new URL('./test-setup.ts', import.meta.url))
-
-export function testSetup(params?: { additionalCode?: string }): Plugin {
- const { additionalCode = '' } = params || {}
-
- return {
- name: 'test-setup',
- async transform(code, id) {
- if (!id.match(/\.test\.m?[tj]s/)) return
-
- return {
- code: `import '${setupFile}'\n${additionalCode}${code}`,
- map: null,
- }
- },
- apply: 'build',
- }
-}
diff --git a/.config/vite.browser.ts b/.config/vite.browser.ts
index d8a6c1d2..48c41c60 100644
--- a/.config/vite.browser.ts
+++ b/.config/vite.browser.ts
@@ -1,7 +1,7 @@
-///
-import { mergeConfig } from 'vite'
-import { nodePolyfills } from 'vite-plugin-node-polyfills'
+///
+import { nodePolyfills } from 'vite-plugin-node-polyfills'
+import { mergeConfig } from 'vitest/config'
import { fixupCjs } from './vite-utils/fixup-cjs'
import baseConfig from './vite.js'
@@ -9,9 +9,14 @@ export default mergeConfig(baseConfig, {
test: {
browser: {
enabled: true,
- name: 'chromium',
provider: 'playwright',
slowHijackESM: false,
+ headless: Boolean(process.env.CI),
+ instances: [
+ { browser: 'chromium' },
+ { browser: 'firefox' },
+ { browser: 'webkit' },
+ ],
},
fakeTimers: {
toFake: ['setTimeout', 'clearTimeout', 'setInterval', 'clearInterval', 'Date'],
@@ -30,8 +35,9 @@ export default mergeConfig(baseConfig, {
include: ['stream', 'path', 'zlib', 'util', 'events'],
globals: {
Buffer: false,
- global: false,
- process: false,
+ // for WHATEVER REASON browserify-zlib uses `global` and `process` and it dies in browser lol
+ global: true,
+ process: true,
},
}),
],
@@ -45,10 +51,7 @@ export default mergeConfig(baseConfig, {
},
optimizeDeps: {
esbuildOptions: {
- // for WHATEVER REASON browserify-zlib uses `global` and it dies in browser lol
- define: {
- global: 'globalThis',
- },
+ target: 'esnext',
},
},
})
diff --git a/.config/vite.bun.ts b/.config/vite.bun.ts
deleted file mode 100644
index 183e89d9..00000000
--- a/.config/vite.bun.ts
+++ /dev/null
@@ -1,101 +0,0 @@
-import { resolve } from 'node:path'
-
-import { defineConfig } from 'vite'
-
-import { collectTestEntrypoints } from './vite-utils/collect-test-entrypoints'
-import { fixupCjs } from './vite-utils/fixup-cjs'
-import { testSetup } from './vite-utils/test-setup-plugin'
-
-const POLYFILLS = resolve(__dirname, 'vite-utils/polyfills-bun.ts')
-
-export default defineConfig({
- build: {
- lib: {
- entry: process.env.ENTRYPOINT
- ? [process.env.ENTRYPOINT]
- : collectTestEntrypoints({
- // https://github.com/oven-sh/bun/issues/4145 prevents us from using vitest directly
- // so we have to use bun's native test runner
- skipPackages: ['create-bot'],
- // bun:test doesn't support certain features of vitest, so we'll skip them for now
- // https://github.com/oven-sh/bun/issues/1825
- skipTests: [
- // uses timers
- 'core/src/network/config-manager.test.ts',
- 'core/src/network/persistent-connection.test.ts',
- // use fixtures
- 'convert/src/tdesktop/tdata.test.ts',
- 'convert/src/gramjs/store-session.test.ts',
- ],
- }),
- formats: ['es'],
- },
- rollupOptions: {
- external: [
- /^(node|bun):.*/,
- 'vitest',
- ],
- output: {
- chunkFileNames: 'chunk-[hash].js',
- entryFileNames: '[name]-[hash].test.js',
- minifyInternalExports: false,
- },
- treeshake: false,
- },
- commonjsOptions: {
- ignoreDynamicRequires: true,
- },
- outDir: process.env.OUT_DIR || 'dist/tests',
- emptyOutDir: true,
- target: 'esnext',
- minify: false,
- },
- plugins: [
- fixupCjs(),
- {
- name: 'polyfills',
- transform(code) {
- if (!code.includes('vitest')) return code
- code = code.replace(/^import \{([^}]+)\} from ['"]vitest['"];?$/gm, (_, names) => {
- const namesParsed = names.split(',').map(name => name.trim())
-
- const namesFromFixup: string[] = []
- const newNames = namesParsed
- .map((name) => {
- if (['expect', 'vi', 'it'].includes(name)) {
- namesFromFixup.push(name)
- return ''
- }
- return name
- })
- .filter(Boolean)
-
- let code = `import {${newNames.join(', ')}} from 'bun:test'`
-
- if (namesFromFixup.length) {
- code += `\nimport { ${namesFromFixup.join(', ')} } from '${POLYFILLS}'`
- }
- return code
- })
- return code
- },
- },
- {
- name: 'fix-wasm-load',
- async transform(code) {
- if (code.includes('@mtcute/wasm/mtcute.wasm')) {
- return code.replace('@mtcute/wasm/mtcute.wasm', resolve(__dirname, '../packages/wasm/src/mtcute.wasm'))
- }
- if (code.includes('./mtcute.wasm')) {
- return code.replace(/\.?\.\/mtcute\.wasm/, resolve(__dirname, '../packages/wasm/src/mtcute.wasm'))
- }
-
- return code
- },
- },
- testSetup(),
- ],
- define: {
- 'import.meta.env.TEST_ENV': '"bun"',
- },
-})
diff --git a/.config/vite.deno.ts b/.config/vite.deno.ts
deleted file mode 100644
index 21a35a65..00000000
--- a/.config/vite.deno.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-import { resolve } from 'node:path'
-
-import { defineConfig } from 'vite'
-
-import { collectTestEntrypoints } from './vite-utils/collect-test-entrypoints'
-import { fixupCjs } from './vite-utils/fixup-cjs'
-import { testSetup } from './vite-utils/test-setup-plugin'
-
-const POLYFILLS = resolve(__dirname, 'vite-utils/polyfills-deno.ts')
-
-export default defineConfig({
- build: {
- lib: {
- entry: process.env.ENTRYPOINT
- ? [process.env.ENTRYPOINT]
- : collectTestEntrypoints({
- // these packages rely on node apis and are not meant to be run under deno
- skipPackages: ['create-bot', 'bun', 'node'],
- skipTests: [
- // uses timers
- 'core/src/network/config-manager.test.ts',
- 'core/src/network/persistent-connection.test.ts',
- // https://github.com/denoland/deno/issues/22470
- 'wasm/tests/gunzip.test.ts',
- 'wasm/tests/zlib.test.ts',
- // use fixtures
- 'convert/src/tdesktop/tdata.test.ts',
- 'convert/src/gramjs/store-session.test.ts',
- ],
- }),
- formats: ['es'],
- },
- rollupOptions: {
- external: [
- /^(jsr|npm|node|https?):/,
- ],
- output: {
- chunkFileNames: 'chunk-[hash].js',
- entryFileNames: '[name]-[hash].test.js',
- minifyInternalExports: false,
- },
- treeshake: false,
- },
- commonjsOptions: {
- ignoreDynamicRequires: true,
- },
- outDir: process.env.OUT_DIR || 'dist/tests',
- emptyOutDir: true,
- target: 'esnext',
- minify: false,
- },
- plugins: [
- fixupCjs(),
- {
- name: 'polyfills',
- transform(code) {
- if (!code.includes('vitest')) return code
- code = code.replace(/^import \{([^}]+)\} from ['"]vitest['"];?$/gm, (_, names) => {
- const namesParsed = names.split(',').map(name => name.trim())
-
- return `import {${namesParsed.join(', ')}} from '${POLYFILLS}'`
- })
- return code
- },
- },
- {
- name: 'fix-wasm-load',
- async transform(code) {
- if (code.includes('./mtcute.wasm')) {
- return code.replace(/\.?\.\/mtcute\.wasm/, resolve(__dirname, '../packages/wasm/src/mtcute.wasm'))
- }
-
- return code
- },
- },
- testSetup(),
- ],
- define: {
- 'import.meta.env.TEST_ENV': '"deno"',
- },
-})
diff --git a/.config/vite.ts b/.config/vite.ts
index 281d2373..dc0ded55 100644
--- a/.config/vite.ts
+++ b/.config/vite.ts
@@ -1,5 +1,29 @@
-///
-import { defineConfig } from 'vite'
+import type { ViteUserConfig } from 'vitest/config'
+import { defineConfig } from 'vitest/config'
+
+// https://github.com/oven-sh/bun/issues/4145#issuecomment-2551246135
+let runtime = 'node'
+if ('bun' in process.versions) runtime = 'bun'
+if ('deno' in process.versions) runtime = 'deno'
+
+const poolOptions: ViteUserConfig['test'] = runtime === 'node'
+ ? {
+ pool: 'threads',
+ poolOptions: {
+ threads: {
+ singleThread: true,
+ minThreads: 2,
+ maxThreads: 10,
+ },
+ },
+ }
+ : {
+ pool: 'vitest-in-process-pool',
+ coverage: {
+ enabled: false,
+ },
+ reporters: [['default', { summary: false }]],
+ }
export default defineConfig({
test: {
@@ -22,8 +46,12 @@ export default defineConfig({
setupFiles: [
'./.config/vite-utils/test-setup.ts',
],
+ ...poolOptions,
+ },
+ esbuild: {
+ target: 'esnext',
},
define: {
- 'import.meta.env.TEST_ENV': '"node"',
+ 'import.meta.env.TEST_ENV': JSON.stringify(runtime),
},
})
diff --git a/.forgejo/workflows/test.yaml b/.forgejo/workflows/test.yaml
index ae00b5cc..17230423 100644
--- a/.forgejo/workflows/test.yaml
+++ b/.forgejo/workflows/test.yaml
@@ -43,13 +43,11 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: ./.forgejo/actions/init
- - uses: oven-sh/setup-bun@v1
+ - uses: oven-sh/setup-bun@v2
with:
- bun-version: '1.1.4'
- - name: 'Build tests'
- run: pnpm exec vite build -c .config/vite.bun.ts
+ bun-version: '1.2.4'
- name: 'Run tests'
- run: cd dist/tests && bun test
+ run: pnpm run test:bun
test-deno:
runs-on: node22
@@ -58,19 +56,14 @@ jobs:
- uses: ./.forgejo/actions/init
- uses: https://github.com/denoland/setup-deno@v1
with:
- deno-version: '2.0'
- - name: 'Build tests'
- run: pnpm exec vite build -c .config/vite.deno.ts
+ deno-version: '2.2.2'
- name: 'Run tests'
- run: cd dist/tests && deno test -A --unstable-ffi --node-modules-dir=false
+ run: pnpm run test:deno
test-web:
runs-on: docker
container: mcr.microsoft.com/playwright:v1.42.1
- strategy:
- matrix:
- browser: [chromium, firefox]
steps:
- uses: actions/checkout@v4
- run: apt-get update && apt-get install -y make gcc g++
@@ -82,7 +75,7 @@ jobs:
with:
max_attempts: 3
timeout_minutes: 30
- command: pnpm run test:browser --browser.name=${{ matrix.browser }}
+ command: pnpm run test:browser
e2e:
runs-on: node22
diff --git a/e2e/deno.json b/e2e/deno.json
index ac2843c8..175ffd64 100644
--- a/e2e/deno.json
+++ b/e2e/deno.json
@@ -1,28 +1,6 @@
{
- "imports": {
- "@fuman/utils": "jsr:@fuman/utils@0.0.1",
- "chai": "https://esm.sh/chai@5.1.2?pin=v135",
- "node:test": "./tests/deno-shims/node-test.js",
- "mtcute": "../packages/deno/src/index.ts",
- "mtcute/utils.js": "../packages/deno/src/utils.ts",
- "@mtcute/core": "../packages/core/src/index.ts",
- "@mtcute/core/client.js": "../packages/core/src/highlevel/client.ts",
- "@mtcute/core/methods.js": "../packages/core/src/highlevel/methods.ts",
- "@mtcute/core/utils.js": "../packages/core/src/utils/index.ts",
- "@mtcute/core/worker.js": "../packages/core/src/highlevel/worker/index.ts",
- "@mtcute/markdown-parser": "../packages/markdown-parser/src/index.ts",
- "@mtcute/html-parser": "../packages/html-parser/src/index.ts",
- "@mtcute/file-id": "../packages/file-id/src/index.ts",
- "@mtcute/tl-runtime": "../packages/tl-runtime/src/index.ts",
- "@mtcute/wasm": "../packages/wasm/src/index.ts",
- "@mtcute/tl": "./tests/deno-shims/tl.js",
- "@mtcute/tl/binary/rsa-keys.js": "./tests/deno-shims/tl-rsa.js",
- "@mtcute/tl/binary/reader.js": "./tests/deno-shims/tl-reader.js",
- "@mtcute/tl/compat/reader.js": "./tests/deno-shims/tl-reader-compat.js",
- "@mtcute/tl/binary/writer.js": "./tests/deno-shims/tl-writer.js"
- },
"tasks": {
- "test": "deno test -A --unstable-ffi --trace-leaks --unstable-sloppy-imports --no-check --env-file=.env --unstable-detect-cjs",
+ "test": "deno test -A --unstable-ffi --trace-leaks --unstable-sloppy-imports --no-check --env-file=.env --unstable-detect-cjs --import-map=../.config/deno-import-map.json",
"test:all": "deno task test tests/*.e2e.ts"
}
}
\ No newline at end of file
diff --git a/e2e/deno.lock b/e2e/deno.lock
index ed035a21..0cef88a4 100644
--- a/e2e/deno.lock
+++ b/e2e/deno.lock
@@ -156,9 +156,6 @@
"https://esm.sh/v135/chai@5.1.2/denonext/chai.mjs": "05cc6071c804cf39d4325a2c93807727623019abedca6ed1cb6534137bd4f65e"
},
"workspace": {
- "dependencies": [
- "jsr:@fuman/utils@0.0.1"
- ],
"packageJson": {
"dependencies": [
"npm:@fuman/utils@0.0.1",
diff --git a/e2e/tests/deno-shims/tl-reader-compat.js b/e2e/tests/deno-shims/tl-reader-compat.js
deleted file mode 100644
index d37d4b4a..00000000
--- a/e2e/tests/deno-shims/tl-reader-compat.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { createRequire } from 'node:module'
-
-const require = createRequire(import.meta.url)
-
-export const { __tlReaderMapCompat } = require('../../../packages/tl/compat/reader.js')
diff --git a/package.json b/package.json
index 016c52b3..9271bd23 100644
--- a/package.json
+++ b/package.json
@@ -34,6 +34,8 @@
"test:ci": "vitest --config .config/vite.ts run --coverage.enabled --coverage.reporter=json",
"test:browser": "vitest --config .config/vite.browser.ts run",
"test:browser:dev": "vitest --config .config/vite.browser.ts watch",
+ "test:bun": "bun --bun run test",
+ "test:deno": "deno run -A --unstable-ffi --unstable-sloppy-imports --no-check --unstable-detect-cjs --import-map=.config/deno-import-map.json npm:vitest@3.0.7 --config .config/vite.ts",
"lint": "eslint",
"lint:ci": "CI=1 NODE_OPTIONS=\\\"--max_old_space_size=8192\\\" eslint",
"lint:tsc": "pnpm -r --workspace-concurrency=4 exec tsc",
@@ -50,11 +52,11 @@
"@types/deno": "npm:@teidesu/deno-types@1.46.3",
"@types/node": "22.13.1",
"@types/ws": "8.5.4",
- "@vitest/browser": "2.0.5",
- "@vitest/coverage-v8": "2.0.5",
- "@vitest/expect": "2.0.5",
- "@vitest/spy": "2.0.5",
- "@vitest/ui": "2.0.5",
+ "@vitest/browser": "3.0.7",
+ "@vitest/coverage-v8": "3.0.7",
+ "@vitest/expect": "3.0.7",
+ "@vitest/spy": "3.0.7",
+ "@vitest/ui": "3.0.7",
"chai": "5.1.0",
"cjs-module-lexer": "1.2.3",
"dotenv-flow": "4.1.0",
@@ -70,10 +72,11 @@
"tsx": "4.17.0",
"typedoc": "0.27.6",
"typescript": "5.5.4",
- "vite": "5.4.2",
+ "vite": "6.2.0",
"vite-plugin-dts": "4.0.3",
- "vite-plugin-node-polyfills": "0.22.0",
- "vitest": "2.0.5"
+ "vite-plugin-node-polyfills": "0.23.0",
+ "vitest": "3.0.7",
+ "vitest-in-process-pool": "^2.0.0"
},
"pnpm": {
"overrides": {
diff --git a/packages/core/src/utils/crypto/miller-rabin.test.ts b/packages/core/src/utils/crypto/miller-rabin.test.ts
index b2729d41..28ff0f05 100644
--- a/packages/core/src/utils/crypto/miller-rabin.test.ts
+++ b/packages/core/src/utils/crypto/miller-rabin.test.ts
@@ -5,6 +5,8 @@ import { millerRabin } from './miller-rabin.js'
describe(
'miller-rabin test',
+ // since miller-rabin factorization relies on RNG, it may take a while (or may not!)
+ { timeout: 10000 },
() => {
// miller-rabin factorization relies on RNG, so we should use a real random number generator
const c = defaultCryptoProvider
@@ -139,5 +141,4 @@ describe(
testMillerRabin(BigInt(`0x${telegramDhPrime.replace(/ /g, '')}`), true)
})
},
- { timeout: 10000 },
-) // since miller-rabin factorization relies on RNG, it may take a while (or may not!)
+)
diff --git a/packages/test/src/crypto.ts b/packages/test/src/crypto.ts
index f5b292bb..44cc0273 100644
--- a/packages/test/src/crypto.ts
+++ b/packages/test/src/crypto.ts
@@ -188,6 +188,8 @@ export function testCryptoProvider(c: ICryptoProvider): void {
it(
'should decompose PQ to prime factors P and Q',
+ // since PQ factorization relies on RNG, it may take a while (or may not!)
+ { timeout: 10000 },
async () => {
const testFactorization = async (pq: string, p_: string, q: string) => {
const [p1, q1] = await c.factorizePQ(hex.decode(pq))
@@ -200,8 +202,6 @@ export function testCryptoProvider(c: ICryptoProvider): void {
// random example
await testFactorization('14fcab4dfc861f45', '494c5c99', '494c778d')
},
- // since PQ factorization relies on RNG, it may take a while (or may not!)
- { timeout: 10000 },
)
it('should correctly gzip', () => {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index be85cbc7..1c4f4e16 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -13,10 +13,10 @@ importers:
devDependencies:
'@antfu/eslint-config':
specifier: ^3.11.2
- version: 3.11.2(@typescript-eslint/utils@8.17.0(eslint@9.9.0)(typescript@5.5.4))(@vue/compiler-sfc@3.5.13)(eslint@9.9.0)(typescript@5.5.4)(vitest@2.0.5)
+ version: 3.11.2(@typescript-eslint/utils@8.17.0(eslint@9.9.0)(typescript@5.5.4))(@vue/compiler-sfc@3.5.13)(eslint@9.9.0)(typescript@5.5.4)(vitest@3.0.7)
'@fuman/build':
specifier: https://pkg.pr.new/teidesu/fuman/@fuman/build@0b7fee1
- version: https://pkg.pr.new/teidesu/fuman/@fuman/build@0b7fee1(tough-cookie@4.1.4)(typedoc@0.27.6(typescript@5.5.4))(typescript@5.5.4)(vite@5.4.2(@types/node@22.13.1))
+ version: https://pkg.pr.new/teidesu/fuman/@fuman/build@0b7fee1(tough-cookie@4.1.4)(typedoc@0.27.6(typescript@5.5.4))(typescript@5.5.4)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))
'@fuman/utils':
specifier: 0.0.4
version: 0.0.4
@@ -33,20 +33,20 @@ importers:
specifier: 8.5.4
version: 8.5.4
'@vitest/browser':
- specifier: 2.0.5
- version: 2.0.5(@types/node@22.13.1)(playwright@1.42.1)(typescript@5.5.4)(vitest@2.0.5)
+ specifier: 3.0.7
+ version: 3.0.7(@types/node@22.13.1)(playwright@1.42.1)(typescript@5.5.4)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))(vitest@3.0.7)
'@vitest/coverage-v8':
- specifier: 2.0.5
- version: 2.0.5(vitest@2.0.5)
+ specifier: 3.0.7
+ version: 3.0.7(@vitest/browser@3.0.7)(vitest@3.0.7)
'@vitest/expect':
- specifier: 2.0.5
- version: 2.0.5
+ specifier: 3.0.7
+ version: 3.0.7
'@vitest/spy':
- specifier: 2.0.5
- version: 2.0.5
+ specifier: 3.0.7
+ version: 3.0.7
'@vitest/ui':
- specifier: 2.0.5
- version: 2.0.5(vitest@2.0.5)
+ specifier: 3.0.7
+ version: 3.0.7(vitest@3.0.7)
chai:
specifier: 5.1.0
version: 5.1.0
@@ -76,7 +76,7 @@ importers:
version: 6.0.1
rollup-plugin-node-externals:
specifier: 7.1.3
- version: 7.1.3(rollup@4.27.2)
+ version: 7.1.3(rollup@4.34.9)
semver:
specifier: 7.5.1
version: 7.5.1
@@ -93,17 +93,20 @@ importers:
specifier: 5.5.4
version: 5.5.4
vite:
- specifier: 5.4.2
- version: 5.4.2(@types/node@22.13.1)
+ specifier: 6.2.0
+ version: 6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)
vite-plugin-dts:
specifier: 4.0.3
- version: 4.0.3(@types/node@22.13.1)(rollup@4.27.2)(typescript@5.5.4)(vite@5.4.2(@types/node@22.13.1))
+ version: 4.0.3(@types/node@22.13.1)(rollup@4.34.9)(typescript@5.5.4)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))
vite-plugin-node-polyfills:
- specifier: 0.22.0
- version: 0.22.0(rollup@4.27.2)(vite@5.4.2(@types/node@22.13.1))
+ specifier: 0.23.0
+ version: 0.23.0(rollup@4.34.9)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))
vitest:
- specifier: 2.0.5
- version: 2.0.5(@types/node@22.13.1)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)
+ specifier: 3.0.7
+ version: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.1)(@vitest/browser@3.0.7)(@vitest/ui@3.0.7)(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(tsx@4.17.0)(yaml@2.6.1)
+ vitest-in-process-pool:
+ specifier: ^2.0.0
+ version: 2.0.0(vitest@3.0.7)
e2e:
dependencies:
@@ -583,8 +586,9 @@ packages:
resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
engines: {node: '>=6.9.0'}
- '@bcoe/v8-coverage@0.2.3':
- resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+ '@bcoe/v8-coverage@1.0.2':
+ resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==}
+ engines: {node: '>=18'}
'@bundled-es-modules/cookie@2.0.1':
resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==}
@@ -630,6 +634,12 @@ packages:
cpu: [ppc64]
os: [aix]
+ '@esbuild/aix-ppc64@0.25.0':
+ resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
'@esbuild/android-arm64@0.21.5':
resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
engines: {node: '>=12'}
@@ -648,6 +658,12 @@ packages:
cpu: [arm64]
os: [android]
+ '@esbuild/android-arm64@0.25.0':
+ resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
'@esbuild/android-arm@0.21.5':
resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
engines: {node: '>=12'}
@@ -666,6 +682,12 @@ packages:
cpu: [arm]
os: [android]
+ '@esbuild/android-arm@0.25.0':
+ resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
'@esbuild/android-x64@0.21.5':
resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
engines: {node: '>=12'}
@@ -684,6 +706,12 @@ packages:
cpu: [x64]
os: [android]
+ '@esbuild/android-x64@0.25.0':
+ resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
'@esbuild/darwin-arm64@0.21.5':
resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
engines: {node: '>=12'}
@@ -702,6 +730,12 @@ packages:
cpu: [arm64]
os: [darwin]
+ '@esbuild/darwin-arm64@0.25.0':
+ resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
'@esbuild/darwin-x64@0.21.5':
resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
engines: {node: '>=12'}
@@ -720,6 +754,12 @@ packages:
cpu: [x64]
os: [darwin]
+ '@esbuild/darwin-x64@0.25.0':
+ resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
'@esbuild/freebsd-arm64@0.21.5':
resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
engines: {node: '>=12'}
@@ -738,6 +778,12 @@ packages:
cpu: [arm64]
os: [freebsd]
+ '@esbuild/freebsd-arm64@0.25.0':
+ resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
'@esbuild/freebsd-x64@0.21.5':
resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
engines: {node: '>=12'}
@@ -756,6 +802,12 @@ packages:
cpu: [x64]
os: [freebsd]
+ '@esbuild/freebsd-x64@0.25.0':
+ resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
'@esbuild/linux-arm64@0.21.5':
resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
engines: {node: '>=12'}
@@ -774,6 +826,12 @@ packages:
cpu: [arm64]
os: [linux]
+ '@esbuild/linux-arm64@0.25.0':
+ resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
'@esbuild/linux-arm@0.21.5':
resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
engines: {node: '>=12'}
@@ -792,6 +850,12 @@ packages:
cpu: [arm]
os: [linux]
+ '@esbuild/linux-arm@0.25.0':
+ resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
'@esbuild/linux-ia32@0.21.5':
resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
engines: {node: '>=12'}
@@ -810,6 +874,12 @@ packages:
cpu: [ia32]
os: [linux]
+ '@esbuild/linux-ia32@0.25.0':
+ resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
'@esbuild/linux-loong64@0.21.5':
resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
engines: {node: '>=12'}
@@ -828,6 +898,12 @@ packages:
cpu: [loong64]
os: [linux]
+ '@esbuild/linux-loong64@0.25.0':
+ resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
'@esbuild/linux-mips64el@0.21.5':
resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
engines: {node: '>=12'}
@@ -846,6 +922,12 @@ packages:
cpu: [mips64el]
os: [linux]
+ '@esbuild/linux-mips64el@0.25.0':
+ resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
'@esbuild/linux-ppc64@0.21.5':
resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
engines: {node: '>=12'}
@@ -864,6 +946,12 @@ packages:
cpu: [ppc64]
os: [linux]
+ '@esbuild/linux-ppc64@0.25.0':
+ resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
'@esbuild/linux-riscv64@0.21.5':
resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
engines: {node: '>=12'}
@@ -882,6 +970,12 @@ packages:
cpu: [riscv64]
os: [linux]
+ '@esbuild/linux-riscv64@0.25.0':
+ resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
'@esbuild/linux-s390x@0.21.5':
resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
engines: {node: '>=12'}
@@ -900,6 +994,12 @@ packages:
cpu: [s390x]
os: [linux]
+ '@esbuild/linux-s390x@0.25.0':
+ resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
'@esbuild/linux-x64@0.21.5':
resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
engines: {node: '>=12'}
@@ -918,6 +1018,18 @@ packages:
cpu: [x64]
os: [linux]
+ '@esbuild/linux-x64@0.25.0':
+ resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-arm64@0.25.0':
+ resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
'@esbuild/netbsd-x64@0.21.5':
resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
engines: {node: '>=12'}
@@ -936,6 +1048,12 @@ packages:
cpu: [x64]
os: [netbsd]
+ '@esbuild/netbsd-x64@0.25.0':
+ resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
'@esbuild/openbsd-arm64@0.23.0':
resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==}
engines: {node: '>=18'}
@@ -948,6 +1066,12 @@ packages:
cpu: [arm64]
os: [openbsd]
+ '@esbuild/openbsd-arm64@0.25.0':
+ resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
'@esbuild/openbsd-x64@0.21.5':
resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
engines: {node: '>=12'}
@@ -966,6 +1090,12 @@ packages:
cpu: [x64]
os: [openbsd]
+ '@esbuild/openbsd-x64@0.25.0':
+ resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
'@esbuild/sunos-x64@0.21.5':
resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
engines: {node: '>=12'}
@@ -984,6 +1114,12 @@ packages:
cpu: [x64]
os: [sunos]
+ '@esbuild/sunos-x64@0.25.0':
+ resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
'@esbuild/win32-arm64@0.21.5':
resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
engines: {node: '>=12'}
@@ -1002,6 +1138,12 @@ packages:
cpu: [arm64]
os: [win32]
+ '@esbuild/win32-arm64@0.25.0':
+ resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
'@esbuild/win32-ia32@0.21.5':
resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
engines: {node: '>=12'}
@@ -1020,6 +1162,12 @@ packages:
cpu: [ia32]
os: [win32]
+ '@esbuild/win32-ia32@0.25.0':
+ resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
'@esbuild/win32-x64@0.21.5':
resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
engines: {node: '>=12'}
@@ -1038,6 +1186,12 @@ packages:
cpu: [x64]
os: [win32]
+ '@esbuild/win32-x64@0.25.0':
+ resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
'@eslint-community/eslint-plugin-eslint-comments@4.4.1':
resolution: {integrity: sha512-lb/Z/MzbTf7CaVYM9WCFNQZ4L1yi3ev2fsFPF99h31ljhSEyUoyEsKsNWiU+qD1glbYTDJdqgyaLKtyTkkqtuQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1359,91 +1513,186 @@ packages:
cpu: [arm]
os: [android]
+ '@rollup/rollup-android-arm-eabi@4.34.9':
+ resolution: {integrity: sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==}
+ cpu: [arm]
+ os: [android]
+
'@rollup/rollup-android-arm64@4.27.2':
resolution: {integrity: sha512-xsPeJgh2ThBpUqlLgRfiVYBEf/P1nWlWvReG+aBWfNv3XEBpa6ZCmxSVnxJgLgkNz4IbxpLy64h2gCmAAQLneQ==}
cpu: [arm64]
os: [android]
+ '@rollup/rollup-android-arm64@4.34.9':
+ resolution: {integrity: sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==}
+ cpu: [arm64]
+ os: [android]
+
'@rollup/rollup-darwin-arm64@4.27.2':
resolution: {integrity: sha512-KnXU4m9MywuZFedL35Z3PuwiTSn/yqRIhrEA9j+7OSkji39NzVkgxuxTYg5F8ryGysq4iFADaU5osSizMXhU2A==}
cpu: [arm64]
os: [darwin]
+ '@rollup/rollup-darwin-arm64@4.34.9':
+ resolution: {integrity: sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==}
+ cpu: [arm64]
+ os: [darwin]
+
'@rollup/rollup-darwin-x64@4.27.2':
resolution: {integrity: sha512-Hj77A3yTvUeCIx/Vi+4d4IbYhyTwtHj07lVzUgpUq9YpJSEiGJj4vXMKwzJ3w5zp5v3PFvpJNgc/J31smZey6g==}
cpu: [x64]
os: [darwin]
+ '@rollup/rollup-darwin-x64@4.34.9':
+ resolution: {integrity: sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==}
+ cpu: [x64]
+ os: [darwin]
+
'@rollup/rollup-freebsd-arm64@4.27.2':
resolution: {integrity: sha512-RjgKf5C3xbn8gxvCm5VgKZ4nn0pRAIe90J0/fdHUsgztd3+Zesb2lm2+r6uX4prV2eUByuxJNdt647/1KPRq5g==}
cpu: [arm64]
os: [freebsd]
+ '@rollup/rollup-freebsd-arm64@4.34.9':
+ resolution: {integrity: sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==}
+ cpu: [arm64]
+ os: [freebsd]
+
'@rollup/rollup-freebsd-x64@4.27.2':
resolution: {integrity: sha512-duq21FoXwQtuws+V9H6UZ+eCBc7fxSpMK1GQINKn3fAyd9DFYKPJNcUhdIKOrMFjLEJgQskoMoiuizMt+dl20g==}
cpu: [x64]
os: [freebsd]
+ '@rollup/rollup-freebsd-x64@4.34.9':
+ resolution: {integrity: sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==}
+ cpu: [x64]
+ os: [freebsd]
+
'@rollup/rollup-linux-arm-gnueabihf@4.27.2':
resolution: {integrity: sha512-6npqOKEPRZkLrMcvyC/32OzJ2srdPzCylJjiTJT2c0bwwSGm7nz2F9mNQ1WrAqCBZROcQn91Fno+khFhVijmFA==}
cpu: [arm]
os: [linux]
+ '@rollup/rollup-linux-arm-gnueabihf@4.34.9':
+ resolution: {integrity: sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==}
+ cpu: [arm]
+ os: [linux]
+
'@rollup/rollup-linux-arm-musleabihf@4.27.2':
resolution: {integrity: sha512-V9Xg6eXtgBtHq2jnuQwM/jr2mwe2EycnopO8cbOvpzFuySCGtKlPCI3Hj9xup/pJK5Q0388qfZZy2DqV2J8ftw==}
cpu: [arm]
os: [linux]
+ '@rollup/rollup-linux-arm-musleabihf@4.34.9':
+ resolution: {integrity: sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==}
+ cpu: [arm]
+ os: [linux]
+
'@rollup/rollup-linux-arm64-gnu@4.27.2':
resolution: {integrity: sha512-uCFX9gtZJoQl2xDTpRdseYuNqyKkuMDtH6zSrBTA28yTfKyjN9hQ2B04N5ynR8ILCoSDOrG/Eg+J2TtJ1e/CSA==}
cpu: [arm64]
os: [linux]
+ '@rollup/rollup-linux-arm64-gnu@4.34.9':
+ resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==}
+ cpu: [arm64]
+ os: [linux]
+
'@rollup/rollup-linux-arm64-musl@4.27.2':
resolution: {integrity: sha512-/PU9P+7Rkz8JFYDHIi+xzHabOu9qEWR07L5nWLIUsvserrxegZExKCi2jhMZRd0ATdboKylu/K5yAXbp7fYFvA==}
cpu: [arm64]
os: [linux]
+ '@rollup/rollup-linux-arm64-musl@4.34.9':
+ resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.34.9':
+ resolution: {integrity: sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==}
+ cpu: [loong64]
+ os: [linux]
+
'@rollup/rollup-linux-powerpc64le-gnu@4.27.2':
resolution: {integrity: sha512-eCHmol/dT5odMYi/N0R0HC8V8QE40rEpkyje/ZAXJYNNoSfrObOvG/Mn+s1F/FJyB7co7UQZZf6FuWnN6a7f4g==}
cpu: [ppc64]
os: [linux]
+ '@rollup/rollup-linux-powerpc64le-gnu@4.34.9':
+ resolution: {integrity: sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==}
+ cpu: [ppc64]
+ os: [linux]
+
'@rollup/rollup-linux-riscv64-gnu@4.27.2':
resolution: {integrity: sha512-DEP3Njr9/ADDln3kNi76PXonLMSSMiCir0VHXxmGSHxCxDfQ70oWjHcJGfiBugzaqmYdTC7Y+8Int6qbnxPBIQ==}
cpu: [riscv64]
os: [linux]
+ '@rollup/rollup-linux-riscv64-gnu@4.34.9':
+ resolution: {integrity: sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==}
+ cpu: [riscv64]
+ os: [linux]
+
'@rollup/rollup-linux-s390x-gnu@4.27.2':
resolution: {integrity: sha512-NHGo5i6IE/PtEPh5m0yw5OmPMpesFnzMIS/lzvN5vknnC1sXM5Z/id5VgcNPgpD+wHmIcuYYgW+Q53v+9s96lQ==}
cpu: [s390x]
os: [linux]
+ '@rollup/rollup-linux-s390x-gnu@4.34.9':
+ resolution: {integrity: sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==}
+ cpu: [s390x]
+ os: [linux]
+
'@rollup/rollup-linux-x64-gnu@4.27.2':
resolution: {integrity: sha512-PaW2DY5Tan+IFvNJGHDmUrORadbe/Ceh8tQxi8cmdQVCCYsLoQo2cuaSj+AU+YRX8M4ivS2vJ9UGaxfuNN7gmg==}
cpu: [x64]
os: [linux]
+ '@rollup/rollup-linux-x64-gnu@4.34.9':
+ resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==}
+ cpu: [x64]
+ os: [linux]
+
'@rollup/rollup-linux-x64-musl@4.27.2':
resolution: {integrity: sha512-dOlWEMg2gI91Qx5I/HYqOD6iqlJspxLcS4Zlg3vjk1srE67z5T2Uz91yg/qA8sY0XcwQrFzWWiZhMNERylLrpQ==}
cpu: [x64]
os: [linux]
+ '@rollup/rollup-linux-x64-musl@4.34.9':
+ resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==}
+ cpu: [x64]
+ os: [linux]
+
'@rollup/rollup-win32-arm64-msvc@4.27.2':
resolution: {integrity: sha512-euMIv/4x5Y2/ImlbGl88mwKNXDsvzbWUlT7DFky76z2keajCtcbAsN9LUdmk31hAoVmJJYSThgdA0EsPeTr1+w==}
cpu: [arm64]
os: [win32]
+ '@rollup/rollup-win32-arm64-msvc@4.34.9':
+ resolution: {integrity: sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==}
+ cpu: [arm64]
+ os: [win32]
+
'@rollup/rollup-win32-ia32-msvc@4.27.2':
resolution: {integrity: sha512-RsnE6LQkUHlkC10RKngtHNLxb7scFykEbEwOFDjr3CeCMG+Rr+cKqlkKc2/wJ1u4u990urRHCbjz31x84PBrSQ==}
cpu: [ia32]
os: [win32]
+ '@rollup/rollup-win32-ia32-msvc@4.34.9':
+ resolution: {integrity: sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==}
+ cpu: [ia32]
+ os: [win32]
+
'@rollup/rollup-win32-x64-msvc@4.27.2':
resolution: {integrity: sha512-foJM5vv+z2KQmn7emYdDLyTbkoO5bkHZE1oth2tWbQNGW7mX32d46Hz6T0MqXdWS2vBZhaEtHqdy9WYwGfiliA==}
cpu: [x64]
os: [win32]
+ '@rollup/rollup-win32-x64-msvc@4.34.9':
+ resolution: {integrity: sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==}
+ cpu: [x64]
+ os: [win32]
+
'@rushstack/node-core-library@5.5.1':
resolution: {integrity: sha512-ZutW56qIzH8xIOlfyaLQJFx+8IBqdbVCZdnj+XT1MorQ1JqqxHse8vbCpEM+2MjsrqcbxcgDIbfggB1ZSQ2A3g==}
peerDependencies:
@@ -1494,6 +1743,12 @@ packages:
peerDependencies:
'@testing-library/dom': '>=7.21.4'
+ '@testing-library/user-event@14.6.1':
+ resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==}
+ engines: {node: '>=12', npm: '>=6'}
+ peerDependencies:
+ '@testing-library/dom': '>=7.21.4'
+
'@types/argparse@1.0.38':
resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==}
@@ -1679,10 +1934,29 @@ packages:
webdriverio:
optional: true
- '@vitest/coverage-v8@2.0.5':
- resolution: {integrity: sha512-qeFcySCg5FLO2bHHSa0tAZAOnAUbp4L6/A5JDuj9+bt53JREl8hpLjLHEWF0e/gWc8INVpJaqA7+Ene2rclpZg==}
+ '@vitest/browser@3.0.7':
+ resolution: {integrity: sha512-TDzZtnbe37KZLSLhvlO1pUkeRSRzW3rOhPLsshX8agGoPELMlG7EvS4z9GfsdaCxsP7oWLBJpFjNJwLS458Bzg==}
peerDependencies:
- vitest: 2.0.5
+ playwright: '*'
+ safaridriver: '*'
+ vitest: 3.0.7
+ webdriverio: ^7.0.0 || ^8.0.0 || ^9.0.0
+ peerDependenciesMeta:
+ playwright:
+ optional: true
+ safaridriver:
+ optional: true
+ webdriverio:
+ optional: true
+
+ '@vitest/coverage-v8@3.0.7':
+ resolution: {integrity: sha512-Av8WgBJLTrfLOer0uy3CxjlVuWK4CzcLBndW1Nm2vI+3hZ2ozHututkfc7Blu1u6waeQ7J8gzPK/AsBRnWA5mQ==}
+ peerDependencies:
+ '@vitest/browser': 3.0.7
+ vitest: 3.0.7
+ peerDependenciesMeta:
+ '@vitest/browser':
+ optional: true
'@vitest/eslint-plugin@1.1.14':
resolution: {integrity: sha512-ej0cT5rUt7uvwxuu7Qxkm7fI+eaOq8vD34qGpuRoXCdvOybOlE5GDqtgvVCYbxLANkcRJfm5VDU1TnJmQRHi9g==}
@@ -1700,29 +1974,63 @@ packages:
'@vitest/expect@2.0.5':
resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==}
+ '@vitest/expect@3.0.7':
+ resolution: {integrity: sha512-QP25f+YJhzPfHrHfYHtvRn+uvkCFCqFtW9CktfBxmB+25QqWsx7VB2As6f4GmwllHLDhXNHvqedwhvMmSnNmjw==}
+
+ '@vitest/mocker@3.0.7':
+ resolution: {integrity: sha512-qui+3BLz9Eonx4EAuR/i+QlCX6AUZ35taDQgwGkK/Tw6/WgwodSrjN1X2xf69IA/643ZX5zNKIn2svvtZDrs4w==}
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^5.0.0 || ^6.0.0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+
'@vitest/pretty-format@2.0.5':
resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==}
'@vitest/pretty-format@2.1.5':
resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==}
+ '@vitest/pretty-format@3.0.7':
+ resolution: {integrity: sha512-CiRY0BViD/V8uwuEzz9Yapyao+M9M008/9oMOSQydwbwb+CMokEq3XVaF3XK/VWaOK0Jm9z7ENhybg70Gtxsmg==}
+
'@vitest/runner@2.0.5':
resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==}
+ '@vitest/runner@3.0.7':
+ resolution: {integrity: sha512-WeEl38Z0S2ZcuRTeyYqaZtm4e26tq6ZFqh5y8YD9YxfWuu0OFiGFUbnxNynwLjNRHPsXyee2M9tV7YxOTPZl2g==}
+
'@vitest/snapshot@2.0.5':
resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==}
+ '@vitest/snapshot@3.0.7':
+ resolution: {integrity: sha512-eqTUryJWQN0Rtf5yqCGTQWsCFOQe4eNz5Twsu21xYEcnFJtMU5XvmG0vgebhdLlrHQTSq5p8vWHJIeJQV8ovsA==}
+
'@vitest/spy@2.0.5':
resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==}
+ '@vitest/spy@3.0.7':
+ resolution: {integrity: sha512-4T4WcsibB0B6hrKdAZTM37ekuyFZt2cGbEGd2+L0P8ov15J1/HUsUaqkXEQPNAWr4BtPPe1gI+FYfMHhEKfR8w==}
+
'@vitest/ui@2.0.5':
resolution: {integrity: sha512-m+ZpVt/PVi/nbeRKEjdiYeoh0aOfI9zr3Ria9LO7V2PlMETtAXJS3uETEZkc8Be2oOl8mhd7Ew+5SRBXRYncNw==}
peerDependencies:
vitest: 2.0.5
+ '@vitest/ui@3.0.7':
+ resolution: {integrity: sha512-bogkkSaVdSTRj02TfypjrqrLCeEc/tA5V4gAVM843Rp5JtIub3xaij+qjsSnS6CseLQJUSdDCFaFqPMmymRJKQ==}
+ peerDependencies:
+ vitest: 3.0.7
+
'@vitest/utils@2.0.5':
resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==}
+ '@vitest/utils@3.0.7':
+ resolution: {integrity: sha512-xePVpCRfooFX3rANQjwoditoXgWb1MaFbzmGuPP59MK6i13mrnDw/yEIyJudLeW6/38mCNcwCiJIGmpDPibAIg==}
+
'@volar/language-core@2.4.10':
resolution: {integrity: sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==}
@@ -1961,6 +2269,10 @@ packages:
resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
engines: {node: '>=12'}
+ chai@5.2.0:
+ resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}
+ engines: {node: '>=12'}
+
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
@@ -2136,6 +2448,15 @@ packages:
supports-color:
optional: true
+ debug@4.4.0:
+ resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
@@ -2281,6 +2602,9 @@ packages:
es-module-lexer@1.5.4:
resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
+ es-module-lexer@1.6.0:
+ resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}
+
esbuild@0.21.5:
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
engines: {node: '>=12'}
@@ -2296,6 +2620,11 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ esbuild@0.25.0:
+ resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==}
+ engines: {node: '>=18'}
+ hasBin: true
+
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
@@ -2517,6 +2846,10 @@ packages:
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
engines: {node: '>=6'}
+ expect-type@1.2.0:
+ resolution: {integrity: sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==}
+ engines: {node: '>=12.0.0'}
+
external-editor@3.1.0:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
engines: {node: '>=4'}
@@ -2545,6 +2878,14 @@ packages:
picomatch:
optional: true
+ fdir@6.4.3:
+ resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
fflate@0.8.2:
resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
@@ -2582,6 +2923,9 @@ packages:
flatted@3.3.1:
resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+
for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
@@ -2987,6 +3331,9 @@ packages:
loupe@3.1.2:
resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==}
+ loupe@3.1.3:
+ resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
+
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
@@ -3008,6 +3355,9 @@ packages:
magic-string@0.30.12:
resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==}
+ magic-string@0.30.17:
+ resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+
magicast@0.3.5:
resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
@@ -3226,6 +3576,16 @@ packages:
typescript:
optional: true
+ msw@2.7.3:
+ resolution: {integrity: sha512-+mycXv8l2fEAjFZ5sjrtjJDmm2ceKGjrNbBr1durRg6VkU9fNUE/gsmQ51hWbHqs+l35W1iM+ZsmOD9Fd6lspw==}
+ engines: {node: '>=18'}
+ hasBin: true
+ peerDependencies:
+ typescript: 5.5.4
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
muggle-string@0.4.1:
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
@@ -3242,6 +3602,11 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ nanoid@3.3.8:
+ resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
napi-build-utils@1.0.2:
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
@@ -3411,6 +3776,9 @@ packages:
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
pathval@1.1.1:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
@@ -3466,6 +3834,10 @@ packages:
resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
engines: {node: ^10 || ^12 || >=14}
+ postcss@8.5.3:
+ resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
+ engines: {node: ^10 || ^12 || >=14}
+
prebuild-install@7.1.2:
resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==}
engines: {node: '>=10'}
@@ -3616,6 +3988,11 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
+ rollup@4.34.9:
+ resolution: {integrity: sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
run-async@3.0.0:
resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==}
engines: {node: '>=0.12.0'}
@@ -3701,6 +4078,10 @@ packages:
resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
engines: {node: '>= 10'}
+ sirv@3.0.1:
+ resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
+ engines: {node: '>=18'}
+
sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
@@ -3845,10 +4226,17 @@ packages:
tinyexec@0.3.1:
resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==}
+ tinyexec@0.3.2:
+ resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
+
tinyglobby@0.2.10:
resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
engines: {node: '>=12.0.0'}
+ tinyglobby@0.2.12:
+ resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
+ engines: {node: '>=12.0.0'}
+
tinypool@1.0.2:
resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -3857,6 +4245,10 @@ packages:
resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==}
engines: {node: '>=14.0.0'}
+ tinyrainbow@2.0.0:
+ resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
+ engines: {node: '>=14.0.0'}
+
tinyspy@3.0.2:
resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
engines: {node: '>=14.0.0'}
@@ -4017,6 +4409,11 @@ packages:
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
+ vite-node@3.0.7:
+ resolution: {integrity: sha512-2fX0QwX4GkkkpULXdT1Pf4q0tC1i1lFOyseKoonavXUNlQ77KpW2XqBGGNIm/J4Ows4KxgGJzDguYVPKwG/n5A==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+
vite-plugin-dts@4.0.3:
resolution: {integrity: sha512-+xnTsaONwU2kV6zhRjtbRJSGN41uFR/whqmcb4k4fftLFDJElxthp0PP5Fq8gMeM9ytWMt1yk5gGgekLREWYQQ==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -4027,10 +4424,10 @@ packages:
vite:
optional: true
- vite-plugin-node-polyfills@0.22.0:
- resolution: {integrity: sha512-F+G3LjiGbG8QpbH9bZ//GSBr9i1InSTkaulfUHFa9jkLqVGORFBoqc2A/Yu5Mmh1kNAbiAeKeK+6aaQUf3x0JA==}
+ vite-plugin-node-polyfills@0.23.0:
+ resolution: {integrity: sha512-4n+Ys+2bKHQohPBKigFlndwWQ5fFKwaGY6muNDMTb0fSQLyBzS+jjUNRZG9sKF0S/Go4ApG6LFnUGopjkILg3w==}
peerDependencies:
- vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
+ vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
vite@5.4.2:
resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==}
@@ -4063,6 +4460,51 @@ packages:
terser:
optional: true
+ vite@6.2.0:
+ resolution: {integrity: sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ jiti: '>=1.21.0'
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ vitest-in-process-pool@2.0.0:
+ resolution: {integrity: sha512-pPHWYUt4+EDHczQdRrYmxSW/urMY7maaSX73+m221E4PxlODbsPy2ySsHiUnFxavZXRLOWcf7g4XpqQ0YiU+Dw==}
+ peerDependencies:
+ vitest: '>=3.0.0'
+
vitest@2.0.5:
resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -4088,6 +4530,34 @@ packages:
jsdom:
optional: true
+ vitest@3.0.7:
+ resolution: {integrity: sha512-IP7gPK3LS3Fvn44x30X1dM9vtawm0aesAa2yBIZ9vQf+qB69NXC5776+Qmcr7ohUXIQuLhk7xQR0aSUIDPqavg==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@types/debug': ^4.1.12
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ '@vitest/browser': 3.0.7
+ '@vitest/ui': 3.0.7
+ 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
+
vm-browserify@1.1.2:
resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==}
@@ -4169,6 +4639,18 @@ packages:
utf-8-validate:
optional: true
+ ws@8.18.1:
+ resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
xml-name-validator@4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
engines: {node: '>=12'}
@@ -4227,7 +4709,7 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
- '@antfu/eslint-config@3.11.2(@typescript-eslint/utils@8.17.0(eslint@9.9.0)(typescript@5.5.4))(@vue/compiler-sfc@3.5.13)(eslint@9.9.0)(typescript@5.5.4)(vitest@2.0.5)':
+ '@antfu/eslint-config@3.11.2(@typescript-eslint/utils@8.17.0(eslint@9.9.0)(typescript@5.5.4))(@vue/compiler-sfc@3.5.13)(eslint@9.9.0)(typescript@5.5.4)(vitest@3.0.7)':
dependencies:
'@antfu/install-pkg': 0.5.0
'@clack/prompts': 0.8.2
@@ -4236,7 +4718,7 @@ snapshots:
'@stylistic/eslint-plugin': 2.11.0(eslint@9.9.0)(typescript@5.5.4)
'@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4)
'@typescript-eslint/parser': 8.17.0(eslint@9.9.0)(typescript@5.5.4)
- '@vitest/eslint-plugin': 1.1.14(@typescript-eslint/utils@8.17.0(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4)(vitest@2.0.5)
+ '@vitest/eslint-plugin': 1.1.14(@typescript-eslint/utils@8.17.0(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4)(vitest@3.0.7)
eslint: 9.9.0
eslint-config-flat-gitignore: 0.3.0(eslint@9.9.0)
eslint-flat-config-utils: 0.4.0
@@ -4303,7 +4785,7 @@ snapshots:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
- '@bcoe/v8-coverage@0.2.3': {}
+ '@bcoe/v8-coverage@1.0.2': {}
'@bundled-es-modules/cookie@2.0.1':
dependencies:
@@ -4352,6 +4834,9 @@ snapshots:
'@esbuild/aix-ppc64@0.24.0':
optional: true
+ '@esbuild/aix-ppc64@0.25.0':
+ optional: true
+
'@esbuild/android-arm64@0.21.5':
optional: true
@@ -4361,6 +4846,9 @@ snapshots:
'@esbuild/android-arm64@0.24.0':
optional: true
+ '@esbuild/android-arm64@0.25.0':
+ optional: true
+
'@esbuild/android-arm@0.21.5':
optional: true
@@ -4370,6 +4858,9 @@ snapshots:
'@esbuild/android-arm@0.24.0':
optional: true
+ '@esbuild/android-arm@0.25.0':
+ optional: true
+
'@esbuild/android-x64@0.21.5':
optional: true
@@ -4379,6 +4870,9 @@ snapshots:
'@esbuild/android-x64@0.24.0':
optional: true
+ '@esbuild/android-x64@0.25.0':
+ optional: true
+
'@esbuild/darwin-arm64@0.21.5':
optional: true
@@ -4388,6 +4882,9 @@ snapshots:
'@esbuild/darwin-arm64@0.24.0':
optional: true
+ '@esbuild/darwin-arm64@0.25.0':
+ optional: true
+
'@esbuild/darwin-x64@0.21.5':
optional: true
@@ -4397,6 +4894,9 @@ snapshots:
'@esbuild/darwin-x64@0.24.0':
optional: true
+ '@esbuild/darwin-x64@0.25.0':
+ optional: true
+
'@esbuild/freebsd-arm64@0.21.5':
optional: true
@@ -4406,6 +4906,9 @@ snapshots:
'@esbuild/freebsd-arm64@0.24.0':
optional: true
+ '@esbuild/freebsd-arm64@0.25.0':
+ optional: true
+
'@esbuild/freebsd-x64@0.21.5':
optional: true
@@ -4415,6 +4918,9 @@ snapshots:
'@esbuild/freebsd-x64@0.24.0':
optional: true
+ '@esbuild/freebsd-x64@0.25.0':
+ optional: true
+
'@esbuild/linux-arm64@0.21.5':
optional: true
@@ -4424,6 +4930,9 @@ snapshots:
'@esbuild/linux-arm64@0.24.0':
optional: true
+ '@esbuild/linux-arm64@0.25.0':
+ optional: true
+
'@esbuild/linux-arm@0.21.5':
optional: true
@@ -4433,6 +4942,9 @@ snapshots:
'@esbuild/linux-arm@0.24.0':
optional: true
+ '@esbuild/linux-arm@0.25.0':
+ optional: true
+
'@esbuild/linux-ia32@0.21.5':
optional: true
@@ -4442,6 +4954,9 @@ snapshots:
'@esbuild/linux-ia32@0.24.0':
optional: true
+ '@esbuild/linux-ia32@0.25.0':
+ optional: true
+
'@esbuild/linux-loong64@0.21.5':
optional: true
@@ -4451,6 +4966,9 @@ snapshots:
'@esbuild/linux-loong64@0.24.0':
optional: true
+ '@esbuild/linux-loong64@0.25.0':
+ optional: true
+
'@esbuild/linux-mips64el@0.21.5':
optional: true
@@ -4460,6 +4978,9 @@ snapshots:
'@esbuild/linux-mips64el@0.24.0':
optional: true
+ '@esbuild/linux-mips64el@0.25.0':
+ optional: true
+
'@esbuild/linux-ppc64@0.21.5':
optional: true
@@ -4469,6 +4990,9 @@ snapshots:
'@esbuild/linux-ppc64@0.24.0':
optional: true
+ '@esbuild/linux-ppc64@0.25.0':
+ optional: true
+
'@esbuild/linux-riscv64@0.21.5':
optional: true
@@ -4478,6 +5002,9 @@ snapshots:
'@esbuild/linux-riscv64@0.24.0':
optional: true
+ '@esbuild/linux-riscv64@0.25.0':
+ optional: true
+
'@esbuild/linux-s390x@0.21.5':
optional: true
@@ -4487,6 +5014,9 @@ snapshots:
'@esbuild/linux-s390x@0.24.0':
optional: true
+ '@esbuild/linux-s390x@0.25.0':
+ optional: true
+
'@esbuild/linux-x64@0.21.5':
optional: true
@@ -4496,6 +5026,12 @@ snapshots:
'@esbuild/linux-x64@0.24.0':
optional: true
+ '@esbuild/linux-x64@0.25.0':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.25.0':
+ optional: true
+
'@esbuild/netbsd-x64@0.21.5':
optional: true
@@ -4505,12 +5041,18 @@ snapshots:
'@esbuild/netbsd-x64@0.24.0':
optional: true
+ '@esbuild/netbsd-x64@0.25.0':
+ optional: true
+
'@esbuild/openbsd-arm64@0.23.0':
optional: true
'@esbuild/openbsd-arm64@0.24.0':
optional: true
+ '@esbuild/openbsd-arm64@0.25.0':
+ optional: true
+
'@esbuild/openbsd-x64@0.21.5':
optional: true
@@ -4520,6 +5062,9 @@ snapshots:
'@esbuild/openbsd-x64@0.24.0':
optional: true
+ '@esbuild/openbsd-x64@0.25.0':
+ optional: true
+
'@esbuild/sunos-x64@0.21.5':
optional: true
@@ -4529,6 +5074,9 @@ snapshots:
'@esbuild/sunos-x64@0.24.0':
optional: true
+ '@esbuild/sunos-x64@0.25.0':
+ optional: true
+
'@esbuild/win32-arm64@0.21.5':
optional: true
@@ -4538,6 +5086,9 @@ snapshots:
'@esbuild/win32-arm64@0.24.0':
optional: true
+ '@esbuild/win32-arm64@0.25.0':
+ optional: true
+
'@esbuild/win32-ia32@0.21.5':
optional: true
@@ -4547,6 +5098,9 @@ snapshots:
'@esbuild/win32-ia32@0.24.0':
optional: true
+ '@esbuild/win32-ia32@0.25.0':
+ optional: true
+
'@esbuild/win32-x64@0.21.5':
optional: true
@@ -4556,6 +5110,9 @@ snapshots:
'@esbuild/win32-x64@0.24.0':
optional: true
+ '@esbuild/win32-x64@0.25.0':
+ optional: true
+
'@eslint-community/eslint-plugin-eslint-comments@4.4.1(eslint@9.9.0)':
dependencies:
escape-string-regexp: 4.0.0
@@ -4612,7 +5169,7 @@ snapshots:
dependencies:
levn: 0.4.1
- '@fuman/build@https://pkg.pr.new/teidesu/fuman/@fuman/build@0b7fee1(tough-cookie@4.1.4)(typedoc@0.27.6(typescript@5.5.4))(typescript@5.5.4)(vite@5.4.2(@types/node@22.13.1))':
+ '@fuman/build@https://pkg.pr.new/teidesu/fuman/@fuman/build@0b7fee1(tough-cookie@4.1.4)(typedoc@0.27.6(typescript@5.5.4))(typescript@5.5.4)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))':
dependencies:
'@drizzle-team/brocli': 0.10.2
'@fuman/fetch': 0.0.10(tough-cookie@4.1.4)(zod@3.23.8)
@@ -4627,7 +5184,7 @@ snapshots:
semver: 7.6.3
tinyglobby: 0.2.10
typescript: 5.5.4
- vite: 5.4.2(@types/node@22.13.1)
+ vite: 6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)
zod: 3.23.8
optionalDependencies:
typedoc: 0.27.6(typescript@5.5.4)
@@ -4912,76 +5469,133 @@ snapshots:
'@polka/url@1.0.0-next.28': {}
- '@rollup/plugin-inject@5.0.5(rollup@4.27.2)':
+ '@rollup/plugin-inject@5.0.5(rollup@4.34.9)':
dependencies:
- '@rollup/pluginutils': 5.1.3(rollup@4.27.2)
+ '@rollup/pluginutils': 5.1.3(rollup@4.34.9)
estree-walker: 2.0.2
magic-string: 0.30.12
optionalDependencies:
- rollup: 4.27.2
+ rollup: 4.34.9
- '@rollup/pluginutils@5.1.3(rollup@4.27.2)':
+ '@rollup/pluginutils@5.1.3(rollup@4.34.9)':
dependencies:
'@types/estree': 1.0.6
estree-walker: 2.0.2
picomatch: 4.0.2
optionalDependencies:
- rollup: 4.27.2
+ rollup: 4.34.9
'@rollup/rollup-android-arm-eabi@4.27.2':
optional: true
+ '@rollup/rollup-android-arm-eabi@4.34.9':
+ optional: true
+
'@rollup/rollup-android-arm64@4.27.2':
optional: true
+ '@rollup/rollup-android-arm64@4.34.9':
+ optional: true
+
'@rollup/rollup-darwin-arm64@4.27.2':
optional: true
+ '@rollup/rollup-darwin-arm64@4.34.9':
+ optional: true
+
'@rollup/rollup-darwin-x64@4.27.2':
optional: true
+ '@rollup/rollup-darwin-x64@4.34.9':
+ optional: true
+
'@rollup/rollup-freebsd-arm64@4.27.2':
optional: true
+ '@rollup/rollup-freebsd-arm64@4.34.9':
+ optional: true
+
'@rollup/rollup-freebsd-x64@4.27.2':
optional: true
+ '@rollup/rollup-freebsd-x64@4.34.9':
+ optional: true
+
'@rollup/rollup-linux-arm-gnueabihf@4.27.2':
optional: true
+ '@rollup/rollup-linux-arm-gnueabihf@4.34.9':
+ optional: true
+
'@rollup/rollup-linux-arm-musleabihf@4.27.2':
optional: true
+ '@rollup/rollup-linux-arm-musleabihf@4.34.9':
+ optional: true
+
'@rollup/rollup-linux-arm64-gnu@4.27.2':
optional: true
+ '@rollup/rollup-linux-arm64-gnu@4.34.9':
+ optional: true
+
'@rollup/rollup-linux-arm64-musl@4.27.2':
optional: true
+ '@rollup/rollup-linux-arm64-musl@4.34.9':
+ optional: true
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.34.9':
+ optional: true
+
'@rollup/rollup-linux-powerpc64le-gnu@4.27.2':
optional: true
+ '@rollup/rollup-linux-powerpc64le-gnu@4.34.9':
+ optional: true
+
'@rollup/rollup-linux-riscv64-gnu@4.27.2':
optional: true
+ '@rollup/rollup-linux-riscv64-gnu@4.34.9':
+ optional: true
+
'@rollup/rollup-linux-s390x-gnu@4.27.2':
optional: true
+ '@rollup/rollup-linux-s390x-gnu@4.34.9':
+ optional: true
+
'@rollup/rollup-linux-x64-gnu@4.27.2':
optional: true
+ '@rollup/rollup-linux-x64-gnu@4.34.9':
+ optional: true
+
'@rollup/rollup-linux-x64-musl@4.27.2':
optional: true
+ '@rollup/rollup-linux-x64-musl@4.34.9':
+ optional: true
+
'@rollup/rollup-win32-arm64-msvc@4.27.2':
optional: true
+ '@rollup/rollup-win32-arm64-msvc@4.34.9':
+ optional: true
+
'@rollup/rollup-win32-ia32-msvc@4.27.2':
optional: true
+ '@rollup/rollup-win32-ia32-msvc@4.34.9':
+ optional: true
+
'@rollup/rollup-win32-x64-msvc@4.27.2':
optional: true
+ '@rollup/rollup-win32-x64-msvc@4.34.9':
+ optional: true
+
'@rushstack/node-core-library@5.5.1(@types/node@22.13.1)':
dependencies:
ajv: 8.13.0
@@ -5056,6 +5670,11 @@ snapshots:
'@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)':
dependencies:
'@testing-library/dom': 10.4.0
+ optional: true
+
+ '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)':
+ dependencies:
+ '@testing-library/dom': 10.4.0
'@types/argparse@1.0.38': {}
@@ -5265,7 +5884,7 @@ snapshots:
'@testing-library/dom': 10.4.0
'@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0)
'@vitest/utils': 2.0.5
- magic-string: 0.30.12
+ magic-string: 0.30.17
msw: 2.6.5(@types/node@22.13.1)(typescript@5.5.4)
sirv: 2.0.4
vitest: 2.0.5(@types/node@22.13.1)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)
@@ -5277,32 +5896,56 @@ snapshots:
- bufferutil
- typescript
- utf-8-validate
+ optional: true
- '@vitest/coverage-v8@2.0.5(vitest@2.0.5)':
+ '@vitest/browser@3.0.7(@types/node@22.13.1)(playwright@1.42.1)(typescript@5.5.4)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))(vitest@3.0.7)':
+ dependencies:
+ '@testing-library/dom': 10.4.0
+ '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0)
+ '@vitest/mocker': 3.0.7(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))
+ '@vitest/utils': 3.0.7
+ magic-string: 0.30.17
+ msw: 2.7.3(@types/node@22.13.1)(typescript@5.5.4)
+ sirv: 3.0.1
+ tinyrainbow: 2.0.0
+ vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.1)(@vitest/browser@3.0.7)(@vitest/ui@3.0.7)(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(tsx@4.17.0)(yaml@2.6.1)
+ ws: 8.18.1
+ optionalDependencies:
+ playwright: 1.42.1
+ transitivePeerDependencies:
+ - '@types/node'
+ - bufferutil
+ - typescript
+ - utf-8-validate
+ - vite
+
+ '@vitest/coverage-v8@3.0.7(@vitest/browser@3.0.7)(vitest@3.0.7)':
dependencies:
'@ampproject/remapping': 2.3.0
- '@bcoe/v8-coverage': 0.2.3
- debug: 4.3.7
+ '@bcoe/v8-coverage': 1.0.2
+ debug: 4.4.0
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
istanbul-reports: 3.1.7
- magic-string: 0.30.12
+ magic-string: 0.30.17
magicast: 0.3.5
std-env: 3.8.0
test-exclude: 7.0.1
- tinyrainbow: 1.2.0
- vitest: 2.0.5(@types/node@22.13.1)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)
+ tinyrainbow: 2.0.0
+ vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.1)(@vitest/browser@3.0.7)(@vitest/ui@3.0.7)(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(tsx@4.17.0)(yaml@2.6.1)
+ optionalDependencies:
+ '@vitest/browser': 3.0.7(@types/node@22.13.1)(playwright@1.42.1)(typescript@5.5.4)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))(vitest@3.0.7)
transitivePeerDependencies:
- supports-color
- '@vitest/eslint-plugin@1.1.14(@typescript-eslint/utils@8.17.0(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4)(vitest@2.0.5)':
+ '@vitest/eslint-plugin@1.1.14(@typescript-eslint/utils@8.17.0(eslint@9.9.0)(typescript@5.5.4))(eslint@9.9.0)(typescript@5.5.4)(vitest@3.0.7)':
dependencies:
'@typescript-eslint/utils': 8.17.0(eslint@9.9.0)(typescript@5.5.4)
eslint: 9.9.0
optionalDependencies:
typescript: 5.5.4
- vitest: 2.0.5(@types/node@22.13.1)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)
+ vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.1)(@vitest/browser@3.0.7)(@vitest/ui@3.0.7)(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(tsx@4.17.0)(yaml@2.6.1)
'@vitest/expect@2.0.5':
dependencies:
@@ -5311,6 +5954,22 @@ snapshots:
chai: 5.1.2
tinyrainbow: 1.2.0
+ '@vitest/expect@3.0.7':
+ dependencies:
+ '@vitest/spy': 3.0.7
+ '@vitest/utils': 3.0.7
+ chai: 5.2.0
+ tinyrainbow: 2.0.0
+
+ '@vitest/mocker@3.0.7(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))':
+ dependencies:
+ '@vitest/spy': 3.0.7
+ estree-walker: 3.0.3
+ magic-string: 0.30.17
+ optionalDependencies:
+ msw: 2.7.3(@types/node@22.13.1)(typescript@5.5.4)
+ vite: 6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)
+
'@vitest/pretty-format@2.0.5':
dependencies:
tinyrainbow: 1.2.0
@@ -5319,21 +5978,40 @@ snapshots:
dependencies:
tinyrainbow: 1.2.0
+ '@vitest/pretty-format@3.0.7':
+ dependencies:
+ tinyrainbow: 2.0.0
+
'@vitest/runner@2.0.5':
dependencies:
'@vitest/utils': 2.0.5
pathe: 1.1.2
+ '@vitest/runner@3.0.7':
+ dependencies:
+ '@vitest/utils': 3.0.7
+ pathe: 2.0.3
+
'@vitest/snapshot@2.0.5':
dependencies:
'@vitest/pretty-format': 2.0.5
magic-string: 0.30.12
pathe: 1.1.2
+ '@vitest/snapshot@3.0.7':
+ dependencies:
+ '@vitest/pretty-format': 3.0.7
+ magic-string: 0.30.17
+ pathe: 2.0.3
+
'@vitest/spy@2.0.5':
dependencies:
tinyspy: 3.0.2
+ '@vitest/spy@3.0.7':
+ dependencies:
+ tinyspy: 3.0.2
+
'@vitest/ui@2.0.5(vitest@2.0.5)':
dependencies:
'@vitest/utils': 2.0.5
@@ -5344,6 +6022,18 @@ snapshots:
sirv: 2.0.4
tinyrainbow: 1.2.0
vitest: 2.0.5(@types/node@22.13.1)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)
+ optional: true
+
+ '@vitest/ui@3.0.7(vitest@3.0.7)':
+ dependencies:
+ '@vitest/utils': 3.0.7
+ fflate: 0.8.2
+ flatted: 3.3.3
+ pathe: 2.0.3
+ sirv: 3.0.1
+ tinyglobby: 0.2.12
+ tinyrainbow: 2.0.0
+ vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.1)(@vitest/browser@3.0.7)(@vitest/ui@3.0.7)(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(tsx@4.17.0)(yaml@2.6.1)
'@vitest/utils@2.0.5':
dependencies:
@@ -5352,6 +6042,12 @@ snapshots:
loupe: 3.1.2
tinyrainbow: 1.2.0
+ '@vitest/utils@3.0.7':
+ dependencies:
+ '@vitest/pretty-format': 3.0.7
+ loupe: 3.1.3
+ tinyrainbow: 2.0.0
+
'@volar/language-core@2.4.10':
dependencies:
'@volar/source-map': 2.4.10
@@ -5385,8 +6081,8 @@ snapshots:
'@vue/compiler-ssr': 3.5.13
'@vue/shared': 3.5.13
estree-walker: 2.0.2
- magic-string: 0.30.12
- postcss: 8.4.49
+ magic-string: 0.30.17
+ postcss: 8.5.3
source-map-js: 1.2.1
'@vue/compiler-ssr@3.5.13':
@@ -5658,6 +6354,14 @@ snapshots:
loupe: 3.1.2
pathval: 2.0.0
+ chai@5.2.0:
+ dependencies:
+ assertion-error: 2.0.1
+ check-error: 2.1.1
+ deep-eql: 5.0.2
+ loupe: 3.1.2
+ pathval: 2.0.0
+
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
@@ -5832,6 +6536,10 @@ snapshots:
dependencies:
ms: 2.1.3
+ debug@4.4.0:
+ dependencies:
+ ms: 2.1.3
+
decode-named-character-reference@1.0.2:
dependencies:
character-entities: 2.0.2
@@ -5987,6 +6695,8 @@ snapshots:
es-module-lexer@1.5.4: {}
+ es-module-lexer@1.6.0: {}
+
esbuild@0.21.5:
optionalDependencies:
'@esbuild/aix-ppc64': 0.21.5
@@ -6067,6 +6777,34 @@ snapshots:
'@esbuild/win32-ia32': 0.24.0
'@esbuild/win32-x64': 0.24.0
+ esbuild@0.25.0:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.25.0
+ '@esbuild/android-arm': 0.25.0
+ '@esbuild/android-arm64': 0.25.0
+ '@esbuild/android-x64': 0.25.0
+ '@esbuild/darwin-arm64': 0.25.0
+ '@esbuild/darwin-x64': 0.25.0
+ '@esbuild/freebsd-arm64': 0.25.0
+ '@esbuild/freebsd-x64': 0.25.0
+ '@esbuild/linux-arm': 0.25.0
+ '@esbuild/linux-arm64': 0.25.0
+ '@esbuild/linux-ia32': 0.25.0
+ '@esbuild/linux-loong64': 0.25.0
+ '@esbuild/linux-mips64el': 0.25.0
+ '@esbuild/linux-ppc64': 0.25.0
+ '@esbuild/linux-riscv64': 0.25.0
+ '@esbuild/linux-s390x': 0.25.0
+ '@esbuild/linux-x64': 0.25.0
+ '@esbuild/netbsd-arm64': 0.25.0
+ '@esbuild/netbsd-x64': 0.25.0
+ '@esbuild/openbsd-arm64': 0.25.0
+ '@esbuild/openbsd-x64': 0.25.0
+ '@esbuild/sunos-x64': 0.25.0
+ '@esbuild/win32-arm64': 0.25.0
+ '@esbuild/win32-ia32': 0.25.0
+ '@esbuild/win32-x64': 0.25.0
+
escalade@3.2.0: {}
escape-string-regexp@1.0.5: {}
@@ -6383,6 +7121,8 @@ snapshots:
expand-template@2.0.3: {}
+ expect-type@1.2.0: {}
+
external-editor@3.1.0:
dependencies:
chardet: 0.7.0
@@ -6411,6 +7151,10 @@ snapshots:
optionalDependencies:
picomatch: 4.0.2
+ fdir@6.4.3(picomatch@4.0.2):
+ optionalDependencies:
+ picomatch: 4.0.2
+
fflate@0.8.2: {}
figures@5.0.0:
@@ -6447,6 +7191,8 @@ snapshots:
flatted@3.3.1: {}
+ flatted@3.3.3: {}
+
for-each@0.3.3:
dependencies:
is-callable: 1.2.7
@@ -6721,7 +7467,7 @@ snapshots:
istanbul-lib-source-maps@5.0.6:
dependencies:
'@jridgewell/trace-mapping': 0.3.25
- debug: 4.3.7
+ debug: 4.4.0
istanbul-lib-coverage: 3.2.2
transitivePeerDependencies:
- supports-color
@@ -6838,6 +7584,8 @@ snapshots:
loupe@3.1.2: {}
+ loupe@3.1.3: {}
+
lru-cache@10.4.3: {}
lru-cache@11.0.2: {}
@@ -6854,6 +7602,10 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
magicast@0.3.5:
dependencies:
'@babel/parser': 7.26.2
@@ -7259,6 +8011,32 @@ snapshots:
typescript: 5.5.4
transitivePeerDependencies:
- '@types/node'
+ optional: true
+
+ msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4):
+ dependencies:
+ '@bundled-es-modules/cookie': 2.0.1
+ '@bundled-es-modules/statuses': 1.0.1
+ '@bundled-es-modules/tough-cookie': 0.1.6
+ '@inquirer/confirm': 5.0.2(@types/node@22.13.1)
+ '@mswjs/interceptors': 0.37.0
+ '@open-draft/deferred-promise': 2.2.0
+ '@open-draft/until': 2.1.0
+ '@types/cookie': 0.6.0
+ '@types/statuses': 2.0.5
+ graphql: 16.9.0
+ headers-polyfill: 4.0.3
+ is-node-process: 1.2.0
+ outvariant: 1.4.3
+ path-to-regexp: 6.3.0
+ picocolors: 1.1.1
+ strict-event-emitter: 0.5.1
+ type-fest: 4.27.0
+ yargs: 17.7.2
+ optionalDependencies:
+ typescript: 5.5.4
+ transitivePeerDependencies:
+ - '@types/node'
muggle-string@0.4.1: {}
@@ -7268,6 +8046,8 @@ snapshots:
nanoid@3.3.7: {}
+ nanoid@3.3.8: {}
+
napi-build-utils@1.0.2: {}
natural-compare@1.4.0: {}
@@ -7468,6 +8248,8 @@ snapshots:
pathe@1.1.2: {}
+ pathe@2.0.3: {}
+
pathval@1.1.1: {}
pathval@2.0.0: {}
@@ -7519,6 +8301,12 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
+ postcss@8.5.3:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
prebuild-install@7.1.2:
dependencies:
detect-libc: 2.0.3
@@ -7677,9 +8465,9 @@ snapshots:
hash-base: 3.0.4
inherits: 2.0.4
- rollup-plugin-node-externals@7.1.3(rollup@4.27.2):
+ rollup-plugin-node-externals@7.1.3(rollup@4.34.9):
dependencies:
- rollup: 4.27.2
+ rollup: 4.34.9
rollup@4.27.2:
dependencies:
@@ -7705,6 +8493,31 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.27.2
fsevents: 2.3.3
+ rollup@4.34.9:
+ dependencies:
+ '@types/estree': 1.0.6
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.34.9
+ '@rollup/rollup-android-arm64': 4.34.9
+ '@rollup/rollup-darwin-arm64': 4.34.9
+ '@rollup/rollup-darwin-x64': 4.34.9
+ '@rollup/rollup-freebsd-arm64': 4.34.9
+ '@rollup/rollup-freebsd-x64': 4.34.9
+ '@rollup/rollup-linux-arm-gnueabihf': 4.34.9
+ '@rollup/rollup-linux-arm-musleabihf': 4.34.9
+ '@rollup/rollup-linux-arm64-gnu': 4.34.9
+ '@rollup/rollup-linux-arm64-musl': 4.34.9
+ '@rollup/rollup-linux-loongarch64-gnu': 4.34.9
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.34.9
+ '@rollup/rollup-linux-riscv64-gnu': 4.34.9
+ '@rollup/rollup-linux-s390x-gnu': 4.34.9
+ '@rollup/rollup-linux-x64-gnu': 4.34.9
+ '@rollup/rollup-linux-x64-musl': 4.34.9
+ '@rollup/rollup-win32-arm64-msvc': 4.34.9
+ '@rollup/rollup-win32-ia32-msvc': 4.34.9
+ '@rollup/rollup-win32-x64-msvc': 4.34.9
+ fsevents: 2.3.3
+
run-async@3.0.0: {}
run-parallel@1.2.0:
@@ -7787,6 +8600,13 @@ snapshots:
'@polka/url': 1.0.0-next.28
mrmime: 2.0.0
totalist: 3.0.1
+ optional: true
+
+ sirv@3.0.1:
+ dependencies:
+ '@polka/url': 1.0.0-next.28
+ mrmime: 2.0.0
+ totalist: 3.0.1
sisteransi@1.0.5: {}
@@ -7931,15 +8751,24 @@ snapshots:
tinyexec@0.3.1: {}
+ tinyexec@0.3.2: {}
+
tinyglobby@0.2.10:
dependencies:
fdir: 6.4.2(picomatch@4.0.2)
picomatch: 4.0.2
+ tinyglobby@0.2.12:
+ dependencies:
+ fdir: 6.4.3(picomatch@4.0.2)
+ picomatch: 4.0.2
+
tinypool@1.0.2: {}
tinyrainbow@1.2.0: {}
+ tinyrainbow@2.0.0: {}
+
tinyspy@3.0.2: {}
tmp@0.0.33:
@@ -8105,10 +8934,31 @@ snapshots:
- supports-color
- terser
- vite-plugin-dts@4.0.3(@types/node@22.13.1)(rollup@4.27.2)(typescript@5.5.4)(vite@5.4.2(@types/node@22.13.1)):
+ vite-node@3.0.7(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1):
+ dependencies:
+ cac: 6.7.14
+ debug: 4.4.0
+ es-module-lexer: 1.6.0
+ pathe: 2.0.3
+ vite: 6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)
+ transitivePeerDependencies:
+ - '@types/node'
+ - jiti
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - yaml
+
+ vite-plugin-dts@4.0.3(@types/node@22.13.1)(rollup@4.34.9)(typescript@5.5.4)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)):
dependencies:
'@microsoft/api-extractor': 7.47.4(@types/node@22.13.1)
- '@rollup/pluginutils': 5.1.3(rollup@4.27.2)
+ '@rollup/pluginutils': 5.1.3(rollup@4.34.9)
'@volar/typescript': 2.4.10
'@vue/language-core': 2.0.29(typescript@5.5.4)
compare-versions: 6.1.1
@@ -8119,17 +8969,17 @@ snapshots:
typescript: 5.5.4
vue-tsc: 2.0.29(typescript@5.5.4)
optionalDependencies:
- vite: 5.4.2(@types/node@22.13.1)
+ vite: 6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)
transitivePeerDependencies:
- '@types/node'
- rollup
- supports-color
- vite-plugin-node-polyfills@0.22.0(rollup@4.27.2)(vite@5.4.2(@types/node@22.13.1)):
+ vite-plugin-node-polyfills@0.23.0(rollup@4.34.9)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)):
dependencies:
- '@rollup/plugin-inject': 5.0.5(rollup@4.27.2)
+ '@rollup/plugin-inject': 5.0.5(rollup@4.34.9)
node-stdlib-browser: 1.2.1
- vite: 5.4.2(@types/node@22.13.1)
+ vite: 6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)
transitivePeerDependencies:
- rollup
@@ -8142,6 +8992,22 @@ snapshots:
'@types/node': 22.13.1
fsevents: 2.3.3
+ vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1):
+ dependencies:
+ esbuild: 0.25.0
+ postcss: 8.5.3
+ rollup: 4.34.9
+ optionalDependencies:
+ '@types/node': 22.13.1
+ fsevents: 2.3.3
+ tsx: 4.17.0
+ yaml: 2.6.1
+
+ vitest-in-process-pool@2.0.0(vitest@3.0.7):
+ dependencies:
+ micromatch: 4.0.8
+ vitest: 3.0.7(@types/debug@4.1.12)(@types/node@22.13.1)(@vitest/browser@3.0.7)(@vitest/ui@3.0.7)(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(tsx@4.17.0)(yaml@2.6.1)
+
vitest@2.0.5(@types/node@22.13.1)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5):
dependencies:
'@ampproject/remapping': 2.3.0
@@ -8177,6 +9043,47 @@ snapshots:
- supports-color
- terser
+ vitest@3.0.7(@types/debug@4.1.12)(@types/node@22.13.1)(@vitest/browser@3.0.7)(@vitest/ui@3.0.7)(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(tsx@4.17.0)(yaml@2.6.1):
+ dependencies:
+ '@vitest/expect': 3.0.7
+ '@vitest/mocker': 3.0.7(msw@2.7.3(@types/node@22.13.1)(typescript@5.5.4))(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))
+ '@vitest/pretty-format': 3.0.7
+ '@vitest/runner': 3.0.7
+ '@vitest/snapshot': 3.0.7
+ '@vitest/spy': 3.0.7
+ '@vitest/utils': 3.0.7
+ chai: 5.2.0
+ debug: 4.4.0
+ expect-type: 1.2.0
+ magic-string: 0.30.17
+ pathe: 2.0.3
+ std-env: 3.8.0
+ tinybench: 2.9.0
+ tinyexec: 0.3.2
+ tinypool: 1.0.2
+ tinyrainbow: 2.0.0
+ vite: 6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)
+ vite-node: 3.0.7(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1)
+ why-is-node-running: 2.3.0
+ optionalDependencies:
+ '@types/debug': 4.1.12
+ '@types/node': 22.13.1
+ '@vitest/browser': 3.0.7(@types/node@22.13.1)(playwright@1.42.1)(typescript@5.5.4)(vite@6.2.0(@types/node@22.13.1)(tsx@4.17.0)(yaml@2.6.1))(vitest@3.0.7)
+ '@vitest/ui': 3.0.7(vitest@3.0.7)
+ transitivePeerDependencies:
+ - jiti
+ - less
+ - lightningcss
+ - msw
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - yaml
+
vm-browserify@1.1.2: {}
vscode-uri@3.0.8: {}
@@ -8248,7 +9155,10 @@ snapshots:
ws@8.13.0: {}
- ws@8.18.0: {}
+ ws@8.18.0:
+ optional: true
+
+ ws@8.18.1: {}
xml-name-validator@4.0.0: {}