Skip to content

chore: bump dev tooling to modern versions#713

Open
tyler-reitz wants to merge 4 commits into
FirebaseExtended:mainfrom
tyler-reitz:chore/bump-devdependencies
Open

chore: bump dev tooling to modern versions#713
tyler-reitz wants to merge 4 commits into
FirebaseExtended:mainfrom
tyler-reitz:chore/bump-devdependencies

Conversation

@tyler-reitz

@tyler-reitz tyler-reitz commented Jun 17, 2026

Copy link
Copy Markdown

Summary

  • TypeScript ^5.1.3^6.0.3
  • Vitest ^0.32.2^4.1.9, @vitest/ui^4.1.9
  • Vite ^4.3.9^8.0.16, @vitejs/plugin-react ^4.0.1^6.0.2
  • @rollup/plugin-typescript ^11.1.1^12.3.0
  • Prettier ^2.8.8^3.8.4
  • typedoc ^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)
  • GitHub Actions: bump checkout, setup-node, upload-artifact, download-artifact, cache to v4

Test plan

  • tsc --noEmit passes clean
  • npm run build succeeds (pre-existing MISSING_GLOBAL_NAME warnings unchanged)
  • npm run test:useObservable — 14/14 pass
  • npm run test:firebaseApp — 7/7 pass

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>
@google-cla

google-cla Bot commented Jun 17, 2026

Copy link
Copy Markdown

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.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread package.json
],
"devDependencies": {
"@rollup/plugin-typescript": "^11.1.1",
"@rollup/plugin-typescript": "^12.3.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The version ^12.3.0 for @rollup/plugin-typescript does not exist on the public npm registry. The latest stable version is ^12.1.2. Using a non-existent version will cause npm install to fail.

Suggested change
"@rollup/plugin-typescript": "^12.3.0",
"@rollup/plugin-typescript": "^12.1.2",

Comment thread package.json
"@typescript-eslint/parser": "^5.60.1",
"@vitejs/plugin-react": "^4.0.1",
"@vitest/ui": "^0.32.2",
"@vitejs/plugin-react": "^6.0.2",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The version ^6.0.2 for @vitejs/plugin-react does not exist on the public npm registry. The latest stable version compatible with Vite 6 is ^5.1.1.

Suggested change
"@vitejs/plugin-react": "^6.0.2",
"@vitejs/plugin-react": "^5.1.1",

Comment thread package.json
"@vitejs/plugin-react": "^4.0.1",
"@vitest/ui": "^0.32.2",
"@vitejs/plugin-react": "^6.0.2",
"@vitest/ui": "^4.1.9",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The version ^4.1.9 for @vitest/ui does not exist on the public npm registry. The latest stable version compatible with Vitest 3 is ^3.0.2.

Suggested change
"@vitest/ui": "^4.1.9",
"@vitest/ui": "^3.0.2",

Comment thread package.json
"jsdom": "^22.1.0",
"markdown-toc": "^1.2.0",
"prettier": "^2.8.8",
"prettier": "^3.8.4",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The version ^3.8.4 for prettier does not exist on the public npm registry. The latest stable version is ^3.4.2.

Suggested change
"prettier": "^3.8.4",
"prettier": "^3.4.2",

Comment thread package.json
"typescript": "^5.1.3",
"vite": "^4.3.9",
"vitest": "^0.32.2"
"typescript": "^6.0.3",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The version ^6.0.3 for typescript does not exist on the public npm registry. The latest stable version is ^5.7.3.

Suggested change
"typescript": "^6.0.3",
"typescript": "^5.7.3",

Comment thread package.json
"vite": "^4.3.9",
"vitest": "^0.32.2"
"typescript": "^6.0.3",
"vite": "^8.0.16",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The version ^8.0.16 for vite does not exist on the public npm registry. The latest stable version is ^6.0.11.

Suggested change
"vite": "^8.0.16",
"vite": "^6.0.11",

Comment thread package.json
"vitest": "^0.32.2"
"typescript": "^6.0.3",
"vite": "^8.0.16",
"vitest": "^4.1.9"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The version ^4.1.9 for vitest does not exist on the public npm registry. The latest stable version is ^3.0.2.

Suggested change
"vitest": "^4.1.9"
"vitest": "^3.0.2"

Comment thread tsconfig.json
"noUnusedParameters": true,
// use Node's module resolution algorithm, instead of the legacy TS one
"moduleResolution": "node",
"ignoreDeprecations": "6.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

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".

Suggested change
"ignoreDeprecations": "6.0",
"ignoreDeprecations": "5.0",

tyler-reitz and others added 2 commits June 17, 2026 10:30
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>
@tyler-reitz

Copy link
Copy Markdown
Author

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant