diff --git a/.ddev/config.yaml b/.ddev/config.yaml index 00e48a5..cf9a90c 100644 --- a/.ddev/config.yaml +++ b/.ddev/config.yaml @@ -14,7 +14,7 @@ database: use_dns_when_possible: true composer_version: "2" web_environment: [] -nodejs_version: "20" +nodejs_version: "22" # Key features of ddev's config.yaml: diff --git a/.github/workflows/publish-demo-site.yml b/.github/workflows/publish-demo-site.yml index 97f163a..9883039 100644 --- a/.github/workflows/publish-demo-site.yml +++ b/.github/workflows/publish-demo-site.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: '20' + node-version: '22' - name: Install npm packages run: npm ci - name: Build Storybook artifact diff --git a/.gitignore b/.gitignore index 7ab1f8d..95bf7ab 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ tsconfig.tsbuildinfo # Storybook build files storybook-static/ +storybook/ diff --git a/.nvmrc b/.nvmrc index 209e3ef..8fdd954 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20 +22 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 8a22c33..49a28dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG NODE_VERSION="18" +ARG NODE_VERSION="22" FROM node:${NODE_VERSION}-alpine AS artifact # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. diff --git a/package-lock.json b/package-lock.json index 61d1519..81f7066 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "@svgr/babel-plugin-add-jsx-attribute": "^8.0.0", "@svgr/babel-plugin-remove-jsx-attribute": "^8.0.0", "@svgr/cli": "^8.1.0", - "@types/node": "^20.19.11", + "@types/node": "^22.18.1", "@types/react": "19.1.12", "@types/react-dom": "19.1.9", "@typescript-eslint/eslint-plugin": "^8.29.1", @@ -55,8 +55,11 @@ "stylelint-config-standard": "^39.0.0", "stylelint-order": "^7.0.0", "stylelint-webpack-plugin": "^5.0.1", - "typescript": "^5.9.2", + "typescript": "~5.9.2", "yaml": "^2.8.1" + }, + "engines": { + "node": ">=22" } }, "node_modules/@adobe/css-tools": { @@ -4386,16 +4389,6 @@ "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/@types/node": { - "version": "22.18.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.0.tgz", - "integrity": "sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, "node_modules/@inquirer/editor": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.2.0.tgz", @@ -5994,9 +5987,9 @@ } }, "node_modules/@types/node": { - "version": "20.19.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.11.tgz", - "integrity": "sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==", + "version": "22.18.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.1.tgz", + "integrity": "sha512-rzSDyhn4cYznVG+PCzGe1lwuMYJrcBS1fc3JqSa2PvtABwWo+dZ1ij5OVok3tqfpEBCBoaR4d7upFJk73HRJDw==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index e4116f3..03d2502 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "export": "next build && next export", "lint": "next lint && stylelint \"source/**/*.css\"", "prepare": "husky install", - "prettier": "prettier --check pages source/", + "prettier": "prettier --check app source/", "prettier:write": "prettier --write app source/", "tsc": "tsc --noEmit", "test": "npm run lint && npm run tsc", @@ -42,7 +42,7 @@ "@svgr/babel-plugin-add-jsx-attribute": "^8.0.0", "@svgr/babel-plugin-remove-jsx-attribute": "^8.0.0", "@svgr/cli": "^8.1.0", - "@types/node": "^20.19.11", + "@types/node": "^22.18.1", "@types/react": "19.1.12", "@types/react-dom": "19.1.9", "@typescript-eslint/eslint-plugin": "^8.29.1", @@ -79,5 +79,8 @@ "@types/react": "19.1.12", "@types/react-dom": "19.1.9", "storybook": "$storybook" + }, + "engines": { + "node": ">=22" } }