aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-10-27 21:38:59 +0800
committercrupest <crupest@outlook.com>2020-10-27 21:38:59 +0800
commitb6495ef9f7d6466f9347b02e83ec0935d63af23e (patch)
tree3becaab1f003c19afaca440185317fa539391cc6 /FrontEnd
parent56989fcfddbfa75636260fc70b8db0125588aef1 (diff)
downloadtimeline-b6495ef9f7d6466f9347b02e83ec0935d63af23e.tar.gz
timeline-b6495ef9f7d6466f9347b02e83ec0935d63af23e.tar.bz2
timeline-b6495ef9f7d6466f9347b02e83ec0935d63af23e.zip
...
Diffstat (limited to 'FrontEnd')
-rw-r--r--FrontEnd/.pnp.js283
-rw-r--r--FrontEnd/package.json10
-rw-r--r--FrontEnd/src/app/App.tsx3
-rw-r--r--FrontEnd/src/app/i18n.ts12
-rw-r--r--FrontEnd/webpack.config.dev.js15
-rw-r--r--FrontEnd/yarn.lock203
6 files changed, 276 insertions, 250 deletions
diff --git a/FrontEnd/.pnp.js b/FrontEnd/.pnp.js
index af643e73..bcc1bf3c 100644
--- a/FrontEnd/.pnp.js
+++ b/FrontEnd/.pnp.js
@@ -66,8 +66,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
],
[
- "@hot-loader/react-dom",
- "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"
+ "@pmmmwh/react-refresh-webpack-plugin",
+ "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.4.2"
],
[
"@types/classnames",
@@ -246,6 +246,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"npm:2.1.2"
],
[
+ "querystring-es3",
+ "npm:0.2.1"
+ ],
+ [
"react",
"npm:17.0.1"
],
@@ -258,10 +262,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"
],
[
- "react-hot-loader",
- "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"
- ],
- [
"react-i18next",
"virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"
],
@@ -270,6 +270,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"
],
[
+ "react-refresh",
+ "npm:0.9.0"
+ ],
+ [
"react-responsive",
"virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"
],
@@ -310,6 +314,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"
],
[
+ "type-fest",
+ "npm:0.18.0"
+ ],
+ [
"typescript",
"patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"
],
@@ -319,7 +327,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
[
"webpack",
- "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"
+ "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"
],
[
"webpack-chain",
@@ -374,7 +382,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@babel/preset-env", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
["@babel/preset-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
["@babel/preset-typescript", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
- ["@hot-loader/react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"],
+ ["@pmmmwh/react-refresh-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.4.2"],
["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"],
["@types/lodash", "npm:4.14.162"],
["@types/node", "npm:14.14.5"],
@@ -419,12 +427,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["postcss-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"],
["postcss-preset-env", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"],
["prettier", "npm:2.1.2"],
+ ["querystring-es3", "npm:0.2.1"],
["react", "npm:17.0.1"],
["react-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"],
["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
- ["react-hot-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"],
["react-i18next", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"],
["react-inlinesvg", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"],
+ ["react-refresh", "npm:0.9.0"],
["react-responsive", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"],
["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
["react-router-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"],
@@ -435,9 +444,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["sass-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"],
["style-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"],
["ts-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"],
+ ["type-fest", "npm:0.18.0"],
["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"],
["url-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
["webpack-chain", "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"],
["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
@@ -3165,22 +3175,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
- ["@hot-loader/react-dom", [
- ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0", {
- "packageLocation": "./.yarn/$$virtual/@hot-loader-react-dom-virtual-b4bf4ff7ed/0/cache/@hot-loader-react-dom-npm-17.0.0-666159a93b-9d2b060e88.zip/node_modules/@hot-loader/react-dom/",
- "packageDependencies": [
- ["@hot-loader/react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"],
- ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
- ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
- ["react", "npm:17.0.1"],
- ["scheduler", "npm:0.20.1"]
- ],
- "packagePeers": [
- "react"
- ],
- "linkType": "HARD",
- }]
- ]],
["@nodelib/fs.scandir", [
["npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz", {
"packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.3-d37148b991-1f100655dd.zip/node_modules/@nodelib/fs.scandir/",
@@ -3222,6 +3216,39 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
+ ["@pmmmwh/react-refresh-webpack-plugin", [
+ ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.4.2", {
+ "packageLocation": "./.yarn/$$virtual/@pmmmwh-react-refresh-webpack-plugin-virtual-4e8734919f/0/cache/@pmmmwh-react-refresh-webpack-plugin-npm-0.4.2-4fbefb2e62-cd70f32552.zip/node_modules/@pmmmwh/react-refresh-webpack-plugin/",
+ "packageDependencies": [
+ ["@pmmmwh/react-refresh-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.4.2"],
+ ["@types/webpack", null],
+ ["ansi-html", "npm:0.0.7"],
+ ["error-stack-parser", "npm:2.0.6"],
+ ["html-entities", "npm:1.3.1"],
+ ["native-url", "npm:0.2.6"],
+ ["react-refresh", "npm:0.9.0"],
+ ["schema-utils", "npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz"],
+ ["sockjs-client", null],
+ ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"],
+ ["type-fest", "npm:0.18.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
+ ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
+ ["webpack-hot-middleware", null],
+ ["webpack-plugin-serve", null]
+ ],
+ "packagePeers": [
+ "react-refresh",
+ "sockjs-client",
+ "type-fest",
+ "@types/webpack",
+ "webpack",
+ "webpack-dev-server",
+ "webpack-hot-middleware",
+ "webpack-plugin-serve"
+ ],
+ "linkType": "HARD",
+ }]
+ ]],
["@popperjs/core", [
["npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz", {
"packageLocation": "./.yarn/cache/@popperjs-core-npm-2.4.4-0690f2896b-49a1e6cfa2.zip/node_modules/@popperjs/core/",
@@ -4502,10 +4529,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]
]],
["ansi-html", [
- ["npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz", {
- "packageLocation": "./.yarn/cache/ansi-html-npm-0.0.7-7ee0b8d117-1178680548.zip/node_modules/ansi-html/",
+ ["npm:0.0.7", {
+ "packageLocation": "./.yarn/cache/ansi-html-npm-0.0.7-962845f6a8-1178680548.zip/node_modules/ansi-html/",
"packageDependencies": [
- ["ansi-html", "npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz"]
+ ["ansi-html", "npm:0.0.7"]
],
"linkType": "HARD",
}]
@@ -4909,7 +4936,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
["pify", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"],
["schema-utils", "npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"@babel/core",
@@ -5637,7 +5664,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["clean-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"],
["@types/webpack", "npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz"],
["del", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"webpack"
@@ -5976,7 +6003,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["p-limit", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"],
["schema-utils", "npm:3.0.0"],
["serialize-javascript", "npm:5.0.1"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"]
],
"packagePeers": [
@@ -6134,7 +6161,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["postcss-value-parser", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"],
["schema-utils", "npm:3.0.0"],
["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"webpack"
@@ -6592,15 +6619,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
- ["dom-walk", [
- ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz", {
- "packageLocation": "./.yarn/cache/dom-walk-npm-0.1.2-dc50e0840a-948c7527f3.zip/node_modules/dom-walk/",
- "packageDependencies": [
- ["dom-walk", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz"]
- ],
- "linkType": "HARD",
- }]
- ]],
["domelementtype", [
["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", {
"packageLocation": "./.yarn/cache/domelementtype-npm-1.3.1-f26205e843-a4791788de.zip/node_modules/domelementtype/",
@@ -6861,6 +6879,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
+ ["error-stack-parser", [
+ ["npm:2.0.6", {
+ "packageLocation": "./.yarn/cache/error-stack-parser-npm-2.0.6-1c5bf07f6c-7abf762c20.zip/node_modules/error-stack-parser/",
+ "packageDependencies": [
+ ["error-stack-parser", "npm:2.0.6"],
+ ["stackframe", "npm:1.2.0"]
+ ],
+ "linkType": "HARD",
+ }]
+ ]],
["es-abstract", [
["npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz", {
"packageLocation": "./.yarn/cache/es-abstract-npm-1.17.6-7a254592ff-637ad488bd.zip/node_modules/es-abstract/",
@@ -7533,7 +7561,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["file-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"],
["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
["schema-utils", "npm:3.0.0"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"webpack"
@@ -7959,17 +7987,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
- ["global", [
- ["npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz", {
- "packageLocation": "./.yarn/cache/global-npm-4.4.0-5e9e9c41f4-da0cf92ef0.zip/node_modules/global/",
- "packageDependencies": [
- ["global", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz"],
- ["min-document", "npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz"],
- ["process", "npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz"]
- ],
- "linkType": "HARD",
- }]
- ]],
["globals", [
["npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", {
"packageLocation": "./.yarn/cache/globals-npm-11.12.0-3e7cfc1865-2563d3306a.zip/node_modules/globals/",
@@ -8255,6 +8272,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]
]],
["html-entities", [
+ ["npm:1.3.1", {
+ "packageLocation": "./.yarn/cache/html-entities-npm-1.3.1-5f280346c8-53d37e5161.zip/node_modules/html-entities/",
+ "packageDependencies": [
+ ["html-entities", "npm:1.3.1"]
+ ],
+ "linkType": "HARD",
+ }],
["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz", {
"packageLocation": "./.yarn/cache/html-entities-npm-1.3.1-2d9627a657-53d37e5161.zip/node_modules/html-entities/",
"packageDependencies": [
@@ -8303,7 +8327,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["pretty-error", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.1.tgz"],
["tapable", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"],
["util.promisify", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"webpack"
@@ -9912,16 +9936,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
- ["min-document", [
- ["npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz", {
- "packageLocation": "./.yarn/cache/min-document-npm-2.19.0-34f9b0e52c-8da883996e.zip/node_modules/min-document/",
- "packageDependencies": [
- ["min-document", "npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz"],
- ["dom-walk", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz"]
- ],
- "linkType": "HARD",
- }]
- ]],
["mini-create-react-context", [
["virtual:0218b2b49970ef26ee32bb7a2947da10cedb3799929c5397fcf0582a9103cd0038d0e0761c926815f4904b73a41e5a8049cfc801e2372a6acb427685c112c7d8#npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz", {
"packageLocation": "./.yarn/$$virtual/mini-create-react-context-virtual-2c58e95df5/0/cache/mini-create-react-context-npm-0.4.0-ce8c7252c0-51f07df1ed.zip/node_modules/mini-create-react-context/",
@@ -9946,7 +9960,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["mini-css-extract-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0"],
["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
["schema-utils", "npm:3.0.0"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"]
],
"packagePeers": [
@@ -10144,6 +10158,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
+ ["native-url", [
+ ["npm:0.2.6", {
+ "packageLocation": "./.yarn/cache/native-url-npm-0.2.6-89352a1379-064e580759.zip/node_modules/native-url/",
+ "packageDependencies": [
+ ["native-url", "npm:0.2.6"],
+ ["querystring", "npm:0.2.0"]
+ ],
+ "linkType": "HARD",
+ }]
+ ]],
["natural-compare", [
["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz", {
"packageLocation": "./.yarn/cache/natural-compare-npm-1.4.0-bb22abd68a-2daf93d9bb.zip/node_modules/natural-compare/",
@@ -11319,7 +11343,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["postcss", "npm:8.1.4"],
["schema-utils", "npm:3.0.0"],
["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"postcss",
@@ -11637,15 +11661,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
- ["process", [
- ["npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz", {
- "packageLocation": "./.yarn/cache/process-npm-0.11.10-7d90e33373-ed93a85e91.zip/node_modules/process/",
- "packageDependencies": [
- ["process", "npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz"]
- ],
- "linkType": "HARD",
- }]
- ]],
["process-nextick-args", [
["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz", {
"packageLocation": "./.yarn/cache/process-nextick-args-npm-2.0.1-d189bc3f5b-ddeb0f07d0.zip/node_modules/process-nextick-args/",
@@ -11811,10 +11826,19 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]
]],
["querystring", [
- ["npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz", {
- "packageLocation": "./.yarn/cache/querystring-npm-0.2.0-e6c0a19fa3-1e76c51462.zip/node_modules/querystring/",
+ ["npm:0.2.0", {
+ "packageLocation": "./.yarn/cache/querystring-npm-0.2.0-421b870c92-1e76c51462.zip/node_modules/querystring/",
"packageDependencies": [
- ["querystring", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz"]
+ ["querystring", "npm:0.2.0"]
+ ],
+ "linkType": "HARD",
+ }]
+ ]],
+ ["querystring-es3", [
+ ["npm:0.2.1", {
+ "packageLocation": "./.yarn/cache/querystring-es3-npm-0.2.1-f4632f2760-3c388906aa.zip/node_modules/querystring-es3/",
+ "packageDependencies": [
+ ["querystring-es3", "npm:0.2.1"]
],
"linkType": "HARD",
}]
@@ -11942,31 +11966,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
- ["react-hot-loader", [
- ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0", {
- "packageLocation": "./.yarn/$$virtual/react-hot-loader-virtual-9b6c66cb8a/0/cache/react-hot-loader-npm-4.13.0-ec29a44932-f1df03e932.zip/node_modules/react-hot-loader/",
- "packageDependencies": [
- ["react-hot-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"],
- ["@types/react", "npm:16.9.53"],
- ["fast-levenshtein", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz"],
- ["global", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz"],
- ["hoist-non-react-statics", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"],
- ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
- ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
- ["react", "npm:17.0.1"],
- ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
- ["react-lifecycles-compat", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz"],
- ["shallowequal", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz"],
- ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"]
- ],
- "packagePeers": [
- "@types/react",
- "react",
- "react-dom"
- ],
- "linkType": "HARD",
- }]
- ]],
["react-i18next", [
["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3", {
"packageLocation": "./.yarn/$$virtual/react-i18next-virtual-bd6e918979/0/cache/react-i18next-npm-11.7.3-30ee610170-7f0b0535bf.zip/node_modules/react-i18next/",
@@ -12040,6 +12039,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
+ ["react-refresh", [
+ ["npm:0.9.0", {
+ "packageLocation": "./.yarn/cache/react-refresh-npm-0.9.0-02c61ee045-300dc43138.zip/node_modules/react-refresh/",
+ "packageDependencies": [
+ ["react-refresh", "npm:0.9.0"]
+ ],
+ "linkType": "HARD",
+ }]
+ ]],
["react-responsive", [
["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz", {
"packageLocation": "./.yarn/$$virtual/react-responsive-virtual-889e4c0da2/0/cache/react-responsive-npm-8.1.0-0c4689f9df-059c460fd4.zip/node_modules/react-responsive/",
@@ -12743,7 +12751,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["sass", "npm:1.27.0"],
["schema-utils", "npm:3.0.0"],
["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"fibers",
@@ -12971,15 +12979,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
- ["shallowequal", [
- ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz", {
- "packageLocation": "./.yarn/cache/shallowequal-npm-1.1.0-2c381f3031-15820dd544.zip/node_modules/shallowequal/",
- "packageDependencies": [
- ["shallowequal", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz"]
- ],
- "linkType": "HARD",
- }]
- ]],
["shebang-command", [
["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz", {
"packageLocation": "./.yarn/cache/shebang-command-npm-1.2.0-d9ffeb9731-2a1e0092a6.zip/node_modules/shebang-command/",
@@ -13342,6 +13341,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"linkType": "HARD",
}]
]],
+ ["stackframe", [
+ ["npm:1.2.0", {
+ "packageLocation": "./.yarn/cache/stackframe-npm-1.2.0-89ca050ce4-71e2868a52.zip/node_modules/stackframe/",
+ "packageDependencies": [
+ ["stackframe", "npm:1.2.0"]
+ ],
+ "linkType": "HARD",
+ }]
+ ]],
["static-extend", [
["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz", {
"packageLocation": "./.yarn/cache/static-extend-npm-0.1.2-a36503dc55-c42052c352.zip/node_modules/static-extend/",
@@ -13569,7 +13577,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["style-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"],
["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
["schema-utils", "npm:3.0.0"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"webpack"
@@ -13733,17 +13741,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]
]],
["terser-webpack-plugin", [
- ["virtual:da1918d5aef4b3f017250e626bcdf71c9210424aba35a828e9df5793e812bee0ca9643507b340f1722c72546fadacb741b6e9423e40b0e0605764717210cf76f#npm:5.0.1", {
- "packageLocation": "./.yarn/$$virtual/terser-webpack-plugin-virtual-8a1d554d58/0/cache/terser-webpack-plugin-npm-5.0.1-e2259a3f81-23dfddfcba.zip/node_modules/terser-webpack-plugin/",
+ ["virtual:3d397640c5f0b4b3de718c05931a789ea9e8a462d5fe086e49019e71e5c46ec377c4b2afd31a8718b532f901d4c8fd3aa701b59eb4eee1c89da6eddea9e2f48f#npm:5.0.1", {
+ "packageLocation": "./.yarn/$$virtual/terser-webpack-plugin-virtual-7ef3fbaf5a/0/cache/terser-webpack-plugin-npm-5.0.1-e2259a3f81-23dfddfcba.zip/node_modules/terser-webpack-plugin/",
"packageDependencies": [
- ["terser-webpack-plugin", "virtual:da1918d5aef4b3f017250e626bcdf71c9210424aba35a828e9df5793e812bee0ca9643507b340f1722c72546fadacb741b6e9423e40b0e0605764717210cf76f#npm:5.0.1"],
+ ["terser-webpack-plugin", "virtual:3d397640c5f0b4b3de718c05931a789ea9e8a462d5fe086e49019e71e5c46ec377c4b2afd31a8718b532f901d4c8fd3aa701b59eb4eee1c89da6eddea9e2f48f#npm:5.0.1"],
["jest-worker", "npm:26.6.1"],
["p-limit", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"],
["schema-utils", "npm:3.0.0"],
["serialize-javascript", "npm:5.0.1"],
["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"],
["terser", "npm:5.3.8"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"webpack"
@@ -13783,7 +13791,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@babel/preset-env", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
["@babel/preset-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
["@babel/preset-typescript", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
- ["@hot-loader/react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"],
+ ["@pmmmwh/react-refresh-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.4.2"],
["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"],
["@types/lodash", "npm:4.14.162"],
["@types/node", "npm:14.14.5"],
@@ -13828,12 +13836,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["postcss-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"],
["postcss-preset-env", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"],
["prettier", "npm:2.1.2"],
+ ["querystring-es3", "npm:0.2.1"],
["react", "npm:17.0.1"],
["react-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"],
["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
- ["react-hot-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"],
["react-i18next", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"],
["react-inlinesvg", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"],
+ ["react-refresh", "npm:0.9.0"],
["react-responsive", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"],
["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
["react-router-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"],
@@ -13844,9 +13853,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["sass-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"],
["style-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"],
["ts-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"],
+ ["type-fest", "npm:0.18.0"],
["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"],
["url-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
["webpack-chain", "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"],
["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
@@ -14077,6 +14087,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
"linkType": "HARD",
}],
+ ["npm:0.18.0", {
+ "packageLocation": "./.yarn/cache/type-fest-npm-0.18.0-ac93bc6cd8-22f7fb528b.zip/node_modules/type-fest/",
+ "packageDependencies": [
+ ["type-fest", "npm:0.18.0"]
+ ],
+ "linkType": "HARD",
+ }],
["npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz", {
"packageLocation": "./.yarn/cache/type-fest-npm-0.3.1-96c1013afe-5089230611.zip/node_modules/type-fest/",
"packageDependencies": [
@@ -14310,7 +14327,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageDependencies": [
["url", "npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz"],
["punycode", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz"],
- ["querystring", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz"]
+ ["querystring", "npm:0.2.0"]
],
"linkType": "HARD",
}]
@@ -14333,7 +14350,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
["mime-types", "npm:2.1.27"],
["schema-utils", "npm:3.0.0"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"]
],
"packagePeers": [
"file-loader",
@@ -14514,10 +14531,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]
]],
["webpack", [
- ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0", {
- "packageLocation": "./.yarn/$$virtual/webpack-virtual-da1918d5ae/0/cache/webpack-npm-5.2.0-128d7e3fc2-1f91563c25.zip/node_modules/webpack/",
+ ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1", {
+ "packageLocation": "./.yarn/$$virtual/webpack-virtual-3d397640c5/0/cache/webpack-npm-5.2.1-ad5c5c6760-1503203935.zip/node_modules/webpack/",
"packageDependencies": [
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
["@types/eslint-scope", "npm:3.7.0"],
["@types/estree", "npm:0.0.45"],
["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
@@ -14539,7 +14556,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["pkg-dir", "npm:4.2.0"],
["schema-utils", "npm:3.0.0"],
["tapable", "npm:2.0.0"],
- ["terser-webpack-plugin", "virtual:da1918d5aef4b3f017250e626bcdf71c9210424aba35a828e9df5793e812bee0ca9643507b340f1722c72546fadacb741b6e9423e40b0e0605764717210cf76f#npm:5.0.1"],
+ ["terser-webpack-plugin", "virtual:3d397640c5f0b4b3de718c05931a789ea9e8a462d5fe086e49019e71e5c46ec377c4b2afd31a8718b532f901d4c8fd3aa701b59eb4eee1c89da6eddea9e2f48f#npm:5.0.1"],
["watchpack", "npm:2.0.0"],
["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
["webpack-sources", "npm:2.1.0"]
@@ -14582,7 +14599,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["interpret", "npm:2.2.0"],
["rechoir", "npm:0.7.0"],
["v8-compile-cache", "npm:2.1.1"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
["webpack-bundle-analyzer", null],
["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
["webpack-merge", "npm:4.2.2"]
@@ -14608,7 +14625,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["mime", "npm:2.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz"],
["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
["range-parser", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
["webpack-log", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"]
],
"packagePeers": [
@@ -14622,7 +14639,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./.yarn/$$virtual/webpack-dev-server-virtual-dd7bf9071c/0/cache/webpack-dev-server-npm-3.11.0-6158244322-1d34457456.zip/node_modules/webpack-dev-server/",
"packageDependencies": [
["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
- ["ansi-html", "npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz"],
+ ["ansi-html", "npm:0.0.7"],
["bonjour", "npm:3.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbonjour%2Fdownload%2Fbonjour-3.5.0.tgz"],
["chokidar", "npm:2.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz"],
["compression", "npm:1.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz"],
@@ -14651,7 +14668,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"],
["url", "npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
["webpack-dev-middleware", "virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz"],
["webpack-log", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"],
@@ -14969,7 +14986,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
["source-map-url", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"],
["upath", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"],
- ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+ ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.1"],
["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"],
["workbox-build", "npm:5.1.4"]
],
diff --git a/FrontEnd/package.json b/FrontEnd/package.json
index 65c5cbe2..12f3fbea 100644
--- a/FrontEnd/package.json
+++ b/FrontEnd/package.json
@@ -20,7 +20,6 @@
"react": "^17.0.1",
"react-bootstrap": "^1.4.0",
"react-dom": "^17.0.1",
- "react-hot-loader": "^4.13.0",
"react-i18next": "^11.7.3",
"react-inlinesvg": "^2.1.1",
"react-responsive": "^8.1.0",
@@ -36,7 +35,7 @@
"xregexp": "^4.3.0"
},
"scripts": {
- "start": "webpack-dev-server --config ./webpack.config.dev.js",
+ "start": "webpack serve --config ./webpack.config.dev.js",
"build": "webpack --config ./webpack.config.prod.js",
"lint": "eslint src/ --ext .js --ext .jsx --ext .ts --ext .tsx"
},
@@ -62,7 +61,7 @@
"@babel/preset-env": "^7.12.1",
"@babel/preset-react": "^7.12.1",
"@babel/preset-typescript": "^7.12.1",
- "@hot-loader/react-dom": "^17.0.0",
+ "@pmmmwh/react-refresh-webpack-plugin": "^0.4.2",
"@types/classnames": "^2.2.10",
"@types/lodash": "^4.14.162",
"@types/node": "^14.14.5",
@@ -96,13 +95,16 @@
"postcss-loader": "^4.0.4",
"postcss-preset-env": "^6.7.0",
"prettier": "^2.1.2",
+ "querystring-es3": "^0.2.1",
+ "react-refresh": "^0.9.0",
"sass": "^1.27.0",
"sass-loader": "^10.0.4",
"style-loader": "^2.0.0",
"ts-loader": "^8.0.7",
+ "type-fest": "^0.18.0",
"typescript": "^4.0.5",
"url-loader": "^4.1.1",
- "webpack": "^5.2.0",
+ "webpack": "^5.2.1",
"webpack-chain": "^6.5.1",
"webpack-cli": "^4.1.0",
"webpack-dev-server": "^3.11.0",
diff --git a/FrontEnd/src/app/App.tsx b/FrontEnd/src/app/App.tsx
index b68eddb6..4e53d4da 100644
--- a/FrontEnd/src/app/App.tsx
+++ b/FrontEnd/src/app/App.tsx
@@ -1,6 +1,5 @@
import React from "react";
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
-import { hot } from "react-hot-loader/root";
import AppBar from "./views/common/AppBar";
import LoadingPage from "./views/common/LoadingPage";
@@ -81,4 +80,4 @@ const App: React.FC = () => {
}
};
-export default hot(App);
+export default App;
diff --git a/FrontEnd/src/app/i18n.ts b/FrontEnd/src/app/i18n.ts
index cdced7bf..aeac1f1f 100644
--- a/FrontEnd/src/app/i18n.ts
+++ b/FrontEnd/src/app/i18n.ts
@@ -18,18 +18,10 @@ const backend: BackendModule = {
}
if (language === "en") {
- const res = (
- await import(
- /* webpackChunkName: "locales-en" */ "./locales/en/translation"
- )
- ).default;
+ const res = (await import("./locales/en/translation")).default;
success(res);
} else if (language === "zh-cn" || language === "zh") {
- const res = (
- await import(
- /* webpackChunkName: "locales-zh" */ "./locales/zh/translation"
- )
- ).default;
+ const res = (await import("./locales/zh/translation")).default;
success(res);
} else {
error(`Language ${language} is not supported.`);
diff --git a/FrontEnd/webpack.config.dev.js b/FrontEnd/webpack.config.dev.js
index c88e1aaf..937ab3fb 100644
--- a/FrontEnd/webpack.config.dev.js
+++ b/FrontEnd/webpack.config.dev.js
@@ -1,24 +1,23 @@
const path = require("path");
const webpack = require("webpack");
+const ReactRefreshWebpackPlugin = require("@pmmmwh/react-refresh-webpack-plugin");
const config = require("./webpack.common");
config.mode("development");
-config.entry("index").add("react-hot-loader/patch");
-
config.module
.rule("ts")
.use("babel")
.options({
- plugins: ["react-hot-loader/babel"],
+ plugins: ["react-refresh/babel"],
});
config.module
.rule("js")
.use("babel")
.options({
- plugins: ["react-hot-loader/babel"],
+ plugins: ["react-refresh/babel"],
});
config.module
@@ -37,16 +36,18 @@ config.module
config.devtool("eval-cheap-module-source-map");
-config.resolve.alias.set("react-dom", "@hot-loader/react-dom");
+config.resolve.set("fallback", {
+ querystring: require.resolve("querystring-es3"),
+});
config.devServer
.contentBase(path.resolve(__dirname, "public/"))
.host("0.0.0.0")
.port(3000)
.historyApiFallback(true)
- .hotOnly(true)
- .allowedHosts.add(".myide.io");
+ .hotOnly(true);
config.plugin("hot").use(webpack.HotModuleReplacementPlugin);
+config.plugin("react-refresh").use(new ReactRefreshWebpackPlugin());
module.exports = config.toConfig();
diff --git a/FrontEnd/yarn.lock b/FrontEnd/yarn.lock
index 5d5a9e4d..65ecd497 100644
--- a/FrontEnd/yarn.lock
+++ b/FrontEnd/yarn.lock
@@ -2261,19 +2261,6 @@ __metadata:
languageName: node
linkType: hard
-"@hot-loader/react-dom@npm:^17.0.0":
- version: 17.0.0
- resolution: "@hot-loader/react-dom@npm:17.0.0"
- dependencies:
- loose-envify: ^1.1.0
- object-assign: ^4.1.1
- scheduler: ^0.20.0
- peerDependencies:
- react: 17.0.0
- checksum: 9d2b060e884d085345a9a73116fe9aee1fbdd0872b6fd1ccb02bd81dc411bcb644e202270e9e0f8ae57957dc67a96f503ed21362b4a3802a0aaa50b86e0a27e0
- languageName: node
- linkType: hard
-
"@nodelib/fs.scandir@npm:2.1.3":
version: 2.1.3
resolution: "@nodelib/fs.scandir@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz"
@@ -2310,6 +2297,42 @@ __metadata:
languageName: node
linkType: hard
+"@pmmmwh/react-refresh-webpack-plugin@npm:^0.4.2":
+ version: 0.4.2
+ resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.4.2"
+ dependencies:
+ ansi-html: ^0.0.7
+ error-stack-parser: ^2.0.6
+ html-entities: ^1.2.1
+ native-url: ^0.2.6
+ schema-utils: ^2.6.5
+ source-map: ^0.7.3
+ peerDependencies:
+ "@types/webpack": 4.x
+ react-refresh: ^0.8.3
+ sockjs-client: ^1.4.0
+ type-fest: ^0.13.1
+ webpack: ">=4.43.0 <6.0.0"
+ webpack-dev-server: 3.x
+ webpack-hot-middleware: 2.x
+ webpack-plugin-serve: 0.x || 1.x
+ peerDependenciesMeta:
+ "@types/webpack":
+ optional: true
+ sockjs-client:
+ optional: true
+ type-fest:
+ optional: true
+ webpack-dev-server:
+ optional: true
+ webpack-hot-middleware:
+ optional: true
+ webpack-plugin-serve:
+ optional: true
+ checksum: cd70f32552ba053dbeefe605027c8fd97e435c0ff6d4cddb5e367d02444e3ed04f1d7fb9dca516780788c2cb17c640dcd353f0ec60412cd774f1bf0ce2d34f8a
+ languageName: node
+ linkType: hard
+
"@popperjs/core@npm:^2.0.0":
version: 2.4.4
resolution: "@popperjs/core@npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz"
@@ -3429,9 +3452,9 @@ __metadata:
languageName: node
linkType: hard
-"ansi-html@npm:0.0.7":
+"ansi-html@npm:0.0.7, ansi-html@npm:^0.0.7":
version: 0.0.7
- resolution: "ansi-html@npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz"
+ resolution: "ansi-html@npm:0.0.7"
bin:
ansi-html: ./bin/ansi-html
checksum: 1178680548785b6557e67c197c343411ee1a334606058ebcfb4a3c79accddaa43edb511b0dcb79c15a18041fe0e8d1063bbbad95be8b5b1d56934b9a51d88c83
@@ -5282,13 +5305,6 @@ __metadata:
languageName: node
linkType: hard
-"dom-walk@npm:^0.1.0":
- version: 0.1.2
- resolution: "dom-walk@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz"
- checksum: 948c7527f3798cae9d7039cc0e5dc9f013ebd701d7d99478bac79d7d9eb8b81e7b6e836526e21ed9b156466b268e30ea0f2d5b72df955fabec3ce2aa7dc0086e
- languageName: node
- linkType: hard
-
"domelementtype@npm:1, domelementtype@npm:^1.3.1":
version: 1.3.1
resolution: "domelementtype@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"
@@ -5451,7 +5467,7 @@ __metadata:
languageName: node
linkType: hard
-"enhanced-resolve@npm:^5.3.0":
+"enhanced-resolve@npm:^5.3.1":
version: 5.3.1
resolution: "enhanced-resolve@npm:5.3.1"
dependencies:
@@ -5529,6 +5545,15 @@ __metadata:
languageName: node
linkType: hard
+"error-stack-parser@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "error-stack-parser@npm:2.0.6"
+ dependencies:
+ stackframe: ^1.1.1
+ checksum: 7abf762c20054310d33f0c0a34a2ea38f93a1b0169f5289feb96cf94d7b30d277a0df09567469be79ccfcfa49df37cddc8c59e0bc5b682a1e7e3c234e67b25c8
+ languageName: node
+ linkType: hard
+
"es-abstract@npm:^1.17.0, es-abstract@npm:^1.17.0-next.1, es-abstract@npm:^1.17.5":
version: 1.17.6
resolution: "es-abstract@npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"
@@ -6541,16 +6566,6 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
-"global@npm:^4.3.0":
- version: 4.4.0
- resolution: "global@npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz"
- dependencies:
- min-document: ^2.19.0
- process: ^0.11.10
- checksum: da0cf92ef034b63cf4d0fe5e14cb71bc4c748b8c1bbeabe4061443562ba8e9027774f8074e66543fa98f0d965da6d11e0861e3bf8c628b7ab19220e8ee18cc71
- languageName: node
- linkType: hard
-
"globals@npm:^11.1.0":
version: 11.12.0
resolution: "globals@npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"
@@ -6780,7 +6795,7 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
-"hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.0":
+"hoist-non-react-statics@npm:^3.1.0":
version: 3.3.2
resolution: "hoist-non-react-statics@npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"
dependencies:
@@ -6808,6 +6823,13 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
+"html-entities@npm:^1.2.1":
+ version: 1.3.1
+ resolution: "html-entities@npm:1.3.1"
+ checksum: 53d37e5161230ad7f2c16dd2b54945069d84b5167113eac55e39a8fffed357378afc022d5dc66045b132ea46232cab41aee86e79dd5cd0618e0b78776b9085b5
+ languageName: node
+ linkType: hard
+
"html-entities@npm:^1.3.1":
version: 1.3.1
resolution: "html-entities@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz"
@@ -7942,7 +7964,7 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
-"loader-utils@npm:^1.0.2, loader-utils@npm:^1.1.0, loader-utils@npm:^1.2.3, loader-utils@npm:^1.4.0":
+"loader-utils@npm:^1.0.2, loader-utils@npm:^1.2.3, loader-utils@npm:^1.4.0":
version: 1.4.0
resolution: "loader-utils@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"
dependencies:
@@ -8304,15 +8326,6 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
-"min-document@npm:^2.19.0":
- version: 2.19.0
- resolution: "min-document@npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz"
- dependencies:
- dom-walk: ^0.1.0
- checksum: 8da883996e00a53729e867dad45a358c6d8b3b55f2473a20768c1a2b4642d0983bc61827cf29eb98c53d7290c2a1a74a5cba60873857da416bdfae09bf73bb21
- languageName: node
- linkType: hard
-
"mini-create-react-context@npm:^0.4.0":
version: 0.4.0
resolution: "mini-create-react-context@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz"
@@ -8515,6 +8528,15 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
+"native-url@npm:^0.2.6":
+ version: 0.2.6
+ resolution: "native-url@npm:0.2.6"
+ dependencies:
+ querystring: ^0.2.0
+ checksum: 064e580759f06060740636184ba8dbd8cf21a1237c769625591f8a0e956714ea27d58d601fe84c4b9600dfabc88edfb3bf51fc7a579764b5d60e0d9392aec9df
+ languageName: node
+ linkType: hard
+
"natural-compare@npm:^1.4.0":
version: 1.4.0
resolution: "natural-compare@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz"
@@ -9865,13 +9887,6 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
-"process@npm:^0.11.10":
- version: 0.11.10
- resolution: "process@npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz"
- checksum: ed93a85e9185b40fb01788c588a87c1a9da0eb925ef7cebebbe1b8bbf0eba1802130366603a29e3b689c116969d4fe018de6aed3474bbeb5aefb3716b85d6449
- languageName: node
- linkType: hard
-
"progress@npm:^2.0.0":
version: 2.0.3
resolution: "progress@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz"
@@ -10006,9 +10021,16 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
-"querystring@npm:0.2.0":
+"querystring-es3@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "querystring-es3@npm:0.2.1"
+ checksum: 3c388906aa5644e55cdbede78f99a4d05a6e36a45b06929ad8713a2020a5cefeb6ec23adaa27584d968cf658e5d237b5e216f5e48930d040cd6b810679714741
+ languageName: node
+ linkType: hard
+
+"querystring@npm:0.2.0, querystring@npm:^0.2.0":
version: 0.2.0
- resolution: "querystring@npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz"
+ resolution: "querystring@npm:0.2.0"
checksum: 1e76c51462f0ffb148e0b2fdeb811f61377800298605229d32efcdaaaf0a8fd4314a4b4405e1fbf130a5ca421c0e51f926fab5bb9f8b9b3b8c394f4e2d33d3d1
languageName: node
linkType: hard
@@ -10106,29 +10128,6 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
-"react-hot-loader@npm:^4.13.0":
- version: 4.13.0
- resolution: "react-hot-loader@npm:4.13.0"
- dependencies:
- fast-levenshtein: ^2.0.6
- global: ^4.3.0
- hoist-non-react-statics: ^3.3.0
- loader-utils: ^1.1.0
- prop-types: ^15.6.1
- react-lifecycles-compat: ^3.0.4
- shallowequal: ^1.1.0
- source-map: ^0.7.3
- peerDependencies:
- "@types/react": "^15.0.0 || ^16.0.0 || ^17.0.0 "
- react: "^15.0.0 || ^16.0.0 || ^17.0.0 "
- react-dom: "^15.0.0 || ^16.0.0 || ^17.0.0 "
- peerDependenciesMeta:
- "@types/react":
- optional: true
- checksum: f1df03e93206b379b605f3da983f700d5c8a16e3ebedf25ca1311067f4dc95cf968206af44d0b734a5505619958f2da5efe9df4bf749ed6a4989e1f6ea5d2915
- languageName: node
- linkType: hard
-
"react-i18next@npm:^11.7.3":
version: 11.7.3
resolution: "react-i18next@npm:11.7.3"
@@ -10187,6 +10186,13 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
+"react-refresh@npm:^0.9.0":
+ version: 0.9.0
+ resolution: "react-refresh@npm:0.9.0"
+ checksum: 300dc431389f4c532bdfec08d5bc59b591c8c440486a7d5770c8954adf3afe62501b659c5acbdb7831751e8be506eb90a6f72491fab40352f3b3fba16897acf6
+ languageName: node
+ linkType: hard
+
"react-responsive@npm:^8.1.0":
version: 8.1.0
resolution: "react-responsive@npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"
@@ -10860,7 +10866,7 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
-"scheduler@npm:^0.20.0, scheduler@npm:^0.20.1":
+"scheduler@npm:^0.20.1":
version: 0.20.1
resolution: "scheduler@npm:0.20.1"
dependencies:
@@ -11068,13 +11074,6 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
-"shallowequal@npm:^1.1.0":
- version: 1.1.0
- resolution: "shallowequal@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz"
- checksum: 15820dd544ce15521565c366940a46dcbe0f093c1336f6259c7b3e2490ca10135645ee262778f555d3ccc38283207f2f0a41e9a0f26888b5d5159f2904c4ac68
- languageName: node
- linkType: hard
-
"shebang-command@npm:^1.2.0":
version: 1.2.0
resolution: "shebang-command@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz"
@@ -11406,6 +11405,13 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
+"stackframe@npm:^1.1.1":
+ version: 1.2.0
+ resolution: "stackframe@npm:1.2.0"
+ checksum: 71e2868a529123e9ca1cf510192a7de879b8d92b5829c7f58d5576e1500cbedf22b5d9cc86589c547b6842abcf01cea13979ab8301b51e85bdb6267a6f9288f2
+ languageName: node
+ linkType: hard
+
"static-extend@npm:^0.1.1":
version: 0.1.2
resolution: "static-extend@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz"
@@ -11814,7 +11820,7 @@ fsevents@~2.1.2:
"@babel/preset-env": ^7.12.1
"@babel/preset-react": ^7.12.1
"@babel/preset-typescript": ^7.12.1
- "@hot-loader/react-dom": ^17.0.0
+ "@pmmmwh/react-refresh-webpack-plugin": ^0.4.2
"@types/classnames": ^2.2.10
"@types/lodash": ^4.14.162
"@types/node": ^14.14.5
@@ -11859,12 +11865,13 @@ fsevents@~2.1.2:
postcss-loader: ^4.0.4
postcss-preset-env: ^6.7.0
prettier: ^2.1.2
+ querystring-es3: ^0.2.1
react: ^17.0.1
react-bootstrap: ^1.4.0
react-dom: ^17.0.1
- react-hot-loader: ^4.13.0
react-i18next: ^11.7.3
react-inlinesvg: ^2.1.1
+ react-refresh: ^0.9.0
react-responsive: ^8.1.0
react-router: ^5.2.0
react-router-bootstrap: ^0.25.0
@@ -11875,9 +11882,10 @@ fsevents@~2.1.2:
sass-loader: ^10.0.4
style-loader: ^2.0.0
ts-loader: ^8.0.7
+ type-fest: ^0.18.0
typescript: ^4.0.5
url-loader: ^4.1.1
- webpack: ^5.2.0
+ webpack: ^5.2.1
webpack-chain: ^6.5.1
webpack-cli: ^4.1.0
webpack-dev-server: ^3.11.0
@@ -12066,6 +12074,13 @@ fsevents@~2.1.2:
languageName: node
linkType: hard
+"type-fest@npm:^0.18.0":
+ version: 0.18.0
+ resolution: "type-fest@npm:0.18.0"
+ checksum: 22f7fb528bf187ef3964e718a4cad2c669bf47989486ae8f66a140954f555760f7220fe5028f30df816d62a741c4748499ebc3ffcf37c8bbfb9f5a47d2c9a0d0
+ languageName: node
+ linkType: hard
+
"type-fest@npm:^0.3.1":
version: 0.3.1
resolution: "type-fest@npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz"
@@ -12600,7 +12615,7 @@ typescript@^4.0.5:
languageName: node
linkType: hard
-"webpack-sources@npm:^2.0.1":
+"webpack-sources@npm:^2.1.0":
version: 2.1.0
resolution: "webpack-sources@npm:2.1.0"
dependencies:
@@ -12610,9 +12625,9 @@ typescript@^4.0.5:
languageName: node
linkType: hard
-"webpack@npm:^5.2.0":
- version: 5.2.0
- resolution: "webpack@npm:5.2.0"
+"webpack@npm:^5.2.1":
+ version: 5.2.1
+ resolution: "webpack@npm:5.2.1"
dependencies:
"@types/eslint-scope": ^3.7.0
"@types/estree": ^0.0.45
@@ -12623,7 +12638,7 @@ typescript@^4.0.5:
acorn: ^8.0.4
browserslist: ^4.14.5
chrome-trace-event: ^1.0.2
- enhanced-resolve: ^5.3.0
+ enhanced-resolve: ^5.3.1
eslint-scope: ^5.1.1
events: ^3.2.0
glob-to-regexp: ^0.4.1
@@ -12637,7 +12652,7 @@ typescript@^4.0.5:
tapable: ^2.0.0
terser-webpack-plugin: ^5.0.0
watchpack: ^2.0.0
- webpack-sources: ^2.0.1
+ webpack-sources: ^2.1.0
peerDependencies:
webpack-cli: "*"
peerDependenciesMeta:
@@ -12645,7 +12660,7 @@ typescript@^4.0.5:
optional: true
bin:
webpack: bin/webpack.js
- checksum: 1f91563c2512e9068c9d76f45479fd3c6d9652f490c428d36ce9f5311979609e363e58b0cf8f23019185cd335e72d00a48911a9c1da1b34f0d7a6265eab7e5c4
+ checksum: 1503203935b40b7a746e078a8653f7154347c76a0250d8ea7b6827059d53b54df6ddbdddae785c9e17d5da23a48edfe3dc3da859b25a58f54bcf45781dedb4eb
languageName: node
linkType: hard