diff --git a/packages/nitro-v2-vite-plugin/package.json b/packages/nitro-v2-vite-plugin/package.json index 006c64aa0f..d96ddcf72c 100644 --- a/packages/nitro-v2-vite-plugin/package.json +++ b/packages/nitro-v2-vite-plugin/package.json @@ -40,7 +40,6 @@ }, "type": "module", "types": "dist/esm/index.d.ts", - "main": "dist/cjs/index.cjs", "module": "dist/esm/index.js", "exports": { ".": { @@ -61,7 +60,8 @@ }, "dependencies": { "nitropack": "^2.12.6", - "pathe": "^2.0.3" + "pathe": "^2.0.3", + "h3-v1": "npm:h3@^1.15.4" }, "peerDependencies": { "vite": ">=7.0.0" diff --git a/packages/nitro-v2-vite-plugin/src/index.ts b/packages/nitro-v2-vite-plugin/src/index.ts index b1c4f7a323..e0c10251ae 100644 --- a/packages/nitro-v2-vite-plugin/src/index.ts +++ b/packages/nitro-v2-vite-plugin/src/index.ts @@ -1,3 +1,4 @@ +import { createRequire } from 'node:module' import { build, copyPublicAssets, createNitro, prepare } from 'nitropack' import { dirname, resolve } from 'pathe' @@ -15,6 +16,7 @@ function isFullUrl(str: string): boolean { return false } } +const require = createRequire(import.meta.url) export function nitroV2Plugin(nitroConfig?: NitroConfig): Array { let resolvedConfig: ResolvedConfig @@ -92,6 +94,7 @@ export function nitroV2Plugin(nitroConfig?: NitroConfig): Array { await builder.build(client) await builder.build(server) + const h3 = require.resolve('h3-v1') const virtualEntry = '#tanstack/start/entry' const baseURL = !isFullUrl(resolvedConfig.base) @@ -110,7 +113,22 @@ export function nitroV2Plugin(nitroConfig?: NitroConfig): Array { renderer: virtualEntry, rollupConfig: { ...nitroConfig?.rollupConfig, - plugins: [virtualBundlePlugin(ssrBundle) as any], + plugins: [ + virtualBundlePlugin(ssrBundle) as any, + { + name: 'resolve', + resolveId(source, importer) { + if ( + (importer?.includes('nitropack') || + importer === virtualEntry) && + source === 'h3' + ) { + return h3 + } + return null + }, + }, + ], }, virtual: { ...nitroConfig?.virtual, diff --git a/packages/nitro-v2-vite-plugin/vite.config.ts b/packages/nitro-v2-vite-plugin/vite.config.ts index 75bb759998..c361c60ffa 100644 --- a/packages/nitro-v2-vite-plugin/vite.config.ts +++ b/packages/nitro-v2-vite-plugin/vite.config.ts @@ -9,5 +9,6 @@ export default mergeConfig( entry: './src/index.ts', srcDir: './src', exclude: ['./src/tests/'], + cjs: false, }), ) diff --git a/packages/start-server-core/package.json b/packages/start-server-core/package.json index eb74979738..9be5c40b8d 100644 --- a/packages/start-server-core/package.json +++ b/packages/start-server-core/package.json @@ -68,7 +68,7 @@ "@tanstack/router-core": "workspace:*", "@tanstack/start-client-core": "workspace:*", "@tanstack/start-storage-context": "workspace:*", - "h3-v2": "npm:h3@2.0.0-beta.4", + "h3": "2.0.0-beta.5", "seroval": "^1.3.2", "tiny-invariant": "^1.3.3" }, diff --git a/packages/start-server-core/src/request-response.ts b/packages/start-server-core/src/request-response.ts index cf0e426db9..60ecd40ddb 100644 --- a/packages/start-server-core/src/request-response.ts +++ b/packages/start-server-core/src/request-response.ts @@ -19,7 +19,7 @@ import { unsealSession as h3_unsealSession, updateSession as h3_updateSession, useSession as h3_useSession, -} from 'h3-v2' +} from 'h3' import type { RequestHeaderMap, RequestHeaderName, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8441534652..303cefff7b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6683,6 +6683,9 @@ importers: packages/nitro-v2-vite-plugin: dependencies: + h3-v1: + specifier: npm:h3@^1.15.4 + version: h3@1.15.4 nitropack: specifier: ^2.12.6 version: 2.12.6(@netlify/blobs@9.1.2) @@ -7461,9 +7464,9 @@ importers: '@tanstack/start-storage-context': specifier: workspace:* version: link:../start-storage-context - h3-v2: - specifier: npm:h3@2.0.0-beta.4 - version: h3@2.0.0-beta.4 + h3: + specifier: 2.0.0-beta.5 + version: 2.0.0-beta.5 seroval: specifier: ^1.3.2 version: 1.3.2 @@ -13800,8 +13803,8 @@ packages: h3@1.15.4: resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} - h3@2.0.0-beta.4: - resolution: {integrity: sha512-/JdwHUGuHjbBXAVxQN7T7QeI9cVlhsqMKVNFHebZVs9RoEYH85Ogh9O1DEy/1ZiJkmMwa1gNg6bBcGhc1Itjdg==} + h3@2.0.0-beta.5: + resolution: {integrity: sha512-ApIkLH+nTxzCC0Nq/GN1v6jkvu2eOLfdTnTs6ghiuG1EYHWJBDLzhk5tn7SZMEUNsLUjG4qfmqzBx2LG9I7Q/w==} engines: {node: '>=20.11.1'} peerDependencies: crossws: ^0.4.1 @@ -15686,8 +15689,8 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rou3@0.7.5: - resolution: {integrity: sha512-bwUHDHw1HSARty7TWNV71R0NZs5fOt74OM+hcMdJyPfchfRktEmxLoMSNa7PwEp6WqJ0a3feKztsIfTUEYhskw==} + rou3@0.7.7: + resolution: {integrity: sha512-z+6o7c3DarUbuBMLIdhzj2CqJLtUWrGk4fZlf07dIMitX3UpBXeInJ3lMD9huxj9yh9eo1RqtXf9aL0YzkDDUA==} router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} @@ -15945,6 +15948,11 @@ packages: engines: {node: '>=20.16.0'} hasBin: true + srvx@0.8.9: + resolution: {integrity: sha512-wYc3VLZHRzwYrWJhkEqkhLb31TI0SOkfYZDkUhXdp3NoCnNS0FqajiQszZZjfow/VYEuc6Q5sZh9nM6kPy2NBQ==} + engines: {node: '>=20.16.0'} + hasBin: true + stable-hash-x@0.2.0: resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} engines: {node: '>=12.0.0'} @@ -24091,12 +24099,12 @@ snapshots: ufo: 1.6.1 uncrypto: 0.1.3 - h3@2.0.0-beta.4: + h3@2.0.0-beta.5: dependencies: cookie-es: 2.0.0 fetchdts: 0.1.7 - rou3: 0.7.5 - srvx: 0.8.7 + rou3: 0.7.7 + srvx: 0.8.9 handle-thing@2.0.1: {} @@ -26105,7 +26113,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.52.2 fsevents: 2.3.3 - rou3@0.7.5: {} + rou3@0.7.7: {} router@2.2.0: dependencies: @@ -26437,6 +26445,10 @@ snapshots: dependencies: cookie-es: 2.0.0 + srvx@0.8.9: + dependencies: + cookie-es: 2.0.0 + stable-hash-x@0.2.0: {} stable-hash@0.0.4: {}