diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1dc7698..34b4439 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: matrix: os: [macos-latest, ubuntu-latest, windows-latest] # full matrix on push; PRs test Node 24 only, for fast feedback - node: ${{ github.event_name == 'pull_request' && fromJson('[24]') || fromJson('[20, 22, 24, 26]') }} + node: ${{ github.event_name == 'pull_request' && fromJson('[24]') || fromJson('[22, 24, 26]') }} runs-on: ${{ matrix.os }} steps: - name: Set git to use LF diff --git a/package.json b/package.json index 47c50b5..4212766 100644 --- a/package.json +++ b/package.json @@ -19,16 +19,16 @@ "devDependencies": { "@release-it/conventional-changelog": "^12.0.2", "@stylistic/eslint-plugin": "^5.10.0", - "@types/node": "^25.0.3", + "@types/node": "^26.6.2", "@types/which": "^3.0.4", - "@vitest/coverage-v8": "^4.1.11", + "@vitest/coverage-v8": "^5.0.1", "husky": "^9.1.7", "npm-run-all2": "^9.0.3", "oxlint": "^1.83.0", "release-it": "^21.1.0", "rimraf": "^6.1.3", - "typescript": "^6.0.3", - "vitest": "^4.1.11", + "typescript": "^7.0.2", + "vitest": "^5.0.1", "webdriverio": "^9.32.0" } } diff --git a/packages/node-edgedriver/package.json b/packages/node-edgedriver/package.json index a5c61da..81293d2 100644 --- a/packages/node-edgedriver/package.json +++ b/packages/node-edgedriver/package.json @@ -20,7 +20,7 @@ "directory": "packages/node-edgedriver" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.0.0" }, "type": "module", "types": "./dist/index.d.ts", @@ -49,11 +49,11 @@ }, "dependencies": { "@wdio/logger": "^9.29.1", - "@zip.js/zip.js": "^2.8.11", + "@zip.js/zip.js": "^2.16.0", "decamelize": "^6.0.1", "edge-paths": "^3.0.5", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", - "which": "^6.0.1" + "http-proxy-agent": "^9.1.0", + "https-proxy-agent": "^9.1.0", + "which": "^7.0.0" } } diff --git a/packages/node-geckodriver/package.json b/packages/node-geckodriver/package.json index 485436e..c02fa6b 100644 --- a/packages/node-geckodriver/package.json +++ b/packages/node-geckodriver/package.json @@ -17,7 +17,7 @@ } ], "engines": { - "node": ">=20.0.0" + "node": ">=22.0.0" }, "keywords": [ "geckodriver", @@ -58,10 +58,10 @@ }, "dependencies": { "@wdio/logger": "^9.18.0", - "@zip.js/zip.js": "^2.8.11", + "@zip.js/zip.js": "^2.16.0", "decamelize": "^6.0.1", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", + "http-proxy-agent": "^9.1.0", + "https-proxy-agent": "^9.1.0", "modern-tar": "^0.8.5" } } diff --git a/packages/node-geckodriver/tests/start-unit.test.ts b/packages/node-geckodriver/tests/start-unit.test.ts index 98af59b..9bb66a8 100644 --- a/packages/node-geckodriver/tests/start-unit.test.ts +++ b/packages/node-geckodriver/tests/start-unit.test.ts @@ -5,31 +5,31 @@ import { vi, test, expect } from 'vitest' import { type GeckodriverParameters, start } from '../src/index.ts' import { download } from '../src/install.js' -test('start', async () => { - vi.mock('../src/install.js', () => { - return { - download: vi.fn().mockResolvedValue('foo') - } - }) +vi.mock('../src/install.js', () => { + return { + download: vi.fn().mockResolvedValue('foo') + } +}) - vi.mock('../src/utils.js', async (original) => { - const actual: any = await original() - return { - hasAccess: vi.fn().mockResolvedValue(true), - parseParams: actual.parseParams - } - }) +vi.mock('../src/utils.js', async (original) => { + const actual: any = await original() + return { + hasAccess: vi.fn().mockResolvedValue(true), + parseParams: actual.parseParams + } +}) - vi.mock('node:child_process', () => ({ - default: { - spawn: vi.fn(() => { - const child = new EventEmitter() - process.nextTick(() => child.emit('spawn')) - return child - }), - } - })) +vi.mock('node:child_process', () => ({ + default: { + spawn: vi.fn(() => { + const child = new EventEmitter() + process.nextTick(() => child.emit('spawn')) + return child + }), + } +})) +test('start', async () => { const args: GeckodriverParameters = { spawnOpts: { env: { diff --git a/packages/node-geckodriver/tests/unit.test.ts b/packages/node-geckodriver/tests/unit.test.ts index faa1f6b..28039a4 100644 --- a/packages/node-geckodriver/tests/unit.test.ts +++ b/packages/node-geckodriver/tests/unit.test.ts @@ -240,30 +240,40 @@ describe('download caching behaviour', () => { }) test('download with proxy support', async () => { - // Ensure hasAccess always returns false so download always calls fetch - vi.mock('../src/utils.js', async () => { + // Ensure hasAccess always returns false so download always calls fetch. + // vi.doMock (not vi.mock) since this must apply only to the dynamic + // import below, not be hoisted over the file-level '../src/utils.js' mock. + vi.doMock('../src/utils.js', async () => { const actual = await vi.importActual('../src/utils.js') return { ...actual, hasAccess: vi.fn().mockResolvedValue(false) } }) - process.env.HTTPS_PROXY = 'https://proxy.com' - vi.resetModules() - const fetchSpy = vi.fn().mockResolvedValue({ - status: 400, - text: () => Promise.resolve('foobar'), - json: () => Promise.resolve({ foo: 'bar' }) - }) - vi.stubGlobal('fetch', fetchSpy) - const { download } = await import('../src/install.js') - await download('stable').catch(() => {}) - expect(fetchSpy).toBeCalledWith( - expect.any(String), - expect.objectContaining({ - agent: expect.any(Object) + try { + process.env.HTTPS_PROXY = 'https://proxy.com' + vi.resetModules() + const fetchSpy = vi.fn().mockResolvedValue({ + status: 400, + text: () => Promise.resolve('foobar'), + json: () => Promise.resolve({ foo: 'bar' }) }) - ) + vi.stubGlobal('fetch', fetchSpy) + const { download } = await import('../src/install.js') + await download('stable').catch(() => {}) + expect(fetchSpy).toBeCalledWith( + expect.any(String), + expect.objectContaining({ + agent: expect.any(Object) + }) + ) + } finally { + // undo the runtime mock so later tests that reset modules and + // dynamically import utils.js/install.js see the file-level mock, + // not this test's proxy-specific one + vi.doUnmock('../src/utils.js') + delete process.env.HTTPS_PROXY + } }) test('parseParams', () => { diff --git a/packages/node-safaridriver/package.json b/packages/node-safaridriver/package.json index c1d5773..bf83293 100644 --- a/packages/node-safaridriver/package.json +++ b/packages/node-safaridriver/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/webdriverio/driver/issues" }, "engines": { - "node": ">=18.0.0" + "node": ">=22.0.0" }, "main": "./dist/cjs/index.js", "type": "module", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4f7cf87..9df5581 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -168,19 +168,19 @@ importers: devDependencies: '@release-it/conventional-changelog': specifier: ^12.0.2 - version: 12.0.2(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.2)(release-it@21.1.0(@types/node@25.9.8)(magicast@0.5.5)(supports-color@7.2.0)) + version: 12.0.2(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.2)(release-it@21.1.0(@types/node@26.6.2)(magicast@0.5.5)(supports-color@7.2.0)) '@stylistic/eslint-plugin': specifier: ^5.10.0 version: 5.10.0(eslint@10.11.0(jiti@2.7.0)(supports-color@7.2.0)) '@types/node': - specifier: ^25.0.3 - version: 25.9.8 + specifier: ^26.6.2 + version: 26.6.2 '@types/which': specifier: ^3.0.4 version: 3.0.4 '@vitest/coverage-v8': - specifier: ^4.1.11 - version: 4.1.11(vitest@4.1.11) + specifier: ^5.0.1 + version: 5.0.1(vitest@5.0.1) husky: specifier: ^9.1.7 version: 9.1.7 @@ -192,16 +192,16 @@ importers: version: 1.83.0 release-it: specifier: ^21.1.0 - version: 21.1.0(@types/node@25.9.8)(magicast@0.5.5)(supports-color@7.2.0) + version: 21.1.0(@types/node@26.6.2)(magicast@0.5.5)(supports-color@7.2.0) rimraf: specifier: ^6.1.3 version: 6.1.3 typescript: - specifier: ^6.0.3 - version: 6.0.3 + specifier: ^7.0.2 + version: 7.0.2 vitest: - specifier: ^4.1.11 - version: 4.1.11(@types/node@25.9.8)(@vitest/coverage-v8@4.1.11)(vite@8.3.0(@types/node@25.9.8)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)) + specifier: ^5.0.1 + version: 5.0.1(@types/node@26.6.2)(@vitest/coverage-v8@5.0.1)(vite@8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)) webdriverio: specifier: ^9.32.0 version: 9.32.0(supports-color@7.2.0) @@ -227,8 +227,8 @@ importers: specifier: ^9.29.1 version: 9.29.1 '@zip.js/zip.js': - specifier: ^2.8.11 - version: 2.15.0 + specifier: ^2.16.0 + version: 2.16.0 decamelize: specifier: ^6.0.1 version: 6.0.1 @@ -236,14 +236,14 @@ importers: specifier: ^3.0.5 version: 3.0.5 http-proxy-agent: - specifier: ^7.0.2 - version: 7.0.2(supports-color@7.2.0) + specifier: ^9.1.0 + version: 9.1.0(supports-color@7.2.0) https-proxy-agent: - specifier: ^7.0.6 - version: 7.0.6(supports-color@7.2.0) + specifier: ^9.1.0 + version: 9.1.0(supports-color@7.2.0) which: - specifier: ^6.0.1 - version: 6.0.1 + specifier: ^7.0.0 + version: 7.0.0 packages/node-geckodriver: dependencies: @@ -251,17 +251,17 @@ importers: specifier: ^9.18.0 version: 9.29.1 '@zip.js/zip.js': - specifier: ^2.8.11 - version: 2.15.0 + specifier: ^2.16.0 + version: 2.16.0 decamelize: specifier: ^6.0.1 version: 6.0.1 http-proxy-agent: - specifier: ^7.0.2 - version: 7.0.2(supports-color@7.2.0) + specifier: ^9.1.0 + version: 9.1.0(supports-color@7.2.0) https-proxy-agent: - specifier: ^7.0.6 - version: 7.0.6(supports-color@7.2.0) + specifier: ^9.1.0 + version: 9.1.0(supports-color@7.2.0) modern-tar: specifier: ^0.8.5 version: 0.8.5 @@ -996,9 +996,6 @@ packages: resolution: {integrity: sha512-fCTuZK4QBa+39Oz9l4OGfJfz+GpwCp3AqO7Zch3to99xHPgstVsRFpeQ8LNd2o1Gv8raL2mCFwiaHh7bFSp5DQ==} engines: {node: '>=22'} - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@stylistic/eslint-plugin@5.10.0': resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1026,8 +1023,8 @@ packages: '@types/node@20.19.43': resolution: {integrity: sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==} - '@types/node@25.9.8': - resolution: {integrity: sha512-VfMrScDmMhUJQmd5hArdQnFvK0OIeD36uN2Va1FcpYaLB/BgkgM8Ulc50XtYISPMz7APJ30+N0T5EM0jlcdfRw==} + '@types/node@26.6.2': + resolution: {integrity: sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==} '@types/parse-path@7.1.0': resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} @@ -1052,20 +1049,145 @@ packages: resolution: {integrity: sha512-asTOIYhDg4zdzOScCyaytrsV3cR6B4ecPQlXw/dJIm7J/MZTtCtfVII9JD8Geh4jTCrK/Xe6cg5UevoleMcoJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vitest/coverage-v8@4.1.11': - resolution: {integrity: sha512-8MVGEFnJIcdGjcbfKmeq8z0pZHH0JlVtoVZH9Q/qwUp6wyFnEJUBMrw9DCaj+ra3vShGmhavjalMIhPNxZAUcw==} + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + + '@vitest/coverage-v8@5.0.1': + resolution: {integrity: sha512-FRC8ACiudC3dI6MTplzRSYWHDRnIv2IPfbzs4FdoJNsMal/35sWV8hwIfV8ZcqzSPy+uXHeMVONt9CEqtOU17w==} peerDependencies: - '@vitest/browser': 4.1.11 - vitest: 4.1.11 + '@vitest/browser': 5.0.1 + vitest: 5.0.1 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.11': - resolution: {integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==} + '@vitest/istanbul-lib-coverage@1.0.1': + resolution: {integrity: sha512-k3DJZ8LhMBK9NS4SclF1ASD3OgXEWDorbIcPTRDK0/Zae6fRvu+fJRxtFdLfHsa9Y24beCdPnoNZ4LviTNstfA==} + engines: {node: '>=22'} + + '@vitest/istanbul-lib-report@1.0.1': + resolution: {integrity: sha512-1EOLRfsTMnyAr3+kEAsP4o9dhaDlGPpD7H5iLBBeq//YpNB1VIahkPhB+eRp9N2Dkfw8oySROjE3yf9XDeaIkQ==} + engines: {node: '>=22'} - '@vitest/mocker@4.1.11': - resolution: {integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==} + '@vitest/mocker@5.0.1': + resolution: {integrity: sha512-6K1DoBNAPGvuOcSsGA4D6x+5zEEff/KmOOP3uetT2TrGpVfI+HRHRnJJfKi5ib/g1vx8IYHQD8s0pbJz8WQI7Q==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1075,20 +1197,8 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.11': - resolution: {integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==} - - '@vitest/runner@4.1.11': - resolution: {integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==} - - '@vitest/snapshot@4.1.11': - resolution: {integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==} - - '@vitest/spy@4.1.11': - resolution: {integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==} - - '@vitest/utils@4.1.11': - resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==} + '@vitest/spy@5.0.1': + resolution: {integrity: sha512-rbto/mF/SGERxEgYOek7Xm6B9b+y+mVoo+f4b2LymYO8zM1b7uB5nHuhVMTP2hxdzgxvGiZYGxGIaMvL5y180Q==} '@wdio/config@9.32.0': resolution: {integrity: sha512-HjIANiNoL5ehIuot/KbZyNa26r5SaOaVRscYBxZ6fE4BxZMoHqthiuzGsmbr54Hn6pqQm4nn46GCsEfhPxYzEA==} @@ -1117,6 +1227,10 @@ packages: resolution: {integrity: sha512-hYAuHAaWjt0axbofaDL5XUlmrQPsBDcK3f45ApZuh6N+8UGVk26GoGdtGDvcvzahsHytTQ6DtBVXwG9IcCMjjQ==} engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=18.0.0'} + '@zip.js/zip.js@2.16.0': + resolution: {integrity: sha512-D2DZ0Gdn4TP0HlIERuLLRyzKd65C7YUqxF2A6tpthM9TAcWBE+oWGvN52tJ12smenv6vo9J2tXVX4Obzh6skuA==} + engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=18.0.0'} + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -1402,9 +1516,6 @@ packages: engines: {node: '>=22'} hasBin: true - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -1783,9 +1894,6 @@ packages: hookified@2.2.0: resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - htmlfy@0.8.1: resolution: {integrity: sha512-xWROBw9+MEGwxpotll0h672KCaLrKKiCYzsyN8ZgL9cQbVumFnyvsk2JqiB9ELAV1GLj1GG/jxZUjV9OZZi/yQ==} @@ -1908,18 +2016,6 @@ packages: resolution: {integrity: sha512-7atWPjhGEIX3JEtMrOYd8TKzboYlq+5sNbdl9POiLYOI14G5HZiQbZP0Xj5EZdrufQVXfJlpTV0hys0CuxwxZw==} engines: {node: ^18.17 || >=20.6.1} - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-reports@3.2.0: - resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} - engines: {node: '>=8'} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -2091,16 +2187,12 @@ packages: resolution: {integrity: sha512-Lci/1in+elqZ589PXnfP/iwZXpwQifTM94WJRQwG2tZSdfY7NfB/aUaTARHrohWCgHlXoabeaeXRDOnF5X9JQw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magic-string@1.4.1: + resolution: {integrity: sha512-8lyCu36ErXR0J9uaGKlKQoiLZKmtI63YGLE8G2o9jyRPdr4X47LusSOwgOJOzcVtp81fTAAjxR7BwKz682Jhow==} magicast@0.5.5: resolution: {integrity: sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA==} - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} @@ -2582,8 +2674,9 @@ packages: text-decoder@1.2.7: resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinybench@6.1.4: + resolution: {integrity: sha512-9APumHG7r4yOk4X4WlkmE71aZcv1gvin1czO3OQ1U9iJcFA5Ja/ygyb0vPOVHTthFozUYs8CLoLUlM8grb2lTQ==} + engines: {node: '>=20.0.0'} tinyexec@1.3.0: resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} @@ -2624,16 +2717,16 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript@6.0.3: - resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} - engines: {node: '>=14.17'} + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} hasBin: true undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.24.6: - resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} + undici-types@8.9.0: + resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} undici@6.28.1: resolution: {integrity: sha512-zWpdTVD54H48CIybL0rWQ3ukpb9d23wM7eH5RtfdmeP70cWHNjtfo7P4vZX+5CoDcO53J4Pu5uXp7lNfjc6DRA==} @@ -2714,23 +2807,23 @@ packages: yaml: optional: true - vitest@4.1.11: - resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==} - engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + vitest@5.0.1: + resolution: {integrity: sha512-iA95lQbKEkvrtTkdAgnWbXfbipWiiWe/hDl2P5tMi6WFwD76G0NxXAGp/M9EOcYupeGJRr6wppMc7CoA41TQjg==} + engines: {node: ^22.12.0 || ^24.0.0 || >=26.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 - '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.11 - '@vitest/browser-preview': 4.1.11 - '@vitest/browser-webdriverio': 4.1.11 - '@vitest/coverage-istanbul': 4.1.11 - '@vitest/coverage-v8': 4.1.11 - '@vitest/ui': 4.1.11 + '@types/node': ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 5.0.1 + '@vitest/browser-preview': 5.0.1 + '@vitest/browser-webdriverio': ^5.0.0-beta.5 || >=5.0.0 + '@vitest/coverage-istanbul': 5.0.1 + '@vitest/coverage-v8': 5.0.1 + '@vitest/ui': 5.0.1 happy-dom: '*' jsdom: '*' - vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + vite: ^6.4.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -3037,122 +3130,122 @@ snapshots: '@inquirer/ansi@2.0.8': {} - '@inquirer/checkbox@5.2.5(@types/node@25.9.8)': + '@inquirer/checkbox@5.2.5(@types/node@26.6.2)': dependencies: '@inquirer/ansi': 2.0.8 - '@inquirer/core': 12.0.3(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) '@inquirer/figures': 2.0.9 - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/confirm@6.3.2(@types/node@25.9.8)': + '@inquirer/confirm@6.3.2(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@25.9.8) - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/core@12.0.3(@types/node@25.9.8)': + '@inquirer/core@12.0.3(@types/node@26.6.2)': dependencies: '@inquirer/ansi': 2.0.8 '@inquirer/figures': 2.0.9 - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/type': 4.1.1(@types/node@26.6.2) cli-width: 4.1.0 fast-wrap-ansi: 0.2.2 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/editor@5.3.3(@types/node@25.9.8)': + '@inquirer/editor@5.3.3(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@25.9.8) - '@inquirer/external-editor': 3.0.5(@types/node@25.9.8) - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/external-editor': 3.0.5(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/expand@5.1.5(@types/node@25.9.8)': + '@inquirer/expand@5.1.5(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@25.9.8) - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/external-editor@3.0.5(@types/node@25.9.8)': + '@inquirer/external-editor@3.0.5(@types/node@26.6.2)': dependencies: chardet: 2.2.0 iconv-lite: 0.7.3 optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 '@inquirer/figures@2.0.9': {} - '@inquirer/input@5.1.6(@types/node@25.9.8)': + '@inquirer/input@5.1.6(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@25.9.8) - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/number@4.2.3(@types/node@25.9.8)': + '@inquirer/number@4.2.3(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@25.9.8) - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/password@5.2.2(@types/node@25.9.8)': + '@inquirer/password@5.2.2(@types/node@26.6.2)': dependencies: '@inquirer/ansi': 2.0.8 - '@inquirer/core': 12.0.3(@types/node@25.9.8) - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 - - '@inquirer/prompts@8.7.2(@types/node@25.9.8)': - dependencies: - '@inquirer/checkbox': 5.2.5(@types/node@25.9.8) - '@inquirer/confirm': 6.3.2(@types/node@25.9.8) - '@inquirer/editor': 5.3.3(@types/node@25.9.8) - '@inquirer/expand': 5.1.5(@types/node@25.9.8) - '@inquirer/input': 5.1.6(@types/node@25.9.8) - '@inquirer/number': 4.2.3(@types/node@25.9.8) - '@inquirer/password': 5.2.2(@types/node@25.9.8) - '@inquirer/rawlist': 5.3.5(@types/node@25.9.8) - '@inquirer/search': 4.3.3(@types/node@25.9.8) - '@inquirer/select': 5.2.5(@types/node@25.9.8) + '@types/node': 26.6.2 + + '@inquirer/prompts@8.7.2(@types/node@26.6.2)': + dependencies: + '@inquirer/checkbox': 5.2.5(@types/node@26.6.2) + '@inquirer/confirm': 6.3.2(@types/node@26.6.2) + '@inquirer/editor': 5.3.3(@types/node@26.6.2) + '@inquirer/expand': 5.1.5(@types/node@26.6.2) + '@inquirer/input': 5.1.6(@types/node@26.6.2) + '@inquirer/number': 4.2.3(@types/node@26.6.2) + '@inquirer/password': 5.2.2(@types/node@26.6.2) + '@inquirer/rawlist': 5.3.5(@types/node@26.6.2) + '@inquirer/search': 4.3.3(@types/node@26.6.2) + '@inquirer/select': 5.2.5(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/rawlist@5.3.5(@types/node@25.9.8)': + '@inquirer/rawlist@5.3.5(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@25.9.8) - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/search@4.3.3(@types/node@25.9.8)': + '@inquirer/search@4.3.3(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) '@inquirer/figures': 2.0.9 - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/select@5.2.5(@types/node@25.9.8)': + '@inquirer/select@5.2.5(@types/node@26.6.2)': dependencies: '@inquirer/ansi': 2.0.8 - '@inquirer/core': 12.0.3(@types/node@25.9.8) + '@inquirer/core': 12.0.3(@types/node@26.6.2) '@inquirer/figures': 2.0.9 - '@inquirer/type': 4.1.1(@types/node@25.9.8) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 - '@inquirer/type@4.1.1(@types/node@25.9.8)': + '@inquirer/type@4.1.1(@types/node@26.6.2)': optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 '@isaacs/cliui@8.0.2': dependencies: @@ -3332,7 +3425,7 @@ snapshots: - react-native-b4a - supports-color - '@release-it/conventional-changelog@12.0.2(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.2)(release-it@21.1.0(@types/node@25.9.8)(magicast@0.5.5)(supports-color@7.2.0))': + '@release-it/conventional-changelog@12.0.2(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.2)(release-it@21.1.0(@types/node@26.6.2)(magicast@0.5.5)(supports-color@7.2.0))': dependencies: '@conventional-changelog/git-client': 3.1.2(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.2) concat-stream: 2.0.0 @@ -3340,7 +3433,7 @@ snapshots: conventional-changelog-angular: 9.4.0 conventional-changelog-conventionalcommits: 10.4.0 conventional-recommended-bump: 12.1.0 - release-it: 21.1.0(@types/node@25.9.8)(magicast@0.5.5)(supports-color@7.2.0) + release-it: 21.1.0(@types/node@26.6.2)(magicast@0.5.5)(supports-color@7.2.0) semver: 7.8.5 transitivePeerDependencies: - conventional-commits-filter @@ -3406,8 +3499,6 @@ snapshots: '@simple-libs/stream-utils@2.0.0': {} - '@standard-schema/spec@1.1.0': {} - '@stylistic/eslint-plugin@5.10.0(eslint@10.11.0(jiti@2.7.0)(supports-color@7.2.0))': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.11.0(jiti@2.7.0)(supports-color@7.2.0)) @@ -3437,9 +3528,9 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@25.9.8': + '@types/node@26.6.2': dependencies: - undici-types: 7.24.6 + undici-types: 8.9.0 '@types/parse-path@7.1.0': dependencies: @@ -3453,69 +3544,103 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 '@types/yauzl@2.10.3': dependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 optional: true '@typescript-eslint/types@8.70.0': {} - '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + + '@vitest/coverage-v8@5.0.1(vitest@5.0.1)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.11 + '@vitest/istanbul-lib-coverage': 1.0.1 + '@vitest/istanbul-lib-report': 1.0.1 ast-v8-to-istanbul: 1.0.6 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-reports: 3.2.0 magicast: 0.5.5 obug: 2.2.1 std-env: 4.2.0 tinyrainbow: 3.1.1 - vitest: 4.1.11(@types/node@25.9.8)(@vitest/coverage-v8@4.1.11)(vite@8.3.0(@types/node@25.9.8)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)) + vitest: 5.0.1(@types/node@26.6.2)(@vitest/coverage-v8@5.0.1)(vite@8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)) + + '@vitest/istanbul-lib-coverage@1.0.1': {} - '@vitest/expect@4.1.11': + '@vitest/istanbul-lib-report@1.0.1': dependencies: - '@standard-schema/spec': 1.1.0 - '@types/chai': 5.2.3 - '@vitest/spy': 4.1.11 - '@vitest/utils': 4.1.11 - chai: 6.2.2 - tinyrainbow: 3.1.1 + '@vitest/istanbul-lib-coverage': 1.0.1 - '@vitest/mocker@4.1.11(vite@8.3.0(@types/node@25.9.8)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13))': + '@vitest/mocker@5.0.1(vite@8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13))': dependencies: - '@vitest/spy': 4.1.11 + '@jridgewell/trace-mapping': 0.3.31 + '@vitest/spy': 5.0.1 estree-walker: 3.0.3 - magic-string: 0.30.21 + magic-string: 1.4.1 optionalDependencies: - vite: 8.3.0(@types/node@25.9.8)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13) - - '@vitest/pretty-format@4.1.11': - dependencies: - tinyrainbow: 3.1.1 - - '@vitest/runner@4.1.11': - dependencies: - '@vitest/utils': 4.1.11 - pathe: 2.0.3 - - '@vitest/snapshot@4.1.11': - dependencies: - '@vitest/pretty-format': 4.1.11 - '@vitest/utils': 4.1.11 - magic-string: 0.30.21 - pathe: 2.0.3 + vite: 8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13) - '@vitest/spy@4.1.11': {} - - '@vitest/utils@4.1.11': - dependencies: - '@vitest/pretty-format': 4.1.11 - convert-source-map: 2.0.0 - tinyrainbow: 3.1.1 + '@vitest/spy@5.0.1': {} '@wdio/config@9.32.0(supports-color@7.2.0)': dependencies: @@ -3574,6 +3699,8 @@ snapshots: '@zip.js/zip.js@2.15.0': {} + '@zip.js/zip.js@2.16.0': {} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -3864,8 +3991,6 @@ snapshots: conventional-commits-filter: 6.0.1 conventional-commits-parser: 7.1.2 - convert-source-map@2.0.0: {} - core-util-is@1.0.3: {} crc-32@1.2.2: {} @@ -4283,8 +4408,6 @@ snapshots: hookified@2.2.0: {} - html-escaper@2.0.2: {} - htmlfy@0.8.1: {} htmlparser2@10.1.0: @@ -4396,19 +4519,6 @@ snapshots: lodash.isstring: 4.0.1 lodash.uniqby: 4.7.0 - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-reports@3.2.0: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -4543,7 +4653,7 @@ snapshots: macos-release@3.5.1: {} - magic-string@0.30.21: + magic-string@1.4.1: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 @@ -4553,10 +4663,6 @@ snapshots: '@babel/types': 7.29.8 source-map-js: 1.2.1 - make-dir@4.0.0: - dependencies: - semver: 7.8.5 - memorystream@0.3.1: {} mime-db@1.54.0: {} @@ -4896,9 +5002,9 @@ snapshots: readdirp@5.1.1: {} - release-it@21.1.0(@types/node@25.9.8)(magicast@0.5.5)(supports-color@7.2.0): + release-it@21.1.0(@types/node@26.6.2)(magicast@0.5.5)(supports-color@7.2.0): dependencies: - '@inquirer/prompts': 8.7.2(@types/node@25.9.8) + '@inquirer/prompts': 8.7.2(@types/node@26.6.2) '@octokit/rest': 22.0.1 '@phun-ky/typeof': 2.0.3 async-retry: 1.3.3 @@ -5123,7 +5229,7 @@ snapshots: transitivePeerDependencies: - react-native-b4a - tinybench@2.9.0: {} + tinybench@6.1.4: {} tinyexec@1.3.0: {} @@ -5155,11 +5261,32 @@ snapshots: typedarray@0.0.6: {} - typescript@6.0.3: {} + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 undici-types@6.21.0: {} - undici-types@7.24.6: {} + undici-types@8.9.0: {} undici@6.28.1: {} @@ -5183,7 +5310,7 @@ snapshots: verkit@0.4.0: {} - vite@8.3.0(@types/node@25.9.8)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13): + vite@8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 @@ -5191,37 +5318,31 @@ snapshots: rolldown: 1.2.9 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.9.8 + '@types/node': 26.6.2 esbuild: 0.28.2 fsevents: 2.3.3 jiti: 2.7.0 tsx: 4.23.13 - vitest@4.1.11(@types/node@25.9.8)(@vitest/coverage-v8@4.1.11)(vite@8.3.0(@types/node@25.9.8)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)): + vitest@5.0.1(@types/node@26.6.2)(@vitest/coverage-v8@5.0.1)(vite@8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)): dependencies: - '@vitest/expect': 4.1.11 - '@vitest/mocker': 4.1.11(vite@8.3.0(@types/node@25.9.8)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)) - '@vitest/pretty-format': 4.1.11 - '@vitest/runner': 4.1.11 - '@vitest/snapshot': 4.1.11 - '@vitest/spy': 4.1.11 - '@vitest/utils': 4.1.11 + '@types/chai': 5.2.3 + '@vitest/mocker': 5.0.1(vite@8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13)) + chai: 6.2.2 es-module-lexer: 2.3.2 expect-type: 1.4.0 - magic-string: 0.30.21 + magic-string: 1.4.1 obug: 2.2.1 - pathe: 2.0.3 picomatch: 4.0.7 std-env: 4.2.0 - tinybench: 2.9.0 + tinybench: 6.1.4 tinyexec: 1.3.0 tinyglobby: 0.2.17 - tinyrainbow: 3.1.1 - vite: 8.3.0(@types/node@25.9.8)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13) + vite: 8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.23.13) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.9.8 - '@vitest/coverage-v8': 4.1.11(vitest@4.1.11) + '@types/node': 26.6.2 + '@vitest/coverage-v8': 5.0.1(vitest@5.0.1) transitivePeerDependencies: - msw diff --git a/tsconfig.base.json b/tsconfig.base.json index 303b39a..d27b24b 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,7 +1,7 @@ { "compilerOptions": { "module": "ESNext", - "target": "ES2020", + "target": "ES2023", "moduleResolution": "bundler", "composite": true, "declaration": true, @@ -12,7 +12,7 @@ "allowSyntheticDefaultImports": true, "newLine": "lf", "noEmitOnError": true, - "lib": ["ES2020"], + "lib": ["ES2023"], "noImplicitAny": true, "resolveJsonModule": true, "experimentalDecorators": true,