From 3feb8800f70bc23339d54b46bb4e7516b70bfbdb Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Fri, 27 Jun 2025 23:27:02 +0000 Subject: [PATCH 1/2] chore: use catalog for dependencies across multiple packages and the website --- apps/site/package.json | 12 +++---- packages/i18n/package.json | 2 +- packages/rehype-shiki/package.json | 2 +- packages/ui-components/package.json | 12 +++---- pnpm-lock.yaml | 49 ++++++++++++++++++++--------- pnpm-workspace.yaml | 13 ++++++++ 6 files changed, 62 insertions(+), 28 deletions(-) diff --git a/apps/site/package.json b/apps/site/package.json index 21fb837465ad2..64c5b2e20f298 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -47,13 +47,13 @@ "@radix-ui/react-toast": "^1.2.14", "@radix-ui/react-tooltip": "^1.2.7", "@tailwindcss/postcss": "~4.1.8", - "@types/node": "22.15.3", - "@types/react": "^19.1.6", + "@types/node": "catalog:", + "@types/react": "catalog:", "@vcarl/remark-headings": "~0.1.0", "@vercel/analytics": "~1.5.0", "@vercel/otel": "~1.12.0", "@vercel/speed-insights": "~1.2.0", - "classnames": "~2.5.1", + "classnames": "catalog:", "cross-env": "7.0.3", "feed": "~5.1.0", "github-slugger": "~2.0.0", @@ -63,7 +63,7 @@ "next-intl": "~4.1.0", "next-themes": "~0.4.6", "postcss-calc": "~10.1.1", - "react": "^19.1.0", + "react": "catalog:", "react-dom": "^19.1.0", "reading-time": "~1.5.0", "rehype-autolink-headings": "~7.1.0", @@ -72,7 +72,7 @@ "remark-reading-time": "~2.0.2", "semver": "~7.7.2", "sval": "^0.6.3", - "tailwindcss": "~4.0.17", + "tailwindcss": "catalog:", "vfile": "~6.0.3", "vfile-matter": "~5.0.1" }, @@ -109,7 +109,7 @@ "stylelint-order": "7.0.0", "stylelint-selector-bem-pattern": "4.0.1", "tsx": "^4.19.3", - "typescript": "~5.8.2", + "typescript": "catalog:", "typescript-eslint": "~8.33.1", "user-agent-data-types": "0.4.2", "wrangler": "^4.13.0" diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 426e8c8d5411c..e7e12dd6fdc97 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "eslint-import-resolver-typescript": "~4.4.2", - "typescript": "~5.8.2", + "typescript": "catalog:", "typescript-eslint": "~8.33.1" } } diff --git a/packages/rehype-shiki/package.json b/packages/rehype-shiki/package.json index 0a419501e7463..96cb1e523792b 100644 --- a/packages/rehype-shiki/package.json +++ b/packages/rehype-shiki/package.json @@ -16,7 +16,7 @@ "@shikijs/core": "^3.4.2", "@shikijs/engine-javascript": "^3.4.2", "@shikijs/engine-oniguruma": "^3.7.0", - "classnames": "~2.5.1", + "classnames": "catalog:", "hast-util-to-string": "^3.0.1", "shiki": "~3.4.2", "unist-util-visit": "^5.0.0" diff --git a/packages/ui-components/package.json b/packages/ui-components/package.json index 5df2ec63c09d5..34fe2640ae02f 100644 --- a/packages/ui-components/package.json +++ b/packages/ui-components/package.json @@ -44,9 +44,9 @@ "@radix-ui/react-tooltip": "~1.2.7", "@tailwindcss/postcss": "~4.1.8", "@vcarl/remark-headings": "~0.1.0", - "classnames": "~2.5.1", + "classnames": "catalog:", "postcss-calc": "^10.1.1", - "tailwindcss": "~4.0.17" + "tailwindcss": "catalog:" }, "devDependencies": { "@storybook/addon-styling-webpack": "^1.0.1", @@ -55,15 +55,15 @@ "@storybook/react": "^9.0.3", "@storybook/react-webpack5": "^9.0.3", "@testing-library/user-event": "~14.6.1", - "@types/node": "22.15.3", - "@types/react": "^19.1.6", + "@types/node": "catalog:", + "@types/react": "catalog:", "cross-env": "^7.0.3", "css-loader": "~7.1.2", "eslint-plugin-react": "~7.37.4", "eslint-plugin-storybook": "~9.0.3", "global-jsdom": "^26.0.0", "postcss-loader": "~8.1.1", - "react": "^19.1.0", + "react": "catalog:", "storybook": "^9.0.3", "style-loader": "~4.0.0", "stylelint": "^16.20.0", @@ -71,7 +71,7 @@ "stylelint-order": "7.0.0", "stylelint-selector-bem-pattern": "4.0.1", "tsx": "^4.19.3", - "typescript": "~5.8.2", + "typescript": "catalog:", "typescript-eslint": "~8.33.1" }, "imports": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eb25eaa266a09..8bd1c0fc10487 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,27 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +catalogs: + default: + '@types/node': + specifier: 22.15.3 + version: 22.15.3 + '@types/react': + specifier: ^19.1.6 + version: 19.1.6 + classnames: + specifier: ~2.5.1 + version: 2.5.1 + react: + specifier: ^19.1.0 + version: 19.1.0 + tailwindcss: + specifier: ~4.0.17 + version: 4.0.17 + typescript: + specifier: ~5.8.2 + version: 5.8.3 + importers: .: @@ -97,10 +118,10 @@ importers: specifier: ~4.1.8 version: 4.1.8 '@types/node': - specifier: 22.15.3 + specifier: 'catalog:' version: 22.15.3 '@types/react': - specifier: ^19.1.6 + specifier: 'catalog:' version: 19.1.6 '@vcarl/remark-headings': specifier: ~0.1.0 @@ -115,7 +136,7 @@ importers: specifier: ~1.2.0 version: 1.2.0(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) classnames: - specifier: ~2.5.1 + specifier: 'catalog:' version: 2.5.1 cross-env: specifier: 7.0.3 @@ -145,7 +166,7 @@ importers: specifier: ~10.1.1 version: 10.1.1(postcss@8.5.3) react: - specifier: ^19.1.0 + specifier: 'catalog:' version: 19.1.0 react-dom: specifier: ^19.1.0 @@ -172,7 +193,7 @@ importers: specifier: ^0.6.3 version: 0.6.7 tailwindcss: - specifier: ~4.0.17 + specifier: 'catalog:' version: 4.0.17 vfile: specifier: ~6.0.3 @@ -278,7 +299,7 @@ importers: specifier: ^4.19.3 version: 4.19.4 typescript: - specifier: ~5.8.2 + specifier: 'catalog:' version: 5.8.3 typescript-eslint: specifier: ~8.33.1 @@ -296,7 +317,7 @@ importers: specifier: ~4.4.2 version: 4.4.2(eslint-plugin-import-x@4.15.0(@typescript-eslint/utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2)))(eslint-plugin-import@2.31.0)(eslint@9.28.0(jiti@2.4.2)) typescript: - specifier: ~5.8.2 + specifier: 'catalog:' version: 5.8.3 typescript-eslint: specifier: ~8.33.1 @@ -314,7 +335,7 @@ importers: specifier: ^3.7.0 version: 3.7.0 classnames: - specifier: ~2.5.1 + specifier: 'catalog:' version: 2.5.1 hast-util-to-string: specifier: ^3.0.1 @@ -365,13 +386,13 @@ importers: specifier: ~0.1.0 version: 0.1.0 classnames: - specifier: ~2.5.1 + specifier: 'catalog:' version: 2.5.1 postcss-calc: specifier: ^10.1.1 version: 10.1.1(postcss@8.5.3) tailwindcss: - specifier: ~4.0.17 + specifier: 'catalog:' version: 4.0.17 devDependencies: '@storybook/addon-styling-webpack': @@ -393,10 +414,10 @@ importers: specifier: ~14.6.1 version: 14.6.1(@testing-library/dom@10.4.0) '@types/node': - specifier: 22.15.3 + specifier: 'catalog:' version: 22.15.3 '@types/react': - specifier: ^19.1.6 + specifier: 'catalog:' version: 19.1.6 cross-env: specifier: ^7.0.3 @@ -417,7 +438,7 @@ importers: specifier: ~8.1.1 version: 8.1.1(postcss@8.5.3)(typescript@5.8.3)(webpack@5.99.7(@swc/core@1.11.24)(esbuild@0.25.3)) react: - specifier: ^19.1.0 + specifier: 'catalog:' version: 19.1.0 storybook: specifier: ^9.0.3 @@ -441,7 +462,7 @@ importers: specifier: ^4.19.3 version: 4.19.4 typescript: - specifier: ~5.8.2 + specifier: 'catalog:' version: 5.8.3 typescript-eslint: specifier: ~8.33.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 69b93ed5beb2f..2b5b32503f23f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -13,3 +13,16 @@ onlyBuiltDependencies: - sharp - unrs-resolver - workerd + +# We use catalog for dependencies that are shared across +# multiple packages in the monorepo. +# This allows us to manage versions and updates in one place. +# https://pnpm.io/en/catalogs + +catalog: + '@types/node': 22.15.3 + '@types/react': ^19.1.6 + classnames: ~2.5.1 + react: ^19.1.0 + tailwindcss: ~4.0.17 + typescript: ~5.8.2 From 5df07c0b90e6ab47819f5ae7735cc17e22af9fd6 Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Fri, 27 Jun 2025 23:51:53 +0000 Subject: [PATCH 2/2] some suggestions --- apps/site/package.json | 2 +- packages/rehype-shiki/package.json | 3 +++ packages/ui-components/package.json | 2 +- pnpm-lock.yaml | 11 +++++++++-- pnpm-workspace.yaml | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/apps/site/package.json b/apps/site/package.json index 64c5b2e20f298..ac01807c1c68f 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -54,7 +54,7 @@ "@vercel/otel": "~1.12.0", "@vercel/speed-insights": "~1.2.0", "classnames": "catalog:", - "cross-env": "7.0.3", + "cross-env": "catalog:", "feed": "~5.1.0", "github-slugger": "~2.0.0", "glob": "~11.0.1", diff --git a/packages/rehype-shiki/package.json b/packages/rehype-shiki/package.json index 96cb1e523792b..8fc25f1a1e9b9 100644 --- a/packages/rehype-shiki/package.json +++ b/packages/rehype-shiki/package.json @@ -20,5 +20,8 @@ "hast-util-to-string": "^3.0.1", "shiki": "~3.4.2", "unist-util-visit": "^5.0.0" + }, + "devDependencies": { + "cross-env": "catalog:" } } diff --git a/packages/ui-components/package.json b/packages/ui-components/package.json index 34fe2640ae02f..d2c0d38c2cc52 100644 --- a/packages/ui-components/package.json +++ b/packages/ui-components/package.json @@ -57,7 +57,7 @@ "@testing-library/user-event": "~14.6.1", "@types/node": "catalog:", "@types/react": "catalog:", - "cross-env": "^7.0.3", + "cross-env": "catalog:", "css-loader": "~7.1.2", "eslint-plugin-react": "~7.37.4", "eslint-plugin-storybook": "~9.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8bd1c0fc10487..1e2d38e788803 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,6 +15,9 @@ catalogs: classnames: specifier: ~2.5.1 version: 2.5.1 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 react: specifier: ^19.1.0 version: 19.1.0 @@ -139,7 +142,7 @@ importers: specifier: 'catalog:' version: 2.5.1 cross-env: - specifier: 7.0.3 + specifier: 'catalog:' version: 7.0.3 feed: specifier: ~5.1.0 @@ -346,6 +349,10 @@ importers: unist-util-visit: specifier: ^5.0.0 version: 5.0.0 + devDependencies: + cross-env: + specifier: 'catalog:' + version: 7.0.3 packages/ui-components: dependencies: @@ -420,7 +427,7 @@ importers: specifier: 'catalog:' version: 19.1.6 cross-env: - specifier: ^7.0.3 + specifier: 'catalog:' version: 7.0.3 css-loader: specifier: ~7.1.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 2b5b32503f23f..02e72cf9aea76 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -18,7 +18,6 @@ onlyBuiltDependencies: # multiple packages in the monorepo. # This allows us to manage versions and updates in one place. # https://pnpm.io/en/catalogs - catalog: '@types/node': 22.15.3 '@types/react': ^19.1.6 @@ -26,3 +25,4 @@ catalog: react: ^19.1.0 tailwindcss: ~4.0.17 typescript: ~5.8.2 + 'cross-env': ^7.0.3