diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index 98e489f9..b4082a3d 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -10,11 +10,11 @@ on: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: matrix: - node-version: [16.x] + node-version: [22] steps: - name: Check out code diff --git a/Dockerfile b/Dockerfile index 5d82689b..5d642c01 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,7 @@ COPY ./backend ./ RUN make build # Frontend build -FROM docker.io/library/node:15 as frontend-install +FROM docker.io/library/node:22 as frontend-install WORKDIR /app/frontend COPY frontend/package*.json ./ RUN npm install diff --git a/frontend/Makefile b/frontend/Makefile index e0c12a1f..81d5cb41 100644 --- a/frontend/Makefile +++ b/frontend/Makefile @@ -1,3 +1,6 @@ +# To be dropped once Webpack is upgraded to v5 +export NODE_OPTIONS=--openssl-legacy-provider + .PHONY: frontend frontend: build diff --git a/frontend/package-lock.json b/frontend/package-lock.json index af7233c5..7a2275fc 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -34,6 +34,7 @@ "moment-timezone": "^0.5.38", "prop-types": "^15.7.2", "pubsub-js": "^1.9.3", + "querystring-es3": "^0.2.1", "react": "^17.0.2", "react-color": "^2.17.3", "react-dom": "^17.0.2", @@ -14036,9 +14037,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001470", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001470.tgz", - "integrity": "sha512-065uNwY6QtHCBOExzbV6m236DDhYCCtPmQUCoQtwkVqzud8v5QPidoMr6CoMkC2nfp6nksjttqWQRRh75LqUmA==", + "version": "1.0.30001646", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz", + "integrity": "sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==", "funding": [ { "type": "opencollective", @@ -14047,8 +14048,13 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/capture-exit": { "version": "2.0.0", @@ -28496,7 +28502,7 @@ "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "engines": { "node": ">=0.4.x" } @@ -46064,9 +46070,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001470", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001470.tgz", - "integrity": "sha512-065uNwY6QtHCBOExzbV6m236DDhYCCtPmQUCoQtwkVqzud8v5QPidoMr6CoMkC2nfp6nksjttqWQRRh75LqUmA==" + "version": "1.0.30001646", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz", + "integrity": "sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==" }, "capture-exit": { "version": "2.0.0", @@ -57285,7 +57291,7 @@ "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==" }, "querystringify": { "version": "2.2.0", diff --git a/frontend/package.json b/frontend/package.json index 1ca0a3fb..de5912b3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -35,6 +35,7 @@ "moment-timezone": "^0.5.38", "prop-types": "^15.7.2", "pubsub-js": "^1.9.3", + "querystring-es3": "^0.2.1", "react": "^17.0.2", "react-color": "^2.17.3", "react-dom": "^17.0.2",