diff --git a/CLAUDE.md b/CLAUDE.md index 7b9608d3..ae0ed338 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -38,6 +38,10 @@ export function MyComponent({ value }: MyComponentProps) { } ``` +## Dependencies + +When adding or updating packages in `package.json`, do not specify the PATCH version — use `^MAJOR.MINOR.0`. The exact patch version is managed by the lockfile and `npm update`. + ## Architecture **Pages Router with SSG/ISR:** All pages use `getStaticProps`/`getStaticPaths` with 30-second revalidation. The catch-all route `pages/[...slug].tsx` handles all dynamic content pages. diff --git a/package-lock.json b/package-lock.json index a7a284ac..10c22582 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@radix-ui/react-navigation-menu": "^1.0.0", "@radix-ui/react-tooltip": "^1.0.0", - "classnames": "^2.2.6", + "classnames": "^2.5.0", "dangerously-set-html-content": "^1.0.13", "date-fns": "^4.0.0", "markdown-it": "^13.0.1", @@ -31,11 +31,9 @@ "@eslint/eslintrc": "^3.3.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", - "@types/classnames": "^2.2.10", "@types/markdown-it": "^12.2.3", "@types/node": "^22.19.9", "@types/react": "^18.0.18", - "@types/sharp": "^0.29.2", "@typescript-eslint/eslint-plugin": "^8.54.0", "@typescript-eslint/parser": "^8.54.0", "eslint": "^9.0.0", @@ -1820,12 +1818,6 @@ "assertion-error": "^2.0.1" } }, - "node_modules/@types/classnames": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.10.tgz", - "integrity": "sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ==", - "dev": true - }, "node_modules/@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -1920,15 +1912,6 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", "devOptional": true }, - "node_modules/@types/sharp": { - "version": "0.29.2", - "resolved": "https://registry.npmjs.org/@types/sharp/-/sharp-0.29.2.tgz", - "integrity": "sha512-tIbMvtPa8kMyFMKNhpsPT1HO3CgXLuiCAA8bxHAGAZLyALpYvYc4hUu3pu0+3oExQA5LwvHrWp+OilgXCYVQgg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/whatwg-mimetype": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/whatwg-mimetype/-/whatwg-mimetype-3.0.2.tgz", @@ -2865,9 +2848,10 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "node_modules/classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" }, "node_modules/client-only": { "version": "0.0.1", diff --git a/package.json b/package.json index 0e4d3874..95def5f2 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "dependencies": { "@radix-ui/react-navigation-menu": "^1.0.0", "@radix-ui/react-tooltip": "^1.0.0", - "classnames": "^2.2.6", + "classnames": "^2.5.0", "dangerously-set-html-content": "^1.0.13", "date-fns": "^4.0.0", "markdown-it": "^13.0.1", @@ -43,11 +43,9 @@ "@eslint/eslintrc": "^3.3.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", - "@types/classnames": "^2.2.10", "@types/markdown-it": "^12.2.3", "@types/node": "^22.19.9", "@types/react": "^18.0.18", - "@types/sharp": "^0.29.2", "@typescript-eslint/eslint-plugin": "^8.54.0", "@typescript-eslint/parser": "^8.54.0", "eslint": "^9.0.0",