From d5f389c9acc86a27ec9c8c96353c58c77004fa56 Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Sun, 1 Jun 2025 21:14:13 +0800 Subject: [PATCH 01/10] wip: vapor mode --- packages/router/src/RouterLink.ts | 2 +- packages/router/src/VaporRouterLink.ts | 89 ++++++ packages/router/src/VaporRouterView.ts | 204 ++++++++++++++ packages/router/src/index.ts | 2 + packages/router/src/router.ts | 12 +- pnpm-lock.yaml | 357 ++++++++++++++++++++++--- 6 files changed, 629 insertions(+), 37 deletions(-) create mode 100644 packages/router/src/VaporRouterLink.ts create mode 100644 packages/router/src/VaporRouterView.ts diff --git a/packages/router/src/RouterLink.ts b/packages/router/src/RouterLink.ts index e5b5d9d62..570e3e2bd 100644 --- a/packages/router/src/RouterLink.ts +++ b/packages/router/src/RouterLink.ts @@ -448,7 +448,7 @@ function getOriginalPath(record: RouteRecord | undefined): string { * @param globalClass * @param defaultClass */ -const getLinkClass = ( +export const getLinkClass = ( propClass: string | undefined, globalClass: string | undefined, defaultClass: string diff --git a/packages/router/src/VaporRouterLink.ts b/packages/router/src/VaporRouterLink.ts new file mode 100644 index 000000000..935cd702f --- /dev/null +++ b/packages/router/src/VaporRouterLink.ts @@ -0,0 +1,89 @@ +import { routerKey } from './injectionSymbols' +import { + _RouterLinkI, + getLinkClass, + type RouterLinkProps, + useLink, +} from './RouterLink' +import { RouteLocationRaw } from './typed-routes' +import { + computed, + createComponentWithFallback, + createDynamicComponent, + defineVaporComponent, + inject, + PropType, + reactive, +} from 'vue' + +export const VaporRouterLinkImpl = /*#__PURE__*/ defineVaporComponent({ + name: 'RouterLink', + // @ts-ignore + compatConfig: { MODE: 3 }, + props: { + to: { + type: [String, Object] as PropType, + required: true, + }, + replace: Boolean, + activeClass: String, + // inactiveClass: String, + exactActiveClass: String, + custom: Boolean, + ariaCurrentValue: { + type: String as PropType, + default: 'page', + }, + viewTransition: Boolean, + }, + + useLink, + + setup(props, { slots, attrs }) { + const link = reactive(useLink(props)) + const { options } = inject(routerKey)! + + const elClass = computed(() => ({ + [getLinkClass( + props.activeClass, + options.linkActiveClass, + 'router-link-active' + )]: link.isActive, + // [getLinkClass( + // props.inactiveClass, + // options.linkInactiveClass, + // 'router-link-inactive' + // )]: !link.isExactActive, + [getLinkClass( + props.exactActiveClass, + options.linkExactActiveClass, + 'router-link-exact-active' + )]: link.isExactActive, + })) + + return createDynamicComponent(() => { + const children = slots.default && slots.default(link) + return props.custom + ? () => children + : () => + createComponentWithFallback( + 'a', + { + 'aria-current': () => + link.isExactActive ? props.ariaCurrentValue : null, + href: () => link.href, + // this would override user added attrs but Vue will still add + // the listener, so we end up triggering both + onClick: () => link.navigate, + class: () => elClass.value, + $: [() => attrs], + }, + { + default: () => children, + } + ) + }) + }, +}) + +export const VaporRouterLink: _RouterLinkI = VaporRouterLinkImpl as any diff --git a/packages/router/src/VaporRouterView.ts b/packages/router/src/VaporRouterView.ts new file mode 100644 index 000000000..36ceb6106 --- /dev/null +++ b/packages/router/src/VaporRouterView.ts @@ -0,0 +1,204 @@ +import { + inject, + provide, + PropType, + ref, + unref, + ComponentPublicInstance, + VNodeProps, + computed, + AllowedComponentProps, + ComponentCustomProps, + watch, + VNode, + createTemplateRefSetter, + createComponent, + createDynamicComponent, + defineVaporComponent, + type VaporComponent, + type VaporSlot, +} from 'vue' +import type { RouteLocationNormalizedLoaded } from './typed-routes' +import type { RouteLocationMatched } from './types' +import { + matchedRouteKey, + viewDepthKey, + routerViewLocationKey, +} from './injectionSymbols' +import { assign } from './utils' +import { isSameRouteRecord } from './location' +import type { RouterViewProps, RouterViewDevtoolsContext } from './RouterView' + +export type { RouterViewProps, RouterViewDevtoolsContext } + +export const VaporRouterViewImpl = /*#__PURE__*/ defineVaporComponent({ + name: 'RouterView', + // #674 we manually inherit them + inheritAttrs: false, + props: { + name: { + type: String as PropType, + default: 'default', + }, + route: Object as PropType, + }, + + // Better compat for @vue/compat users + // https://github.com/vuejs/router/issues/1315 + // @ts-ignore + compatConfig: { MODE: 3 }, + + setup(props, { attrs, slots }) { + const injectedRoute = inject(routerViewLocationKey)! + const routeToDisplay = computed( + () => props.route || injectedRoute.value + ) + const injectedDepth = inject(viewDepthKey, 0) + // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children + // that are used to reuse the `path` property + const depth = computed(() => { + let initialDepth = unref(injectedDepth) + const { matched } = routeToDisplay.value + let matchedRoute: RouteLocationMatched | undefined + while ( + (matchedRoute = matched[initialDepth]) && + !matchedRoute.components + ) { + initialDepth++ + } + return initialDepth + }) + const matchedRouteRef = computed( + () => routeToDisplay.value.matched[depth.value] + ) + + provide( + viewDepthKey, + computed(() => depth.value + 1) + ) + provide(matchedRouteKey, matchedRouteRef) + provide(routerViewLocationKey, routeToDisplay) + + const viewRef = ref() + + // watch at the same time the component instance, the route record we are + // rendering, and the name + watch( + () => [viewRef.value, matchedRouteRef.value, props.name] as const, + ([instance, to, name], [oldInstance, from]) => { + // copy reused instances + if (to) { + // this will update the instance for new instances as well as reused + // instances when navigating to a new route + to.instances[name] = instance + // the component instance is reused for a different route or name, so + // we copy any saved update or leave guards. With async setup, the + // mounting component will mount before the matchedRoute changes, + // making instance === oldInstance, so we check if guards have been + // added before. This works because we remove guards when + // unmounting/deactivating components + if (from && from !== to && instance && instance === oldInstance) { + if (!to.leaveGuards.size) { + to.leaveGuards = from.leaveGuards + } + if (!to.updateGuards.size) { + to.updateGuards = from.updateGuards + } + } + } + + // trigger beforeRouteEnter next callbacks + if ( + instance && + to && + // if there is no instance but to and from are the same this might be + // the first visit + (!from || !isSameRouteRecord(to, from) || !oldInstance) + ) { + ;(to.enterCallbacks[name] || []).forEach(callback => + callback(instance) + ) + } + }, + { flush: 'post' } + ) + + const ViewComponent = computed(() => { + const matchedRoute = matchedRouteRef.value + return matchedRoute && matchedRoute.components![props.name] + }) + + // props from route configuration + const routeProps = computed(() => { + const route = routeToDisplay.value + const currentName = props.name + const matchedRoute = matchedRouteRef.value + const routePropsOption = matchedRoute && matchedRoute.props[currentName] + return routePropsOption + ? routePropsOption === true + ? route.params + : typeof routePropsOption === 'function' + ? routePropsOption(route) + : routePropsOption + : null + }) + + return createDynamicComponent(() => { + if (!ViewComponent.value) { + return () => + normalizeSlot(slots.default, { + Component: ViewComponent.value, + route: routeToDisplay.value, + }) + } + + const setRef = createTemplateRefSetter() + + return () => { + const component = createComponent( + ViewComponent.value as VaporComponent, + { + $: [() => assign({}, routeProps.value, attrs)], + } + ) + setRef(component, viewRef) + + return ( + normalizeSlot(slots.default, { + Component: component, + route: routeToDisplay.value, + }) || component + ) + } + }) + }, +}) + +function normalizeSlot(slot: VaporSlot | undefined, data: any) { + if (!slot) return null + return slot(data) +} + +// export the public type for h/tsx inference +// also to avoid inline import() in generated d.ts files +/** + * Component to display the current route the user is at. + */ +export const VaporRouterView = VaporRouterViewImpl as unknown as { + new (): { + $props: AllowedComponentProps & + ComponentCustomProps & + VNodeProps & + RouterViewProps + + $slots: { + default?: ({ + Component, + route, + }: { + Component: VNode + route: RouteLocationNormalizedLoaded + }) => VNode[] + } + } +} diff --git a/packages/router/src/index.ts b/packages/router/src/index.ts index 2b27d8329..7a5c9fc54 100644 --- a/packages/router/src/index.ts +++ b/packages/router/src/index.ts @@ -159,7 +159,9 @@ export type { UseLinkOptions, UseLinkReturn, } from './RouterLink' +export { VaporRouterLink } from './VaporRouterLink' export { RouterView } from './RouterView' +export { VaporRouterView } from './VaporRouterView' export type { RouterViewProps } from './RouterView' export type { TypesConfig } from './config' diff --git a/packages/router/src/router.ts b/packages/router/src/router.ts index 748a06a32..aee3e000c 100644 --- a/packages/router/src/router.ts +++ b/packages/router/src/router.ts @@ -1259,11 +1259,13 @@ export function createRouter(options: RouterOptions): Router { app.component('RouterLink', RouterLink) app.component('RouterView', RouterView) - app.config.globalProperties.$router = router - Object.defineProperty(app.config.globalProperties, '$route', { - enumerable: true, - get: () => unref(currentRoute), - }) + if (!app.vapor) { + app.config.globalProperties.$router = router + Object.defineProperty(app.config.globalProperties, '$route', { + enumerable: true, + get: () => unref(currentRoute), + }) + } // this initial navigation is only necessary on client, on server it doesn't // make sense because it will create an extra unnecessary navigation and could diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdafc5d60..1dd74b423 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^2.1.5 - version: 2.1.5(vitest@2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(terser@5.32.0)) + version: 2.1.5(vitest@2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(sass-embedded@1.89.0)(terser@5.32.0)) '@vitest/ui': specifier: ^2.1.5 version: 2.1.5(vitest@2.1.5) @@ -58,7 +58,7 @@ importers: version: 5.6.3 vitest: specifier: ^2.1.5 - version: 2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(terser@5.32.0) + version: 2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(sass-embedded@1.89.0)(terser@5.32.0) packages/docs: dependencies: @@ -67,10 +67,10 @@ importers: version: 3.27.0 vitepress: specifier: 1.5.0 - version: 1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.4.49)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3) + version: 1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.5.3)(sass-embedded@1.89.0)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3) vitepress-translation-helper: specifier: ^0.2.1 - version: 0.2.1(vitepress@1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.4.49)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3))(vue@3.5.13(typescript@5.6.3)) + version: 0.2.1(vitepress@1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.5.3)(sass-embedded@1.89.0)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3))(vue@3.5.13(typescript@5.6.3)) vue-router: specifier: workspace:* version: link:../router @@ -86,7 +86,7 @@ importers: version: 20.17.7 '@vitejs/plugin-vue': specifier: ^5.2.0 - version: 5.2.0(vite@5.4.11(@types/node@20.17.7)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.0(vite@5.4.11(@types/node@20.17.7)(sass-embedded@1.89.0)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3)) '@vue/compiler-sfc': specifier: ~3.5.13 version: 3.5.13 @@ -95,7 +95,7 @@ importers: version: 0.6.0(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)) vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@20.17.7)(terser@5.32.0) + version: 5.4.11(@types/node@20.17.7)(sass-embedded@1.89.0)(terser@5.32.0) vue-router: specifier: workspace:* version: link:../router @@ -135,7 +135,7 @@ importers: version: 2.3.32 '@vitejs/plugin-vue': specifier: ^5.2.0 - version: 5.2.0(vite@5.4.11(@types/node@22.9.3)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.0(vite@5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3)) '@vue/compiler-sfc': specifier: ~3.5.13 version: 3.5.13 @@ -189,7 +189,7 @@ importers: version: 0.36.0(rollup@3.29.5)(typescript@5.6.3) vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.9.3)(terser@5.32.0) + version: 5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0) vue: specifier: ~3.5.13 version: 3.5.13(typescript@5.6.3) @@ -300,6 +300,9 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@bufbuild/protobuf@2.4.0': + resolution: {integrity: sha512-RN9M76x7N11QRihKovEglEjjVCQEA9PRBVnDgk9xw8JHLrcUrp4FpAVSPSH91cNbcTft3u2vpLN4GMbiKY9PJw==} + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1227,6 +1230,9 @@ packages: browserstack-local@1.5.5: resolution: {integrity: sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==} + buffer-builder@0.2.0: + resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} + buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -1347,6 +1353,9 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colorjs.io@0.5.2: + resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2031,6 +2040,9 @@ packages: immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + immutable@5.1.2: + resolution: {integrity: sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==} + import-lazy@4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} @@ -2329,6 +2341,7 @@ packages: lodash.clone@3.0.3: resolution: {integrity: sha512-yVYPpFTdZDCLG2p07gVRTvcwN5X04oj2hu4gG6r0fer58JA08wAVxXzWM+CmmxO2bzOH8u8BkZTZqgX6juVF7A==} + deprecated: This package is deprecated. Use structuredClone instead. lodash.defaultsdeep@4.6.1: resolution: {integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==} @@ -2353,6 +2366,7 @@ packages: lodash.pick@4.4.0: resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} + deprecated: This package is deprecated. Use destructuring assignment syntax instead. lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -2562,6 +2576,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2818,6 +2837,10 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + preact@10.25.0: resolution: {integrity: sha512-6bYnzlLxXV3OSpUxLdaxBmE7PMOu0aR3pG6lryK/0jmvcDFPlcXGQAt5DpK3RITWiDrfYZRI0druyaK/S9kYLg==} @@ -2997,6 +3020,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -3006,6 +3032,131 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sass-embedded-android-arm64@1.89.0: + resolution: {integrity: sha512-pr4R3p5R+Ul9ZA5nzYbBJQFJXW6dMGzgpNBhmaToYDgDhmNX5kg0mZAUlGLHvisLdTiR6oEfDDr9QI6tnD2nqA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [android] + + sass-embedded-android-arm@1.89.0: + resolution: {integrity: sha512-s6jxkEZQQrtyIGZX6Sbcu7tEixFG2VkqFgrX11flm/jZex7KaxnZtFace+wnYAgHqzzYpx0kNzJUpT+GXxm8CA==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [android] + + sass-embedded-android-ia32@1.89.0: + resolution: {integrity: sha512-GoNnNGYmp1F0ZMHqQbAurlQsjBMZKtDd5H60Ruq86uQFdnuNqQ9wHKJsJABxMnjfAn60IjefytM5PYTMcAmbfA==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [android] + + sass-embedded-android-riscv64@1.89.0: + resolution: {integrity: sha512-di+i4KkKAWTNksaQYTqBEERv46qV/tvv14TPswEfak7vcTQ2pj2mvV4KGjLYfU2LqRkX/NTXix9KFthrzFN51Q==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [android] + + sass-embedded-android-x64@1.89.0: + resolution: {integrity: sha512-1cRRDAnmAS1wLaxfFf6PCHu9sKW8FNxdM7ZkanwxO9mztrCu/uvfqTmaurY9+RaKvPus7sGYFp46/TNtl/wRjg==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [android] + + sass-embedded-darwin-arm64@1.89.0: + resolution: {integrity: sha512-EUNUzI0UkbQ6dASPyf09S3x7fNT54PjyD594ZGTY14Yh4qTuacIj27ckLmreAJNNu5QxlbhyYuOtz+XN5bMMxA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + sass-embedded-darwin-x64@1.89.0: + resolution: {integrity: sha512-23R8zSuB31Fq/MYpmQ38UR2C26BsYb66VVpJgWmWl/N+sgv/+l9ECuSPMbYNgM3vb9TP9wk9dgL6KkiCS5tAyg==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + sass-embedded-linux-arm64@1.89.0: + resolution: {integrity: sha512-g9Lp57qyx51ttKj0AN/edV43Hu1fBObvD7LpYwVfs6u3I95r0Adi90KujzNrUqXxJVmsfUwseY8kA8zvcRjhYA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-arm@1.89.0: + resolution: {integrity: sha512-KAzA1XD74d8/fiJXxVnLfFwfpmD2XqUJZz+DL6ZAPNLH1sb+yCP7brktaOyClDc/MBu61JERdHaJjIZhfX0Yqw==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-ia32@1.89.0: + resolution: {integrity: sha512-5fxBeXyvBr3pb+vyrx9V6yd7QDRXkAPbwmFVVhjqshBABOXelLysEFea7xokh/tM8JAAQ4O8Ls3eW3Eojb477g==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [linux] + + sass-embedded-linux-musl-arm64@1.89.0: + resolution: {integrity: sha512-50oelrOtN64u15vJN9uJryIuT0+UPjyeoq0zdWbY8F7LM9294Wf+Idea+nqDUWDCj1MHndyPFmR1mjeuRouJhw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-musl-arm@1.89.0: + resolution: {integrity: sha512-0Q1JeEU4/tzH7fwAwarfIh+Swn3aXG/jPhVsZpbR1c1VzkeaPngmXdmLJcVXsdb35tjk84DuYcFtJlE1HYGw4Q==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-musl-ia32@1.89.0: + resolution: {integrity: sha512-ILWqpTd+0RdsSw977iVAJf4CLetIbcQgLQf17ycS1N4StZKVRZs1bBfZhg/f/HU/4p5HondPAwepgJepZZdnFA==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [linux] + + sass-embedded-linux-musl-riscv64@1.89.0: + resolution: {integrity: sha512-n2V+Tdjj7SAuiuElJYhWiHjjB1YU0cuFvL1/m5K+ecdNStfHFWIzvBT6/vzQnBOWjI4eZECNVuQ8GwGWCufZew==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-musl-x64@1.89.0: + resolution: {integrity: sha512-KOHJdouBK3SLJKZLnFYzuxs3dn+6jaeO3p4p1JUYAcVfndcvh13Sg2sLGfOfpg7Og6ws2Nnqnx0CyL26jPJ7ag==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-linux-riscv64@1.89.0: + resolution: {integrity: sha512-0A/UWeKX6MYhVLWLkdX3NPKHO+mvIwzaf6TxGCy3vS3TODWaeDUeBhHShAr7YlOKv5xRGxf7Gx7FXCPV0mUyMA==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-x64@1.89.0: + resolution: {integrity: sha512-dRBoOFPDWctHPYK3hTk3YzyX/icVrXiw7oOjbtpaDr6JooqIWBe16FslkWyvQzdmfOFy80raKVjgoqT7DsznkQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-win32-arm64@1.89.0: + resolution: {integrity: sha512-RnlVZ14hC/W7ubzvhqnbGfjU5PFNoFP/y5qycgCy+Mezb0IKbWvZ2Lyzux8TbL3OIjOikkNpfXoNQrX706WLAA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + sass-embedded-win32-ia32@1.89.0: + resolution: {integrity: sha512-eFe9VMNG+90nuoE3eXDy+38+uEHGf7xcqalq5+0PVZfR+H9RlaEbvIUNflZV94+LOH8Jb4lrfuekhHgWDJLfSg==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [win32] + + sass-embedded-win32-x64@1.89.0: + resolution: {integrity: sha512-AaGpr5R6MLCuSvkvDdRq49ebifwLcuGPk0/10hbYw9nh3jpy2/CylYubQpIpR4yPcuD1wFwFqufTXC3HJYGb0g==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + + sass-embedded@1.89.0: + resolution: {integrity: sha512-EDrK1el9zdgJFpocCGlxatDWaP18tJBWoM1hxzo2KJBvjdmBichXI6O6KlQrigvQPO3uJ8DfmFmAAx7s7CG6uw==} + engines: {node: '>=16.0.0'} + hasBin: true + saxes@5.0.1: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} @@ -3245,6 +3396,14 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + sync-child-process@1.0.2: + resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} + engines: {node: '>=16.0.0'} + + sync-message-port@1.1.3: + resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} + engines: {node: '>=16.0.0'} + tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} @@ -3464,6 +3623,9 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} @@ -3864,6 +4026,9 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@bufbuild/protobuf@2.4.0': + optional: true + '@colors/colors@1.5.0': optional: true @@ -4333,17 +4498,17 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.2.0(vite@5.4.11(@types/node@20.17.7)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue@5.2.0(vite@5.4.11(@types/node@20.17.7)(sass-embedded@1.89.0)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3))': dependencies: - vite: 5.4.11(@types/node@20.17.7)(terser@5.32.0) + vite: 5.4.11(@types/node@20.17.7)(sass-embedded@1.89.0)(terser@5.32.0) vue: 3.5.13(typescript@5.6.3) - '@vitejs/plugin-vue@5.2.0(vite@5.4.11(@types/node@22.9.3)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue@5.2.0(vite@5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3))': dependencies: - vite: 5.4.11(@types/node@22.9.3)(terser@5.32.0) + vite: 5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0) vue: 3.5.13(typescript@5.6.3) - '@vitest/coverage-v8@2.1.5(vitest@2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(terser@5.32.0))': + '@vitest/coverage-v8@2.1.5(vitest@2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(sass-embedded@1.89.0)(terser@5.32.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -4357,7 +4522,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(terser@5.32.0) + vitest: 2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(sass-embedded@1.89.0)(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -4368,13 +4533,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.9.3)(terser@5.32.0))': + '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0))': dependencies: '@vitest/spy': 2.1.5 estree-walker: 3.0.3 magic-string: 0.30.13 optionalDependencies: - vite: 5.4.11(@types/node@22.9.3)(terser@5.32.0) + vite: 5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0) '@vitest/pretty-format@2.1.5': dependencies: @@ -4404,7 +4569,7 @@ snapshots: sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(terser@5.32.0) + vitest: 2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(sass-embedded@1.89.0)(terser@5.32.0) '@vitest/utils@2.1.5': dependencies: @@ -4791,6 +4956,9 @@ snapshots: transitivePeerDependencies: - supports-color + buffer-builder@0.2.0: + optional: true + buffer-crc32@0.2.13: {} buffer-from@1.1.2: {} @@ -4919,6 +5087,9 @@ snapshots: colorette@2.0.20: {} + colorjs.io@0.5.2: + optional: true + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -5668,6 +5839,9 @@ snapshots: immediate@3.0.6: {} + immutable@5.1.2: + optional: true + import-lazy@4.0.0: {} indent-string@4.0.0: {} @@ -6224,6 +6398,9 @@ snapshots: nanoid@3.3.1: {} + nanoid@3.3.11: + optional: true + nanoid@3.3.7: {} neo-async@2.6.2: {} @@ -6496,6 +6673,13 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.3: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + optional: true + preact@10.25.0: {} prettier@3.5.2: {} @@ -6698,12 +6882,110 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + optional: true + safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} safer-buffer@2.1.2: {} + sass-embedded-android-arm64@1.89.0: + optional: true + + sass-embedded-android-arm@1.89.0: + optional: true + + sass-embedded-android-ia32@1.89.0: + optional: true + + sass-embedded-android-riscv64@1.89.0: + optional: true + + sass-embedded-android-x64@1.89.0: + optional: true + + sass-embedded-darwin-arm64@1.89.0: + optional: true + + sass-embedded-darwin-x64@1.89.0: + optional: true + + sass-embedded-linux-arm64@1.89.0: + optional: true + + sass-embedded-linux-arm@1.89.0: + optional: true + + sass-embedded-linux-ia32@1.89.0: + optional: true + + sass-embedded-linux-musl-arm64@1.89.0: + optional: true + + sass-embedded-linux-musl-arm@1.89.0: + optional: true + + sass-embedded-linux-musl-ia32@1.89.0: + optional: true + + sass-embedded-linux-musl-riscv64@1.89.0: + optional: true + + sass-embedded-linux-musl-x64@1.89.0: + optional: true + + sass-embedded-linux-riscv64@1.89.0: + optional: true + + sass-embedded-linux-x64@1.89.0: + optional: true + + sass-embedded-win32-arm64@1.89.0: + optional: true + + sass-embedded-win32-ia32@1.89.0: + optional: true + + sass-embedded-win32-x64@1.89.0: + optional: true + + sass-embedded@1.89.0: + dependencies: + '@bufbuild/protobuf': 2.4.0 + buffer-builder: 0.2.0 + colorjs.io: 0.5.2 + immutable: 5.1.2 + rxjs: 7.8.2 + supports-color: 8.1.1 + sync-child-process: 1.0.2 + varint: 6.0.0 + optionalDependencies: + sass-embedded-android-arm: 1.89.0 + sass-embedded-android-arm64: 1.89.0 + sass-embedded-android-ia32: 1.89.0 + sass-embedded-android-riscv64: 1.89.0 + sass-embedded-android-x64: 1.89.0 + sass-embedded-darwin-arm64: 1.89.0 + sass-embedded-darwin-x64: 1.89.0 + sass-embedded-linux-arm: 1.89.0 + sass-embedded-linux-arm64: 1.89.0 + sass-embedded-linux-ia32: 1.89.0 + sass-embedded-linux-musl-arm: 1.89.0 + sass-embedded-linux-musl-arm64: 1.89.0 + sass-embedded-linux-musl-ia32: 1.89.0 + sass-embedded-linux-musl-riscv64: 1.89.0 + sass-embedded-linux-musl-x64: 1.89.0 + sass-embedded-linux-riscv64: 1.89.0 + sass-embedded-linux-x64: 1.89.0 + sass-embedded-win32-arm64: 1.89.0 + sass-embedded-win32-ia32: 1.89.0 + sass-embedded-win32-x64: 1.89.0 + optional: true + saxes@5.0.1: dependencies: xmlchars: 2.2.0 @@ -6945,6 +7227,14 @@ snapshots: symbol-tree@3.2.4: {} + sync-child-process@1.0.2: + dependencies: + sync-message-port: 1.1.3 + optional: true + + sync-message-port@1.1.3: + optional: true + tabbable@6.2.0: {} tar-fs@3.0.6: @@ -7142,6 +7432,9 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + varint@6.0.0: + optional: true + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 @@ -7152,13 +7445,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.1.5(@types/node@22.9.3)(terser@5.32.0): + vite-node@2.1.5(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0): dependencies: cac: 6.7.14 debug: 4.3.7 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.9.3)(terser@5.32.0) + vite: 5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0) transitivePeerDependencies: - '@types/node' - less @@ -7170,7 +7463,7 @@ snapshots: - supports-color - terser - vite@5.4.11(@types/node@20.17.7)(terser@5.32.0): + vite@5.4.11(@types/node@20.17.7)(sass-embedded@1.89.0)(terser@5.32.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 @@ -7178,9 +7471,10 @@ snapshots: optionalDependencies: '@types/node': 20.17.7 fsevents: 2.3.3 + sass-embedded: 1.89.0 terser: 5.32.0 - vite@5.4.11(@types/node@22.9.3)(terser@5.32.0): + vite@5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 @@ -7188,18 +7482,19 @@ snapshots: optionalDependencies: '@types/node': 22.9.3 fsevents: 2.3.3 + sass-embedded: 1.89.0 terser: 5.32.0 - vitepress-translation-helper@0.2.1(vitepress@1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.4.49)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3))(vue@3.5.13(typescript@5.6.3)): + vitepress-translation-helper@0.2.1(vitepress@1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.5.3)(sass-embedded@1.89.0)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3))(vue@3.5.13(typescript@5.6.3)): dependencies: minimist: 1.2.8 simple-git: 3.27.0 - vitepress: 1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.4.49)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3) + vitepress: 1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.5.3)(sass-embedded@1.89.0)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3) vue: 3.5.13(typescript@5.6.3) transitivePeerDependencies: - supports-color - vitepress@1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.4.49)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3): + vitepress@1.5.0(@algolia/client-search@5.15.0)(@types/node@22.9.3)(axios@1.7.7)(postcss@8.5.3)(sass-embedded@1.89.0)(search-insights@2.17.1)(terser@5.32.0)(typescript@5.6.3): dependencies: '@docsearch/css': 3.8.0 '@docsearch/js': 3.8.0(@algolia/client-search@5.15.0)(search-insights@2.17.1) @@ -7208,7 +7503,7 @@ snapshots: '@shikijs/transformers': 1.23.1 '@shikijs/types': 1.23.1 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.2.0(vite@5.4.11(@types/node@22.9.3)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3)) + '@vitejs/plugin-vue': 5.2.0(vite@5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3)) '@vue/devtools-api': 7.6.4 '@vue/shared': 3.5.13 '@vueuse/core': 11.3.0(vue@3.5.13(typescript@5.6.3)) @@ -7217,10 +7512,10 @@ snapshots: mark.js: 8.11.1 minisearch: 7.1.1 shiki: 1.23.1 - vite: 5.4.11(@types/node@22.9.3)(terser@5.32.0) + vite: 5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0) vue: 3.5.13(typescript@5.6.3) optionalDependencies: - postcss: 8.4.49 + postcss: 8.5.3 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -7249,10 +7544,10 @@ snapshots: - typescript - universal-cookie - vitest@2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(terser@5.32.0): + vitest@2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@19.0.0)(sass-embedded@1.89.0)(terser@5.32.0): dependencies: '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.9.3)(terser@5.32.0)) + '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0)) '@vitest/pretty-format': 2.1.5 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -7268,8 +7563,8 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.9.3)(terser@5.32.0) - vite-node: 2.1.5(@types/node@22.9.3)(terser@5.32.0) + vite: 5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0) + vite-node: 2.1.5(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.9.3 From 4b4d88996a8c7bbecae3cdb976098fa5b04d87a8 Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Sun, 1 Jun 2025 21:37:17 +0800 Subject: [PATCH 02/10] chore: update vue --- packages/playground/package.json | 2 +- pnpm-lock.yaml | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/playground/package.json b/packages/playground/package.json index 86fb91867..14da55457 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -9,7 +9,7 @@ "preview": "vite preview --port 4173" }, "dependencies": { - "vue": "~3.5.13" + "vue": "https://pkg.pr.new/vue@280bc48" }, "devDependencies": { "@types/node": "^20.17.31", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7cebaeba4..394552f05 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -78,21 +78,21 @@ importers: packages/playground: dependencies: vue: - specifier: ~3.5.13 - version: 3.5.13(typescript@5.6.3) + specifier: https://pkg.pr.new/vue@280bc48 + version: https://pkg.pr.new/vue@280bc48(typescript@5.6.3) devDependencies: '@types/node': specifier: ^20.17.31 version: 20.17.57 '@vitejs/plugin-vue': specifier: ^5.2.3 - version: 5.2.4(vite@5.4.19(@types/node@20.17.57)(sass-embedded@1.89.0)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.4(vite@5.4.19(@types/node@20.17.57)(sass-embedded@1.89.0)(terser@5.32.0))(vue@https://pkg.pr.new/vue@280bc48(typescript@5.6.3)) '@vue/compiler-sfc': specifier: ~3.5.13 version: 3.5.13 '@vue/tsconfig': specifier: ^0.6.0 - version: 0.6.0(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)) + version: 0.6.0(typescript@5.6.3)(vue@https://pkg.pr.new/vue@280bc48(typescript@5.6.3)) vite: specifier: ^5.4.18 version: 5.4.19(@types/node@20.17.57)(sass-embedded@1.89.0)(terser@5.32.0) @@ -859,6 +859,7 @@ packages: '@vitejs/plugin-vue@5.2.4': resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + version: 5.2.4 engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 || ^6.0.0 @@ -1000,6 +1001,7 @@ packages: '@vue/server-renderer@3.5.13': resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + version: 3.5.13 peerDependencies: vue: 3.5.13 @@ -1021,6 +1023,7 @@ packages: '@vue/tsconfig@0.6.0': resolution: {integrity: sha512-MHXNd6lzugsEHvuA6l1GqrF5jROqUon8sP/HInLPnthJiYvB0VvpHMywg7em1dBZfFZNBSkR68qH37zOdRHmCw==} + version: 0.6.0 peerDependencies: typescript: 5.x vue: ^3.3.0 @@ -4645,10 +4648,10 @@ snapshots: vite: 5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0) vue: 3.5.13(typescript@5.6.3) - '@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@20.17.57)(sass-embedded@1.89.0)(terser@5.32.0))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@20.17.57)(sass-embedded@1.89.0)(terser@5.32.0))(vue@https://pkg.pr.new/vue@280bc48(typescript@5.6.3))': dependencies: vite: 5.4.19(@types/node@20.17.57)(sass-embedded@1.89.0)(terser@5.32.0) - vue: 3.5.13(typescript@5.6.3) + vue: https://pkg.pr.new/vue@280bc48(typescript@5.6.3) '@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0))(vue@https://pkg.pr.new/vue@280bc48(typescript@5.6.3))': dependencies: @@ -4906,10 +4909,10 @@ snapshots: js-beautify: 1.15.1 vue-component-type-helpers: 2.0.21 - '@vue/tsconfig@0.6.0(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3))': + '@vue/tsconfig@0.6.0(typescript@5.6.3)(vue@https://pkg.pr.new/vue@280bc48(typescript@5.6.3))': optionalDependencies: typescript: 5.6.3 - vue: 3.5.13(typescript@5.6.3) + vue: https://pkg.pr.new/vue@280bc48(typescript@5.6.3) '@vueuse/core@11.3.0(vue@3.5.13(typescript@5.6.3))': dependencies: @@ -7698,7 +7701,7 @@ snapshots: vite@5.4.11(@types/node@22.9.3)(sass-embedded@1.89.0)(terser@5.32.0): dependencies: esbuild: 0.21.5 - postcss: 8.4.49 + postcss: 8.5.3 rollup: 4.27.4 optionalDependencies: '@types/node': 22.9.3 From c8933a608de10a3a6093a2c15837deaeeda2bcf8 Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Tue, 3 Jun 2025 14:46:04 +0800 Subject: [PATCH 03/10] chore: update peerDependencies for pkg.pr.new --- 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 ec13488f0..fabde69d7 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -107,7 +107,7 @@ "test:e2e:bs-test": "node e2e/runner.mjs --local --env browserstack.local_chrome --tag browserstack" }, "peerDependencies": { - "vue": "^3.2.0" + "vue": "https://pkg.pr.new/vue@280bc48" }, "vetur": { "tags": "vetur/tags.json", From 01a808af8cf0946d28d11aa48889ed07869eb0ea Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Tue, 3 Jun 2025 15:17:03 +0800 Subject: [PATCH 04/10] chore: revert deps --- 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 fabde69d7..ec13488f0 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -107,7 +107,7 @@ "test:e2e:bs-test": "node e2e/runner.mjs --local --env browserstack.local_chrome --tag browserstack" }, "peerDependencies": { - "vue": "https://pkg.pr.new/vue@280bc48" + "vue": "^3.2.0" }, "vetur": { "tags": "vetur/tags.json", From 668f808b2fcbcf6bbd502e17f12e749d89bd979b Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Tue, 3 Jun 2025 18:14:49 +0800 Subject: [PATCH 05/10] chore: move createTemplateRefSetter to top setup --- packages/router/src/VaporRouterView.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/router/src/VaporRouterView.ts b/packages/router/src/VaporRouterView.ts index 36ceb6106..3a636d6f7 100644 --- a/packages/router/src/VaporRouterView.ts +++ b/packages/router/src/VaporRouterView.ts @@ -143,6 +143,8 @@ export const VaporRouterViewImpl = /*#__PURE__*/ defineVaporComponent({ : null }) + const setRef = createTemplateRefSetter() + return createDynamicComponent(() => { if (!ViewComponent.value) { return () => @@ -152,8 +154,6 @@ export const VaporRouterViewImpl = /*#__PURE__*/ defineVaporComponent({ }) } - const setRef = createTemplateRefSetter() - return () => { const component = createComponent( ViewComponent.value as VaporComponent, From 02a3c5b98d15b6343b866249f4e50affeabfd4a8 Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Fri, 11 Jul 2025 15:15:11 +0800 Subject: [PATCH 06/10] chore: remove vapor flag --- packages/router/src/router.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/router/src/router.ts b/packages/router/src/router.ts index aee3e000c..748a06a32 100644 --- a/packages/router/src/router.ts +++ b/packages/router/src/router.ts @@ -1259,13 +1259,11 @@ export function createRouter(options: RouterOptions): Router { app.component('RouterLink', RouterLink) app.component('RouterView', RouterView) - if (!app.vapor) { - app.config.globalProperties.$router = router - Object.defineProperty(app.config.globalProperties, '$route', { - enumerable: true, - get: () => unref(currentRoute), - }) - } + app.config.globalProperties.$router = router + Object.defineProperty(app.config.globalProperties, '$route', { + enumerable: true, + get: () => unref(currentRoute), + }) // this initial navigation is only necessary on client, on server it doesn't // make sense because it will create an extra unnecessary navigation and could From def481c5acb4a4a29a82b0a88fa22f557194da97 Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Thu, 11 Dec 2025 15:45:47 +0800 Subject: [PATCH 07/10] chore: apply edison's suggestions --- packages/router/package.json | 2 +- packages/router/src/VaporRouterLink.ts | 56 ++++----- packages/router/src/VaporRouterView.ts | 41 +++---- pnpm-lock.yaml | 156 ++++++++++++++++++++++++- 4 files changed, 198 insertions(+), 57 deletions(-) diff --git a/packages/router/package.json b/packages/router/package.json index a5b1bb542..50ca273a7 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -149,6 +149,6 @@ "tsdown": "^0.15.7", "tsup": "^8.5.0", "vite": "^7.1.10", - "vue": "~3.6.0-alpha.6" + "vue": "https://pkg.pr.new/vue@918c7ad" } } diff --git a/packages/router/src/VaporRouterLink.ts b/packages/router/src/VaporRouterLink.ts index 935cd702f..3deefa815 100644 --- a/packages/router/src/VaporRouterLink.ts +++ b/packages/router/src/VaporRouterLink.ts @@ -8,8 +8,8 @@ import { import { RouteLocationRaw } from './typed-routes' import { computed, - createComponentWithFallback, - createDynamicComponent, + createKeyedFragment, + createPlainElement, defineVaporComponent, inject, PropType, @@ -18,8 +18,6 @@ import { export const VaporRouterLinkImpl = /*#__PURE__*/ defineVaporComponent({ name: 'RouterLink', - // @ts-ignore - compatConfig: { MODE: 3 }, props: { to: { type: [String, Object] as PropType, @@ -37,8 +35,6 @@ export const VaporRouterLinkImpl = /*#__PURE__*/ defineVaporComponent({ viewTransition: Boolean, }, - useLink, - setup(props, { slots, attrs }) { const link = reactive(useLink(props)) const { options } = inject(routerKey)! @@ -61,29 +57,35 @@ export const VaporRouterLinkImpl = /*#__PURE__*/ defineVaporComponent({ )]: link.isExactActive, })) - return createDynamicComponent(() => { - const children = slots.default && slots.default(link) - return props.custom - ? () => children - : () => - createComponentWithFallback( - 'a', - { - 'aria-current': () => - link.isExactActive ? props.ariaCurrentValue : null, - href: () => link.href, - // this would override user added attrs but Vue will still add - // the listener, so we end up triggering both - onClick: () => link.navigate, - class: () => elClass.value, - $: [() => attrs], - }, - { - default: () => children, - } - ) + const render = computed(() => { + if (props.custom && slots.default) { + return () => slots.default(link) + } + return () => + createPlainElement( + 'a', + { + 'aria-current': () => + link.isExactActive ? props.ariaCurrentValue : null, + href: () => link.href, + // this would override user added attrs but Vue will still add + // the listener, so we end up triggering both + onClick: () => link.navigate, + class: () => elClass.value, + $: [() => attrs], + }, + slots + ) }) + + return createKeyedFragment( + () => render.value, + () => render.value() + ) }, }) +// @ts-ignore +VaporRouterLinkImpl.useLink = useLink + export const VaporRouterLink: _RouterLinkI = VaporRouterLinkImpl as any diff --git a/packages/router/src/VaporRouterView.ts b/packages/router/src/VaporRouterView.ts index 3a636d6f7..cb10bae6c 100644 --- a/packages/router/src/VaporRouterView.ts +++ b/packages/router/src/VaporRouterView.ts @@ -13,10 +13,9 @@ import { VNode, createTemplateRefSetter, createComponent, - createDynamicComponent, + createKeyedFragment, defineVaporComponent, type VaporComponent, - type VaporSlot, } from 'vue' import type { RouteLocationNormalizedLoaded } from './typed-routes' import type { RouteLocationMatched } from './types' @@ -43,11 +42,6 @@ export const VaporRouterViewImpl = /*#__PURE__*/ defineVaporComponent({ route: Object as PropType, }, - // Better compat for @vue/compat users - // https://github.com/vuejs/router/issues/1315 - // @ts-ignore - compatConfig: { MODE: 3 }, - setup(props, { attrs, slots }) { const injectedRoute = inject(routerViewLocationKey)! const routeToDisplay = computed( @@ -145,13 +139,15 @@ export const VaporRouterViewImpl = /*#__PURE__*/ defineVaporComponent({ const setRef = createTemplateRefSetter() - return createDynamicComponent(() => { + const render = computed(() => { if (!ViewComponent.value) { return () => - normalizeSlot(slots.default, { - Component: ViewComponent.value, - route: routeToDisplay.value, - }) + slots.default + ? slots.default({ + Component: ViewComponent.value, + route: routeToDisplay.value, + }) + : [] } return () => { @@ -163,22 +159,21 @@ export const VaporRouterViewImpl = /*#__PURE__*/ defineVaporComponent({ ) setRef(component, viewRef) - return ( - normalizeSlot(slots.default, { - Component: component, - route: routeToDisplay.value, - }) || component - ) + return slots.default + ? slots.default({ + Component: component, + route: routeToDisplay.value, + }) + : component } }) + return createKeyedFragment( + () => routeToDisplay.value, + () => render.value() + ) }, }) -function normalizeSlot(slot: VaporSlot | undefined, data: any) { - if (!slot) return null - return slot(data) -} - // export the public type for h/tsx inference // also to avoid inline import() in generated d.ts files /** diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4791642a7..881693939 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -184,13 +184,13 @@ importers: version: 7.0.0-dev.20251013.1 '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.2(vite@7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2))(vue@3.6.0-alpha.6(typescript@5.9.3)) + version: 6.0.2(vite@7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2))(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3)) '@vue/compiler-sfc': specifier: ~3.5.22 version: 3.5.25 '@vue/server-renderer': specifier: ~3.5.22 - version: 3.5.25(vue@3.6.0-alpha.6(typescript@5.9.3)) + version: 3.5.25(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3)) '@vue/test-utils': specifier: ^2.4.6 version: 2.4.6 @@ -240,8 +240,8 @@ importers: specifier: ^7.1.10 version: 7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2) vue: - specifier: ~3.6.0-alpha.6 - version: 3.6.0-alpha.6(typescript@5.9.3) + specifier: https://pkg.pr.new/vue@918c7ad + version: https://pkg.pr.new/vue@918c7ad(typescript@5.9.3) packages: @@ -1740,27 +1740,47 @@ packages: '@vue/compiler-core@3.6.0-alpha.6': resolution: {integrity: sha512-QmvS0BwDlP5ZcT41O1S2VdsjtIP2OJim/ZbzYPoVrWjBk8JLXP8Ow7sUtIS/Xj+k8Ulia8QjU5fqIvMCpdRDxw==} + '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad} + version: 3.6.0-alpha.6 + '@vue/compiler-dom@3.5.25': resolution: {integrity: sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==} '@vue/compiler-dom@3.6.0-alpha.6': resolution: {integrity: sha512-BUQ/lMqowrq7NDoy1YLewAfgkYYkqJX1LmpiD5KFBdSEkiIy23hQ15Js7MNcfS3LNr3B5+jziJWQty3gFEMr/g==} + '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad} + version: 3.6.0-alpha.6 + '@vue/compiler-sfc@3.5.25': resolution: {integrity: sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==} '@vue/compiler-sfc@3.6.0-alpha.6': resolution: {integrity: sha512-oXmiCELeGNBP6cbKtBN4sdlzh9zVvRQPJWTOcTKrO73Jbs1qiUExXndBYkqATUKoj4yxh+chlT+izo+D4L9pNg==} + '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@918c7ad} + version: 3.6.0-alpha.6 + '@vue/compiler-ssr@3.5.25': resolution: {integrity: sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==} '@vue/compiler-ssr@3.6.0-alpha.6': resolution: {integrity: sha512-OM+ddEVhRcSfcLjOWBdHAzcObs9tXXlSwV0gwW1KrVW/vezS21OCjO7ZwvRcpwJ0xPpE6hzUnwrzys2R7K+uIA==} + '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad} + version: 3.6.0-alpha.6 + '@vue/compiler-vapor@3.6.0-alpha.6': resolution: {integrity: sha512-qBq9IZiiN27ZG3xvAcveHADI3DjFdGT4nBVGJ0Japy1A8+FO/1Gb5wCzE0iU2tG721DvqVtil0uACvyBGAthkg==} + '@vue/compiler-vapor@https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@918c7ad} + version: 3.6.0-alpha.6 + '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} @@ -1798,25 +1818,44 @@ packages: '@vue/reactivity@3.6.0-alpha.6': resolution: {integrity: sha512-IDPTuMH5nCPfVK3GuFiUgWI5zwrxsiIJ1Gs29tiVbqtg90rjgLXBYahItyaMpBUrZulUKZum8nOpex95qMLGhQ==} + '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad} + version: 3.6.0-alpha.6 + '@vue/runtime-core@3.5.25': resolution: {integrity: sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==} '@vue/runtime-core@3.6.0-alpha.6': resolution: {integrity: sha512-UclFZOY0V50dy5hKUc5aS/Qf9+H5zDw0kDIcPA+rjgDy+vIAXeqjPZkwUvDG8uYB9xMM5nfKDEn/ie4Dy3agKw==} + '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-core@918c7ad} + version: 3.6.0-alpha.6 + '@vue/runtime-dom@3.5.25': resolution: {integrity: sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==} '@vue/runtime-dom@3.6.0-alpha.6': resolution: {integrity: sha512-6GBuLqTnH+uhiWBp+bSjeEMdumG6JgwSfQZ14IDscm6jR/fCFRncjrf4pBmdlJ/hIKyQKjHwUw8SLSubhl6dfg==} + '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad} + version: 3.6.0-alpha.6 + '@vue/runtime-vapor@3.6.0-alpha.6': resolution: {integrity: sha512-+3g+vEOm7TtgZeggbPD+GOb3iDEjtEa8dD+tJXaBz7Ip5gxJ9iJM+C47qDAAQz6qn3gy8Wp4rEPx5l4gqIMZLg==} peerDependencies: '@vue/runtime-dom': 3.6.0-alpha.6 + '@vue/runtime-vapor@https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@918c7ad} + version: 3.6.0-alpha.6 + peerDependencies: + '@vue/runtime-dom': 3.6.0-alpha.6 + '@vue/server-renderer@3.5.25': resolution: {integrity: sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==} + version: 3.5.25 peerDependencies: vue: 3.5.25 @@ -1825,12 +1864,22 @@ packages: peerDependencies: vue: 3.6.0-alpha.6 + '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/server-renderer@918c7ad} + version: 3.6.0-alpha.6 + peerDependencies: + vue: 3.6.0-alpha.6 + '@vue/shared@3.5.25': resolution: {integrity: sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==} '@vue/shared@3.6.0-alpha.6': resolution: {integrity: sha512-w6A3AUtSlp3GxJUkTFJMaMTzIzPFHxbFzbyVm811dZKzrbh9VHbYiHY41wIaYCfGjwSpqFQVaCaZ1qOMIi5eBQ==} + '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad} + version: 3.6.0-alpha.6 + '@vue/test-utils@2.4.6': resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==} @@ -4673,6 +4722,15 @@ packages: typescript: optional: true + vue@https://pkg.pr.new/vue@918c7ad: + resolution: {tarball: https://pkg.pr.new/vue@918c7ad} + version: 3.6.0-alpha.6 + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + w3c-xmlserializer@5.0.0: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} @@ -6006,6 +6064,12 @@ snapshots: vite: 7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2) vue: 3.6.0-alpha.6(typescript@5.9.3) + '@vitejs/plugin-vue@6.0.2(vite@7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2))(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3))': + dependencies: + '@rolldown/pluginutils': 1.0.0-beta.50 + vite: 7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2) + vue: https://pkg.pr.new/vue@918c7ad(typescript@5.9.3) + '@vitest/browser@3.2.4(playwright@1.57.0)(vite@7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2))(vitest@3.2.4)': dependencies: '@testing-library/dom': 10.4.1 @@ -6156,6 +6220,14 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.25': dependencies: '@vue/compiler-core': 3.5.25 @@ -6166,6 +6238,11 @@ snapshots: '@vue/compiler-core': 3.6.0-alpha.6 '@vue/shared': 3.6.0-alpha.6 + '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad': + dependencies: + '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/compiler-sfc@3.5.25': dependencies: '@babel/parser': 7.28.5 @@ -6191,6 +6268,19 @@ snapshots: postcss: 8.5.6 source-map-js: 1.2.1 + '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@918c7ad': + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad + '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad + '@vue/compiler-vapor': https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.25': dependencies: '@vue/compiler-dom': 3.5.25 @@ -6201,6 +6291,11 @@ snapshots: '@vue/compiler-dom': 3.6.0-alpha.6 '@vue/shared': 3.6.0-alpha.6 + '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad': + dependencies: + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/compiler-vapor@3.6.0-alpha.6': dependencies: '@babel/parser': 7.28.5 @@ -6209,6 +6304,14 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-vapor@https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@918c7ad': + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/devtools-api@6.6.4': {} '@vue/devtools-api@7.7.9': @@ -6275,6 +6378,10 @@ snapshots: dependencies: '@vue/shared': 3.6.0-alpha.6 + '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad': + dependencies: + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/runtime-core@3.5.25': dependencies: '@vue/reactivity': 3.5.25 @@ -6285,6 +6392,11 @@ snapshots: '@vue/reactivity': 3.6.0-alpha.6 '@vue/shared': 3.6.0-alpha.6 + '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@918c7ad': + dependencies: + '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/runtime-dom@3.5.25': dependencies: '@vue/reactivity': 3.5.25 @@ -6299,23 +6411,36 @@ snapshots: '@vue/shared': 3.6.0-alpha.6 csstype: 3.2.3 + '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad': + dependencies: + '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad + '@vue/runtime-core': https://pkg.pr.new/vuejs/core/@vue/runtime-core@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + csstype: 3.2.3 + '@vue/runtime-vapor@3.6.0-alpha.6(@vue/runtime-dom@3.6.0-alpha.6)': dependencies: '@vue/reactivity': 3.6.0-alpha.6 '@vue/runtime-dom': 3.6.0-alpha.6 '@vue/shared': 3.6.0-alpha.6 + '@vue/runtime-vapor@https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@918c7ad(@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad)': + dependencies: + '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad + '@vue/runtime-dom': https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/server-renderer@3.5.25(vue@3.5.25(typescript@5.9.3))': dependencies: '@vue/compiler-ssr': 3.5.25 '@vue/shared': 3.5.25 vue: 3.5.25(typescript@5.9.3) - '@vue/server-renderer@3.5.25(vue@3.6.0-alpha.6(typescript@5.9.3))': + '@vue/server-renderer@3.5.25(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3))': dependencies: '@vue/compiler-ssr': 3.5.25 '@vue/shared': 3.5.25 - vue: 3.6.0-alpha.6(typescript@5.9.3) + vue: https://pkg.pr.new/vue@918c7ad(typescript@5.9.3) '@vue/server-renderer@3.6.0-alpha.6(vue@3.6.0-alpha.6(typescript@5.9.3))': dependencies: @@ -6323,10 +6448,18 @@ snapshots: '@vue/shared': 3.6.0-alpha.6 vue: 3.6.0-alpha.6(typescript@5.9.3) + '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@918c7ad(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3))': + dependencies: + '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + vue: https://pkg.pr.new/vue@918c7ad(typescript@5.9.3) + '@vue/shared@3.5.25': {} '@vue/shared@3.6.0-alpha.6': {} + '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad': {} + '@vue/test-utils@2.4.6': dependencies: js-beautify: 1.15.4 @@ -9407,6 +9540,17 @@ snapshots: optionalDependencies: typescript: 5.9.3 + vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3): + dependencies: + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad + '@vue/compiler-sfc': https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@918c7ad + '@vue/runtime-dom': https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad + '@vue/runtime-vapor': https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@918c7ad(@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad) + '@vue/server-renderer': https://pkg.pr.new/vuejs/core/@vue/server-renderer@918c7ad(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3)) + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + optionalDependencies: + typescript: 5.9.3 + w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 From 451f1da0701bb79435a98623c74ac6e018280252 Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Thu, 11 Dec 2025 15:47:37 +0800 Subject: [PATCH 08/10] chore: fix lint --- packages/router/src/RouterView.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/router/src/RouterView.ts b/packages/router/src/RouterView.ts index a456c2b63..ce4e81803 100644 --- a/packages/router/src/RouterView.ts +++ b/packages/router/src/RouterView.ts @@ -37,8 +37,10 @@ export interface RouterViewProps { route?: RouteLocationNormalized } -export interface RouterViewDevtoolsContext - extends Pick { +export interface RouterViewDevtoolsContext extends Pick< + RouteLocationMatched, + 'path' | 'name' | 'meta' +> { depth: number } From d0540d6a5d767cd1218f2b394f1f071f608565e5 Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Thu, 11 Dec 2025 16:44:41 +0800 Subject: [PATCH 09/10] chore: update deps --- packages/router/package.json | 2 +- pnpm-lock.yaml | 323 ++++++++++++++++++++++++++--------- 2 files changed, 248 insertions(+), 77 deletions(-) diff --git a/packages/router/package.json b/packages/router/package.json index 50ca273a7..1ef798c7e 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -149,6 +149,6 @@ "tsdown": "^0.15.7", "tsup": "^8.5.0", "vite": "^7.1.10", - "vue": "https://pkg.pr.new/vue@918c7ad" + "vue": "https://pkg.pr.new/vue@13320fd" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 881693939..a99c97d2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -184,13 +184,13 @@ importers: version: 7.0.0-dev.20251013.1 '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.2(vite@7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2))(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3)) + version: 6.0.2(vite@7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2))(vue@https://pkg.pr.new/vue@13320fd(typescript@5.9.3)) '@vue/compiler-sfc': specifier: ~3.5.22 version: 3.5.25 '@vue/server-renderer': specifier: ~3.5.22 - version: 3.5.25(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3)) + version: 3.5.25(vue@https://pkg.pr.new/vue@13320fd(typescript@5.9.3)) '@vue/test-utils': specifier: ^2.4.6 version: 2.4.6 @@ -232,7 +232,7 @@ importers: version: 0.36.0(rollup@4.53.3)(typescript@5.9.3) tsdown: specifier: ^0.15.7 - version: 0.15.12(@typescript/native-preview@7.0.0-dev.20251013.1)(typescript@5.9.3)(vue-tsc@3.1.8(typescript@5.9.3)) + version: 0.15.12(@typescript/native-preview@7.0.0-dev.20251013.1)(typescript@5.9.3)(unrun@0.2.19)(vue-tsc@3.1.8(typescript@5.9.3)) tsup: specifier: ^8.5.0 version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) @@ -240,8 +240,8 @@ importers: specifier: ^7.1.10 version: 7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2) vue: - specifier: https://pkg.pr.new/vue@918c7ad - version: https://pkg.pr.new/vue@918c7ad(typescript@5.9.3) + specifier: https://pkg.pr.new/vue@13320fd + version: https://pkg.pr.new/vue@13320fd(typescript@5.9.3) packages: @@ -1193,6 +1193,9 @@ packages: '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + '@oxc-project/types@0.101.0': + resolution: {integrity: sha512-nuFhqlUzJX+gVIPPfuE6xurd4lST3mdcWOhyK/rZO0B9XWMKm79SuszIQEnSMmmDhq1DC8WWVYGVd+6F93o1gQ==} + '@oxc-project/types@0.95.0': resolution: {integrity: sha512-vACy7vhpMPhjEJhULNxrdR0D943TkA/MigMpJCHmBHvMXxRStRi/dPtTlfQ3uDwWSzRpT8z+7ImjZVf8JWBocQ==} @@ -1216,71 +1219,142 @@ packages: cpu: [arm64] os: [android] + '@rolldown/binding-android-arm64@1.0.0-beta.53': + resolution: {integrity: sha512-Ok9V8o7o6YfSdTTYA/uHH30r3YtOxLD6G3wih/U9DO0ucBBFq8WPt/DslU53OgfteLRHITZny9N/qCUxMf9kjQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-beta.45': resolution: {integrity: sha512-xjCv4CRVsSnnIxTuyH1RDJl5OEQ1c9JYOwfDAHddjJDxCw46ZX9q80+xq7Eok7KC4bRSZudMJllkvOKv0T9SeA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.0-beta.53': + resolution: {integrity: sha512-yIsKqMz0CtRnVa6x3Pa+mzTihr4Ty+Z6HfPbZ7RVbk1Uxnco4+CUn7Qbm/5SBol1JD/7nvY8rphAgyAi7Lj6Vg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-beta.45': resolution: {integrity: sha512-ddcO9TD3D/CLUa/l8GO8LHzBOaZqWg5ClMy3jICoxwCuoz47h9dtqPsIeTiB6yR501LQTeDsjA4lIFd7u3Ljfw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-beta.53': + resolution: {integrity: sha512-GTXe+mxsCGUnJOFMhfGWmefP7Q9TpYUseHvhAhr21nCTgdS8jPsvirb0tJwM3lN0/u/cg7bpFNa16fQrjKrCjQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-beta.45': resolution: {integrity: sha512-MBTWdrzW9w+UMYDUvnEuh0pQvLENkl2Sis15fHTfHVW7ClbGuez+RWopZudIDEGkpZXdeI4CkRXk+vdIIebrmg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.0-beta.53': + resolution: {integrity: sha512-9Tmp7bBvKqyDkMcL4e089pH3RsjD3SUungjmqWtyhNOxoQMh0fSmINTyYV8KXtE+JkxYMPWvnEt+/mfpVCkk8w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.45': resolution: {integrity: sha512-4YgoCFiki1HR6oSg+GxxfzfnVCesQxLF1LEnw9uXS/MpBmuog0EOO2rYfy69rWP4tFZL9IWp6KEfGZLrZ7aUog==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.53': + resolution: {integrity: sha512-a1y5fiB0iovuzdbjUxa7+Zcvgv+mTmlGGC4XydVIsyl48eoxgaYkA3l9079hyTyhECsPq+mbr0gVQsFU11OJAQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.45': resolution: {integrity: sha512-LE1gjAwQRrbCOorJJ7LFr10s5vqYf5a00V5Ea9wXcT2+56n5YosJkcp8eQ12FxRBv2YX8dsdQJb+ZTtYJwb6XQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.53': + resolution: {integrity: sha512-bpIGX+ov9PhJYV+wHNXl9rzq4F0QvILiURn0y0oepbQx+7stmQsKA0DhPGwmhfvF856wq+gbM8L92SAa/CBcLg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.45': resolution: {integrity: sha512-tdy8ThO/fPp40B81v0YK3QC+KODOmzJzSUOO37DinQxzlTJ026gqUSOM8tzlVixRbQJltgVDCTYF8HNPRErQTA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.53': + resolution: {integrity: sha512-bGe5EBB8FVjHBR1mOLOPEFg1Lp3//7geqWkU5NIhxe+yH0W8FVrQ6WRYOap4SUTKdklD/dC4qPLREkMMQ855FA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.45': resolution: {integrity: sha512-lS082ROBWdmOyVY/0YB3JmsiClaWoxvC+dA8/rbhyB9VLkvVEaihLEOr4CYmrMse151C4+S6hCw6oa1iewox7g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.53': + resolution: {integrity: sha512-qL+63WKVQs1CMvFedlPt0U9PiEKJOAL/bsHMKUDS6Vp2Q+YAv/QLPu8rcvkfIMvQ0FPU2WL0aX4eWwF6e/GAnA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + '@rolldown/binding-linux-x64-musl@1.0.0-beta.45': resolution: {integrity: sha512-Hi73aYY0cBkr1/SvNQqH8Cd+rSV6S9RB5izCv0ySBcRnd/Wfn5plguUoGYwBnhHgFbh6cPw9m2dUVBR6BG1gxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + '@rolldown/binding-linux-x64-musl@1.0.0-beta.53': + resolution: {integrity: sha512-VGl9JIGjoJh3H8Mb+7xnVqODajBmrdOOb9lxWXdcmxyI+zjB2sux69br0hZJDTyLJfvBoYm439zPACYbCjGRmw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + '@rolldown/binding-openharmony-arm64@1.0.0-beta.45': resolution: {integrity: sha512-fljEqbO7RHHogNDxYtTzr+GNjlfOx21RUyGmF+NrkebZ8emYYiIqzPxsaMZuRx0rgZmVmliOzEp86/CQFDKhJQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.0-beta.53': + resolution: {integrity: sha512-B4iIserJXuSnNzA5xBLFUIjTfhNy7d9sq4FUMQY3GhQWGVhS2RWWzzDnkSU6MUt7/aHUrep0CdQfXUJI9D3W7A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-beta.45': resolution: {integrity: sha512-ZJDB7lkuZE9XUnWQSYrBObZxczut+8FZ5pdanm8nNS1DAo8zsrPuvGwn+U3fwU98WaiFsNrA4XHngesCGr8tEQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.0-beta.53': + resolution: {integrity: sha512-BUjAEgpABEJXilGq/BPh7jeU3WAJ5o15c1ZEgHaDWSz3LB881LQZnbNJHmUiM4d1JQWMYYyR1Y490IBHi2FPJg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.45': resolution: {integrity: sha512-zyzAjItHPUmxg6Z8SyRhLdXlJn3/D9KL5b9mObUrBHhWS/GwRH4665xCiFqeuktAhhWutqfc+rOV2LjK4VYQGQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.53': + resolution: {integrity: sha512-s27uU7tpCWSjHBnxyVXHt3rMrQdJq5MHNv3BzsewCIroIw3DJFjMH1dzCPPMUFxnh1r52Nf9IJ/eWp6LDoyGcw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.45': resolution: {integrity: sha512-wODcGzlfxqS6D7BR0srkJk3drPwXYLu7jPHN27ce2c4PUnVVmJnp9mJzUQGT4LpmHmmVdMZ+P6hKvyTGBzc1CA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1293,12 +1367,21 @@ packages: cpu: [x64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.53': + resolution: {integrity: sha512-cjWL/USPJ1g0en2htb4ssMjIycc36RvdQAx1WlXnS6DpULswiUTVXPDesTifSKYSyvx24E0YqQkEm0K/M2Z/AA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-beta.45': resolution: {integrity: sha512-Le9ulGCrD8ggInzWw/k2J8QcbPz7eGIOWqfJ2L+1R0Opm7n6J37s2hiDWlh6LJN0Lk9L5sUzMvRHKW7UxBZsQA==} '@rolldown/pluginutils@1.0.0-beta.50': resolution: {integrity: sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==} + '@rolldown/pluginutils@1.0.0-beta.53': + resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} + '@rollup/plugin-commonjs@28.0.9': resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -1740,8 +1823,8 @@ packages: '@vue/compiler-core@3.6.0-alpha.6': resolution: {integrity: sha512-QmvS0BwDlP5ZcT41O1S2VdsjtIP2OJim/ZbzYPoVrWjBk8JLXP8Ow7sUtIS/Xj+k8Ulia8QjU5fqIvMCpdRDxw==} - '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad} + '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-core@13320fd} version: 3.6.0-alpha.6 '@vue/compiler-dom@3.5.25': @@ -1750,8 +1833,8 @@ packages: '@vue/compiler-dom@3.6.0-alpha.6': resolution: {integrity: sha512-BUQ/lMqowrq7NDoy1YLewAfgkYYkqJX1LmpiD5KFBdSEkiIy23hQ15Js7MNcfS3LNr3B5+jziJWQty3gFEMr/g==} - '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad} + '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-dom@13320fd} version: 3.6.0-alpha.6 '@vue/compiler-sfc@3.5.25': @@ -1760,8 +1843,8 @@ packages: '@vue/compiler-sfc@3.6.0-alpha.6': resolution: {integrity: sha512-oXmiCELeGNBP6cbKtBN4sdlzh9zVvRQPJWTOcTKrO73Jbs1qiUExXndBYkqATUKoj4yxh+chlT+izo+D4L9pNg==} - '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@918c7ad} + '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@13320fd} version: 3.6.0-alpha.6 '@vue/compiler-ssr@3.5.25': @@ -1770,15 +1853,15 @@ packages: '@vue/compiler-ssr@3.6.0-alpha.6': resolution: {integrity: sha512-OM+ddEVhRcSfcLjOWBdHAzcObs9tXXlSwV0gwW1KrVW/vezS21OCjO7ZwvRcpwJ0xPpE6hzUnwrzys2R7K+uIA==} - '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad} + '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@13320fd} version: 3.6.0-alpha.6 '@vue/compiler-vapor@3.6.0-alpha.6': resolution: {integrity: sha512-qBq9IZiiN27ZG3xvAcveHADI3DjFdGT4nBVGJ0Japy1A8+FO/1Gb5wCzE0iU2tG721DvqVtil0uACvyBGAthkg==} - '@vue/compiler-vapor@https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@918c7ad} + '@vue/compiler-vapor@https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@13320fd} version: 3.6.0-alpha.6 '@vue/devtools-api@6.6.4': @@ -1818,8 +1901,8 @@ packages: '@vue/reactivity@3.6.0-alpha.6': resolution: {integrity: sha512-IDPTuMH5nCPfVK3GuFiUgWI5zwrxsiIJ1Gs29tiVbqtg90rjgLXBYahItyaMpBUrZulUKZum8nOpex95qMLGhQ==} - '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad} + '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/reactivity@13320fd} version: 3.6.0-alpha.6 '@vue/runtime-core@3.5.25': @@ -1828,8 +1911,8 @@ packages: '@vue/runtime-core@3.6.0-alpha.6': resolution: {integrity: sha512-UclFZOY0V50dy5hKUc5aS/Qf9+H5zDw0kDIcPA+rjgDy+vIAXeqjPZkwUvDG8uYB9xMM5nfKDEn/ie4Dy3agKw==} - '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-core@918c7ad} + '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-core@13320fd} version: 3.6.0-alpha.6 '@vue/runtime-dom@3.5.25': @@ -1838,8 +1921,8 @@ packages: '@vue/runtime-dom@3.6.0-alpha.6': resolution: {integrity: sha512-6GBuLqTnH+uhiWBp+bSjeEMdumG6JgwSfQZ14IDscm6jR/fCFRncjrf4pBmdlJ/hIKyQKjHwUw8SLSubhl6dfg==} - '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad} + '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-dom@13320fd} version: 3.6.0-alpha.6 '@vue/runtime-vapor@3.6.0-alpha.6': @@ -1847,8 +1930,8 @@ packages: peerDependencies: '@vue/runtime-dom': 3.6.0-alpha.6 - '@vue/runtime-vapor@https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@918c7ad} + '@vue/runtime-vapor@https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@13320fd} version: 3.6.0-alpha.6 peerDependencies: '@vue/runtime-dom': 3.6.0-alpha.6 @@ -1864,8 +1947,8 @@ packages: peerDependencies: vue: 3.6.0-alpha.6 - '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/server-renderer@918c7ad} + '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/server-renderer@13320fd} version: 3.6.0-alpha.6 peerDependencies: vue: 3.6.0-alpha.6 @@ -1876,8 +1959,8 @@ packages: '@vue/shared@3.6.0-alpha.6': resolution: {integrity: sha512-w6A3AUtSlp3GxJUkTFJMaMTzIzPFHxbFzbyVm811dZKzrbh9VHbYiHY41wIaYCfGjwSpqFQVaCaZ1qOMIi5eBQ==} - '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad} + '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@13320fd': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/shared@13320fd} version: 3.6.0-alpha.6 '@vue/test-utils@2.4.6': @@ -3979,6 +4062,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rolldown@1.0.0-beta.53: + resolution: {integrity: sha512-Qd9c2p0XKZdgT5AYd+KgAMggJ8ZmCs3JnS9PTMWkyUfteKlfmKtxJbWTHkVakxwXs1Ub7jrRYVeFeF7N0sQxyw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rollup-plugin-typescript2@0.36.0: resolution: {integrity: sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==} peerDependencies: @@ -4495,6 +4583,16 @@ packages: resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} engines: {node: '>=20.19.0'} + unrun@0.2.19: + resolution: {integrity: sha512-DbwbJ9BvPEb3BeZnIpP9S5tGLO/JIgPQ3JrpMRFIfZMZfMG19f26OlLbC2ml8RRdrI2ZA7z2t+at5tsIHbh6Qw==} + engines: {node: '>=20.19.0'} + hasBin: true + peerDependencies: + synckit: ^0.11.11 + peerDependenciesMeta: + synckit: + optional: true + untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} @@ -4722,8 +4820,8 @@ packages: typescript: optional: true - vue@https://pkg.pr.new/vue@918c7ad: - resolution: {tarball: https://pkg.pr.new/vue@918c7ad} + vue@https://pkg.pr.new/vue@13320fd: + resolution: {tarball: https://pkg.pr.new/vue@13320fd} version: 3.6.0-alpha.6 peerDependencies: typescript: '*' @@ -5673,6 +5771,9 @@ snapshots: '@one-ini/wasm@0.1.1': {} + '@oxc-project/types@0.101.0': + optional: true + '@oxc-project/types@0.95.0': {} '@pkgjs/parseargs@0.11.0': @@ -5692,51 +5793,95 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-beta.45': optional: true + '@rolldown/binding-android-arm64@1.0.0-beta.53': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-beta.45': optional: true + '@rolldown/binding-darwin-arm64@1.0.0-beta.53': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-beta.45': optional: true + '@rolldown/binding-darwin-x64@1.0.0-beta.53': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-beta.45': optional: true + '@rolldown/binding-freebsd-x64@1.0.0-beta.53': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.45': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.53': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.45': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.53': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.45': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.53': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.45': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.53': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-beta.45': optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-beta.53': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-beta.45': optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-beta.53': + optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-beta.45': dependencies: '@napi-rs/wasm-runtime': 1.1.0 optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-beta.53': + dependencies: + '@napi-rs/wasm-runtime': 1.1.0 + optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.45': optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.53': + optional: true + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.45': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0-beta.45': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.53': + optional: true + '@rolldown/pluginutils@1.0.0-beta.45': {} '@rolldown/pluginutils@1.0.0-beta.50': {} + '@rolldown/pluginutils@1.0.0-beta.53': + optional: true + '@rollup/plugin-commonjs@28.0.9(rollup@4.53.3)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.53.3) @@ -6064,11 +6209,11 @@ snapshots: vite: 7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2) vue: 3.6.0-alpha.6(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.2(vite@7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2))(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.2(vite@7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2))(vue@https://pkg.pr.new/vue@13320fd(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.50 vite: 7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2) - vue: https://pkg.pr.new/vue@918c7ad(typescript@5.9.3) + vue: https://pkg.pr.new/vue@13320fd(typescript@5.9.3) '@vitest/browser@3.2.4(playwright@1.57.0)(vite@7.2.7(@types/node@24.10.3)(jiti@2.6.1)(terser@5.44.1)(yaml@2.8.2))(vitest@3.2.4)': dependencies: @@ -6220,10 +6365,10 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad': + '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@13320fd': dependencies: '@babel/parser': 7.28.5 - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 @@ -6238,10 +6383,10 @@ snapshots: '@vue/compiler-core': 3.6.0-alpha.6 '@vue/shared': 3.6.0-alpha.6 - '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad': + '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@13320fd': dependencies: - '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@13320fd + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd '@vue/compiler-sfc@3.5.25': dependencies: @@ -6268,14 +6413,14 @@ snapshots: postcss: 8.5.6 source-map-js: 1.2.1 - '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@918c7ad': + '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@13320fd': dependencies: '@babel/parser': 7.28.5 - '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@918c7ad - '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad - '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad - '@vue/compiler-vapor': https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@918c7ad - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@13320fd + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@13320fd + '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@13320fd + '@vue/compiler-vapor': https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@13320fd + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd estree-walker: 2.0.2 magic-string: 0.30.21 postcss: 8.5.6 @@ -6291,10 +6436,10 @@ snapshots: '@vue/compiler-dom': 3.6.0-alpha.6 '@vue/shared': 3.6.0-alpha.6 - '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad': + '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@13320fd': dependencies: - '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@13320fd + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd '@vue/compiler-vapor@3.6.0-alpha.6': dependencies: @@ -6304,11 +6449,11 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-vapor@https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@918c7ad': + '@vue/compiler-vapor@https://pkg.pr.new/vuejs/core/@vue/compiler-vapor@13320fd': dependencies: '@babel/parser': 7.28.5 - '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@13320fd + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd estree-walker: 2.0.2 source-map-js: 1.2.1 @@ -6378,9 +6523,9 @@ snapshots: dependencies: '@vue/shared': 3.6.0-alpha.6 - '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad': + '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@13320fd': dependencies: - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd '@vue/runtime-core@3.5.25': dependencies: @@ -6392,10 +6537,10 @@ snapshots: '@vue/reactivity': 3.6.0-alpha.6 '@vue/shared': 3.6.0-alpha.6 - '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@918c7ad': + '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@13320fd': dependencies: - '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@13320fd + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd '@vue/runtime-dom@3.5.25': dependencies: @@ -6411,11 +6556,11 @@ snapshots: '@vue/shared': 3.6.0-alpha.6 csstype: 3.2.3 - '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad': + '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@13320fd': dependencies: - '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad - '@vue/runtime-core': https://pkg.pr.new/vuejs/core/@vue/runtime-core@918c7ad - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@13320fd + '@vue/runtime-core': https://pkg.pr.new/vuejs/core/@vue/runtime-core@13320fd + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd csstype: 3.2.3 '@vue/runtime-vapor@3.6.0-alpha.6(@vue/runtime-dom@3.6.0-alpha.6)': @@ -6424,11 +6569,11 @@ snapshots: '@vue/runtime-dom': 3.6.0-alpha.6 '@vue/shared': 3.6.0-alpha.6 - '@vue/runtime-vapor@https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@918c7ad(@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad)': + '@vue/runtime-vapor@https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@13320fd(@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@13320fd)': dependencies: - '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@918c7ad - '@vue/runtime-dom': https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@13320fd + '@vue/runtime-dom': https://pkg.pr.new/vuejs/core/@vue/runtime-dom@13320fd + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd '@vue/server-renderer@3.5.25(vue@3.5.25(typescript@5.9.3))': dependencies: @@ -6436,11 +6581,11 @@ snapshots: '@vue/shared': 3.5.25 vue: 3.5.25(typescript@5.9.3) - '@vue/server-renderer@3.5.25(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3))': + '@vue/server-renderer@3.5.25(vue@https://pkg.pr.new/vue@13320fd(typescript@5.9.3))': dependencies: '@vue/compiler-ssr': 3.5.25 '@vue/shared': 3.5.25 - vue: https://pkg.pr.new/vue@918c7ad(typescript@5.9.3) + vue: https://pkg.pr.new/vue@13320fd(typescript@5.9.3) '@vue/server-renderer@3.6.0-alpha.6(vue@3.6.0-alpha.6(typescript@5.9.3))': dependencies: @@ -6448,17 +6593,17 @@ snapshots: '@vue/shared': 3.6.0-alpha.6 vue: 3.6.0-alpha.6(typescript@5.9.3) - '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@918c7ad(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3))': + '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@13320fd(vue@https://pkg.pr.new/vue@13320fd(typescript@5.9.3))': dependencies: - '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@918c7ad - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad - vue: https://pkg.pr.new/vue@918c7ad(typescript@5.9.3) + '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@13320fd + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd + vue: https://pkg.pr.new/vue@13320fd(typescript@5.9.3) '@vue/shared@3.5.25': {} '@vue/shared@3.6.0-alpha.6': {} - '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad': {} + '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@13320fd': {} '@vue/test-utils@2.4.6': dependencies: @@ -8694,6 +8839,26 @@ snapshots: '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.45 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.45 + rolldown@1.0.0-beta.53: + dependencies: + '@oxc-project/types': 0.101.0 + '@rolldown/pluginutils': 1.0.0-beta.53 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-beta.53 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.53 + '@rolldown/binding-darwin-x64': 1.0.0-beta.53 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.53 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.53 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.53 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.53 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.53 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.53 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.53 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.53 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.53 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.53 + optional: true + rollup-plugin-typescript2@0.36.0(rollup@4.53.3)(typescript@5.9.3): dependencies: '@rollup/pluginutils': 4.2.1 @@ -9117,7 +9282,7 @@ snapshots: ts-interface-checker@0.1.13: {} - tsdown@0.15.12(@typescript/native-preview@7.0.0-dev.20251013.1)(typescript@5.9.3)(vue-tsc@3.1.8(typescript@5.9.3)): + tsdown@0.15.12(@typescript/native-preview@7.0.0-dev.20251013.1)(typescript@5.9.3)(unrun@0.2.19)(vue-tsc@3.1.8(typescript@5.9.3)): dependencies: ansis: 4.2.0 cac: 6.7.14 @@ -9135,6 +9300,7 @@ snapshots: unconfig: 7.4.2 optionalDependencies: typescript: 5.9.3 + unrun: 0.2.19 transitivePeerDependencies: - '@ts-macro/tsc' - '@typescript/native-preview' @@ -9259,6 +9425,11 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.3 + unrun@0.2.19: + dependencies: + rolldown: 1.0.0-beta.53 + optional: true + untildify@4.0.0: {} update-browserslist-db@1.2.2(browserslist@4.28.1): @@ -9540,14 +9711,14 @@ snapshots: optionalDependencies: typescript: 5.9.3 - vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3): + vue@https://pkg.pr.new/vue@13320fd(typescript@5.9.3): dependencies: - '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@918c7ad - '@vue/compiler-sfc': https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@918c7ad - '@vue/runtime-dom': https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad - '@vue/runtime-vapor': https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@918c7ad(@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@918c7ad) - '@vue/server-renderer': https://pkg.pr.new/vuejs/core/@vue/server-renderer@918c7ad(vue@https://pkg.pr.new/vue@918c7ad(typescript@5.9.3)) - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@918c7ad + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@13320fd + '@vue/compiler-sfc': https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@13320fd + '@vue/runtime-dom': https://pkg.pr.new/vuejs/core/@vue/runtime-dom@13320fd + '@vue/runtime-vapor': https://pkg.pr.new/vuejs/core/@vue/runtime-vapor@13320fd(@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@13320fd) + '@vue/server-renderer': https://pkg.pr.new/vuejs/core/@vue/server-renderer@13320fd(vue@https://pkg.pr.new/vue@13320fd(typescript@5.9.3)) + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@13320fd optionalDependencies: typescript: 5.9.3 From 0bfd4801d4b634a8ba20f754f83649ada5c9887f Mon Sep 17 00:00:00 2001 From: zhiyuanzmj <260480378@qq.com> Date: Thu, 11 Dec 2025 17:35:03 +0800 Subject: [PATCH 10/10] chore: update name --- packages/router/src/VaporRouterLink.ts | 4 ++-- packages/router/src/VaporRouterView.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/router/src/VaporRouterLink.ts b/packages/router/src/VaporRouterLink.ts index 3deefa815..6e236786c 100644 --- a/packages/router/src/VaporRouterLink.ts +++ b/packages/router/src/VaporRouterLink.ts @@ -16,8 +16,8 @@ import { reactive, } from 'vue' -export const VaporRouterLinkImpl = /*#__PURE__*/ defineVaporComponent({ - name: 'RouterLink', +export const VaporRouterLinkImpl = defineVaporComponent({ + name: 'VaporRouterLink', props: { to: { type: [String, Object] as PropType, diff --git a/packages/router/src/VaporRouterView.ts b/packages/router/src/VaporRouterView.ts index cb10bae6c..a4d99cf8e 100644 --- a/packages/router/src/VaporRouterView.ts +++ b/packages/router/src/VaporRouterView.ts @@ -31,7 +31,7 @@ import type { RouterViewProps, RouterViewDevtoolsContext } from './RouterView' export type { RouterViewProps, RouterViewDevtoolsContext } export const VaporRouterViewImpl = /*#__PURE__*/ defineVaporComponent({ - name: 'RouterView', + name: 'VaporRouterView', // #674 we manually inherit them inheritAttrs: false, props: {