From de83c36c20252cc07d586d28d6381c1d3752e542 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Fri, 21 Jun 2024 15:58:37 +0200 Subject: [PATCH 01/24] test: fix unexpected warnings --- packages/playground/package.json | 10 +- .../guards/navigatioGuardsInjections.spec.ts | 13 +- packages/router/package.json | 19 +- pnpm-lock.yaml | 904 ++++-------------- 4 files changed, 184 insertions(+), 762 deletions(-) diff --git a/packages/playground/package.json b/packages/playground/package.json index 8ab8aa7dd..6d3a6a8cf 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -9,16 +9,16 @@ "preview": "vite preview --port 4173" }, "dependencies": { - "vue": "^3.4.23" + "vue": "^3.4.29" }, "devDependencies": { "@types/node": "^20.12.7", - "@vitejs/plugin-vue": "^5.0.4", - "@vue/compiler-sfc": "^3.4.23", + "@vitejs/plugin-vue": "^5.0.5", + "@vue/compiler-sfc": "^3.4.29", "@vue/tsconfig": "^0.5.1", "typescript": "~5.3.3", - "vite": "^5.2.9", + "vite": "^5.3.1", "vue-router": "workspace:*", - "vue-tsc": "^1.8.27" + "vue-tsc": "^2.0.21" } } diff --git a/packages/router/__tests__/guards/navigatioGuardsInjections.spec.ts b/packages/router/__tests__/guards/navigatioGuardsInjections.spec.ts index f6a0e52aa..522e80b3c 100644 --- a/packages/router/__tests__/guards/navigatioGuardsInjections.spec.ts +++ b/packages/router/__tests__/guards/navigatioGuardsInjections.spec.ts @@ -1,18 +1,15 @@ /** - * @vitest-environment jsdom + * @vitest-environment happy-dom */ -import { createDom, newRouter as createRouter } from '../utils' +import { newRouter as createRouter } from '../utils' import { mount } from '@vue/test-utils' import { inject } from 'vue' import { mockWarn } from '../vitest-mock-warn' -import type { Router } from '../../src' -import { describe, expect, it, beforeAll } from 'vitest' +import { createMemoryHistory, type Router } from '../../src' +import { describe, expect, it } from 'vitest' describe('inject() within navigation guards', () => { mockWarn() - beforeAll(() => { - createDom() - }) const PageComponent = { template: `
Page
`, @@ -97,6 +94,7 @@ describe('inject() within navigation guards', () => { it('beforeRouteUpdate', async () => { expect.assertions(1) const router = createRouter({ + history: createMemoryHistory(), routes: [ { path: '/', @@ -118,6 +116,7 @@ describe('inject() within navigation guards', () => { it('beforeRouteLeave', async () => { expect.assertions(1) const router = createRouter({ + history: createMemoryHistory(), routes: [ { path: '/', component: PageComponent }, { diff --git a/packages/router/package.json b/packages/router/package.json index e82dcb534..e98c3ba73 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -114,7 +114,7 @@ "attributes": "vetur/attributes.json" }, "dependencies": { - "@vue/devtools-api": "^6.5.1" + "@vue/devtools-api": "^6.6.3" }, "devDependencies": { "@microsoft/api-extractor": "^7.40.1", @@ -123,14 +123,14 @@ "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-replace": "^5.0.5", "@rollup/plugin-terser": "^0.4.4", - "@types/jsdom": "^21.1.6", - "@types/nightwatch": "^2.3.30", - "@vitejs/plugin-vue": "^5.0.4", + "@types/jsdom": "^21.1.7", + "@types/nightwatch": "^2.3.31", + "@vitejs/plugin-vue": "^5.0.5", "@vitest/coverage-v8": "^1.6.0", "@vitest/ui": "^1.6.0", - "@vue/compiler-sfc": "^3.4.23", - "@vue/server-renderer": "^3.4.23", - "@vue/test-utils": "^2.4.4", + "@vue/compiler-sfc": "^3.4.29", + "@vue/server-renderer": "^3.4.29", + "@vue/test-utils": "^2.4.6", "browserstack-local": "^1.5.5", "chromedriver": "^121.0.2", "connect-history-api-fallback": "^1.6.0", @@ -138,6 +138,7 @@ "dotenv": "^16.4.5", "faked-promise": "^2.2.2", "geckodriver": "^3.2.0", + "happy-dom": "^14.12.3", "nightwatch": "^2.6.22", "nightwatch-helpers": "^1.2.0", "rimraf": "^5.0.7", @@ -145,8 +146,8 @@ "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-typescript2": "^0.36.0", "typescript": "~5.3.3", - "vite": "^5.2.9", + "vite": "^5.3.1", "vitest": "^1.6.0", - "vue": "^3.4.23" + "vue": "^3.4.29" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ab6826dd..1426778ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -69,18 +69,18 @@ importers: packages/playground: dependencies: vue: - specifier: ^3.4.23 - version: 3.4.23(typescript@5.3.3) + specifier: ^3.4.29 + version: 3.4.29(typescript@5.3.3) devDependencies: '@types/node': specifier: ^20.12.7 version: 20.12.7 '@vitejs/plugin-vue': - specifier: ^5.0.4 - version: 5.0.4(vite@5.2.9(@types/node@20.12.7)(terser@5.31.1))(vue@3.4.23(typescript@5.3.3)) + specifier: ^5.0.5 + version: 5.0.5(vite@5.3.1(@types/node@20.12.7)(terser@5.31.1))(vue@3.4.29(typescript@5.3.3)) '@vue/compiler-sfc': - specifier: ^3.4.23 - version: 3.4.23 + specifier: ^3.4.29 + version: 3.4.29 '@vue/tsconfig': specifier: ^0.5.1 version: 0.5.1 @@ -88,20 +88,20 @@ importers: specifier: ~5.3.3 version: 5.3.3 vite: - specifier: ^5.2.9 - version: 5.2.9(@types/node@20.12.7)(terser@5.31.1) + specifier: ^5.3.1 + version: 5.3.1(@types/node@20.12.7)(terser@5.31.1) vue-router: specifier: workspace:* version: link:../router vue-tsc: - specifier: ^1.8.27 - version: 1.8.27(typescript@5.3.3) + specifier: ^2.0.21 + version: 2.0.21(typescript@5.3.3) packages/router: dependencies: '@vue/devtools-api': - specifier: ^6.5.1 - version: 6.5.1 + specifier: ^6.6.3 + version: 6.6.3 devDependencies: '@microsoft/api-extractor': specifier: ^7.40.1 @@ -122,29 +122,29 @@ importers: specifier: ^0.4.4 version: 0.4.4(rollup@3.29.4) '@types/jsdom': - specifier: ^21.1.6 - version: 21.1.6 + specifier: ^21.1.7 + version: 21.1.7 '@types/nightwatch': - specifier: ^2.3.30 - version: 2.3.30 + specifier: ^2.3.31 + version: 2.3.31 '@vitejs/plugin-vue': - specifier: ^5.0.4 - version: 5.0.4(vite@5.2.9(@types/node@20.14.7)(terser@5.31.1))(vue@3.4.23(typescript@5.3.3)) + specifier: ^5.0.5 + version: 5.0.5(vite@5.3.1(@types/node@20.14.7)(terser@5.31.1))(vue@3.4.29(typescript@5.3.3)) '@vitest/coverage-v8': specifier: ^1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(jsdom@24.1.0)(terser@5.31.1)) + version: 1.6.0(vitest@1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(happy-dom@14.12.3)(jsdom@24.1.0)(terser@5.31.1)) '@vitest/ui': specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) '@vue/compiler-sfc': - specifier: ^3.4.23 - version: 3.4.23 + specifier: ^3.4.29 + version: 3.4.29 '@vue/server-renderer': - specifier: ^3.4.23 - version: 3.4.23(vue@3.4.23(typescript@5.3.3)) + specifier: ^3.4.29 + version: 3.4.29(vue@3.4.29(typescript@5.3.3)) '@vue/test-utils': - specifier: ^2.4.4 - version: 2.4.4(@vue/server-renderer@3.4.23(vue@3.4.23(typescript@5.3.3)))(vue@3.4.23(typescript@5.3.3)) + specifier: ^2.4.6 + version: 2.4.6 browserstack-local: specifier: ^1.5.5 version: 1.5.5 @@ -166,6 +166,9 @@ importers: geckodriver: specifier: ^3.2.0 version: 3.2.0 + happy-dom: + specifier: ^14.12.3 + version: 14.12.3 nightwatch: specifier: ^2.6.22 version: 2.6.24(chromedriver@121.0.2)(geckodriver@3.2.0) @@ -188,14 +191,14 @@ importers: specifier: ~5.3.3 version: 5.3.3 vite: - specifier: ^5.2.9 - version: 5.2.9(@types/node@20.14.7)(terser@5.31.1) + specifier: ^5.3.1 + version: 5.3.1(@types/node@20.14.7)(terser@5.31.1) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(jsdom@24.1.0)(terser@5.31.1) + version: 1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(happy-dom@14.12.3)(jsdom@24.1.0)(terser@5.31.1) vue: - specifier: ^3.4.23 - version: 3.4.23(typescript@5.3.3) + specifier: ^3.4.29 + version: 3.4.29(typescript@5.3.3) packages: @@ -292,11 +295,6 @@ packages: resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.4': - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.24.7': resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} engines: {node: '>=6.0.0'} @@ -340,276 +338,138 @@ packages: search-insights: optional: true - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} @@ -773,161 +633,81 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.14.3': - resolution: {integrity: sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.18.0': resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.14.3': - resolution: {integrity: sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.18.0': resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.14.3': - resolution: {integrity: sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.18.0': resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.14.3': - resolution: {integrity: sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.18.0': resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.14.3': - resolution: {integrity: sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.14.3': - resolution: {integrity: sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.18.0': resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.14.3': - resolution: {integrity: sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.18.0': resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.14.3': - resolution: {integrity: sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.18.0': resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.14.3': - resolution: {integrity: sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.14.3': - resolution: {integrity: sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.18.0': resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.14.3': - resolution: {integrity: sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.18.0': resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.14.3': - resolution: {integrity: sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.18.0': resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.14.3': - resolution: {integrity: sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.18.0': resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.14.3': - resolution: {integrity: sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.18.0': resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.14.3': - resolution: {integrity: sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.18.0': resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.14.3': - resolution: {integrity: sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.18.0': resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} cpu: [x64] @@ -988,8 +768,8 @@ packages: '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - '@types/chai@4.3.5': - resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + '@types/chai@4.3.16': + resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} '@types/estree@1.0.1': resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} @@ -1000,8 +780,8 @@ packages: '@types/http-cache-semantics@4.0.1': resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} - '@types/jsdom@21.1.6': - resolution: {integrity: sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==} + '@types/jsdom@21.1.7': + resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==} '@types/keyv@3.1.4': resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} @@ -1018,11 +798,8 @@ packages: '@types/minimist@1.2.2': resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - '@types/nightwatch@2.3.30': - resolution: {integrity: sha512-TiVGKR9mORwx0nN3ylonXp2IobpQoZxwV63IjABYkxsEpNauHL8GU9kmceEThjqDUigKaeh6aPOqepwC4bwCfA==} - - '@types/node@20.11.19': - resolution: {integrity: sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==} + '@types/nightwatch@2.3.31': + resolution: {integrity: sha512-DqkgFUNhIEbO09RfsRZtFdr2cOP1TbtNDHp0RUKiVYG0mIEBQfYGBtNCH8UWEuCspMD3yhqBd+WeBdsTzQpfHQ==} '@types/node@20.12.7': resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} @@ -1039,17 +816,17 @@ packages: '@types/responselike@1.0.0': resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} - '@types/selenium-webdriver@4.1.16': - resolution: {integrity: sha512-ETje9rr7nTrD0r/mNnIuCAF7fAZ2xKE/1WyxXZZH9N9Cy2NKJTrpEd7SCdzuIlm/1iu1gjHCVbaDwT+MuDrVZg==} + '@types/selenium-webdriver@4.1.23': + resolution: {integrity: sha512-PgreEfCfafYLyTwvJTZvOspCq3JABnS51e+NSFFL5yoiMO7h04lWgLfr10NA7nl/yZbz4m76rBfOOdDfleb7pQ==} - '@types/tough-cookie@4.0.2': - resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - '@types/ws@8.5.5': - resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -1057,13 +834,6 @@ packages: '@ungap/promise-all-settled@1.1.2': resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - '@vitejs/plugin-vue@5.0.4': - resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 - vue: ^3.2.25 - '@vitejs/plugin-vue@5.0.5': resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -1096,41 +866,29 @@ packages: '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - '@volar/language-core@1.11.1': - resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} - - '@volar/source-map@1.11.1': - resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + '@volar/language-core@2.3.0': + resolution: {integrity: sha512-pvhL24WUh3VDnv7Yw5N1sjhPtdx7q9g+Wl3tggmnkMcyK8GcCNElF2zHiKznryn0DiUGk+eez/p2qQhz+puuHw==} - '@volar/typescript@1.11.1': - resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + '@volar/source-map@2.3.0': + resolution: {integrity: sha512-G/228aZjAOGhDjhlyZ++nDbKrS9uk+5DMaEstjvzglaAw7nqtDyhnQAsYzUg6BMP9BtwZ59RIw5HGePrutn00Q==} - '@vue/compiler-core@3.4.23': - resolution: {integrity: sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==} + '@volar/typescript@2.3.0': + resolution: {integrity: sha512-PtUwMM87WsKVeLJN33GSTUjBexlKfKgouWlOUIv7pjrOnTwhXHZNSmpc312xgXdTjQPpToK6KXSIcKu9sBQ5LQ==} '@vue/compiler-core@3.4.29': resolution: {integrity: sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==} - '@vue/compiler-dom@3.4.23': - resolution: {integrity: sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==} - '@vue/compiler-dom@3.4.29': resolution: {integrity: sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==} - '@vue/compiler-sfc@3.4.23': - resolution: {integrity: sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==} - '@vue/compiler-sfc@3.4.29': resolution: {integrity: sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==} - '@vue/compiler-ssr@3.4.23': - resolution: {integrity: sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==} - '@vue/compiler-ssr@3.4.29': resolution: {integrity: sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==} - '@vue/devtools-api@6.5.1': - resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} + '@vue/devtools-api@6.6.3': + resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} '@vue/devtools-api@7.3.2': resolution: {integrity: sha512-qFCm12te9rG0XWLCHm3x8TiZLULEP5s7Ruaadi5jAogwZ5qF7QH7tKc6yXZGV96uM+y1FUlbK+QwVbWgMfXEhQ==} @@ -1141,56 +899,33 @@ packages: '@vue/devtools-shared@7.3.2': resolution: {integrity: sha512-RpYfqStbzljD6zf9LPXF2T7kM3fMfepxJB5yjzyloFel5nEB49DUm4TeA426IH+hKvwjjRorZyh6CT1cG/H2Vw==} - '@vue/language-core@1.8.27': - resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + '@vue/language-core@2.0.21': + resolution: {integrity: sha512-vjs6KwnCK++kIXT+eI63BGpJHfHNVJcUCr3RnvJsccT3vbJnZV5IhHR2puEkoOkIbDdp0Gqi1wEnv3hEd3WsxQ==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@vue/reactivity@3.4.23': - resolution: {integrity: sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==} - '@vue/reactivity@3.4.29': resolution: {integrity: sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==} - '@vue/runtime-core@3.4.23': - resolution: {integrity: sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==} - '@vue/runtime-core@3.4.29': resolution: {integrity: sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==} - '@vue/runtime-dom@3.4.23': - resolution: {integrity: sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==} - '@vue/runtime-dom@3.4.29': resolution: {integrity: sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==} - '@vue/server-renderer@3.4.23': - resolution: {integrity: sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==} - peerDependencies: - vue: 3.4.23 - '@vue/server-renderer@3.4.29': resolution: {integrity: sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==} peerDependencies: vue: 3.4.29 - '@vue/shared@3.4.23': - resolution: {integrity: sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==} - '@vue/shared@3.4.29': resolution: {integrity: sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==} - '@vue/test-utils@2.4.4': - resolution: {integrity: sha512-8jkRxz8pNhClAf4Co4ZrpAoFISdvT3nuSkUlY6Ys6rmTpw3DMWG/X3mw3gQ7QJzgCZO9f+zuE2kW57fi09MW7Q==} - peerDependencies: - '@vue/server-renderer': ^3.0.1 - vue: ^3.0.1 - peerDependenciesMeta: - '@vue/server-renderer': - optional: true + '@vue/test-utils@2.4.6': + resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==} '@vue/tsconfig@0.5.1': resolution: {integrity: sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==} @@ -1895,11 +1630,6 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -2045,10 +1775,6 @@ packages: debug: optional: true - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - foreground-child@3.2.1: resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} @@ -2147,11 +1873,6 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - glob@10.4.2: resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} engines: {node: '>=16 || 14 >=14.18'} @@ -2187,6 +1908,10 @@ packages: engines: {node: '>=0.4.7'} hasBin: true + happy-dom@14.12.3: + resolution: {integrity: sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==} + engines: {node: '>=16.0.0'} + hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} @@ -2441,10 +2166,6 @@ packages: resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - jackspeak@3.4.0: resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} engines: {node: '>=14'} @@ -2457,11 +2178,15 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - js-beautify@1.14.11: - resolution: {integrity: sha512-rPogWqAfoYh1Ryqqh2agUpVfbxAhbjuN1SmU86dskQUKouRiggUTCO4+2ym9UPXllc2WAp0J+T5qxn7Um3lCdw==} + js-beautify@1.15.1: + resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==} engines: {node: '>=14'} hasBin: true + js-cookie@3.0.5: + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -2649,10 +2374,6 @@ packages: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} - lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} - engines: {node: 14 || >=16.14} - lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} @@ -2792,10 +2513,6 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} - minipass@7.0.3: - resolution: {integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==} - engines: {node: '>=16 || 14 >=14.17'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -2837,8 +2554,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - muggle-string@0.3.1: - resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} nanoid@3.3.1: resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} @@ -2875,8 +2592,8 @@ packages: geckodriver: optional: true - nopt@7.2.0: - resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} + nopt@7.2.1: + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true @@ -3038,10 +2755,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -3072,6 +2785,9 @@ packages: picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -3271,11 +2987,6 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.14.3: - resolution: {integrity: sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.18.0: resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -3332,11 +3043,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.2: resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} @@ -3751,34 +3457,6 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite@5.2.9: - resolution: {integrity: sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vite@5.3.1: resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -3857,8 +3535,11 @@ packages: vscode-textmate@8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - vue-component-type-helpers@1.8.27: - resolution: {integrity: sha512-0vOfAtI67UjeO1G6UiX5Kd76CqaQ67wrRZiOe7UAb9Jm6GzlUr/fC7CV90XfwapJRjpCMaZFhv1V0ajWRmE9Dg==} + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + vue-component-type-helpers@2.0.21: + resolution: {integrity: sha512-3NaicyZ7N4B6cft4bfb7dOnPbE9CjLcx+6wZWAg5zwszfO4qXRh+U52dN5r5ZZfc6iMaxKCEcoH9CmxxoFZHLg==} vue-demi@0.14.8: resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} @@ -3874,20 +3555,12 @@ packages: vue-template-compiler@2.7.16: resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - vue-tsc@1.8.27: - resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + vue-tsc@2.0.21: + resolution: {integrity: sha512-E6x1p1HaHES6Doy8pqtm7kQern79zRtIewkf9fiv7Y43Zo4AFDS5hKi+iHi2RwEhqRmuiwliB1LCEFEGwvxQnw==} hasBin: true peerDependencies: typescript: '*' - vue@3.4.23: - resolution: {integrity: sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - vue@3.4.29: resolution: {integrity: sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==} peerDependencies: @@ -4202,14 +3875,10 @@ snapshots: '@babel/highlight@7.22.10': dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - '@babel/parser@7.24.4': - dependencies: - '@babel/types': 7.24.0 - '@babel/parser@7.24.7': dependencies: '@babel/types': 7.24.7 @@ -4255,141 +3924,72 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@esbuild/aix-ppc64@0.20.2': - optional: true - '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/android-arm64@0.20.2': - optional: true - '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm@0.20.2': - optional: true - '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-x64@0.20.2': - optional: true - '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.20.2': - optional: true - '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-x64@0.20.2': - optional: true - '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.20.2': - optional: true - '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.20.2': - optional: true - '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/linux-arm64@0.20.2': - optional: true - '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm@0.20.2': - optional: true - '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-ia32@0.20.2': - optional: true - '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-loong64@0.20.2': - optional: true - '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-mips64el@0.20.2': - optional: true - '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-ppc64@0.20.2': - optional: true - '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.20.2': - optional: true - '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-s390x@0.20.2': - optional: true - '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-x64@0.20.2': - optional: true - '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.20.2': - optional: true - '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.20.2': - optional: true - '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.20.2': - optional: true - '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/win32-arm64@0.20.2': - optional: true - '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-ia32@0.20.2': - optional: true - '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-x64@0.20.2': - optional: true - '@esbuild/win32-x64@0.21.5': optional: true @@ -4581,99 +4181,51 @@ snapshots: optionalDependencies: rollup: 3.29.4 - '@rollup/rollup-android-arm-eabi@4.14.3': - optional: true - '@rollup/rollup-android-arm-eabi@4.18.0': optional: true - '@rollup/rollup-android-arm64@4.14.3': - optional: true - '@rollup/rollup-android-arm64@4.18.0': optional: true - '@rollup/rollup-darwin-arm64@4.14.3': - optional: true - '@rollup/rollup-darwin-arm64@4.18.0': optional: true - '@rollup/rollup-darwin-x64@4.14.3': - optional: true - '@rollup/rollup-darwin-x64@4.18.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.14.3': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.14.3': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.14.3': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.14.3': - optional: true - '@rollup/rollup-linux-arm64-musl@4.18.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.14.3': - optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.14.3': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.14.3': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.14.3': - optional: true - '@rollup/rollup-linux-x64-gnu@4.18.0': optional: true - '@rollup/rollup-linux-x64-musl@4.14.3': - optional: true - '@rollup/rollup-linux-x64-musl@4.18.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.14.3': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.14.3': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.14.3': - optional: true - '@rollup/rollup-win32-x64-msvc@4.18.0': optional: true @@ -4734,7 +4286,7 @@ snapshots: '@types/node': 20.12.7 '@types/responselike': 1.0.0 - '@types/chai@4.3.5': {} + '@types/chai@4.3.16': {} '@types/estree@1.0.1': {} @@ -4742,10 +4294,10 @@ snapshots: '@types/http-cache-semantics@4.0.1': {} - '@types/jsdom@21.1.6': + '@types/jsdom@21.1.7': dependencies: - '@types/node': 20.11.19 - '@types/tough-cookie': 4.0.2 + '@types/node': 20.14.7 + '@types/tough-cookie': 4.0.5 parse5: 7.1.2 '@types/keyv@3.1.4': @@ -4763,16 +4315,13 @@ snapshots: '@types/minimist@1.2.2': {} - '@types/nightwatch@2.3.30': + '@types/nightwatch@2.3.31': dependencies: - '@types/chai': 4.3.5 - '@types/selenium-webdriver': 4.1.16 + '@types/chai': 4.3.16 + '@types/node': 20.14.7 + '@types/selenium-webdriver': 4.1.23 devtools-protocol: 0.0.1025565 - '@types/node@20.11.19': - dependencies: - undici-types: 5.26.5 - '@types/node@20.12.7': dependencies: undici-types: 5.26.5 @@ -4780,7 +4329,6 @@ snapshots: '@types/node@20.14.7': dependencies: undici-types: 5.26.5 - optional: true '@types/normalize-package-data@2.4.1': {} @@ -4790,17 +4338,18 @@ snapshots: dependencies: '@types/node': 20.12.7 - '@types/selenium-webdriver@4.1.16': + '@types/selenium-webdriver@4.1.23': dependencies: - '@types/ws': 8.5.5 + '@types/node': 20.14.7 + '@types/ws': 8.5.10 - '@types/tough-cookie@4.0.2': {} + '@types/tough-cookie@4.0.5': {} '@types/web-bluetooth@0.0.20': {} - '@types/ws@8.5.5': + '@types/ws@8.5.10': dependencies: - '@types/node': 20.12.7 + '@types/node': 20.14.7 '@types/yauzl@2.10.3': dependencies: @@ -4809,22 +4358,22 @@ snapshots: '@ungap/promise-all-settled@1.1.2': {} - '@vitejs/plugin-vue@5.0.4(vite@5.2.9(@types/node@20.12.7)(terser@5.31.1))(vue@3.4.23(typescript@5.3.3))': + '@vitejs/plugin-vue@5.0.5(vite@5.3.1(@types/node@20.12.7)(terser@5.31.1))(vue@3.4.29(typescript@5.3.3))': dependencies: - vite: 5.2.9(@types/node@20.12.7)(terser@5.31.1) - vue: 3.4.23(typescript@5.3.3) + vite: 5.3.1(@types/node@20.12.7)(terser@5.31.1) + vue: 3.4.29(typescript@5.3.3) - '@vitejs/plugin-vue@5.0.4(vite@5.2.9(@types/node@20.14.7)(terser@5.31.1))(vue@3.4.23(typescript@5.3.3))': + '@vitejs/plugin-vue@5.0.5(vite@5.3.1(@types/node@20.14.7)(terser@5.31.1))(vue@3.4.29(typescript@5.3.3))': dependencies: - vite: 5.2.9(@types/node@20.14.7)(terser@5.31.1) - vue: 3.4.23(typescript@5.3.3) + vite: 5.3.1(@types/node@20.14.7)(terser@5.31.1) + vue: 3.4.29(typescript@5.3.3) '@vitejs/plugin-vue@5.0.5(vite@5.3.1(@types/node@20.14.7)(terser@5.31.1))(vue@3.4.29(typescript@5.5.2))': dependencies: vite: 5.3.1(@types/node@20.14.7)(terser@5.31.1) vue: 3.4.29(typescript@5.5.2) - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(jsdom@24.1.0)(terser@5.31.1))': + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(happy-dom@14.12.3)(jsdom@24.1.0)(terser@5.31.1))': dependencies: '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 @@ -4839,7 +4388,7 @@ snapshots: std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(jsdom@24.1.0)(terser@5.31.1) + vitest: 1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(happy-dom@14.12.3)(jsdom@24.1.0)(terser@5.31.1) transitivePeerDependencies: - supports-color @@ -4874,7 +4423,7 @@ snapshots: pathe: 1.1.2 picocolors: 1.0.0 sirv: 2.0.4 - vitest: 1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(jsdom@24.1.0)(terser@5.31.1) + vitest: 1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(happy-dom@14.12.3)(jsdom@24.1.0)(terser@5.31.1) '@vitest/utils@1.6.0': dependencies: @@ -4883,26 +4432,19 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 - '@volar/language-core@1.11.1': + '@volar/language-core@2.3.0': dependencies: - '@volar/source-map': 1.11.1 + '@volar/source-map': 2.3.0 - '@volar/source-map@1.11.1': + '@volar/source-map@2.3.0': dependencies: - muggle-string: 0.3.1 + muggle-string: 0.4.1 - '@volar/typescript@1.11.1': + '@volar/typescript@2.3.0': dependencies: - '@volar/language-core': 1.11.1 + '@volar/language-core': 2.3.0 path-browserify: 1.0.1 - - '@vue/compiler-core@3.4.23': - dependencies: - '@babel/parser': 7.24.4 - '@vue/shared': 3.4.23 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 + vscode-uri: 3.0.8 '@vue/compiler-core@3.4.29': dependencies: @@ -4912,28 +4454,11 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.23': - dependencies: - '@vue/compiler-core': 3.4.23 - '@vue/shared': 3.4.23 - '@vue/compiler-dom@3.4.29': dependencies: '@vue/compiler-core': 3.4.29 '@vue/shared': 3.4.29 - '@vue/compiler-sfc@3.4.23': - dependencies: - '@babel/parser': 7.24.4 - '@vue/compiler-core': 3.4.23 - '@vue/compiler-dom': 3.4.23 - '@vue/compiler-ssr': 3.4.23 - '@vue/shared': 3.4.23 - estree-walker: 2.0.2 - magic-string: 0.30.9 - postcss: 8.4.38 - source-map-js: 1.2.0 - '@vue/compiler-sfc@3.4.29': dependencies: '@babel/parser': 7.24.7 @@ -4946,17 +4471,12 @@ snapshots: postcss: 8.4.38 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.4.23': - dependencies: - '@vue/compiler-dom': 3.4.23 - '@vue/shared': 3.4.23 - '@vue/compiler-ssr@3.4.29': dependencies: '@vue/compiler-dom': 3.4.29 '@vue/shared': 3.4.29 - '@vue/devtools-api@6.5.1': {} + '@vue/devtools-api@6.6.3': {} '@vue/devtools-api@7.3.2': dependencies: @@ -4976,44 +4496,27 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@1.8.27(typescript@5.3.3)': + '@vue/language-core@2.0.21(typescript@5.3.3)': dependencies: - '@volar/language-core': 1.11.1 - '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.4.23 - '@vue/shared': 3.4.23 + '@volar/language-core': 2.3.0 + '@vue/compiler-dom': 3.4.29 + '@vue/shared': 3.4.29 computeds: 0.0.1 - minimatch: 9.0.3 - muggle-string: 0.3.1 + minimatch: 9.0.4 path-browserify: 1.0.1 vue-template-compiler: 2.7.16 optionalDependencies: typescript: 5.3.3 - '@vue/reactivity@3.4.23': - dependencies: - '@vue/shared': 3.4.23 - '@vue/reactivity@3.4.29': dependencies: '@vue/shared': 3.4.29 - '@vue/runtime-core@3.4.23': - dependencies: - '@vue/reactivity': 3.4.23 - '@vue/shared': 3.4.23 - '@vue/runtime-core@3.4.29': dependencies: '@vue/reactivity': 3.4.29 '@vue/shared': 3.4.29 - '@vue/runtime-dom@3.4.23': - dependencies: - '@vue/runtime-core': 3.4.23 - '@vue/shared': 3.4.23 - csstype: 3.1.3 - '@vue/runtime-dom@3.4.29': dependencies: '@vue/reactivity': 3.4.29 @@ -5021,11 +4524,11 @@ snapshots: '@vue/shared': 3.4.29 csstype: 3.1.3 - '@vue/server-renderer@3.4.23(vue@3.4.23(typescript@5.3.3))': + '@vue/server-renderer@3.4.29(vue@3.4.29(typescript@5.3.3))': dependencies: - '@vue/compiler-ssr': 3.4.23 - '@vue/shared': 3.4.23 - vue: 3.4.23(typescript@5.3.3) + '@vue/compiler-ssr': 3.4.29 + '@vue/shared': 3.4.29 + vue: 3.4.29(typescript@5.3.3) '@vue/server-renderer@3.4.29(vue@3.4.29(typescript@5.5.2))': dependencies: @@ -5033,17 +4536,12 @@ snapshots: '@vue/shared': 3.4.29 vue: 3.4.29(typescript@5.5.2) - '@vue/shared@3.4.23': {} - '@vue/shared@3.4.29': {} - '@vue/test-utils@2.4.4(@vue/server-renderer@3.4.23(vue@3.4.23(typescript@5.3.3)))(vue@3.4.23(typescript@5.3.3))': + '@vue/test-utils@2.4.6': dependencies: - js-beautify: 1.14.11 - vue: 3.4.23(typescript@5.3.3) - vue-component-type-helpers: 1.8.27 - optionalDependencies: - '@vue/server-renderer': 3.4.23(vue@3.4.23(typescript@5.3.3)) + js-beautify: 1.15.1 + vue-component-type-helpers: 2.0.21 '@vue/tsconfig@0.5.1': {} @@ -5738,32 +5236,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - esbuild@0.20.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -5948,11 +5420,6 @@ snapshots: follow-redirects@1.15.6: optional: true - foreground-child@3.1.1: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - foreground-child@3.2.1: dependencies: cross-spawn: 7.0.3 @@ -6055,14 +5522,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.3.10: - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.3 - path-scurry: 1.10.1 - glob@10.4.2: dependencies: foreground-child: 3.2.1 @@ -6134,6 +5593,12 @@ snapshots: optionalDependencies: uglify-js: 3.17.4 + happy-dom@14.12.3: + dependencies: + entities: 4.5.0 + webidl-conversions: 7.0.0 + whatwg-mimetype: 3.0.0 + hard-rejection@2.1.0: {} has-flag@3.0.0: {} @@ -6349,12 +5814,6 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jackspeak@2.3.6: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - jackspeak@3.4.0: dependencies: '@isaacs/cliui': 8.0.2 @@ -6370,12 +5829,15 @@ snapshots: jju@1.4.0: {} - js-beautify@1.14.11: + js-beautify@1.15.1: dependencies: config-chain: 1.1.13 editorconfig: 1.0.4 - glob: 10.3.10 - nopt: 7.2.0 + glob: 10.4.2 + js-cookie: 3.0.5 + nopt: 7.2.1 + + js-cookie@3.0.5: {} js-tokens@4.0.0: {} @@ -6625,8 +6087,6 @@ snapshots: lowercase-keys@2.0.0: {} - lru-cache@10.0.1: {} - lru-cache@10.2.2: {} lru-cache@4.1.5: @@ -6654,7 +6114,7 @@ snapshots: magicast@0.3.4: dependencies: - '@babel/parser': 7.24.4 + '@babel/parser': 7.24.7 '@babel/types': 7.24.0 source-map-js: 1.2.0 @@ -6758,8 +6218,6 @@ snapshots: dependencies: yallist: 4.0.0 - minipass@7.0.3: {} - minipass@7.1.2: {} minisearch@6.3.0: {} @@ -6815,7 +6273,7 @@ snapshots: ms@2.1.3: {} - muggle-string@0.3.1: {} + muggle-string@0.4.1: {} nanoid@3.3.1: {} @@ -6872,7 +6330,7 @@ snapshots: - supports-color - utf-8-validate - nopt@7.2.0: + nopt@7.2.1: dependencies: abbrev: 2.0.0 @@ -7021,11 +6479,6 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.10.1: - dependencies: - lru-cache: 10.0.1 - minipass: 7.0.3 - path-scurry@1.11.1: dependencies: lru-cache: 10.2.2 @@ -7051,6 +6504,8 @@ snapshots: picocolors@1.0.0: {} + picocolors@1.0.1: {} + picomatch@2.3.1: {} pidtree@0.6.0: {} @@ -7072,7 +6527,7 @@ snapshots: postcss@8.4.38: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 preact@10.22.0: {} @@ -7246,28 +6701,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.14.3: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.14.3 - '@rollup/rollup-android-arm64': 4.14.3 - '@rollup/rollup-darwin-arm64': 4.14.3 - '@rollup/rollup-darwin-x64': 4.14.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.14.3 - '@rollup/rollup-linux-arm-musleabihf': 4.14.3 - '@rollup/rollup-linux-arm64-gnu': 4.14.3 - '@rollup/rollup-linux-arm64-musl': 4.14.3 - '@rollup/rollup-linux-powerpc64le-gnu': 4.14.3 - '@rollup/rollup-linux-riscv64-gnu': 4.14.3 - '@rollup/rollup-linux-s390x-gnu': 4.14.3 - '@rollup/rollup-linux-x64-gnu': 4.14.3 - '@rollup/rollup-linux-x64-musl': 4.14.3 - '@rollup/rollup-win32-arm64-msvc': 4.14.3 - '@rollup/rollup-win32-ia32-msvc': 4.14.3 - '@rollup/rollup-win32-x64-msvc': 4.14.3 - fsevents: 2.3.3 - rollup@4.18.0: dependencies: '@types/estree': 1.0.5 @@ -7338,10 +6771,6 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.6.0: - dependencies: - lru-cache: 6.0.0 - semver@7.6.2: {} serialize-javascript@6.0.0: @@ -7724,7 +7153,7 @@ snapshots: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.9(@types/node@20.14.7)(terser@5.31.1) + vite: 5.3.1(@types/node@20.14.7)(terser@5.31.1) transitivePeerDependencies: - '@types/node' - less @@ -7735,26 +7164,16 @@ snapshots: - supports-color - terser - vite@5.2.9(@types/node@20.12.7)(terser@5.31.1): + vite@5.3.1(@types/node@20.12.7)(terser@5.31.1): dependencies: - esbuild: 0.20.2 + esbuild: 0.21.5 postcss: 8.4.38 - rollup: 4.14.3 + rollup: 4.18.0 optionalDependencies: '@types/node': 20.12.7 fsevents: 2.3.3 terser: 5.31.1 - vite@5.2.9(@types/node@20.14.7)(terser@5.31.1): - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.14.3 - optionalDependencies: - '@types/node': 20.14.7 - fsevents: 2.3.3 - terser: 5.31.1 - vite@5.3.1(@types/node@20.14.7)(terser@5.31.1): dependencies: esbuild: 0.21.5 @@ -7821,7 +7240,7 @@ snapshots: - typescript - universal-cookie - vitest@1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(jsdom@24.1.0)(terser@5.31.1): + vitest@1.6.0(@types/node@20.14.7)(@vitest/ui@1.6.0)(happy-dom@14.12.3)(jsdom@24.1.0)(terser@5.31.1): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -7840,12 +7259,13 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.2.9(@types/node@20.14.7)(terser@5.31.1) + vite: 5.3.1(@types/node@20.14.7)(terser@5.31.1) vite-node: 1.6.0(@types/node@20.14.7)(terser@5.31.1) why-is-node-running: 2.2.2 optionalDependencies: '@types/node': 20.14.7 '@vitest/ui': 1.6.0(vitest@1.6.0) + happy-dom: 14.12.3 jsdom: 24.1.0 transitivePeerDependencies: - less @@ -7860,7 +7280,9 @@ snapshots: vscode-textmate@8.0.0: {} - vue-component-type-helpers@1.8.27: {} + vscode-uri@3.0.8: {} + + vue-component-type-helpers@2.0.21: {} vue-demi@0.14.8(vue@3.4.29(typescript@5.5.2)): dependencies: @@ -7871,20 +7293,20 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - vue-tsc@1.8.27(typescript@5.3.3): + vue-tsc@2.0.21(typescript@5.3.3): dependencies: - '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.27(typescript@5.3.3) - semver: 7.6.0 + '@volar/typescript': 2.3.0 + '@vue/language-core': 2.0.21(typescript@5.3.3) + semver: 7.6.2 typescript: 5.3.3 - vue@3.4.23(typescript@5.3.3): + vue@3.4.29(typescript@5.3.3): dependencies: - '@vue/compiler-dom': 3.4.23 - '@vue/compiler-sfc': 3.4.23 - '@vue/runtime-dom': 3.4.23 - '@vue/server-renderer': 3.4.23(vue@3.4.23(typescript@5.3.3)) - '@vue/shared': 3.4.23 + '@vue/compiler-dom': 3.4.29 + '@vue/compiler-sfc': 3.4.29 + '@vue/runtime-dom': 3.4.29 + '@vue/server-renderer': 3.4.29(vue@3.4.29(typescript@5.3.3)) + '@vue/shared': 3.4.29 optionalDependencies: typescript: 5.3.3 From 0cb57971efd767777011e872e9cc327e0a0da79f Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Fri, 21 Jun 2024 15:58:51 +0200 Subject: [PATCH 02/24] feat(warn): fix links to docs --- packages/router/src/history/html5.ts | 2 +- packages/router/src/matcher/index.ts | 2 +- packages/router/src/router.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/router/src/history/html5.ts b/packages/router/src/history/html5.ts index 9388e8f24..0f7a169a5 100644 --- a/packages/router/src/history/html5.ts +++ b/packages/router/src/history/html5.ts @@ -280,7 +280,7 @@ function useHistoryStateNavigation(base: string) { warn( `history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\n\n` + `history.replaceState(history.state, '', url)\n\n` + - `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.` + `You can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state` ) } diff --git a/packages/router/src/matcher/index.ts b/packages/router/src/matcher/index.ts index 0d67061d3..da9e821f3 100644 --- a/packages/router/src/matcher/index.ts +++ b/packages/router/src/matcher/index.ts @@ -133,7 +133,7 @@ export function createRouterMatcher( if (__DEV__ && normalizedRecord.path === '*') { throw new Error( 'Catch all routes ("*") must now be defined using a param with a custom regexp.\n' + - 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.' + 'See more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.' ) } diff --git a/packages/router/src/router.ts b/packages/router/src/router.ts index da33e976d..1906ba452 100644 --- a/packages/router/src/router.ts +++ b/packages/router/src/router.ts @@ -390,7 +390,7 @@ export function createRouter(options: RouterOptions): Router { if (__DEV__ && !routerHistory) throw new Error( 'Provide the "history" option when calling "createRouter()":' + - ' https://next.router.vuejs.org/api/#history.' + ' https://router.vuejs.org/api/interfaces/RouterOptions.html#history' ) const beforeGuards = useCallbacks>() From dc9aef3206fc2ff51bb4332dd2b4e176e210cb01 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Wed, 26 Jun 2024 14:32:46 +0200 Subject: [PATCH 03/24] chore: update badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 578d76d97..a61d7142d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# vue-router [![release candidate](https://img.shields.io/npm/v/vue-router.svg)](https://www.npmjs.com/package/vue-router) [![test](https://github.com/vuejs/router/actions/workflows/test.yml/badge.svg)](https://github.com/vuejs/router/actions/workflows/test.yml) +# vue-router [![release candidate](https://img.shields.io/npm/v/vue-router.svg)](https://www.npmjs.com/package/vue-router) [![test](https://github.com/vuejs/router/actions/workflows/test.yml/badge.svg)](https://github.com/vuejs/router/actions/workflows/test.yml) [![codecov](https://codecov.io/gh/vuejs/router/graph/badge.svg?token=azNM3FI0d1)](https://codecov.io/gh/vuejs/router) > - This is the repository for Vue Router 4 (for Vue 3) > - For Vue Router 3 (for Vue 2) see [vuejs/vue-router](https://github.com/vuejs/vue-router). From accea8e2434654706b432711d48b6ba57383458b Mon Sep 17 00:00:00 2001 From: Curt Grimes Date: Sat, 29 Jun 2024 10:04:58 -0500 Subject: [PATCH 04/24] docs: fix punctuation (#2286) Fix punctuation and comma splices in a few spots. --- packages/docs/guide/advanced/dynamic-routing.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/docs/guide/advanced/dynamic-routing.md b/packages/docs/guide/advanced/dynamic-routing.md index d8d83b792..5488b2fa3 100644 --- a/packages/docs/guide/advanced/dynamic-routing.md +++ b/packages/docs/guide/advanced/dynamic-routing.md @@ -5,7 +5,7 @@ title="Learn how to add routes at runtime" /> -Adding routes to your router is usually done via the `routes` option but in some situations, you might want to add or remove routes while the application is already running. Application with extensible interfaces like [Vue CLI UI](https://cli.vuejs.org/dev-guide/ui-api.html) can use this to make the application grow. +Adding routes to your router is usually done via the `routes` option but in some situations, you might want to add or remove routes while the application is already running. Applications with extensible interfaces like [Vue CLI UI](https://cli.vuejs.org/dev-guide/ui-api.html) can use this to make the application grow. ## Adding routes @@ -20,13 +20,13 @@ const router = createRouter({ }) ``` -Going to any page, `/about`, `/store`, or `/3-tricks-to-improve-your-routing-code` ends up rendering the `Article` component. If we are on `/about` and we add a new route: +Going to any page like `/about`, `/store`, or `/3-tricks-to-improve-your-routing-code` ends up rendering the `Article` component. If we are on `/about` and we add a new route: ```js router.addRoute({ path: '/about', component: About }) ``` -The page will still show the `Article` component, we need to manually call `router.replace()` to change the current location and overwrite where we were (instead of pushing a new entry, ending up in the same location twice in our history): +The page will still show the `Article` component. We need to manually call `router.replace()` to change the current location and overwrite where we were (instead of pushing a new entry, ending up in the same location twice in our history): ```js router.addRoute({ path: '/about', component: About }) @@ -89,7 +89,7 @@ Whenever a route is removed, **all of its aliases and children** are removed wit ## Adding nested routes -To add nested routes to an existing route, you can pass the _name_ of the route as its first parameter to `router.addRoute()`, this will effectively add the route as if it was added through `children`: +To add nested routes to an existing route, you can pass the _name_ of the route as its first parameter to `router.addRoute()`. This will effectively add the route as if it was added through `children`: ```js router.addRoute({ name: 'admin', path: '/admin', component: Admin }) @@ -111,5 +111,5 @@ router.addRoute({ Vue Router gives you two functions to look at existing routes: -- [`router.hasRoute()`](/api/interfaces/Router.md#hasRoute): check if a route exists +- [`router.hasRoute()`](/api/interfaces/Router.md#hasRoute): check if a route exists. - [`router.getRoutes()`](/api/interfaces/Router.md#getRoutes): get an array with all the route records. From 423d9f763ed033dd6687ce7687c859c92554a60d Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Mon, 1 Jul 2024 10:42:00 +0200 Subject: [PATCH 05/24] fix(types): stricter meta with required fields --- packages/router/src/index.ts | 1 + packages/router/src/types/index.ts | 40 ++++++- .../router/test-dts/components.test-d.tsx | 47 ++++---- packages/router/test-dts/legacy.test-d.ts | 38 ++++-- packages/router/test-dts/meta.test-d.ts | 28 +++-- .../test-dts/navigationGuards.test-d.ts | 87 +++++++------- .../router/test-dts/routeRecords.test-d.ts | 109 ++++++++++-------- .../router/test-dts/typed-routes.test-d.ts | 2 +- packages/router/tsconfig.json | 5 +- packages/router/vitest.config.ts | 2 +- 10 files changed, 225 insertions(+), 134 deletions(-) diff --git a/packages/router/src/index.ts b/packages/router/src/index.ts index 2a62ad156..089cfe0a7 100644 --- a/packages/router/src/index.ts +++ b/packages/router/src/index.ts @@ -59,6 +59,7 @@ export type { RouteRecordMultipleViewsWithChildren, RouteRecordRedirect, RouteMeta, + _RouteMetaBase, RouteComponent, // RawRouteComponent, RouteParamsGeneric, diff --git a/packages/router/src/types/index.ts b/packages/router/src/types/index.ts index e3069740b..3508f3a6c 100644 --- a/packages/router/src/types/index.ts +++ b/packages/router/src/types/index.ts @@ -189,7 +189,9 @@ export type RawRouteComponent = RouteComponent | Lazy /** * Internal type for common properties among all kind of {@link RouteRecordRaw}. */ -export interface _RouteRecordBase extends PathParserOptions { +export interface _RouteRecordBase + extends PathParserOptions, + _RouteRecordBaseMeta { /** * Path of the record. Should start with `/` unless the record is the child of * another record. @@ -228,7 +230,7 @@ export interface _RouteRecordBase extends PathParserOptions { /** * Arbitrary data attached to the record. */ - meta?: RouteMeta + // meta?: RouteMeta /** * Array of nested routes. @@ -241,6 +243,12 @@ export interface _RouteRecordBase extends PathParserOptions { props?: _RouteRecordProps | Record } +/** + * Default type for RouteMeta when not augmented. + * @internal + */ +export type _RouteMetaBase = Record + /** * Interface to type `meta` fields in route records. * @@ -257,7 +265,33 @@ export interface _RouteRecordBase extends PathParserOptions { * } * ``` */ -export interface RouteMeta extends Record {} +export interface RouteMeta extends _RouteMetaBase {} + +/** + * Returns `true` if the passed `RouteMeta` type hasn't been augmented. Return `false` otherwise. + * @internal + */ +export type IsRouteMetaBase = _RouteMetaBase extends RM ? true : false +/** + * Returns `true` if the passed `RouteMeta` type has been augmented with required fields. Return `false` otherwise. + * @internal + */ +export type IsRouteMetaRequired = Partial extends RM ? false : true + +export type _RouteRecordBaseMeta = IsRouteMetaRequired extends true + ? { + /** + * Arbitrary data attached to the record. Required because the `RouteMeta` type has been augmented with required + * fields. + */ + meta: RouteMeta + } + : { + /** + * Arbitrary data attached to the record. + */ + meta?: RouteMeta + } /** * Route Record defining one single component with the `component` option. diff --git a/packages/router/test-dts/components.test-d.tsx b/packages/router/test-dts/components.test-d.tsx index 532f66bac..07c270520 100644 --- a/packages/router/test-dts/components.test-d.tsx +++ b/packages/router/test-dts/components.test-d.tsx @@ -5,27 +5,32 @@ import { createRouter, createMemoryHistory, } from './index' -import { expectTypeOf } from 'vitest' +import { it, describe, expectTypeOf } from 'vitest' -let router = createRouter({ - history: createMemoryHistory(), - routes: [], -}) +describe('Components', () => { + let router = createRouter({ + history: createMemoryHistory(), + routes: [], + }) -// RouterLink -// @ts-expect-error missing to -expectError() -// @ts-expect-error: invalid prop -expectError() -// @ts-expect-error: invalid prop -expectError() -expectTypeOf() -expectTypeOf() -expectTypeOf() -expectTypeOf() -expectTypeOf() + // TODO: split into multiple tests + it('works', () => { + // RouterLink + // @ts-expect-error missing to + expectError() + // @ts-expect-error: invalid prop + expectError() + // @ts-expect-error: invalid prop + expectError() + expectTypeOf() + expectTypeOf() + expectTypeOf() + expectTypeOf() + expectTypeOf() -// RouterView -expectTypeOf() -expectTypeOf() -expectTypeOf() + // RouterView + expectTypeOf() + expectTypeOf() + expectTypeOf() + }) +}) diff --git a/packages/router/test-dts/legacy.test-d.ts b/packages/router/test-dts/legacy.test-d.ts index 8f129a7e6..3b5f70b57 100644 --- a/packages/router/test-dts/legacy.test-d.ts +++ b/packages/router/test-dts/legacy.test-d.ts @@ -1,12 +1,32 @@ -import { expectTypeOf } from 'vitest' -import { Router, RouteLocationNormalizedLoaded } from './index' +import { describe, expectTypeOf, it } from 'vitest' +import { + useRouter, + useRoute, + // rename types for better error messages, otherwise they have the same name + // RouteLocationNormalizedLoadedTyped as I_RLNLT +} from './index' import { defineComponent } from 'vue' -defineComponent({ - methods: { - doStuff() { - expectTypeOf(this.$router) - expectTypeOf(this.$route) - }, - }, +describe('Instance types', () => { + it('creates a $route instance property', () => { + defineComponent({ + methods: { + doStuff() { + // TODO: can't do a proper check because of typed routes + expectTypeOf(this.$route.params).toMatchTypeOf(useRoute().params) + }, + }, + }) + }) + + it('creates $router instance properties', () => { + defineComponent({ + methods: { + doStuff() { + // TODO: can't do a proper check because of typed routes + expectTypeOf(this.$router.back).toEqualTypeOf(useRouter().back) + }, + }, + }) + }) }) diff --git a/packages/router/test-dts/meta.test-d.ts b/packages/router/test-dts/meta.test-d.ts index 32e2010fa..95aa46101 100644 --- a/packages/router/test-dts/meta.test-d.ts +++ b/packages/router/test-dts/meta.test-d.ts @@ -4,10 +4,11 @@ import { describe, it, expectTypeOf } from 'vitest' const component = defineComponent({}) -declare module './index' { +declare module '.' { interface RouteMeta { requiresAuth?: boolean - nested: { foo: string } + // TODO: it would be nice to be able to test required meta without polluting all tests + nested?: { foo: string } } } @@ -27,14 +28,18 @@ describe('RouteMeta', () => { }, }, }, - { - path: '/foo', - component, - // @ts-expect-error - meta: {}, - }, ], }) + + router.addRoute({ + path: '/foo', + component, + meta: { + nested: { + foo: 'foo', + }, + }, + }) }) it('route location in guards', () => { @@ -43,9 +48,12 @@ describe('RouteMeta', () => { routes: [], }) router.beforeEach(to => { - expectTypeOf<{ requiresAuth?: Boolean; nested: { foo: string } }>(to.meta) + expectTypeOf<{ requiresAuth?: Boolean; nested?: { foo: string } }>( + to.meta + ) expectTypeOf(to.meta.lol) - if (to.meta.nested.foo == 'foo' || to.meta.lol) return false + if (to.meta.nested?.foo == 'foo' || to.meta.lol) return false + return }) }) }) diff --git a/packages/router/test-dts/navigationGuards.test-d.ts b/packages/router/test-dts/navigationGuards.test-d.ts index 6bf24ed8a..86f4a0c4a 100644 --- a/packages/router/test-dts/navigationGuards.test-d.ts +++ b/packages/router/test-dts/navigationGuards.test-d.ts @@ -1,4 +1,4 @@ -import { expectTypeOf } from 'vitest' +import { expectTypeOf, describe, it } from 'vitest' import { createRouter, createWebHistory, @@ -14,44 +14,49 @@ const router = createRouter({ routes: [], }) -router.beforeEach((to, from) => { - return { path: '/' } -}) - -router.beforeEach((to, from) => { - return '/' -}) - -router.beforeEach((to, from) => { - return false -}) - -router.beforeEach((to, from, next) => { - next(undefined) -}) - -// @ts-expect-error -router.beforeEach((to, from, next) => { - return Symbol('not supported') -}) -// @ts-expect-error -router.beforeEach(() => { - return Symbol('not supported') -}) - -router.beforeEach((to, from, next) => { - // @ts-expect-error - next(Symbol('not supported')) -}) - -router.afterEach((to, from, failure) => { - expectTypeOf(failure) - if (isNavigationFailure(failure)) { - expectTypeOf(failure.from) - expectTypeOf(failure.to) - } - if (isNavigationFailure(failure, NavigationFailureType.cancelled)) { - expectTypeOf(failure.from) - expectTypeOf(failure.to) - } +describe('Navigation guards', () => { + // TODO: split into multiple tests + it('works', () => { + router.beforeEach((to, from) => { + return { path: '/' } + }) + + router.beforeEach((to, from) => { + return '/' + }) + + router.beforeEach((to, from) => { + return false + }) + + router.beforeEach((to, from, next) => { + next(undefined) + }) + + // @ts-expect-error + router.beforeEach((to, from, next) => { + return Symbol('not supported') + }) + // @ts-expect-error + router.beforeEach(() => { + return Symbol('not supported') + }) + + router.beforeEach((to, from, next) => { + // @ts-expect-error + next(Symbol('not supported')) + }) + + router.afterEach((to, from, failure) => { + expectTypeOf(failure) + if (isNavigationFailure(failure)) { + expectTypeOf(failure.from) + expectTypeOf(failure.to) + } + if (isNavigationFailure(failure, NavigationFailureType.cancelled)) { + expectTypeOf(failure.from) + expectTypeOf(failure.to) + } + }) + }) }) diff --git a/packages/router/test-dts/routeRecords.test-d.ts b/packages/router/test-dts/routeRecords.test-d.ts index e806dad1c..86cac2e68 100644 --- a/packages/router/test-dts/routeRecords.test-d.ts +++ b/packages/router/test-dts/routeRecords.test-d.ts @@ -1,4 +1,5 @@ -import { RouteRecordRaw } from './index' +import { describe, it } from 'vitest' +import type { RouteLocationNormalized, RouteRecordRaw } from './index' import { defineComponent } from 'vue' const component = defineComponent({}) @@ -6,56 +7,72 @@ const components = { default: component } const routes: RouteRecordRaw[] = [] -routes.push({ path: '/', redirect: '/foo' }) +describe('RouteRecords', () => { + // TODO: split into multiple tests + it('works', () => { + routes.push({ path: '/', redirect: '/foo' }) -// @ts-expect-error cannot have components and component at the same time -routes.push({ path: '/', components, component }) + // @ts-expect-error cannot have components and component at the same time + routes.push({ path: '/', components, component }) -// a redirect record with children to point to a child -routes.push({ - path: '/', - redirect: '/foo', - children: [ - { - path: 'foo', + // a redirect record with children to point to a child + routes.push({ + path: '/', + redirect: '/foo', + children: [ + { + path: 'foo', + component, + }, + ], + }) + + // same but with a nested route + routes.push({ + path: '/', component, - }, - ], -}) + redirect: '/foo', + children: [ + { + path: 'foo', + component, + }, + ], + }) -// same but with a nested route -routes.push({ - path: '/', - component, - redirect: '/foo', - children: [ - { - path: 'foo', + routes.push({ path: '/a/b', component, props: true }) + routes.push({ + path: '/a/b', component, - }, - ], -}) + props: (to: RouteLocationNormalized<'/[id]+'>) => to.params.id, + }) + // @ts-expect-error: props should be an object + routes.push({ path: '/a/b', components, props: to => to.params.id }) + routes.push({ + path: '/a/b', + components, + props: { + default: (to: RouteLocationNormalized<'/[id]+'>) => to.params.id, + }, + }) + routes.push({ path: '/', components, props: true }) -routes.push({ path: '/', component, props: true }) -routes.push({ path: '/', component, props: to => to.params.id }) -// @ts-expect-error: props should be an object -routes.push({ path: '/', components, props: to => to.params.id }) -routes.push({ path: '/', components, props: { default: to => to.params.id } }) -routes.push({ path: '/', components, props: true }) - -// let r: RouteRecordRaw = { -// path: '/', -// component, -// components, -// } - -export function filterNestedChildren(children: RouteRecordRaw[]) { - return children.filter(r => { - if (r.redirect) { - r.children?.map(() => {}) - } - if (r.children) { - r.children = filterNestedChildren(r.children) + // let r: RouteRecordRaw = { + // path: '/', + // component, + // components, + // } + + function filterNestedChildren(children: RouteRecordRaw[]) { + return children.filter(r => { + if (r.redirect) { + r.children?.map(() => {}) + } + if (r.children) { + r.children = filterNestedChildren(r.children) + } + }) } + filterNestedChildren(routes) }) -} +}) diff --git a/packages/router/test-dts/typed-routes.test-d.ts b/packages/router/test-dts/typed-routes.test-d.ts index e12bdab2a..7f6849818 100644 --- a/packages/router/test-dts/typed-routes.test-d.ts +++ b/packages/router/test-dts/typed-routes.test-d.ts @@ -10,7 +10,7 @@ import { // type is needed instead of an interface // https://github.com/microsoft/TypeScript/issues/15300 -type RouteMap = { +export type RouteMap = { '/[...path]': RouteRecordInfo< '/[...path]', '/:path(.*)', diff --git a/packages/router/tsconfig.json b/packages/router/tsconfig.json index 22219c6f0..41fc6c378 100644 --- a/packages/router/tsconfig.json +++ b/packages/router/tsconfig.json @@ -2,7 +2,8 @@ "include": [ "src/global.d.ts", "src/**/*.ts", - "__tests__/**/*.ts" + "__tests__/**/*.ts", + "test-dts/**/*.ts" ], "compilerOptions": { "baseUrl": ".", @@ -12,7 +13,7 @@ "noEmit": true, "target": "esnext", "module": "esnext", - "moduleResolution": "node", + "moduleResolution": "Bundler", "allowJs": false, "noUnusedLocals": true, "strictNullChecks": true, diff --git a/packages/router/vitest.config.ts b/packages/router/vitest.config.ts index bb42313f7..1e60c7351 100644 --- a/packages/router/vitest.config.ts +++ b/packages/router/vitest.config.ts @@ -32,7 +32,7 @@ export default defineConfig({ checker: 'vue-tsc', // only: true, // by default it includes all specs too - include: ['**/*.test-d.ts'], + // include: ['**/*.test-d.ts'], // tsconfig: './tsconfig.typecheck.json', }, From 2240371cefa36114821d54a1bc0ce90e890ae346 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Mon, 1 Jul 2024 10:43:51 +0200 Subject: [PATCH 06/24] ci: fix test order --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eb8631883..e960d8a57 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -35,9 +35,9 @@ jobs: - run: pnpm install - run: pnpm run lint - - run: pnpm run -r test:types - run: pnpm run -r build - run: pnpm run -r build:dts + - run: pnpm run -r test:types - run: pnpm run -r test:unit # e2e tests that that run locally From 37f6cbd9afb7f637a62ac7f42a5db2180bf5f3b6 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Mon, 1 Jul 2024 10:44:58 +0200 Subject: [PATCH 07/24] chore: order in test command --- packages/router/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/router/package.json b/packages/router/package.json index e98c3ba73..57f07d357 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -98,7 +98,7 @@ "dev:e2e": "vite --config e2e/vite.config.mjs", "test:types": "tsc --build tsconfig.json", "test:unit": "vitest --coverage run", - "test": "pnpm run test:types && pnpm run build && pnpm run build:dts && pnpm run test:unit && pnpm run test:e2e", + "test": "pnpm run build && pnpm run build:dts && pnpm run test:types && pnpm run test:unit && pnpm run test:e2e", "test:e2e": "pnpm run test:e2e:headless", "test:e2e:headless": "node e2e/runner.mjs --env chrome-headless", "test:e2e:native": "node e2e/runner.mjs --env chrome", From fa66af91f388d096f1bea7275f2c9c835ed3b19b Mon Sep 17 00:00:00 2001 From: chen wen jun Date: Tue, 9 Jul 2024 15:27:01 +0800 Subject: [PATCH 08/24] docs: reorder symbols (#2296) * docs: reorder symbols * Update packages/docs/guide/essentials/route-matching-syntax.md --------- Co-authored-by: Eduardo San Martin Morote --- packages/docs/guide/essentials/route-matching-syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/guide/essentials/route-matching-syntax.md b/packages/docs/guide/essentials/route-matching-syntax.md index 52f8812a7..e110f8f5b 100644 --- a/packages/docs/guide/essentials/route-matching-syntax.md +++ b/packages/docs/guide/essentials/route-matching-syntax.md @@ -24,7 +24,7 @@ const routes = [ ] ``` -But in some scenarios we don't want to add that static section `/o`/`p`. However, `orderId` is always a number while `productName` can be anything, so we can specify a custom regex for a param in parentheses: +But in some scenarios, we don't want to add that static section `/o` or `/p`. However, `orderId` is always a number while `productName` can be anything so we can specify a custom regex for a param in parentheses: ```js const routes = [ From a495ce0e1d545d521673d21af43e63a761b53e27 Mon Sep 17 00:00:00 2001 From: tingyuan Date: Tue, 9 Jul 2024 15:27:24 +0800 Subject: [PATCH 09/24] fix: router typescript definations related to vue package (#2295) Co-authored-by: tingyuan <1932294867@qq.com> --- packages/router/src/globalExtensions.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/router/src/globalExtensions.ts b/packages/router/src/globalExtensions.ts index 7aa983d62..d236a52dd 100644 --- a/packages/router/src/globalExtensions.ts +++ b/packages/router/src/globalExtensions.ts @@ -8,8 +8,7 @@ import type { RouterLink } from './RouterLink' import type { Router } from './router' import type { TypesConfig } from './config' -// TODO: figure out why it cannot be 'vue' like said in docs -declare module '@vue/runtime-core' { +declare module 'vue' { export interface ComponentCustomOptions { /** * Guard called when the router is navigating to the route that is rendering From 305299ff88a0e0421a1bfec630ce20b09b7c17f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maty=C3=A1=C5=A1=20Racek?= Date: Tue, 9 Jul 2024 09:59:50 +0200 Subject: [PATCH 10/24] docs: mention an edge case with mutliple optional params in the docs (#2192) * docs: mention an edge case with mutliple optional params in the docs See #2190 for more info. * Update packages/docs/guide/essentials/route-matching-syntax.md --------- Co-authored-by: Eduardo San Martin Morote --- packages/docs/guide/essentials/route-matching-syntax.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/docs/guide/essentials/route-matching-syntax.md b/packages/docs/guide/essentials/route-matching-syntax.md index e110f8f5b..7508993bf 100644 --- a/packages/docs/guide/essentials/route-matching-syntax.md +++ b/packages/docs/guide/essentials/route-matching-syntax.md @@ -114,6 +114,13 @@ const routes = [ Note that `*` technically also marks a parameter as optional but `?` parameters cannot be repeated. +If the route segment contains more than **just an optional parameter**, it won't match a path **without the trailing slash**. For example: + +- `/users/:uid?-:name?` won't match `/users`, only `/users/-` or even `/users/-/` +- `/users/:uid(\\d+)?:name? won't match `/users`, only `/users/`, `/users/2`, `/users/2/`, etc + +You can play around with the matching syntax [in the playground](https://paths.esm.dev/?p=AAMsIPQg4AoKzidgQFoEXAmw-IEBBRYYOE0SkABTASiz1qgBpgQA1QTsFjAb3h2onsmlAmGIFsCXjXh4AIA.&t=/users/2/#) + ## Debugging If you need to dig how your routes are transformed into a regex to understand why a route isn't being matched or, to report a bug, you can use the [path ranker tool](https://paths.esm.dev/?p=AAMeJSyAwR4UbFDAFxAcAGAIJXMAAA..#). It supports sharing your routes through the URL. From f025944806c08e281b7900a5f82055cbea662b8a Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Tue, 9 Jul 2024 11:13:56 +0200 Subject: [PATCH 11/24] chore: github issue playground link --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 66c268145..db80066cc 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -9,7 +9,7 @@ body: id: reproduction attributes: label: Reproduction - description: "If possible, provide a boiled down editable reproduction using a service like [JSFiddle](https://jsfiddle.net/posva/3yq6ojLv), Codepen, [CodeSandbox](https://codesandbox.io/s/vue-router-4-reproduction-s1sqc), or a GitHub repository. A failing unit test is even better! Otherwise provide as much information as possible to reproduce the problem. If we can't reproduce the problem, we won't be able to give it a look **and the issue will be converted into a question and moved to discussions**." + description: "If possible, provide a boiled down editable reproduction with the [Vue.js Playground](https://play.vuejs.org/#eNqlVNtOGzEQ/RV3WylBJesQEA/bJYIiVFr1gmjVl24fNruTxLBrW7Y3BEX5947tvQUCL1UUxZ7LmTNzJt4EZcp4eKeDKGClFMqQDckUpAYupCRbMleiJINVBYOE1wFKVAZU7Qmpv3Zum9f4UilDn5vwFnWI34OEExJWGoY+3d9LUXEzHLzFtMFBcBjU6cgtNlDKAvOnNjBeHk2voSiELfYmpnh1Zul+8KCNEnwxvayUAl4zJjI1yyimtY9sNuSdc4Tzqihu0Em2WwdDPU7M01UDeOtYfmX8nhhxlgQ0CaafBJ7JtSghpp3/xYx0hpY27cLenuXFtKkZW112sX4zeCC0jqvdMW0Hg/Pys9yr5jcohXq8Ztrgz2Ft9Lh9lUetmq2etkFXuhG1MdTKNrLbhnbiWku3AoLrWg1Nzsgf28rG60IGdIC0BIJxlCzqym4Pd8PcHHdju9o2+O+TUgpL9fsdbizg0o8i2jef4YGr6YnicYvrmXBYu0ZzmKdV0WDj1PvzsKuqM8WkIRpMJUmR8gWqbzQqb+XyTjzi5clOT6YNEm705Jm4O+P8vzot1N5CXtBRmUrcJMGxlBtYUjuwQkScxdq6nbHmJFgaI3VEacXl/SJEjWgXcX4SHodjmuOQe9YQdDmaKfGg3eomgZu9xT7HIJrDyghR6FEq2UslngWen4an4REt2IwiOmU8h7XDttD4J99im0bjjszZ4kmTdq1YAeqHNAx3aKfZFJ+chy/OZlQFLdFsCdn9HvudXnvKNwqwuxX0mjOpWgC+B9Z99fM7rPHcOkuRVwVGv+K8BS2KynL0YR8rniPtXpxj+9lpxvjil75aG+C6acoSddNw8U7Iy1da7+gehye9KWrzWIAOM23fHHy8Dol9mXzeTKgcVEQmck2QLMvJ2/F4/MG6SoRjfDQTxogyIkdjuXZ2meY5km0tWCXhCEumJCXv8euA6+wC5vjn70cuJ/3KHXxHIMuyHoGIjPEzqRGC7T/iwGPK), or an editable [CodeSandbox](https://codesandbox.io/s/vue-router-4-reproduction-s1sqc), Stackblitz, or a GitHub repository. A failing unit test is even better! Otherwise provide as much information as possible to reproduce the problem. If we can't reproduce the problem, we won't be able to give it a look **and the issue will be converted into a question and moved to discussions**." placeholder: Reproduction validations: required: true From 01c16c6e35fd972811c5ddb8a83472bd9582083e Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Tue, 9 Jul 2024 11:14:01 +0200 Subject: [PATCH 12/24] docs: trailing space --- packages/docs/guide/essentials/route-matching-syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/guide/essentials/route-matching-syntax.md b/packages/docs/guide/essentials/route-matching-syntax.md index 7508993bf..09c2515a0 100644 --- a/packages/docs/guide/essentials/route-matching-syntax.md +++ b/packages/docs/guide/essentials/route-matching-syntax.md @@ -80,7 +80,7 @@ const routes = [ ] ``` -## Sensitive and strict route options +## Sensitive and strict route options By default, all routes are case-insensitive and match routes with or without a trailing slash. e.g. a route `/users` matches `/users`, `/users/`, and even `/Users/`. This behavior can be configured with the `strict` and `sensitive` options, they can be set both at a router and route level: From 06008baa91f8248ac35ff5480455aae49fe6858a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Belval?= <58433201+mael-belval@users.noreply.github.com> Date: Thu, 11 Jul 2024 17:50:12 +0200 Subject: [PATCH 13/24] docs: add missing backtick (#2302) Add a single backtick causing code rendering issue --- packages/docs/guide/essentials/route-matching-syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/guide/essentials/route-matching-syntax.md b/packages/docs/guide/essentials/route-matching-syntax.md index 09c2515a0..23a531793 100644 --- a/packages/docs/guide/essentials/route-matching-syntax.md +++ b/packages/docs/guide/essentials/route-matching-syntax.md @@ -117,7 +117,7 @@ Note that `*` technically also marks a parameter as optional but `?` parameters If the route segment contains more than **just an optional parameter**, it won't match a path **without the trailing slash**. For example: - `/users/:uid?-:name?` won't match `/users`, only `/users/-` or even `/users/-/` -- `/users/:uid(\\d+)?:name? won't match `/users`, only `/users/`, `/users/2`, `/users/2/`, etc +- `/users/:uid(\\d+)?:name?` won't match `/users`, only `/users/`, `/users/2`, `/users/2/`, etc You can play around with the matching syntax [in the playground](https://paths.esm.dev/?p=AAMsIPQg4AoKzidgQFoEXAmw-IEBBRYYOE0SkABTASiz1qgBpgQA1QTsFjAb3h2onsmlAmGIFsCXjXh4AIA.&t=/users/2/#) From 8487c3e18882a0883e464a0f25fb28fa50eeda38 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Thu, 18 Jul 2024 10:31:56 +0200 Subject: [PATCH 14/24] chore: up sponsors --- README.md | 36 +++++++++------- .../.vitepress/theme/components/sponsors.json | 42 +++++++++++-------- 2 files changed, 45 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index a61d7142d..b47ebb527 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,10 @@ Vue Router is part of the Vue Ecosystem and is an MIT-licensed open source proje

Silver Sponsors

- + - - VueMastery + + Route Optimizer and Route Planner Software @@ -26,32 +26,38 @@ Vue Router is part of the Vue Ecosystem and is an MIT-licensed open source proje Prefect + + + + VueMastery + +

Bronze Sponsors

- + - - Stanislas Ormières + + Storyblok - + - - Antony Konstantinidis + + Nuxt UI Pro Templates - + - - Storyblok + + Antony Konstantinidis - + - - Nuxt UI Pro Templates + + Stanislas Ormières

diff --git a/packages/docs/.vitepress/theme/components/sponsors.json b/packages/docs/.vitepress/theme/components/sponsors.json index d4ef1030c..0db6e9928 100644 --- a/packages/docs/.vitepress/theme/components/sponsors.json +++ b/packages/docs/.vitepress/theme/components/sponsors.json @@ -3,31 +3,25 @@ "gold": [], "silver": [ { - "alt": "VueMastery", - "href": "https://www.vuemastery.com/", - "imgSrcDark": "https://posva-sponsors.pages.dev/logos/vuemastery-dark.png", - "imgSrcLight": "https://posva-sponsors.pages.dev/logos/vuemastery-light.svg" + "alt": "Route Optimizer and Route Planner Software", + "href": "https://route4me.com", + "imgSrcDark": "https://posva-sponsors.pages.dev/logos/route4me.png", + "imgSrcLight": "https://posva-sponsors.pages.dev/logos/route4me.png" }, { "alt": "Prefect", "href": "https://www.prefect.io/", "imgSrcDark": "https://posva-sponsors.pages.dev/logos/prefectlogo-dark.svg", "imgSrcLight": "https://posva-sponsors.pages.dev/logos/prefectlogo-light.svg" + }, + { + "alt": "VueMastery", + "href": "https://www.vuemastery.com/", + "imgSrcDark": "https://posva-sponsors.pages.dev/logos/vuemastery-dark.png", + "imgSrcLight": "https://posva-sponsors.pages.dev/logos/vuemastery-light.svg" } ], "bronze": [ - { - "alt": "Stanislas Ormières", - "href": "https://stormier.ninja", - "imgSrcDark": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4", - "imgSrcLight": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4" - }, - { - "alt": "Antony Konstantinidis", - "href": "https://www.vuejs.de", - "imgSrcDark": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4", - "imgSrcLight": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4" - }, { "alt": "Storyblok", "href": "https://storyblok.com", @@ -37,8 +31,20 @@ { "alt": "Nuxt UI Pro Templates", "href": "https://ui.nuxt.com/pro", - "imgSrcDark": "https://avatars.githubusercontent.com/u/81570812?v=4", - "imgSrcLight": "https://avatars.githubusercontent.com/u/81570812?v=4" + "imgSrcDark": "https://posva-sponsors.pages.dev/logos/nuxt-dark.svg", + "imgSrcLight": "https://posva-sponsors.pages.dev/logos/nuxt-light.svg" + }, + { + "alt": "Antony Konstantinidis", + "href": "https://www.vuejs.de", + "imgSrcDark": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4", + "imgSrcLight": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4" + }, + { + "alt": "Stanislas Ormières", + "href": "https://stormier.ninja", + "imgSrcDark": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4", + "imgSrcLight": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4" } ] } From 4f082cd05507f33c6d0e6c9dd042cbe75d38ccb5 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Wed, 31 Jul 2024 18:49:33 +0200 Subject: [PATCH 15/24] chore: comment --- packages/router/src/globalExtensions.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/router/src/globalExtensions.ts b/packages/router/src/globalExtensions.ts index d236a52dd..22c49c3c8 100644 --- a/packages/router/src/globalExtensions.ts +++ b/packages/router/src/globalExtensions.ts @@ -8,6 +8,10 @@ import type { RouterLink } from './RouterLink' import type { Router } from './router' import type { TypesConfig } from './config' +/** + * NOTE: this used to be `@vue/runtime-core` but it should have been `vue` for a long time. Using both declaration at + * the same time breaks so using only one everywhere is the preferred way. + */ declare module 'vue' { export interface ComponentCustomOptions { /** From b905906a789a78089d8b7529342a4db68602cdba Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Wed, 31 Jul 2024 18:51:30 +0200 Subject: [PATCH 16/24] release: vue-router@4.4.1 --- packages/router/CHANGELOG.md | 11 +++++++++++ packages/router/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index b848140ba..69a412c67 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -1,3 +1,14 @@ +## [4.4.1](https://github.com/vuejs/router/compare/v4.4.0...v4.4.1) (2024-07-31) + +### Bug Fixes + +- router typescript definations related to vue package ([#2295](https://github.com/vuejs/router/issues/2295)) ([a495ce0](https://github.com/vuejs/router/commit/a495ce0e1d545d521673d21af43e63a761b53e27)) +- **types:** stricter meta with required fields ([423d9f7](https://github.com/vuejs/router/commit/423d9f763ed033dd6687ce7687c859c92554a60d)) + +### Features + +- **warn:** fix links to docs ([0cb5797](https://github.com/vuejs/router/commit/0cb57971efd767777011e872e9cc327e0a0da79f)) + # [4.4.0](https://github.com/vuejs/router/compare/v4.4.0-alpha.3...v4.4.0) (2024-06-21) This version introduces native support for [typed routes via the `RouteNamedMap`](https://router.vuejs.org/guide/advanced/typed-routes.html). It is now possible to define a map without [unplugin-vue-router](https://uvr.esm.is) and have the types inferred automatically. It is still recommended to use [unplugin-vue-router](https://uvr.esm.is) to automatically generate these types. diff --git a/packages/router/package.json b/packages/router/package.json index 57f07d357..10da91d5b 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "vue-router", - "version": "4.4.0", + "version": "4.4.1", "main": "index.js", "unpkg": "dist/vue-router.global.js", "jsdelivr": "dist/vue-router.global.js", From 5fef4410b1362331a52b89a33be185ca33e2d432 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Wed, 31 Jul 2024 18:52:39 +0200 Subject: [PATCH 17/24] chore: typos [skip ci] --- packages/router/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 69a412c67..a39eec704 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -2,7 +2,7 @@ ### Bug Fixes -- router typescript definations related to vue package ([#2295](https://github.com/vuejs/router/issues/2295)) ([a495ce0](https://github.com/vuejs/router/commit/a495ce0e1d545d521673d21af43e63a761b53e27)) +- router typescript definitions related to vue package ([#2295](https://github.com/vuejs/router/issues/2295)) ([a495ce0](https://github.com/vuejs/router/commit/a495ce0e1d545d521673d21af43e63a761b53e27)) - **types:** stricter meta with required fields ([423d9f7](https://github.com/vuejs/router/commit/423d9f763ed033dd6687ce7687c859c92554a60d)) ### Features From d4d0087eae5721f73bde445be33407875a92a1ca Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Thu, 1 Aug 2024 09:57:37 +0200 Subject: [PATCH 18/24] fix(types): revert stricter meta Close #2319 --- packages/router/src/index.ts | 1 - packages/router/src/types/index.ts | 40 ++----------------------- packages/router/test-dts/meta.test-d.ts | 9 ++++-- 3 files changed, 10 insertions(+), 40 deletions(-) diff --git a/packages/router/src/index.ts b/packages/router/src/index.ts index 089cfe0a7..2a62ad156 100644 --- a/packages/router/src/index.ts +++ b/packages/router/src/index.ts @@ -59,7 +59,6 @@ export type { RouteRecordMultipleViewsWithChildren, RouteRecordRedirect, RouteMeta, - _RouteMetaBase, RouteComponent, // RawRouteComponent, RouteParamsGeneric, diff --git a/packages/router/src/types/index.ts b/packages/router/src/types/index.ts index 3508f3a6c..e3069740b 100644 --- a/packages/router/src/types/index.ts +++ b/packages/router/src/types/index.ts @@ -189,9 +189,7 @@ export type RawRouteComponent = RouteComponent | Lazy /** * Internal type for common properties among all kind of {@link RouteRecordRaw}. */ -export interface _RouteRecordBase - extends PathParserOptions, - _RouteRecordBaseMeta { +export interface _RouteRecordBase extends PathParserOptions { /** * Path of the record. Should start with `/` unless the record is the child of * another record. @@ -230,7 +228,7 @@ export interface _RouteRecordBase /** * Arbitrary data attached to the record. */ - // meta?: RouteMeta + meta?: RouteMeta /** * Array of nested routes. @@ -243,12 +241,6 @@ export interface _RouteRecordBase props?: _RouteRecordProps | Record } -/** - * Default type for RouteMeta when not augmented. - * @internal - */ -export type _RouteMetaBase = Record - /** * Interface to type `meta` fields in route records. * @@ -265,33 +257,7 @@ export type _RouteMetaBase = Record * } * ``` */ -export interface RouteMeta extends _RouteMetaBase {} - -/** - * Returns `true` if the passed `RouteMeta` type hasn't been augmented. Return `false` otherwise. - * @internal - */ -export type IsRouteMetaBase = _RouteMetaBase extends RM ? true : false -/** - * Returns `true` if the passed `RouteMeta` type has been augmented with required fields. Return `false` otherwise. - * @internal - */ -export type IsRouteMetaRequired = Partial extends RM ? false : true - -export type _RouteRecordBaseMeta = IsRouteMetaRequired extends true - ? { - /** - * Arbitrary data attached to the record. Required because the `RouteMeta` type has been augmented with required - * fields. - */ - meta: RouteMeta - } - : { - /** - * Arbitrary data attached to the record. - */ - meta?: RouteMeta - } +export interface RouteMeta extends Record {} /** * Route Record defining one single component with the `component` option. diff --git a/packages/router/test-dts/meta.test-d.ts b/packages/router/test-dts/meta.test-d.ts index 95aa46101..33bd677e1 100644 --- a/packages/router/test-dts/meta.test-d.ts +++ b/packages/router/test-dts/meta.test-d.ts @@ -7,8 +7,7 @@ const component = defineComponent({}) declare module '.' { interface RouteMeta { requiresAuth?: boolean - // TODO: it would be nice to be able to test required meta without polluting all tests - nested?: { foo: string } + nested: { foo: string } } } @@ -28,6 +27,12 @@ describe('RouteMeta', () => { }, }, }, + { + path: '/hey', + component, + // @ts-expect-error: meta is missing `nested` + meta: {}, + }, ], }) From 001dd5114810a1b567281f0e3bb0b85542803f5e Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Thu, 1 Aug 2024 10:00:47 +0200 Subject: [PATCH 19/24] release: vue-router@4.4.2 --- packages/router/CHANGELOG.md | 6 ++++++ packages/router/package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index a39eec704..20814c110 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -1,3 +1,9 @@ +## [4.4.2](https://github.com/vuejs/router/compare/v4.4.1...v4.4.2) (2024-08-01) + +### Bug Fixes + +- **types:** revert stricter meta ([d4d0087](https://github.com/vuejs/router/commit/d4d0087eae5721f73bde445be33407875a92a1ca)), closes [#2319](https://github.com/vuejs/router/issues/2319) + ## [4.4.1](https://github.com/vuejs/router/compare/v4.4.0...v4.4.1) (2024-07-31) ### Bug Fixes diff --git a/packages/router/package.json b/packages/router/package.json index 10da91d5b..3acdd123f 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "vue-router", - "version": "4.4.1", + "version": "4.4.2", "main": "index.js", "unpkg": "dist/vue-router.global.js", "jsdelivr": "dist/vue-router.global.js", From 29670ca9aa306fb8a3354231466190aa9259dc04 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Thu, 1 Aug 2024 17:28:02 +0200 Subject: [PATCH 20/24] chore: note in chnagelog [skip ci] --- packages/router/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 20814c110..4c302a0f2 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -8,6 +8,9 @@ ### Bug Fixes +> [!IMPORTANT] +> This release replaces `declare module '@vue/runtime-core'` with `declare module 'vue'` [like it's supposed to be](https://vuejs.org/guide/typescript/options-api.html#augmenting-global-properties). If you are also augmenting `@vue/runtime-core`, you will likely have to change it to `vue`. It is also recommended to use an up-to-date TypeScript version (>=5.4) and `"moduleResolution": "Bundler"` in your `tsconfig.json`. + - router typescript definitions related to vue package ([#2295](https://github.com/vuejs/router/issues/2295)) ([a495ce0](https://github.com/vuejs/router/commit/a495ce0e1d545d521673d21af43e63a761b53e27)) - **types:** stricter meta with required fields ([423d9f7](https://github.com/vuejs/router/commit/423d9f763ed033dd6687ce7687c859c92554a60d)) From 7422b15e6fcf57819f82a1384c9a2a73e32e186f Mon Sep 17 00:00:00 2001 From: SerKo <44749100+serkodev@users.noreply.github.com> Date: Fri, 2 Aug 2024 02:04:20 +0800 Subject: [PATCH 21/24] fix: reorder exports in `package.json` (#2323) --- packages/router/package.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/router/package.json b/packages/router/package.json index 3acdd123f..73e341d8f 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -7,8 +7,8 @@ "module": "dist/vue-router.mjs", "types": "dist/vue-router.d.ts", "exports": { - "./auto-routes": { - "types": "./vue-router-auto-routes.d.ts", + ".": { + "types": "./dist/vue-router.d.ts", "node": { "import": { "production": "./dist/vue-router.node.mjs", @@ -24,8 +24,11 @@ "import": "./dist/vue-router.mjs", "require": "./index.js" }, - "./auto": { - "types": "./vue-router-auto.d.ts", + "./dist/*": "./dist/*", + "./vetur/*": "./vetur/*", + "./package.json": "./package.json", + "./auto-routes": { + "types": "./vue-router-auto-routes.d.ts", "node": { "import": { "production": "./dist/vue-router.node.mjs", @@ -41,8 +44,8 @@ "import": "./dist/vue-router.mjs", "require": "./index.js" }, - ".": { - "types": "./dist/vue-router.d.ts", + "./auto": { + "types": "./vue-router-auto.d.ts", "node": { "import": { "production": "./dist/vue-router.node.mjs", @@ -57,10 +60,7 @@ }, "import": "./dist/vue-router.mjs", "require": "./index.js" - }, - "./dist/*": "./dist/*", - "./vetur/*": "./vetur/*", - "./package.json": "./package.json" + } }, "sideEffects": false, "author": { From 7d1db18dc45fb24856a75a04dd868ddefcacc94c Mon Sep 17 00:00:00 2001 From: Vlad Date: Mon, 5 Aug 2024 19:50:31 +1100 Subject: [PATCH 22/24] chore: use `with` instead of `assert` in rollup.mjs (#2326) --- packages/router/rollup.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/router/rollup.config.mjs b/packages/router/rollup.config.mjs index 52f591cfd..d82c47954 100644 --- a/packages/router/rollup.config.mjs +++ b/packages/router/rollup.config.mjs @@ -6,7 +6,7 @@ import replace from '@rollup/plugin-replace' import resolve from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' import chalk from 'chalk' -import pkg from './package.json' assert { type: 'json' } +import pkg from './package.json' with { type: 'json' } import terser from '@rollup/plugin-terser' const name = pkg.name From 9f95fb7b3bb844ab7cd39df0f513bc098c24e92c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steve=20K=C3=B6nig?= Date: Tue, 6 Aug 2024 08:28:36 +0200 Subject: [PATCH 23/24] Section about deprecated onDemand and onAbort callback arguments (#2330) * Added deprecated onDemand and onAbort callback arguments to migration guide The onDemand and onAbort callbacks for router.push and .replace were deprecated in v4. I added a section to the migration guide explaining that users should replace them with the thenable Promise the methods return. * Apply suggestions from code review * Update packages/docs/guide/migration/index.md [skip ci] --------- Co-authored-by: Eduardo San Martin Morote --- packages/docs/guide/migration/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/docs/guide/migration/index.md b/packages/docs/guide/migration/index.md index 1f841c89e..6fb85383b 100644 --- a/packages/docs/guide/migration/index.md +++ b/packages/docs/guide/migration/index.md @@ -443,6 +443,12 @@ Given any [normalized route location](/api/#RouteLocationNormalized): **Reason**: This allows to easily copy existing properties of a location when calling `router.push()` and `router.resolve()`, and make the resulting route location consistent across browsers. `router.push()` is now idempotent, meaning that calling `router.push(route.fullPath)`, `router.push({ hash: route.hash })`, `router.push({ query: route.query })`, and `router.push({ params: route.params })` will not create extra encoding. +### `$router.push()` and `$router.replace()` - `onComplete` and `onAbort` callbacks + +Previously, `$router.push()` and `$router.replace()` accepted two callbacks, `onComplete` and `onAbort`, as second and third arguments. They were called after a navigation based on the result. With the introduction of a Promise based API, these callbacks are redundant and have been removed. See [Navigation Failures](/guide/advanced/navigation-failures.md) for more information on how to detect successful and failed navigations. + +**Reason**: Reduce library size by adapting to established JS standards (Promises). + ### TypeScript changes To make typings more consistent and expressive, some types have been renamed: From b157f1a2785cd56e2ab244c36130c2ac96e54bfd Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Tue, 6 Aug 2024 17:39:11 +0200 Subject: [PATCH 24/24] release: vue-router@4.4.3 --- packages/router/CHANGELOG.md | 6 ++++++ packages/router/package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 4c302a0f2..0ed655457 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -1,3 +1,9 @@ +## [4.4.3](https://github.com/vuejs/router/compare/v4.4.2...v4.4.3) (2024-08-06) + +### Bug Fixes + +- reorder exports in `package.json` ([#2323](https://github.com/vuejs/router/issues/2323)) ([7422b15](https://github.com/vuejs/router/commit/7422b15e6fcf57819f82a1384c9a2a73e32e186f)) + ## [4.4.2](https://github.com/vuejs/router/compare/v4.4.1...v4.4.2) (2024-08-01) ### Bug Fixes diff --git a/packages/router/package.json b/packages/router/package.json index 73e341d8f..0843823dd 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "vue-router", - "version": "4.4.2", + "version": "4.4.3", "main": "index.js", "unpkg": "dist/vue-router.global.js", "jsdelivr": "dist/vue-router.global.js",