diff --git a/.env b/.env
index 8f09b3cbb..0931c865c 100644
--- a/.env
+++ b/.env
@@ -4,3 +4,5 @@ REACT_APP_DEPLOYMENT_NAME=
REACT_APP_AUTHENTICATION=
REACT_APP_AUTH_SERVER_URL=
REACT_APP_AUTH_CLIENT_ID=
+REACT_APP_AUTH_SERVER_MANAGEMENT=
+REACT_APP_AUTH_SERVER_USER_PROFILE=
diff --git a/NEWS.cs.md b/NEWS.cs.md
index e4fc8e5f1..8c31e9985 100644
--- a/NEWS.cs.md
+++ b/NEWS.cs.md
@@ -1,3 +1,8 @@
+#### Verze 3.0.2
+
+- Přidána podpora pro nasazení s externí autorizační službou.
+- Přidána možnost specifikovat soubor s taxonomií stavů/typů pojmů.
+
#### Verze 3.0.1
- Opraven problém s nastavováním pojmů se stejným významem.
diff --git a/NEWS.en.md b/NEWS.en.md
index c2a3eaee4..b66b71045 100644
--- a/NEWS.en.md
+++ b/NEWS.en.md
@@ -1,3 +1,8 @@
+#### Version 3.0.2
+
+- Added support for running with an external authentication service.
+- Added support for providing files with custom term states/types taxonomies.
+
#### Version 3.0.1
- Fixed an issue with setting exact match terms.
diff --git a/package-lock.json b/package-lock.json
index a866d035b..7bb491217 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "termit-ui",
- "version": "3.0.1",
+ "version": "3.0.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "termit-ui",
- "version": "3.0.1",
+ "version": "3.0.2",
"license": "GPL-3.0-only",
"dependencies": {
"@formatjs/intl-pluralrules": "^5.2.4",
@@ -14,7 +14,7 @@
"@fortawesome/fontawesome-free": "^6.4.0",
"@opendata-mvcr/assembly-line-shared": "^0.3.2",
"apexcharts": "^3.41.0",
- "axios": "^0.27.2",
+ "axios": "^1.6.2",
"bootstrap": "4.6.2",
"chart.js": "^3.9.1",
"classnames": "^2.3.2",
@@ -84,7 +84,7 @@
"@types/uuid": "^9.0.2",
"@types/whatwg-mimetype": "^2.1.1",
"@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
- "axios-mock-adapter": "^1.21.4",
+ "axios-mock-adapter": "^1.22.0",
"babel-plugin-macros": "3.1.0",
"cross-env": "^7.0.3",
"enzyme": "^3.11.0",
@@ -114,16 +114,73 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
- "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dependencies": {
- "@babel/highlight": "^7.16.7"
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/code-frame/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/@babel/compat-data": {
"version": "7.17.0",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz",
@@ -207,13 +264,14 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz",
- "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
+ "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
"dependencies": {
- "@babel/types": "^7.17.0",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
+ "@babel/types": "^7.23.0",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
},
"engines": {
"node": ">=6.9.0"
@@ -313,12 +371,9 @@
}
},
"node_modules/@babel/helper-environment-visitor": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
- "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
- "dependencies": {
- "@babel/types": "^7.16.7"
- },
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
"engines": {
"node": ">=6.9.0"
}
@@ -335,23 +390,23 @@
}
},
"node_modules/@babel/helper-function-name": {
- "version": "7.17.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz",
- "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
"dependencies": {
- "@babel/template": "^7.16.7",
- "@babel/types": "^7.17.0"
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-hoist-variables": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
- "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
"dependencies": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@@ -467,20 +522,28 @@
}
},
"node_modules/@babel/helper-split-export-declaration": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
- "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
"dependencies": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
- "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"engines": {
"node": ">=6.9.0"
}
@@ -521,12 +584,12 @@
}
},
"node_modules/@babel/highlight": {
- "version": "7.16.10",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
- "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.16.7",
- "chalk": "^2.0.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"engines": {
@@ -568,12 +631,12 @@
"node_modules/@babel/highlight/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/@babel/highlight/node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"engines": {
"node": ">=4"
}
@@ -590,9 +653,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz",
- "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -1880,31 +1943,31 @@
}
},
"node_modules/@babel/template": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
- "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
"dependencies": {
- "@babel/code-frame": "^7.16.7",
- "@babel/parser": "^7.16.7",
- "@babel/types": "^7.16.7"
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz",
- "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==",
- "dependencies": {
- "@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.17.0",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
- "@babel/helper-hoist-variables": "^7.16.7",
- "@babel/helper-split-export-declaration": "^7.16.7",
- "@babel/parser": "^7.17.0",
- "@babel/types": "^7.17.0",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
+ "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
+ "dependencies": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.23.0",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.0",
+ "@babel/types": "^7.23.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -1913,11 +1976,12 @@
}
},
"node_modules/@babel/types": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz",
- "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
+ "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.16.7",
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -2684,9 +2748,9 @@
}
},
"node_modules/@jridgewell/resolve-uri": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz",
- "integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
"engines": {
"node": ">=6.0.0"
}
@@ -2709,17 +2773,17 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.10",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz",
- "integrity": "sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg=="
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
+ "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
"dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@nodelib/fs.scandir": {
@@ -4649,18 +4713,19 @@
}
},
"node_modules/axios": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
- "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
+ "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
"dependencies": {
- "follow-redirects": "^1.14.9",
- "form-data": "^4.0.0"
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
}
},
"node_modules/axios-mock-adapter": {
- "version": "1.21.4",
- "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.21.4.tgz",
- "integrity": "sha512-ztnENm28ONAKeRXC/6SUW6pcsaXbThKq93MRDRAA47LYTzrGSDoO/DCr1NHz7jApEl95DrBoGPvZ0r9xtSbjqw==",
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz",
+ "integrity": "sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -5893,9 +5958,9 @@
}
},
"node_modules/crypto-js": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
- "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"node_modules/crypto-random-string": {
"version": "2.0.0",
@@ -13172,6 +13237,11 @@
"node": ">= 0.10"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"node_modules/psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
@@ -17471,11 +17541,58 @@
}
},
"@babel/code-frame": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
- "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"requires": {
- "@babel/highlight": "^7.16.7"
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"@babel/compat-data": {
@@ -17537,13 +17654,14 @@
}
},
"@babel/generator": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz",
- "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
+ "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
"requires": {
- "@babel/types": "^7.17.0",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
+ "@babel/types": "^7.23.0",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
}
},
"@babel/helper-annotate-as-pure": {
@@ -17613,12 +17731,9 @@
}
},
"@babel/helper-environment-visitor": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
- "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
- "requires": {
- "@babel/types": "^7.16.7"
- }
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA=="
},
"@babel/helper-explode-assignable-expression": {
"version": "7.16.7",
@@ -17629,20 +17744,20 @@
}
},
"@babel/helper-function-name": {
- "version": "7.17.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz",
- "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
"requires": {
- "@babel/template": "^7.16.7",
- "@babel/types": "^7.17.0"
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
}
},
"@babel/helper-hoist-variables": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
- "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
"requires": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.22.5"
}
},
"@babel/helper-member-expression-to-functions": {
@@ -17728,17 +17843,22 @@
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
- "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
"requires": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.22.5"
}
},
+ "@babel/helper-string-parser": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
+ },
"@babel/helper-validator-identifier": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
- "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw=="
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
},
"@babel/helper-validator-option": {
"version": "7.16.7",
@@ -17767,12 +17887,12 @@
}
},
"@babel/highlight": {
- "version": "7.16.10",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
- "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"requires": {
- "@babel/helper-validator-identifier": "^7.16.7",
- "chalk": "^2.0.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"dependencies": {
@@ -17805,12 +17925,12 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
},
"supports-color": {
"version": "5.5.0",
@@ -17823,9 +17943,9 @@
}
},
"@babel/parser": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz",
- "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw=="
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw=="
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.16.7",
@@ -18654,38 +18774,39 @@
}
},
"@babel/template": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
- "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
"requires": {
- "@babel/code-frame": "^7.16.7",
- "@babel/parser": "^7.16.7",
- "@babel/types": "^7.16.7"
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
}
},
"@babel/traverse": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz",
- "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==",
- "requires": {
- "@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.17.0",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
- "@babel/helper-hoist-variables": "^7.16.7",
- "@babel/helper-split-export-declaration": "^7.16.7",
- "@babel/parser": "^7.17.0",
- "@babel/types": "^7.17.0",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
+ "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
+ "requires": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.23.0",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.0",
+ "@babel/types": "^7.23.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz",
- "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
+ "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
"requires": {
- "@babel/helper-validator-identifier": "^7.16.7",
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
}
},
@@ -19295,9 +19416,9 @@
}
},
"@jridgewell/resolve-uri": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz",
- "integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg=="
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA=="
},
"@jridgewell/set-array": {
"version": "1.1.2",
@@ -19314,17 +19435,17 @@
}
},
"@jridgewell/sourcemap-codec": {
- "version": "1.4.10",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz",
- "integrity": "sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg=="
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
},
"@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
+ "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
"requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"@nodelib/fs.scandir": {
@@ -20796,12 +20917,13 @@
"integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw=="
},
"axios": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
- "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
+ "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
"requires": {
- "follow-redirects": "^1.14.9",
- "form-data": "^4.0.0"
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
},
"dependencies": {
"form-data": {
@@ -20817,9 +20939,9 @@
}
},
"axios-mock-adapter": {
- "version": "1.21.4",
- "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.21.4.tgz",
- "integrity": "sha512-ztnENm28ONAKeRXC/6SUW6pcsaXbThKq93MRDRAA47LYTzrGSDoO/DCr1NHz7jApEl95DrBoGPvZ0r9xtSbjqw==",
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz",
+ "integrity": "sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.3",
@@ -21727,9 +21849,9 @@
}
},
"crypto-js": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
- "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"crypto-random-string": {
"version": "2.0.0",
@@ -26879,6 +27001,11 @@
}
}
},
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
diff --git a/package.json b/package.json
index ce359e7fa..ad4d4e4b1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "termit-ui",
- "version": "3.0.1",
+ "version": "3.0.2",
"private": true,
"homepage": ".",
"license": "GPL-3.0-only",
@@ -10,7 +10,7 @@
"@fortawesome/fontawesome-free": "^6.4.0",
"@opendata-mvcr/assembly-line-shared": "^0.3.2",
"apexcharts": "^3.41.0",
- "axios": "^0.27.2",
+ "axios": "^1.6.2",
"bootstrap": "4.6.2",
"chart.js": "^3.9.1",
"classnames": "^2.3.2",
@@ -94,7 +94,7 @@
"@types/uuid": "^9.0.2",
"@types/whatwg-mimetype": "^2.1.1",
"@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
- "axios-mock-adapter": "^1.21.4",
+ "axios-mock-adapter": "^1.22.0",
"babel-plugin-macros": "3.1.0",
"cross-env": "^7.0.3",
"enzyme": "^3.11.0",
@@ -129,6 +129,9 @@
]
},
"jest": {
- "resetMocks": false
+ "resetMocks": false,
+ "transformIgnorePatterns": [
+ "node_modules/(?!axios)/"
+ ]
}
}
diff --git a/public/config.js.template b/public/config.js.template
index a34ec543f..b06e70d88 100644
--- a/public/config.js.template
+++ b/public/config.js.template
@@ -6,5 +6,7 @@ window.__config__ = {
SHOW_PUBLIC_VIEW_ON_UNAUTHORIZED: '${SHOW_PUBLIC_VIEW_ON_UNAUTHORIZED}',
AUTHENTICATION: '${AUTHENTICATION}',
AUTH_SERVER_URL: '${AUTH_SERVER_URL}',
- AUTH_CLIENT_ID: '${AUTH_CLIENT_ID}'
+ AUTH_CLIENT_ID: '${AUTH_CLIENT_ID}',
+ AUTH_SERVER_MANAGEMENT: '${AUTH_SERVER_MANAGEMENT}',
+ AUTH_SERVER_USER_PROFILE: '${AUTH_SERVER_USER_PROFILE}'
}
diff --git a/src/component/administration/user/Users.tsx b/src/component/administration/user/Users.tsx
index 9ff312f01..83bc52e31 100644
--- a/src/component/administration/user/Users.tsx
+++ b/src/component/administration/user/Users.tsx
@@ -23,6 +23,11 @@ import { useI18n } from "../../hook/useI18n";
import PromiseTrackingMask from "../../misc/PromiseTrackingMask";
import { trackPromise } from "react-promise-tracker";
import IfInternalAuth from "../../misc/oidc/IfInternalAuth";
+import { isUsingOidcAuth } from "../../../util/OidcUtils";
+import IfOidcAuth from "../../misc/oidc/IfOidcAuth";
+import { getEnv } from "../../../util/Constants";
+import ConfigParam from "../../../util/ConfigParam";
+import OutgoingLink from "../../misc/OutgoingLink";
const Users: React.FC = () => {
const { i18n } = useI18n();
@@ -88,6 +93,15 @@ const Users: React.FC = () => {
onSubmit={onUserRoleSubmit}
onCancel={() => setEditedUser(EMPTY_USER)}
/>
+
+
+
+
+
{
enable={onEnableUser}
unlock={(user) => setUserToUnlock(user)}
changeRole={(user) => setEditedUser(user)}
+ readOnly={isUsingOidcAuth()}
/>
>
diff --git a/src/component/administration/user/UsersTable.tsx b/src/component/administration/user/UsersTable.tsx
index 23d700a49..c3b104e81 100644
--- a/src/component/administration/user/UsersTable.tsx
+++ b/src/component/administration/user/UsersTable.tsx
@@ -20,10 +20,12 @@ import classNames from "classnames";
interface UsersTableProps extends UserActions {
users: User[];
currentUser: User;
+ readOnly?: boolean;
}
const UsersTable: React.FC = (props) => {
- const { users, currentUser, disable, enable, unlock, changeRole } = props;
+ const { users, currentUser, disable, enable, unlock, changeRole, readOnly } =
+ props;
const { i18n } = useI18n();
const data = React.useMemo(() => users, [users]);
const columns: Column[] = React.useMemo(
@@ -77,20 +79,21 @@ const UsersTable: React.FC = (props) => {
disableFilters: true,
disableSortBy: true,
// @ts-ignore
- Cell: ({ row }) => (
-
- ),
+ Cell: ({ row }) =>
+ !readOnly && (
+
+ ),
className: "align-middle table-row-actions",
},
],
- [i18n, disable, enable, unlock, changeRole, currentUser]
+ [i18n, disable, enable, unlock, changeRole, currentUser, readOnly]
);
const filterTypes = React.useMemo(() => ({ text: textContainsFilter }), []);
const tableInstance = useTable(
diff --git a/src/component/administration/user/__tests__/Users.test.tsx b/src/component/administration/user/__tests__/Users.test.tsx
index 0b44f93e1..1f3b0fe82 100644
--- a/src/component/administration/user/__tests__/Users.test.tsx
+++ b/src/component/administration/user/__tests__/Users.test.tsx
@@ -6,6 +6,8 @@ import * as UserActions from "../../../../action/AsyncUserActions";
import UsersTable from "../UsersTable";
import { mockUseI18n } from "../../../../__tests__/environment/IntlUtil";
import * as Redux from "react-redux";
+import * as OidcUtils from "../../../../util/OidcUtils";
+import * as Constats from "../../../../util/Constants";
jest.mock("react-redux", () => ({
...jest.requireActual("react-redux"),
@@ -61,6 +63,22 @@ describe("Users", () => {
});
});
+ it("renders users table read only when using OIDC authentication", () => {
+ jest.spyOn(OidcUtils, "isUsingOidcAuth").mockReturnValue(true);
+ jest.spyOn(UserActions, "loadUsers");
+ const wrapper = render();
+ expect(wrapper.find(UsersTable).prop("readOnly")).toBeTruthy();
+ });
+
+ it("renders link to auth service administration when using OIDC authentication", () => {
+ const link = "http://localhost/services/auth";
+ jest.spyOn(Constats, "getEnv").mockReturnValue(link);
+ jest.spyOn(OidcUtils, "isUsingOidcAuth").mockReturnValue(true);
+ jest.spyOn(UserActions, "loadUsers");
+ const wrapper = render();
+ expect(wrapper.exists("#oidc-notice")).toBeTruthy();
+ });
+
describe("user unlocking", () => {
it("opens unlock user dialog and passes selected user to it on unlock click", () => {
const wrapper = render();
diff --git a/src/component/misc/oidc/IfInternalAuth.tsx b/src/component/misc/oidc/IfInternalAuth.tsx
index 6a48d6e4e..52515a92e 100644
--- a/src/component/misc/oidc/IfInternalAuth.tsx
+++ b/src/component/misc/oidc/IfInternalAuth.tsx
@@ -2,10 +2,7 @@ import React from "react";
import { isUsingOidcAuth } from "../../../util/OidcUtils";
const IfInternalAuth: React.FC = ({ children }) => {
- if (isUsingOidcAuth()) {
- return null;
- }
- return <>{children}>;
+ return isUsingOidcAuth() ? null : <>{children}>;
};
export default IfInternalAuth;
diff --git a/src/component/misc/oidc/IfOidcAuth.tsx b/src/component/misc/oidc/IfOidcAuth.tsx
new file mode 100644
index 000000000..c0bcf3197
--- /dev/null
+++ b/src/component/misc/oidc/IfOidcAuth.tsx
@@ -0,0 +1,8 @@
+import React from "react";
+import { isUsingOidcAuth } from "../../../util/OidcUtils";
+
+const IfOidcAuth: React.FC = ({ children }) => {
+ return isUsingOidcAuth() ? <>{children}> : null;
+};
+
+export default IfOidcAuth;
diff --git a/src/component/profile/Profile.tsx b/src/component/profile/Profile.tsx
index 5415a4625..a1d804fd1 100644
--- a/src/component/profile/Profile.tsx
+++ b/src/component/profile/Profile.tsx
@@ -18,6 +18,10 @@ import { Card, CardBody } from "reactstrap";
import WindowTitle from "../misc/WindowTitle";
import UserRoles from "../administration/user/UserRoles";
import IfInternalAuth from "../misc/oidc/IfInternalAuth";
+import { getEnv } from "../../util/Constants";
+import ConfigParam from "../../util/ConfigParam";
+import IfOidcAuth from "../misc/oidc/IfOidcAuth";
+import OutgoingLink from "../misc/OutgoingLink";
interface ProfileProps extends HasI18n {
user: User;
@@ -108,6 +112,15 @@ export class Profile extends React.Component {
/>
+
+
+
+
+
{!this.state.edit ? (
) : (
diff --git a/src/component/profile/__tests__/Profile.test.tsx b/src/component/profile/__tests__/Profile.test.tsx
index d65a096a8..6a2518e54 100644
--- a/src/component/profile/__tests__/Profile.test.tsx
+++ b/src/component/profile/__tests__/Profile.test.tsx
@@ -8,6 +8,8 @@ import Generator from "../../../__tests__/environment/Generator";
import { intlFunctions } from "../../../__tests__/environment/IntlUtil";
import ProfileEditForm from "../ProfileEditForm";
import HeaderWithActions from "../../misc/HeaderWithActions";
+import * as OidcUtils from "../../../util/OidcUtils";
+import * as Constats from "../../../util/Constants";
describe("Profile", () => {
let updateProfile: (user: User) => Promise;
@@ -47,4 +49,22 @@ describe("Profile", () => {
expect(actionButtons.length).toEqual(1);
expect(wrapper.find(ProfileEditForm).length).toEqual(1);
});
+
+ it("does not render edit buttons when using OIDC authentication", () => {
+ jest.spyOn(OidcUtils, "isUsingOidcAuth").mockReturnValue(true);
+ const wrapper = mountWithIntl(
+
+ );
+ expect(wrapper.exists(ProfileActionButtons)).toBeFalsy();
+ });
+
+ it("renders link to user profile in auth service when using OIDC authentication", () => {
+ const link = "http://localhost/services/auth/profile";
+ jest.spyOn(Constats, "getEnv").mockReturnValue(link);
+ jest.spyOn(OidcUtils, "isUsingOidcAuth").mockReturnValue(true);
+ const wrapper = mountWithIntl(
+
+ );
+ expect(wrapper.exists("#oidc-notice")).toBeTruthy();
+ });
});
diff --git a/src/i18n/cs.ts b/src/i18n/cs.ts
index de10df72d..136c808e6 100644
--- a/src/i18n/cs.ts
+++ b/src/i18n/cs.ts
@@ -178,6 +178,8 @@ const cs = {
'Uživatel "{name}" úspěšně vytvořen.',
"administration.users.you": "Toto je Váš účet",
"administration.users.types.admin": "Tento uživatel je administrátor",
+ "administration.users.oidc":
+ "Pro správu uživatelů je využívána externí autentizační služba.",
"administration.maintenance.title": "Správa systému",
"administration.maintenance.invalidateCaches": "Vyprázdnit cache",
"administration.maintenance.invalidateCaches.tooltip":
diff --git a/src/i18n/en.ts b/src/i18n/en.ts
index 3571262c3..641c9aaf0 100644
--- a/src/i18n/en.ts
+++ b/src/i18n/en.ts
@@ -168,6 +168,8 @@ const en = {
'User "{name}" successfully created.',
"administration.users.you": "This is you",
"administration.users.types.admin": "This user is an administrator",
+ "administration.users.oidc":
+ "An external authentication service is used to management users.",
"administration.maintenance.title": "Maintenance",
"administration.maintenance.invalidateCaches": "Invalidate caches",
"administration.maintenance.invalidateCaches.tooltip":
diff --git a/src/util/Ajax.ts b/src/util/Ajax.ts
index f55b4bfdb..b858e0827 100644
--- a/src/util/Ajax.ts
+++ b/src/util/Ajax.ts
@@ -1,4 +1,9 @@
-import axios, { AxiosInstance, AxiosRequestConfig, ResponseType } from "axios";
+import axios, {
+ AxiosHeaders,
+ AxiosInstance,
+ AxiosRequestConfig,
+ ResponseType,
+} from "axios";
import Routing from "./Routing";
import Constants, { getEnv } from "./Constants";
import Routes from "./Routes";
@@ -189,18 +194,17 @@ export class Ajax {
constructor() {
this.axiosInstance.interceptors.request.use((reqConfig) => {
if (!reqConfig.headers) {
- reqConfig.headers = {};
+ reqConfig.headers = new AxiosHeaders();
}
- reqConfig.headers[Constants.Headers.AUTHORIZATION] =
- SecurityUtils.loadToken();
+ reqConfig.headers.setAuthorization(SecurityUtils.loadToken());
reqConfig.withCredentials = true;
return reqConfig;
});
this.axiosInstance.interceptors.response.use(
(resp) => {
- if (resp.headers && resp.headers[Constants.Headers.AUTHORIZATION]) {
+ if (resp.headers && (resp.headers as AxiosHeaders).hasAuthorization()) {
SecurityUtils.saveToken(
- resp.headers[Constants.Headers.AUTHORIZATION]
+ (resp.headers as AxiosHeaders).getAuthorization() as any
);
}
return resp;
diff --git a/src/util/ConfigParam.ts b/src/util/ConfigParam.ts
index ea635ea73..7f65eab8b 100644
--- a/src/util/ConfigParam.ts
+++ b/src/util/ConfigParam.ts
@@ -3,6 +3,8 @@ const ConfigParam = {
SHOW_PUBLIC_VIEW_ON_UNAUTHORIZED: "SHOW_PUBLIC_VIEW_ON_UNAUTHORIZED",
MOCK_REST_API: "MOCK_REST_API",
AUTH_TYPE: "AUTHENTICATION",
+ AUTH_SERVER_MANAGEMENT_URL: "AUTH_SERVER_MANAGEMENT",
+ AUTH_SERVER_USER_PROFILE_URL: "AUTH_SERVER_USER_PROFILE",
};
export default ConfigParam;
diff --git a/src/util/__tests__/Ajax.test.ts b/src/util/__tests__/Ajax.test.ts
index b766dca01..63a7c48ca 100644
--- a/src/util/__tests__/Ajax.test.ts
+++ b/src/util/__tests__/Ajax.test.ts
@@ -10,10 +10,14 @@ import {
} from "../Ajax";
import Routing from "../Routing";
import { EMPTY_USER } from "../../model/User";
-import Constants from "../Constants";
-import * as Const from "../Constants";
+import Constants, * as Const from "../Constants";
import Routes from "../Routes";
-import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios";
+import {
+ AxiosHeaders,
+ AxiosInstance,
+ AxiosRequestConfig,
+ AxiosResponse,
+} from "axios";
import { ErrorData } from "../../model/ErrorInfo";
import SecurityUtils from "../SecurityUtils";
import VocabularyUtils from "../VocabularyUtils";
@@ -34,12 +38,12 @@ describe("Ajax", () => {
const mock = new MockAdapter(sut.axios);
const jwt = "12345";
- let headers: {};
+ let headers: AxiosHeaders;
beforeEach(() => {
mock.reset();
- headers = {};
- headers[Constants.Headers.AUTHORIZATION] = jwt;
+ headers = new AxiosHeaders();
+ headers.setAuthorization(jwt);
});
afterEach(() => {
@@ -49,14 +53,16 @@ describe("Ajax", () => {
it("loads JWT and sets it on request", () => {
SecurityUtils.loadToken = jest.fn().mockReturnValue(jwt);
mock.onGet("/users/current").reply((config: AxiosRequestConfig) => {
- expect(config.headers![Constants.Headers.AUTHORIZATION]).toContain(jwt);
+ expect((config.headers as AxiosHeaders).getAuthorization()).toContain(
+ jwt
+ );
return [200, require("../../rest-mock/current"), headers];
});
return sut.get("/users/current");
});
it("extracts current JWT from response and saves it using Authentication", () => {
- headers[Constants.Headers.AUTHORIZATION] = jwt;
+ headers.setAuthorization(jwt);
SecurityUtils.saveToken = jest.fn();
mock
.onGet("/users/current")