diff --git a/.vscode/settings.json b/.vscode/settings.json index 084d4364a7..575b450da2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -43,7 +43,6 @@ "ciphertext", "cloudbin", "clsx", - "codingame", "coll", "compat", "containerd", @@ -77,7 +76,6 @@ "logtostderr", "mchid", "millicores", - "mimetypes", "MINIO", "moby", "mongorestore", diff --git a/package.json b/package.json index 1d341307e0..f5b81c6a96 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "scripts": { "install": "lerna exec npm install --parallel", "lint": "lerna run lint --parallel", - "lint-staged": "lerna exec --since HEAD --parallel -- lint-staged --no-stash", + "lint-staged": "lerna exec --since HEAD --parallel -- lint-staged", "build": "lerna run build --parallel", "watch": "lerna run watch --parallel", "prepublishOnly": "npm run build", @@ -41,4 +41,4 @@ "lint-staged": "^15.1.0", "typescript": "5.0.4" } -} \ No newline at end of file +} diff --git a/web/package-lock.json b/web/package-lock.json index 1d3b9dd10b..1c602d1b75 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -11,14 +11,8 @@ "@chakra-ui/anatomy": "^2.1.1", "@chakra-ui/icons": "^2.0.19", "@chakra-ui/react": "^2.6.1", - "@codingame/monaco-vscode-configuration-service-override": "~1.82.3", - "@codingame/monaco-vscode-textmate-service-override": "~1.82.3", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~1.82.3", - "@codingame/monaco-vscode-theme-service-override": "~1.82.3", - "@codingame/monaco-vscode-typescript-basics-default-extension": "~1.82.3", "@emotion/react": "^11.11.0", "@emotion/styled": "^11.11.0", - "@monaco-editor/react": "^4.6.0", "@patternfly/react-log-viewer": "^5.0.0", "@sentry/integrations": "^7.73.0", "@sentry/react": "^7.73.0", @@ -38,8 +32,7 @@ "immer": "^10.0.2", "laf-client-sdk": "1.0.0-beta.14", "lodash": "^4.17.21", - "monaco-editor": "~0.43.0", - "monaco-languageclient": "~6.5.1", + "monaco-editor": "^0.38.0", "pako": "^2.1.0", "qrcode.react": "^3.1.0", "react": "18.2.0", @@ -62,9 +55,6 @@ "simplebar-react": "^3.2.4", "ts-key-enum": "^2.0.12", "uuid": "^9.0.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.82.3 <1.83.0", - "vscode-languageclient": "~8.1.0", - "vscode-ws-jsonrpc": "~3.0.0", "zustand": "^4.3.8" }, "devDependencies": { @@ -77,9 +67,6 @@ "@types/react-syntax-highlighter": "^15.5.6", "@types/react-window": "^1.8.8", "@types/uuid": "^9.0.1", - "@types/vscode": "~1.82.0", - "@typescript-eslint/eslint-plugin": "~6.7.4", - "@typescript-eslint/parser": "~6.7.4", "@vitejs/plugin-react-swc": "^3.3.1", "autoprefixer": "^10.4.14", "click-to-react-component": "^1.0.8", @@ -107,16 +94,6 @@ "prettier-plugin-tailwindcss": "^0.3.0" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -2879,78 +2856,6 @@ "react": ">=18" } }, - "node_modules/@codingame/monaco-vscode-configuration-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-1.82.6.tgz", - "integrity": "sha512-S6nkqFu2fhPUKy4swoBrCK7SWxzHvOuHDW9jqAdSyghxEn47KJwJefS3OO1U7nkIv9+t9i/LU0r5SLYJq128Xg==", - "dependencies": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "node_modules/@codingame/monaco-vscode-editor-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-1.82.6.tgz", - "integrity": "sha512-9PIa4QQRk4Kqtx7Abwm4U7lL6J7ap9678ENb3rV/Z3z+ezDm+VOFmDYYJ3ICKr3da8arbiE63u0jJWzmQyvjDQ==", - "dependencies": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "node_modules/@codingame/monaco-vscode-languages-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-1.82.6.tgz", - "integrity": "sha512-Xm6koxTExXp2ZTn91DhfsuAmTUGnHfNI0ZHmwwtnzyZMN2XDl3Eu7wqlQHh2o+xPLeimZXt4NNx0vBxij/c8Og==", - "dependencies": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "node_modules/@codingame/monaco-vscode-model-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-1.82.6.tgz", - "integrity": "sha512-dtD87qc5qgTaXZC5DzsOZOMxbTDwcxQxFCYqWO1vwz+UerEwv30gFYUF1o9AMg9yJwMLyjnIhsvhNip2ASv35g==", - "dependencies": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "node_modules/@codingame/monaco-vscode-textmate-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-1.82.6.tgz", - "integrity": "sha512-WL6Cs0xkW5i5N7jSOilee7o36aaiIMMS+Ed8OszXMAX1VBQbiNfEsTdFdtC+xGUg+WRggWeOfrC4dMt9Gzk8Ww==", - "dependencies": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6", - "vscode-oniguruma": "^2.0.0", - "vscode-textmate": "^9.0.0" - } - }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-1.82.6.tgz", - "integrity": "sha512-3/u0CDitzSbLSJrkj157VjDty0vU5E2OfxPihrxGczJGkrEqL2LY8Op8u6EYpbO0Xuahk9JJ9olrux7tYaUORw==", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "node_modules/@codingame/monaco-vscode-theme-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-1.82.6.tgz", - "integrity": "sha512-5CpKH4vNiE0eIChgVdJ5hniRxOmxAeTpf2nHZZMHJwSisXsAadWkw6O4KjYtmmAIYmt5RunqzkM8OMR3Xj+5fA==", - "dependencies": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "node_modules/@codingame/monaco-vscode-typescript-basics-default-extension": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-typescript-basics-default-extension/-/monaco-vscode-typescript-basics-default-extension-1.82.6.tgz", - "integrity": "sha512-f0p4lVxiq7oKBM3lfTBqpXrhOAQZ3WijzHJF3ehbSGFX/4NgOgxYIkoW+O9KVSY/dRwMWrXUQKxghDWcGLu/Xg==", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, "node_modules/@csstools/css-parser-algorithms": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz", @@ -3522,104 +3427,6 @@ "node": ">=12" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "peer": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, - "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", - "dev": true, - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@floating-ui/core": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-0.6.2.tgz", @@ -3662,42 +3469,6 @@ "use-isomorphic-layout-effect": "^1.1.1" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "peer": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true, - "peer": true - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -3769,30 +3540,6 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, - "node_modules/@monaco-editor/loader": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.4.0.tgz", - "integrity": "sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==", - "dependencies": { - "state-local": "^1.0.6" - }, - "peerDependencies": { - "monaco-editor": ">= 0.21.0 < 1" - } - }, - "node_modules/@monaco-editor/react": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.6.0.tgz", - "integrity": "sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==", - "dependencies": { - "@monaco-editor/loader": "^1.4.0" - }, - "peerDependencies": { - "monaco-editor": ">= 0.25.0 < 1", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4310,12 +4057,6 @@ "@types/unist": "*" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, "node_modules/@types/katex": { "version": "0.16.0", "resolved": "https://registry.npmmirror.com/@types/katex/-/katex-0.16.0.tgz", @@ -4452,12 +4193,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, - "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", - "dev": true - }, "node_modules/@types/trusted-types": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", @@ -4475,457 +4210,146 @@ "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==", "dev": true }, - "node_modules/@types/vscode": { - "version": "1.82.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.82.0.tgz", - "integrity": "sha512-VSHV+VnpF8DEm8LNrn8OJ8VuUNcBzN3tMvKrNpbhhfuVjFm82+6v44AbDhLvVFgCzn6vs94EJNTp7w8S6+Q1Rw==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", - "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.1.tgz", + "integrity": "sha512-ZoYjGxMniXP7X+5ry/W1tpY7w0OeLUEsBF5RHFPmAhpgwwNWie8OF4056MRXRi9QgvYYoZPDzdOXGK3wlCoTfQ==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/type-utils": "6.7.5", - "@typescript-eslint/utils": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@swc/core": "^1.3.56" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" + "vite": "^4" + } + }, + "node_modules/@zag-js/element-size": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/@zag-js/element-size/-/element-size-0.3.2.tgz", + "integrity": "sha512-bVvvigUGvAuj7PCkE5AbzvTJDTw5f3bg9nQdv+ErhVN8SfPPppLJEmmWdxqsRzrHXgx8ypJt/+Ty0kjtISVDsQ==" + }, + "node_modules/@zag-js/focus-visible": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/@zag-js/focus-visible/-/focus-visible-0.2.2.tgz", + "integrity": "sha512-0j2gZq8HiZ51z4zNnSkF1iSkqlwRDvdH+son3wHdoz+7IUdMN/5Exd4TxMJ+gq2Of1DiXReYLL9qqh2PdQ4wgA==" + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "bin": { + "acorn": "bin/acorn" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=0.4.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi_up": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ansi_up/-/ansi_up-6.0.2.tgz", + "integrity": "sha512-3G3vKvl1ilEp7J1u6BmULpMA0xVoW/f4Ekqhl8RTrJrhEBkonKn5k3bUc5Xt+qDayA6iDX0jyUh3AbZjB/l0tw==", "engines": { - "node": ">=10" + "node": "*" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "engines": { + "node": ">=8" + } + }, + "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": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true }, - "node_modules/@typescript-eslint/parser": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", - "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", - "dev": true, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dependencies": { - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", - "debug": "^4.3.4" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.2.tgz", + "integrity": "sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==", + "dependencies": { + "tslib": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "engines": { + "node": ">=10" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { "optional": true } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", - "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=8" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", - "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/utils": "6.7.5", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", - "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", - "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", - "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", - "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.5", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, - "peer": true - }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.1.tgz", - "integrity": "sha512-ZoYjGxMniXP7X+5ry/W1tpY7w0OeLUEsBF5RHFPmAhpgwwNWie8OF4056MRXRi9QgvYYoZPDzdOXGK3wlCoTfQ==", - "dev": true, - "dependencies": { - "@swc/core": "^1.3.56" - }, - "peerDependencies": { - "vite": "^4" - } - }, - "node_modules/@zag-js/element-size": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@zag-js/element-size/-/element-size-0.3.2.tgz", - "integrity": "sha512-bVvvigUGvAuj7PCkE5AbzvTJDTw5f3bg9nQdv+ErhVN8SfPPppLJEmmWdxqsRzrHXgx8ypJt/+Ty0kjtISVDsQ==" - }, - "node_modules/@zag-js/focus-visible": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/@zag-js/focus-visible/-/focus-visible-0.2.2.tgz", - "integrity": "sha512-0j2gZq8HiZ51z4zNnSkF1iSkqlwRDvdH+son3wHdoz+7IUdMN/5Exd4TxMJ+gq2Of1DiXReYLL9qqh2PdQ4wgA==" - }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi_up": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ansi_up/-/ansi_up-6.0.2.tgz", - "integrity": "sha512-3G3vKvl1ilEp7J1u6BmULpMA0xVoW/f4Ekqhl8RTrJrhEBkonKn5k3bUc5Xt+qDayA6iDX0jyUh3AbZjB/l0tw==", - "engines": { - "node": "*" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/aria-hidden": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.2.tgz", - "integrity": "sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.9.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5062,7 +4486,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", @@ -5505,21 +4930,6 @@ "node-fetch": "^2.6.11" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -5800,13 +5210,6 @@ "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "peer": true - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -5885,19 +5288,6 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-helpers": { "version": "3.4.0", "resolved": "https://registry.npmmirror.com/dom-helpers/-/dom-helpers-3.4.0.tgz", @@ -5975,370 +5365,102 @@ "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.11.tgz", - "integrity": "sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.11", - "@esbuild/android-arm64": "0.18.11", - "@esbuild/android-x64": "0.18.11", - "@esbuild/darwin-arm64": "0.18.11", - "@esbuild/darwin-x64": "0.18.11", - "@esbuild/freebsd-arm64": "0.18.11", - "@esbuild/freebsd-x64": "0.18.11", - "@esbuild/linux-arm": "0.18.11", - "@esbuild/linux-arm64": "0.18.11", - "@esbuild/linux-ia32": "0.18.11", - "@esbuild/linux-loong64": "0.18.11", - "@esbuild/linux-mips64el": "0.18.11", - "@esbuild/linux-ppc64": "0.18.11", - "@esbuild/linux-riscv64": "0.18.11", - "@esbuild/linux-s390x": "0.18.11", - "@esbuild/linux-x64": "0.18.11", - "@esbuild/netbsd-x64": "0.18.11", - "@esbuild/openbsd-x64": "0.18.11", - "@esbuild/sunos-x64": "0.18.11", - "@esbuild/win32-arm64": "0.18.11", - "@esbuild/win32-ia32": "0.18.11", - "@esbuild/win32-x64": "0.18.11" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", - "dev": true, - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true - }, - "node_modules/eslint/node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "peer": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "unbox-primitive": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "peer": true, "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/esbuild": { + "version": "0.18.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.11.tgz", + "integrity": "sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==", "dev": true, - "peer": true, - "dependencies": { - "estraverse": "^5.1.0" + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=0.10" + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.11", + "@esbuild/android-arm64": "0.18.11", + "@esbuild/android-x64": "0.18.11", + "@esbuild/darwin-arm64": "0.18.11", + "@esbuild/darwin-x64": "0.18.11", + "@esbuild/freebsd-arm64": "0.18.11", + "@esbuild/freebsd-x64": "0.18.11", + "@esbuild/linux-arm": "0.18.11", + "@esbuild/linux-arm64": "0.18.11", + "@esbuild/linux-ia32": "0.18.11", + "@esbuild/linux-loong64": "0.18.11", + "@esbuild/linux-mips64el": "0.18.11", + "@esbuild/linux-ppc64": "0.18.11", + "@esbuild/linux-riscv64": "0.18.11", + "@esbuild/linux-s390x": "0.18.11", + "@esbuild/linux-x64": "0.18.11", + "@esbuild/netbsd-x64": "0.18.11", + "@esbuild/openbsd-x64": "0.18.11", + "@esbuild/sunos-x64": "0.18.11", + "@esbuild/win32-arm64": "0.18.11", + "@esbuild/win32-ia32": "0.18.11", + "@esbuild/win32-x64": "0.18.11" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "peer": true, - "dependencies": { - "estraverse": "^5.2.0" - }, "engines": { - "node": ">=4.0" + "node": ">=6" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "peer": true, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "engines": { - "node": ">=4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/estree-walker": { @@ -6414,13 +5536,6 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "peer": true - }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -6926,12 +6041,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -7472,16 +6581,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -7768,13 +6867,6 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "peer": true - }, "node_modules/json5": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", @@ -7885,20 +6977,6 @@ "node": ">=6" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/lie": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", @@ -7965,13 +7043,6 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "peer": true - }, "node_modules/lodash.mergewith": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", @@ -8694,39 +7765,9 @@ } }, "node_modules/monaco-editor": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.43.0.tgz", - "integrity": "sha512-cnoqwQi/9fml2Szamv1XbSJieGJ1Dc8tENVMD26Kcfl7xGQWp7OBKMjlwKVGYFJ3/AXJjSOGvcqK7Ry/j9BM1Q==" - }, - "node_modules/monaco-languageclient": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-6.5.3.tgz", - "integrity": "sha512-5KZhdJj2kzlSvtP7/uTCs0rV4mTrghsCphEQc7YlDKC0+Ipq597j9K6yN9dMB/AFUK1qEOC098F0VEpVTtQGtw==", - "hasInstallScript": true, - "dependencies": { - "@codingame/monaco-vscode-editor-service-override": "~1.82.5", - "@codingame/monaco-vscode-languages-service-override": "~1.82.5", - "@codingame/monaco-vscode-model-service-override": "~1.82.5", - "monaco-editor": "~0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.82.5 <1.83.0", - "vscode-languageclient": "~8.1.0" - }, - "engines": { - "node": ">=16.11.0", - "npm": ">=9.0.0" - }, - "peerDependencies": { - "monaco-editor": "~0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.82.5 <1.83.0" - }, - "peerDependenciesMeta": { - "monaco-editor": { - "optional": false - }, - "vscode": { - "optional": false - } - } + "version": "0.38.0", + "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.38.0.tgz", + "integrity": "sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A==" }, "node_modules/mri": { "version": "1.2.0", @@ -8764,12 +7805,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, "node_modules/node-fetch": { "version": "2.6.11", "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.11.tgz", @@ -8919,24 +7954,6 @@ "wrappy": "1" } }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "peer": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -9035,16 +8052,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -9250,16 +8257,6 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/pretty-bytes": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", @@ -10284,29 +9281,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -10435,11 +9409,6 @@ "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, - "node_modules/state-local": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" - }, "node_modules/string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", @@ -10537,19 +9506,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", @@ -11061,13 +10017,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "peer": true - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", @@ -11145,18 +10094,6 @@ "resolved": "https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz", "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" }, - "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true, - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -11173,32 +10110,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typescript": { "version": "5.0.4", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.0.4.tgz", @@ -11613,151 +10524,33 @@ "funding": { "url": "https://github.com/sponsors/antfu" }, - "peerDependencies": { - "vite": "^3.1.0 || ^4.0.0", - "workbox-build": "^7.0.0", - "workbox-window": "^7.0.0" - } - }, - "node_modules/vite-plugin-rewrite-all": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/vite-plugin-rewrite-all/-/vite-plugin-rewrite-all-1.0.1.tgz", - "integrity": "sha512-W0DAchC8ynuQH0lYLIu5/5+JGfYlUTRD8GGNtHFXRJX4FzzB9MajtqHBp26zq/ly9sDt5BqrfdT08rv3RbB0LQ==", - "dev": true, - "dependencies": { - "connect-history-api-fallback": "^1.6.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "vite": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.82.6.tgz", - "integrity": "sha512-Trxow2RIu4i6EvS2wEIl0cktpL4UMv0e1UItUIfyRtZsCECnuE6Auedp6BK2JLzAH96yVgp9elEBlTo7rvnf0Q==", - "dependencies": { - "monaco-editor": "0.43.0" - }, - "bin": { - "monaco-treemending": "monaco-treemending.js" - } - }, - "node_modules/vscode-jsonrpc": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz", - "integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/vscode-languageclient": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.1.0.tgz", - "integrity": "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing==", - "dependencies": { - "minimatch": "^5.1.0", - "semver": "^7.3.7", - "vscode-languageserver-protocol": "3.17.3" - }, - "engines": { - "vscode": "^1.67.0" - } - }, - "node_modules/vscode-languageclient/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/vscode-languageclient/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vscode-languageclient/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0", + "workbox-build": "^7.0.0", + "workbox-window": "^7.0.0" } }, - "node_modules/vscode-languageclient/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/vite-plugin-rewrite-all": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-rewrite-all/-/vite-plugin-rewrite-all-1.0.1.tgz", + "integrity": "sha512-W0DAchC8ynuQH0lYLIu5/5+JGfYlUTRD8GGNtHFXRJX4FzzB9MajtqHBp26zq/ly9sDt5BqrfdT08rv3RbB0LQ==", + "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "connect-history-api-fallback": "^1.6.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/vscode-languageclient/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/vscode-languageserver-protocol": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz", - "integrity": "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==", - "dependencies": { - "vscode-jsonrpc": "8.1.0", - "vscode-languageserver-types": "3.17.3" + "node": ">=12.0.0" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0" } }, - "node_modules/vscode-languageserver-types": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz", - "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==" - }, - "node_modules/vscode-oniguruma": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-2.0.1.tgz", - "integrity": "sha512-poJU8iHIWnC3vgphJnrLZyI3YdqRlR27xzqDmpPXYzA93R4Gk8z7T6oqDzDoHjoikA2aS82crdXFkjELCdJsjQ==" - }, - "node_modules/vscode-textmate": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-9.0.0.tgz", - "integrity": "sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg==" - }, - "node_modules/vscode-ws-jsonrpc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.0.0.tgz", - "integrity": "sha512-22IbVb2K691np9pOubyahNBj1BicsbtlbiaHOJu5/rvyWDqmqPMAqpAfojwGjdBztp8EtO8TAO7lmyY6hnmYAA==", - "dependencies": { - "vscode-jsonrpc": "~8.1.0" - }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", "engines": { - "node": ">=16.11.0", - "npm": ">=8.0.0" + "node": ">=0.10.0" } }, "node_modules/warning": { @@ -11783,22 +10576,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", @@ -12281,13 +11058,6 @@ } }, "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "peer": true - }, "@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -14284,78 +13054,6 @@ "integrity": "sha512-WWULIiucYRBIewHKFA7BssQ2ABLHLVd9lrUo3N3SZgR0u4ZRDDVEUNOy+r+9ruDze8+36dGbN9wsN1IdELtdOw==", "requires": {} }, - "@codingame/monaco-vscode-configuration-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-1.82.6.tgz", - "integrity": "sha512-S6nkqFu2fhPUKy4swoBrCK7SWxzHvOuHDW9jqAdSyghxEn47KJwJefS3OO1U7nkIv9+t9i/LU0r5SLYJq128Xg==", - "requires": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "@codingame/monaco-vscode-editor-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-1.82.6.tgz", - "integrity": "sha512-9PIa4QQRk4Kqtx7Abwm4U7lL6J7ap9678ENb3rV/Z3z+ezDm+VOFmDYYJ3ICKr3da8arbiE63u0jJWzmQyvjDQ==", - "requires": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "@codingame/monaco-vscode-languages-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-1.82.6.tgz", - "integrity": "sha512-Xm6koxTExXp2ZTn91DhfsuAmTUGnHfNI0ZHmwwtnzyZMN2XDl3Eu7wqlQHh2o+xPLeimZXt4NNx0vBxij/c8Og==", - "requires": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "@codingame/monaco-vscode-model-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-1.82.6.tgz", - "integrity": "sha512-dtD87qc5qgTaXZC5DzsOZOMxbTDwcxQxFCYqWO1vwz+UerEwv30gFYUF1o9AMg9yJwMLyjnIhsvhNip2ASv35g==", - "requires": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "@codingame/monaco-vscode-textmate-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-1.82.6.tgz", - "integrity": "sha512-WL6Cs0xkW5i5N7jSOilee7o36aaiIMMS+Ed8OszXMAX1VBQbiNfEsTdFdtC+xGUg+WRggWeOfrC4dMt9Gzk8Ww==", - "requires": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6", - "vscode-oniguruma": "^2.0.0", - "vscode-textmate": "^9.0.0" - } - }, - "@codingame/monaco-vscode-theme-defaults-default-extension": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-1.82.6.tgz", - "integrity": "sha512-3/u0CDitzSbLSJrkj157VjDty0vU5E2OfxPihrxGczJGkrEqL2LY8Op8u6EYpbO0Xuahk9JJ9olrux7tYaUORw==", - "requires": { - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "@codingame/monaco-vscode-theme-service-override": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-1.82.6.tgz", - "integrity": "sha512-5CpKH4vNiE0eIChgVdJ5hniRxOmxAeTpf2nHZZMHJwSisXsAadWkw6O4KjYtmmAIYmt5RunqzkM8OMR3Xj+5fA==", - "requires": { - "monaco-editor": "0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, - "@codingame/monaco-vscode-typescript-basics-default-extension": { - "version": "1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-typescript-basics-default-extension/-/monaco-vscode-typescript-basics-default-extension-1.82.6.tgz", - "integrity": "sha512-f0p4lVxiq7oKBM3lfTBqpXrhOAQZ3WijzHJF3ehbSGFX/4NgOgxYIkoW+O9KVSY/dRwMWrXUQKxghDWcGLu/Xg==", - "requires": { - "vscode": "npm:@codingame/monaco-vscode-api@1.82.6" - } - }, "@csstools/css-parser-algorithms": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz", @@ -14651,78 +13349,6 @@ "dev": true, "optional": true }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "peer": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "peer": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - } - } - }, - "@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", - "dev": true, - "peer": true - }, "@floating-ui/core": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-0.6.2.tgz", @@ -14760,32 +13386,6 @@ "use-isomorphic-layout-effect": "^1.1.1" } }, - "@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "peer": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "peer": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true, - "peer": true - }, "@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -14847,22 +13447,6 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@monaco-editor/loader": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.4.0.tgz", - "integrity": "sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==", - "requires": { - "state-local": "^1.0.6" - } - }, - "@monaco-editor/react": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.6.0.tgz", - "integrity": "sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==", - "requires": { - "@monaco-editor/loader": "^1.4.0" - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -15211,12 +13795,6 @@ "@types/unist": "*" } }, - "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, "@types/katex": { "version": "0.16.0", "resolved": "https://registry.npmmirror.com/@types/katex/-/katex-0.16.0.tgz", @@ -15353,219 +13931,22 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, - "@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", - "dev": true - }, "@types/trusted-types": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", - "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", - "dev": true - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "@types/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmmirror.com/@types/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==", - "dev": true - }, - "@types/vscode": { - "version": "1.82.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.82.0.tgz", - "integrity": "sha512-VSHV+VnpF8DEm8LNrn8OJ8VuUNcBzN3tMvKrNpbhhfuVjFm82+6v44AbDhLvVFgCzn6vs94EJNTp7w8S6+Q1Rw==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", - "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/type-utils": "6.7.5", - "@typescript-eslint/utils": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/parser": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", - "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", - "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5" - } - }, - "@typescript-eslint/type-utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", - "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/utils": "6.7.5", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/types": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", - "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", - "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", - "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", - "semver": "^7.5.4" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", + "dev": true }, - "@typescript-eslint/visitor-keys": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", - "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.7.5", - "eslint-visitor-keys": "^3.4.1" - } + "@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, - "peer": true + "@types/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/@types/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==", + "dev": true }, "@vitejs/plugin-react-swc": { "version": "3.3.1", @@ -15587,17 +13968,9 @@ "integrity": "sha512-0j2gZq8HiZ51z4zNnSkF1iSkqlwRDvdH+son3wHdoz+7IUdMN/5Exd4TxMJ+gq2Of1DiXReYLL9qqh2PdQ4wgA==" }, "acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==" - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peer": true, - "requires": {} + "version": "8.8.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" }, "ajv": { "version": "8.12.0", @@ -15777,7 +14150,8 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "base64-js": { "version": "1.5.1", @@ -16091,18 +14465,6 @@ "node-fetch": "^2.6.11" } }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "peer": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -16305,13 +14667,6 @@ } } }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "peer": true - }, "deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -16369,16 +14724,6 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "peer": true, - "requires": { - "esutils": "^2.0.2" - } - }, "dom-helpers": { "version": "3.4.0", "resolved": "https://registry.npmmirror.com/dom-helpers/-/dom-helpers-3.4.0.tgz", @@ -16508,206 +14853,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, - "eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", - "dev": true, - "peer": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "peer": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "peer": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "peer": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "peer": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "peer": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "peer": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "peer": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "peer": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "peer": true - }, "estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", @@ -16771,13 +14916,6 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "peer": true - }, "fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -17155,12 +15293,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, "hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -17548,13 +15680,6 @@ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "dev": true }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "peer": true - }, "is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -17764,13 +15889,6 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "peer": true - }, "json5": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", @@ -17859,17 +15977,6 @@ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "peer": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, "lie": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", @@ -17927,13 +16034,6 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "peer": true - }, "lodash.mergewith": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", @@ -18606,22 +16706,9 @@ } }, "monaco-editor": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.43.0.tgz", - "integrity": "sha512-cnoqwQi/9fml2Szamv1XbSJieGJ1Dc8tENVMD26Kcfl7xGQWp7OBKMjlwKVGYFJ3/AXJjSOGvcqK7Ry/j9BM1Q==" - }, - "monaco-languageclient": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-6.5.3.tgz", - "integrity": "sha512-5KZhdJj2kzlSvtP7/uTCs0rV4mTrghsCphEQc7YlDKC0+Ipq597j9K6yN9dMB/AFUK1qEOC098F0VEpVTtQGtw==", - "requires": { - "@codingame/monaco-vscode-editor-service-override": "~1.82.5", - "@codingame/monaco-vscode-languages-service-override": "~1.82.5", - "@codingame/monaco-vscode-model-service-override": "~1.82.5", - "monaco-editor": "~0.43.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.82.5 <1.83.0", - "vscode-languageclient": "~8.1.0" - } + "version": "0.38.0", + "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.38.0.tgz", + "integrity": "sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A==" }, "mri": { "version": "1.2.0", @@ -18650,12 +16737,6 @@ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, "node-fetch": { "version": "2.6.11", "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.11.tgz", @@ -18763,21 +16844,6 @@ "wrappy": "1" } }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "peer": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -18845,13 +16911,6 @@ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "peer": true - }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -18978,13 +17037,6 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "peer": true - }, "pretty-bytes": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", @@ -19694,23 +17746,6 @@ "randombytes": "^2.1.0" } }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "peer": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "peer": true - }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -19818,11 +17853,6 @@ "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, - "state-local": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" - }, "string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", @@ -19896,13 +17926,6 @@ "min-indent": "^1.0.1" } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "peer": true - }, "style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", @@ -20290,13 +18313,6 @@ } } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "peer": true - }, "thenify": { "version": "3.3.1", "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", @@ -20359,13 +18375,6 @@ "resolved": "https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz", "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" }, - "ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true, - "requires": {} - }, "ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -20382,23 +18391,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "peer": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "peer": true - }, "typescript": { "version": "5.0.4", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.0.4.tgz", @@ -20689,100 +18681,6 @@ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==" }, - "vscode": { - "version": "npm:@codingame/monaco-vscode-api@1.82.6", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.82.6.tgz", - "integrity": "sha512-Trxow2RIu4i6EvS2wEIl0cktpL4UMv0e1UItUIfyRtZsCECnuE6Auedp6BK2JLzAH96yVgp9elEBlTo7rvnf0Q==", - "requires": { - "monaco-editor": "0.43.0" - } - }, - "vscode-jsonrpc": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz", - "integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==" - }, - "vscode-languageclient": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.1.0.tgz", - "integrity": "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing==", - "requires": { - "minimatch": "^5.1.0", - "semver": "^7.3.7", - "vscode-languageserver-protocol": "3.17.3" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "vscode-languageserver-protocol": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz", - "integrity": "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==", - "requires": { - "vscode-jsonrpc": "8.1.0", - "vscode-languageserver-types": "3.17.3" - } - }, - "vscode-languageserver-types": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz", - "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==" - }, - "vscode-oniguruma": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-2.0.1.tgz", - "integrity": "sha512-poJU8iHIWnC3vgphJnrLZyI3YdqRlR27xzqDmpPXYzA93R4Gk8z7T6oqDzDoHjoikA2aS82crdXFkjELCdJsjQ==" - }, - "vscode-textmate": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-9.0.0.tgz", - "integrity": "sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg==" - }, - "vscode-ws-jsonrpc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.0.0.tgz", - "integrity": "sha512-22IbVb2K691np9pOubyahNBj1BicsbtlbiaHOJu5/rvyWDqmqPMAqpAfojwGjdBztp8EtO8TAO7lmyY6hnmYAA==", - "requires": { - "vscode-jsonrpc": "~8.1.0" - } - }, "warning": { "version": "4.0.3", "resolved": "https://mirrors.tencent.com/npm/warning/-/warning-4.0.3.tgz", @@ -20805,16 +18703,6 @@ "webidl-conversions": "^3.0.0" } }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } - }, "which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", diff --git a/web/package.json b/web/package.json index 277fde0951..d424c5ebc0 100644 --- a/web/package.json +++ b/web/package.json @@ -1,10 +1,9 @@ { "name": "web", "private": true, - "type": "module", "version": "1.0.0-beta.14", "scripts": { - "dev": "node --experimental-import-meta-resolve ./node_modules/vite/bin/vite.js", + "dev": "vite", "build": "tsc && node --max_old_space_size=32768 ./node_modules/vite/bin/vite.js build", "tsc": "tsc", "preview": "vite preview", @@ -16,14 +15,8 @@ "@chakra-ui/anatomy": "^2.1.1", "@chakra-ui/icons": "^2.0.19", "@chakra-ui/react": "^2.6.1", - "@codingame/monaco-vscode-configuration-service-override": "~1.82.3", - "@codingame/monaco-vscode-textmate-service-override": "~1.82.3", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~1.82.3", - "@codingame/monaco-vscode-theme-service-override": "~1.82.3", - "@codingame/monaco-vscode-typescript-basics-default-extension": "~1.82.3", "@emotion/react": "^11.11.0", "@emotion/styled": "^11.11.0", - "@monaco-editor/react": "^4.6.0", "@patternfly/react-log-viewer": "^5.0.0", "@sentry/integrations": "^7.73.0", "@sentry/react": "^7.73.0", @@ -43,8 +36,7 @@ "immer": "^10.0.2", "laf-client-sdk": "1.0.0-beta.14", "lodash": "^4.17.21", - "monaco-editor": "~0.43.0", - "monaco-languageclient": "~6.5.1", + "monaco-editor": "^0.38.0", "pako": "^2.1.0", "qrcode.react": "^3.1.0", "react": "18.2.0", @@ -67,9 +59,6 @@ "simplebar-react": "^3.2.4", "ts-key-enum": "^2.0.12", "uuid": "^9.0.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.82.3 <1.83.0", - "vscode-languageclient": "~8.1.0", - "vscode-ws-jsonrpc": "~3.0.0", "zustand": "^4.3.8" }, "devDependencies": { @@ -82,9 +71,6 @@ "@types/react-syntax-highlighter": "^15.5.6", "@types/react-window": "^1.8.8", "@types/uuid": "^9.0.1", - "@types/vscode": "~1.82.0", - "@typescript-eslint/eslint-plugin": "~6.7.4", - "@typescript-eslint/parser": "~6.7.4", "@vitejs/plugin-react-swc": "^3.3.1", "autoprefixer": "^10.4.14", "click-to-react-component": "^1.0.8", @@ -101,4 +87,4 @@ "*.{ts,tsx,js}": "eslint --fix", "*.{css,scss}": "stylelint --fix" } -} \ No newline at end of file +} diff --git a/web/public/locales/en/translation.json b/web/public/locales/en/translation.json index 959ce3d7c8..a79be9db1b 100644 --- a/web/public/locales/en/translation.json +++ b/web/public/locales/en/translation.json @@ -236,11 +236,6 @@ "FontSize": "Font Size", "FuncListDisplay": "Function List Display", "ListDisplay": "List Display", - "EditorLanguageServer": "Editor Language Server", - "isOpenLanguageServer": "Enable or Close Language server (only effective when the app config is above 0.5C 1G)", - "Editor": "Editor", - "FuncList": "Function List", - "EditorMode": "Editor Mode", "OldLogs": "Old Logs", "MonitorSetting": "Resource Monitor", "DatabaseMonitor": "Database monitor", @@ -719,23 +714,6 @@ "Export": "Export", "logs": "Logs" }, - "KeyCannotBeEmpty": "Key can't be empty", - "ValueCannotBeEmpty": "Value can't be empty", - "AddENV": "Add ENV", - "LSP": { - "InitLanguageServer": "Click to reconnect to language server", - "LanguageServerClosed": "Language Server Disconnected", - "LanguageServerError": "Language Server Error", - "InitializingLanguageServer": "Initializing Language Server", - "StartLanguageServer": "Click on 'Settings' on the left to enable the language server.", - "EnableLanguageServer": "Click on 'Settings' on the left to enable the language server.", - "LanguageServerNotEnable": "Language server not enabled" - }, - "KeyAlreadyExists": "Key already exists", - "SettingPanal": { - "EditorSettings": "Editor Settings", - "FunctionListSettings": "Function list settings" - }, "Deprecated": "Deprecated", "All": "All", "DatabaseMonitor": { diff --git a/web/public/locales/zh-CN/translation.json b/web/public/locales/zh-CN/translation.json index 2a3054bc15..a0b27d0900 100644 --- a/web/public/locales/zh-CN/translation.json +++ b/web/public/locales/zh-CN/translation.json @@ -236,11 +236,6 @@ "FontSize": "字体大小", "FuncListDisplay": "函数列表显示", "ListDisplay": "列表显示", - "EditorLanguageServer": "编辑器语言服务", - "isOpenLanguageServer": "是否开启语言服务(仅在应用配置高于 0.5C 1G 时生效)", - "Editor": "编辑器", - "FuncList": "函数列表", - "EditorMode": "使用编辑器模式", "OldLogs": "旧版日志", "MonitorSetting": "资源监控", "DatabaseMonitor": "数据库监控", @@ -719,23 +714,6 @@ "Export": "导出", "logs": "日志" }, - "KeyCannotBeEmpty": "Key 不能为空", - "ValueCannotBeEmpty": "Value 不能为空", - "AddENV": "新增环境变量", - "LSP": { - "InitLanguageServer": "点击以重新连接语言服务器", - "LanguageServerClosed": "语言服务器断开", - "LanguageServerError": "语言服务器错误", - "InitializingLanguageServer": "正在初始化语言服务", - "StartLanguageServer": "点击左侧”设置”启用语言服务器", - "EnableLanguageServer": "点击左侧”设置”启用语言服务器", - "LanguageServerNotEnable": "未启用语言服务" - }, - "KeyAlreadyExists": "key 已经存在", - "SettingPanal": { - "EditorSettings": "编辑器设置", - "FunctionListSettings": "函数列表设置" - }, "Deprecated": "已弃用", "All": "全部", "DatabaseMonitor": { diff --git a/web/public/locales/zh/translation.json b/web/public/locales/zh/translation.json index b048e1de39..ec8cb36cc6 100644 --- a/web/public/locales/zh/translation.json +++ b/web/public/locales/zh/translation.json @@ -236,11 +236,6 @@ "FontSize": "字体大小", "FuncListDisplay": "函数列表显示", "ListDisplay": "列表显示", - "EditorLanguageServer": "编辑器语言服务", - "isOpenLanguageServer": "是否开启语言服务(仅在应用配置高于 0.5C 1G 时生效)", - "Editor": "编辑器", - "FuncList": "函数列表", - "EditorMode": "使用编辑器模式", "OldLogs": "旧版日志", "MonitorSetting": "资源监控", "DatabaseMonitor": "数据库监控", @@ -719,23 +714,6 @@ "Export": "导出", "logs": "日志" }, - "KeyCannotBeEmpty": "Key 不能为空", - "ValueCannotBeEmpty": "Value 不能为空", - "AddENV": "新增环境变量", - "LSP": { - "InitLanguageServer": "点击以重新连接语言服务器", - "LanguageServerClosed": "语言服务器断开", - "LanguageServerError": "语言服务器错误", - "InitializingLanguageServer": "正在初始化语言服务", - "StartLanguageServer": "点击左侧”设置”启用语言服务器", - "EnableLanguageServer": "点击左侧”设置”启用语言服务器", - "LanguageServerNotEnable": "未启用语言服务" - }, - "KeyAlreadyExists": "key 已经存在", - "SettingPanal": { - "EditorSettings": "编辑器设置", - "FunctionListSettings": "函数列表设置" - }, "Deprecated": "已弃用", "All": "全部", "DatabaseMonitor": { diff --git a/web/src/components/EditableTable/EditableTr/index.tsx b/web/src/components/EditableTable/EditableTr/index.tsx index b779410128..022e17c301 100644 --- a/web/src/components/EditableTable/EditableTr/index.tsx +++ b/web/src/components/EditableTable/EditableTr/index.tsx @@ -124,7 +124,7 @@ const EditableTr = function (props: { {column.map((item: TColumnItem) => { const { width, key, editable = true, validate, editComponent } = item; return ( - + {editComponent ? ( editComponent({ @@ -142,8 +142,6 @@ const EditableTr = function (props: { onChange={(e: any) => handleChange(e, key, validate)} disabled={!editable && !isCreate} placeholder={`${t("InputTip").toString()} ${key}`} - className="!bg-lafWhite-500 !pl-2" - style={{ fontFamily: "Inter" }} /> )} {invalidData && invalidData[key].errorInfo} @@ -151,30 +149,32 @@ const EditableTr = function (props: { ); })} - - { - let flag = true; - for (let { validate, key } of column) { - flag = validate && !handleValidate(key, formData[key], validate) ? false : flag; - if (!flag) { - break; + + <> + { + let flag = true; + for (let { validate, key } of column) { + flag = validate && !handleValidate(key, formData[key], validate) ? false : flag; + if (!flag) { + break; + } } - } - if (flag) { - onSave(formData); - } - }} - /> - { - onCancel(formData[configuration.key]); - }} - /> + if (flag) { + onSave(formData); + } + }} + /> + { + onCancel(formData[configuration.key]); + }} + /> + ); diff --git a/web/src/components/EditableTable/NormalTr/index.tsx b/web/src/components/EditableTable/NormalTr/index.tsx index 3e142989c0..774d8be8c6 100644 --- a/web/src/components/EditableTable/NormalTr/index.tsx +++ b/web/src/components/EditableTable/NormalTr/index.tsx @@ -1,10 +1,11 @@ +import { EditIcon } from "@chakra-ui/icons"; import { Td } from "@chakra-ui/react"; -import { useColorMode } from "@chakra-ui/react"; import { t } from "i18next"; -import { EditIconLine, RecycleDeleteIcon } from "@/components/CommonIcon"; +import { RecycleDeleteIcon } from "@/components/CommonIcon"; import IconWrap from "@/components/IconWrap"; +import ConfirmButton from "../../ConfirmButton"; import { TColumnItem, TConfiguration } from "../EditableTr"; import styles from "../index.module.scss"; @@ -17,7 +18,6 @@ const NormalTr = function (props: { configuration: TConfiguration; }) { const { data, column, configuration, onEdit, onDelete } = props; - const darkMode = useColorMode().colorMode === "dark"; return ( <> {column.map((item: TColumnItem) => { @@ -27,28 +27,34 @@ const NormalTr = function (props: { ); })} - + {configuration?.operationButtonsRender ? configuration.operationButtonsRender(data) : null} {!configuration?.hiddenEditButton ? ( onEdit(data[configuration.key])} > - + onEdit(data[configuration.key])} /> ) : null} - onDelete(data[configuration.key])} + headerText={ configuration?.deleteButtonText ? configuration.deleteButtonText : String(t("Delete")) } - onClick={() => onDelete(data[configuration.key])} + bodyText={t("DeleteConfirm")} > - - + + + + ); diff --git a/web/src/components/EditableTable/index.module.scss b/web/src/components/EditableTable/index.module.scss index 9ffd1c50a3..b73a0186be 100644 --- a/web/src/components/EditableTable/index.module.scss +++ b/web/src/components/EditableTable/index.module.scss @@ -2,5 +2,4 @@ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - font-family: Inter; } diff --git a/web/src/components/EditableTable/index.tsx b/web/src/components/EditableTable/index.tsx index 1f75a9336a..258328071a 100644 --- a/web/src/components/EditableTable/index.tsx +++ b/web/src/components/EditableTable/index.tsx @@ -22,9 +22,9 @@ const EditableTable = function (props: { column: TColumnItem[]; tableData: any[] | undefined; configuration: TConfiguration; - onEdit: (data: any) => any; - onDelete: (data: any) => any; - onCreate: (data: any) => any; + onEdit: (data: any) => Promise; + onDelete: (data: any) => Promise; + onCreate: (data: any) => Promise; }) { const { column, tableData, configuration, onEdit, onCreate, onDelete } = props; const [columnList, setColumnList] = useState(column); @@ -86,15 +86,10 @@ const EditableTable = function (props: { "border-frostyNightfall-200": !darkMode, })} > - + {item.isEdit ? ( @@ -130,7 +124,7 @@ const EditableTable = function (props: { onSave={(newData: any) => { const data = { ...newData }; delete data.isEdit; - onEdit({ newData: data, item }); + onEdit(data); }} onCancel={(key: string) => handleSwitchEdit(key, false)} /> @@ -181,10 +175,8 @@ const EditableTable = function (props: { borderBottomLeftRadius: "10px", color: "#7B838B", fontWeight: 400, - fontSize: "12px", - width: "100%", - height: "48px", }} + py="6" onClick={handleAdd} variant="outline" > diff --git a/web/src/components/Editor/CodeViewer.tsx b/web/src/components/Editor/CodeViewer.tsx new file mode 100644 index 0000000000..4f1f2b1892 --- /dev/null +++ b/web/src/components/Editor/CodeViewer.tsx @@ -0,0 +1,255 @@ +import SyntaxHighlighter from "react-syntax-highlighter"; + +import { COLOR_MODE } from "@/constants"; + +type CodeViewerProps = { + code: string; + language: string; + showNumber?: boolean; + colorMode?: string; +}; + +const CodeViewerStyle: any = { + hljs: { + display: "block", + overflowX: "auto", + padding: "0.5em", + color: "#000", + background: "#f8f8ff", + }, + "hljs-comment": { + color: "#408080", + fontStyle: "italic", + }, + "hljs-quote": { + color: "#408080", + fontStyle: "italic", + }, + "hljs-keyword": { + color: "#954121", + }, + "hljs-selector-tag": { + color: "#954121", + }, + "hljs-literal": { + color: "#954121", + }, + "hljs-subst": { + color: "#954121", + }, + "hljs-number": { + color: "#b0caa4", + }, + "hljs-string": { + color: "#0451a5", + }, + + "hljs-selector-id": { + color: "#19469d", + }, + "hljs-selector-class": { + color: "#19469d", + }, + "hljs-section": { + color: "#19469d", + }, + "hljs-type": { + color: "#19469d", + }, + "hljs-params": { + color: "#00f", + }, + "hljs-title": { + color: "#458", + fontWeight: "bold", + }, + "hljs-tag": { + color: "#000080", + fontWeight: "normal", + }, + "hljs-name": { + color: "#000080", + fontWeight: "normal", + }, + "hljs-attr": { + color: "#a31515", + fontWeight: "normal", + }, + "hljs-attribute": { + color: "#000080", + fontWeight: "normal", + }, + "hljs-variable": { + color: "#008080", + }, + "hljs-template-variable": { + color: "#008080", + }, + "hljs-regexp": { + color: "#b68", + }, + "hljs-link": { + color: "#b68", + }, + "hljs-symbol": { + color: "#990073", + }, + "hljs-bullet": { + color: "#990073", + }, + "hljs-built_in": { + color: "#0086b3", + }, + "hljs-builtin-name": { + color: "#0086b3", + }, + "hljs-meta": { + color: "#999", + fontWeight: "bold", + }, + "hljs-deletion": { + background: "#fdd", + }, + "hljs-addition": { + background: "#dfd", + }, + "hljs-emphasis": { + fontStyle: "italic", + }, + "hljs-strong": { + fontWeight: "bold", + }, +}; + +const JSONViewerDarkStyle: any = { + hljs: { + display: "block", + overflowX: "auto", + padding: "0.5em", + color: "#000", + background: "#f8f8ff", + }, + "hljs-comment": { + color: "#408080", + fontStyle: "italic", + }, + "hljs-quote": { + color: "#408080", + fontStyle: "italic", + }, + "hljs-keyword": { + color: "#954121", + }, + "hljs-selector-tag": { + color: "#954121", + }, + "hljs-literal": { + color: "#954121", + }, + "hljs-subst": { + color: "#954121", + }, + "hljs-number": { + color: "#b0caa4", + }, + "hljs-string": { + color: "#ce9178", + }, + + "hljs-selector-id": { + color: "#19469d", + }, + "hljs-selector-class": { + color: "#19469d", + }, + "hljs-section": { + color: "#19469d", + }, + "hljs-type": { + color: "#19469d", + }, + "hljs-params": { + color: "#00f", + }, + "hljs-title": { + color: "#458", + fontWeight: "bold", + }, + "hljs-tag": { + color: "#000080", + fontWeight: "normal", + }, + "hljs-name": { + color: "#000080", + fontWeight: "normal", + }, + "hljs-attr": { + color: "#9bdcfe", + fontWeight: "normal", + }, + "hljs-attribute": { + color: "#000080", + fontWeight: "normal", + }, + "hljs-variable": { + color: "#008080", + }, + "hljs-template-variable": { + color: "#008080", + }, + "hljs-regexp": { + color: "#b68", + }, + "hljs-link": { + color: "#b68", + }, + "hljs-symbol": { + color: "#990073", + }, + "hljs-bullet": { + color: "#990073", + }, + "hljs-built_in": { + color: "#0086b3", + }, + "hljs-builtin-name": { + color: "#0086b3", + }, + "hljs-meta": { + color: "#999", + fontWeight: "bold", + }, + "hljs-deletion": { + background: "#fdd", + }, + "hljs-addition": { + background: "#dfd", + }, + "hljs-emphasis": { + fontStyle: "italic", + }, + "hljs-strong": { + fontWeight: "bold", + }, +}; +export default function CodeViewer(props: CodeViewerProps) { + const { code, language, colorMode = COLOR_MODE.light } = props; + const lightTheme = { background: "#fdfdfe" }; + const darkTheme = { + background: "#202631", + color: "#f0f0f0", + }; + + return ( +
+ + {code} + +
+ ); +} diff --git a/web/src/components/Editor/CommonDiffEditor.tsx b/web/src/components/Editor/CommonDiffEditor.tsx index 1a8cea14c5..29594bd843 100644 --- a/web/src/components/Editor/CommonDiffEditor.tsx +++ b/web/src/components/Editor/CommonDiffEditor.tsx @@ -4,6 +4,8 @@ import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; import { COLOR_MODE } from "@/constants"; +import "./userWorker"; + function CommonDiffEditor(props: { original: string; modified: string }) { const { original, modified } = props; diff --git a/web/src/components/Editor/ENVCodeEditor.tsx b/web/src/components/Editor/ENVCodeEditor.tsx deleted file mode 100644 index 9995438a63..0000000000 --- a/web/src/components/Editor/ENVCodeEditor.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import Editor from "@monaco-editor/react"; -import { LineNumbersType } from "vscode/vscode/vs/editor/common/config/editorOptions"; - -import { COLOR_MODE } from "@/constants"; - -const languageId = "dotenv"; - -function ENVCodeEditor(props: { - value: string; - height?: string; - colorMode?: string; - onChange?: (value: string | undefined) => void; -}) { - const { value, onChange, height = "100%", colorMode = COLOR_MODE.light } = props; - - const options = { - lineNumbers: "off" as LineNumbersType, - guides: { - indentation: false, - }, - automaticLayout: true, - minimap: { - enabled: false, - }, - scrollbar: { - verticalScrollbarSize: 4, - horizontalScrollbarSize: 8, - alwaysConsumeMouseWheel: false, - }, - lineNumbersMinChars: 0, - fontSize: 13, - scrollBeyondLastLine: false, - folding: false, - overviewRulerBorder: false, - tabSize: 2, - }; - - return ( - { - monaco.languages.register({ - id: languageId, - }); - - monaco.languages.setMonarchTokensProvider(languageId, { - tokenizer: { - root: [ - [/^\w+(?==)/, "key"], - [/(=)([^=]*)$/, ["operator", "value"]], - [/^#.*/, "comment"], - // new lines - [/.*/, "value"], - ], - }, - }); - - monaco.editor.defineTheme("dotenvTheme", { - base: "vs", - inherit: true, - colors: { - "editor.background": "#ffffff00", - "editorLineNumber.foreground": "#aaa", - "editorOverviewRuler.border": "#ffffff00", - "editor.lineHighlightBackground": "#F7F8FA", - "scrollbarSlider.background": "#E8EAEC", - "editorIndentGuide.activeBackground": "#ddd", - "editorIndentGuide.background": "#eee", - }, - rules: [ - { token: "key", foreground: "953800" }, - { token: "value", foreground: "2E4C7E" }, - { token: "operator", foreground: "CF212E" }, - { token: "comment", foreground: "0A3069" }, - ], - }); - - monaco?.editor.defineTheme("dotenvDarkTheme", { - base: "vs-dark", - inherit: true, - rules: [], - colors: { - "editor.foreground": "#ffffff", - "editor.background": "#202631", - }, - }); - }} - /> - ); -} - -export default ENVCodeEditor; diff --git a/web/src/components/Editor/ENVEditor.tsx b/web/src/components/Editor/ENVEditor.tsx index e69045fd17..afa312df6c 100644 --- a/web/src/components/Editor/ENVEditor.tsx +++ b/web/src/components/Editor/ENVEditor.tsx @@ -1,110 +1,134 @@ -import { useState } from "react"; -import { useTranslation } from "react-i18next"; -import { Switch } from "@chakra-ui/react"; +import { useEffect, useRef } from "react"; +import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; -import EditableTable from "../EditableTable"; +import { COLOR_MODE } from "@/constants"; -import ENVCodeEditor from "./ENVCodeEditor"; +import "./userWorker"; -import useGlobalStore from "@/pages/globalStore"; +const languageId = "dotenv"; -export default function ENVEditor(props: { - env: Array<{ name: string; value: string }>; - setEnv: any; - setPureEnv?: any; - showSwitch?: boolean; +monaco.languages.register({ + id: languageId, +}); + +monaco.languages.setMonarchTokensProvider(languageId, { + tokenizer: { + root: [ + [/^\w+(?==)/, "key"], + [/(=)([^=]*)$/, ["operator", "value"]], + [/^#.*/, "comment"], + // new lines + [/.*/, "value"], + ], + }, +}); + +monaco.editor.defineTheme("dotenvTheme", { + base: "vs", + inherit: true, + colors: { + "editor.background": "#ffffff00", + "editorLineNumber.foreground": "#aaa", + "editorOverviewRuler.border": "#ffffff00", + "editor.lineHighlightBackground": "#F7F8FA", + "scrollbarSlider.background": "#E8EAEC", + "editorIndentGuide.activeBackground": "#ddd", + "editorIndentGuide.background": "#eee", + }, + rules: [ + { token: "key", foreground: "953800" }, + { token: "value", foreground: "2E4C7E" }, + { token: "operator", foreground: "CF212E" }, + { token: "comment", foreground: "0A3069" }, + ], +}); + +monaco?.editor.defineTheme("dotenvDarkTheme", { + base: "vs-dark", + inherit: true, + rules: [], + colors: { + "editor.foreground": "#ffffff", + "editor.background": "#202631", + }, +}); + +function ENVEditor(props: { + value: string; + height?: string; + style?: any; + colorMode?: string; + onChange?: (value: string | undefined) => void; }) { - const { t } = useTranslation(); - const { env, setEnv, setPureEnv, showSwitch = true } = props; - const globalStore = useGlobalStore(); - const [isEditorMode, setIsEditorMode] = useState(false); + const { value, style = {}, onChange, height = "95%", colorMode = COLOR_MODE.light } = props; + + const editorRef = useRef(); + const subscriptionRef = useRef(undefined); + const monacoEl = useRef(null); + + useEffect(() => { + if (monacoEl && !editorRef.current) { + editorRef.current = monaco.editor.create(monacoEl.current!, { + language: languageId, + theme: colorMode === COLOR_MODE.dark ? "dotenvDarkTheme" : "dotenvTheme", + lineNumbers: "off", + guides: { + indentation: false, + }, + automaticLayout: true, + minimap: { + enabled: false, + }, + scrollbar: { + verticalScrollbarSize: 4, + horizontalScrollbarSize: 8, + alwaysConsumeMouseWheel: false, + }, + lineNumbersMinChars: 0, + fontSize: 13, + lineHeight: 22, + scrollBeyondLastLine: false, + folding: false, + overviewRulerBorder: false, + tabSize: 2, // tab 缩进长度 + }); + } + + return () => {}; + }, [colorMode, value]); + + // onChange + useEffect(() => { + subscriptionRef.current?.dispose(); + + if (onChange) { + subscriptionRef.current = editorRef.current?.onDidChangeModelContent((event) => { + onChange(editorRef.current?.getValue()); + }); + } + }, [onChange]); + + useEffect(() => { + if (monacoEl && editorRef.current && value !== editorRef.current?.getValue()) { + editorRef.current?.getModel()?.setValue(value); + editorRef.current?.layout(); + } + }, [value]); + + // useEffect(() => { + // if (monacoEl && editorRef.current) { + // editorRef.current.updateOptions({ + // theme: colorMode === COLOR_MODE.dark ? "JSONEditorThemeDark" : "JSONEditorTheme", + // }); + // } + // }, [colorMode]); return ( -
- {showSwitch && isEditorMode ? ( -
- { - return `${item.name}=${item.value}`; - }) - .join("\n")} - onChange={(value) => { - setPureEnv(value); - }} - /> -
- ) : ( - { - return { - isValidate: data !== "", - errorInfo: t("KeyCannotBeEmpty").toString(), - }; - }, - ], - }, - { - name: "Value", - key: "value", - width: "290px", - validate: [ - (data: any) => { - return { - isValidate: data !== "", - errorInfo: t("ValueCannotBeEmpty").toString(), - }; - }, - ], - }, - ]} - configuration={{ - key: "name", - tableHeight: "330px", - hiddenEditButton: false, - addButtonText: String(t("AddENV")), - saveButtonText: String(t("Confirm")), - }} - tableData={env} - onEdit={(data) => { - setEnv( - env.map((item) => { - if (item.name === data.item.name) { - return data.newData; - } - return item; - }), - ); - }} - onDelete={(data) => { - setEnv(env.filter((item) => item.name !== data)); - }} - onCreate={(data) => { - if (env.find((item) => item.name === data.name)) { - globalStore.showError(t("KeyAlreadyExists").toString()); - return; - } - setEnv([...env, data]); - }} - /> - )} - {showSwitch && ( -
- setIsEditorMode((prev) => !prev)} - /> - {t("SettingPanel.EditorMode")} -
- )} -
+
); } + +export default ENVEditor; diff --git a/web/src/components/Editor/FunctionEditor.tsx b/web/src/components/Editor/FunctionEditor.tsx index 5bec45675c..b795e82b1f 100644 --- a/web/src/components/Editor/FunctionEditor.tsx +++ b/web/src/components/Editor/FunctionEditor.tsx @@ -1,61 +1,143 @@ -import { useEffect, useMemo, useRef, useState } from "react"; +import { CSSProperties, useEffect, useRef } from "react"; +import { debounce } from "lodash"; import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; -import { - RegisteredFileSystemProvider, - RegisteredMemoryFile, - registerFileSystemOverlay, -} from "vscode/service-override/files"; -import { APP_STATUS, COLOR_MODE, Pages, RUNTIMES_PATH } from "@/constants"; +import { COLOR_MODE, Pages } from "@/constants"; -import "./useWorker"; +import "./userWorker"; -import { createUrl, createWebSocketAndStartClient, performInit } from "./LanguageClient"; +import { AutoImportTypings } from "./typesResolve"; -import { TFunction } from "@/apis/typing"; -import useFunctionCache from "@/hooks/useFunctionCache"; import useHotKey, { DEFAULT_SHORTCUTS } from "@/hooks/useHotKey"; import useFunctionStore from "@/pages/app/functions/store"; import useGlobalStore from "@/pages/globalStore"; -export const fileSystemProvider = new RegisteredFileSystemProvider(false); -registerFileSystemOverlay(1, fileSystemProvider); -const updateModel = (path: string, editorRef: any) => { - const newModel = monaco.editor.getModel(monaco.Uri.file(path)); +const autoImportTypings = new AutoImportTypings(); +const parseImports = debounce(autoImportTypings.parse, 1500).bind(autoImportTypings); + +monaco.languages.typescript.typescriptDefaults.setCompilerOptions({ + target: monaco.languages.typescript.ScriptTarget.ESNext, + allowNonTsExtensions: true, + moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs, + module: monaco.languages.typescript.ModuleKind.CommonJS, + /** + * This option is required to enable the synthetic default imports. + * Support for `import dayjs from 'dayjs'` instead of `import * as dayjs from 'dayjs'`. + * This only affects the editor, not the actual compilation. + */ + allowSyntheticDefaultImports: true, + noEmit: true, + allowJs: false, + sourceMap: true, + noImplicitAny: false, +}); + +monaco?.editor.defineTheme("lafEditorTheme", { + base: "vs", + inherit: true, + rules: [ + { + foreground: "#008189", + token: "keyword", + }, + ], + colors: { + "editorLineNumber.foreground": "#aaa", + "editorOverviewRuler.border": "#fff", + "editor.lineHighlightBackground": "#F7F8FA", + "scrollbarSlider.background": "#E8EAEC", + "editorIndentGuide.activeBackground": "#fff", + "editorIndentGuide.background": "#eee", + }, +}); + +monaco?.editor.defineTheme("lafEditorThemeDark", { + base: "vs-dark", + inherit: true, + rules: [ + { + foreground: "65737e", + token: "punctuation.definition.comment", + }, + ], + colors: { + // https://github.com/microsoft/monaco-editor/discussions/3838 + "editor.foreground": "#ffffff", + "editor.background": "#202631", + "editorIndentGuide.activeBackground": "#fff", + "editorIndentGuide.background": "#eee", + "editor.selectionBackground": "#101621", + "menu.selectionBackground": "#101621", + "dropdown.background": "#1a202c", + "dropdown.foreground": "#f0f0f0", + "dropdown.border": "#fff", + "quickInputList.focusBackground": "#1a202c", + "editorWidget.background": "#1a202c", + "editorWidget.foreground": "#f0f0f0", + "editorWidget.border": "#1a202c", + "input.background": "#1a202c", + "list.hoverBackground": "#2a303c", + }, +}); + +const updateModel = (path: string, value: string, editorRef: any) => { + const newModel = + monaco.editor.getModel(monaco.Uri.parse(path)) || + monaco.editor.createModel(value, "typescript", monaco.Uri.parse(path)); + + if (editorRef.current?.getModel() !== newModel) { + editorRef.current?.setModel(newModel); + autoImportTypings.parse(editorRef.current?.getValue() || ""); + } +}; + +const updateFetchModel = (path: string, value: string, editorRef: any) => { + const newModel = + monaco.editor.getModel(monaco.Uri.parse(path)) || + monaco.editor.createModel(value, "typescript", monaco.Uri.parse(path)); + + newModel.setValue(value); if (editorRef.current?.getModel() !== newModel) { editorRef.current?.setModel(newModel); + autoImportTypings.parse(editorRef.current?.getValue() || ""); } }; function FunctionEditor(props: { + value: string; className?: string; - onChange?: (code: string | undefined, pos: any) => void; + style?: CSSProperties; + onChange?: (value: string | undefined) => void; path: string; + height?: string; colorMode?: string; + readOnly?: boolean; fontSize?: number; }) { - const { onChange, path, className, colorMode = COLOR_MODE.light, fontSize = 14 } = props; + const { + value, + onChange, + path, + height = "100%", + className, + style = {}, + colorMode = COLOR_MODE.light, + readOnly = false, + fontSize = 14, + } = props; const editorRef = useRef(); const subscriptionRef = useRef(undefined); const monacoEl = useRef(null); + const globalStore = useGlobalStore((state) => state); - const { allFunctionList, setLSPStatus, LSPStatus } = useFunctionStore((state) => state); - const functionCache = useFunctionCache(); - const [functionList, setFunctionList] = useState(allFunctionList); - const baseUrl = globalStore.currentApp.host; - const url = useMemo(() => { - try { - return createUrl(baseUrl, "/_/lsp"); - } catch { - return ""; - } - }, [baseUrl]); + const { isFetchButtonClicked, setIsFetchButtonClicked } = useFunctionStore((state) => state); useHotKey( DEFAULT_SHORTCUTS.send_request, () => { + // format editorRef.current?.trigger("keyboard", "editor.action.formatDocument", {}); }, { @@ -64,162 +146,68 @@ function FunctionEditor(props: { ); useEffect(() => { - const startLSP = () => { - const lspWebSocket = createWebSocketAndStartClient(url, globalStore.currentApp.develop_token); - setLSPStatus("initializing"); - - const abortController = new AbortController(); - - lspWebSocket.addEventListener( - "message", - (event) => { - const message = JSON.parse(event.data); - if (message.method === "textDocument/publishDiagnostics") { - setLSPStatus("ready"); - return; - } - }, - abortController, - ); - - lspWebSocket.addEventListener( - "close", - () => { - setLSPStatus("closed"); + if (monacoEl && !editorRef.current) { + editorRef.current = monaco.editor.create(monacoEl.current!, { + minimap: { + enabled: false, }, - abortController, - ); - - lspWebSocket.addEventListener( - "error", - () => { - setLSPStatus("error"); - lspWebSocket?.close(); + readOnly: readOnly, + language: "typescript", + automaticLayout: true, + scrollbar: { + verticalScrollbarSize: 4, + horizontalScrollbarSize: 8, }, - abortController, - ); - - window.onbeforeunload = () => { - // On page reload/exit, close web socket connection - lspWebSocket.close(); - setLSPStatus("closed"); - }; - - return () => { - // On component unmount, close web socket connection - abortController.abort(); - lspWebSocket.close(); - setLSPStatus("closed"); - }; - }; - if (globalStore.currentApp.state === APP_STATUS.Running && url) { - return startLSP(); - } - }, [globalStore.currentApp.develop_token, globalStore.currentApp.state, url]); - - useEffect(() => { - const listener = (event: any) => { - if (event?.reason?.message?.includes("Unable to resolve nonexistent file")) { - event.preventDefault(); - } - }; + formatOnPaste: true, + overviewRulerLanes: 0, + lineNumbersMinChars: 4, + fontSize: fontSize, + theme: colorMode === COLOR_MODE.dark ? "lafEditorThemeDark" : "lafEditorTheme", + scrollBeyondLastLine: false, + }); - window.addEventListener("unhandledrejection", listener); - return () => { - window.removeEventListener("unhandledrejection", listener); - }; - }, [LSPStatus]); + updateModel(path, value, editorRef); - useEffect(() => { - if (monacoEl && !editorRef.current) { - performInit(true) - .catch((e) => { - if (e.message?.includes("already initialized")) { - return; - } - throw e; - }) - .then(() => { - editorRef.current = monaco.editor.create(monacoEl.current!, { - minimap: { - enabled: false, - }, - language: "typescript", - automaticLayout: true, - scrollbar: { - verticalScrollbarSize: 4, - horizontalScrollbarSize: 8, - }, - formatOnPaste: true, - overviewRulerLanes: 0, - lineNumbersMinChars: 4, - fontSize: fontSize, - theme: colorMode === COLOR_MODE.dark ? "vs-dark" : "vs", - fontFamily: "Fira Code", - fontWeight: "450", - scrollBeyondLastLine: false, - }); - }); + setTimeout(() => { + autoImportTypings.loadDefaults(); + }, 10); } - allFunctionList.forEach((item: any) => { - const uri = monaco.Uri.file(`${RUNTIMES_PATH}/${item.name}.ts`); - - if (functionList.includes(item)) { - if (!monaco.editor.getModel(uri)) { - fileSystemProvider.registerFile(new RegisteredMemoryFile(uri, item.source.code)); - monaco.editor.createModel( - functionCache.getCache(item._id, item.source?.code), - "typescript", - uri, - ); - } - } - }); - - functionList.forEach((item: TFunction) => { - const uri = monaco.Uri.file(`${RUNTIMES_PATH}/${item.name}.ts`); + return () => {}; + }, [colorMode, path, readOnly, value, fontSize]); - if (!allFunctionList.includes(item)) { - monaco.editor.getModel(uri)?.dispose(); + useEffect(() => { + if (monacoEl && editorRef.current) { + if (isFetchButtonClicked) { + updateFetchModel(path, value, editorRef); + setIsFetchButtonClicked(); + } else { + updateModel(path, value, editorRef); } - }); + } + }, [path, value, isFetchButtonClicked, setIsFetchButtonClicked]); - setFunctionList(allFunctionList); - updateModel(path, editorRef); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [allFunctionList, functionList, path]); + useEffect(() => { + if (monacoEl && editorRef.current) { + editorRef.current.updateOptions({ + fontSize: fontSize, + theme: colorMode === COLOR_MODE.dark ? "lafEditorThemeDark" : "lafEditorTheme", + }); + } + }, [colorMode, fontSize]); // onChange useEffect(() => { subscriptionRef.current?.dispose(); if (onChange) { subscriptionRef.current = editorRef.current?.onDidChangeModelContent((event) => { - onChange(editorRef.current?.getValue(), editorRef.current?.getPosition()); + onChange(editorRef.current?.getValue()); + parseImports(editorRef.current?.getValue() || ""); }); } }, [onChange]); - useEffect(() => { - updateModel(path, editorRef); - const pos = JSON.parse(functionCache.getPositionCache(path) || "{}"); - if (pos.lineNumber && pos.column) { - editorRef.current?.setPosition(pos); - editorRef.current?.revealPositionInCenter(pos); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [path]); - - useEffect(() => { - if (monacoEl && editorRef.current) { - editorRef.current.updateOptions({ - fontSize: fontSize, - theme: colorMode === COLOR_MODE.dark ? "vs-dark" : "vs", - }); - } - }, [colorMode, fontSize]); - - return
; + return
; } export default FunctionEditor; diff --git a/web/src/components/Editor/JSONEditor.tsx b/web/src/components/Editor/JSONEditor.tsx index 815aca85ea..a97f6fcaa2 100644 --- a/web/src/components/Editor/JSONEditor.tsx +++ b/web/src/components/Editor/JSONEditor.tsx @@ -1,8 +1,35 @@ -import Editor from "@monaco-editor/react"; -import { LineNumbersType } from "vscode/vscode/vs/editor/common/config/editorOptions"; +import { useEffect, useRef } from "react"; +import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; import { COLOR_MODE } from "@/constants"; +import "./userWorker"; + +monaco?.editor.defineTheme("JSONEditorTheme", { + base: "vs", + inherit: true, + rules: [], + colors: { + "editor.background": "#ffffff00", + "editorLineNumber.foreground": "#aaa", + "editorOverviewRuler.border": "#ffffff00", + "editor.lineHighlightBackground": "#F7F8FA", + "scrollbarSlider.background": "#E8EAEC", + "editorIndentGuide.activeBackground": "#ddd", + "editorIndentGuide.background": "#eee", + }, +}); + +monaco?.editor.defineTheme("JSONEditorThemeDark", { + base: "vs-dark", + inherit: true, + rules: [], + colors: { + "editor.foreground": "#ffffff", + "editor.background": "#202631", + }, +}); + function JSONEditor(props: { value: string; height?: string; @@ -11,64 +38,66 @@ function JSONEditor(props: { }) { const { value, onChange, height = "90%", colorMode = COLOR_MODE.light } = props; - const options = { - lineNumbers: "off" as LineNumbersType, - guides: { - indentation: false, - }, - automaticLayout: true, - minimap: { - enabled: false, - }, - scrollbar: { - verticalScrollbarSize: 4, - horizontalScrollbarSize: 8, - alwaysConsumeMouseWheel: false, - }, - lineNumbersMinChars: 0, - fontSize: 12, - scrollBeyondLastLine: false, - folding: false, - overviewRulerBorder: false, - tabSize: 2, - }; + const editorRef = useRef(); + const subscriptionRef = useRef(undefined); + const monacoEl = useRef(null); + + useEffect(() => { + if (monacoEl && !editorRef.current) { + editorRef.current = monaco.editor.create(monacoEl.current!, { + lineNumbers: "off", + guides: { + indentation: false, + }, + automaticLayout: true, + minimap: { + enabled: false, + }, + scrollbar: { + verticalScrollbarSize: 4, + horizontalScrollbarSize: 8, + alwaysConsumeMouseWheel: false, + }, + lineNumbersMinChars: 0, + fontSize: 12, + scrollBeyondLastLine: false, + folding: false, + overviewRulerBorder: false, + theme: colorMode === COLOR_MODE.dark ? "JSONEditorThemeDark" : "JSONEditorTheme", + tabSize: 2, // tab 缩进长度 + model: monaco.editor.createModel(value, "json"), + }); + } + + return () => {}; + }, [colorMode, value]); + + // onChange + useEffect(() => { + subscriptionRef.current?.dispose(); + + if (onChange) { + subscriptionRef.current = editorRef.current?.onDidChangeModelContent((event) => { + onChange(editorRef.current?.getValue()); + }); + } + }, [onChange]); + + useEffect(() => { + if (monacoEl && editorRef.current && value !== editorRef.current?.getValue()) { + editorRef.current?.getModel()?.setValue(value); + } + }, [value]); - return ( - { - monaco?.editor.defineTheme("JSONEditorTheme", { - base: "vs", - inherit: true, - rules: [], - colors: { - "editor.background": "#ffffff00", - "editorLineNumber.foreground": "#aaa", - "editorOverviewRuler.border": "#ffffff00", - "editor.lineHighlightBackground": "#F7F8FA", - "scrollbarSlider.background": "#E8EAEC", - "editorIndentGuide.activeBackground": "#ddd", - "editorIndentGuide.background": "#eee", - }, - }); + useEffect(() => { + if (monacoEl && editorRef.current) { + editorRef.current.updateOptions({ + theme: colorMode === COLOR_MODE.dark ? "JSONEditorThemeDark" : "JSONEditorTheme", + }); + } + }, [colorMode]); - monaco?.editor.defineTheme("JSONEditorThemeDark", { - base: "vs-dark", - inherit: true, - rules: [], - colors: { - "editor.foreground": "#ffffff", - "editor.background": "#202631", - }, - }); - }} - /> - ); + return
; } export default JSONEditor; diff --git a/web/src/components/Editor/LanguageClient.ts b/web/src/components/Editor/LanguageClient.ts deleted file mode 100644 index 35729d7995..0000000000 --- a/web/src/components/Editor/LanguageClient.ts +++ /dev/null @@ -1,83 +0,0 @@ -import getConfigurationServiceOverride from "@codingame/monaco-vscode-configuration-service-override"; -import getTextmateServiceOverride from "@codingame/monaco-vscode-textmate-service-override"; -import getThemeServiceOverride from "@codingame/monaco-vscode-theme-service-override"; -import { languages } from "monaco-editor"; -import { initServices, MonacoLanguageClient } from "monaco-languageclient"; -import { Uri } from "vscode"; -import { CloseAction, ErrorAction, MessageTransports } from "vscode-languageclient"; -import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from "vscode-ws-jsonrpc"; - -import { RUNTIMES_PATH } from "@/constants"; - -import "@codingame/monaco-vscode-typescript-basics-default-extension"; -import "@codingame/monaco-vscode-theme-defaults-default-extension"; -import "./TextModel"; - -export const createLanguageClient = (transports: MessageTransports): MonacoLanguageClient => { - return new MonacoLanguageClient({ - name: "Laf Language Client", - clientOptions: { - documentSelector: ["typescript"], - errorHandler: { - error: () => ({ action: ErrorAction.Continue }), - closed: () => ({ action: CloseAction.DoNotRestart }), - }, - workspaceFolder: { - uri: Uri.file(RUNTIMES_PATH), - name: "Laf Workspace", - index: 0, - }, - }, - connectionProvider: { - get: () => { - return Promise.resolve(transports); - }, - }, - }); -}; - -export const createUrl = ( - baseUrl: string, - path: string, - secure: boolean = window.location.protocol === "https:", -): string => { - const protocol = secure ? "wss" : "ws"; - const url = new URL(`${protocol}://${baseUrl}${path}`); - return url.toString(); -}; - -export const createWebSocketAndStartClient = (url: string, token: string) => { - const webSocket = new WebSocket(url, [token]); - webSocket.onopen = () => { - webSocket.send(token); - const socket = toSocket(webSocket); - const reader = new WebSocketMessageReader(socket); - const writer = new WebSocketMessageWriter(socket); - const languageClient = createLanguageClient({ - reader, - writer, - }); - languageClient.start(); - reader.onClose(() => languageClient?.stop()); - }; - return webSocket; -}; - -export const performInit = async (vscodeApiInit: boolean) => { - if (vscodeApiInit === true) { - await initServices({ - userServices: { - ...getThemeServiceOverride(), - ...getTextmateServiceOverride(), - ...getConfigurationServiceOverride(Uri.file(RUNTIMES_PATH)), - }, - }); - - languages.register({ - id: "typescript", - extensions: [".ts", ".tsx"], - aliases: ["typescript", "javascript"], - mimetypes: ["text/typescript", "text/javascript"], - }); - } -}; diff --git a/web/src/components/Editor/TSEditor.tsx b/web/src/components/Editor/TSEditor.tsx deleted file mode 100644 index c1883c2892..0000000000 --- a/web/src/components/Editor/TSEditor.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import { useEffect, useRef } from "react"; -import { Spinner } from "@chakra-ui/react"; -import { Editor, Monaco } from "@monaco-editor/react"; -import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; - -import { AutoImportTypings } from "@/components/Editor/typesResolve"; -import { COLOR_MODE } from "@/constants"; - -import "./useWorker"; - -import useFunctionCache from "@/hooks/useFunctionCache"; -import useFunctionStore from "@/pages/app/functions/store"; - -const autoImportTypings = new AutoImportTypings(); - -export default function TSEditor(props: { - value: string; - path: string; - fontSize: number; - colorMode?: string; - onChange: (value: string | undefined) => void; -}) { - const { value, path, fontSize, onChange, colorMode } = props; - - const functionCache = useFunctionCache(); - const { currentFunction } = useFunctionStore((state) => state); - - const monacoRef = useRef(); - const editorRef = useRef(); - - function handleEditorDidMount(editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) { - monacoRef.current = monaco; - editorRef.current = editor; - setTimeout(() => { - autoImportTypings.loadDefaults(monacoRef.current); - }, 10); - } - - useEffect(() => { - const pos = JSON.parse(functionCache.getPositionCache(path) || "{}"); - if (pos.lineNumber && pos.column) { - editorRef.current?.setPosition(pos); - editorRef.current?.revealPositionInCenter(pos); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [path]); - - const options = { - minimap: { - enabled: false, - }, - language: "typescript", - automaticLayout: true, - scrollbar: { - verticalScrollbarSize: 4, - horizontalScrollbarSize: 8, - }, - formatOnPaste: true, - overviewRulerLanes: 0, - lineNumbersMinChars: 4, - fontSize: fontSize, - fontFamily: "Fira Code", - fontWeight: "450", - scrollBeyondLastLine: false, - }; - - return ( - { - onChange(value); - functionCache.setPositionCache( - currentFunction!.name, - JSON.stringify(editorRef.current?.getPosition()), - ); - }} - loading={ -
- -
- } - beforeMount={(monaco) => { - monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({ - noSemanticValidation: true, - noSyntaxValidation: false, - }); - - monaco.languages.typescript.typescriptDefaults.setCompilerOptions({ - target: monaco.languages.typescript.ScriptTarget.ESNext, - allowNonTsExtensions: true, - moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs, - module: monaco.languages.typescript.ModuleKind.CommonJS, - allowSyntheticDefaultImports: true, - noEmit: true, - allowJs: false, - sourceMap: true, - noImplicitAny: false, - }); - - monaco.languages.typescript.typescriptDefaults.setEagerModelSync(true); - }} - onMount={handleEditorDidMount} - onValidate={() => { - autoImportTypings.parse(value, monacoRef.current); - }} - /> - ); -} diff --git a/web/src/components/Editor/TextModel.tsx b/web/src/components/Editor/TextModel.tsx deleted file mode 100644 index 868297525b..0000000000 --- a/web/src/components/Editor/TextModel.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; -// @ts-ignore -import { StandaloneCodeEditorService } from "monaco-editor/esm/vs/editor/standalone/browser/standaloneCodeEditorService.js"; - -import useFunctionStore from "@/pages/app/functions/store"; -import useGlobalStore from "@/pages/globalStore"; - -StandaloneCodeEditorService.prototype.findModel = function ( - editor: monaco.editor.IStandaloneCodeEditor, - resource: monaco.Uri, -) { - var model = null; - if (resource !== null) model = monaco.editor.getModel(resource); - if (model === null) { - model = editor.getModel(); - } - return model; -}; - -StandaloneCodeEditorService.prototype.doOpenEditor = function ( - editor: monaco.editor.IStandaloneCodeEditor, - input: any, -) { - let model = this.findModel(editor, input.resource); - if (!model) { - return null; - } - - editor.setModel(model); - - const functionName = model.uri.path.match(/\/functions\/(.*?)\.ts$/)[1]; - const allFunctionList = useFunctionStore.getState().allFunctionList; - const recentFunctionList = useFunctionStore.getState().recentFunctionList; - const currentFunction = allFunctionList.find((item) => item.name === functionName); - - let newRecentFunctionList = []; - - if (recentFunctionList.find((item) => item.name === functionName)) { - newRecentFunctionList = recentFunctionList; - } else { - newRecentFunctionList = [...recentFunctionList, currentFunction!]; - } - - useFunctionStore.setState({ - recentFunctionList: newRecentFunctionList as any, - currentFunction: currentFunction, - }); - - const newUrl = `${window.location.origin}/app/${ - useGlobalStore.getState().currentApp.appid - }/function/${functionName}`; - window.history.replaceState({}, "", newUrl); - - let selection = input.options ? input.options.selection : null; - if (selection) { - if (typeof selection.endLineNumber === "number" && typeof selection.endColumn === "number") { - editor.setSelection(selection); - editor.revealRangeInCenter(selection, 1); - } else { - const pos = { - lineNumber: selection.startLineNumber, - column: selection.startColumn, - }; - editor.setPosition(pos); - editor.revealPositionInCenter(pos, 1); - } - } - return editor; -}; diff --git a/web/src/components/Editor/index.css b/web/src/components/Editor/index.css deleted file mode 100644 index 9331479936..0000000000 --- a/web/src/components/Editor/index.css +++ /dev/null @@ -1,87 +0,0 @@ -.monaco-editor .margin { - background-color: #ffffff !important; -} - -.monaco-editor { - --vscode-editor-background: #ffffff !important; -} - -[data-theme="dark"] .monaco-editor .margin { - background-color: #202631 !important; -} - -[data-theme="dark"] .monaco-editor { - --vscode-editor-background: #202631 !important; -} - -.mtk8 { - color: #646893 !important; -} - -.mtk4 { - color: #646893 !important; -} - -[data-theme="dark"] .mtk7 { - color: #c99bdf !important; -} - -[data-theme="dark"] .mtk4 { - color: #c99bdf !important; -} - -.mtk6 { - color: #0178ce !important; -} - -.mtk5 { - color: #0178ce !important; -} - -.mtk1 { - color: #006674 !important; -} - -.mtk20 { - color: #b934c5 !important; -} - -.mtk11 { - color: #b934c5 !important; -} - -[data-theme="dark"] .mtk9 { - color: #47c8bf !important; -} - -[data-theme="dark"] .mtk11 { - color: #36adef !important; -} - -[data-theme="dark"] .mtk1 { - color: #47c8bf !important; -} - -[data-theme="dark"] .mtk5 { - color: #36adef !important; -} - -[data-theme="dark"] .mtk8 { - color: #36adef !important; -} - -.monaco-editor .bracket-highlighting-0 { - color: #b93a67 !important; -} - -.monaco-editor .unexpected-closing-bracket { - color: #b93a67 !important; -} - -.monaco-editor .bracket-highlighting-1 { - color: #b93a67 !important; -} - -.monaco-editor .bracket-highlighting-2 { - color: #0178ce !important; -} diff --git a/web/src/components/Editor/typesResolve/index.ts b/web/src/components/Editor/typesResolve/index.ts index 0d61f730c5..dc5fbb1a76 100644 --- a/web/src/components/Editor/typesResolve/index.ts +++ b/web/src/components/Editor/typesResolve/index.ts @@ -1,4 +1,5 @@ import axios from "axios"; +import * as monaco from "monaco-editor"; import { globalDeclare } from "./globals"; @@ -67,47 +68,51 @@ export class AutoImportTypings { * @param {string} source ts 代码 * @returns */ - async parse(source: string, monaco: any) { + async parse(source: string) { const rets = this._parser.parseDependencies(source); if (!rets || !rets.length) return; const newImports = rets.filter((pkg) => !this.isLoaded(pkg)); for (const pkg of newImports) { - await this.loadDeclaration(pkg, monaco); + await this.loadDeclaration(pkg); } } /** * Load default typings */ - loadDefaults(monaco: any) { - this.addExtraLib({ path: "globals.d.ts", content: globalDeclare, monaco }); + loadDefaults() { + this.addExtraLib({ path: "globals.d.ts", content: globalDeclare }); + // if (!this.isLoaded("@lafjs/cloud")) { + // this.loadDeclaration("@lafjs/cloud"); + // } if (!this.isLoaded("globals")) { - this.loadDeclaration("globals", monaco); + this.loadDeclaration("globals"); } if (!this.isLoaded("database-proxy")) { - this.loadDeclaration("database-proxy", monaco); + this.loadDeclaration("database-proxy"); } if (!this.isLoaded("database-ql")) { - this.loadDeclaration("database-ql", monaco); + this.loadDeclaration("database-ql"); } if (!this.isLoaded("axios")) { - this.loadDeclaration("axios", monaco); + this.loadDeclaration("axios"); } + // if (!this.isLoaded('cloud-function-engine')) { this.loadDeclaration('cloud-function-engine') } if (!this.isLoaded("mongodb")) { - this.loadDeclaration("mongodb", monaco); + this.loadDeclaration("mongodb"); } if (!this.isLoaded("@types/node")) { - this.loadDeclaration("@types/node", monaco); + this.loadDeclaration("@types/node"); } if (!this.isLoaded("ws")) { - this.loadDeclaration("ws", monaco); + this.loadDeclaration("ws"); } if (!this.isLoaded("@aws-sdk/client-s3")) { - this.loadDeclaration("@aws-sdk/client-s3", monaco); + this.loadDeclaration("@aws-sdk/client-s3"); } if (!this.isLoaded("@aws-sdk/s3-request-presigner")) { - this.loadDeclaration("@aws-sdk/s3-request-presigner", monaco); + this.loadDeclaration("@aws-sdk/s3-request-presigner"); } } @@ -125,7 +130,7 @@ export class AutoImportTypings { * @param {string} packageName * @returns */ - async loadDeclaration(packageName: string, monaco: any) { + async loadDeclaration(packageName: string) { if (this.isLoaded(packageName)) return; try { const r = await loadPackageTypings(packageName).catch((err: any) => console.error(err)); @@ -135,8 +140,15 @@ export class AutoImportTypings { const rets = r.data || []; for (const lib of rets) { - this.addExtraLib({ path: lib.path, content: lib.content, monaco }); + // 修复包的类型入口文件不为 index.d.ts 的情况 + if (packageName === lib.packageName && lib.path !== `${packageName}/index.d.ts`) { + const _lib = { ...lib }; + _lib.path = `${packageName}/index.d.ts`; + this.addExtraLib(_lib); + } + this.addExtraLib(lib); } + this._loaded.push(packageName); } catch (error) { console.error(`failed to load package: ${packageName} :`, error); @@ -148,20 +160,27 @@ export class AutoImportTypings { * @param {path: string, content: string} param0 * @returns */ - addExtraLib({ path, content, monaco }: { path: string; content: string; monaco: any }) { - const fullPath = `file:///node_modules/${path}`; + addExtraLib({ path, content }: { path: string; content: string }) { + const fullpath = `file:///node_modules/${path}`; const defaults = monaco.languages.typescript.typescriptDefaults; + const loaded = defaults.getExtraLibs(); + const keys = Object.keys(loaded); - if (fullPath in loaded) { + if (keys.includes(fullpath)) { + console.log(`${path} already exists in ts extralib`); return; } try { - defaults.addExtraLib(content, fullPath); - monaco.editor.createModel(content, "typescript", monaco.Uri.parse(fullPath)); + defaults.addExtraLib(content, fullpath); } catch (error) { - console.log(error, fullPath); + console.log(error, fullpath, keys); throw error; } } + + getExtraLibs() { + const defaults = monaco.languages.typescript.typescriptDefaults; + return defaults.getExtraLibs(); + } } diff --git a/web/src/components/Editor/useWorker.ts b/web/src/components/Editor/userWorker.ts similarity index 87% rename from web/src/components/Editor/useWorker.ts rename to web/src/components/Editor/userWorker.ts index 91597610e1..940d05782b 100644 --- a/web/src/components/Editor/useWorker.ts +++ b/web/src/components/Editor/userWorker.ts @@ -1,9 +1,11 @@ +import * as monaco from "monaco-editor"; import editorWorker from "monaco-editor/esm/vs/editor/editor.worker?worker"; import cssWorker from "monaco-editor/esm/vs/language/css/css.worker?worker"; import htmlWorker from "monaco-editor/esm/vs/language/html/html.worker?worker"; import jsonWorker from "monaco-editor/esm/vs/language/json/json.worker?worker"; import tsWorker from "monaco-editor/esm/vs/language/typescript/ts.worker?worker"; +// @ts-ignore // eslint-disable-next-line no-restricted-globals self.MonacoEnvironment = { getWorker(_: any, label: string) { @@ -22,3 +24,5 @@ self.MonacoEnvironment = { return new editorWorker(); }, }; + +monaco.languages.typescript.typescriptDefaults.setEagerModelSync(true); diff --git a/web/src/components/TextButton/index.tsx b/web/src/components/TextButton/index.tsx index 410a5f7c4f..5abc2bfc0b 100644 --- a/web/src/components/TextButton/index.tsx +++ b/web/src/components/TextButton/index.tsx @@ -1,6 +1,5 @@ import { forwardRef } from "react"; import { Button } from "@chakra-ui/react"; -import clsx from "clsx"; const TextButton = function ( props: { text: string; @@ -15,7 +14,8 @@ const TextButton = function ( - - - - - )} +
+ { + envValue.current = value; + }} + /> +
+ ); diff --git a/web/src/pages/app/setting/SysSetting/AppEnvList/service.ts b/web/src/pages/app/setting/SysSetting/AppEnvList/service.ts index 9c42b4bdc8..2b27e2457a 100644 --- a/web/src/pages/app/setting/SysSetting/AppEnvList/service.ts +++ b/web/src/pages/app/setting/SysSetting/AppEnvList/service.ts @@ -65,6 +65,7 @@ export const useUpdateEnvironmentMutation = (callback?: () => void) => { (params: { name: string; value: string }[]) => EnvironmentVariableControllerUpdateAll(params), { onSuccess: async () => { + useGlobalStore.getState().showSuccess("update environment success"); await queryClient.invalidateQueries(queryKeys.useEnvironmentQuery); callback && callback(); }, diff --git a/web/src/pages/app/setting/SysSetting/AppInfoList/index.tsx b/web/src/pages/app/setting/SysSetting/AppInfoList/index.tsx index e7d5246160..b26385d1a7 100644 --- a/web/src/pages/app/setting/SysSetting/AppInfoList/index.tsx +++ b/web/src/pages/app/setting/SysSetting/AppInfoList/index.tsx @@ -6,7 +6,7 @@ import { Box, Button, HStack, useColorMode, VStack } from "@chakra-ui/react"; import clsx from "clsx"; import { APP_PHASE_STATUS, APP_STATUS, COLOR_MODE, Routes } from "@/constants/index"; -import { formatDate, formatSize } from "@/utils/format"; +import { formatDate } from "@/utils/format"; import InfoDetail from "./InfoDetail"; @@ -139,21 +139,15 @@ const AppEnvList = () => { }, { key: t("Spec.RAM"), - value: String( - formatSize(currentApp?.bundle?.resource.limitMemory * 1024 * 1024, 0), - ), + value: `${currentApp?.bundle?.resource.limitMemory} ${t("Unit.MB")}`, }, { key: t("Spec.Database"), - value: String( - formatSize(currentApp?.bundle?.resource.databaseCapacity * 1024 * 1024, 0), - ), + value: `${currentApp?.bundle?.resource.databaseCapacity! / 1024} ${t("Unit.GB")}`, }, { key: t("Spec.Storage"), - value: String( - formatSize(currentApp?.bundle?.resource.storageCapacity * 1024 * 1024, 0), - ), + value: `${currentApp?.bundle?.resource.storageCapacity! / 1024} ${t("Unit.GB")}`, }, ]} className={darkMode ? "w-60" : "w-60 bg-[#F8FAFB]"} diff --git a/web/src/pages/app/setting/SysSetting/CommonSetting/index.tsx b/web/src/pages/app/setting/SysSetting/CommonSetting/index.tsx index 7a3dff4c20..f0b08ae998 100644 --- a/web/src/pages/app/setting/SysSetting/CommonSetting/index.tsx +++ b/web/src/pages/app/setting/SysSetting/CommonSetting/index.tsx @@ -1,13 +1,11 @@ import { useState } from "react"; import { useTranslation } from "react-i18next"; -import { Button, Divider, Select, Switch, useColorMode } from "@chakra-ui/react"; +import { Button, Divider, Select, useColorMode } from "@chakra-ui/react"; import clsx from "clsx"; import useCustomSettingStore from "@/pages/customSetting"; import useGlobalStore from "@/pages/globalStore"; -const fontSizes = [12, 13, 14, 15, 16, 17, 18, 19, 20]; - export default function CommonSetting() { const { setCommonSettings, commonSettings } = useCustomSettingStore(); const [currentCommonSettings, setCurrentCommonSettings] = useState(commonSettings); @@ -22,25 +20,7 @@ export default function CommonSetting() { return (
- {t("SettingPanel.Editor")} - - {t("SettingPanel.isOpenLanguageServer")} - -
- { - setCurrentCommonSettings({ - ...currentCommonSettings, - useLSP: !currentCommonSettings.useLSP, - }); - }} - variant={"primary"} - colorScheme="primary" - /> -
-
-
+ {t("SettingPanel.EditorFont")} {t("SettingPanel.FontSize")} @@ -55,7 +35,7 @@ export default function CommonSetting() { }) } > - {fontSizes.map((size) => { + {[12, 13, 14, 15, 16, 17, 18, 19, 20].map((size) => { return (
- {t("SettingPanel.FuncList")} + {t("SettingPanel.FuncListDisplay")} {t("SettingPanel.ListDisplay")} @@ -89,7 +69,10 @@ export default function CommonSetting() {
- diff --git a/web/src/pages/app/setting/SysSetting/DatabaseMonitor/index.tsx b/web/src/pages/app/setting/SysSetting/DatabaseMonitor/index.tsx index 39a785d215..ac080acca7 100644 --- a/web/src/pages/app/setting/SysSetting/DatabaseMonitor/index.tsx +++ b/web/src/pages/app/setting/SysSetting/DatabaseMonitor/index.tsx @@ -181,7 +181,7 @@ export default function DatabaseMonitor() { ) : performanceData?.data && Object.keys(performanceData?.data).length !== 0 ? ( -
+
- - + -
+
{React.cloneElement(item?.component || <>, { onClose, })} diff --git a/web/src/pages/customSetting.ts b/web/src/pages/customSetting.ts index 9820daa359..b6572e2f46 100644 --- a/web/src/pages/customSetting.ts +++ b/web/src/pages/customSetting.ts @@ -23,12 +23,6 @@ type storagePanel = "SideBar" | string; export type panel = functionPanel | collectionPanel | storagePanel; export type page = "functionPage" | "collectionPage" | "storagePage"; -type TCommonSettings = { - fontSize: number; - funcListDisplay: string; - useLSP: boolean; -}; - type State = { layoutInfo: { storagePage: { @@ -52,8 +46,11 @@ type State = { position: { width: number; height: number }, ) => void; togglePanel: (pageId: page, panelId: panel) => void; - commonSettings: TCommonSettings; - setCommonSettings: (settings: TCommonSettings) => void; + commonSettings: { + fontSize: number; + funcListDisplay: string; + }; + setCommonSettings: (settings: { fontSize: number; funcListDisplay: String }) => void; }; const useCustomSettingStore = create()( @@ -176,7 +173,6 @@ const useCustomSettingStore = create()( commonSettings: { fontSize: 14, funcListDisplay: "name", - useLSP: true, }, setCommonSettings: (settings) => { diff --git a/web/src/pages/functionTemplate/CreateFuncTemplate/Mods/AddEnvironmentsModal.tsx b/web/src/pages/functionTemplate/CreateFuncTemplate/Mods/AddEnvironmentsModal.tsx index 1866ec8ee1..4ba8aca264 100644 --- a/web/src/pages/functionTemplate/CreateFuncTemplate/Mods/AddEnvironmentsModal.tsx +++ b/web/src/pages/functionTemplate/CreateFuncTemplate/Mods/AddEnvironmentsModal.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useRef } from "react"; import { Button, Modal, @@ -12,17 +12,26 @@ import { useDisclosure, } from "@chakra-ui/react"; import clsx from "clsx"; +import dotenv from "dotenv"; import { t } from "i18next"; import ENVEditor from "@/components/Editor/ENVEditor"; +const convertToEnv = (tableData: any[]) => { + if (!tableData) return ""; + return tableData.reduce((acc, { name, value }) => { + return acc + `${name}="${value}"\n`; + }, ""); +}; + const AddEnvironmentsModal = (props: { - children: React.ReactElement; - environments: any[]; - setEnvironments: React.Dispatch>; + children?: React.ReactElement; + environments?: any[]; + setEnvironments?: React.Dispatch>; }) => { const { children = null, environments, setEnvironments } = props; const { isOpen, onOpen, onClose } = useDisclosure(); + const envValue = useRef(convertToEnv([])); const { colorMode } = useColorMode(); return ( @@ -41,17 +50,30 @@ const AddEnvironmentsModal = (props: {
- + { + envValue.current = value; + }} + />