-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
bump srvx 0.10.0 #6257
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bump srvx 0.10.0 #6257
Conversation
📝 WalkthroughWalkthroughBatched version bumps: Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
View your CI Pipeline Execution ↗ for commit 840e811
☁️ Nx Cloud last updated this comment at |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
examples/react/start-clerk-basic/package.json (1)
14-16: Internal dependencies should use workspace protocol.As per coding guidelines, internal dependencies in package.json files should use the
workspace:*protocol. The following internal TanStack packages are using version numbers instead:
@tanstack/react-router@tanstack/react-router-devtools@tanstack/react-startNote: This is a pre-existing issue not introduced by this PR, but should be addressed to align with project standards.
Based on coding guidelines, which state: "Use workspace protocol
workspace:*for internal dependencies in package.json files"🔎 Proposed fix to use workspace protocol
- "@tanstack/react-router": "^1.144.0", - "@tanstack/react-router-devtools": "^1.144.0", - "@tanstack/react-start": "^1.145.2", + "@tanstack/react-router": "workspace:*", + "@tanstack/react-router-devtools": "workspace:*", + "@tanstack/react-start": "workspace:*",
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (41)
e2e/react-start/basic-react-query/package.jsone2e/react-start/basic-tsr-config/package.jsone2e/react-start/basic/package.jsone2e/react-start/custom-basepath/package.jsone2e/react-start/scroll-restoration/package.jsone2e/react-start/selective-ssr/package.jsone2e/react-start/serialization-adapters/package.jsone2e/react-start/server-functions-global-middleware/package.jsone2e/react-start/server-functions/package.jsone2e/react-start/server-routes-global-middleware/package.jsone2e/react-start/server-routes/package.jsone2e/react-start/streaming-ssr/package.jsone2e/react-start/virtual-routes/package.jsone2e/react-start/website/package.jsone2e/solid-start/basic-auth/package.jsone2e/solid-start/basic-solid-query/package.jsone2e/solid-start/basic-tsr-config/package.jsone2e/solid-start/basic/package.jsone2e/solid-start/custom-basepath/package.jsone2e/solid-start/scroll-restoration/package.jsone2e/solid-start/selective-ssr/package.jsone2e/solid-start/serialization-adapters/package.jsone2e/solid-start/server-functions/package.jsone2e/solid-start/server-routes/package.jsone2e/solid-start/virtual-routes/package.jsone2e/solid-start/website/package.jsone2e/vue-start/basic-auth/package.jsone2e/vue-start/basic-tsr-config/package.jsone2e/vue-start/basic-vue-query/package.jsone2e/vue-start/basic/package.jsone2e/vue-start/custom-basepath/package.jsone2e/vue-start/scroll-restoration/package.jsone2e/vue-start/selective-ssr/package.jsone2e/vue-start/serialization-adapters/package.jsone2e/vue-start/server-functions/package.jsone2e/vue-start/server-routes/package.jsone2e/vue-start/virtual-routes/package.jsone2e/vue-start/website/package.jsonexamples/react/start-clerk-basic/package.jsonpackages/start-plugin-core/package.jsonpackages/start-server-core/package.json
🧰 Additional context used
📓 Path-based instructions (1)
**/package.json
📄 CodeRabbit inference engine (AGENTS.md)
Use workspace protocol
workspace:*for internal dependencies in package.json files
Files:
e2e/solid-start/virtual-routes/package.jsone2e/vue-start/website/package.jsone2e/react-start/virtual-routes/package.jsone2e/solid-start/server-functions/package.jsone2e/react-start/basic/package.jsone2e/solid-start/scroll-restoration/package.jsonexamples/react/start-clerk-basic/package.jsone2e/react-start/server-functions-global-middleware/package.jsone2e/vue-start/virtual-routes/package.jsone2e/vue-start/custom-basepath/package.jsone2e/vue-start/scroll-restoration/package.jsone2e/solid-start/serialization-adapters/package.jsone2e/react-start/basic-react-query/package.jsone2e/react-start/server-routes/package.jsone2e/solid-start/custom-basepath/package.jsone2e/react-start/scroll-restoration/package.jsone2e/vue-start/serialization-adapters/package.jsone2e/solid-start/basic-tsr-config/package.jsone2e/solid-start/website/package.jsone2e/react-start/streaming-ssr/package.jsone2e/solid-start/basic-solid-query/package.jsone2e/solid-start/basic/package.jsone2e/vue-start/server-functions/package.jsone2e/react-start/basic-tsr-config/package.jsonpackages/start-plugin-core/package.jsone2e/react-start/serialization-adapters/package.jsone2e/react-start/website/package.jsone2e/vue-start/basic-tsr-config/package.jsone2e/vue-start/basic/package.jsone2e/react-start/selective-ssr/package.jsonpackages/start-server-core/package.jsone2e/solid-start/basic-auth/package.jsone2e/solid-start/server-routes/package.jsone2e/react-start/server-functions/package.jsone2e/vue-start/basic-auth/package.jsone2e/vue-start/basic-vue-query/package.jsone2e/vue-start/server-routes/package.jsone2e/react-start/custom-basepath/package.jsone2e/vue-start/selective-ssr/package.jsone2e/react-start/server-routes-global-middleware/package.jsone2e/solid-start/selective-ssr/package.json
🧠 Learnings (3)
📚 Learning: 2025-12-25T13:04:55.492Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 6215
File: e2e/react-start/custom-basepath/package.json:13-17
Timestamp: 2025-12-25T13:04:55.492Z
Learning: In the TanStack Router repository, e2e test scripts are specifically designed to run in CI (which uses a Unix environment), so Unix-specific commands (like `rm -rf`, `&` for backgrounding, and direct environment variable assignments without `cross-env`) are acceptable in e2e test npm scripts.
Applied to files:
e2e/solid-start/virtual-routes/package.jsone2e/solid-start/scroll-restoration/package.jsone2e/vue-start/virtual-routes/package.jsone2e/vue-start/scroll-restoration/package.jsone2e/vue-start/serialization-adapters/package.jsone2e/solid-start/basic-tsr-config/package.jsone2e/vue-start/basic-tsr-config/package.jsone2e/vue-start/selective-ssr/package.jsone2e/solid-start/selective-ssr/package.json
📚 Learning: 2025-11-02T16:16:24.898Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5732
File: packages/start-client-core/src/client/hydrateStart.ts:6-9
Timestamp: 2025-11-02T16:16:24.898Z
Learning: In packages/start-client-core/src/client/hydrateStart.ts, the `import/no-duplicates` ESLint disable is necessary for imports from `#tanstack-router-entry` and `#tanstack-start-entry` because both aliases resolve to the same placeholder file (`fake-start-entry.js`) in package.json during static analysis, even though they resolve to different files at runtime.
Applied to files:
packages/start-server-core/package.json
📚 Learning: 2025-12-06T15:03:07.223Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Applies to **/package.json : Use workspace protocol `workspace:*` for internal dependencies in package.json files
Applied to files:
packages/start-server-core/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Preview
- GitHub Check: Test
🔇 Additional comments (19)
e2e/react-start/basic/package.json (1)
45-45: srvx version bump requires clarification.The devDependency format
"^0.10.0"is correct for an external package; the workspace protocol does not apply here since srvx is not an internal TanStack dependency.However, srvx version 0.10.0 could not be verified in public npm registries. The latest published versions appear to be 0.9.7–0.9.8. Clarify whether this is a pre-release, nightly build, private version, or if the version specifier should be adjusted.
e2e/vue-start/server-routes/package.json (1)
34-34: srvx 0.10.0 does not exist on npm—this will fail dependency resolution.Version 0.10.0 is not published to npm. The latest available version is 0.9.8. Downgrade to
"srvx": "^0.9.8"to allow the package to install. (No known security vulnerabilities exist for srvx itself.)⛔ Skipped due to learnings
Learnt from: CR Repo: TanStack/router PR: 0 File: AGENTS.md:0-0 Timestamp: 2025-12-06T15:03:07.223Z Learning: Applies to **/package.json : Use workspace protocol `workspace:*` for internal dependencies in package.json filese2e/react-start/basic-tsr-config/package.json (1)
25-25: The workspace protocol is correctly applied to internal dependencies in this file.This package.json correctly uses
workspace:^for all @tanstack/* internal dependencies (@tanstack/react-router, @tanstack/react-start, @tanstack/router-e2e-utils). The srvx external dependency correctly uses^0.10.0format (not workspace protocol, which only applies to internal dependencies). Both srvx 0.10.0 and h3 2.0.1-rc.7 exist on npm; note that h3 2.0.1-rc.7 is a pre-release version used in a different package file (packages/start-server-core/package.json).e2e/solid-start/selective-ssr/package.json (1)
23-23: LGTM! Clean version bump.The
srvxdevDependency upgrade to ^0.10.0 is consistent with the PR objective, and all internal TanStack dependencies correctly use theworkspace:^protocol as per coding guidelines.e2e/vue-start/basic-auth/package.json (1)
34-34: LGTM! Version bump applied correctly.The
srvxupgrade to ^0.10.0 is properly configured, and workspace dependencies follow the required protocol.e2e/solid-start/basic-tsr-config/package.json (1)
23-23: LGTM! Dependency update is clean.The
srvxversion bump to ^0.10.0 is correctly applied, and all workspace dependencies use the proper protocol.e2e/react-start/server-functions/package.json (1)
38-38: LGTM! Consistent version upgrade.The
srvxdevDependency upgrade to ^0.10.0 aligns with the PR objective, and workspace dependencies are correctly configured.e2e/solid-start/virtual-routes/package.json (1)
31-31: LGTM! Version update applied correctly.The
srvxupgrade to ^0.10.0 is properly configured, and all internal dependencies use the required workspace protocol.e2e/solid-start/basic-solid-query/package.json (1)
32-32: LGTM! Dependency upgrade is correct.The
srvxversion bump to ^0.10.0 is properly applied, and workspace dependencies follow the required protocol.e2e/react-start/scroll-restoration/package.json (1)
35-35: LGTM! Clean dependency update.The
srvxupgrade to ^0.10.0 is correctly configured, and all workspace dependencies use the proper protocol.e2e/vue-start/selective-ssr/package.json (1)
23-23: LGTM! Final version bump looks good.The
srvxdevDependency upgrade to ^0.10.0 completes the consistent batch update across all e2e packages, and workspace dependencies are correctly configured.e2e/react-start/basic-react-query/package.json (1)
36-36: LGTM!The srvx devDependency update is consistent with the PR-wide version bump.
e2e/vue-start/custom-basepath/package.json (1)
28-28: LGTM!The srvx devDependency update is consistent with the PR-wide version bump.
e2e/react-start/virtual-routes/package.json (1)
35-35: LGTM!The srvx devDependency update is consistent with the PR-wide version bump.
e2e/react-start/streaming-ssr/package.json (1)
28-28: LGTM!The srvx devDependency update is consistent with the PR-wide version bump.
e2e/react-start/serialization-adapters/package.json (1)
31-31: LGTM!The srvx devDependency update is consistent with the PR-wide version bump.
e2e/react-start/server-routes/package.json (1)
38-38: LGTM!The srvx devDependency update is consistent with the PR-wide version bump.
e2e/solid-start/serialization-adapters/package.json (1)
27-27: LGTM!The srvx devDependency update is consistent with the PR-wide version bump.
e2e/solid-start/scroll-restoration/package.json (1)
31-31: srvx version 0.10.0 exists on npm and is the latest version.The devDependency is correctly specified. No breaking changes or migration issues were identified in available release documentation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (2)
e2e/react-start/custom-basepath/express-server.ts (1)
3-3: Verify that the type assertion is necessary for srvx 0.10.0.Same concern as in
e2e/vue-start/custom-basepath/express-server.ts: type assertions bypass TypeScript's type checking. Verify whether the explicit cast toNodeHttp1Handleris required or iftoNodeHandler()already provides the correct type in srvx 0.10.0.Based on coding guidelines, TypeScript strict mode with extensive type safety is required.
Also applies to: 21-21, 32-32
e2e/solid-start/custom-basepath/express-server.ts (1)
3-3: Verify that the type assertion is necessary for srvx 0.10.0.Same concern as in
e2e/vue-start/custom-basepath/express-server.tsande2e/react-start/custom-basepath/express-server.ts: type assertions bypass TypeScript's type checking. Verify whether the explicit cast toNodeHttp1Handleris required or iftoNodeHandler()already provides the correct type in srvx 0.10.0.Based on coding guidelines, TypeScript strict mode with extensive type safety is required.
Also applies to: 21-21, 32-32
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
e2e/react-start/custom-basepath/express-server.tse2e/solid-start/custom-basepath/express-server.tse2e/vue-start/custom-basepath/express-server.ts
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
Use TypeScript strict mode with extensive type safety for all code
Files:
e2e/react-start/custom-basepath/express-server.tse2e/vue-start/custom-basepath/express-server.tse2e/solid-start/custom-basepath/express-server.ts
**/*.{js,ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
Implement ESLint rules for router best practices using the ESLint plugin router
Files:
e2e/react-start/custom-basepath/express-server.tse2e/vue-start/custom-basepath/express-server.tse2e/solid-start/custom-basepath/express-server.ts
🧠 Learnings (2)
📚 Learning: 2025-12-06T15:03:07.223Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-06T15:03:07.223Z
Learning: Applies to **/*.{ts,tsx} : Use TypeScript strict mode with extensive type safety for all code
Applied to files:
e2e/react-start/custom-basepath/express-server.ts
📚 Learning: 2025-11-02T16:16:24.898Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5732
File: packages/start-client-core/src/client/hydrateStart.ts:6-9
Timestamp: 2025-11-02T16:16:24.898Z
Learning: In packages/start-client-core/src/client/hydrateStart.ts, the `import/no-duplicates` ESLint disable is necessary for imports from `#tanstack-router-entry` and `#tanstack-start-entry` because both aliases resolve to the same placeholder file (`fake-start-entry.js`) in package.json during static analysis, even though they resolve to different files at runtime.
Applied to files:
e2e/react-start/custom-basepath/express-server.tse2e/vue-start/custom-basepath/express-server.ts
🧬 Code graph analysis (3)
e2e/react-start/custom-basepath/express-server.ts (1)
e2e/vue-start/basic/server.js (1)
nodeHandler(12-12)
e2e/vue-start/custom-basepath/express-server.ts (1)
e2e/vue-start/basic/server.js (1)
nodeHandler(12-12)
e2e/solid-start/custom-basepath/express-server.ts (1)
e2e/vue-start/basic/server.js (1)
nodeHandler(12-12)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Test
| @@ -1,5 +1,6 @@ | |||
| import express from 'express' | |||
| import { toNodeHandler } from 'srvx/node' | |||
| import type { NodeHttp1Handler } from 'srvx' | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
cat -n e2e/vue-start/custom-basepath/express-server.tsRepository: TanStack/router
Length of output: 1685
🌐 Web query:
srvx 0.10.0 toNodeHandler return type TypeScript
💡 Result:
toNodeHandler returns a Node.js request listener: (req: http.IncomingMessage, res: http.ServerResponse) => void — i.e. a standard Node (IncomingMessage, ServerResponse) => void handler. [1][2]
Sources:
- h3 utils / adapters (toNodeHandler description). [1]
- h3 bundled entry showing toNodeHandler export and Node handler mapping. [2]
🏁 Script executed:
# Search for srvx package and its types
find . -name "package.json" -type f | xargs grep -l '"srvx"' | head -5Repository: TanStack/router
Length of output: 289
🏁 Script executed:
# Check if srvx types are available in node_modules or type definitions
fd -e d.ts -e ts "srvx" --type f | grep -E "(node_modules|types)" | head -10Repository: TanStack/router
Length of output: 41
🌐 Web query:
srvx NodeHttp1Handler type definition
💡 Result:
I couldn't find a public definition for "NodeHttp1Handler" named type tied to srvx. Can you tell me where you saw that type (file/repo/link) or paste the surrounding code? With that I can fetch or reconstruct the exact TypeScript definition.
🏁 Script executed:
# Check srvx version in the e2e project
cat e2e/vue-start/custom-basepath/package.jsonRepository: TanStack/router
Length of output: 1157
🏁 Script executed:
# Search for any other uses of NodeHttp1Handler in the codebase
rg "NodeHttp1Handler" --type ts --type tsxRepository: TanStack/router
Length of output: 86
🏁 Script executed:
# Search for srvx imports to understand how it's being used
rg "from 'srvx" --type ts --type tsx -A 2Repository: TanStack/router
Length of output: 86
🏁 Script executed:
# Search for NodeHttp1Handler without file type restrictions
rg "NodeHttp1Handler"Repository: TanStack/router
Length of output: 1075
🏁 Script executed:
# Search for srvx imports more broadly
rg "from 'srvx" -A 2Repository: TanStack/router
Length of output: 2405
🌐 Web query:
srvx npm package 0.10.0 NodeHttp1Handler type
💡 Result:
I don’t have enough detail — are you asking for (A) the TypeScript type definition of NodeHttp1Handler exported by srvx@0.10.0, (B) how to import/use NodeHttp1Handler with srvx, or (C) help resolving a specific TypeScript/compile error involving NodeHttp1Handler? If (C), paste the error.
🌐 Web query:
srvx npm package github repository
💡 Result:
The srvx repository is on GitHub: https://github.com/h3js/srvx. [1]
NPM package page for srvx (package "srvx")—links to the same repository and docs at srvx.h3.dev. [2]
🏁 Script executed:
# Check if there are any type definition files in the project that might define NodeHttp1Handler
rg "type NodeHttp1Handler"Repository: TanStack/router
Length of output: 41
🏁 Script executed:
# Check if there's a tsconfig or types configuration that might help
find . -name "tsconfig.json" -type f | xargs grep -l "types" | head -3Repository: TanStack/router
Length of output: 226
🌐 Web query:
site:github.com/h3js/srvx NodeHttp1Handler
💡 Result:
I searched the h3js/srvx repository and related package pages — there is no file, symbol, or reference named "NodeHttp1Handler" in that repo. Sources checked: the srvx GitHub repo and its npm/docs pages. [1][2]
Sources:
- h3js/srvx repository (code listing). [1]
- srvx documentation / npm listing. [2]
🌐 Web query:
srvx toNodeHandler type signature TypeScript definition
💡 Result:
The toNodeHandler adapter converts a fetch-style handler (Request => Response | Promise) to a Node.js HTTP handler (IncomingMessage, ServerResponse) => void | Promise.
TypeScript-style signature (concise):
- Input handler type: (req: Request) => Response | Promise
- Output Node handler type: (req: import("node:http").IncomingMessage, res: import("node:http").ServerResponse) => void | Promise
Sources: h3 docs (adapters / toNodeHandler) and h3 distribution exports. [1][2]
References:
[1] h3 — More utils / Adapters (toNodeHandler).
[2] h3 distribution (exports showing toNodeHandler).
🏁 Script executed:
# Search for where NodeHttp1Handler might be defined locally
rg "NodeHttp1Handler\s*=" --type tsRepository: TanStack/router
Length of output: 41
🏁 Script executed:
# Check type definitions in packages
find . -path ./node_modules -prune -o -name "*.d.ts" -type f -print | xargs grep -l "NodeHttp1Handler" 2>/dev/nullRepository: TanStack/router
Length of output: 43
🏁 Script executed:
# Check the actual srvx export - maybe it's under a different name
rg "export.*type.*Handler" packages/ e2e/ | grep -i "http\|node"Repository: TanStack/router
Length of output: 41
🏁 Script executed:
# Check if the project even compiles - look for build errors or type check results
find . -name "tsconfig.json" -path "*/e2e/vue-start/custom-basepath*" -exec cat {} \;Repository: TanStack/router
Length of output: 648
🏁 Script executed:
# Search for any .d.ts files that might define this type
find . -type f -name "*.d.ts" | head -20Repository: TanStack/router
Length of output: 1221
🌐 Web query:
srvx h3 nodejs handler type exports what is exported
💡 Result:
Short answer: srvx exports a runtime-compatible fetch handler API (use export default { fetch(request) { ... } }) and also exports the extended ServerRequest type (request.ip etc.) plus the serve helper for programmatic Node.js use. See the Fetch Handler / Guide. [1][2]
Sources:
[1] srvx Fetch Handler docs — mentions fetch handler and ServerRequest.
[2] srvx Getting Started / guide — shows export default handler and serve usage.
Remove the non-existent type assertion or define NodeHttp1Handler locally.
NodeHttp1Handler is imported from 'srvx' but doesn't exist in that package. The type assertions on lines 21 and 32 cast to a non-existent type, which defeats the purpose of TypeScript strict mode and the coding guideline requiring "extensive type safety." The actual return type of toNodeHandler() is (req: IncomingMessage, res: ServerResponse) => void | Promise<void>. Either remove the assertions if the return type is already correct, or define NodeHttp1Handler locally to match the expected signature.
Also applies to: 21-21, 32-32
🤖 Prompt for AI Agents
In e2e/vue-start/custom-basepath/express-server.ts around lines 3, 21 and 32:
the file imports a non-existent NodeHttp1Handler from 'srvx' and then casts to
that type on lines 21 and 32; remove the faulty import and the two casts, or
alternatively declare a local type alias matching the actual signature "(req:
IncomingMessage, res: ServerResponse) => void | Promise<void>" (export/type
alias at top) and use that local type instead of NodeHttp1Handler so TypeScript
strict mode is satisfied and the toNodeHandler() return is correctly typed.
Bumps srvx from 0.9.8 to 0.10.0
https://github.com/h3js/srvx/releases/tag/v0.10.0
Bumps h3 from 2.0.1 rc.6 to rc.7 (which uses srvx 0.10.0)
https://github.com/h3js/h3/releases/tag/v2.0.1-rc.7
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.