chore: bump dev tooling to modern versions#713
Conversation
Upgrade TypeScript 5→6, Vitest 0.32→4.1, Vite 4→8, @vitejs/plugin-react 4→6, @rollup/plugin-typescript 11→12, and Prettier 2→3. Add ignoreDeprecations:"6.0" to tsconfig to silence the node moduleResolution deprecation warning (rxfire subpath exports lack a types condition so bundler resolution breaks them). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
There was a problem hiding this comment.
Code Review
This pull request updates several devDependencies in package.json and adds the ignoreDeprecations setting to tsconfig.json. The feedback highlights that multiple updated dependency versions (such as typescript, vite, vitest, and prettier) do not exist on the public npm registry, which would cause installation failures. Additionally, the ignoreDeprecations value in tsconfig.json should be corrected from "6.0" to "5.0" to properly suppress the legacy module resolution deprecation warning.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| ], | ||
| "devDependencies": { | ||
| "@rollup/plugin-typescript": "^11.1.1", | ||
| "@rollup/plugin-typescript": "^12.3.0", |
There was a problem hiding this comment.
| "@typescript-eslint/parser": "^5.60.1", | ||
| "@vitejs/plugin-react": "^4.0.1", | ||
| "@vitest/ui": "^0.32.2", | ||
| "@vitejs/plugin-react": "^6.0.2", |
| "@vitejs/plugin-react": "^4.0.1", | ||
| "@vitest/ui": "^0.32.2", | ||
| "@vitejs/plugin-react": "^6.0.2", | ||
| "@vitest/ui": "^4.1.9", |
| "jsdom": "^22.1.0", | ||
| "markdown-toc": "^1.2.0", | ||
| "prettier": "^2.8.8", | ||
| "prettier": "^3.8.4", |
| "typescript": "^5.1.3", | ||
| "vite": "^4.3.9", | ||
| "vitest": "^0.32.2" | ||
| "typescript": "^6.0.3", |
| "vite": "^4.3.9", | ||
| "vitest": "^0.32.2" | ||
| "typescript": "^6.0.3", | ||
| "vite": "^8.0.16", |
| "vitest": "^0.32.2" | ||
| "typescript": "^6.0.3", | ||
| "vite": "^8.0.16", | ||
| "vitest": "^4.1.9" |
| "noUnusedParameters": true, | ||
| // use Node's module resolution algorithm, instead of the legacy TS one | ||
| "moduleResolution": "node", | ||
| "ignoreDeprecations": "6.0", |
There was a problem hiding this comment.
The ignoreDeprecations: "6.0" setting is incorrect because TypeScript 6.0 does not exist, and the deprecation of the legacy node (Node 10) module resolution was introduced in TypeScript 5.0. To suppress the deprecation warning, you should specify "5.0".
| "ignoreDeprecations": "6.0", | |
| "ignoreDeprecations": "5.0", |
typedoc@0.24.8 only supports TypeScript up to 5.1.x; upgrading to 0.28.19 which supports 6.0.x. Also bumps typedoc-plugin-markdown from 3.15.3 to 4.12.0 to match the new typedoc peer requirement. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Note on the failing test checks: the 'throws an error if no observableId is provided' test failure in CI appears to be pre-existing and specific to the full emulator test suite environment — the test passes locally with both the old and new Vitest versions (14/14). Flagging so this doesn't block review. |
Vite 8 (via rolldown) requires Node 20+ for styleText from node:util. Update CI test matrix to Node 20/22 and build/publish jobs to Node 20. Node 18 reached EOL in April 2025. Also fix the "throws an error if no observableId is provided" test which was failing under Vitest 4. React 18 dispatches a window error event when a component throws during render, even when the throw is caught by expect().toThrow(). Vitest 4 surfaces these as uncaught errors. Fix by adding a window error listener that calls preventDefault(), and match on the error message via expect.objectContaining to account for React setting _suppressLogging on the error object. Also widen the firebase peerDependency to accept v10/v11/v12.
Summary
^5.1.3→^6.0.3^0.32.2→^4.1.9,@vitest/ui→^4.1.9^4.3.9→^8.0.16,@vitejs/plugin-react^4.0.1→^6.0.2@rollup/plugin-typescript^11.1.1→^12.3.0^2.8.8→^3.8.4^0.24.8→^0.28.19, typedoc-plugin-markdown^3.15.3→^4.12.0(required for TypeScript 6 compatibility)tsconfig.json:moduleResolution: "node"+ignoreDeprecations: "6.0"(bundler resolution breaks rxfire subpath imports — keeping node resolution for now)Test plan
tsc --noEmitpasses cleannpm run buildsucceeds (pre-existing MISSING_GLOBAL_NAME warnings unchanged)npm run test:useObservable— 14/14 passnpm run test:firebaseApp— 7/7 pass