diff --git a/Dockerfile b/Dockerfile index 7414d37c016e2da30dbfe25822dc880f6cf1c1da..d5a5deb5e81237b4b377c1f9be7cdafb69da0ff8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ # If you need more help, visit the Dockerfile reference guide at # https://docs.docker.com/engine/reference/builder/ -FROM node:16.15 AS base_node +FROM node:20 AS base_node FROM python:3.11-slim AS base_python # Keeps Python from buffering stdout and stderr to avoid situations where # the application crashes without emitting any logs due to buffering. @@ -109,7 +109,7 @@ FROM base_node AS dev_node WORKDIR /app/gui ENV PATH /app/node_modules/.bin:$PATH -ENV NODE_OPTIONS "--max_old_space_size=4096" +ENV NODE_OPTIONS "--max_old_space_size=4096 --openssl-legacy-provider" # Fetch and cache all (but only) the dependencies COPY gui/yarn.lock gui/package.json ./ diff --git a/gui/craco.config.js b/gui/craco.config.js index edf02375d2ab6c884fdf916fd275cd04cb43fab3..f51738dab3759257e2883ad19637df101c16933f 100644 --- a/gui/craco.config.js +++ b/gui/craco.config.js @@ -1,7 +1,19 @@ const CracoWorkboxPlugin = require('craco-workbox') module.exports = { - plugins: [{ - plugin: CracoWorkboxPlugin - }] + plugins: [{ + plugin: CracoWorkboxPlugin + }], + webpack: { + configure: (webpackConfig, { env, paths }) => { + // Add a rule to handle .mjs files + webpackConfig.module.rules.push({ + test: /\.mjs$/, + include: /node_modules/, + type: 'javascript/auto' + }) + + return webpackConfig + } + } } diff --git a/gui/package.json b/gui/package.json index a40518630d67b01df6d1571326746a3c2622266a..f9333419f5c3bd4f19e24b82fab4ba7b5f7c5174 100644 --- a/gui/package.json +++ b/gui/package.json @@ -29,7 +29,7 @@ "fetch": "^1.1.0", "html-to-react": "^1.3.3", "jmespath": "^0.16.0", - "keycloak-js": "^18.0.1", + "keycloak-js": "^25.0.2", "lodash": "^4.17.15", "material-ui-chip-input": "^1.1.0", "material-ui-flat-pagination": "^4.0.0", @@ -86,8 +86,8 @@ "yup": "^0.32.11" }, "scripts": { - "start": "craco start", - "build": "export CI=true && craco build", + "start": "craco --openssl-legacy-provider start", + "build": "export CI=true && craco --openssl-legacy-provider build", "test": "export WAIT_FOR_GUI=None && craco test --testPathIgnorePatterns=.*/conftest.spec.js --watchAll=false --maxWorkers=4", "watch-test": "craco test --testPathIgnorePatterns=.*/conftest.spec.js --maxWorkers=4", "test-integration": "export READ_MODE=api WRITE_MODE=none && craco test --testPathIgnorePatterns=.*/conftest.spec.js --watchAll=false --runInBand", diff --git a/gui/yarn.lock b/gui/yarn.lock index ac921526913a538882bf3000691bfdb3e55a3bcd..d6613a9750a7a552f0dfaa71e5a94faa26e05534 100644 --- a/gui/yarn.lock +++ b/gui/yarn.lock @@ -4069,7 +4069,7 @@ base16@^1.0.0: resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== -base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -10044,10 +10044,10 @@ js-levenshtein@^1.1.6: resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== -js-sha256@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" - integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== +js-sha256@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.11.0.tgz#256a921d9292f7fe98905face82e367abaca9576" + integrity sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -10276,6 +10276,11 @@ just-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.1.0.tgz#2f81a3ad4121a76bc7cb45dbf704c0d76a8e5ddf" integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ== +jwt-decode@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-4.0.0.tgz#2270352425fd413785b2faf11f6e755c5151bd4b" + integrity sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA== + katex@^0.13.0: version "0.13.24" resolved "https://registry.yarnpkg.com/katex/-/katex-0.13.24.tgz#fe55455eb455698cb24b911a353d16a3c855d905" @@ -10283,13 +10288,13 @@ katex@^0.13.0: dependencies: commander "^8.0.0" -keycloak-js@^18.0.1: - version "18.0.1" - resolved "https://registry.yarnpkg.com/keycloak-js/-/keycloak-js-18.0.1.tgz#0c6dedfa8bbb266bac1b16a14b032d65c6afd2d2" - integrity sha512-IRXToYpbIrkyfLeNNJly2OjUCf11ncx2Sdsg257NVDwjOYE923osu47w8pfxEVWpTaS14/Y2QjbTHciuBK0RBQ== +keycloak-js@^25.0.2: + version "25.0.2" + resolved "https://registry.yarnpkg.com/keycloak-js/-/keycloak-js-25.0.2.tgz#10de8352ae7bb0d46396e4f083b40b959285791b" + integrity sha512-ACLf5O5PqzfDJwGqvLpqM0kflYWmyl3+T7M2C23gztJYccDxdfNP54+B9OkXz2GnDpLUId0ceoA+lbHw9t4Wng== dependencies: - base64-js "^1.5.1" - js-sha256 "^0.9.0" + js-sha256 "^0.11.0" + jwt-decode "^4.0.0" keycode@^2.1.7: version "2.2.1"