Skip to content

feat: upgraded all pnpm, node and next.js platform deps to the absolute latest LTS versions available on Vercel.#3362

Merged
benduran merged 18 commits intomainfrom
bduran/update-platform-deps
Jan 15, 2026
Merged

feat: upgraded all pnpm, node and next.js platform deps to the absolute latest LTS versions available on Vercel.#3362
benduran merged 18 commits intomainfrom
bduran/update-platform-deps

Conversation

@benduran
Copy link
Contributor

also fixed linting issues that snuck into main

Summary

As the title mentions, this upgrades all node and pnpm deps to use the absolute latest LTS versions. This repo has been falling a bit behind. Additionally, with the Node 24 upgrade, and a small node loader, we should be able to run TypeScript natively like Bun, without a compilation step (and without the monkey patching of libraries, like the one for @ton/blueprint that we've needed to do to work with tsx)

Rationale

See comment, above, for the rationale.

How has this been tested?

  • Current tests cover my changes
  • Added new tests
  • Manually tested the code

… LTS versions available on Vercel. also fixed linting issues that snuck into main
@benduran benduran added the platform upgrading of dependencies, changing deployment configs, and more label Jan 13, 2026
@vercel
Copy link

vercel bot commented Jan 13, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
component-library Ready Ready Preview, Comment Jan 15, 2026 9:39am
developer-hub Ready Ready Preview, Comment Jan 15, 2026 9:39am
5 Skipped Deployments
Project Deployment Review Updated (UTC)
api-reference Skipped Skipped Jan 15, 2026 9:39am
entropy-explorer Skipped Skipped Jan 15, 2026 9:39am
insights Skipped Skipped Jan 15, 2026 9:39am
proposals Skipped Skipped Jan 15, 2026 9:39am
staking Skipped Skipped Jan 15, 2026 9:39am

…uild, and also fixed functions being passed between mixed server and client components (you cannot do this)
…atasources array failing referential equality checks
@benduran benduran changed the title feat: upgraded all pnpm and node platform deps to the absolute latest LTS versions available on Vercel. feat: upgraded all pnpm, node and next.js platform deps to the absolute latest LTS versions available on Vercel. Jan 13, 2026
}
} No newline at end of file
},
"browserslist": [
Copy link
Contributor Author

Choose a reason for hiding this comment

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

general good practice to have to be explicit about which browsers we support. this snippet was added to all next.js app package.json files

"type": "module",
"engines": {
"node": ">=22.14.0"
"node": "^24.0.0"
Copy link
Contributor Author

Choose a reason for hiding this comment

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

upgraded all engines to be at least node 24

symbol: selectedSource,
});

const replayDataSources = useMemo(
Copy link
Contributor Author

Choose a reason for hiding this comment

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

fixes an infinite render bug that, strangely, only occurred in Next v16 and wasn't happening in v15. This locks down the array reference so it no longer changes every render

"cache": false
},
"start:dev": {
"with": ["@pythnetwork/component-library#start:dev"]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

for local dev convenience, rebuilds the component library when changes to it are made and we're doing local dev in Insights Hub

import { Storable } from "./base";
import type { TokenId } from "./token";
import { execFileAsync, hasProperty } from "../utils/utils";
import { execFileAsync } from "../utils/exec-file-async";
Copy link
Contributor Author

Choose a reason for hiding this comment

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

needed to move this util to its own file, as previously, it was combined with other utils that were being imported on the client, which Next v15 handled with silent failures, but Next v16 dies on because it is much stricter about accidental node-specific imports leaking in to UI code.

name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0"
/>
{generateDefaultSeo(SEO)}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

latest next-seo package hand API changes, so this keeps the behavior the same as before, but uses the new API

turbopack: {
resolveAlias: {
fs: {
/**
Copy link
Contributor Author

Choose a reason for hiding this comment

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

comment should hopefully be self explanatory 🙂

"start:prod": "next start --port 3004",
"fix:format": "prettier --write .",
"fix:lint": "next lint --fix --max-warnings 0",
"fix:lint": "eslint --fix .",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is the cause for the extra noise for the xc_admin_frontend app. previously, it was using its own, local-only eslint ruleset

"extends": "@cprussin/tsconfig/nextjs.json",
"include": [
"*.d.ts",
"**/*.d.ts",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

moved the .d.ts files that were local to this project to be in the src folder, which allows us to leverage ts-duality's built-in --copyOtherFiles. Without this change, mixed roots were detected, so copying files would result in a wonky dist/ folder structure

@@ -1,4 +1,4 @@
nodejs 22.14.0
pnpm 10.7.0
nodejs 24.12.0
Copy link
Contributor Author

Choose a reason for hiding this comment

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

updates the asdf and mise config (@cprussin you might need to update the .nix config, as well)

"tasks": {
"//#fix": {
"dependsOn": ["//#fix:lint", "//#fix:format"],
"dependsOn": [
Copy link
Contributor Author

Choose a reason for hiding this comment

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

linting / formatting. sorry for the noise

Copy link
Collaborator

@cprussin cprussin left a comment

Choose a reason for hiding this comment

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

Image

Copy link
Collaborator

@cprussin cprussin left a comment

Choose a reason for hiding this comment

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

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform upgrading of dependencies, changing deployment configs, and more

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants