diff --git a/.github/workflows/harbour-build-ui.yml b/.github/workflows/harbour-build-ui.yml index b2d85c35f..f6486f738 100644 --- a/.github/workflows/harbour-build-ui.yml +++ b/.github/workflows/harbour-build-ui.yml @@ -35,10 +35,8 @@ jobs: username: ${{ secrets.HARBOR_USERNAME }} password: ${{ secrets.HARBOR_PASSWORD }} build-args: | - BRANCH_NAME=${{ steps.get_branch.outputs.BRANCH_NAME }} - PIWIK_ENV=${{ steps.get_branch.outputs.BRANCH_NAME }} - CAP_PIWIK_URL=${{ secrets.CAP_PIWIK_URL }} - CAP_PIWIK_SITEID_DEV=${{ secrets.CAP_PIWIK_SITEID_DEV }} - CAP_PIWIK_SITEID_PROD=${{ secrets.CAP_PIWIK_SITEID_PROD }} - CAP_PIWIK_SITEID_QA=${{ secrets.CAP_PIWIK_SITEID_QA }} - CAP_PIWIK_SITEID_TEST=${{ secrets.CAP_PIWIK_SITEID_TEST }} + SENTRY_URL=${{ secrets.CAP_SENTRY_URL }} + SENTRY_ORG=${{ secrets.CAP_SENTRY_ORG }} + SENTRY_PROJECT=${{ secrets.CAP_SENTRY_PROJECT }} + SENTRY_AUTH_TOKEN=${{ secrets.CAP_SENTRY_AUTH_TOKEN }} + SENTRY_RELEASE=$GITHUB_SHA diff --git a/docker/harbour/ui/Dockerfile b/docker/harbour/ui/Dockerfile index dda2b3d48..135fd526a 100644 --- a/docker/harbour/ui/Dockerfile +++ b/docker/harbour/ui/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18-alpine as build +FROM node:18-alpine AS build RUN apk add --no-cache git @@ -6,48 +6,19 @@ ENV WORKING_DIR=/tmp/cap WORKDIR $WORKING_DIR -ARG PIWIK_ENV=dev -ARG ENABLE_E2E +ARG SENTRY_URL +ARG SENTRY_ORG +ARG SENTRY_PROJECT +ARG SENTRY_AUTH_TOKEN +ARG SENTRY_RELEASE -ARG CAP_PIWIK_URL -ARG CAP_PIWIK_SITEID_DEV -ARG CAP_PIWIK_SITEID_PROD -ARG CAP_PIWIK_SITEID_QA -ARG CAP_PIWIK_SITEID_TEST - -ARG PIWIK_URL -ARG PIWIK_SITEID_DEV -ARG PIWIK_SITEID_PROD -ARG PIWIK_SITEID_QA -ARG PIWIK_SITEID_TEST +ENV SENTRY_URL=$SENTRY_URL +ENV SENTRY_ORG=$SENTRY_ORG +ENV SENTRY_PROJECT=$SENTRY_PROJECT +ENV SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN +ENV VITE_SENTRY_RELEASE=$SENTRY_RELEASE RUN mkdir -p ui/cap-react -RUN echo "PIWIK_URL=$CAP_PIWIK_URL" >> ui/cap-react/.env -RUN echo "ENABLE_E2E=$ENABLE_E2E" >> ui/cap-react/.env - -RUN if [[ $PIWIK_ENV == "dev" ]]; then \ - echo "PIWIK_SITEID=$CAP_PIWIK_SITEID_DEV" >> ui/cap-react/.env; \ - fi - -RUN if [[ $PIWIK_ENV == "prod" ]]; then \ - echo "PIWIK_SITEID=$CAP_PIWIK_SITEID_PROD" >> ui/cap-react/.env; \ - fi - -RUN if [[ $PIWIK_ENV == "qa" ]]; then \ - echo "PIWIK_SITEID=$CAP_PIWIK_SITEID_QA" >> ui/cap-react/.env; \ - fi - -RUN if [[ $PIWIK_ENV == "test" ]]; then \ - echo "PIWIK_SITEID=$CAP_PIWIK_SITEID_TEST" >> ui/cap-react/.env; \ - fi - - -RUN echo "==========================" -RUN echo $CAP_PIWIK_SITEID_TEST -RUN echo $PIWIK_SITEID_TEST -RUN echo "==========================" -RUN cat ui/cap-react/.env -RUN echo "==========================" WORKDIR $WORKING_DIR/ui @@ -55,6 +26,10 @@ WORKDIR $WORKING_DIR/ui COPY ./ui ${WORKING_DIR}/ui RUN yarn install RUN yarn workspace cap-react build +WORKDIR ${WORKING_DIR}/ui/cap-react +RUN yarn sentry:create-release +RUN yarn sentry:sourcemaps +RUN yarn sentry:finalize-release # build general docs COPY ./docs ${WORKING_DIR}/docs diff --git a/ui/cap-react/index.html b/ui/cap-react/index.html index ae5a6be90..e7e866f12 100755 --- a/ui/cap-react/index.html +++ b/ui/cap-react/index.html @@ -5,6 +5,7 @@ + CERN Analysis Preservation diff --git a/ui/cap-react/package.json b/ui/cap-react/package.json index f8c9e63da..edf416e97 100644 --- a/ui/cap-react/package.json +++ b/ui/cap-react/package.json @@ -22,6 +22,9 @@ "test:e2e:run": "cypress run --headless --browser chrome", "tests": "start-server-and-test start http://localhost:3000 test:e2e:run", "open:cover": "npm run test:cover && opn ./coverage/lcov-report/index.html", + "sentry:create-release": "sentry-cli releases new $VITE_SENTRY_RELEASE", + "sentry:sourcemaps": "sentry-cli releases files $VITE_SENTRY_RELEASE upload-sourcemaps dist", + "sentry:finalize-release": "sentry-cli releases finalize $VITE_SENTRY_RELEASE", "dev": "vite", "dev:docker": "DOCKER=true vite", "preview": "vite preview" @@ -73,6 +76,7 @@ "vite": "^5.0.2" }, "devDependencies": { + "@sentry/cli": "2.38.2", "autoprefixer": "7.1.4", "chalk": "2.0.1", "concurrently": "3.5.0", diff --git a/ui/cap-react/public/config.js b/ui/cap-react/public/config.js new file mode 100644 index 000000000..7543f7f67 --- /dev/null +++ b/ui/cap-react/public/config.js @@ -0,0 +1,11 @@ +(() => { + const CONFIG = { + ENV: null, + PIWIK_URL: null, + PIWIK_SITE_ID: null, + SENTRY_UI_DSN: null, + ENABLE_E2E: false, + }; + + Object.defineProperty(window, "CONFIG", { value: Object.freeze(CONFIG) }); +})(); diff --git a/ui/cap-react/src/antd/Root.js b/ui/cap-react/src/antd/Root.js index 9e17229ef..24a60277f 100644 --- a/ui/cap-react/src/antd/Root.js +++ b/ui/cap-react/src/antd/Root.js @@ -5,12 +5,16 @@ import App from "../antd/App"; import { ConfigProvider } from "antd"; import { MatomoProvider, createInstance } from "@datapunt/matomo-tracker-react"; import { theme } from "./utils/theme"; +import { getConfigFor } from "../config"; + +const PIWIK_URL = getConfigFor("PIWIK_URL"); +const PIWIK_SITE_ID = getConfigFor("PIWIK_SITE_ID"); export const matomoInstance = - process.env.PIWIK_URL && process.env.PIWIK_SITEID + PIWIK_URL && PIWIK_SITE_ID ? createInstance({ - urlBase: process.env.PIWIK_URL, - siteId: process.env.PIWIK_SITEID, + urlBase: PIWIK_URL, + siteId: PIWIK_SITE_ID, }) : null; diff --git a/ui/cap-react/src/antd/drafts/CreateForm/CreateForm.js b/ui/cap-react/src/antd/drafts/CreateForm/CreateForm.js index 071404d41..b23a82e52 100644 --- a/ui/cap-react/src/antd/drafts/CreateForm/CreateForm.js +++ b/ui/cap-react/src/antd/drafts/CreateForm/CreateForm.js @@ -1,6 +1,7 @@ import { useEffect } from "react"; import PropTypes from "prop-types"; import { Space, Form, Input, Radio } from "antd"; +import { getConfigFor } from "../../../config"; const BLOCK_DEPOSIT_GROUPS = ["cms-analysis"]; const CreateForm = ({ contentTypes, @@ -17,7 +18,7 @@ const CreateForm = ({ }, []); let contentType = contentTypes; - if (!(process.env.NODE_ENV === "development" || process.env.ENABLE_E2E)) { + if (!(process.env.NODE_ENV === "development" || getConfigFor("ENABLE_E2E"))) { contentType = contentTypes && contentTypes.filter( diff --git a/ui/cap-react/src/antd/partials/Header/Menu/Menu.js b/ui/cap-react/src/antd/partials/Header/Menu/Menu.js index 48abb3e05..d9e0cdc7e 100644 --- a/ui/cap-react/src/antd/partials/Header/Menu/Menu.js +++ b/ui/cap-react/src/antd/partials/Header/Menu/Menu.js @@ -4,6 +4,7 @@ import { WELCOME } from "../../../routes"; import { LoginOutlined } from "@ant-design/icons"; import LoginForm from "../LoginForm"; import { useState } from "react"; +import { getConfigFor } from "../../../../config"; const SimpleMenu = ({ loginLocalUser, @@ -30,7 +31,7 @@ const SimpleMenu = ({ }, ]; - (process.env.NODE_ENV == "development" || process.env.ENABLE_E2E) && + (process.env.NODE_ENV == "development" || getConfigFor("ENABLE_E2E")) && menuItems.unshift({ key: "localLogin", label: ( diff --git a/ui/cap-react/src/config.js b/ui/cap-react/src/config.js index 634ff4e43..f26544b89 100644 --- a/ui/cap-react/src/config.js +++ b/ui/cap-react/src/config.js @@ -1,8 +1,13 @@ -const config = { - project: { - name: "CERN Analysis Preservation", - api: "https://pammbp.cern.ch:5000" - } -}; +import * as Sentry from "@sentry/react"; -export default config; +export function getConfigFor(configKey, notSetValue = null) { + try { + return window.CONFIG[configKey] != null + ? window.CONFIG[configKey] + : notSetValue; + } catch (error) { + Sentry.captureException(error); + console.error(error); // eslint-disable-line no-console + return notSetValue; + } +} diff --git a/ui/cap-react/src/index.js b/ui/cap-react/src/index.js index adb37ebd8..d28cebe91 100755 --- a/ui/cap-react/src/index.js +++ b/ui/cap-react/src/index.js @@ -2,12 +2,20 @@ import { createRoot } from "react-dom/client"; import store, { history } from "./store/configureStore"; import Root from "./antd/Root"; import * as Sentry from "@sentry/react"; +import { getConfigFor } from "./config"; // import "antd/dist/reset.css"; import "./style.less"; -if (process.env.SENTRY_UI_DSN) { - Sentry.init({ dsn: process.env.SENTRY_UI_DSN }); +const SENTRY_UI_DSN = getConfigFor("SENTRY_UI_DSN"); +const ENV = getConfigFor("ENV"); + +if (SENTRY_UI_DSN && ENV) { + Sentry.init({ + dsn: SENTRY_UI_DSN, + environment: ENV, + release: import.meta.env.VITE_SENTRY_RELEASE, + }); } const container = document.getElementById("app"); diff --git a/ui/cap-react/vite.config.js b/ui/cap-react/vite.config.js index cd796b6b9..0e81e26c3 100644 --- a/ui/cap-react/vite.config.js +++ b/ui/cap-react/vite.config.js @@ -43,6 +43,7 @@ export default defineConfig(({ mode }) => { commonjsOptions: { transformMixedEsModules: true, }, + sourcemap: true, // For Sentry }, // Allows writing JSX in .js files esbuild: { diff --git a/ui/yarn.lock b/ui/yarn.lock index 42c39fe85..e04969b54 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -2377,20 +2377,20 @@ redux-thunk "^2.4.2" reselect "^4.1.8" -"@rjsf/antd@5.19.4": - version "5.19.4" - resolved "https://registry.yarnpkg.com/@rjsf/antd/-/antd-5.19.4.tgz#83cd4f8a8a1cd8736018bb72e5f107aa1463019b" - integrity sha512-oWeHkNEWTzNWTNI7fxLRCbWf89aM7Xj3/SQfxVTCYniDQTR6PWQYZ9E6glDpfzbN66gV3E+blvDnxrcq3+pWIA== +"@rjsf/antd@^5.21.0": + version "5.22.1" + resolved "https://registry.yarnpkg.com/@rjsf/antd/-/antd-5.22.1.tgz#f8b3646648e10e85694fcb0dd548767a531d01d7" + integrity sha512-vbfYi/JIp7HQApG3ilT4mlng8/n8AQDtzHE5i4XI63MBSwQoMrfNVEFF4oMOF1/uFPjg9M7sxby8bBXYQ+KJGw== dependencies: classnames "^2.5.1" lodash "^4.17.21" lodash-es "^4.17.21" rc-picker "2.7.6" -"@rjsf/core@5.19.4": - version "5.19.4" - resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-5.19.4.tgz#d3a1e272c7bc1b4055c3c506b32f846c59eec1e7" - integrity sha512-HsbvyBs5TcM5VZgsw6Txk8UOhGG5BbCmeAYlHpzb6tbR3ZsLf1MSiFQKIZXHe+BTOW4FekZMBfGa9BfWQZjyLQ== +"@rjsf/core@^5.21.0": + version "5.22.1" + resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-5.22.1.tgz#929585bf72662d07912e9043499be41d8cc4d729" + integrity sha512-AIdB5U/6lHJPirCf3Zhl4gPU/v8HD9yaSCFcpE/s8KHF/2+goJ1mw5FmyjPgI2KwPVur6+iPd9y1R7amMC1nwQ== dependencies: lodash "^4.17.21" lodash-es "^4.17.21" @@ -2398,10 +2398,10 @@ nanoid "^3.3.7" prop-types "^15.8.1" -"@rjsf/utils@5.19.4": - version "5.19.4" - resolved "https://registry.yarnpkg.com/@rjsf/utils/-/utils-5.19.4.tgz#aca645f4b183137bc4338b5697c32012bd70e3fe" - integrity sha512-853BZuQvl62Xw2Ve07dkOdEzlr7jCBU/XFPhj9tik3s++InY1brBIDBRZKABvWHjymdSvO9gSzQXzj9aFREcFA== +"@rjsf/utils@^5.21.0": + version "5.22.1" + resolved "https://registry.yarnpkg.com/@rjsf/utils/-/utils-5.22.1.tgz#cf71df3521807c134e6967a4e30d6557778ed9fc" + integrity sha512-erCJkYXuXK6nNi+JKDwkcdu3mgyePkyk4K/wIxi9JakDsSWJV/zSfdk8zJADcG3ALcPQvGWj4M+yNgb/SLqs/g== dependencies: json-schema-merge-allof "^0.8.1" jsonpointer "^5.0.1" @@ -2409,10 +2409,10 @@ lodash-es "^4.17.21" react-is "^18.2.0" -"@rjsf/validator-ajv8@5.19.4": - version "5.19.4" - resolved "https://registry.yarnpkg.com/@rjsf/validator-ajv8/-/validator-ajv8-5.19.4.tgz#523a38c2b5da7061f7a144f4fe522413614c3b26" - integrity sha512-meatFQFif92mlFUcmywbDElWSOUdLg6rIowisNaquktUxTRce2TL9TPd7vgcMdwFI1h9NiFok5q6V8v3XyyLLQ== +"@rjsf/validator-ajv8@^5.21.0": + version "5.22.1" + resolved "https://registry.yarnpkg.com/@rjsf/validator-ajv8/-/validator-ajv8-5.22.1.tgz#2800671dcaced72d28a849df8331e69e5b036953" + integrity sha512-4+OlgdcHMJY5/t9tLt36PuOfhxR0S3PHpeTRKeqE6wd2I0YEKu3kSqpHOZ1mkOg1C4Pdn0HwVqw+8vwKEGIP9g== dependencies: ajv "^8.12.0" ajv-formats "^2.1.1" @@ -2531,6 +2531,60 @@ "@sentry/utils" "5.30.0" tslib "^1.9.3" +"@sentry/cli-darwin@2.38.2": + version "2.38.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.38.2.tgz#2a53028e143d0cfed607588b87e04906ef5317e7" + integrity sha512-21ywIcJCCFrCTyiF1o1PaT7rbelFC2fWmayKYgFElnQ55IzNYkcn8BYhbh/QknE0l1NBRaeWMXwTTdeoqETCCg== + +"@sentry/cli-linux-arm64@2.38.2": + version "2.38.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.38.2.tgz#1b45de7e4f5e1a953b88b0b811d789de1fc708aa" + integrity sha512-4Fp/jjQpNZj4Th+ZckMQvldAuuP0ZcyJ9tJCP1CCOn5poIKPYtY6zcbTP036R7Te14PS4ALOcDNX3VNKfpsifA== + +"@sentry/cli-linux-arm@2.38.2": + version "2.38.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.38.2.tgz#91f73c251f1d4b591fa98af10ee3889c9b93d208" + integrity sha512-+AiKDBQKIdQe4NhBiHSHGl0KR+b//HHTrnfK1SaTrOm9HtM4ELXAkjkRF3bmbpSzSQCS5WzcbIxxCJOeaUaO0A== + +"@sentry/cli-linux-i686@2.38.2": + version "2.38.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.38.2.tgz#26e30a9bc358f910e21d812359294dd4c6103fda" + integrity sha512-6zVJN10dHIn4R1v+fxuzlblzVBhIVwsaN/S7aBED6Vn1HhAyAcNG2tIzeCLGeDfieYjXlE2sCI82sZkQBCbAGw== + +"@sentry/cli-linux-x64@2.38.2": + version "2.38.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.38.2.tgz#18728bbb20e28315c4368baded677786f2dba70a" + integrity sha512-4UiLu9zdVtqPeltELR5MDGKcuqAdQY9xz3emISuA6bm+MXGbt2W1WgX+XY3GElwjZbmH8qpyLUEd34sw6sdcbQ== + +"@sentry/cli-win32-i686@2.38.2": + version "2.38.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.38.2.tgz#dfe268b041c3e3db556290dba745455d0b2c0d72" + integrity sha512-DYfSvd5qLPerLpIxj3Xu2rRe3CIlpGOOfGSNI6xvJ5D8j6hqbOHlCzvfC4oBWYVYGtxnwQLMeDGJ7o7RMYulig== + +"@sentry/cli-win32-x64@2.38.2": + version "2.38.2" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.38.2.tgz#e7b5744026ff5f7e84971512bee228620ba5857d" + integrity sha512-W5UX58PKY1hNUHo9YJxWNhGvgvv2uOYHI27KchRiUvFYBIqlUUcIdPZDfyzetDfd8qBCxlAsFnkL2VJSNdpA9A== + +"@sentry/cli@2.38.2": + version "2.38.2" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.38.2.tgz#e9a7a9bbeaaade4557de91704d50d131760345d3" + integrity sha512-CR0oujpAnhegK2pBAv6ZReMqbFTuNJLDZLvoD1B+syrKZX+R+oxkgT2e1htsBbht+wGxAsluVWsIAydSws1GAA== + dependencies: + https-proxy-agent "^5.0.0" + node-fetch "^2.6.7" + progress "^2.0.3" + proxy-from-env "^1.1.0" + which "^2.0.2" + optionalDependencies: + "@sentry/cli-darwin" "2.38.2" + "@sentry/cli-linux-arm" "2.38.2" + "@sentry/cli-linux-arm64" "2.38.2" + "@sentry/cli-linux-i686" "2.38.2" + "@sentry/cli-linux-x64" "2.38.2" + "@sentry/cli-win32-i686" "2.38.2" + "@sentry/cli-win32-x64" "2.38.2" + "@sentry/core@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" @@ -3404,6 +3458,13 @@ adjust-sourcemap-loader@2.0.0: object-path "0.11.4" regex-parser "2.2.10" +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -5938,6 +5999,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" +debug@4: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + debug@^3.1.0, debug@^3.2.5, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -8565,6 +8633,14 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -11146,7 +11222,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -11255,7 +11331,7 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@^2.5.0: +node-fetch@^2.5.0, node-fetch@^2.6.7: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -12930,7 +13006,7 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -progress@^2.0.0: +progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -13745,10 +13821,10 @@ react-floater@^0.7.9: prop-types "^15.8.1" tree-changes "^0.9.1" -react-formule@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/react-formule/-/react-formule-1.1.1.tgz#61d902fee92cb4b8b408ff72ab49eb2668834b7e" - integrity sha512-nkWjgMUWZV0vblkCkQ0kIHjPyEsdFSi69VUJI5+iNWAW86BNQhHTs/MnrsWeGFGuTx6QT5ZYqPgf2CHEDgjKnA== +react-formule@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-formule/-/react-formule-1.2.0.tgz#5c3bc0347e25a9e6fcf7e0031c04bdfe5bc8838f" + integrity sha512-ffmSKs5JiENQVJaW9vfoomqQQFCdW6l2BoZ6cqx7bSFbaf3lqSVsqw+C7/qqzgtnCmBy9Asw2YHC7niB1iSFlw== dependencies: "@ant-design/pro-layout" "^7.16.4" "@codemirror/lang-json" "^6.0.1" @@ -13757,10 +13833,10 @@ react-formule@1.1.1: "@codemirror/lint" "^6.5.0" "@codemirror/merge" "^6.1.1" "@reduxjs/toolkit" "^1.9.5" - "@rjsf/antd" "5.19.4" - "@rjsf/core" "5.19.4" - "@rjsf/utils" "5.19.4" - "@rjsf/validator-ajv8" "5.19.4" + "@rjsf/antd" "^5.21.0" + "@rjsf/core" "^5.21.0" + "@rjsf/utils" "^5.21.0" + "@rjsf/validator-ajv8" "^5.21.0" antd "^5.7.3" axios "^1.4.0" codemirror "^6.0.1" @@ -17180,7 +17256,7 @@ which@^1.2.9, which@^1.3.0, which@^1.3.1: dependencies: isexe "^2.0.0" -which@^2.0.1: +which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==