From 6fb1425eb933ab920a95f48cccab273b358847a3 Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Sun, 1 Jun 2025 21:57:22 +0000 Subject: [PATCH] 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 | 96 ++++++++++++----------------- pnpm-workspace.yaml | 13 ++++ 6 files changed, 66 insertions(+), 71 deletions(-) diff --git a/apps/site/package.json b/apps/site/package.json index e61c670b06f42..2d4f5435aba28 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -44,13 +44,13 @@ "@radix-ui/react-toast": "^1.2.6", "@radix-ui/react-tooltip": "^1.2.4", "@tailwindcss/postcss": "~4.1.5", - "@types/node": "22.15.3", - "@types/react": "^19.1.0", + "@types/node": "catalog:", + "@types/react": "catalog:", "@vcarl/remark-headings": "~0.1.0", "@vercel/analytics": "~1.5.0", "@vercel/otel": "~1.11.0", "@vercel/speed-insights": "~1.2.0", - "classnames": "~2.5.1", + "classnames": "catalog:", "cross-env": "7.0.3", "feed": "~4.2.2", "github-slugger": "~2.0.0", @@ -60,7 +60,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", @@ -69,7 +69,7 @@ "remark-reading-time": "~2.0.1", "semver": "~7.7.1", "sval": "^0.6.3", - "tailwindcss": "~4.0.17", + "tailwindcss": "catalog:", "vfile": "~6.0.3", "vfile-matter": "~5.0.1" }, @@ -106,7 +106,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.31.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 308ca4d39ed8d..8677d180bb240 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -24,7 +24,7 @@ }, "devDependencies": { "eslint-import-resolver-typescript": "~4.3.1", - "typescript": "~5.8.2", + "typescript": "catalog:", "typescript-eslint": "~8.31.1" } } diff --git a/packages/rehype-shiki/package.json b/packages/rehype-shiki/package.json index 09a03b003e373..79f1786b7247d 100644 --- a/packages/rehype-shiki/package.json +++ b/packages/rehype-shiki/package.json @@ -13,7 +13,7 @@ "dependencies": { "@shikijs/core": "^3.3.0", "@shikijs/engine-javascript": "^3.3.0", - "classnames": "~2.5.1", + "classnames": "catalog:", "hast-util-to-string": "^3.0.1", "shiki": "~3.3.0", "unist-util-visit": "^5.0.0" diff --git a/packages/ui-components/package.json b/packages/ui-components/package.json index 6923013847eea..788711a9bcf97 100644 --- a/packages/ui-components/package.json +++ b/packages/ui-components/package.json @@ -44,9 +44,9 @@ "@radix-ui/react-tooltip": "~1.2.4", "@tailwindcss/postcss": "~4.1.5", "@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-controls": "^8.6.12", @@ -58,15 +58,15 @@ "@storybook/react": "^8.6.12", "@storybook/react-webpack5": "^8.6.12", "@testing-library/user-event": "~14.6.1", - "@types/node": "22.15.3", - "@types/react": "^19.1.0", + "@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": "~0.12.0", "global-jsdom": "^26.0.0", "postcss-loader": "~8.1.1", - "react": "^19.1.0", + "react": "catalog:", "storybook": "^8.6.11", "style-loader": "~4.0.0", "stylelint": "^16.19.1", @@ -74,7 +74,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.31.1" }, "imports": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1586b5a1e2322..a4f3795a2ed91 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.0 + version: 19.1.2 + 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.5 version: 4.1.5 '@types/node': - specifier: 22.15.3 + specifier: 'catalog:' version: 22.15.3 '@types/react': - specifier: ^19.1.0 + specifier: 'catalog:' version: 19.1.2 '@vcarl/remark-headings': specifier: ~0.1.0 @@ -115,7 +136,7 @@ importers: specifier: ~1.2.0 version: 1.2.0(next@15.3.1(@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.31.1 @@ -296,7 +317,7 @@ importers: specifier: ~4.3.1 version: 4.3.4(eslint-plugin-import-x@4.11.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.26.0(jiti@2.4.2)) typescript: - specifier: ~5.8.2 + specifier: 'catalog:' version: 5.8.3 typescript-eslint: specifier: ~8.31.1 @@ -311,7 +332,7 @@ importers: specifier: ^3.3.0 version: 3.3.0 classnames: - specifier: ~2.5.1 + specifier: 'catalog:' version: 2.5.1 hast-util-to-string: specifier: ^3.0.1 @@ -362,13 +383,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-controls': @@ -399,10 +420,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.0 + specifier: 'catalog:' version: 19.1.2 cross-env: specifier: ^7.0.3 @@ -423,7 +444,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: ^8.6.11 @@ -447,7 +468,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.31.1 @@ -12826,7 +12847,7 @@ snapshots: tinyglobby: 0.2.13 unrs-resolver: 1.7.2 optionalDependencies: - eslint-plugin-import: 2.31.0(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.31.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0(jiti@2.4.2)) eslint-plugin-import-x: 4.11.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - supports-color @@ -12854,27 +12875,16 @@ snapshots: - bluebird - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.31.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.31.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.31.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.26.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import-x@4.11.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.26.0(jiti@2.4.2)) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0(jiti@2.4.2)): - dependencies: - debug: 3.2.7 - optionalDependencies: - eslint: 9.26.0(jiti@2.4.2) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.3.4(eslint-plugin-import-x@4.11.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.26.0(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.11.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-plugin-import@2.31.0)(eslint@9.26.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color - optional: true eslint-plugin-import-x@4.11.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3): dependencies: @@ -12905,7 +12915,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.26.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.31.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.31.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -12923,34 +12933,6 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0(jiti@2.4.2)): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 9.26.0(jiti@2.4.2) - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.3.4)(eslint@9.26.0(jiti@2.4.2)) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - optional: true - eslint-plugin-jsx-a11y@6.10.2(eslint@9.26.0(jiti@2.4.2)): dependencies: aria-query: 5.3.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c47d8ad2e89ac..babbca5993656 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -11,3 +11,16 @@ onlyBuiltDependencies: - esbuild - sharp - unrs-resolver + +# 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.0 + classnames: ~2.5.1 + react: ^19.1.0 + tailwindcss: ~4.0.17 + typescript: ~5.8.2