From 933bcfa2465c0650fd2766a979e3215c7a3d74d9 Mon Sep 17 00:00:00 2001 From: heheer <1239331448@qq.com> Date: Tue, 10 Oct 2023 14:39:25 +0800 Subject: [PATCH 01/42] feat(web): init editor --- web/package-lock.json | 4076 +++++++++++++++-- web/package.json | 35 +- web/src/App.tsx | 5 + web/src/components/Editor/ENVEditor.tsx | 90 +- web/src/components/Editor/FunctionEditor.tsx | 249 +- web/src/components/Editor/JSONEditor.tsx | 46 +- web/src/components/Editor/LanguageClient.ts | 119 + web/src/components/Editor/globalDefinition.ts | 98 - web/src/components/Editor/userWorker.ts | 52 +- .../app/functions/mods/EditorPanel/index.tsx | 3 +- .../Mods/MonacoEditor/index.tsx | 92 +- web/vite.config.ts | 39 + 12 files changed, 4060 insertions(+), 844 deletions(-) create mode 100644 web/src/components/Editor/LanguageClient.ts delete mode 100644 web/src/components/Editor/globalDefinition.ts diff --git a/web/package-lock.json b/web/package-lock.json index 2c3a0bb53b..e6f10fce69 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -11,6 +11,15 @@ "@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-editor-service-override": "~1.82.3", + "@codingame/monaco-vscode-keybindings-service-override": "~1.82.3", + "@codingame/monaco-vscode-languages-service-override": "~1.82.3", + "@codingame/monaco-vscode-model-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.4", "@emotion/react": "^11.11.0", "@emotion/styled": "^11.11.0", "@patternfly/react-log-viewer": "^5.0.0", @@ -31,8 +40,10 @@ "immer": "^10.0.2", "laf-client-sdk": "^1.0.0-beta.12", "lodash": "^4.17.21", - "monaco-editor": "^0.38.0", "pako": "^2.1.0", + "monaco-editor": "~0.43.0", + "monaco-editor-workers": "~0.43.0", + "monaco-languageclient": "~6.5.1", "qrcode.react": "^3.1.0", "react": "18.2.0", "react-datepicker": "^4.11.0", @@ -48,12 +59,20 @@ "recharts": "^2.7.2", "remark-gfm": "^3.0.1", "remark-math": "^5.1.1", + "request-light": "~0.7.0", "sass": "^1.62.1", "simplebar-react": "^3.2.4", "uuid": "^9.0.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.82.3 <1.83.0", + "vscode-json-languageservice": "~5.3.6", + "vscode-jsonrpc": "~8.1.0", + "vscode-languageclient": "~8.1.0", + "vscode-languageserver": "~8.1.0", + "vscode-ws-jsonrpc": "~3.0.0", "zustand": "^4.3.8" }, "devDependencies": { + "@types/express": "~4.17.18", "@types/lodash": "^4.14.194", "@types/node": "20.2.3", "@types/pako": "^2.0.2", @@ -62,22 +81,33 @@ "@types/react-dom": "^18.2.4", "@types/react-syntax-highlighter": "^15.5.6", "@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", + "editorconfig": "~2.0.0", "eslint": "^8.41.0", "eslint-config-react-app": "^7.0.1", + "eslint-config-standard": "~17.1.0", + "eslint-plugin-header": "~3.1.1", + "eslint-plugin-import": "~2.28.1", + "eslint-plugin-promise": "~6.1.1", "eslint-plugin-simple-import-sort": "^10.0.0", "install": "^0.13.0", "lint-staged": "^13.2.2", "postcss": "^8.4.23", "prettier": "^2.8.8", "prettier-plugin-tailwindcss": "^0.3.0", + "shx": "~0.3.4", "tailwindcss": "^3.3.2", + "ts-node": "~10.9.1", "typescript": "5.0.4", "vite": "^4.3.8", "vite-plugin-pwa": "^0.16.4", - "vite-plugin-rewrite-all": "^1.0.1" + "vite-plugin-rewrite-all": "^1.0.1", + "vscode-languageserver-types": "~3.17.3" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -3125,6 +3155,143 @@ "react": ">=18" } }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "dependencies": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "dependencies": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==" + }, + "node_modules/@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==" + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==" + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-1.82.4.tgz", + "integrity": "sha512-czLqSL8TpFOXlHC0xCZcHkCk7b8pCeFw4nZIgNPqaVxhgwBdhBUXhRlRPZSAigWca9kPmMf9+rIfEgeM9Xmf8w==", + "dependencies": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-1.82.4.tgz", + "integrity": "sha512-w88Lq0rBSBr9nLf2YRvxafHvloz0TKT2b3tfoNo+W+IlChdvIT2RvxjWPrI7w/HFOe/IkmxNQ7Pi243Gr/2p7A==", + "dependencies": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-keybindings-service-override/-/monaco-vscode-keybindings-service-override-1.82.4.tgz", + "integrity": "sha512-a2wVRUJP3cLnsPnyGLhALp2Y6oLlo/2+GsPjMrkYMBk1ZOMh63P8129qnN+9ZtgGNjlqLBuBqmJUqYJd3ToGww==", + "dependencies": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "node_modules/@codingame/monaco-vscode-languages-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-1.82.4.tgz", + "integrity": "sha512-+UbK0iLL+yOGYodlB9vC09qWzgzGEwqef6rstVSwpf7c86SlH6WOAtrb4s+lfCnyvYkauvmgcElvL+wO89PrxQ==", + "dependencies": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "node_modules/@codingame/monaco-vscode-model-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-1.82.4.tgz", + "integrity": "sha512-1mr6+5GF+V/Ny98hONC/Amubf71mVn9aY/AeX1LQCCnRTJg5SrZtSTbZk6x+5Fp4zweOm9FoNYvr5/kA6qYXuw==", + "dependencies": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-1.82.4.tgz", + "integrity": "sha512-h/S1S+4ZqY2CcGfmTdIPhYc/2l0OYARWSC/GBnHLSnmOi3R+AgmZCnZtQvest9ZfRBjsu7RWPNiJO5U2O5VM/Q==", + "dependencies": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4", + "vscode-oniguruma": "^2.0.0", + "vscode-textmate": "^9.0.0" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-1.82.4.tgz", + "integrity": "sha512-2uCHJGXqtA21pQKfgq+nlc5g6RoBLrjvFID0xhjYKOjRbFywV/YGNfNtFVRIXy0SP8ZK2M9ownNbcewbt3mEjQ==", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-1.82.4.tgz", + "integrity": "sha512-Clp4aRWF1NNvJftrKbZkn2G5YK2rl7wFEttLHLoZkp7NWIbdmdDvW+Ylg1riE2KZRVD11mGvt5EWvsOyHxYYhA==", + "dependencies": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "node_modules/@codingame/monaco-vscode-typescript-basics-default-extension": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-typescript-basics-default-extension/-/monaco-vscode-typescript-basics-default-extension-1.82.4.tgz", + "integrity": "sha512-97ooQ/EJaO+AHFczwKOm8KhdV0SCvEDRTbwtl6muUhRRomdfS8F0ojTNoJC18oO43p9KRU3/oKx38sC+GuwRXw==", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", "resolved": "https://registry.npmmirror.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", @@ -3611,9 +3778,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", - "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==", + "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" @@ -3626,9 +3793,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.4.0", - "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -3947,6 +4114,12 @@ "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.1.1.tgz", "integrity": "sha512-cHuNkzNA9IY9aDwfjSEkitQoVEvRhOJRKhH0yIRlRByEkbdoV9jJZ9xj20hNShE+bxmNuom+MCTQSkpkN1bV8A==" }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true + }, "node_modules/@popperjs/core": { "version": "2.11.6", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", @@ -4308,6 +4481,49 @@ } } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz", + "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", + "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/d3-array": { "version": "3.0.5", "resolved": "https://registry.npmmirror.com/@types/d3-array/-/d3-array-3.0.5.tgz", @@ -4376,6 +4592,30 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, + "node_modules/@types/express": { + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.18.tgz", + "integrity": "sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.37", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz", + "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, "node_modules/@types/hast": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", @@ -4384,10 +4624,16 @@ "@types/unist": "*" } }, + "node_modules/@types/http-errors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz", + "integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==", + "dev": true + }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", + "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", "dev": true }, "node_modules/@types/json5": { @@ -4430,6 +4676,12 @@ "@types/unist": "*" } }, + "node_modules/@types/mime": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz", + "integrity": "sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==", + "dev": true + }, "node_modules/@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz", @@ -4457,6 +4709,18 @@ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, + "node_modules/@types/qs": { + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", + "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.5.tgz", + "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==", + "dev": true + }, "node_modules/@types/react": { "version": "18.2.7", "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.2.7.tgz", @@ -4512,11 +4776,32 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", "dev": true }, + "node_modules/@types/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz", + "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz", + "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, "node_modules/@types/trusted-types": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", @@ -4534,32 +4819,97 @@ "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": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.1.tgz", - "integrity": "sha512-r4RZ2Jl9kcQN7K/dcOT+J7NAimbiis4sSM9spvWimsBvDegMhKLA5vri2jG19PmIPbDjPeWzfUPQ2hjEzA4Nmg==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz", + "integrity": "sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.47.1", - "@typescript-eslint/type-utils": "5.47.1", - "@typescript-eslint/utils": "5.47.1", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/type-utils": "6.7.4", + "@typescript-eslint/utils": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", "debug": "^4.3.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "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": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", + "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", + "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", + "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", + "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": { @@ -4567,6 +4917,48 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz", + "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==", + "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.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", + "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/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", + "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "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/@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", @@ -4601,12 +4993,12 @@ "dev": true }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.47.1.tgz", - "integrity": "sha512-zWHo/VbqAiRvhXP5byQqW7rGQtdanajHnItGqtmv8JaIi58zMPnmGZ1bW/drXIjU1fuOyfTVoDkNS7aEWGDSLg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.47.1" + "@typescript-eslint/utils": "5.62.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4620,25 +5012,26 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.1.tgz", - "integrity": "sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz", + "integrity": "sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.47.1", - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/typescript-estree": "5.47.1", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -4646,79 +5039,52 @@ } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.1.tgz", - "integrity": "sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/visitor-keys": "5.47.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.1.tgz", - "integrity": "sha512-/UKOeo8ee80A7/GJA427oIrBi/Gd4osk/3auBUg4Rn9EahFpevVV1mUK8hjyQD5lHPqX397x6CwOk5WGh1E/1w==", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", + "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.47.1", - "@typescript-eslint/utils": "5.47.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/types": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.1.tgz", - "integrity": "sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A==", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", + "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.1.tgz", - "integrity": "sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA==", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", + "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/visitor-keys": "5.47.1", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -4730,7 +5096,24 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", + "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "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/@typescript-eslint/parser/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==", @@ -4742,7 +5125,7 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "node_modules/@typescript-eslint/parser/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==", @@ -4757,26 +5140,20 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "node_modules/@typescript-eslint/parser/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": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.1.tgz", - "integrity": "sha512-l90SdwqfmkuIVaREZ2ykEfCezepCLxzWMo5gVfcJsJCaT4jHT+QjgSkYhs5BMQmWqE9k3AtIfk4g211z/sTMVw==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.47.1", - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/typescript-estree": "5.47.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4784,31 +5161,286 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/@typescript-eslint/type-utils": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz", + "integrity": "sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "@typescript-eslint/typescript-estree": "6.7.4", + "@typescript-eslint/utils": "6.7.4", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": ">=8.0.0" + "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/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", + "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4" + }, "engines": { - "node": ">=4.0" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", + "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", + "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", + "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/type-utils/node_modules/@typescript-eslint/utils": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz", + "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==", + "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.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", + "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/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", + "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.4", + "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/@typescript-eslint/type-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/type-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/type-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/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.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": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" } }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { @@ -4845,12 +5477,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.1.tgz", - "integrity": "sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -4873,6 +5505,11 @@ "vite": "^4" } }, + "node_modules/@vscode/l10n": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.16.tgz", + "integrity": "sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==" + }, "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", @@ -4903,6 +5540,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -5031,6 +5677,19 @@ "node": ">=6.0" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-includes": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", @@ -5059,6 +5718,25 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -5108,6 +5786,27 @@ "get-intrinsic": "^1.1.3" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -5174,6 +5873,18 @@ "postcss": "^8.1.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/axe-core": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.1.tgz", @@ -5290,8 +6001,7 @@ "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==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", @@ -5411,6 +6121,52 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "peer": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/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, + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/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, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/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, + "peer": true + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -5505,6 +6261,30 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "dependencies": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -5655,7 +6435,6 @@ "version": "10.0.0", "resolved": "https://registry.npmmirror.com/commander/-/commander-10.0.0.tgz", "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", - "dev": true, "engines": { "node": ">=14" } @@ -5747,6 +6526,12 @@ "node": ">=10" } }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "node_modules/cross-fetch": { "version": "3.1.6", "resolved": "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-3.1.6.tgz", @@ -6002,12 +6787,27 @@ "node": ">=0.10.0" } }, + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -6108,6 +6908,90 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, + "node_modules/editorconfig": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-2.0.0.tgz", + "integrity": "sha512-s1NQ63WQ7RNXH6Efb2cwuyRlfpbtdZubvfNe4vCuoyGPewNPY7vah8JUSOFBiJ+jr99Qh8t0xKv0oITc1dclgw==", + "dev": true, + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^11.0.0", + "minimatch": "9.0.2", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/editorconfig/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==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/editorconfig/node_modules/commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/editorconfig/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/editorconfig/node_modules/minimatch": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", + "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/editorconfig/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/editorconfig/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/ejs": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", @@ -6155,36 +7039,50 @@ } }, "node_modules/es-abstract": { - "version": "1.20.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", - "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "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-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "unbox-primitive": "^1.0.2" + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -6193,6 +7091,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", @@ -6357,14 +7269,189 @@ "eslint": "^8.0.0" } }, + "node_modules/eslint-config-react-app/node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-react-app/node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-react-app/node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-react-app/node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-config-react-app/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/eslint-config-react-app/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/eslint-config-react-app/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/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -6377,9 +7464,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -6402,6 +7489,26 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-es-x": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", + "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, "node_modules/eslint-plugin-flowtype": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", @@ -6420,25 +7527,38 @@ "eslint": "^8.1.0" } }, + "node_modules/eslint-plugin-header": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", + "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", + "dev": true, + "peerDependencies": { + "eslint": ">=7.7.0" + } + }, "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.13.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -6448,12 +7568,12 @@ } }, "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { @@ -6468,36 +7588,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.6.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", @@ -6525,6 +7615,81 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, + "node_modules/eslint-plugin-n": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", + "integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/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, + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-n/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, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-n/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, + "peer": true + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, "node_modules/eslint-plugin-react": { "version": "7.31.11", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", @@ -6620,44 +7785,47 @@ "eslint": "^7.5.0 || ^8.0.0" } }, - "node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "node_modules/eslint-plugin-unused-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz", + "integrity": "sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "eslint-rule-composer": "^0.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0", + "eslint": "^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "node": ">=4.0.0" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint-visitor-keys": { @@ -7080,6 +8248,15 @@ } } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -7205,15 +8382,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -7241,13 +8418,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -7293,6 +8471,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "peer": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -7334,6 +8525,21 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -7418,6 +8624,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -7651,12 +8869,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -7672,6 +8890,15 @@ "node": ">=12" } }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz", @@ -7702,6 +8929,20 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -7767,9 +9008,9 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dependencies": { "has": "^1.0.3" }, @@ -7984,6 +9225,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -7996,6 +9252,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -8198,6 +9460,11 @@ "node": ">=6" } }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -8276,6 +9543,82 @@ "follow-redirects": "^1.14.0" } }, + "node_modules/langium": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/langium/-/langium-2.0.2.tgz", + "integrity": "sha512-K9gycp9E88ZzJALJaBy7DSajD7GrWX2uwnYN4xL6MBtQZmiqX17fi4ZyN6HoVJjt40v7rrEUS5gRpzmrO8yO1w==", + "dependencies": { + "chevrotain": "^11.0.1", + "chevrotain-allstar": "^0.3.0", + "vscode-languageserver": "~8.0.2", + "vscode-languageserver-textdocument": "~1.0.8", + "vscode-uri": "~3.0.7" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/langium-statemachine-dsl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/langium-statemachine-dsl/-/langium-statemachine-dsl-2.0.0.tgz", + "integrity": "sha512-exdyagTCtJs6eEewAKEoXh2pScBVEaYGjNINoNyQBPB8lxfHjvLsZb6PcFa3ypa/TanPG1mn6odIp62+TXq/Rw==", + "dependencies": { + "chalk": "~5.3.0", + "commander": "~10.0.0", + "langium": "~2.0.0", + "lodash": "^4.17.21" + }, + "bin": { + "statemachine-cli": "bin/cli.js" + }, + "engines": { + "vscode": "^1.67.0" + } + }, + "node_modules/langium-statemachine-dsl/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/langium/node_modules/vscode-jsonrpc": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz", + "integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/langium/node_modules/vscode-languageserver": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz", + "integrity": "sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==", + "dependencies": { + "vscode-languageserver-protocol": "3.17.2" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/langium/node_modules/vscode-languageserver-protocol": { + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz", + "integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==", + "dependencies": { + "vscode-jsonrpc": "8.0.2", + "vscode-languageserver-types": "3.17.2" + } + }, + "node_modules/langium/node_modules/vscode-languageserver-types": { + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz", + "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==" + }, "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", @@ -8714,6 +10057,12 @@ "sourcemap-codec": "^1.4.8" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "node_modules/markdown-table": { "version": "3.0.3", "resolved": "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz", @@ -9273,19 +10622,60 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/monaco-editor": { - "version": "0.38.0", - "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.38.0.tgz", - "integrity": "sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A==" - }, + "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-editor-workers": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/monaco-editor-workers/-/monaco-editor-workers-0.43.0.tgz", + "integrity": "sha512-qO9b6uzXXS57lv5VodYr2jhuxd9resG38WBmc72thp+222kcJPg9eChMMJTXZbfDIPHYkBQNR0+zPrbIdVtU+w==", + "dependencies": { + "monaco-editor": "~0.43.0" + }, + "peerDependencies": { + "monaco-editor": "~0.43.0" + } + }, + "node_modules/monaco-languageclient": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-6.5.2.tgz", + "integrity": "sha512-9SboGjIpGMVwxStLoWTfztNotxDEvNTPfxLToHOJZUo6YWkJI3MLdH+PsCM95VygBSxnBI6GF3Ab8Jslp6L1Nw==", + "hasInstallScript": true, + "dependencies": { + "@codingame/monaco-vscode-languages-service-override": "~1.82.4", + "@codingame/monaco-vscode-model-service-override": "~1.82.4", + "monaco-editor": "~0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.82.4 <1.83.0", + "vscode-jsonrpc": "~8.1.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.4 <1.83.0" + }, + "peerDependenciesMeta": { + "monaco-editor": { + "optional": false + }, + "vscode": { + "optional": false + } + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz", @@ -9478,6 +10868,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.hasown": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", @@ -10502,6 +11904,18 @@ "decimal.js-light": "^2.4.1" } }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/reduce-css-calc": { "version": "2.1.8", "resolved": "https://registry.npmmirror.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", @@ -10571,14 +11985,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -10587,18 +12001,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/regexpu-core": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", @@ -10686,6 +12088,11 @@ "unified": "^10.0.0" } }, + "node_modules/request-light": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", + "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==" + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -10696,16 +12103,19 @@ } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-from": { @@ -10716,6 +12126,16 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -10840,6 +12260,24 @@ "node": ">=6" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -10916,6 +12354,20 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10937,6 +12389,39 @@ "node": ">=8" } }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dev": true, + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -11145,29 +12630,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11527,20 +13029,90 @@ "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", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } @@ -11604,6 +13176,71 @@ "node": ">=10" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typescript": { "version": "5.0.4", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.0.4.tgz", @@ -11894,6 +13531,12 @@ "node": ">=8" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "node_modules/vfile": { "version": "5.3.7", "resolved": "https://registry.npmmirror.com/vfile/-/vfile-5.3.7.tgz", @@ -12034,7 +13677,163 @@ "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": ">=0.10.0" + } + }, + "node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.82.4.tgz", + "integrity": "sha512-hyqKIlucXSmT2YRgQPdfo6rchDPG8W3S2rSvRtrzQRBdLgbzjPf8p5yEcMDWrry3YQgFvVzPCIs81W7052JeUQ==", + "dependencies": { + "monaco-editor": "0.43.0" + }, + "bin": { + "monaco-treemending": "monaco-treemending.js" + } + }, + "node_modules/vscode-json-languageservice": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.3.6.tgz", + "integrity": "sha512-P4kthBi3GMLKi7Lmp24nkKHAWxbFfCsIDBPlMrK1Tag1aqbl3l60UferDkfAasupDVBM2dekbArzGycUjw8OHA==", + "dependencies": { + "@vscode/l10n": "^0.0.16", + "jsonc-parser": "^3.2.0", + "vscode-languageserver-textdocument": "^1.0.8", + "vscode-languageserver-types": "^3.17.3", + "vscode-uri": "^3.0.7" + } + }, + "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" + } + }, + "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==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "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": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.1.0.tgz", + "integrity": "sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw==", + "dependencies": { + "vscode-languageserver-protocol": "3.17.3" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "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_modules/vscode-languageserver-protocol/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-languageserver-textdocument": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", + "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" + }, + "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-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==" + }, + "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" + }, + "engines": { + "node": ">=16.11.0", + "npm": ">=8.0.0" } }, "node_modules/warning": { @@ -12091,6 +13890,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/workbox-background-sync": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz", @@ -12576,6 +14394,15 @@ "node": ">= 6" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -14799,6 +16626,142 @@ "integrity": "sha512-WWULIiucYRBIewHKFA7BssQ2ABLHLVd9lrUo3N3SZgR0u4ZRDDVEUNOy+r+9ruDze8+36dGbN9wsN1IdELtdOw==", "requires": {} }, + "@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "requires": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "requires": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==" + }, + "@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==" + }, + "@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==" + }, + "@codingame/monaco-vscode-configuration-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-1.82.4.tgz", + "integrity": "sha512-czLqSL8TpFOXlHC0xCZcHkCk7b8pCeFw4nZIgNPqaVxhgwBdhBUXhRlRPZSAigWca9kPmMf9+rIfEgeM9Xmf8w==", + "requires": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "@codingame/monaco-vscode-editor-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-1.82.4.tgz", + "integrity": "sha512-w88Lq0rBSBr9nLf2YRvxafHvloz0TKT2b3tfoNo+W+IlChdvIT2RvxjWPrI7w/HFOe/IkmxNQ7Pi243Gr/2p7A==", + "requires": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "@codingame/monaco-vscode-keybindings-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-keybindings-service-override/-/monaco-vscode-keybindings-service-override-1.82.4.tgz", + "integrity": "sha512-a2wVRUJP3cLnsPnyGLhALp2Y6oLlo/2+GsPjMrkYMBk1ZOMh63P8129qnN+9ZtgGNjlqLBuBqmJUqYJd3ToGww==", + "requires": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "@codingame/monaco-vscode-languages-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-1.82.4.tgz", + "integrity": "sha512-+UbK0iLL+yOGYodlB9vC09qWzgzGEwqef6rstVSwpf7c86SlH6WOAtrb4s+lfCnyvYkauvmgcElvL+wO89PrxQ==", + "requires": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "@codingame/monaco-vscode-model-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-1.82.4.tgz", + "integrity": "sha512-1mr6+5GF+V/Ny98hONC/Amubf71mVn9aY/AeX1LQCCnRTJg5SrZtSTbZk6x+5Fp4zweOm9FoNYvr5/kA6qYXuw==", + "requires": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "@codingame/monaco-vscode-textmate-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-1.82.4.tgz", + "integrity": "sha512-h/S1S+4ZqY2CcGfmTdIPhYc/2l0OYARWSC/GBnHLSnmOi3R+AgmZCnZtQvest9ZfRBjsu7RWPNiJO5U2O5VM/Q==", + "requires": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4", + "vscode-oniguruma": "^2.0.0", + "vscode-textmate": "^9.0.0" + } + }, + "@codingame/monaco-vscode-theme-defaults-default-extension": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-1.82.4.tgz", + "integrity": "sha512-2uCHJGXqtA21pQKfgq+nlc5g6RoBLrjvFID0xhjYKOjRbFywV/YGNfNtFVRIXy0SP8ZK2M9ownNbcewbt3mEjQ==", + "requires": { + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "@codingame/monaco-vscode-theme-service-override": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-1.82.4.tgz", + "integrity": "sha512-Clp4aRWF1NNvJftrKbZkn2G5YK2rl7wFEttLHLoZkp7NWIbdmdDvW+Ylg1riE2KZRVD11mGvt5EWvsOyHxYYhA==", + "requires": { + "monaco-editor": "0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "@codingame/monaco-vscode-typescript-basics-default-extension": { + "version": "1.82.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-typescript-basics-default-extension/-/monaco-vscode-typescript-basics-default-extension-1.82.4.tgz", + "integrity": "sha512-97ooQ/EJaO+AHFczwKOm8KhdV0SCvEDRTbwtl6muUhRRomdfS8F0ojTNoJC18oO43p9KRU3/oKx38sC+GuwRXw==", + "requires": { + "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, "@emotion/babel-plugin": { "version": "11.11.0", "resolved": "https://registry.npmmirror.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", @@ -15068,18 +17031,18 @@ "optional": true }, "@eslint-community/eslint-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", - "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==", + "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.4.0", - "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true }, "@eslint/eslintrc": { @@ -15336,6 +17299,12 @@ "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.1.1.tgz", "integrity": "sha512-cHuNkzNA9IY9aDwfjSEkitQoVEvRhOJRKhH0yIRlRByEkbdoV9jJZ9xj20hNShE+bxmNuom+MCTQSkpkN1bV8A==" }, + "@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true + }, "@popperjs/core": { "version": "2.11.6", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", @@ -15548,6 +17517,49 @@ "use-sync-external-store": "^1.2.0" } }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz", + "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", + "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/d3-array": { "version": "3.0.5", "resolved": "https://registry.npmmirror.com/@types/d3-array/-/d3-array-3.0.5.tgz", @@ -15616,6 +17628,30 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, + "@types/express": { + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.18.tgz", + "integrity": "sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.37", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz", + "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, "@types/hast": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", @@ -15624,10 +17660,16 @@ "@types/unist": "*" } }, + "@types/http-errors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz", + "integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==", + "dev": true + }, "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", + "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", "dev": true }, "@types/json5": { @@ -15670,6 +17712,12 @@ "@types/unist": "*" } }, + "@types/mime": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz", + "integrity": "sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==", + "dev": true + }, "@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz", @@ -15697,6 +17745,18 @@ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, + "@types/qs": { + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", + "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.5.tgz", + "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==", + "dev": true + }, "@types/react": { "version": "18.2.7", "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.2.7.tgz", @@ -15752,11 +17812,32 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", "dev": true }, + "@types/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz", + "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/serve-static": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz", + "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==", + "dev": true, + "requires": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, "@types/trusted-types": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", @@ -15774,23 +17855,87 @@ "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": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.1.tgz", - "integrity": "sha512-r4RZ2Jl9kcQN7K/dcOT+J7NAimbiis4sSM9spvWimsBvDegMhKLA5vri2jG19PmIPbDjPeWzfUPQ2hjEzA4Nmg==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz", + "integrity": "sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.47.1", - "@typescript-eslint/type-utils": "5.47.1", - "@typescript-eslint/utils": "5.47.1", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/type-utils": "6.7.4", + "@typescript-eslint/utils": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", "debug": "^4.3.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", + "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4" + } + }, + "@typescript-eslint/types": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", + "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", + "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/utils": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz", + "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==", + "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.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", + "semver": "^7.5.4" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", + "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.7.4", + "eslint-visitor-keys": "^3.4.1" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -15818,62 +17963,212 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.47.1.tgz", - "integrity": "sha512-zWHo/VbqAiRvhXP5byQqW7rGQtdanajHnItGqtmv8JaIi58zMPnmGZ1bW/drXIjU1fuOyfTVoDkNS7aEWGDSLg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.47.1" + "@typescript-eslint/utils": "5.62.0" } }, "@typescript-eslint/parser": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.1.tgz", - "integrity": "sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz", + "integrity": "sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.47.1", - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/typescript-estree": "5.47.1", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", "debug": "^4.3.4" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", + "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4" + } + }, + "@typescript-eslint/types": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", + "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", + "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", + "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.7.4", + "eslint-visitor-keys": "^3.4.1" + } + }, + "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/scope-manager": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.1.tgz", - "integrity": "sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, "requires": { - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/visitor-keys": "5.47.1" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" } }, "@typescript-eslint/type-utils": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.1.tgz", - "integrity": "sha512-/UKOeo8ee80A7/GJA427oIrBi/Gd4osk/3auBUg4Rn9EahFpevVV1mUK8hjyQD5lHPqX397x6CwOk5WGh1E/1w==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz", + "integrity": "sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.47.1", - "@typescript-eslint/utils": "5.47.1", + "@typescript-eslint/typescript-estree": "6.7.4", + "@typescript-eslint/utils": "6.7.4", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", + "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4" + } + }, + "@typescript-eslint/types": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", + "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", + "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/utils": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz", + "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==", + "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.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", + "semver": "^7.5.4" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", + "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.7.4", + "eslint-visitor-keys": "^3.4.1" + } + }, + "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/types": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.1.tgz", - "integrity": "sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.1.tgz", - "integrity": "sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/visitor-keys": "5.47.1", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -15908,18 +18203,18 @@ } }, "@typescript-eslint/utils": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.1.tgz", - "integrity": "sha512-l90SdwqfmkuIVaREZ2ykEfCezepCLxzWMo5gVfcJsJCaT4jHT+QjgSkYhs5BMQmWqE9k3AtIfk4g211z/sTMVw==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, "requires": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.47.1", - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/typescript-estree": "5.47.1", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" }, "dependencies": { @@ -15966,12 +18261,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.1.tgz", - "integrity": "sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -15984,6 +18279,11 @@ "@swc/core": "^1.3.56" } }, + "@vscode/l10n": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.16.tgz", + "integrity": "sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==" + }, "@zag-js/element-size": { "version": "0.3.2", "resolved": "https://registry.npmmirror.com/@zag-js/element-size/-/element-size-0.3.2.tgz", @@ -16006,6 +18306,12 @@ "dev": true, "requires": {} }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, "aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -16101,6 +18407,16 @@ "@babel/runtime-corejs3": "^7.10.2" } }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, "array-includes": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", @@ -16120,6 +18436,19 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -16157,6 +18486,21 @@ "get-intrinsic": "^1.1.3" } }, + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -16205,6 +18549,12 @@ "postcss-value-parser": "^4.2.0" } }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, "axe-core": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.1.tgz", @@ -16305,8 +18655,7 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-js": { "version": "1.5.1", @@ -16377,6 +18726,45 @@ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "peer": true, + "requires": { + "semver": "^7.0.0" + }, + "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, + "peer": 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, + "peer": 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, + "peer": true + } + } + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -16446,6 +18834,27 @@ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" }, + "chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "requires": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "requires": { + "lodash-es": "^4.17.21" + } + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -16557,8 +18966,7 @@ "commander": { "version": "10.0.0", "resolved": "https://registry.npmmirror.com/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", - "dev": true + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==" }, "common-tags": { "version": "1.8.2", @@ -16629,6 +19037,12 @@ "yaml": "^1.10.0" } }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "cross-fetch": { "version": "3.1.6", "resolved": "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-3.1.6.tgz", @@ -16822,12 +19236,24 @@ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, + "define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "requires": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } @@ -16901,6 +19327,68 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, + "editorconfig": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-2.0.0.tgz", + "integrity": "sha512-s1NQ63WQ7RNXH6Efb2cwuyRlfpbtdZubvfNe4vCuoyGPewNPY7vah8JUSOFBiJ+jr99Qh8t0xKv0oITc1dclgw==", + "dev": true, + "requires": { + "@one-ini/wasm": "0.1.1", + "commander": "^11.0.0", + "minimatch": "9.0.2", + "semver": "^7.5.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==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true + }, + "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" + } + }, + "minimatch": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", + "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", + "dev": true, + "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==", + "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 + } + } + }, "ejs": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", @@ -16939,36 +19427,61 @@ } }, "es-abstract": { - "version": "1.20.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", - "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "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-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "unbox-primitive": "^1.0.2" + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" } }, "es-shim-unscopables": { @@ -17165,16 +19678,101 @@ "eslint-plugin-react": "^7.27.1", "eslint-plugin-react-hooks": "^4.3.0", "eslint-plugin-testing-library": "^5.0.1" + }, + "dependencies": { + "@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^5.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==", + "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 + } } }, + "eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "requires": {} + }, "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" }, "dependencies": { "debug": { @@ -17189,9 +19787,9 @@ } }, "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "requires": { "debug": "^3.2.7" @@ -17208,6 +19806,17 @@ } } }, + "eslint-plugin-es-x": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", + "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", + "dev": true, + "peer": true, + "requires": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0" + } + }, "eslint-plugin-flowtype": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", @@ -17218,34 +19827,45 @@ "string-natural-compare": "^3.0.1" } }, + "eslint-plugin-header": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", + "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", + "dev": true, + "requires": {} + }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.13.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "doctrine": { @@ -17256,24 +19876,9 @@ "requires": { "esutils": "^2.0.2" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true } } }, - "eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" - } - }, "eslint-plugin-jsx-a11y": { "version": "6.6.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", @@ -17295,6 +19900,60 @@ "semver": "^6.3.0" } }, + "eslint-plugin-n": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", + "integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", + "dev": true, + "peer": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "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, + "peer": 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, + "peer": 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, + "peer": true + } + } + }, + "eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "requires": {} + }, "eslint-plugin-react": { "version": "7.31.11", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", @@ -17363,6 +20022,21 @@ "@typescript-eslint/utils": "^5.13.0" } }, + "eslint-plugin-unused-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz", + "integrity": "sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==", + "dev": true, + "requires": { + "eslint-rule-composer": "^0.3.0" + } + }, + "eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true + }, "eslint-scope": { "version": "7.2.0", "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.0.tgz", @@ -17373,23 +20047,6 @@ "estraverse": "^5.2.0" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, "eslint-visitor-keys": { "version": "3.4.1", "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", @@ -17645,6 +20302,15 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -17737,15 +20403,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" } }, "functions-have-names": { @@ -17761,13 +20427,14 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, @@ -17798,6 +20465,16 @@ "get-intrinsic": "^1.1.1" } }, + "get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "peer": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -17827,6 +20504,15 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -17890,6 +20576,12 @@ "get-intrinsic": "^1.1.1" } }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -18065,12 +20757,12 @@ "dev": true }, "internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, "requires": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -18080,6 +20772,12 @@ "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz", "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz", @@ -18102,6 +20800,17 @@ "is-decimal": "^1.0.0" } }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -18146,9 +20855,9 @@ "dev": true }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "requires": { "has": "^1.0.3" } @@ -18283,6 +20992,15 @@ "has-symbols": "^1.0.2" } }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -18292,6 +21010,12 @@ "call-bind": "^1.0.2" } }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -18444,6 +21168,11 @@ "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==", "dev": true }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -18509,6 +21238,65 @@ } } }, + "langium": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/langium/-/langium-2.0.2.tgz", + "integrity": "sha512-K9gycp9E88ZzJALJaBy7DSajD7GrWX2uwnYN4xL6MBtQZmiqX17fi4ZyN6HoVJjt40v7rrEUS5gRpzmrO8yO1w==", + "requires": { + "chevrotain": "^11.0.1", + "chevrotain-allstar": "^0.3.0", + "vscode-languageserver": "~8.0.2", + "vscode-languageserver-textdocument": "~1.0.8", + "vscode-uri": "~3.0.7" + }, + "dependencies": { + "vscode-jsonrpc": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz", + "integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==" + }, + "vscode-languageserver": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz", + "integrity": "sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==", + "requires": { + "vscode-languageserver-protocol": "3.17.2" + } + }, + "vscode-languageserver-protocol": { + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz", + "integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==", + "requires": { + "vscode-jsonrpc": "8.0.2", + "vscode-languageserver-types": "3.17.2" + } + }, + "vscode-languageserver-types": { + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz", + "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==" + } + } + }, + "langium-statemachine-dsl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/langium-statemachine-dsl/-/langium-statemachine-dsl-2.0.0.tgz", + "integrity": "sha512-exdyagTCtJs6eEewAKEoXh2pScBVEaYGjNINoNyQBPB8lxfHjvLsZb6PcFa3ypa/TanPG1mn6odIp62+TXq/Rw==", + "requires": { + "chalk": "~5.3.0", + "commander": "~10.0.0", + "langium": "~2.0.0", + "lodash": "^4.17.21" + }, + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" + } + } + }, "language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", @@ -18868,6 +21656,12 @@ "sourcemap-codec": "^1.4.8" } }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "markdown-table": { "version": "3.0.3", "resolved": "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz", @@ -19408,15 +22202,36 @@ } }, "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, "monaco-editor": { - "version": "0.38.0", - "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.38.0.tgz", - "integrity": "sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A==" + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.43.0.tgz", + "integrity": "sha512-cnoqwQi/9fml2Szamv1XbSJieGJ1Dc8tENVMD26Kcfl7xGQWp7OBKMjlwKVGYFJ3/AXJjSOGvcqK7Ry/j9BM1Q==" + }, + "monaco-editor-workers": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/monaco-editor-workers/-/monaco-editor-workers-0.43.0.tgz", + "integrity": "sha512-qO9b6uzXXS57lv5VodYr2jhuxd9resG38WBmc72thp+222kcJPg9eChMMJTXZbfDIPHYkBQNR0+zPrbIdVtU+w==", + "requires": { + "monaco-editor": "~0.43.0" + } + }, + "monaco-languageclient": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-6.5.2.tgz", + "integrity": "sha512-9SboGjIpGMVwxStLoWTfztNotxDEvNTPfxLToHOJZUo6YWkJI3MLdH+PsCM95VygBSxnBI6GF3Ab8Jslp6L1Nw==", + "requires": { + "@codingame/monaco-vscode-languages-service-override": "~1.82.4", + "@codingame/monaco-vscode-model-service-override": "~1.82.4", + "monaco-editor": "~0.43.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.82.4 <1.83.0", + "vscode-jsonrpc": "~8.1.0", + "vscode-languageclient": "~8.1.0" + } }, "mri": { "version": "1.2.0", @@ -19556,6 +22371,18 @@ "es-abstract": "^1.20.4" } }, + "object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "object.hasown": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", @@ -20195,6 +23022,15 @@ "decimal.js-light": "^2.4.1" } }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, "reduce-css-calc": { "version": "2.1.8", "resolved": "https://registry.npmmirror.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", @@ -20258,22 +23094,16 @@ } }, "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "regexpu-core": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", @@ -20354,6 +23184,11 @@ "unified": "^10.0.0" } }, + "request-light": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", + "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==" + }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -20361,11 +23196,11 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -20375,6 +23210,13 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "peer": true + }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -20458,6 +23300,18 @@ "mri": "^1.1.0" } }, + "safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -20508,6 +23362,17 @@ "randombytes": "^2.1.0" } }, + "set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -20523,6 +23388,27 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dev": true, + "requires": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + } + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -20678,26 +23564,37 @@ "side-channel": "^1.0.4" } }, + "string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "stringify-object": { @@ -20974,20 +23871,62 @@ "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", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + } + } + }, "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, @@ -21040,6 +23979,53 @@ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, "typescript": { "version": "5.0.4", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.0.4.tgz", @@ -21240,6 +24226,12 @@ "sade": "^1.7.3" } }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "vfile": { "version": "5.3.7", "resolved": "https://registry.npmmirror.com/vfile/-/vfile-5.3.7.tgz", @@ -21320,6 +24312,137 @@ "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.4", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.82.4.tgz", + "integrity": "sha512-hyqKIlucXSmT2YRgQPdfo6rchDPG8W3S2rSvRtrzQRBdLgbzjPf8p5yEcMDWrry3YQgFvVzPCIs81W7052JeUQ==", + "requires": { + "monaco-editor": "0.43.0" + } + }, + "vscode-json-languageservice": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.3.6.tgz", + "integrity": "sha512-P4kthBi3GMLKi7Lmp24nkKHAWxbFfCsIDBPlMrK1Tag1aqbl3l60UferDkfAasupDVBM2dekbArzGycUjw8OHA==", + "requires": { + "@vscode/l10n": "^0.0.16", + "jsonc-parser": "^3.2.0", + "vscode-languageserver-textdocument": "^1.0.8", + "vscode-languageserver-types": "^3.17.3", + "vscode-uri": "^3.0.7" + } + }, + "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": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.1.0.tgz", + "integrity": "sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw==", + "requires": { + "vscode-languageserver-protocol": "3.17.3" + } + }, + "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" + }, + "dependencies": { + "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-languageserver-textdocument": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", + "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==" + }, + "vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" + }, + "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-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==" + }, + "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", @@ -21364,6 +24487,19 @@ "is-symbol": "^1.0.3" } }, + "which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "workbox-background-sync": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz", @@ -21772,6 +24908,12 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -21792,4 +24934,4 @@ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==" } } -} +} \ No newline at end of file diff --git a/web/package.json b/web/package.json index 1dc7dcd80b..7caa3c21b3 100644 --- a/web/package.json +++ b/web/package.json @@ -17,6 +17,15 @@ "@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-editor-service-override": "~1.82.3", + "@codingame/monaco-vscode-keybindings-service-override": "~1.82.3", + "@codingame/monaco-vscode-languages-service-override": "~1.82.3", + "@codingame/monaco-vscode-model-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.4", "@emotion/react": "^11.11.0", "@emotion/styled": "^11.11.0", "@patternfly/react-log-viewer": "^5.0.0", @@ -37,8 +46,10 @@ "immer": "^10.0.2", "laf-client-sdk": "^1.0.0-beta.12", "lodash": "^4.17.21", - "monaco-editor": "^0.38.0", "pako": "^2.1.0", + "monaco-editor": "~0.43.0", + "monaco-editor-workers": "~0.43.0", + "monaco-languageclient": "~6.5.1", "qrcode.react": "^3.1.0", "react": "18.2.0", "react-datepicker": "^4.11.0", @@ -54,9 +65,16 @@ "recharts": "^2.7.2", "remark-gfm": "^3.0.1", "remark-math": "^5.1.1", + "request-light": "~0.7.0", "sass": "^1.62.1", "simplebar-react": "^3.2.4", "uuid": "^9.0.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.82.3 <1.83.0", + "vscode-json-languageservice": "~5.3.6", + "vscode-jsonrpc": "~8.1.0", + "vscode-languageclient": "~8.1.0", + "vscode-languageserver": "~8.1.0", + "vscode-ws-jsonrpc": "~3.0.0", "zustand": "^4.3.8" }, "devDependencies": { @@ -68,22 +86,33 @@ "@types/react-dom": "^18.2.4", "@types/react-syntax-highlighter": "^15.5.6", "@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", + "editorconfig": "~2.0.0", "eslint": "^8.41.0", "eslint-config-react-app": "^7.0.1", + "eslint-config-standard": "~17.1.0", + "eslint-plugin-header": "~3.1.1", + "eslint-plugin-import": "~2.28.1", + "eslint-plugin-promise": "~6.1.1", "eslint-plugin-simple-import-sort": "^10.0.0", "install": "^0.13.0", "lint-staged": "^13.2.2", "postcss": "^8.4.23", "prettier": "^2.8.8", "prettier-plugin-tailwindcss": "^0.3.0", + "shx": "~0.3.4", "tailwindcss": "^3.3.2", + "ts-node": "~10.9.1", "typescript": "5.0.4", "vite": "^4.3.8", "vite-plugin-pwa": "^0.16.4", - "vite-plugin-rewrite-all": "^1.0.1" + "vite-plugin-rewrite-all": "^1.0.1", + "vscode-languageserver-types": "~3.17.3" }, "lint-staged": { "*.{ts,tsx}": [ @@ -91,4 +120,4 @@ "prettier --write" ] } -} +} \ No newline at end of file diff --git a/web/src/App.tsx b/web/src/App.tsx index aa5b81d1c9..26df29090f 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -11,6 +11,7 @@ import { ClickToComponent } from "click-to-react-component"; import "@/utils/i18n"; import useAuthStore from "./pages/auth/store"; +import { performInit } from "./components/Editor/LanguageClient"; import useSiteSettingStore from "./pages/siteSetting"; import theme from "./chakraTheme"; import darkTheme from "./chakraThemeDark"; @@ -68,6 +69,10 @@ function APP() { initProviders(); }, [getSiteSettings, i18n.language, initProviders]); + useEffect(() => { + performInit(true); + }, []); + return ( diff --git a/web/src/components/Editor/ENVEditor.tsx b/web/src/components/Editor/ENVEditor.tsx index afa312df6c..2998bbb073 100644 --- a/web/src/components/Editor/ENVEditor.tsx +++ b/web/src/components/Editor/ENVEditor.tsx @@ -7,51 +7,51 @@ import "./userWorker"; const languageId = "dotenv"; -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", - }, -}); +// 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; diff --git a/web/src/components/Editor/FunctionEditor.tsx b/web/src/components/Editor/FunctionEditor.tsx index b795e82b1f..0e3365927c 100644 --- a/web/src/components/Editor/FunctionEditor.tsx +++ b/web/src/components/Editor/FunctionEditor.tsx @@ -1,106 +1,93 @@ -import { CSSProperties, useEffect, useRef } from "react"; -import { debounce } from "lodash"; +import { CSSProperties, useEffect, useMemo, useRef } from "react"; import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; +import { buildWorkerDefinition } from "monaco-editor-workers"; import { COLOR_MODE, Pages } from "@/constants"; import "./userWorker"; -import { AutoImportTypings } from "./typesResolve"; +import { createUrl, createWebSocketAndStartClient } from "./LanguageClient"; import useHotKey, { DEFAULT_SHORTCUTS } from "@/hooks/useHotKey"; -import useFunctionStore from "@/pages/app/functions/store"; import useGlobalStore from "@/pages/globalStore"; - -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", - }, -}); +buildWorkerDefinition( + "../../../node_modules/monaco-editor-workers/dist/workers/", + new URL("", window.location.href).href, + 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, +// /** +// * 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); + monaco.editor.getModel(monaco.Uri.file(path)) || + monaco.editor.createModel(value, "typescript", monaco.Uri.file(path)); if (editorRef.current?.getModel() !== newModel) { editorRef.current?.setModel(newModel); - autoImportTypings.parse(editorRef.current?.getValue() || ""); } }; @@ -130,9 +117,12 @@ function FunctionEditor(props: { const editorRef = useRef(); const subscriptionRef = useRef(undefined); const monacoEl = useRef(null); - + const hostname = "localhost"; + const path1 = ""; + const port = 30000; + const url = useMemo(() => createUrl(hostname, port, path1), [hostname, port, path1]); + // let lspWebSocket: WebSocket; const globalStore = useGlobalStore((state) => state); - const { isFetchButtonClicked, setIsFetchButtonClicked } = useFunctionStore((state) => state); useHotKey( DEFAULT_SHORTCUTS.send_request, @@ -147,54 +137,44 @@ function FunctionEditor(props: { useEffect(() => { if (monacoEl && !editorRef.current) { - editorRef.current = monaco.editor.create(monacoEl.current!, { - minimap: { - enabled: false, - }, - readOnly: readOnly, - language: "typescript", - automaticLayout: true, - scrollbar: { - verticalScrollbarSize: 4, - horizontalScrollbarSize: 8, - }, - formatOnPaste: true, - overviewRulerLanes: 0, - lineNumbersMinChars: 4, - fontSize: fontSize, - theme: colorMode === COLOR_MODE.dark ? "lafEditorThemeDark" : "lafEditorTheme", - scrollBeyondLastLine: false, - }); - - updateModel(path, value, editorRef); + const start = async () => { + editorRef.current = monaco.editor.create(monacoEl.current!, { + minimap: { + enabled: false, + }, + readOnly: readOnly, + language: "typescript", + automaticLayout: true, + scrollbar: { + verticalScrollbarSize: 4, + horizontalScrollbarSize: 8, + }, + formatOnPaste: true, + overviewRulerLanes: 0, + lineNumbersMinChars: 4, + fontSize: fontSize, + theme: colorMode === COLOR_MODE.dark ? "lafEditorThemeDark" : "lafEditorTheme", + scrollBeyondLastLine: false, + }); + updateModel(path, value, editorRef); - setTimeout(() => { - autoImportTypings.loadDefaults(); - }, 10); + // lspWebSocket = createWebSocketAndStartClient(url); + createWebSocketAndStartClient(url); + }; + start(); + + // window.onbeforeunload = () => { + // // On page reload/exit, close web socket connection + // lspWebSocket?.close(); + // }; + // return () => { + // // On component unmount, close web socket connection + // lspWebSocket?.close(); + // }; } return () => {}; - }, [colorMode, path, readOnly, value, fontSize]); - - useEffect(() => { - if (monacoEl && editorRef.current) { - if (isFetchButtonClicked) { - updateFetchModel(path, value, editorRef); - setIsFetchButtonClicked(); - } else { - updateModel(path, value, editorRef); - } - } - }, [path, value, isFetchButtonClicked, setIsFetchButtonClicked]); - - useEffect(() => { - if (monacoEl && editorRef.current) { - editorRef.current.updateOptions({ - fontSize: fontSize, - theme: colorMode === COLOR_MODE.dark ? "lafEditorThemeDark" : "lafEditorTheme", - }); - } - }, [colorMode, fontSize]); + }, [colorMode, path, readOnly, value, fontSize, url]); // onChange useEffect(() => { @@ -202,7 +182,6 @@ function FunctionEditor(props: { if (onChange) { subscriptionRef.current = editorRef.current?.onDidChangeModelContent((event) => { onChange(editorRef.current?.getValue()); - parseImports(editorRef.current?.getValue() || ""); }); } }, [onChange]); diff --git a/web/src/components/Editor/JSONEditor.tsx b/web/src/components/Editor/JSONEditor.tsx index a97f6fcaa2..268732f404 100644 --- a/web/src/components/Editor/JSONEditor.tsx +++ b/web/src/components/Editor/JSONEditor.tsx @@ -5,30 +5,30 @@ 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("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", - }, -}); +// monaco?.editor.defineTheme("JSONEditorThemeDark", { +// base: "vs-dark", +// inherit: true, +// rules: [], +// colors: { +// "editor.foreground": "#ffffff", +// "editor.background": "#202631", +// }, +// }); function JSONEditor(props: { value: string; diff --git a/web/src/components/Editor/LanguageClient.ts b/web/src/components/Editor/LanguageClient.ts new file mode 100644 index 0000000000..81006f54a0 --- /dev/null +++ b/web/src/components/Editor/LanguageClient.ts @@ -0,0 +1,119 @@ +import getConfigurationServiceOverride from "@codingame/monaco-vscode-configuration-service-override"; +import getTextmateServiceOverride from "@codingame/monaco-vscode-textmate-service-override"; +// import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override'; +import getThemeServiceOverride from "@codingame/monaco-vscode-theme-service-override"; +import { editor, languages } from "monaco-editor"; +import { initServices, MonacoLanguageClient } from "monaco-languageclient"; +import { Uri } from "vscode"; +import { createConfiguredEditor, IReference, ITextFileEditorModel } from "vscode/monaco"; +import { CloseAction, ErrorAction, MessageTransports } from "vscode-languageclient"; +import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from "vscode-ws-jsonrpc"; + +import "@codingame/monaco-vscode-theme-defaults-default-extension"; +import "@codingame/monaco-vscode-typescript-basics-default-extension"; + +export const createLanguageClient = (transports: MessageTransports): MonacoLanguageClient => { + return new MonacoLanguageClient({ + name: "Sample Language Client", + clientOptions: { + documentSelector: ["typescript"], + errorHandler: { + error: () => ({ action: ErrorAction.Continue }), + closed: () => ({ action: CloseAction.DoNotRestart }), + }, + workspaceFolder: { + uri: Uri.file("C:/Users/heheer/github/laf/web/"), + name: "Sample Workspace", + index: 0, + }, + }, + // create a language client connection from the JSON RPC connection on demand + connectionProvider: { + get: () => { + return Promise.resolve(transports); + }, + }, + }); +}; + +export const createUrl = ( + hostname: string, + port: number, + path: string, + searchParams?: Record, + secure?: boolean, +): string => { + const protocol = secure ? "wss" : "ws"; + const url = new URL(`${protocol}://${hostname}:${port}${path}`); + + return url.toString(); +}; + +export const createWebSocketAndStartClient = (url: string): WebSocket => { + const webSocket = new WebSocket(url); + webSocket.onopen = () => { + 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 type ExampleJsonEditor = { + languageId: string; + editor: editor.IStandaloneCodeEditor; + uri: Uri; + modelRef: IReference; +}; + +export const performInit = async (vscodeApiInit: boolean) => { + if (vscodeApiInit === true) { + await initServices({ + userServices: { + ...getThemeServiceOverride(), + ...getTextmateServiceOverride(), + ...getConfigurationServiceOverride(Uri.file("C:/Users/heheer/github/laf/web/")), + // ...getKeybindingsServiceOverride() + }, + debugLogging: true, + }); + + // register the TS language with Monaco + languages.register({ + id: "typescript", + extensions: [".ts", ".tsx"], + aliases: ["typescript", "javascript"], + mimetypes: ["text/typescript", "text/javascript"], + }); + } +}; + +export const createJsonEditor = async (config: { htmlElement: HTMLElement; content: string }) => { + // create monaco editor + const editor = createConfiguredEditor(config.htmlElement, { + minimap: { + enabled: false, + }, + readOnly: false, + language: "typescript", + automaticLayout: true, + scrollbar: { + verticalScrollbarSize: 4, + horizontalScrollbarSize: 8, + }, + formatOnPaste: true, + overviewRulerLanes: 0, + lineNumbersMinChars: 4, + fontSize: 14, + theme: "vs", + scrollBeyondLastLine: false, + }); + + return Promise.resolve(editor); +}; diff --git a/web/src/components/Editor/globalDefinition.ts b/web/src/components/Editor/globalDefinition.ts deleted file mode 100644 index 74966c0865..0000000000 --- a/web/src/components/Editor/globalDefinition.ts +++ /dev/null @@ -1,98 +0,0 @@ -export const globalDefinition = ` - -declare class FunctionConsole { - private _logs; - get logs(): any[]; - log(...params: any[]): void; -} - -interface File { - fieldname: string; - originalname: string; - encoding: string; - mimetype: string; - size: number; - destination: string; - filename: string; - path: string; -} - - -/** - * 云函数调用入参 - */ -interface FunctionContext { - /** - * auth 对象解析自 JWT Token Payload - */ - auth?: { - uid?: string - } - - /** - * 上传到云函数的文件 - */ - files?: File[]; - - /** - * HTTP headers - */ - headers?: IncomingHttpHeaders; - - /** - * HTTP Query 参数 (URL 参数),JSON 对象 - */ - query?: any; - - /** - * HTTP Body 参数, JSON 对象 - */ - body?: any; - - /** - * Trigger 调用时为触发器所带参数 - */ - params?: any; - - /** - * HTTP Request ID - */ - requestId?: string; - - /** - * 调用方法:GET | POST | PUT | DELETE | TRIGGER - */ - method?: string; - - /** - * Express Response 对象 - */ - response: HttpResponse - - /** - * WebSocket 对象 - */ - socket?: WebSocket -} - -interface IModule { - exports: IExports -} - -interface IExports { - /** - * 主函数,云函数的入口函数 - */ - main: (ctx: FunctionContext) => any -} - -declare const module: IModule -declare const exports: IExports -declare const console: FunctionConsole -declare const global: typeof globalThis - -/** - * 主函数,云函数的入口函数 - */ -declare function main(ctx: FunctionContext): any; -`; diff --git a/web/src/components/Editor/userWorker.ts b/web/src/components/Editor/userWorker.ts index 940d05782b..cabb94cc21 100644 --- a/web/src/components/Editor/userWorker.ts +++ b/web/src/components/Editor/userWorker.ts @@ -1,28 +1,28 @@ -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"; +// 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) { - if (label === "json") { - return new jsonWorker(); - } - if (label === "css" || label === "scss" || label === "less") { - return new cssWorker(); - } - if (label === "html" || label === "handlebars" || label === "razor") { - return new htmlWorker(); - } - if (label === "typescript" || label === "javascript") { - return new tsWorker(); - } - return new editorWorker(); - }, -}; +// // @ts-ignore +// // eslint-disable-next-line no-restricted-globals +// self.MonacoEnvironment = { +// getWorker(_: any, label: string) { +// if (label === "json") { +// return new jsonWorker(); +// } +// if (label === "css" || label === "scss" || label === "less") { +// return new cssWorker(); +// } +// if (label === "html" || label === "handlebars" || label === "razor") { +// return new htmlWorker(); +// } +// if (label === "typescript" || label === "javascript") { +// return new tsWorker(); +// } +// return new editorWorker(); +// }, +// }; -monaco.languages.typescript.typescriptDefaults.setEagerModelSync(true); +// // monaco.languages.typescript.typescriptDefaults.setEagerModelSync(true); diff --git a/web/src/pages/app/functions/mods/EditorPanel/index.tsx b/web/src/pages/app/functions/mods/EditorPanel/index.tsx index 8fcad48be9..7ff945f01b 100644 --- a/web/src/pages/app/functions/mods/EditorPanel/index.tsx +++ b/web/src/pages/app/functions/mods/EditorPanel/index.tsx @@ -43,7 +43,8 @@ function EditorPanel() { marginLeft: -14, marginRight: -14, }} - path={currentFunction?._id || ""} + path={`C:/Users/heheer/github/laf/web/${currentFunction?.name}.ts`} + // path={currentFunction?._id || ""} value={functionCache.getCache(currentFunction!._id, currentFunction!.source?.code)} onChange={(value) => { updateFunctionCode(currentFunction, value || ""); diff --git a/web/src/pages/functionTemplate/Mods/MonacoEditor/index.tsx b/web/src/pages/functionTemplate/Mods/MonacoEditor/index.tsx index 4b267274f8..9ecb429664 100644 --- a/web/src/pages/functionTemplate/Mods/MonacoEditor/index.tsx +++ b/web/src/pages/functionTemplate/Mods/MonacoEditor/index.tsx @@ -13,53 +13,53 @@ import AddFunctionModal from "../../CreateFuncTemplate/Mods/AddFunctionModal"; import FunctionPopOver from "./FunctionPopover"; -monaco?.editor.defineTheme("lafEditorTheme", { - base: "vs", - inherit: true, - rules: [ - { - foreground: "#0066ff", - token: "keyword", - }, - ], - colors: { - "editorLineNumber.foreground": "#aaa", - "editorOverviewRuler.border": "#fff", - "editor.lineHighlightBackground": "#F7F8FA", - "scrollbarSlider.background": "#E8EAEC", - "editorIndentGuide.activeBackground": "#fff", - "editorIndentGuide.background": "#eee", - }, -}); +// monaco?.editor.defineTheme("lafEditorTheme", { +// base: "vs", +// inherit: true, +// rules: [ +// { +// foreground: "#0066ff", +// 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", - }, -}); +// 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 = (value: string, editorRef: any) => { const newModel = monaco.editor.createModel(value, "typescript"); diff --git a/web/vite.config.ts b/web/vite.config.ts index 86c4afe691..50b1b3d6fa 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -1,5 +1,7 @@ import react from "@vitejs/plugin-react-swc"; +import * as fs from "fs"; import path from "path"; +import url from "url"; import { defineConfig, loadEnv } from "vite"; import { VitePWA } from "vite-plugin-pwa"; import pluginRewriteAll from "vite-plugin-rewrite-all"; @@ -68,5 +70,42 @@ export default defineConfig(({ command, mode }) => { }, }, }, + optimizeDeps: { + esbuildOptions: { + plugins: [ + // copied from "https://github.com/CodinGame/monaco-vscode-api/blob/main/demo/vite.config.ts" + { + name: "import.meta.url", + setup({ onLoad }) { + // Help vite that bundles/move files in dev mode without touching `import.meta.url` which breaks asset urls + onLoad({ filter: /.*\.js/, namespace: "file" }, async (args) => { + if (args.path.endsWith(".json")) return; + const code = fs.readFileSync(args.path, "utf8"); + const assetImportMetaUrlRE = + /\bnew\s+URL\s*\(\s*('[^']+'|"[^"]+"|`[^`]+`)\s*,\s*import\.meta\.url\s*(?:,\s*)?\)/g; + let i = 0; + let newCode = ""; + for ( + let match = assetImportMetaUrlRE.exec(code); + match != null; + match = assetImportMetaUrlRE.exec(code) + ) { + newCode += code.slice(i, match.index); + const path = match[1].slice(1, -1); + + const resolved = await import.meta.resolve!(path, url.pathToFileURL(args.path)); + newCode += `new URL(${JSON.stringify( + url.fileURLToPath(resolved), + )}, import.meta.url)`; + i = assetImportMetaUrlRE.lastIndex; + } + newCode += code.slice(i); + return { contents: newCode }; + }); + }, + }, + ], + }, + }, }; }); From 109ac15bb655a4c73505cdee11e5479bfea9deea Mon Sep 17 00:00:00 2001 From: heheer <1239331448@qq.com> Date: Wed, 11 Oct 2023 14:27:06 +0800 Subject: [PATCH 02/42] feat: add theme --- web/package-lock.json | 194 -- web/package.json | 3 +- web/src/components/Editor/FunctionEditor.tsx | 101 +- web/src/components/Editor/LanguageClient.ts | 1 - web/src/components/Editor/theme/index.js | 11 + .../Editor/theme/laf_editor_theme.json | 2111 +++++++++++++++++ 6 files changed, 2148 insertions(+), 273 deletions(-) create mode 100644 web/src/components/Editor/theme/index.js create mode 100644 web/src/components/Editor/theme/laf_editor_theme.json diff --git a/web/package-lock.json b/web/package-lock.json index e6f10fce69..3784a479e1 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -17,7 +17,6 @@ "@codingame/monaco-vscode-languages-service-override": "~1.82.3", "@codingame/monaco-vscode-model-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.4", "@emotion/react": "^11.11.0", @@ -72,7 +71,6 @@ "zustand": "^4.3.8" }, "devDependencies": { - "@types/express": "~4.17.18", "@types/lodash": "^4.14.194", "@types/node": "20.2.3", "@types/pako": "^2.0.2", @@ -3245,14 +3243,6 @@ "vscode-textmate": "^9.0.0" } }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension": { - "version": "1.82.4", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-1.82.4.tgz", - "integrity": "sha512-2uCHJGXqtA21pQKfgq+nlc5g6RoBLrjvFID0xhjYKOjRbFywV/YGNfNtFVRIXy0SP8ZK2M9ownNbcewbt3mEjQ==", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" - } - }, "node_modules/@codingame/monaco-vscode-theme-service-override": { "version": "1.82.4", "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-1.82.4.tgz", @@ -4505,25 +4495,6 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, - "node_modules/@types/body-parser": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz", - "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", - "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/d3-array": { "version": "3.0.5", "resolved": "https://registry.npmmirror.com/@types/d3-array/-/d3-array-3.0.5.tgz", @@ -4592,30 +4563,6 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "node_modules/@types/express": { - "version": "4.17.18", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.18.tgz", - "integrity": "sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.37", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz", - "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, "node_modules/@types/hast": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", @@ -4624,12 +4571,6 @@ "@types/unist": "*" } }, - "node_modules/@types/http-errors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz", - "integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==", - "dev": true - }, "node_modules/@types/json-schema": { "version": "7.0.13", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", @@ -4676,12 +4617,6 @@ "@types/unist": "*" } }, - "node_modules/@types/mime": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz", - "integrity": "sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==", - "dev": true - }, "node_modules/@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz", @@ -4709,18 +4644,6 @@ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, - "node_modules/@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.5.tgz", - "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==", - "dev": true - }, "node_modules/@types/react": { "version": "18.2.7", "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.2.7.tgz", @@ -4781,27 +4704,6 @@ "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", "dev": true }, - "node_modules/@types/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz", - "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz", - "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==", - "dev": true, - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, "node_modules/@types/trusted-types": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", @@ -16716,14 +16618,6 @@ "vscode-textmate": "^9.0.0" } }, - "@codingame/monaco-vscode-theme-defaults-default-extension": { - "version": "1.82.4", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-1.82.4.tgz", - "integrity": "sha512-2uCHJGXqtA21pQKfgq+nlc5g6RoBLrjvFID0xhjYKOjRbFywV/YGNfNtFVRIXy0SP8ZK2M9ownNbcewbt3mEjQ==", - "requires": { - "vscode": "npm:@codingame/monaco-vscode-api@1.82.4" - } - }, "@codingame/monaco-vscode-theme-service-override": { "version": "1.82.4", "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-1.82.4.tgz", @@ -17541,25 +17435,6 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, - "@types/body-parser": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz", - "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", - "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/d3-array": { "version": "3.0.5", "resolved": "https://registry.npmmirror.com/@types/d3-array/-/d3-array-3.0.5.tgz", @@ -17628,30 +17503,6 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "@types/express": { - "version": "4.17.18", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.18.tgz", - "integrity": "sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.37", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz", - "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, "@types/hast": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", @@ -17660,12 +17511,6 @@ "@types/unist": "*" } }, - "@types/http-errors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz", - "integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==", - "dev": true - }, "@types/json-schema": { "version": "7.0.13", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", @@ -17712,12 +17557,6 @@ "@types/unist": "*" } }, - "@types/mime": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz", - "integrity": "sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==", - "dev": true - }, "@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz", @@ -17745,18 +17584,6 @@ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, - "@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.5.tgz", - "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==", - "dev": true - }, "@types/react": { "version": "18.2.7", "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.2.7.tgz", @@ -17817,27 +17644,6 @@ "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", "dev": true }, - "@types/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz", - "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/serve-static": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz", - "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==", - "dev": true, - "requires": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, "@types/trusted-types": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", diff --git a/web/package.json b/web/package.json index 7caa3c21b3..e91e1158d2 100644 --- a/web/package.json +++ b/web/package.json @@ -23,7 +23,6 @@ "@codingame/monaco-vscode-languages-service-override": "~1.82.3", "@codingame/monaco-vscode-model-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.4", "@emotion/react": "^11.11.0", @@ -120,4 +119,4 @@ "prettier --write" ] } -} \ No newline at end of file +} diff --git a/web/src/components/Editor/FunctionEditor.tsx b/web/src/components/Editor/FunctionEditor.tsx index 0e3365927c..17dec045c4 100644 --- a/web/src/components/Editor/FunctionEditor.tsx +++ b/web/src/components/Editor/FunctionEditor.tsx @@ -5,87 +5,25 @@ import { buildWorkerDefinition } from "monaco-editor-workers"; import { COLOR_MODE, Pages } from "@/constants"; import "./userWorker"; +import "./theme"; import { createUrl, createWebSocketAndStartClient } from "./LanguageClient"; import useHotKey, { DEFAULT_SHORTCUTS } from "@/hooks/useHotKey"; import useGlobalStore from "@/pages/globalStore"; + buildWorkerDefinition( - "../../../node_modules/monaco-editor-workers/dist/workers/", + "../../../../node_modules/monaco-editor-workers/dist/workers/", new URL("", window.location.href).href, 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, -// /** -// * 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.file(path)) || monaco.editor.createModel(value, "typescript", monaco.Uri.file(path)); + console.log(editorRef.current?.getModel() !== newModel); if (editorRef.current?.getModel() !== newModel) { editorRef.current?.setModel(newModel); } @@ -153,7 +91,7 @@ function FunctionEditor(props: { overviewRulerLanes: 0, lineNumbersMinChars: 4, fontSize: fontSize, - theme: colorMode === COLOR_MODE.dark ? "lafEditorThemeDark" : "lafEditorTheme", + theme: "lafEditorTheme", scrollBeyondLastLine: false, }); updateModel(path, value, editorRef); @@ -162,17 +100,19 @@ function FunctionEditor(props: { createWebSocketAndStartClient(url); }; start(); - - // window.onbeforeunload = () => { - // // On page reload/exit, close web socket connection - // lspWebSocket?.close(); - // }; - // return () => { - // // On component unmount, close web socket connection - // lspWebSocket?.close(); - // }; + } else if (monacoEl && editorRef.current) { + updateModel(path, value, editorRef); } + // window.onbeforeunload = () => { + // // On page reload/exit, close web socket connection + // lspWebSocket?.close(); + // }; + // return () => { + // // On component unmount, close web socket connection + // lspWebSocket?.close(); + // }; + return () => {}; }, [colorMode, path, readOnly, value, fontSize, url]); @@ -186,6 +126,15 @@ function FunctionEditor(props: { } }, [onChange]); + useEffect(() => { + if (monacoEl && editorRef.current) { + editorRef.current.updateOptions({ + fontSize: fontSize, + theme: "lafEditorTheme", + }); + } + }, [colorMode, fontSize]); + return
; } diff --git a/web/src/components/Editor/LanguageClient.ts b/web/src/components/Editor/LanguageClient.ts index 81006f54a0..6d9d2b1892 100644 --- a/web/src/components/Editor/LanguageClient.ts +++ b/web/src/components/Editor/LanguageClient.ts @@ -9,7 +9,6 @@ import { createConfiguredEditor, IReference, ITextFileEditorModel } from "vscode import { CloseAction, ErrorAction, MessageTransports } from "vscode-languageclient"; import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from "vscode-ws-jsonrpc"; -import "@codingame/monaco-vscode-theme-defaults-default-extension"; import "@codingame/monaco-vscode-typescript-basics-default-extension"; export const createLanguageClient = (transports: MessageTransports): MonacoLanguageClient => { diff --git a/web/src/components/Editor/theme/index.js b/web/src/components/Editor/theme/index.js new file mode 100644 index 0000000000..eec184714a --- /dev/null +++ b/web/src/components/Editor/theme/index.js @@ -0,0 +1,11 @@ +import { registerExtension } from 'vscode/extensions'; + +var manifest = { + name: "theme-append", displayName: "Default Themes", description: "The default Visual Studio light and dark themes", categories: ["Themes"], version: "1.0.0", publisher: "vscode", license: "MIT", engines: { vscode: "*" }, contributes: { + themes: [{id: "lafEditorTheme", label: "lafEditorTheme", uiTheme: "lafEditorTheme", path: "./themes/laf_editor_theme.json"}] + }, repository: { type: "git", url: "https://github.com/microsoft/vscode.git" }, main: undefined +}; + +const { registerFileUrl, whenReady } = registerExtension(manifest); +registerFileUrl('./themes/laf_editor_theme.json', new URL('./laf_editor_theme.json', import.meta.url).toString(), 'application/json'); +export { whenReady }; diff --git a/web/src/components/Editor/theme/laf_editor_theme.json b/web/src/components/Editor/theme/laf_editor_theme.json new file mode 100644 index 0000000000..b4274fbcb3 --- /dev/null +++ b/web/src/components/Editor/theme/laf_editor_theme.json @@ -0,0 +1,2111 @@ +// { +// "$schema": "vscode://schemas/color-theme", +// "name": "lafEditorTheme", +// // "include": "./light_modern.json", +// "colors": { +// "editorLineNumber.foreground": "#aaa", +// "editorOverviewRuler.border": "#fff", +// "editor.lineHighlightBackground": "#F7F8FA", +// "scrollbarSlider.background": "#E8EAEC", +// "editorIndentGuide.activeBackground1": "#fff", +// "editorIndentGuide.background1": "#eee", +// }, +// "tokenColors": [ +// { +// "scope": "keyword", +// "settings": { +// "foreground": "#008189" +// } +// }, +// { +// "scope": "keyword.control", +// "settings": { +// "foreground": "#008189" +// } +// }, +// { +// "scope": [ +// "keyword.operator.new", +// "keyword.operator.expression", +// "keyword.operator.cast", +// "keyword.operator.sizeof", +// "keyword.operator.alignof", +// "keyword.operator.typeid", +// "keyword.operator.alignas", +// "keyword.operator.instanceof", +// "keyword.operator.logical.python", +// "keyword.operator.wordlike" +// ], +// "settings": { +// "foreground": "#008189" +// } +// }, +// ], +// } +{ + "$schema": "vscode://schemas/color-theme", + "type": "dark", + "colors": { + "activityBar.activeFocusBorder": "#ffed72", + "activityBar.background": "#161b1e", + "activityBar.border": "#161b1e", + "activityBar.foreground": "#b8c4c3", + "activityBar.inactiveForeground": "#545f62", + "activityBarBadge.background": "#ffed72", + "activityBarBadge.foreground": "#273136", + "badge.background": "#ffed72", + "badge.foreground": "#273136", + "banner.background": "#3a4449", + "banner.foreground": "#b8c4c3", + "banner.iconForeground": "#b8c4c3", + "breadcrumb.activeSelectionForeground": "#f2fffc", + "breadcrumb.focusForeground": "#b8c4c3", + "breadcrumb.foreground": "#8b9798", + "button.background": "#3a4449", + "button.foreground": "#b8c4c3", + "button.hoverBackground": "#545f62", + "button.secondaryBackground": "#3a4449", + "button.secondaryForeground": "#b8c4c3", + "button.secondaryHoverBackground": "#545f62", + "button.separator": "#273136", + "charts.blue": "#7cd5f1", + "charts.foreground": "#f2fffc", + "charts.green": "#a2e57b", + "charts.lines": "#6b7678", + "charts.orange": "#ffb270", + "charts.purple": "#baa0f8", + "charts.red": "#ff6d7e", + "charts.yellow": "#ffed72", + "checkbox.background": "#3a4449", + "checkbox.border": "#3a4449", + "checkbox.foreground": "#f2fffc", + "commandCenter.activeBackground": "#273136", + "commandCenter.activeForeground": "#b8c4c3", + "commandCenter.background": "#1d2528", + "commandCenter.border": "#273136", + "commandCenter.foreground": "#8b9798", + "debugConsole.errorForeground": "#ff6d7e", + "debugConsole.infoForeground": "#7cd5f1", + "debugConsole.sourceForeground": "#f2fffc", + "debugConsole.warningForeground": "#ffb270", + "debugConsoleInputIcon.foreground": "#ffed72", + "debugExceptionWidget.background": "#3a4449", + "debugExceptionWidget.border": "#273136", + "debugIcon.breakpointCurrentStackframeForeground": "#ffed72", + "debugIcon.breakpointDisabledForeground": "#b8c4c3", + "debugIcon.breakpointForeground": "#ff6d7e", + "debugIcon.breakpointStackframeForeground": "#f2fffc", + "debugIcon.breakpointUnverifiedForeground": "#ffb270", + "debugIcon.continueForeground": "#f2fffc", + "debugIcon.disconnectForeground": "#f2fffc", + "debugIcon.pauseForeground": "#f2fffc", + "debugIcon.restartForeground": "#a2e57b", + "debugIcon.startForeground": "#a2e57b", + "debugIcon.stepBackForeground": "#f2fffc", + "debugIcon.stepIntoForeground": "#f2fffc", + "debugIcon.stepOutForeground": "#f2fffc", + "debugIcon.stepOverForeground": "#f2fffc", + "debugIcon.stopForeground": "#ff6d7e", + "debugTokenExpression.boolean": "#ffb270", + "debugTokenExpression.error": "#ff6d7e", + "debugTokenExpression.name": "#7cd5f1", + "debugTokenExpression.number": "#baa0f8", + "debugTokenExpression.string": "#ffed72", + "debugTokenExpression.value": "#f2fffc", + "debugToolBar.background": "#3a4449", + "debugView.exceptionLabelBackground": "#ff6d7e", + "debugView.exceptionLabelForeground": "#273136", + "debugView.stateLabelBackground": "#a2e57b", + "debugView.stateLabelForeground": "#273136", + "debugView.valueChangedHighlight": "#ffed72", + "descriptionForeground": "#8b9798", + "diffEditor.diagonalFill": "#3a4449", + "diffEditor.insertedLineBackground": "#a2e57b19", + "diffEditor.insertedTextBackground": "#a2e57b19", + "diffEditor.removedLineBackground": "#ff6d7e19", + "diffEditor.removedTextBackground": "#ff6d7e19", + "diffEditorGutter.insertedLineBackground": "#a2e57b19", + "diffEditorGutter.removedLineBackground": "#ff6d7e19", + "diffEditorOverview.insertedForeground": "#a2e57ba5", + "diffEditorOverview.removedForeground": "#ff6d7ea5", + "dropdown.background": "#273136", + "dropdown.border": "#273136", + "dropdown.foreground": "#8b9798", + "dropdown.listBackground": "#3a4449", + "editor.background": "#273136", + "editor.findMatchBackground": "#f2fffc26", + "editor.findMatchBorder": "#ffed72", + "editor.findMatchHighlightBackground": "#f2fffc26", + "editor.findMatchHighlightBorder": "#00000000", + "editor.findRangeHighlightBackground": "#f2fffc0c", + "editor.findRangeHighlightBorder": "#00000000", + "editor.focusedStackFrameHighlightBackground": "#b8c4c326", + "editor.foldBackground": "#f2fffc0c", + "editor.foreground": "#f2fffc", + "editor.hoverHighlightBackground": "#f2fffc0c", + "editor.inactiveSelectionBackground": "#f2fffc0c", + "editor.inlineValuesBackground": "#545f62", + "editor.inlineValuesForeground": "#b8c4c3", + "editor.lineHighlightBackground": "#f2fffc0c", + "editor.lineHighlightBorder": "#00000000", + "editor.linkedEditingBackground": "#3a4449", + "editor.rangeHighlightBackground": "#3a4449", + "editor.rangeHighlightBorder": "#3a4449", + "editor.selectionBackground": "#b8c4c326", + "editor.selectionHighlightBackground": "#f2fffc26", + "editor.selectionHighlightBorder": "#00000000", + "editor.stackFrameHighlightBackground": "#b8c4c326", + "editor.wordHighlightBackground": "#f2fffc26", + "editor.wordHighlightBorder": "#00000000", + "editor.wordHighlightStrongBackground": "#f2fffc26", + "editor.wordHighlightStrongBorder": "#00000000", + "editorBracketHighlight.foreground1": "#ff6d7e", + "editorBracketHighlight.foreground2": "#ffb270", + "editorBracketHighlight.foreground3": "#ffed72", + "editorBracketHighlight.foreground4": "#a2e57b", + "editorBracketHighlight.foreground5": "#7cd5f1", + "editorBracketHighlight.foreground6": "#baa0f8", + "editorBracketMatch.background": "#273136", + "editorBracketMatch.border": "#6b7678", + "editorCodeLens.foreground": "#6b7678", + "editorCursor.background": "#273136", + "editorCursor.foreground": "#f2fffc", + "editorError.background": "#00000000", + "editorError.border": "#00000000", + "editorError.foreground": "#ff6d7e", + "editorGroup.border": "#1d2528", + "editorGroup.dropBackground": "#1d2528bf", + "editorGroup.emptyBackground": "#161b1e", + "editorGroup.focusedEmptyBorder": "#1d2528", + "editorGroupHeader.noTabsBackground": "#273136", + "editorGroupHeader.tabsBackground": "#273136", + "editorGroupHeader.tabsBorder": "#273136", + "editorGutter.addedBackground": "#a2e57b", + "editorGutter.background": "#273136", + "editorGutter.deletedBackground": "#ff6d7e", + "editorGutter.foldingControlForeground": "#b8c4c3", + "editorGutter.modifiedBackground": "#ffb270", + "editorHint.border": "#273136", + "editorHint.foreground": "#baa0f8", + "editorHoverWidget.background": "#3a4449", + "editorHoverWidget.border": "#273136", + "editorIndentGuide.background": "#3a4449", + "editorInfo.background": "#00000000", + "editorInfo.border": "#273136", + "editorInfo.foreground": "#7cd5f1", + "editorLightBulb.foreground": "#ffed72", + "editorLightBulbAutoFix.foreground": "#a2e57b", + "editorLineNumber.activeForeground": "#b8c4c3", + "editorLineNumber.foreground": "#545f62", + "editorLink.activeForeground": "#7cd5f1", + "editorMarkerNavigation.background": "#3a4449", + "editorMarkerNavigationError.background": "#ff6d7e", + "editorMarkerNavigationInfo.background": "#7cd5f1", + "editorMarkerNavigationWarning.background": "#ffb270", + "editorOverviewRuler.addedForeground": "#a2e57b", + "editorOverviewRuler.border": "#273136", + "editorOverviewRuler.currentContentForeground": "#3a4449", + "editorOverviewRuler.deletedForeground": "#ff6d7e", + "editorOverviewRuler.errorForeground": "#ff6d7e", + "editorOverviewRuler.findMatchForeground": "#f2fffc26", + "editorOverviewRuler.incomingContentForeground": "#3a4449", + "editorOverviewRuler.infoForeground": "#7cd5f1", + "editorOverviewRuler.modifiedForeground": "#ffb270", + "editorOverviewRuler.rangeHighlightForeground": "#f2fffc26", + "editorOverviewRuler.selectionHighlightForeground": "#f2fffc26", + "editorOverviewRuler.warningForeground": "#ffb270", + "editorOverviewRuler.wordHighlightForeground": "#f2fffc26", + "editorOverviewRuler.wordHighlightStrongForeground": "#f2fffc26", + "editorPane.background": "#273136", + "editorRuler.foreground": "#545f62", + "editorSuggestWidget.background": "#3a4449", + "editorSuggestWidget.border": "#3a4449", + "editorSuggestWidget.foreground": "#b8c4c3", + "editorSuggestWidget.highlightForeground": "#f2fffc", + "editorSuggestWidget.selectedBackground": "#6b7678", + "editorUnnecessaryCode.opacity": "#000000a5", + "editorWarning.background": "#00000000", + "editorWarning.border": "#00000000", + "editorWarning.foreground": "#ffb270", + "editorWhitespace.foreground": "#545f62", + "editorWidget.background": "#3a4449", + "editorWidget.border": "#3a4449", + "errorForeground": "#ff6d7e", + "extensionBadge.remoteForeground": "#a2e57b", + "extensionButton.prominentBackground": "#3a4449", + "extensionButton.prominentForeground": "#f2fffc", + "extensionButton.prominentHoverBackground": "#545f62", + "extensionIcon.preReleaseForeground": "#baa0f8", + "extensionIcon.sponsorForeground": "#7cd5f1", + "extensionIcon.starForeground": "#ffed72", + "extensionIcon.verifiedForeground": "#a2e57b", + "focusBorder": "#6b7678", + "foreground": "#f2fffc", + "gitDecoration.addedResourceForeground": "#a2e57b", + "gitDecoration.conflictingResourceForeground": "#ffb270", + "gitDecoration.deletedResourceForeground": "#ff6d7e", + "gitDecoration.ignoredResourceForeground": "#545f62", + "gitDecoration.modifiedResourceForeground": "#ffed72", + "gitDecoration.stageDeletedResourceForeground": "#ff6d7e", + "gitDecoration.stageModifiedResourceForeground": "#ffed72", + "gitDecoration.untrackedResourceForeground": "#b8c4c3", + "icon.foreground": "#8b9798", + "input.background": "#3a4449", + "input.border": "#3a4449", + "input.foreground": "#f2fffc", + "input.placeholderForeground": "#6b7678", + "inputOption.activeBackground": "#545f62", + "inputOption.activeBorder": "#545f62", + "inputOption.activeForeground": "#f2fffc", + "inputOption.hoverBackground": "#545f62", + "inputValidation.errorBackground": "#3a4449", + "inputValidation.errorBorder": "#ff6d7e", + "inputValidation.errorForeground": "#ff6d7e", + "inputValidation.infoBackground": "#3a4449", + "inputValidation.infoBorder": "#7cd5f1", + "inputValidation.infoForeground": "#7cd5f1", + "inputValidation.warningBackground": "#3a4449", + "inputValidation.warningBorder": "#ffb270", + "inputValidation.warningForeground": "#ffb270", + "keybindingLabel.background": "#545f62", + "keybindingLabel.border": "#545f62", + "keybindingLabel.bottomBorder": "#3a4449", + "keybindingLabel.foreground": "#b8c4c3", + "list.activeSelectionBackground": "#f2fffc0c", + "list.activeSelectionForeground": "#ffed72", + "list.dropBackground": "#1d2528bf", + "list.errorForeground": "#ff6d7e", + "list.focusBackground": "#273136", + "list.focusForeground": "#f2fffc", + "list.highlightForeground": "#f2fffc", + "list.hoverBackground": "#f2fffc0c", + "list.hoverForeground": "#f2fffc", + "list.inactiveFocusBackground": "#273136", + "list.inactiveSelectionBackground": "#b8c4c30c", + "list.inactiveSelectionForeground": "#ffed72", + "list.invalidItemForeground": "#ff6d7e", + "list.warningForeground": "#ffb270", + "listFilterWidget.background": "#273136", + "listFilterWidget.noMatchesOutline": "#ff6d7e", + "listFilterWidget.outline": "#273136", + "menu.background": "#273136", + "menu.border": "#1d2528", + "menu.foreground": "#f2fffc", + "menu.selectionForeground": "#ffed72", + "menu.separatorBackground": "#3a4449", + "menubar.selectionForeground": "#f2fffc", + "merge.border": "#273136", + "merge.commonContentBackground": "#f2fffc19", + "merge.commonHeaderBackground": "#f2fffc26", + "merge.currentContentBackground": "#ff6d7e19", + "merge.currentHeaderBackground": "#ff6d7e26", + "merge.incomingContentBackground": "#a2e57b19", + "merge.incomingHeaderBackground": "#a2e57b26", + "mergeEditor.change.background": "#f2fffc19", + "mergeEditor.change.word.background": "#f2fffc19", + "mergeEditor.conflict.handled.minimapOverViewRuler": "#a2e57b", + "mergeEditor.conflict.handledFocused.border": "#a2e57b", + "mergeEditor.conflict.handledUnfocused.border": "#a2e57b", + "mergeEditor.conflict.unhandled.minimapOverViewRuler": "#ff6d7e", + "mergeEditor.conflict.unhandledFocused.border": "#ff6d7e", + "mergeEditor.conflict.unhandledUnfocused.border": "#ff6d7e", + "minimap.errorHighlight": "#ff6d7ea5", + "minimap.findMatchHighlight": "#8b9798a5", + "minimap.selectionHighlight": "#b8c4c326", + "minimap.selectionOccurrenceHighlight": "#6b7678a5", + "minimap.warningHighlight": "#ffb270a5", + "minimapGutter.addedBackground": "#a2e57b", + "minimapGutter.deletedBackground": "#ff6d7e", + "minimapGutter.modifiedBackground": "#ffed72", + "notebook.cellBorderColor": "#3a4449", + "notebook.cellEditorBackground": "#1d25287f", + "notebook.cellInsertionIndicator": "#f2fffc", + "notebook.cellStatusBarItemHoverBackground": "#6b7678", + "notebook.cellToolbarSeparator": "#3a4449", + "notebook.editorBackground": "#273136", + "notebook.focusedEditorBorder": "#6b7678", + "notebookStatusErrorIcon.foreground": "#ff6d7e", + "notebookStatusRunningIcon.foreground": "#f2fffc", + "notebookStatusSuccessIcon.foreground": "#a2e57b", + "notificationCenter.border": "#3a4449", + "notificationCenterHeader.background": "#3a4449", + "notificationCenterHeader.foreground": "#8b9798", + "notificationLink.foreground": "#ffed72", + "notificationToast.border": "#3a4449", + "notifications.background": "#3a4449", + "notifications.border": "#3a4449", + "notifications.foreground": "#b8c4c3", + "notificationsErrorIcon.foreground": "#ff6d7e", + "notificationsInfoIcon.foreground": "#7cd5f1", + "notificationsWarningIcon.foreground": "#ffb270", + "panel.background": "#3a4449", + "panel.border": "#273136", + "panelTitle.activeBorder": "#ffed72", + "panelTitle.activeForeground": "#ffed72", + "panelTitle.inactiveForeground": "#8b9798", + "peekView.border": "#273136", + "peekViewEditor.background": "#3a4449", + "peekViewEditor.matchHighlightBackground": "#545f62", + "peekViewEditorGutter.background": "#3a4449", + "peekViewResult.background": "#3a4449", + "peekViewResult.fileForeground": "#8b9798", + "peekViewResult.lineForeground": "#8b9798", + "peekViewResult.matchHighlightBackground": "#545f62", + "peekViewResult.selectionBackground": "#3a4449", + "peekViewResult.selectionForeground": "#f2fffc", + "peekViewTitle.background": "#3a4449", + "peekViewTitleDescription.foreground": "#8b9798", + "peekViewTitleLabel.foreground": "#f2fffc", + "pickerGroup.border": "#273136", + "pickerGroup.foreground": "#545f62", + "ports.iconRunningProcessForeground": "#a2e57b", + "problemsErrorIcon.foreground": "#ff6d7e", + "problemsInfoIcon.foreground": "#7cd5f1", + "problemsWarningIcon.foreground": "#ffb270", + "profileBadge.background": "#3a4449", + "profileBadge.foreground": "#b8c4c3", + "progressBar.background": "#3a4449", + "sash.hoverBorder": "#6b7678", + "scrollbar.shadow": "#273136", + "scrollbarSlider.activeBackground": "#f2fffc59", + "scrollbarSlider.background": "#b8c4c326", + "scrollbarSlider.hoverBackground": "#f2fffc26", + "selection.background": "#b8c4c326", + "settings.checkboxBackground": "#3a4449", + "settings.checkboxBorder": "#3a4449", + "settings.checkboxForeground": "#f2fffc", + "settings.dropdownBackground": "#3a4449", + "settings.dropdownBorder": "#3a4449", + "settings.dropdownForeground": "#f2fffc", + "settings.dropdownListBorder": "#8b9798", + "settings.headerForeground": "#ffed72", + "settings.modifiedItemIndicator": "#ffed72", + "settings.numberInputBackground": "#3a4449", + "settings.numberInputBorder": "#3a4449", + "settings.numberInputForeground": "#f2fffc", + "settings.rowHoverBackground": "#6b76780c", + "settings.textInputBackground": "#3a4449", + "settings.textInputBorder": "#3a4449", + "settings.textInputForeground": "#f2fffc", + "sideBar.background": "#1d2528", + "sideBar.border": "#161b1e", + "sideBar.dropBackground": "#1d2528bf", + "sideBar.foreground": "#8b9798", + "sideBarSectionHeader.background": "#1d2528", + "sideBarSectionHeader.foreground": "#6b7678", + "sideBarTitle.foreground": "#545f62", + "statusBar.background": "#1d2528", + "statusBar.border": "#161b1e", + "statusBar.debuggingBackground": "#6b7678", + "statusBar.debuggingBorder": "#1d2528", + "statusBar.debuggingForeground": "#f2fffc", + "statusBar.focusBorder": "#3a4449", + "statusBar.foreground": "#6b7678", + "statusBar.noFolderBackground": "#1d2528", + "statusBar.noFolderBorder": "#161b1e", + "statusBar.noFolderForeground": "#6b7678", + "statusBarItem.activeBackground": "#273136", + "statusBarItem.errorBackground": "#273136", + "statusBarItem.errorForeground": "#ff6d7e", + "statusBarItem.focusBorder": "#6b7678", + "statusBarItem.hoverBackground": "#f2fffc0c", + "statusBarItem.prominentBackground": "#3a4449", + "statusBarItem.prominentHoverBackground": "#3a4449", + "statusBarItem.remoteBackground": "#1d2528", + "statusBarItem.remoteForeground": "#a2e57b", + "statusBarItem.warningBackground": "#273136", + "statusBarItem.warningForeground": "#ffb270", + "symbolIcon.arrayForeground": "#ff6d7e", + "symbolIcon.booleanForeground": "#ff6d7e", + "symbolIcon.classForeground": "#7cd5f1", + "symbolIcon.colorForeground": "#baa0f8", + "symbolIcon.constantForeground": "#baa0f8", + "symbolIcon.constructorForeground": "#a2e57b", + "symbolIcon.enumeratorForeground": "#ffb270", + "symbolIcon.enumeratorMemberForeground": "#ffb270", + "symbolIcon.eventForeground": "#ffb270", + "symbolIcon.fieldForeground": "#ffb270", + "symbolIcon.fileForeground": "#b8c4c3", + "symbolIcon.folderForeground": "#b8c4c3", + "symbolIcon.functionForeground": "#a2e57b", + "symbolIcon.interfaceForeground": "#7cd5f1", + "symbolIcon.keyForeground": "#ffb270", + "symbolIcon.keywordForeground": "#ff6d7e", + "symbolIcon.methodForeground": "#a2e57b", + "symbolIcon.moduleForeground": "#7cd5f1", + "symbolIcon.namespaceForeground": "#7cd5f1", + "symbolIcon.nullForeground": "#baa0f8", + "symbolIcon.numberForeground": "#baa0f8", + "symbolIcon.objectForeground": "#7cd5f1", + "symbolIcon.operatorForeground": "#ff6d7e", + "symbolIcon.packageForeground": "#baa0f8", + "symbolIcon.propertyForeground": "#ffb270", + "symbolIcon.referenceForeground": "#baa0f8", + "symbolIcon.snippetForeground": "#a2e57b", + "symbolIcon.stringForeground": "#ffed72", + "symbolIcon.structForeground": "#ff6d7e", + "symbolIcon.textForeground": "#ffed72", + "symbolIcon.typeParameterForeground": "#ffb270", + "symbolIcon.unitForeground": "#baa0f8", + "symbolIcon.variableForeground": "#7cd5f1", + "tab.activeBackground": "#273136", + "tab.activeBorder": "#ffed72", + "tab.activeForeground": "#ffed72", + "tab.activeModifiedBorder": "#545f62", + "tab.border": "#273136", + "tab.hoverBackground": "#273136", + "tab.hoverBorder": "#545f62", + "tab.hoverForeground": "#f2fffc", + "tab.inactiveBackground": "#273136", + "tab.inactiveForeground": "#8b9798", + "tab.inactiveModifiedBorder": "#545f62", + "tab.lastPinnedBorder": "#545f62", + "tab.unfocusedActiveBorder": "#8b9798", + "tab.unfocusedActiveForeground": "#b8c4c3", + "tab.unfocusedActiveModifiedBorder": "#3a4449", + "tab.unfocusedHoverBackground": "#273136", + "tab.unfocusedHoverBorder": "#273136", + "tab.unfocusedHoverForeground": "#b8c4c3", + "tab.unfocusedInactiveForeground": "#8b9798", + "tab.unfocusedInactiveModifiedBorder": "#3a4449", + "terminal.ansiBlack": "#3a4449", + "terminal.ansiBlue": "#ffb270", + "terminal.ansiBrightBlack": "#6b7678", + "terminal.ansiBrightBlue": "#ffb270", + "terminal.ansiBrightCyan": "#7cd5f1", + "terminal.ansiBrightGreen": "#a2e57b", + "terminal.ansiBrightMagenta": "#baa0f8", + "terminal.ansiBrightRed": "#ff6d7e", + "terminal.ansiBrightWhite": "#f2fffc", + "terminal.ansiBrightYellow": "#ffed72", + "terminal.ansiCyan": "#7cd5f1", + "terminal.ansiGreen": "#a2e57b", + "terminal.ansiMagenta": "#baa0f8", + "terminal.ansiRed": "#ff6d7e", + "terminal.ansiWhite": "#f2fffc", + "terminal.ansiYellow": "#ffed72", + "terminal.background": "#3a4449", + "terminal.foreground": "#f2fffc", + "terminal.selectionBackground": "#f2fffc26", + "terminalCommandDecoration.defaultBackground": "#f2fffc", + "terminalCommandDecoration.errorBackground": "#ff6d7e", + "terminalCommandDecoration.successBackground": "#a2e57b", + "terminalCursor.background": "#00000000", + "terminalCursor.foreground": "#f2fffc", + "testing.iconErrored": "#ff6d7e", + "testing.iconFailed": "#ff6d7e", + "testing.iconPassed": "#a2e57b", + "testing.iconQueued": "#f2fffc", + "testing.iconSkipped": "#ffb270", + "testing.iconUnset": "#8b9798", + "testing.message.error.decorationForeground": "#ff6d7e", + "testing.message.error.lineBackground": "#ff6d7e19", + "testing.message.info.decorationForeground": "#f2fffc", + "testing.message.info.lineBackground": "#f2fffc19", + "testing.runAction": "#ffed72", + "textBlockQuote.background": "#3a4449", + "textBlockQuote.border": "#3a4449", + "textCodeBlock.background": "#3a4449", + "textLink.activeForeground": "#f2fffc", + "textLink.foreground": "#ffed72", + "textPreformat.foreground": "#f2fffc", + "textSeparator.foreground": "#6b7678", + "titleBar.activeBackground": "#1d2528", + "titleBar.activeForeground": "#8b9798", + "titleBar.border": "#161b1e", + "titleBar.inactiveBackground": "#1d2528", + "titleBar.inactiveForeground": "#545f62", + "walkThrough.embeddedEditorBackground": "#1d2528", + "welcomePage.progress.background": "#6b7678", + "welcomePage.progress.foreground": "#8b9798", + "welcomePage.tileBackground": "#3a4449", + "welcomePage.tileHoverBackground": "#545f62", + "widget.shadow": "#161b1e", + //"actionBar.toggledBackground": "#545f62", + //"activityBar.activeBorder": "#b8c4c3", + //"activityBar.dropBorder": "#b8c4c3", + //"breadcrumb.background": "#273136", + //"breadcrumbPicker.background": "#3a4449", + //"chat.requestBorder": "#ffffff1a", + //"chat.slashCommandBackground": "#ffed72", + //"chat.slashCommandForeground": "#273136", + //"checkbox.selectBackground": "#3a4449", + //"checkbox.selectBorder": "#8b9798", + //"commandCenter.activeBorder": "#8b97984d", + //"commandCenter.debuggingBackground": "#6b767842", + //"commandCenter.inactiveBorder": "#545f6240", + //"commandCenter.inactiveForeground": "#545f62", + //"commentsView.resolvedIcon": "#cccccc80", + //"commentsView.unresolvedIcon": "#6b7678", + //"diffEditor.move.border": "#8b8b8b9c", + //"diffEditor.moveActive.border": "#ffa500", + //"diffEditor.unchangedCodeBackground": "#74747429", + //"diffEditor.unchangedRegionBackground": "#3e3e3e", + //"diffEditor.unchangedRegionForeground": "#a3a2a2", + //"disabledForeground": "#cccccc80", + //"editor.snippetFinalTabstopHighlightBorder": "#525252", + //"editor.snippetTabstopHighlightBackground": "#7c7c7c4d", + //"editor.symbolHighlightBackground": "#f2fffc26", + //"editor.wordHighlightTextBackground": "#f2fffc26", + //"editor.wordHighlightTextBorder": "#00000000", + //"editorActiveLineNumber.foreground": "#c6c6c6", + //"editorBracketHighlight.unexpectedBracket.foreground": "#ff1212cc", + //"editorBracketPairGuide.activeBackground1": "#00000000", + //"editorBracketPairGuide.activeBackground2": "#00000000", + //"editorBracketPairGuide.activeBackground3": "#00000000", + //"editorBracketPairGuide.activeBackground4": "#00000000", + //"editorBracketPairGuide.activeBackground5": "#00000000", + //"editorBracketPairGuide.activeBackground6": "#00000000", + //"editorBracketPairGuide.background1": "#00000000", + //"editorBracketPairGuide.background2": "#00000000", + //"editorBracketPairGuide.background3": "#00000000", + //"editorBracketPairGuide.background4": "#00000000", + //"editorBracketPairGuide.background5": "#00000000", + //"editorBracketPairGuide.background6": "#00000000", + //"editorCommentsWidget.rangeActiveBackground": "#6b76781a", + //"editorCommentsWidget.rangeBackground": "#6b76781a", + //"editorCommentsWidget.resolvedBorder": "#cccccc80", + //"editorCommentsWidget.unresolvedBorder": "#6b7678", + //"editorGhostText.foreground": "#ffffff56", + //"editorGroup.dropIntoPromptBackground": "#3a4449", + //"editorGroup.dropIntoPromptForeground": "#f2fffc", + //"editorGutter.commentGlyphForeground": "#f2fffc", + //"editorGutter.commentRangeForeground": "#2d373c", + //"editorGutter.commentUnresolvedGlyphForeground": "#f2fffc", + //"editorHoverWidget.foreground": "#f2fffc", + //"editorHoverWidget.highlightForeground": "#f2fffc", + //"editorHoverWidget.statusBarBackground": "#465258", + //"editorIndentGuide.activeBackground": "#545f62", + //"editorIndentGuide.activeBackground1": "#545f62", + //"editorIndentGuide.activeBackground2": "#00000000", + //"editorIndentGuide.activeBackground3": "#00000000", + //"editorIndentGuide.activeBackground4": "#00000000", + //"editorIndentGuide.activeBackground5": "#00000000", + //"editorIndentGuide.activeBackground6": "#00000000", + //"editorIndentGuide.background1": "#3a4449", + //"editorIndentGuide.background2": "#00000000", + //"editorIndentGuide.background3": "#00000000", + //"editorIndentGuide.background4": "#00000000", + //"editorIndentGuide.background5": "#00000000", + //"editorIndentGuide.background6": "#00000000", + //"editorInlayHint.background": "#ffed721a", + //"editorInlayHint.foreground": "#969696", + //"editorInlayHint.parameterBackground": "#ffed721a", + //"editorInlayHint.parameterForeground": "#969696", + //"editorInlayHint.typeBackground": "#ffed721a", + //"editorInlayHint.typeForeground": "#969696", + //"editorMarkerNavigationError.headerBackground": "#ff6d7e1a", + //"editorMarkerNavigationInfo.headerBackground": "#7cd5f11a", + //"editorMarkerNavigationWarning.headerBackground": "#ffb2701a", + //"editorOverviewRuler.bracketMatchForeground": "#a0a0a0", + //"editorOverviewRuler.commentForeground": "#2d373c", + //"editorOverviewRuler.commentUnresolvedForeground": "#2d373c", + //"editorOverviewRuler.commonContentForeground": "#f2fffc26", + //"editorOverviewRuler.wordHighlightTextForeground": "#f2fffc26", + //"editorStickyScroll.background": "#273136", + //"editorStickyScrollHover.background": "#2a2d2e", + //"editorSuggestWidget.focusHighlightForeground": "#f2fffc", + //"editorSuggestWidget.selectedForeground": "#ffed72", + //"editorSuggestWidgetStatus.foreground": "#b8c4c380", + //"editorUnicodeHighlight.background": "#bd9b0326", + //"editorUnicodeHighlight.border": "#bd9b03", + //"editorWidget.foreground": "#f2fffc", + //"extensionBadge.remoteBackground": "#ffed72", + //"extensionButton.background": "#3a4449", + //"extensionButton.foreground": "#b8c4c3", + //"extensionButton.hoverBackground": "#545f62", + //"extensionButton.separator": "#273136", + //"gitDecoration.renamedResourceForeground": "#73c991", + //"gitDecoration.submoduleResourceForeground": "#8db9e2", + //"gitlens.closedAutolinkedIssueIconColor": "#a371f7", + //"gitlens.closedPullRequestIconColor": "#f85149", + //"gitlens.decorations.addedForegroundColor": "#a2e57b", + //"gitlens.decorations.branchAheadForegroundColor": "#35b15e", + //"gitlens.decorations.branchBehindForegroundColor": "#b15e35", + //"gitlens.decorations.branchDivergedForegroundColor": "#d8af1b", + //"gitlens.decorations.branchMissingUpstreamForegroundColor": "#c74e39", + //"gitlens.decorations.branchUnpublishedForegroundColor": "#35b15e", + //"gitlens.decorations.branchUpToDateForegroundColor": "#8b9798", + //"gitlens.decorations.copiedForegroundColor": "#73c991", + //"gitlens.decorations.deletedForegroundColor": "#ff6d7e", + //"gitlens.decorations.ignoredForegroundColor": "#545f62", + //"gitlens.decorations.modifiedForegroundColor": "#ffed72", + //"gitlens.decorations.renamedForegroundColor": "#73c991", + //"gitlens.decorations.untrackedForegroundColor": "#b8c4c3", + //"gitlens.decorations.workspaceCurrentForegroundColor": "#35b15e", + //"gitlens.decorations.workspaceRepoMissingForegroundColor": "#909090", + //"gitlens.decorations.workspaceRepoOpenForegroundColor": "#35b15e", + //"gitlens.decorations.worktreeHasUncommittedChangesForegroundColor": "#e2c08d", + //"gitlens.decorations.worktreeMissingForegroundColor": "#c74e39", + //"gitlens.graphChangesColumnAddedColor": "#347d39", + //"gitlens.graphChangesColumnDeletedColor": "#c93c37", + //"gitlens.graphLane10Color": "#2ece9d", + //"gitlens.graphLane1Color": "#15a0bf", + //"gitlens.graphLane2Color": "#0669f7", + //"gitlens.graphLane3Color": "#8e00c2", + //"gitlens.graphLane4Color": "#c517b6", + //"gitlens.graphLane5Color": "#d90171", + //"gitlens.graphLane6Color": "#cd0101", + //"gitlens.graphLane7Color": "#f25d2e", + //"gitlens.graphLane8Color": "#f2ca33", + //"gitlens.graphLane9Color": "#7bd938", + //"gitlens.graphMinimapMarkerHeadColor": "#05e617", + //"gitlens.graphMinimapMarkerHighlightsColor": "#fbff0a", + //"gitlens.graphMinimapMarkerLocalBranchesColor": "#3087cf", + //"gitlens.graphMinimapMarkerRemoteBranchesColor": "#2b5e88", + //"gitlens.graphMinimapMarkerStashesColor": "#b34db3", + //"gitlens.graphMinimapMarkerTagsColor": "#6b562e", + //"gitlens.graphMinimapMarkerUpstreamColor": "#09ae17", + //"gitlens.graphScrollMarkerHeadColor": "#05e617", + //"gitlens.graphScrollMarkerHighlightsColor": "#fbff0a", + //"gitlens.graphScrollMarkerLocalBranchesColor": "#3087cf", + //"gitlens.graphScrollMarkerRemoteBranchesColor": "#2b5e88", + //"gitlens.graphScrollMarkerStashesColor": "#b34db3", + //"gitlens.graphScrollMarkerTagsColor": "#6b562e", + //"gitlens.graphScrollMarkerUpstreamColor": "#09ae17", + //"gitlens.gutterBackgroundColor": "#ffffff13", + //"gitlens.gutterForegroundColor": "#bebebe", + //"gitlens.gutterUncommittedForegroundColor": "#00bcf299", + //"gitlens.lineHighlightBackgroundColor": "#00bcf233", + //"gitlens.lineHighlightOverviewRulerColor": "#00bcf299", + //"gitlens.mergedPullRequestIconColor": "#a371f7", + //"gitlens.openAutolinkedIssueIconColor": "#3fb950", + //"gitlens.openPullRequestIconColor": "#3fb950", + //"gitlens.trailingLineBackgroundColor": "#00000000", + //"gitlens.trailingLineForegroundColor": "#99999959", + //"gitlens.unpublishedChangesIconColor": "#35b15e", + //"gitlens.unpublishedCommitIconColor": "#35b15e", + //"gitlens.unpulledChangesIconColor": "#b15e35", + //"inlineChat.background": "#3a4449", + //"inlineChat.border": "#3a4449", + //"inlineChat.regionHighlight": "#f2fffc0c", + //"inlineChat.shadow": "#161b1e", + //"inlineChatDiff.inserted": "#a2e57b0c", + //"inlineChatDiff.removed": "#ff6d7e0c", + //"inlineChatInput.background": "#3a4449", + //"inlineChatInput.border": "#3a4449", + //"inlineChatInput.focusBorder": "#6b7678", + //"inlineChatInput.placeholderForeground": "#6b7678", + //"interactive.activeCodeBorder": "#273136", + //"interactive.inactiveCodeBorder": "#b8c4c30c", + //"issues.closed": "#cb2431", + //"issues.newIssueDecoration": "#ffffff48", + //"issues.open": "#3fb950", + //"keybindingTable.headerBackground": "#f2fffc0a", + //"keybindingTable.rowsBackground": "#f2fffc0a", + //"list.deemphasizedForeground": "#8c8c8c", + //"list.filterMatchBackground": "#f2fffc26", + //"list.filterMatchBorder": "#00000000", + //"list.focusHighlightForeground": "#f2fffc", + //"list.focusOutline": "#6b7678", + //"listFilterWidget.shadow": "#161b1e", + //"menu.selectionBackground": "#f2fffc0c", + //"menubar.selectionBackground": "#5a5d5e50", + //"mergeEditor.changeBase.background": "#4b1818", + //"mergeEditor.changeBase.word.background": "#6f1313", + //"mergeEditor.conflict.input1.background": "#ff6d7e0f", + //"mergeEditor.conflict.input2.background": "#a2e57b0f", + //"mergeEditor.conflictingLines.background": "#ffea0047", + //"minimap.foregroundOpacity": "#000000", + //"minimap.infoHighlight": "#7cd5f1", + //"minimapSlider.activeBackground": "#f2fffc2d", + //"minimapSlider.background": "#b8c4c313", + //"minimapSlider.hoverBackground": "#f2fffc13", + //"notebook.focusedCellBorder": "#6b7678", + //"notebook.inactiveFocusedCellBorder": "#3a4449", + //"notebook.selectedCellBackground": "#b8c4c30c", + //"notebook.selectedCellBorder": "#3a4449", + //"notebook.symbolHighlightBackground": "#ffffff0b", + //"notebookEditorOverviewRuler.runningCellForeground": "#a2e57b", + //"notebookScrollbarSlider.activeBackground": "#f2fffc59", + //"notebookScrollbarSlider.background": "#b8c4c326", + //"notebookScrollbarSlider.hoverBackground": "#f2fffc26", + //"panel.dropBorder": "#ffed72", + //"panelInput.border": "#3a4449", + //"panelSection.border": "#273136", + //"panelSection.dropBackground": "#1d2528bf", + //"panelSectionHeader.background": "#80808033", + //"peekViewEditorStickyScroll.background": "#3a4449", + //"pullRequests.closed": "#cb2431", + //"pullRequests.draft": "#6e7681", + //"pullRequests.merged": "#8957e5", + //"pullRequests.notification": "#7cd5f1", + //"pullRequests.open": "#3fb950", + //"quickInput.background": "#3a4449", + //"quickInput.foreground": "#f2fffc", + //"quickInputList.focusBackground": "#f2fffc0c", + //"quickInputList.focusForeground": "#ffed72", + //"quickInputTitle.background": "#ffffff1b", + //"scm.providerBorder": "#454545", + //"search.resultsInfoForeground": "#f2fffca6", + //"searchEditor.findMatchBackground": "#f2fffc19", + //"searchEditor.findMatchBorder": "#00000000", + //"searchEditor.textInputBorder": "#3a4449", + //"settings.focusedRowBackground": "#f2fffc07", + //"settings.focusedRowBorder": "#6b7678", + //"settings.headerBorder": "#273136", + //"settings.sashBorder": "#273136", + //"settings.settingsHeaderHoverForeground": "#ffed72b3", + //"sideBySideEditor.horizontalBorder": "#1d2528", + //"sideBySideEditor.verticalBorder": "#1d2528", + //"simpleFindWidget.sashBorder": "#454545", + //"statusBarItem.compactHoverBackground": "#ffffff33", + //"statusBarItem.errorHoverBackground": "#f2fffc0c", + //"statusBarItem.errorHoverForeground": "#6b7678", + //"statusBarItem.hoverForeground": "#6b7678", + //"statusBarItem.offlineBackground": "#6c1717", + //"statusBarItem.offlineForeground": "#a2e57b", + //"statusBarItem.offlineHoverBackground": "#f2fffc0c", + //"statusBarItem.offlineHoverForeground": "#6b7678", + //"statusBarItem.prominentForeground": "#6b7678", + //"statusBarItem.prominentHoverForeground": "#6b7678", + //"statusBarItem.remoteHoverBackground": "#f2fffc0c", + //"statusBarItem.remoteHoverForeground": "#6b7678", + //"statusBarItem.warningHoverBackground": "#f2fffc0c", + //"statusBarItem.warningHoverForeground": "#6b7678", + //"tab.unfocusedActiveBackground": "#273136", + //"tab.unfocusedInactiveBackground": "#273136", + //"terminal.border": "#273136", + //"terminal.dropBackground": "#1d2528bf", + //"terminal.findMatchBackground": "#f2fffc26", + //"terminal.findMatchHighlightBackground": "#f2fffc26", + //"terminal.hoverHighlightBackground": "#f2fffc06", + //"terminal.inactiveSelectionBackground": "#f2fffc13", + //"terminal.tab.activeBorder": "#ffed72", + //"terminalOverviewRuler.cursorForeground": "#a0a0a0cc", + //"terminalOverviewRuler.findMatchForeground": "#f2fffc26", + //"testing.peekBorder": "#ff6d7e", + //"testing.peekHeaderBackground": "#ff6d7e1a", + //"toolbar.activeBackground": "#63666750", + //"toolbar.hoverBackground": "#5a5d5e50", + //"tree.inactiveIndentGuidesStroke": "#58585866", + //"tree.indentGuidesStroke": "#585858", + //"tree.tableColumnsBorder": "#cccccc20", + //"tree.tableOddRowsBackground": "#f2fffc0a", + //"walkthrough.stepTitle.foreground": "#ffffff", + //"welcomePage.tileBorder": "#ffffff1a", + //"activityBar.activeBackground": null, + //"button.border": null, + //"contrastActiveBorder": null, + //"contrastBorder": null, + //"debugToolBar.border": null, + //"diffEditor.border": null, + //"diffEditor.insertedTextBorder": null, + //"diffEditor.removedTextBorder": null, + //"editor.selectionForeground": null, + //"editor.snippetFinalTabstopHighlightBackground": null, + //"editor.snippetTabstopHighlightBorder": null, + //"editor.symbolHighlightBorder": null, + //"editorGhostText.background": null, + //"editorGhostText.border": null, + //"editorGroup.dropIntoPromptBorder": null, + //"editorGroupHeader.border": null, + //"editorLineNumber.dimmedForeground": null, + //"editorOverviewRuler.background": null, + //"editorSuggestWidget.selectedIconForeground": null, + //"editorUnnecessaryCode.border": null, + //"editorWidget.resizeBorder": null, + //"list.activeSelectionIconForeground": null, + //"list.focusAndSelectionOutline": null, + //"list.inactiveFocusOutline": null, + //"list.inactiveSelectionIconForeground": null, + //"menu.selectionBorder": null, + //"menubar.selectionBorder": null, + //"minimap.background": null, + //"notebook.cellHoverBackground": null, + //"notebook.focusedCellBackground": null, + //"notebook.inactiveSelectedCellBorder": null, + //"notebook.outputContainerBackgroundColor": null, + //"notebook.outputContainerBorderColor": null, + //"panelSectionHeader.border": null, + //"panelSectionHeader.foreground": null, + //"peekViewEditor.matchHighlightBorder": null, + //"quickInput.list.focusBackground": null, + //"quickInputList.focusIconForeground": null, + //"sideBarSectionHeader.border": null, + //"tab.activeBorderTop": null, + //"tab.unfocusedActiveBorderTop": null, + //"terminal.findMatchBorder": null, + //"terminal.findMatchHighlightBorder": null, + //"terminal.selectionForeground": null, + //"toolbar.hoverOutline": null, + //"welcomePage.background": null, + //"widget.border": null, + //"window.activeBorder": null, + //"window.inactiveBorder": null + }, + "tokenColors": [ + { + "scope": [ + "comment", + "comment keyword", + "comment markup.underline.link", + "comment string", + "comment punctuation.definition", + "comment punctuation", + "comment text" + ], + "settings": { + "foreground": "#6B7678", + "fontStyle": "italic" + } + }, + { + "scope": "comment storage.type", + "settings": { + "foreground": "#6B7678" + } + }, + { + "scope": "comment entity.name.type", + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": [ + "comment variable", + "comment variable.other" + ], + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": "comment keyword.codetag.notation", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "comment.git-status.header.remote", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "comment.git-status.header.local", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "comment.other.git-status.head", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "string.quoted.docstring", + "string.quoted.docstring punctuation.definition" + ], + "settings": { + "foreground": "#6B7678" + } + }, + { + "scope": "constant", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "constant.other.caps", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.placeholder.c", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": "constant.other.property", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.citation.latex", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.color", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.character-class.escape", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.key", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.symbol", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": "constant.other.elm", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "constant.numeric", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.numeric.line-number.find-in-files", + "settings": { + "foreground": "#545F62" + } + }, + { + "scope": "constant.numeric.line-number.match.find-in-files", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "entity.name.section", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": [ + "entity.name.function", + "entity.name.function.templated", + "entity.name.function.member.static" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "entity.name.type.class.templated", + "entity.name.type.class.generic", + "entity.name.type.namespace" + ], + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.name.label", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "entity.name.function.preprocessor", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.name", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "entity.name.class", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.name.constant", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "entity.name.namespace", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "entity.name.tag", + "entity.name.tag.js.jsx support.class.component.js.jsx", + "entity.name.tag support.class.component", + "source.vue support.class.component" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "entity.name.function.operator", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "meta.brackets entity.name.function.operator", + "punctuation.separator entity.name.function.operator" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "entity.name.type", + "entity.name.type.class.reference", + "entity.name.type.class.value" + ], + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": [ + "entity.other.attribute-name.class.css", + "entity.other.attribute-name.parent-selector-suffix.css", + "entity.other.attribute-name.parent-selector-suffix.css punctuation.definition.entity.css", + "entity.other.attribute-name.css", + "entity.other.animation-name.css" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "entity.other.attribute-name.id.css", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "entity.other.attribute-name.pseudo-class.css", + "entity.other.pseudo-class.css", + "entity.other.pseudo-element.css" + ], + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": [ + "entity.name.function", + "support.function" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "entity.other.git-status.hex", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "entity.other.jinja2.delimiter", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "entity.name.operator.custom-literal", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "entity.name.operator.custom-literal.string", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "entity.name.operator.custom-literal.number", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "entity.name.type.rust", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.name.lifetime.rust", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "invalid", + "settings": { + "foreground": "#FF6D7E", + "fontStyle": "italic underline" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#FFB270", + "fontStyle": "italic underline" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "keyword.operator", + "keyword.operator.member", + "keyword.operator.new" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "keyword.other.substitution", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "keyword.other.template.begin", + "keyword.other.template.end" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "keyword.operator.heading.restructuredtext", + "keyword.operator.table.row.restructuredtext keyword.operator.table.data.restructuredtext" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "keyword.other.parenthesis.elm", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "keyword.other.fn.rust", + "keyword.other.rust", + "keyword.other.unsafe.rust", + "keyword.other.where.rust" + ], + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": [ + "keyword.control.rust", + "keyword.operator.misc.rust" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "keyword.declaration.class.ruby", + "keyword.declaration.function.ruby", + "keyword.declaration.namespace.ruby" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.heading", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "markup.raw", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "markup.inserted", + "markup.inserted punctuation.definition.inserted" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "markup.deleted", + "markup.deleted punctuation.definition.deleted" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "markup.changed", + "markup.changed punctuation.definition.changed" + ], + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": [ + "markup.ignored", + "markup.ignored punctuation.definition.ignored" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "markup.untracked", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "markup.quote", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": [ + "meta.brace.round", + "meta.brace.square", + "meta.brace.curly", + "meta.delimiter.comma.js", + "meta.function-call.without-arguments.js", + "meta.function-call.method.without-arguments.js" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "meta.function-call.generic.python", + "support.function.builtin.python" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "meta.function-call.python meta.function-call.arguments.python", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "meta.instance.constructor", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "meta.attribute-with-value.class string", + "meta.attribute.class.html string" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "meta.attribute-with-value.id string", + "meta.attribute.id.html string" + ], + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": "source.json meta.mapping.key string", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "source.yaml meta.mapping.key string", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "meta.object.member", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "meta.property-list.css variable.other", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "entity.name.constant.preprocessor", + "meta.preprocessor" + ], + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "meta.diff.git-diff.header", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "meta.type_params.rust", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "meta.attribute.rust", + "meta.annotation.rust", + "variable.language.rust", + "variable.annotation.rust", + "meta.annotation.rust string", + "meta.annotation.rust keyword", + "meta.annotation.rust keyword.operator", + "meta.attribute.rust string" + ], + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": "punctuation", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "punctuation.definition.tag", + "punctuation.definition.tag source", + "punctuation.definition.group.begin.ruby", + "punctuation.definition.group.end.ruby", + "punctuation.definition.group.begin.css", + "punctuation.definition.group.end.css", + "punctuation.definition.string.end.html source.css" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "punctuation.definition.group", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "punctuation.definition.comment", + "settings": { + "foreground": "#6B7678" + } + }, + { + "scope": [ + "punctuation.definition.variable", + "punctuation.definition.keyword.scss", + "punctuation.definition.entity.css" + ], + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": [ + "punctuation.section.embedded", + "punctuation.section.embedded entity.name.tag", + "punctuation.section.embedded constant.other", + "punctuation.section.embedded source", + "punctuation.section.embedded.begin" + ], + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "punctuation.template-string.element.begin", + "punctuation.template-string.element.end", + "punctuation.definition.string.template.begin", + "punctuation.definition.string.template.end", + "string.quoted.template punctuation.definition.string.begin", + "string.quoted.template punctuation.definition.string.end", + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "meta.paragraph.markdown meta.dummy.line-break", + "meta.paragraph.markdown meta.hard-line-break.markdown" + ], + "settings": { + "background": "#BAA0F8" + } + }, + { + "scope": "markup.underline.link punctuation", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "region.redish", + "settings": { + "foreground": "#FF6D7E", + "background": "#FF6D7E59" + } + }, + { + "scope": "region.orangish", + "settings": { + "foreground": "#FFB270", + "background": "#FFB27059" + } + }, + { + "scope": "region.yellowish", + "settings": { + "foreground": "#FFED72", + "background": "#FFED7259" + } + }, + { + "scope": "region.greenish", + "settings": { + "foreground": "#A2E57B", + "background": "#A2E57B59" + } + }, + { + "scope": "region.bluish", + "settings": { + "foreground": "#7CD5F1", + "background": "#7CD5F159" + } + }, + { + "scope": "region.purplish", + "settings": { + "foreground": "#BAA0F8", + "background": "#BAA0F859" + } + }, + { + "scope": "region.pinkish", + "settings": { + "foreground": "#FF6D7E", + "background": "#FF6D7E59" + } + }, + { + "scope": "region.whitish", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "source", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "source.scss", + "source.sass" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "source.sass variable.other", + "source.sass variable.sass", + "source.scss variable.other", + "source.scss variable.scss", + "source.scss variable.sass", + "source.css variable.other", + "source.css variable.scss", + "source.less variable.other", + "source.less variable.other.less", + "source.less variable.declaration.less" + ], + "settings": { + "foreground": "#FFB270", + "fontStyle": "italic" + } + }, + { + "scope": "source.git-show.commit.sha", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": [ + "source.git-show.author", + "source.git-show.date", + "source.git-diff.command", + "source.git-diff.command meta.diff.git-diff.header.from-file", + "source.git-diff.command meta.diff.git-diff.header.to-file" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "source.git-show meta.diff.git-diff.header.extended.index.from-sha", + "source.git-show meta.diff.git-diff.header.extended.index.to-sha" + ], + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "source.git-show meta.diff.range.unified", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "source.git-show meta.diff.header.from-file", + "source.git-show meta.diff.header.to-file" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": "storage.type.extends", + "settings": { + "foreground": "#FF6D7E", + "fontStyle": "normal" + } + }, + { + "scope": "storage.type.function.arrow", + "settings": { + "foreground": "#FF6D7E", + "fontStyle": "normal" + } + }, + { + "scope": [ + "storage.modifier", + "storage.type.modifier" + ], + "settings": { + "foreground": "#FF6D7E", + "fontStyle": "italic" + } + }, + { + "scope": "storage.class.restructuredtext.ref", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": [ + "storage.modifier.visibility.rust", + "storage.modifier.lifetime.rust" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "storage.modifier.const.rust", + "storage.modifier.dyn.rust", + "storage.modifier.mut.rust", + "storage.modifier.static.rust", + "storage.type.rust", + "storage.type.core.rust", + "storage.class.std.rust" + ], + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": [ + "storage.type.rust", + "storage.modifier.const.rust", + "storage.modifier.dyn.rust", + "storage.modifier.mut.rust", + "storage.modifier.static.rust", + "keyword.other.rust", + "keyword.other.where.rust" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "string.unquoted.label", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "string source", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "string source punctuation.section.embedded", + "string punctuation.definition.string source" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "string.other.link.title", + "string.other.link.description" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "string.other.link.description.title", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": [ + "string.regexp punctuation.definition.string.begin", + "string.regexp punctuation.definition.string.end" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "string.other.ref", + "string.other.restructuredtext.ref" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "string.other.git-status.help.key", + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": "string.other.git-status.remote", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "support.constant", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "support.constant.handlebars", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "support.type.vendor-prefix.css", + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": "support.function", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "support.function.delimiter.elm", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "support.type", + "entity.name.type.object.console" + ], + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": "support.variable", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#F2FFFC", + "fontStyle": "normal" + } + }, + { + "scope": "support.class", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "support.constant.core.rust", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "text", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "text.find-in-files", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "variable", + "variable.other" + ], + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "variable.parameter", + "parameters variable.function" + ], + "settings": { + "foreground": "#FFB270", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.language", + "variable.parameter.function.language.special.self.python", + "variable.parameter.function.language.special.cls.python" + ], + "settings": { + "foreground": "#B8C4C3", + "fontStyle": "italic" + } + }, + { + "scope": "variable.language.arguments", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "variable.other.class", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "variable.other.constant", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "variable.other.readwrite", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "variable.other.member", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "variable.other.enummember", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": [ + "variable.other.property", + "variable.other.property.static", + "variable.other.event" + ], + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "variable.function", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "variable.other.substitution", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "source.ruby variable.other.readwrite.instance.ruby", + "source.ruby variable.other.readwrite.class.ruby" + ], + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "source.jinja2 variable.other.jinja2.block", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "source.jinja2 variable.other.jinja2", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "comment", + "keyword", + "storage", + "keyword.control.import", + "keyword.control.default", + "keyword.control.from", + "keyword.operator.new", + "keyword.control.export", + "keyword.control.flow", + "storage.type.class", + "storage.type.function", + "storage.type", + "storage.type.class", + "variable.language", + "variable.language.super", + "variable.language.this", + "meta.class", + "meta.var.expr", + "constant.language.null", + "support.type.primitive", + "entity.name.method.js", + "entity.other.attribute-name", + "punctuation.definition.comment", + "text.html.basic entity.other.attribute-name.html", + "text.html.basic entity.other.attribute-name", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "source.js constant.other.object.key.js string.unquoted.label.js" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#6796E6" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#CD9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#F44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#B267E6" + } + } + ] +} \ No newline at end of file From f33d576a617dc9e23cdef5fa1ec76af19a7a37ee Mon Sep 17 00:00:00 2001 From: heheer <1239331448@qq.com> Date: Thu, 19 Oct 2023 18:15:14 +0800 Subject: [PATCH 03/42] feat: add file system part --- web/src/components/Editor/FunctionEditor.tsx | 55 ++++++++- web/src/components/Editor/LanguageClient.ts | 16 ++- web/src/components/Editor/TextModel.tsx | 114 ++++++++++++++++++ .../components/Editor/typesResolve/index.ts | 38 ++++-- .../app/functions/mods/EditorPanel/index.tsx | 3 +- 5 files changed, 203 insertions(+), 23 deletions(-) create mode 100644 web/src/components/Editor/TextModel.tsx diff --git a/web/src/components/Editor/FunctionEditor.tsx b/web/src/components/Editor/FunctionEditor.tsx index 17dec045c4..97468e704a 100644 --- a/web/src/components/Editor/FunctionEditor.tsx +++ b/web/src/components/Editor/FunctionEditor.tsx @@ -1,6 +1,12 @@ -import { CSSProperties, useEffect, useMemo, useRef } from "react"; +import { CSSProperties, useEffect, useMemo, useRef, useState } from "react"; +import { debounce } from "lodash"; import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; import { buildWorkerDefinition } from "monaco-editor-workers"; +import { + RegisteredFileSystemProvider, + RegisteredMemoryFile, + registerFileSystemOverlay, +} from "vscode/service-override/files"; import { COLOR_MODE, Pages } from "@/constants"; @@ -8,8 +14,10 @@ import "./userWorker"; import "./theme"; import { createUrl, createWebSocketAndStartClient } from "./LanguageClient"; +import { AutoImportTypings } from "./typesResolve"; import useHotKey, { DEFAULT_SHORTCUTS } from "@/hooks/useHotKey"; +import useFunctionStore from "@/pages/app/functions/store"; import useGlobalStore from "@/pages/globalStore"; buildWorkerDefinition( @@ -18,15 +26,18 @@ buildWorkerDefinition( false, ); +const autoImportTypings = new AutoImportTypings(); +const parseImports = debounce(autoImportTypings.parse.bind(autoImportTypings), 1500); const updateModel = (path: string, value: string, editorRef: any) => { const newModel = monaco.editor.getModel(monaco.Uri.file(path)) || monaco.editor.createModel(value, "typescript", monaco.Uri.file(path)); - console.log(editorRef.current?.getModel() !== newModel); if (editorRef.current?.getModel() !== newModel) { editorRef.current?.setModel(newModel); } + console.log(value); + autoImportTypings.parse(editorRef.current?.getValue() || ""); }; function FunctionEditor(props: { @@ -55,12 +66,19 @@ function FunctionEditor(props: { const editorRef = useRef(); const subscriptionRef = useRef(undefined); const monacoEl = useRef(null); - const hostname = "localhost"; - const path1 = ""; - const port = 30000; + const hostname = "scm3dt.100.66.76.85.nip.io"; + const path1 = "/_/lsp"; + const port = 80; const url = useMemo(() => createUrl(hostname, port, path1), [hostname, port, path1]); // let lspWebSocket: WebSocket; const globalStore = useGlobalStore((state) => state); + const { allFunctionList } = useFunctionStore((state) => state); + + const [fileSystemProvider] = useState(() => { + const provider = new RegisteredFileSystemProvider(false); + registerFileSystemOverlay(1, provider); + return provider; + }); useHotKey( DEFAULT_SHORTCUTS.send_request, @@ -95,6 +113,9 @@ function FunctionEditor(props: { scrollBeyondLastLine: false, }); updateModel(path, value, editorRef); + setTimeout(() => { + autoImportTypings.loadDefaults(); + }); // lspWebSocket = createWebSocketAndStartClient(url); createWebSocketAndStartClient(url); @@ -104,6 +125,27 @@ function FunctionEditor(props: { updateModel(path, value, editorRef); } + allFunctionList.forEach(async (item: any) => { + if ( + !monaco.editor.getModel( + monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`), + ) + ) { + fileSystemProvider.registerFile( + new RegisteredMemoryFile( + monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`), + item.source.code, + ), + ); + monaco.editor.createModel( + item.source.code, + "typescript", + monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`), + ); + // editorRef.current?.setModel(model); + } + }); + // window.onbeforeunload = () => { // // On page reload/exit, close web socket connection // lspWebSocket?.close(); @@ -114,7 +156,7 @@ function FunctionEditor(props: { // }; return () => {}; - }, [colorMode, path, readOnly, value, fontSize, url]); + }, [colorMode, path, readOnly, value, fontSize, url, allFunctionList]); // onChange useEffect(() => { @@ -122,6 +164,7 @@ function FunctionEditor(props: { if (onChange) { subscriptionRef.current = editorRef.current?.onDidChangeModelContent((event) => { onChange(editorRef.current?.getValue()); + parseImports(editorRef.current?.getValue() || ""); }); } }, [onChange]); diff --git a/web/src/components/Editor/LanguageClient.ts b/web/src/components/Editor/LanguageClient.ts index 6d9d2b1892..727c3b5651 100644 --- a/web/src/components/Editor/LanguageClient.ts +++ b/web/src/components/Editor/LanguageClient.ts @@ -1,4 +1,6 @@ import getConfigurationServiceOverride from "@codingame/monaco-vscode-configuration-service-override"; +// import getEditorServiceOverride from "@codingame/monaco-vscode-editor-service-override" +// import getModelServiceOverride from '@codingame/monaco-vscode-model-service-override' import getTextmateServiceOverride from "@codingame/monaco-vscode-textmate-service-override"; // import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override'; import getThemeServiceOverride from "@codingame/monaco-vscode-theme-service-override"; @@ -6,10 +8,14 @@ import { editor, languages } from "monaco-editor"; import { initServices, MonacoLanguageClient } from "monaco-languageclient"; import { Uri } from "vscode"; import { createConfiguredEditor, IReference, ITextFileEditorModel } from "vscode/monaco"; +// import { ITextModelService, SyncDescriptor } from "vscode/services"; import { CloseAction, ErrorAction, MessageTransports } from "vscode-languageclient"; import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from "vscode-ws-jsonrpc"; import "@codingame/monaco-vscode-typescript-basics-default-extension"; +import "./TextModel"; + +// import { TextModelService } from "./TextModel"; export const createLanguageClient = (transports: MessageTransports): MonacoLanguageClient => { return new MonacoLanguageClient({ @@ -21,7 +27,7 @@ export const createLanguageClient = (transports: MessageTransports): MonacoLangu closed: () => ({ action: CloseAction.DoNotRestart }), }, workspaceFolder: { - uri: Uri.file("C:/Users/heheer/github/laf/web/"), + uri: Uri.file("/root/laf/runtimes/nodejs/functions"), name: "Sample Workspace", index: 0, }, @@ -39,7 +45,6 @@ export const createUrl = ( hostname: string, port: number, path: string, - searchParams?: Record, secure?: boolean, ): string => { const protocol = secure ? "wss" : "ws"; @@ -70,14 +75,17 @@ export type ExampleJsonEditor = { uri: Uri; modelRef: IReference; }; - export const performInit = async (vscodeApiInit: boolean) => { if (vscodeApiInit === true) { await initServices({ userServices: { ...getThemeServiceOverride(), ...getTextmateServiceOverride(), - ...getConfigurationServiceOverride(Uri.file("C:/Users/heheer/github/laf/web/")), + ...getConfigurationServiceOverride(Uri.file("/root/laf/runtimes/nodejs/functions/")), + // ...getEditorServiceOverride(async (modelRef, options, sideBySide) => { + // console.log('Received open editor call with parameters: ', modelRef, options, sideBySide); + // return undefined; + // }) // ...getKeybindingsServiceOverride() }, debugLogging: true, diff --git a/web/src/components/Editor/TextModel.tsx b/web/src/components/Editor/TextModel.tsx new file mode 100644 index 0000000000..8b8daa020a --- /dev/null +++ b/web/src/components/Editor/TextModel.tsx @@ -0,0 +1,114 @@ +// @ts-ignore +// import { ImmortalReference } from "monaco-editor/esm/vs/base/common/lifecycle"; +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 { TextModelResolverService } from "vscode/vscode/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.js"; + +StandaloneCodeEditorService.prototype.findModel = function ( + editor: monaco.editor.IStandaloneCodeEditor, + resource: monaco.Uri, +) { + var model = null; + if (resource !== null) model = monaco.editor.getModel(resource); + console.log("model", model); + 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; + } + + console.log(editor, input, model.uri.toString()); + if (model.uri.toString().includes(".d.ts")) { + return editor; + } + // if (model.uri.toString().includes(".jsw.d.ts")) { + // model = this.findModel( + // editor, + // model.uri.toString().replace(".jsw.d.ts", ".jsw.ts") + // ); + // } + + editor.setModel(model); + // todo + // window.location + + 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 /* Immediate */); + } else { + var pos = { + lineNumber: selection.startLineNumber, + column: selection.startColumn, + }; + editor.setPosition(pos); + editor.revealPositionInCenter(pos, 1 /* Immediate */); + } + } + return editor; +}; + +// export class TextModelService { +// readonly _serviceBrand = undefined; + +// async createModelReference(resource: monaco.Uri) { +// const model = await this.getModel(resource); +// return new ImmortalReference({ textEditorModel: model }); +// } + +// /** +// * Registers a specific `scheme` content provider. +// */ +// registerTextModelContentProvider(_scheme: string, _provider: any) { +// return { dispose: function () {} }; +// } + +// /** +// * Check if the given resource can be resolved to a text model. +// */ +// canHandleResource(_resource: monaco.Uri): boolean { +// return true; +// } + +// handleJSW(uri: monaco.Uri, jswContent: string): void { +// let uriStr = uri.toString(); +// if (uriStr.includes(".jsw.ts")) { +// uriStr = uriStr.replace(".jsw.ts", ".jsw.d.ts"); +// const dtsModel = monaco.editor.getModel(monaco.Uri.parse(uriStr)); +// if (!dtsModel) { +// //@ts-ignore +// monaco.editor.createModel( +// jswContent, +// undefined, +// monaco.Uri.parse(uriStr) +// ); +// } else { +// //@ts-ignore +// dtsModel.setValue(jswContent); +// } +// } +// } + +// async getModel(uri: monaco.Uri): Promise { +// var model = monaco.editor.getModel(uri); +// if (!model) { +// console.log(model) +// const modelContent = "" +// this.handleJSW(uri, modelContent); +// return monaco.editor.createModel(modelContent, "typescript", uri); +// } +// this.handleJSW(uri, model.getValue()); +// return model; +// } +// } diff --git a/web/src/components/Editor/typesResolve/index.ts b/web/src/components/Editor/typesResolve/index.ts index 16e73a08af..ed41088d34 100644 --- a/web/src/components/Editor/typesResolve/index.ts +++ b/web/src/components/Editor/typesResolve/index.ts @@ -70,6 +70,7 @@ export class AutoImportTypings { */ async parse(source: string) { const rets = this._parser.parseDependencies(source); + console.log("rets", rets); if (!rets || !rets.length) return; const newImports = rets.filter((pkg) => !this.isLoaded(pkg)); @@ -135,6 +136,7 @@ export class AutoImportTypings { const rets = r.data || []; for (const lib of rets) { // 修复包的类型入口文件不为 index.d.ts 的情况 + console.log("lib", lib, "packageName", packageName); if (packageName === lib.packageName && lib.path !== `${packageName}/index.d.ts`) { const _lib = { ...lib }; _lib.path = `${packageName}/index.d.ts`; @@ -154,21 +156,35 @@ export class AutoImportTypings { * @param {path: string, content: string} param0 * @returns */ - addExtraLib({ path, content }: { path: string; content: string }) { - const fullpath = `file:///node_modules/${path}`; - const defaults = monaco.languages.typescript.typescriptDefaults; + // 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 (keys.includes(fullpath)) { + // console.log(`${path} already exists in ts extralib`); + // return; + // } + // try { + // defaults.addExtraLib(content, fullpath); + // } catch (error) { + // console.log(error, fullpath, keys); + // throw error; + // } + // } - const loaded = defaults.getExtraLibs(); - const keys = Object.keys(loaded); + addExtraLib({ path, content }: { path: string; content: string }) { + const fullPath = `/root/laf/runtimes/nodejs/node_modules/${path}`; + console.log("fullPath", fullPath); - if (keys.includes(fullpath)) { - console.log(`${path} already exists in ts extralib`); - return; - } try { - defaults.addExtraLib(content, fullpath); + if (!monaco.editor.getModel(monaco.Uri.file(fullPath))) { + monaco.editor.createModel(content, "typescript", monaco.Uri.file(fullPath)); + } } catch (error) { - console.log(error, fullpath, keys); + console.log(error, fullPath); throw error; } } diff --git a/web/src/pages/app/functions/mods/EditorPanel/index.tsx b/web/src/pages/app/functions/mods/EditorPanel/index.tsx index 7ff945f01b..8425340462 100644 --- a/web/src/pages/app/functions/mods/EditorPanel/index.tsx +++ b/web/src/pages/app/functions/mods/EditorPanel/index.tsx @@ -43,8 +43,7 @@ function EditorPanel() { marginLeft: -14, marginRight: -14, }} - path={`C:/Users/heheer/github/laf/web/${currentFunction?.name}.ts`} - // path={currentFunction?._id || ""} + path={`/root/laf/runtimes/nodejs/functions/${currentFunction?.name}.ts`} value={functionCache.getCache(currentFunction!._id, currentFunction!.source?.code)} onChange={(value) => { updateFunctionCode(currentFunction, value || ""); From fdf5a188907770ce03ba3cb224c2354583b858f8 Mon Sep 17 00:00:00 2001 From: heheer <1239331448@qq.com> Date: Fri, 20 Oct 2023 12:11:16 +0800 Subject: [PATCH 04/42] feat: complete initial editor --- web/src/components/Editor/FunctionEditor.tsx | 25 +- web/src/components/Editor/LanguageClient.ts | 26 +- web/src/components/Editor/TextModel.tsx | 65 +- web/src/components/Editor/theme/index.js | 32 +- .../Editor/theme/laf_editor_theme.json | 2211 ++++------------- web/src/components/Editor/theme/test.json | 2067 +++++++++++++++ .../components/Editor/typesResolve/index.ts | 40 +- 7 files changed, 2542 insertions(+), 1924 deletions(-) create mode 100644 web/src/components/Editor/theme/test.json diff --git a/web/src/components/Editor/FunctionEditor.tsx b/web/src/components/Editor/FunctionEditor.tsx index 97468e704a..57d81e709b 100644 --- a/web/src/components/Editor/FunctionEditor.tsx +++ b/web/src/components/Editor/FunctionEditor.tsx @@ -1,4 +1,4 @@ -import { CSSProperties, useEffect, useMemo, useRef, useState } from "react"; +import { CSSProperties, useEffect, useMemo, useRef } from "react"; import { debounce } from "lodash"; import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; import { buildWorkerDefinition } from "monaco-editor-workers"; @@ -26,6 +26,8 @@ buildWorkerDefinition( false, ); +export const fileSystemProvider = new RegisteredFileSystemProvider(false); +registerFileSystemOverlay(1, fileSystemProvider); const autoImportTypings = new AutoImportTypings(); const parseImports = debounce(autoImportTypings.parse.bind(autoImportTypings), 1500); const updateModel = (path: string, value: string, editorRef: any) => { @@ -36,7 +38,6 @@ const updateModel = (path: string, value: string, editorRef: any) => { if (editorRef.current?.getModel() !== newModel) { editorRef.current?.setModel(newModel); } - console.log(value); autoImportTypings.parse(editorRef.current?.getValue() || ""); }; @@ -74,12 +75,6 @@ function FunctionEditor(props: { const globalStore = useGlobalStore((state) => state); const { allFunctionList } = useFunctionStore((state) => state); - const [fileSystemProvider] = useState(() => { - const provider = new RegisteredFileSystemProvider(false); - registerFileSystemOverlay(1, provider); - return provider; - }); - useHotKey( DEFAULT_SHORTCUTS.send_request, () => { @@ -110,6 +105,8 @@ function FunctionEditor(props: { lineNumbersMinChars: 4, fontSize: fontSize, theme: "lafEditorTheme", + fontFamily: "Fira Code", + fontWeight: "450", scrollBeyondLastLine: false, }); updateModel(path, value, editorRef); @@ -126,17 +123,17 @@ function FunctionEditor(props: { } allFunctionList.forEach(async (item: any) => { + fileSystemProvider.registerFile( + new RegisteredMemoryFile( + monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`), + item.source.code, + ), + ); if ( !monaco.editor.getModel( monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`), ) ) { - fileSystemProvider.registerFile( - new RegisteredMemoryFile( - monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`), - item.source.code, - ), - ); monaco.editor.createModel( item.source.code, "typescript", diff --git a/web/src/components/Editor/LanguageClient.ts b/web/src/components/Editor/LanguageClient.ts index 727c3b5651..b4bdecd921 100644 --- a/web/src/components/Editor/LanguageClient.ts +++ b/web/src/components/Editor/LanguageClient.ts @@ -7,7 +7,7 @@ import getThemeServiceOverride from "@codingame/monaco-vscode-theme-service-over import { editor, languages } from "monaco-editor"; import { initServices, MonacoLanguageClient } from "monaco-languageclient"; import { Uri } from "vscode"; -import { createConfiguredEditor, IReference, ITextFileEditorModel } from "vscode/monaco"; +import { IReference, ITextFileEditorModel } from "vscode/monaco"; // import { ITextModelService, SyncDescriptor } from "vscode/services"; import { CloseAction, ErrorAction, MessageTransports } from "vscode-languageclient"; import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from "vscode-ws-jsonrpc"; @@ -100,27 +100,3 @@ export const performInit = async (vscodeApiInit: boolean) => { }); } }; - -export const createJsonEditor = async (config: { htmlElement: HTMLElement; content: string }) => { - // create monaco editor - const editor = createConfiguredEditor(config.htmlElement, { - minimap: { - enabled: false, - }, - readOnly: false, - language: "typescript", - automaticLayout: true, - scrollbar: { - verticalScrollbarSize: 4, - horizontalScrollbarSize: 8, - }, - formatOnPaste: true, - overviewRulerLanes: 0, - lineNumbersMinChars: 4, - fontSize: 14, - theme: "vs", - scrollBeyondLastLine: false, - }); - - return Promise.resolve(editor); -}; diff --git a/web/src/components/Editor/TextModel.tsx b/web/src/components/Editor/TextModel.tsx index 8b8daa020a..f71acecf3a 100644 --- a/web/src/components/Editor/TextModel.tsx +++ b/web/src/components/Editor/TextModel.tsx @@ -1,9 +1,6 @@ -// @ts-ignore -// import { ImmortalReference } from "monaco-editor/esm/vs/base/common/lifecycle"; 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 { TextModelResolverService } from "vscode/vscode/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.js"; StandaloneCodeEditorService.prototype.findModel = function ( editor: monaco.editor.IStandaloneCodeEditor, @@ -28,16 +25,10 @@ StandaloneCodeEditorService.prototype.doOpenEditor = function ( } console.log(editor, input, model.uri.toString()); + // 阻止打开.d.ts文件 if (model.uri.toString().includes(".d.ts")) { return editor; } - // if (model.uri.toString().includes(".jsw.d.ts")) { - // model = this.findModel( - // editor, - // model.uri.toString().replace(".jsw.d.ts", ".jsw.ts") - // ); - // } - editor.setModel(model); // todo // window.location @@ -58,57 +49,3 @@ StandaloneCodeEditorService.prototype.doOpenEditor = function ( } return editor; }; - -// export class TextModelService { -// readonly _serviceBrand = undefined; - -// async createModelReference(resource: monaco.Uri) { -// const model = await this.getModel(resource); -// return new ImmortalReference({ textEditorModel: model }); -// } - -// /** -// * Registers a specific `scheme` content provider. -// */ -// registerTextModelContentProvider(_scheme: string, _provider: any) { -// return { dispose: function () {} }; -// } - -// /** -// * Check if the given resource can be resolved to a text model. -// */ -// canHandleResource(_resource: monaco.Uri): boolean { -// return true; -// } - -// handleJSW(uri: monaco.Uri, jswContent: string): void { -// let uriStr = uri.toString(); -// if (uriStr.includes(".jsw.ts")) { -// uriStr = uriStr.replace(".jsw.ts", ".jsw.d.ts"); -// const dtsModel = monaco.editor.getModel(monaco.Uri.parse(uriStr)); -// if (!dtsModel) { -// //@ts-ignore -// monaco.editor.createModel( -// jswContent, -// undefined, -// monaco.Uri.parse(uriStr) -// ); -// } else { -// //@ts-ignore -// dtsModel.setValue(jswContent); -// } -// } -// } - -// async getModel(uri: monaco.Uri): Promise { -// var model = monaco.editor.getModel(uri); -// if (!model) { -// console.log(model) -// const modelContent = "" -// this.handleJSW(uri, modelContent); -// return monaco.editor.createModel(modelContent, "typescript", uri); -// } -// this.handleJSW(uri, model.getValue()); -// return model; -// } -// } diff --git a/web/src/components/Editor/theme/index.js b/web/src/components/Editor/theme/index.js index eec184714a..923c5446a8 100644 --- a/web/src/components/Editor/theme/index.js +++ b/web/src/components/Editor/theme/index.js @@ -1,11 +1,33 @@ -import { registerExtension } from 'vscode/extensions'; +import { registerExtension } from "vscode/extensions"; var manifest = { - name: "theme-append", displayName: "Default Themes", description: "The default Visual Studio light and dark themes", categories: ["Themes"], version: "1.0.0", publisher: "vscode", license: "MIT", engines: { vscode: "*" }, contributes: { - themes: [{id: "lafEditorTheme", label: "lafEditorTheme", uiTheme: "lafEditorTheme", path: "./themes/laf_editor_theme.json"}] - }, repository: { type: "git", url: "https://github.com/microsoft/vscode.git" }, main: undefined + name: "theme-append", + displayName: "Default Themes", + description: "The default Visual Studio light and dark themes", + categories: ["Themes"], + version: "1.0.0", + publisher: "vscode", + license: "MIT", + engines: { vscode: "*" }, + contributes: { + themes: [ + { + id: "lafEditorTheme", + label: "lafEditorTheme", + uiTheme: "lafEditorTheme", + path: "./themes/laf_editor_theme.json", + } + ], + }, + + repository: { type: "git", url: "https://github.com/microsoft/vscode.git" }, + main: undefined, }; const { registerFileUrl, whenReady } = registerExtension(manifest); -registerFileUrl('./themes/laf_editor_theme.json', new URL('./laf_editor_theme.json', import.meta.url).toString(), 'application/json'); +registerFileUrl( + "./themes/laf_editor_theme.json", + new URL("./laf_editor_theme.json", import.meta.url).toString(), + "application/json", +); export { whenReady }; diff --git a/web/src/components/Editor/theme/laf_editor_theme.json b/web/src/components/Editor/theme/laf_editor_theme.json index b4274fbcb3..64e7538b77 100644 --- a/web/src/components/Editor/theme/laf_editor_theme.json +++ b/web/src/components/Editor/theme/laf_editor_theme.json @@ -1,2111 +1,742 @@ -// { -// "$schema": "vscode://schemas/color-theme", -// "name": "lafEditorTheme", -// // "include": "./light_modern.json", -// "colors": { -// "editorLineNumber.foreground": "#aaa", -// "editorOverviewRuler.border": "#fff", -// "editor.lineHighlightBackground": "#F7F8FA", -// "scrollbarSlider.background": "#E8EAEC", -// "editorIndentGuide.activeBackground1": "#fff", -// "editorIndentGuide.background1": "#eee", -// }, -// "tokenColors": [ -// { -// "scope": "keyword", -// "settings": { -// "foreground": "#008189" -// } -// }, -// { -// "scope": "keyword.control", -// "settings": { -// "foreground": "#008189" -// } -// }, -// { -// "scope": [ -// "keyword.operator.new", -// "keyword.operator.expression", -// "keyword.operator.cast", -// "keyword.operator.sizeof", -// "keyword.operator.alignof", -// "keyword.operator.typeid", -// "keyword.operator.alignas", -// "keyword.operator.instanceof", -// "keyword.operator.logical.python", -// "keyword.operator.wordlike" -// ], -// "settings": { -// "foreground": "#008189" -// } -// }, -// ], -// } { "$schema": "vscode://schemas/color-theme", - "type": "dark", + "name": "lafEditorTheme", + // "include": "./light_modern.json", "colors": { - "activityBar.activeFocusBorder": "#ffed72", - "activityBar.background": "#161b1e", - "activityBar.border": "#161b1e", - "activityBar.foreground": "#b8c4c3", - "activityBar.inactiveForeground": "#545f62", - "activityBarBadge.background": "#ffed72", - "activityBarBadge.foreground": "#273136", - "badge.background": "#ffed72", - "badge.foreground": "#273136", - "banner.background": "#3a4449", - "banner.foreground": "#b8c4c3", - "banner.iconForeground": "#b8c4c3", - "breadcrumb.activeSelectionForeground": "#f2fffc", - "breadcrumb.focusForeground": "#b8c4c3", - "breadcrumb.foreground": "#8b9798", - "button.background": "#3a4449", - "button.foreground": "#b8c4c3", - "button.hoverBackground": "#545f62", - "button.secondaryBackground": "#3a4449", - "button.secondaryForeground": "#b8c4c3", - "button.secondaryHoverBackground": "#545f62", - "button.separator": "#273136", - "charts.blue": "#7cd5f1", - "charts.foreground": "#f2fffc", - "charts.green": "#a2e57b", - "charts.lines": "#6b7678", - "charts.orange": "#ffb270", - "charts.purple": "#baa0f8", - "charts.red": "#ff6d7e", - "charts.yellow": "#ffed72", - "checkbox.background": "#3a4449", - "checkbox.border": "#3a4449", - "checkbox.foreground": "#f2fffc", - "commandCenter.activeBackground": "#273136", - "commandCenter.activeForeground": "#b8c4c3", - "commandCenter.background": "#1d2528", - "commandCenter.border": "#273136", - "commandCenter.foreground": "#8b9798", - "debugConsole.errorForeground": "#ff6d7e", - "debugConsole.infoForeground": "#7cd5f1", - "debugConsole.sourceForeground": "#f2fffc", - "debugConsole.warningForeground": "#ffb270", - "debugConsoleInputIcon.foreground": "#ffed72", - "debugExceptionWidget.background": "#3a4449", - "debugExceptionWidget.border": "#273136", - "debugIcon.breakpointCurrentStackframeForeground": "#ffed72", - "debugIcon.breakpointDisabledForeground": "#b8c4c3", - "debugIcon.breakpointForeground": "#ff6d7e", - "debugIcon.breakpointStackframeForeground": "#f2fffc", - "debugIcon.breakpointUnverifiedForeground": "#ffb270", - "debugIcon.continueForeground": "#f2fffc", - "debugIcon.disconnectForeground": "#f2fffc", - "debugIcon.pauseForeground": "#f2fffc", - "debugIcon.restartForeground": "#a2e57b", - "debugIcon.startForeground": "#a2e57b", - "debugIcon.stepBackForeground": "#f2fffc", - "debugIcon.stepIntoForeground": "#f2fffc", - "debugIcon.stepOutForeground": "#f2fffc", - "debugIcon.stepOverForeground": "#f2fffc", - "debugIcon.stopForeground": "#ff6d7e", - "debugTokenExpression.boolean": "#ffb270", - "debugTokenExpression.error": "#ff6d7e", - "debugTokenExpression.name": "#7cd5f1", - "debugTokenExpression.number": "#baa0f8", - "debugTokenExpression.string": "#ffed72", - "debugTokenExpression.value": "#f2fffc", - "debugToolBar.background": "#3a4449", - "debugView.exceptionLabelBackground": "#ff6d7e", - "debugView.exceptionLabelForeground": "#273136", - "debugView.stateLabelBackground": "#a2e57b", - "debugView.stateLabelForeground": "#273136", - "debugView.valueChangedHighlight": "#ffed72", - "descriptionForeground": "#8b9798", - "diffEditor.diagonalFill": "#3a4449", - "diffEditor.insertedLineBackground": "#a2e57b19", - "diffEditor.insertedTextBackground": "#a2e57b19", - "diffEditor.removedLineBackground": "#ff6d7e19", - "diffEditor.removedTextBackground": "#ff6d7e19", - "diffEditorGutter.insertedLineBackground": "#a2e57b19", - "diffEditorGutter.removedLineBackground": "#ff6d7e19", - "diffEditorOverview.insertedForeground": "#a2e57ba5", - "diffEditorOverview.removedForeground": "#ff6d7ea5", - "dropdown.background": "#273136", - "dropdown.border": "#273136", - "dropdown.foreground": "#8b9798", - "dropdown.listBackground": "#3a4449", - "editor.background": "#273136", - "editor.findMatchBackground": "#f2fffc26", - "editor.findMatchBorder": "#ffed72", - "editor.findMatchHighlightBackground": "#f2fffc26", - "editor.findMatchHighlightBorder": "#00000000", - "editor.findRangeHighlightBackground": "#f2fffc0c", - "editor.findRangeHighlightBorder": "#00000000", - "editor.focusedStackFrameHighlightBackground": "#b8c4c326", - "editor.foldBackground": "#f2fffc0c", - "editor.foreground": "#f2fffc", - "editor.hoverHighlightBackground": "#f2fffc0c", - "editor.inactiveSelectionBackground": "#f2fffc0c", - "editor.inlineValuesBackground": "#545f62", - "editor.inlineValuesForeground": "#b8c4c3", - "editor.lineHighlightBackground": "#f2fffc0c", - "editor.lineHighlightBorder": "#00000000", - "editor.linkedEditingBackground": "#3a4449", - "editor.rangeHighlightBackground": "#3a4449", - "editor.rangeHighlightBorder": "#3a4449", - "editor.selectionBackground": "#b8c4c326", - "editor.selectionHighlightBackground": "#f2fffc26", - "editor.selectionHighlightBorder": "#00000000", - "editor.stackFrameHighlightBackground": "#b8c4c326", - "editor.wordHighlightBackground": "#f2fffc26", - "editor.wordHighlightBorder": "#00000000", - "editor.wordHighlightStrongBackground": "#f2fffc26", - "editor.wordHighlightStrongBorder": "#00000000", - "editorBracketHighlight.foreground1": "#ff6d7e", - "editorBracketHighlight.foreground2": "#ffb270", - "editorBracketHighlight.foreground3": "#ffed72", - "editorBracketHighlight.foreground4": "#a2e57b", - "editorBracketHighlight.foreground5": "#7cd5f1", - "editorBracketHighlight.foreground6": "#baa0f8", - "editorBracketMatch.background": "#273136", - "editorBracketMatch.border": "#6b7678", - "editorCodeLens.foreground": "#6b7678", - "editorCursor.background": "#273136", - "editorCursor.foreground": "#f2fffc", - "editorError.background": "#00000000", - "editorError.border": "#00000000", - "editorError.foreground": "#ff6d7e", - "editorGroup.border": "#1d2528", - "editorGroup.dropBackground": "#1d2528bf", - "editorGroup.emptyBackground": "#161b1e", - "editorGroup.focusedEmptyBorder": "#1d2528", - "editorGroupHeader.noTabsBackground": "#273136", - "editorGroupHeader.tabsBackground": "#273136", - "editorGroupHeader.tabsBorder": "#273136", - "editorGutter.addedBackground": "#a2e57b", - "editorGutter.background": "#273136", - "editorGutter.deletedBackground": "#ff6d7e", - "editorGutter.foldingControlForeground": "#b8c4c3", - "editorGutter.modifiedBackground": "#ffb270", - "editorHint.border": "#273136", - "editorHint.foreground": "#baa0f8", - "editorHoverWidget.background": "#3a4449", - "editorHoverWidget.border": "#273136", - "editorIndentGuide.background": "#3a4449", - "editorInfo.background": "#00000000", - "editorInfo.border": "#273136", - "editorInfo.foreground": "#7cd5f1", - "editorLightBulb.foreground": "#ffed72", - "editorLightBulbAutoFix.foreground": "#a2e57b", - "editorLineNumber.activeForeground": "#b8c4c3", - "editorLineNumber.foreground": "#545f62", - "editorLink.activeForeground": "#7cd5f1", - "editorMarkerNavigation.background": "#3a4449", - "editorMarkerNavigationError.background": "#ff6d7e", - "editorMarkerNavigationInfo.background": "#7cd5f1", - "editorMarkerNavigationWarning.background": "#ffb270", - "editorOverviewRuler.addedForeground": "#a2e57b", - "editorOverviewRuler.border": "#273136", - "editorOverviewRuler.currentContentForeground": "#3a4449", - "editorOverviewRuler.deletedForeground": "#ff6d7e", - "editorOverviewRuler.errorForeground": "#ff6d7e", - "editorOverviewRuler.findMatchForeground": "#f2fffc26", - "editorOverviewRuler.incomingContentForeground": "#3a4449", - "editorOverviewRuler.infoForeground": "#7cd5f1", - "editorOverviewRuler.modifiedForeground": "#ffb270", - "editorOverviewRuler.rangeHighlightForeground": "#f2fffc26", - "editorOverviewRuler.selectionHighlightForeground": "#f2fffc26", - "editorOverviewRuler.warningForeground": "#ffb270", - "editorOverviewRuler.wordHighlightForeground": "#f2fffc26", - "editorOverviewRuler.wordHighlightStrongForeground": "#f2fffc26", - "editorPane.background": "#273136", - "editorRuler.foreground": "#545f62", - "editorSuggestWidget.background": "#3a4449", - "editorSuggestWidget.border": "#3a4449", - "editorSuggestWidget.foreground": "#b8c4c3", - "editorSuggestWidget.highlightForeground": "#f2fffc", - "editorSuggestWidget.selectedBackground": "#6b7678", - "editorUnnecessaryCode.opacity": "#000000a5", - "editorWarning.background": "#00000000", - "editorWarning.border": "#00000000", - "editorWarning.foreground": "#ffb270", - "editorWhitespace.foreground": "#545f62", - "editorWidget.background": "#3a4449", - "editorWidget.border": "#3a4449", - "errorForeground": "#ff6d7e", - "extensionBadge.remoteForeground": "#a2e57b", - "extensionButton.prominentBackground": "#3a4449", - "extensionButton.prominentForeground": "#f2fffc", - "extensionButton.prominentHoverBackground": "#545f62", - "extensionIcon.preReleaseForeground": "#baa0f8", - "extensionIcon.sponsorForeground": "#7cd5f1", - "extensionIcon.starForeground": "#ffed72", - "extensionIcon.verifiedForeground": "#a2e57b", - "focusBorder": "#6b7678", - "foreground": "#f2fffc", - "gitDecoration.addedResourceForeground": "#a2e57b", - "gitDecoration.conflictingResourceForeground": "#ffb270", - "gitDecoration.deletedResourceForeground": "#ff6d7e", - "gitDecoration.ignoredResourceForeground": "#545f62", - "gitDecoration.modifiedResourceForeground": "#ffed72", - "gitDecoration.stageDeletedResourceForeground": "#ff6d7e", - "gitDecoration.stageModifiedResourceForeground": "#ffed72", - "gitDecoration.untrackedResourceForeground": "#b8c4c3", - "icon.foreground": "#8b9798", - "input.background": "#3a4449", - "input.border": "#3a4449", - "input.foreground": "#f2fffc", - "input.placeholderForeground": "#6b7678", - "inputOption.activeBackground": "#545f62", - "inputOption.activeBorder": "#545f62", - "inputOption.activeForeground": "#f2fffc", - "inputOption.hoverBackground": "#545f62", - "inputValidation.errorBackground": "#3a4449", - "inputValidation.errorBorder": "#ff6d7e", - "inputValidation.errorForeground": "#ff6d7e", - "inputValidation.infoBackground": "#3a4449", - "inputValidation.infoBorder": "#7cd5f1", - "inputValidation.infoForeground": "#7cd5f1", - "inputValidation.warningBackground": "#3a4449", - "inputValidation.warningBorder": "#ffb270", - "inputValidation.warningForeground": "#ffb270", - "keybindingLabel.background": "#545f62", - "keybindingLabel.border": "#545f62", - "keybindingLabel.bottomBorder": "#3a4449", - "keybindingLabel.foreground": "#b8c4c3", - "list.activeSelectionBackground": "#f2fffc0c", - "list.activeSelectionForeground": "#ffed72", - "list.dropBackground": "#1d2528bf", - "list.errorForeground": "#ff6d7e", - "list.focusBackground": "#273136", - "list.focusForeground": "#f2fffc", - "list.highlightForeground": "#f2fffc", - "list.hoverBackground": "#f2fffc0c", - "list.hoverForeground": "#f2fffc", - "list.inactiveFocusBackground": "#273136", - "list.inactiveSelectionBackground": "#b8c4c30c", - "list.inactiveSelectionForeground": "#ffed72", - "list.invalidItemForeground": "#ff6d7e", - "list.warningForeground": "#ffb270", - "listFilterWidget.background": "#273136", - "listFilterWidget.noMatchesOutline": "#ff6d7e", - "listFilterWidget.outline": "#273136", - "menu.background": "#273136", - "menu.border": "#1d2528", - "menu.foreground": "#f2fffc", - "menu.selectionForeground": "#ffed72", - "menu.separatorBackground": "#3a4449", - "menubar.selectionForeground": "#f2fffc", - "merge.border": "#273136", - "merge.commonContentBackground": "#f2fffc19", - "merge.commonHeaderBackground": "#f2fffc26", - "merge.currentContentBackground": "#ff6d7e19", - "merge.currentHeaderBackground": "#ff6d7e26", - "merge.incomingContentBackground": "#a2e57b19", - "merge.incomingHeaderBackground": "#a2e57b26", - "mergeEditor.change.background": "#f2fffc19", - "mergeEditor.change.word.background": "#f2fffc19", - "mergeEditor.conflict.handled.minimapOverViewRuler": "#a2e57b", - "mergeEditor.conflict.handledFocused.border": "#a2e57b", - "mergeEditor.conflict.handledUnfocused.border": "#a2e57b", - "mergeEditor.conflict.unhandled.minimapOverViewRuler": "#ff6d7e", - "mergeEditor.conflict.unhandledFocused.border": "#ff6d7e", - "mergeEditor.conflict.unhandledUnfocused.border": "#ff6d7e", - "minimap.errorHighlight": "#ff6d7ea5", - "minimap.findMatchHighlight": "#8b9798a5", - "minimap.selectionHighlight": "#b8c4c326", - "minimap.selectionOccurrenceHighlight": "#6b7678a5", - "minimap.warningHighlight": "#ffb270a5", - "minimapGutter.addedBackground": "#a2e57b", - "minimapGutter.deletedBackground": "#ff6d7e", - "minimapGutter.modifiedBackground": "#ffed72", - "notebook.cellBorderColor": "#3a4449", - "notebook.cellEditorBackground": "#1d25287f", - "notebook.cellInsertionIndicator": "#f2fffc", - "notebook.cellStatusBarItemHoverBackground": "#6b7678", - "notebook.cellToolbarSeparator": "#3a4449", - "notebook.editorBackground": "#273136", - "notebook.focusedEditorBorder": "#6b7678", - "notebookStatusErrorIcon.foreground": "#ff6d7e", - "notebookStatusRunningIcon.foreground": "#f2fffc", - "notebookStatusSuccessIcon.foreground": "#a2e57b", - "notificationCenter.border": "#3a4449", - "notificationCenterHeader.background": "#3a4449", - "notificationCenterHeader.foreground": "#8b9798", - "notificationLink.foreground": "#ffed72", - "notificationToast.border": "#3a4449", - "notifications.background": "#3a4449", - "notifications.border": "#3a4449", - "notifications.foreground": "#b8c4c3", - "notificationsErrorIcon.foreground": "#ff6d7e", - "notificationsInfoIcon.foreground": "#7cd5f1", - "notificationsWarningIcon.foreground": "#ffb270", - "panel.background": "#3a4449", - "panel.border": "#273136", - "panelTitle.activeBorder": "#ffed72", - "panelTitle.activeForeground": "#ffed72", - "panelTitle.inactiveForeground": "#8b9798", - "peekView.border": "#273136", - "peekViewEditor.background": "#3a4449", - "peekViewEditor.matchHighlightBackground": "#545f62", - "peekViewEditorGutter.background": "#3a4449", - "peekViewResult.background": "#3a4449", - "peekViewResult.fileForeground": "#8b9798", - "peekViewResult.lineForeground": "#8b9798", - "peekViewResult.matchHighlightBackground": "#545f62", - "peekViewResult.selectionBackground": "#3a4449", - "peekViewResult.selectionForeground": "#f2fffc", - "peekViewTitle.background": "#3a4449", - "peekViewTitleDescription.foreground": "#8b9798", - "peekViewTitleLabel.foreground": "#f2fffc", - "pickerGroup.border": "#273136", - "pickerGroup.foreground": "#545f62", - "ports.iconRunningProcessForeground": "#a2e57b", - "problemsErrorIcon.foreground": "#ff6d7e", - "problemsInfoIcon.foreground": "#7cd5f1", - "problemsWarningIcon.foreground": "#ffb270", - "profileBadge.background": "#3a4449", - "profileBadge.foreground": "#b8c4c3", - "progressBar.background": "#3a4449", - "sash.hoverBorder": "#6b7678", - "scrollbar.shadow": "#273136", - "scrollbarSlider.activeBackground": "#f2fffc59", - "scrollbarSlider.background": "#b8c4c326", - "scrollbarSlider.hoverBackground": "#f2fffc26", - "selection.background": "#b8c4c326", - "settings.checkboxBackground": "#3a4449", - "settings.checkboxBorder": "#3a4449", - "settings.checkboxForeground": "#f2fffc", - "settings.dropdownBackground": "#3a4449", - "settings.dropdownBorder": "#3a4449", - "settings.dropdownForeground": "#f2fffc", - "settings.dropdownListBorder": "#8b9798", - "settings.headerForeground": "#ffed72", - "settings.modifiedItemIndicator": "#ffed72", - "settings.numberInputBackground": "#3a4449", - "settings.numberInputBorder": "#3a4449", - "settings.numberInputForeground": "#f2fffc", - "settings.rowHoverBackground": "#6b76780c", - "settings.textInputBackground": "#3a4449", - "settings.textInputBorder": "#3a4449", - "settings.textInputForeground": "#f2fffc", - "sideBar.background": "#1d2528", - "sideBar.border": "#161b1e", - "sideBar.dropBackground": "#1d2528bf", - "sideBar.foreground": "#8b9798", - "sideBarSectionHeader.background": "#1d2528", - "sideBarSectionHeader.foreground": "#6b7678", - "sideBarTitle.foreground": "#545f62", - "statusBar.background": "#1d2528", - "statusBar.border": "#161b1e", - "statusBar.debuggingBackground": "#6b7678", - "statusBar.debuggingBorder": "#1d2528", - "statusBar.debuggingForeground": "#f2fffc", - "statusBar.focusBorder": "#3a4449", - "statusBar.foreground": "#6b7678", - "statusBar.noFolderBackground": "#1d2528", - "statusBar.noFolderBorder": "#161b1e", - "statusBar.noFolderForeground": "#6b7678", - "statusBarItem.activeBackground": "#273136", - "statusBarItem.errorBackground": "#273136", - "statusBarItem.errorForeground": "#ff6d7e", - "statusBarItem.focusBorder": "#6b7678", - "statusBarItem.hoverBackground": "#f2fffc0c", - "statusBarItem.prominentBackground": "#3a4449", - "statusBarItem.prominentHoverBackground": "#3a4449", - "statusBarItem.remoteBackground": "#1d2528", - "statusBarItem.remoteForeground": "#a2e57b", - "statusBarItem.warningBackground": "#273136", - "statusBarItem.warningForeground": "#ffb270", - "symbolIcon.arrayForeground": "#ff6d7e", - "symbolIcon.booleanForeground": "#ff6d7e", - "symbolIcon.classForeground": "#7cd5f1", - "symbolIcon.colorForeground": "#baa0f8", - "symbolIcon.constantForeground": "#baa0f8", - "symbolIcon.constructorForeground": "#a2e57b", - "symbolIcon.enumeratorForeground": "#ffb270", - "symbolIcon.enumeratorMemberForeground": "#ffb270", - "symbolIcon.eventForeground": "#ffb270", - "symbolIcon.fieldForeground": "#ffb270", - "symbolIcon.fileForeground": "#b8c4c3", - "symbolIcon.folderForeground": "#b8c4c3", - "symbolIcon.functionForeground": "#a2e57b", - "symbolIcon.interfaceForeground": "#7cd5f1", - "symbolIcon.keyForeground": "#ffb270", - "symbolIcon.keywordForeground": "#ff6d7e", - "symbolIcon.methodForeground": "#a2e57b", - "symbolIcon.moduleForeground": "#7cd5f1", - "symbolIcon.namespaceForeground": "#7cd5f1", - "symbolIcon.nullForeground": "#baa0f8", - "symbolIcon.numberForeground": "#baa0f8", - "symbolIcon.objectForeground": "#7cd5f1", - "symbolIcon.operatorForeground": "#ff6d7e", - "symbolIcon.packageForeground": "#baa0f8", - "symbolIcon.propertyForeground": "#ffb270", - "symbolIcon.referenceForeground": "#baa0f8", - "symbolIcon.snippetForeground": "#a2e57b", - "symbolIcon.stringForeground": "#ffed72", - "symbolIcon.structForeground": "#ff6d7e", - "symbolIcon.textForeground": "#ffed72", - "symbolIcon.typeParameterForeground": "#ffb270", - "symbolIcon.unitForeground": "#baa0f8", - "symbolIcon.variableForeground": "#7cd5f1", - "tab.activeBackground": "#273136", - "tab.activeBorder": "#ffed72", - "tab.activeForeground": "#ffed72", - "tab.activeModifiedBorder": "#545f62", - "tab.border": "#273136", - "tab.hoverBackground": "#273136", - "tab.hoverBorder": "#545f62", - "tab.hoverForeground": "#f2fffc", - "tab.inactiveBackground": "#273136", - "tab.inactiveForeground": "#8b9798", - "tab.inactiveModifiedBorder": "#545f62", - "tab.lastPinnedBorder": "#545f62", - "tab.unfocusedActiveBorder": "#8b9798", - "tab.unfocusedActiveForeground": "#b8c4c3", - "tab.unfocusedActiveModifiedBorder": "#3a4449", - "tab.unfocusedHoverBackground": "#273136", - "tab.unfocusedHoverBorder": "#273136", - "tab.unfocusedHoverForeground": "#b8c4c3", - "tab.unfocusedInactiveForeground": "#8b9798", - "tab.unfocusedInactiveModifiedBorder": "#3a4449", - "terminal.ansiBlack": "#3a4449", - "terminal.ansiBlue": "#ffb270", - "terminal.ansiBrightBlack": "#6b7678", - "terminal.ansiBrightBlue": "#ffb270", - "terminal.ansiBrightCyan": "#7cd5f1", - "terminal.ansiBrightGreen": "#a2e57b", - "terminal.ansiBrightMagenta": "#baa0f8", - "terminal.ansiBrightRed": "#ff6d7e", - "terminal.ansiBrightWhite": "#f2fffc", - "terminal.ansiBrightYellow": "#ffed72", - "terminal.ansiCyan": "#7cd5f1", - "terminal.ansiGreen": "#a2e57b", - "terminal.ansiMagenta": "#baa0f8", - "terminal.ansiRed": "#ff6d7e", - "terminal.ansiWhite": "#f2fffc", - "terminal.ansiYellow": "#ffed72", - "terminal.background": "#3a4449", - "terminal.foreground": "#f2fffc", - "terminal.selectionBackground": "#f2fffc26", - "terminalCommandDecoration.defaultBackground": "#f2fffc", - "terminalCommandDecoration.errorBackground": "#ff6d7e", - "terminalCommandDecoration.successBackground": "#a2e57b", - "terminalCursor.background": "#00000000", - "terminalCursor.foreground": "#f2fffc", - "testing.iconErrored": "#ff6d7e", - "testing.iconFailed": "#ff6d7e", - "testing.iconPassed": "#a2e57b", - "testing.iconQueued": "#f2fffc", - "testing.iconSkipped": "#ffb270", - "testing.iconUnset": "#8b9798", - "testing.message.error.decorationForeground": "#ff6d7e", - "testing.message.error.lineBackground": "#ff6d7e19", - "testing.message.info.decorationForeground": "#f2fffc", - "testing.message.info.lineBackground": "#f2fffc19", - "testing.runAction": "#ffed72", - "textBlockQuote.background": "#3a4449", - "textBlockQuote.border": "#3a4449", - "textCodeBlock.background": "#3a4449", - "textLink.activeForeground": "#f2fffc", - "textLink.foreground": "#ffed72", - "textPreformat.foreground": "#f2fffc", - "textSeparator.foreground": "#6b7678", - "titleBar.activeBackground": "#1d2528", - "titleBar.activeForeground": "#8b9798", - "titleBar.border": "#161b1e", - "titleBar.inactiveBackground": "#1d2528", - "titleBar.inactiveForeground": "#545f62", - "walkThrough.embeddedEditorBackground": "#1d2528", - "welcomePage.progress.background": "#6b7678", - "welcomePage.progress.foreground": "#8b9798", - "welcomePage.tileBackground": "#3a4449", - "welcomePage.tileHoverBackground": "#545f62", - "widget.shadow": "#161b1e", - //"actionBar.toggledBackground": "#545f62", - //"activityBar.activeBorder": "#b8c4c3", - //"activityBar.dropBorder": "#b8c4c3", - //"breadcrumb.background": "#273136", - //"breadcrumbPicker.background": "#3a4449", - //"chat.requestBorder": "#ffffff1a", - //"chat.slashCommandBackground": "#ffed72", - //"chat.slashCommandForeground": "#273136", - //"checkbox.selectBackground": "#3a4449", - //"checkbox.selectBorder": "#8b9798", - //"commandCenter.activeBorder": "#8b97984d", - //"commandCenter.debuggingBackground": "#6b767842", - //"commandCenter.inactiveBorder": "#545f6240", - //"commandCenter.inactiveForeground": "#545f62", - //"commentsView.resolvedIcon": "#cccccc80", - //"commentsView.unresolvedIcon": "#6b7678", - //"diffEditor.move.border": "#8b8b8b9c", - //"diffEditor.moveActive.border": "#ffa500", - //"diffEditor.unchangedCodeBackground": "#74747429", - //"diffEditor.unchangedRegionBackground": "#3e3e3e", - //"diffEditor.unchangedRegionForeground": "#a3a2a2", - //"disabledForeground": "#cccccc80", - //"editor.snippetFinalTabstopHighlightBorder": "#525252", - //"editor.snippetTabstopHighlightBackground": "#7c7c7c4d", - //"editor.symbolHighlightBackground": "#f2fffc26", - //"editor.wordHighlightTextBackground": "#f2fffc26", - //"editor.wordHighlightTextBorder": "#00000000", - //"editorActiveLineNumber.foreground": "#c6c6c6", - //"editorBracketHighlight.unexpectedBracket.foreground": "#ff1212cc", - //"editorBracketPairGuide.activeBackground1": "#00000000", - //"editorBracketPairGuide.activeBackground2": "#00000000", - //"editorBracketPairGuide.activeBackground3": "#00000000", - //"editorBracketPairGuide.activeBackground4": "#00000000", - //"editorBracketPairGuide.activeBackground5": "#00000000", - //"editorBracketPairGuide.activeBackground6": "#00000000", - //"editorBracketPairGuide.background1": "#00000000", - //"editorBracketPairGuide.background2": "#00000000", - //"editorBracketPairGuide.background3": "#00000000", - //"editorBracketPairGuide.background4": "#00000000", - //"editorBracketPairGuide.background5": "#00000000", - //"editorBracketPairGuide.background6": "#00000000", - //"editorCommentsWidget.rangeActiveBackground": "#6b76781a", - //"editorCommentsWidget.rangeBackground": "#6b76781a", - //"editorCommentsWidget.resolvedBorder": "#cccccc80", - //"editorCommentsWidget.unresolvedBorder": "#6b7678", - //"editorGhostText.foreground": "#ffffff56", - //"editorGroup.dropIntoPromptBackground": "#3a4449", - //"editorGroup.dropIntoPromptForeground": "#f2fffc", - //"editorGutter.commentGlyphForeground": "#f2fffc", - //"editorGutter.commentRangeForeground": "#2d373c", - //"editorGutter.commentUnresolvedGlyphForeground": "#f2fffc", - //"editorHoverWidget.foreground": "#f2fffc", - //"editorHoverWidget.highlightForeground": "#f2fffc", - //"editorHoverWidget.statusBarBackground": "#465258", - //"editorIndentGuide.activeBackground": "#545f62", - //"editorIndentGuide.activeBackground1": "#545f62", - //"editorIndentGuide.activeBackground2": "#00000000", - //"editorIndentGuide.activeBackground3": "#00000000", - //"editorIndentGuide.activeBackground4": "#00000000", - //"editorIndentGuide.activeBackground5": "#00000000", - //"editorIndentGuide.activeBackground6": "#00000000", - //"editorIndentGuide.background1": "#3a4449", - //"editorIndentGuide.background2": "#00000000", - //"editorIndentGuide.background3": "#00000000", - //"editorIndentGuide.background4": "#00000000", - //"editorIndentGuide.background5": "#00000000", - //"editorIndentGuide.background6": "#00000000", - //"editorInlayHint.background": "#ffed721a", - //"editorInlayHint.foreground": "#969696", - //"editorInlayHint.parameterBackground": "#ffed721a", - //"editorInlayHint.parameterForeground": "#969696", - //"editorInlayHint.typeBackground": "#ffed721a", - //"editorInlayHint.typeForeground": "#969696", - //"editorMarkerNavigationError.headerBackground": "#ff6d7e1a", - //"editorMarkerNavigationInfo.headerBackground": "#7cd5f11a", - //"editorMarkerNavigationWarning.headerBackground": "#ffb2701a", - //"editorOverviewRuler.bracketMatchForeground": "#a0a0a0", - //"editorOverviewRuler.commentForeground": "#2d373c", - //"editorOverviewRuler.commentUnresolvedForeground": "#2d373c", - //"editorOverviewRuler.commonContentForeground": "#f2fffc26", - //"editorOverviewRuler.wordHighlightTextForeground": "#f2fffc26", - //"editorStickyScroll.background": "#273136", - //"editorStickyScrollHover.background": "#2a2d2e", - //"editorSuggestWidget.focusHighlightForeground": "#f2fffc", - //"editorSuggestWidget.selectedForeground": "#ffed72", - //"editorSuggestWidgetStatus.foreground": "#b8c4c380", - //"editorUnicodeHighlight.background": "#bd9b0326", - //"editorUnicodeHighlight.border": "#bd9b03", - //"editorWidget.foreground": "#f2fffc", - //"extensionBadge.remoteBackground": "#ffed72", - //"extensionButton.background": "#3a4449", - //"extensionButton.foreground": "#b8c4c3", - //"extensionButton.hoverBackground": "#545f62", - //"extensionButton.separator": "#273136", - //"gitDecoration.renamedResourceForeground": "#73c991", - //"gitDecoration.submoduleResourceForeground": "#8db9e2", - //"gitlens.closedAutolinkedIssueIconColor": "#a371f7", - //"gitlens.closedPullRequestIconColor": "#f85149", - //"gitlens.decorations.addedForegroundColor": "#a2e57b", - //"gitlens.decorations.branchAheadForegroundColor": "#35b15e", - //"gitlens.decorations.branchBehindForegroundColor": "#b15e35", - //"gitlens.decorations.branchDivergedForegroundColor": "#d8af1b", - //"gitlens.decorations.branchMissingUpstreamForegroundColor": "#c74e39", - //"gitlens.decorations.branchUnpublishedForegroundColor": "#35b15e", - //"gitlens.decorations.branchUpToDateForegroundColor": "#8b9798", - //"gitlens.decorations.copiedForegroundColor": "#73c991", - //"gitlens.decorations.deletedForegroundColor": "#ff6d7e", - //"gitlens.decorations.ignoredForegroundColor": "#545f62", - //"gitlens.decorations.modifiedForegroundColor": "#ffed72", - //"gitlens.decorations.renamedForegroundColor": "#73c991", - //"gitlens.decorations.untrackedForegroundColor": "#b8c4c3", - //"gitlens.decorations.workspaceCurrentForegroundColor": "#35b15e", - //"gitlens.decorations.workspaceRepoMissingForegroundColor": "#909090", - //"gitlens.decorations.workspaceRepoOpenForegroundColor": "#35b15e", - //"gitlens.decorations.worktreeHasUncommittedChangesForegroundColor": "#e2c08d", - //"gitlens.decorations.worktreeMissingForegroundColor": "#c74e39", - //"gitlens.graphChangesColumnAddedColor": "#347d39", - //"gitlens.graphChangesColumnDeletedColor": "#c93c37", - //"gitlens.graphLane10Color": "#2ece9d", - //"gitlens.graphLane1Color": "#15a0bf", - //"gitlens.graphLane2Color": "#0669f7", - //"gitlens.graphLane3Color": "#8e00c2", - //"gitlens.graphLane4Color": "#c517b6", - //"gitlens.graphLane5Color": "#d90171", - //"gitlens.graphLane6Color": "#cd0101", - //"gitlens.graphLane7Color": "#f25d2e", - //"gitlens.graphLane8Color": "#f2ca33", - //"gitlens.graphLane9Color": "#7bd938", - //"gitlens.graphMinimapMarkerHeadColor": "#05e617", - //"gitlens.graphMinimapMarkerHighlightsColor": "#fbff0a", - //"gitlens.graphMinimapMarkerLocalBranchesColor": "#3087cf", - //"gitlens.graphMinimapMarkerRemoteBranchesColor": "#2b5e88", - //"gitlens.graphMinimapMarkerStashesColor": "#b34db3", - //"gitlens.graphMinimapMarkerTagsColor": "#6b562e", - //"gitlens.graphMinimapMarkerUpstreamColor": "#09ae17", - //"gitlens.graphScrollMarkerHeadColor": "#05e617", - //"gitlens.graphScrollMarkerHighlightsColor": "#fbff0a", - //"gitlens.graphScrollMarkerLocalBranchesColor": "#3087cf", - //"gitlens.graphScrollMarkerRemoteBranchesColor": "#2b5e88", - //"gitlens.graphScrollMarkerStashesColor": "#b34db3", - //"gitlens.graphScrollMarkerTagsColor": "#6b562e", - //"gitlens.graphScrollMarkerUpstreamColor": "#09ae17", - //"gitlens.gutterBackgroundColor": "#ffffff13", - //"gitlens.gutterForegroundColor": "#bebebe", - //"gitlens.gutterUncommittedForegroundColor": "#00bcf299", - //"gitlens.lineHighlightBackgroundColor": "#00bcf233", - //"gitlens.lineHighlightOverviewRulerColor": "#00bcf299", - //"gitlens.mergedPullRequestIconColor": "#a371f7", - //"gitlens.openAutolinkedIssueIconColor": "#3fb950", - //"gitlens.openPullRequestIconColor": "#3fb950", - //"gitlens.trailingLineBackgroundColor": "#00000000", - //"gitlens.trailingLineForegroundColor": "#99999959", - //"gitlens.unpublishedChangesIconColor": "#35b15e", - //"gitlens.unpublishedCommitIconColor": "#35b15e", - //"gitlens.unpulledChangesIconColor": "#b15e35", - //"inlineChat.background": "#3a4449", - //"inlineChat.border": "#3a4449", - //"inlineChat.regionHighlight": "#f2fffc0c", - //"inlineChat.shadow": "#161b1e", - //"inlineChatDiff.inserted": "#a2e57b0c", - //"inlineChatDiff.removed": "#ff6d7e0c", - //"inlineChatInput.background": "#3a4449", - //"inlineChatInput.border": "#3a4449", - //"inlineChatInput.focusBorder": "#6b7678", - //"inlineChatInput.placeholderForeground": "#6b7678", - //"interactive.activeCodeBorder": "#273136", - //"interactive.inactiveCodeBorder": "#b8c4c30c", - //"issues.closed": "#cb2431", - //"issues.newIssueDecoration": "#ffffff48", - //"issues.open": "#3fb950", - //"keybindingTable.headerBackground": "#f2fffc0a", - //"keybindingTable.rowsBackground": "#f2fffc0a", - //"list.deemphasizedForeground": "#8c8c8c", - //"list.filterMatchBackground": "#f2fffc26", - //"list.filterMatchBorder": "#00000000", - //"list.focusHighlightForeground": "#f2fffc", - //"list.focusOutline": "#6b7678", - //"listFilterWidget.shadow": "#161b1e", - //"menu.selectionBackground": "#f2fffc0c", - //"menubar.selectionBackground": "#5a5d5e50", - //"mergeEditor.changeBase.background": "#4b1818", - //"mergeEditor.changeBase.word.background": "#6f1313", - //"mergeEditor.conflict.input1.background": "#ff6d7e0f", - //"mergeEditor.conflict.input2.background": "#a2e57b0f", - //"mergeEditor.conflictingLines.background": "#ffea0047", - //"minimap.foregroundOpacity": "#000000", - //"minimap.infoHighlight": "#7cd5f1", - //"minimapSlider.activeBackground": "#f2fffc2d", - //"minimapSlider.background": "#b8c4c313", - //"minimapSlider.hoverBackground": "#f2fffc13", - //"notebook.focusedCellBorder": "#6b7678", - //"notebook.inactiveFocusedCellBorder": "#3a4449", - //"notebook.selectedCellBackground": "#b8c4c30c", - //"notebook.selectedCellBorder": "#3a4449", - //"notebook.symbolHighlightBackground": "#ffffff0b", - //"notebookEditorOverviewRuler.runningCellForeground": "#a2e57b", - //"notebookScrollbarSlider.activeBackground": "#f2fffc59", - //"notebookScrollbarSlider.background": "#b8c4c326", - //"notebookScrollbarSlider.hoverBackground": "#f2fffc26", - //"panel.dropBorder": "#ffed72", - //"panelInput.border": "#3a4449", - //"panelSection.border": "#273136", - //"panelSection.dropBackground": "#1d2528bf", - //"panelSectionHeader.background": "#80808033", - //"peekViewEditorStickyScroll.background": "#3a4449", - //"pullRequests.closed": "#cb2431", - //"pullRequests.draft": "#6e7681", - //"pullRequests.merged": "#8957e5", - //"pullRequests.notification": "#7cd5f1", - //"pullRequests.open": "#3fb950", - //"quickInput.background": "#3a4449", - //"quickInput.foreground": "#f2fffc", - //"quickInputList.focusBackground": "#f2fffc0c", - //"quickInputList.focusForeground": "#ffed72", - //"quickInputTitle.background": "#ffffff1b", - //"scm.providerBorder": "#454545", - //"search.resultsInfoForeground": "#f2fffca6", - //"searchEditor.findMatchBackground": "#f2fffc19", - //"searchEditor.findMatchBorder": "#00000000", - //"searchEditor.textInputBorder": "#3a4449", - //"settings.focusedRowBackground": "#f2fffc07", - //"settings.focusedRowBorder": "#6b7678", - //"settings.headerBorder": "#273136", - //"settings.sashBorder": "#273136", - //"settings.settingsHeaderHoverForeground": "#ffed72b3", - //"sideBySideEditor.horizontalBorder": "#1d2528", - //"sideBySideEditor.verticalBorder": "#1d2528", - //"simpleFindWidget.sashBorder": "#454545", - //"statusBarItem.compactHoverBackground": "#ffffff33", - //"statusBarItem.errorHoverBackground": "#f2fffc0c", - //"statusBarItem.errorHoverForeground": "#6b7678", - //"statusBarItem.hoverForeground": "#6b7678", - //"statusBarItem.offlineBackground": "#6c1717", - //"statusBarItem.offlineForeground": "#a2e57b", - //"statusBarItem.offlineHoverBackground": "#f2fffc0c", - //"statusBarItem.offlineHoverForeground": "#6b7678", - //"statusBarItem.prominentForeground": "#6b7678", - //"statusBarItem.prominentHoverForeground": "#6b7678", - //"statusBarItem.remoteHoverBackground": "#f2fffc0c", - //"statusBarItem.remoteHoverForeground": "#6b7678", - //"statusBarItem.warningHoverBackground": "#f2fffc0c", - //"statusBarItem.warningHoverForeground": "#6b7678", - //"tab.unfocusedActiveBackground": "#273136", - //"tab.unfocusedInactiveBackground": "#273136", - //"terminal.border": "#273136", - //"terminal.dropBackground": "#1d2528bf", - //"terminal.findMatchBackground": "#f2fffc26", - //"terminal.findMatchHighlightBackground": "#f2fffc26", - //"terminal.hoverHighlightBackground": "#f2fffc06", - //"terminal.inactiveSelectionBackground": "#f2fffc13", - //"terminal.tab.activeBorder": "#ffed72", - //"terminalOverviewRuler.cursorForeground": "#a0a0a0cc", - //"terminalOverviewRuler.findMatchForeground": "#f2fffc26", - //"testing.peekBorder": "#ff6d7e", - //"testing.peekHeaderBackground": "#ff6d7e1a", - //"toolbar.activeBackground": "#63666750", - //"toolbar.hoverBackground": "#5a5d5e50", - //"tree.inactiveIndentGuidesStroke": "#58585866", - //"tree.indentGuidesStroke": "#585858", - //"tree.tableColumnsBorder": "#cccccc20", - //"tree.tableOddRowsBackground": "#f2fffc0a", - //"walkthrough.stepTitle.foreground": "#ffffff", - //"welcomePage.tileBorder": "#ffffff1a", - //"activityBar.activeBackground": null, - //"button.border": null, - //"contrastActiveBorder": null, - //"contrastBorder": null, - //"debugToolBar.border": null, - //"diffEditor.border": null, - //"diffEditor.insertedTextBorder": null, - //"diffEditor.removedTextBorder": null, - //"editor.selectionForeground": null, - //"editor.snippetFinalTabstopHighlightBackground": null, - //"editor.snippetTabstopHighlightBorder": null, - //"editor.symbolHighlightBorder": null, - //"editorGhostText.background": null, - //"editorGhostText.border": null, - //"editorGroup.dropIntoPromptBorder": null, - //"editorGroupHeader.border": null, - //"editorLineNumber.dimmedForeground": null, - //"editorOverviewRuler.background": null, - //"editorSuggestWidget.selectedIconForeground": null, - //"editorUnnecessaryCode.border": null, - //"editorWidget.resizeBorder": null, - //"list.activeSelectionIconForeground": null, - //"list.focusAndSelectionOutline": null, - //"list.inactiveFocusOutline": null, - //"list.inactiveSelectionIconForeground": null, - //"menu.selectionBorder": null, - //"menubar.selectionBorder": null, - //"minimap.background": null, - //"notebook.cellHoverBackground": null, - //"notebook.focusedCellBackground": null, - //"notebook.inactiveSelectedCellBorder": null, - //"notebook.outputContainerBackgroundColor": null, - //"notebook.outputContainerBorderColor": null, - //"panelSectionHeader.border": null, - //"panelSectionHeader.foreground": null, - //"peekViewEditor.matchHighlightBorder": null, - //"quickInput.list.focusBackground": null, - //"quickInputList.focusIconForeground": null, - //"sideBarSectionHeader.border": null, - //"tab.activeBorderTop": null, - //"tab.unfocusedActiveBorderTop": null, - //"terminal.findMatchBorder": null, - //"terminal.findMatchHighlightBorder": null, - //"terminal.selectionForeground": null, - //"toolbar.hoverOutline": null, - //"welcomePage.background": null, - //"widget.border": null, - //"window.activeBorder": null, - //"window.inactiveBorder": null + "editorLineNumber.foreground": "#aaa", + "editorOverviewRuler.border": "#fff", + "editor.lineHighlightBackground": "#F7F8FA", + "scrollbarSlider.background": "#E8EAEC", + "editorIndentGuide.activeBackground1": "#fff", + "editorIndentGuide.background1": "#eee", + "activityBar.activeBorder": "#005FB8", + "activityBar.background": "#F8F8F8", + "activityBar.border": "#E5E5E5", + "activityBar.foreground": "#1F1F1F", + "activityBar.inactiveForeground": "#616161", + "activityBarBadge.background": "#005FB8", + "activityBarBadge.foreground": "#FFFFFF", + "badge.background": "#CCCCCC", + "badge.foreground": "#3B3B3B", + "button.background": "#005FB8", + "button.border": "#0000001a", + "button.foreground": "#FFFFFF", + "button.hoverBackground": "#0258A8", + "button.secondaryBackground": "#E5E5E5", + "button.secondaryForeground": "#3B3B3B", + "button.secondaryHoverBackground": "#CCCCCC", + "chat.slashCommandBackground": "#D2ECFF", + "chat.slashCommandForeground": "#306CA2", + "checkbox.background": "#F8F8F8", + "checkbox.border": "#CECECE", + "descriptionForeground": "#3B3B3B", + "dropdown.background": "#FFFFFF", + "dropdown.border": "#CECECE", + "dropdown.foreground": "#3B3B3B", + "dropdown.listBackground": "#FFFFFF", + "editor.background": "#FFFFFF", + "editor.foreground": "#3B3B3B", + "editor.inactiveSelectionBackground": "#E5EBF1", + "editor.selectionHighlightBackground": "#ADD6FF80", + "editorGroup.border": "#E5E5E5", + "editorGroupHeader.tabsBackground": "#F8F8F8", + "editorGroupHeader.tabsBorder": "#E5E5E5", + "editorGutter.addedBackground": "#2EA043", + "editorGutter.deletedBackground": "#F85149", + "editorGutter.modifiedBackground": "#005FB8", + "editorLineNumber.activeForeground": "#171184", + "editorSuggestWidget.background": "#F8F8F8", + "editorWidget.background": "#F8F8F8", + "errorForeground": "#F85149", + "focusBorder": "#005FB8", + "foreground": "#3B3B3B", + "icon.foreground": "#3B3B3B", + "input.background": "#FFFFFF", + "input.border": "#CECECE", + "input.foreground": "#3B3B3B", + "input.placeholderForeground": "#868686", + "inputOption.activeBackground": "#BED6ED", + "inputOption.activeBorder": "#005FB8", + "inputOption.activeForeground": "#000000", + "keybindingLabel.foreground": "#3B3B3B", + "list.activeSelectionBackground": "#E8E8E8", + "list.activeSelectionForeground": "#000000", + "list.activeSelectionIconForeground": "#000000", + "list.hoverBackground": "#F2F2F2", + "list.focusAndSelectionOutline": "#005FB8", + "menu.border": "#CECECE", + "notebook.cellBorderColor": "#E5E5E5", + "notebook.selectedCellBackground": "#C8DDF150", + "notificationCenterHeader.background": "#FFFFFF", + "notificationCenterHeader.foreground": "#3B3B3B", + "notifications.background": "#FFFFFF", + "notifications.border": "#E5E5E5", + "notifications.foreground": "#3B3B3B", + "panel.background": "#F8F8F8", + "panel.border": "#E5E5E5", + "panelInput.border": "#E5E5E5", + "panelTitle.activeBorder": "#005FB8", + "panelTitle.activeForeground": "#3B3B3B", + "panelTitle.inactiveForeground": "#3B3B3B", + "peekViewEditor.matchHighlightBackground": "#BB800966", + "peekViewResult.background": "#FFFFFF", + "peekViewResult.matchHighlightBackground": "#BB800966", + "pickerGroup.border": "#E5E5E5", + "pickerGroup.foreground": "#8B949E", + "ports.iconRunningProcessForeground": "#369432", + "progressBar.background": "#005FB8", + "quickInput.background": "#F8F8F8", + "quickInput.foreground": "#3B3B3B", + "searchEditor.textInputBorder": "#CECECE", + "settings.dropdownBackground": "#FFFFFF", + "settings.dropdownBorder": "#CECECE", + "settings.headerForeground": "#1F1F1F", + "settings.modifiedItemIndicator": "#BB800966", + "settings.numberInputBorder": "#CECECE", + "settings.textInputBorder": "#CECECE", + "sideBar.background": "#F8F8F8", + "sideBar.border": "#E5E5E5", + "sideBar.foreground": "#3B3B3B", + "sideBarSectionHeader.background": "#F8F8F8", + "sideBarSectionHeader.border": "#E5E5E5", + "sideBarSectionHeader.foreground": "#3B3B3B", + "sideBarTitle.foreground": "#3B3B3B", + "statusBar.background": "#F8F8F8", + "statusBar.foreground": "#3B3B3B", + "statusBar.border": "#E5E5E5", + "statusBar.debuggingBackground": "#FD716C", + "statusBar.debuggingForeground": "#000000", + "statusBar.focusBorder": "#005FB8", + "statusBar.noFolderBackground": "#F8F8F8", + "statusBarItem.errorBackground": "#C72E0F", + "statusBarItem.focusBorder": "#005FB8", + "statusBarItem.prominentBackground": "#6E768166", + "statusBarItem.remoteBackground": "#005FB8", + "statusBarItem.remoteForeground": "#FFFFFF", + "tab.activeBackground": "#FFFFFF", + "tab.activeBorder": "#F8F8F8", + "tab.activeBorderTop": "#005FB8", + "tab.activeForeground": "#3B3B3B", + "tab.border": "#E5E5E5", + "tab.hoverBackground": "#FFFFFF", + "tab.inactiveBackground": "#F8F8F8", + "tab.inactiveForeground": "#868686", + "tab.lastPinnedBorder": "#D4D4D4", + "tab.unfocusedActiveBorder": "#F8F8F8", + "tab.unfocusedActiveBorderTop": "#E5E5E5", + "tab.unfocusedHoverBackground": "#F8F8F8", + "terminalCursor.foreground": "#005FB8", + "terminal.foreground": "#3B3B3B", + "terminal.inactiveSelectionBackground": "#E5EBF1", + "terminal.tab.activeBorder": "#005FB8", + "textBlockQuote.background": "#F8F8F8", + "textBlockQuote.border": "#E5E5E5", + "textCodeBlock.background": "#F8F8F8", + "textLink.activeForeground": "#005FB8", + "textLink.foreground": "#005FB8", + "textSeparator.foreground": "#21262D", + "titleBar.activeBackground": "#F8F8F8", + "titleBar.activeForeground": "#1E1E1E", + "titleBar.border": "#E5E5E5", + "titleBar.inactiveBackground": "#F8F8F8", + "titleBar.inactiveForeground": "#8B949E", + "welcomePage.tileBackground": "#F3F3F3", + "widget.border": "#E5E5E5", + "actionBar.toggledBackground": "#dddddd", + "editorBracketHighlight.foreground1": "#B93A67", + "editorBracketHighlight.foreground2": "#0178CE", + // "editorBracketHighlight.foreground3": "#ffed72", + // "editorBracketHighlight.foreground4": "#a2e57b", + // "editorBracketHighlight.foreground5": "#7cd5f1", + // "editorBracketHighlight.foreground6": "#baa0f8", }, "tokenColors": [ { + "name": "Function declarations", "scope": [ - "comment", - "comment keyword", - "comment markup.underline.link", - "comment string", - "comment punctuation.definition", - "comment punctuation", - "comment text" - ], - "settings": { - "foreground": "#6B7678", - "fontStyle": "italic" - } - }, - { - "scope": "comment storage.type", - "settings": { - "foreground": "#6B7678" - } - }, - { - "scope": "comment entity.name.type", - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": [ - "comment variable", - "comment variable.other" - ], - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": "comment keyword.codetag.notation", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "comment.git-status.header.remote", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "comment.git-status.header.local", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "comment.other.git-status.head", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": [ - "string.quoted.docstring", - "string.quoted.docstring punctuation.definition" - ], - "settings": { - "foreground": "#6B7678" - } - }, - { - "scope": "constant", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "constant.other.caps", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.placeholder.c", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": "constant.other.property", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.citation.latex", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.color", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.character-class.escape", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.key", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.symbol", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": "constant.other.elm", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "constant.numeric", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.language", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.character.escape", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.numeric.line-number.find-in-files", - "settings": { - "foreground": "#545F62" - } - }, - { - "scope": "constant.numeric.line-number.match.find-in-files", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": "entity.name.section", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": [ - "entity.name.function", - "entity.name.function.templated", - "entity.name.function.member.static" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": [ - "entity.name.type.class.templated", - "entity.name.type.class.generic", - "entity.name.type.namespace" - ], - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.name.label", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "entity.name.function.preprocessor", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.name", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "entity.name.class", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.name.constant", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "entity.name.namespace", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "entity.other.inherited-class", - "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": "entity.name.function", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": [ - "entity.name.tag", - "entity.name.tag.js.jsx support.class.component.js.jsx", - "entity.name.tag support.class.component", - "source.vue support.class.component" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "entity.name.function.operator", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "meta.brackets entity.name.function.operator", - "punctuation.separator entity.name.function.operator" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "entity.name.type", - "entity.name.type.class.reference", - "entity.name.type.class.value" - ], - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.other.attribute-name", - "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": [ - "entity.other.attribute-name.class.css", - "entity.other.attribute-name.parent-selector-suffix.css", - "entity.other.attribute-name.parent-selector-suffix.css punctuation.definition.entity.css", - "entity.other.attribute-name.css", - "entity.other.animation-name.css" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "entity.other.attribute-name.id.css", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": [ - "entity.other.attribute-name.pseudo-class.css", - "entity.other.pseudo-class.css", - "entity.other.pseudo-element.css" - ], - "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": [ - "entity.name.function", - "support.function" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "entity.other.git-status.hex", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "entity.other.jinja2.delimiter", - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "entity.name.operator.custom-literal", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "entity.name.operator.custom-literal.string", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": "entity.name.operator.custom-literal.number", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "entity.name.type.rust", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.name.lifetime.rust", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "invalid", - "settings": { - "foreground": "#FF6D7E", - "fontStyle": "italic underline" - } - }, - { - "scope": "invalid.deprecated", - "settings": { - "foreground": "#FFB270", - "fontStyle": "italic underline" - } - }, - { - "scope": "keyword", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "keyword.control", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "keyword.control.directive", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "keyword.operator", - "keyword.operator.member", - "keyword.operator.new" + "entity.name.function", + "support.function", + "support.constant.handlebars", + "source.powershell variable.other.member", + "entity.name.operator.custom-literal" // See https://en.cppreference.com/w/cpp/language/user_literal ], "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "keyword.other.substitution", - "settings": { - "foreground": "#8B9798" + "foreground": "#006674" } }, { + "name": "Types declaration and references", "scope": [ - "keyword.other.template.begin", - "keyword.other.template.end" + "support.class", + "support.type", + "entity.name.type", + "entity.name.namespace", + "entity.other.attribute", + "entity.name.scope-resolution", + "entity.name.class", + "storage.type.numeric.go", + "storage.type.byte.go", + "storage.type.boolean.go", + "storage.type.string.go", + "storage.type.uintptr.go", + "storage.type.error.go", + "storage.type.rune.go", + "storage.type.cs", + "storage.type.generic.cs", + "storage.type.modifier.cs", + "storage.type.variable.cs", + "storage.type.annotation.java", + "storage.type.generic.java", + "storage.type.java", + "storage.type.object.array.java", + "storage.type.primitive.array.java", + "storage.type.primitive.java", + "storage.type.token.java", + "storage.type.groovy", + "storage.type.annotation.groovy", + "storage.type.parameters.groovy", + "storage.type.generic.groovy", + "storage.type.object.array.groovy", + "storage.type.primitive.array.groovy", + "storage.type.primitive.groovy" ], "settings": { - "foreground": "#FF6D7E" + "foreground": "#267f99" } }, { + "name": "Types declaration and references, TS grammar specific", "scope": [ - "keyword.operator.heading.restructuredtext", - "keyword.operator.table.row.restructuredtext keyword.operator.table.data.restructuredtext" + "meta.type.cast.expr", + "meta.type.new.expr", + "support.constant.math", + "support.constant.dom", + "support.constant.json", + "entity.other.inherited-class" ], "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "keyword.other.parenthesis.elm", - "settings": { - "foreground": "#8B9798" + "foreground": "#267f99" } }, { + "name": "Control flow / Special keywords", "scope": [ - "keyword.other.fn.rust", - "keyword.other.rust", - "keyword.other.unsafe.rust", - "keyword.other.where.rust" + "keyword.control", + "source.cpp keyword.operator.new", + "source.cpp keyword.operator.delete", + "keyword.other.using", + "keyword.other.operator", + "entity.name.operator" ], "settings": { - "foreground": "#7CD5F1" + "foreground": "#AF00DB" } }, { + "name": "Variable and parameter name", "scope": [ - "keyword.control.rust", - "keyword.operator.misc.rust" + "variable", + "meta.definition.variable.name", + "support.variable", + "entity.name.variable", + "constant.other.placeholder", // placeholders in strings ], "settings": { - "foreground": "#FF6D7E" + "foreground": "#006674" } }, { + "name": "Constants and enums", "scope": [ - "keyword.declaration.class.ruby", - "keyword.declaration.function.ruby", - "keyword.declaration.namespace.ruby" + "variable.other.constant", + "variable.other.enummember" ], "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "markup.italic", - "settings": { - "fontStyle": "italic" - } - }, - { - "scope": "markup.bold", - "settings": { - "fontStyle": "bold" - } - }, - { - "scope": "markup.heading", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": "markup.raw", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": "markup.underline", - "settings": { - "fontStyle": "underline" - } - }, - { - "scope": "markup.underline.link", - "settings": { - "foreground": "#A2E57B" + "foreground": "#006674", } }, { + "name": "Object keys, TS grammar specific", "scope": [ - "markup.inserted", - "markup.inserted punctuation.definition.inserted" + "meta.object-literal.key" ], "settings": { - "foreground": "#A2E57B" + "foreground": "#006674" } }, { + "name": "CSS property value", "scope": [ - "markup.deleted", - "markup.deleted punctuation.definition.deleted" + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" ], "settings": { - "foreground": "#FF6D7E" + "foreground": "#0451a5" } }, { + "name": "Regular expression groups", "scope": [ - "markup.changed", - "markup.changed punctuation.definition.changed" + "punctuation.definition.group.regexp", + "punctuation.definition.group.assertion.regexp", + "punctuation.definition.character-class.regexp", + "punctuation.character.set.begin.regexp", + "punctuation.character.set.end.regexp", + "keyword.operator.negation.regexp", + "support.other.parenthesis.regexp" ], "settings": { - "foreground": "#FFED72" + "foreground": "#d16969" } }, { "scope": [ - "markup.ignored", - "markup.ignored punctuation.definition.ignored" + "constant.character.character-class.regexp", + "constant.other.character-class.set.regexp", + "constant.other.character-class.regexp", + "constant.character.set.regexp" ], "settings": { - "foreground": "#8B9798" + "foreground": "#811f3f" } }, { - "scope": "markup.untracked", + "scope": "keyword.operator.quantifier.regexp", "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "markup.quote", - "settings": { - "fontStyle": "italic" + "foreground": "#000000" } }, { "scope": [ - "meta.brace.round", - "meta.brace.square", - "meta.brace.curly", - "meta.delimiter.comma.js", - "meta.function-call.without-arguments.js", - "meta.function-call.method.without-arguments.js" + "keyword.operator.or.regexp", + "keyword.control.anchor.regexp" ], "settings": { - "foreground": "#8B9798" + "foreground": "#EE0000" } }, { "scope": [ - "meta.function-call.generic.python", - "support.function.builtin.python" + "constant.character", + "constant.other.option" ], "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "meta.function-call.python meta.function-call.arguments.python", - "settings": { - "foreground": "#F2FFFC" + "foreground": "#0178CE" } }, { - "scope": "meta.instance.constructor", + "scope": "constant.character.escape", "settings": { - "foreground": "#A2E57B" + "foreground": "#EE0000" } }, { - "scope": [ - "meta.attribute-with-value.class string", - "meta.attribute.class.html string" - ], + "scope": "entity.name.label", "settings": { - "foreground": "#A2E57B" + "foreground": "#000000" } }, { "scope": [ - "meta.attribute-with-value.id string", - "meta.attribute.id.html string" + "meta.embedded", + "source.groovy.embedded", + "string meta.image.inline.markdown", + "variable.legacy.builtin.python" ], "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": "source.json meta.mapping.key string", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "source.yaml meta.mapping.key string", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "meta.object.member", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "meta.property-list.css variable.other", - "settings": { - "foreground": "#FFB270" + "foreground": "#000178CE" } }, { - "scope": [ - "entity.name.constant.preprocessor", - "meta.preprocessor" - ], + "scope": "emphasis", "settings": { - "foreground": "#BAA0F8" + "fontStyle": "italic" } }, { - "scope": "meta.diff.git-diff.header", + "scope": "strong", "settings": { - "foreground": "#FFED72" + "fontStyle": "bold" } }, { - "scope": "meta.type_params.rust", + "scope": "meta.diff.header", "settings": { - "foreground": "#F2FFFC" + "foreground": "#000080" } }, { - "scope": [ - "meta.attribute.rust", - "meta.annotation.rust", - "variable.language.rust", - "variable.annotation.rust", - "meta.annotation.rust string", - "meta.annotation.rust keyword", - "meta.annotation.rust keyword.operator", - "meta.attribute.rust string" - ], + "scope": "comment", "settings": { - "foreground": "#B8C4C3" + "foreground": "#646893" } }, { - "scope": "punctuation", + "scope": "constant.language", "settings": { - "foreground": "#8B9798" + "foreground": "#0178CE" } }, { "scope": [ - "punctuation.definition.tag", - "punctuation.definition.tag source", - "punctuation.definition.group.begin.ruby", - "punctuation.definition.group.end.ruby", - "punctuation.definition.group.begin.css", - "punctuation.definition.group.end.css", - "punctuation.definition.string.end.html source.css" + "constant.numeric", + "variable.other.enummember", + "keyword.operator.plus.exponent", + "keyword.operator.minus.exponent" ], "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "punctuation.definition.group", - "settings": { - "foreground": "#F2FFFC" + "foreground": "#098658" } }, { - "scope": "punctuation.definition.comment", + "scope": "constant.regexp", "settings": { - "foreground": "#6B7678" + "foreground": "#811f3f" } }, { - "scope": [ - "punctuation.definition.variable", - "punctuation.definition.keyword.scss", - "punctuation.definition.entity.css" - ], + "name": "css tags in selectors, xml tags", + "scope": "entity.name.tag", "settings": { - "foreground": "#B8C4C3" + "foreground": "#800000" } }, { - "scope": [ - "punctuation.section.embedded", - "punctuation.section.embedded entity.name.tag", - "punctuation.section.embedded constant.other", - "punctuation.section.embedded source", - "punctuation.section.embedded.begin" - ], + "scope": "entity.name.selector", "settings": { - "foreground": "#FFB270" + "foreground": "#800000" } }, { - "scope": [ - "punctuation.template-string.element.begin", - "punctuation.template-string.element.end", - "punctuation.definition.string.template.begin", - "punctuation.definition.string.template.end", - "string.quoted.template punctuation.definition.string.begin", - "string.quoted.template punctuation.definition.string.end", - "punctuation.definition.template-expression.begin", - "punctuation.definition.template-expression.end" - ], + "scope": "entity.other.attribute-name", "settings": { - "foreground": "#FF6D7E" + "foreground": "#e50000" } }, { "scope": [ - "meta.paragraph.markdown meta.dummy.line-break", - "meta.paragraph.markdown meta.hard-line-break.markdown" + "entity.other.attribute-name.class.css", + "entity.other.attribute-name.class.mixin.css", + "entity.other.attribute-name.id.css", + "entity.other.attribute-name.parent-selector.css", + "entity.other.attribute-name.pseudo-class.css", + "entity.other.attribute-name.pseudo-element.css", + "source.css.less entity.other.attribute-name.id", + "entity.other.attribute-name.scss" ], "settings": { - "background": "#BAA0F8" - } - }, - { - "scope": "markup.underline.link punctuation", - "settings": { - "foreground": "#A2E57B" + "foreground": "#800000" } }, { - "scope": "region.redish", + "scope": "invalid", "settings": { - "foreground": "#FF6D7E", - "background": "#FF6D7E59" + "foreground": "#cd3131" } }, { - "scope": "region.orangish", + "scope": "markup.underline", "settings": { - "foreground": "#FFB270", - "background": "#FFB27059" + "fontStyle": "underline" } }, { - "scope": "region.yellowish", + "scope": "markup.bold", "settings": { - "foreground": "#FFED72", - "background": "#FFED7259" + "fontStyle": "bold", + "foreground": "#000080" } }, { - "scope": "region.greenish", + "scope": "markup.heading", "settings": { - "foreground": "#A2E57B", - "background": "#A2E57B59" + "fontStyle": "bold", + "foreground": "#800000" } }, { - "scope": "region.bluish", + "scope": "markup.italic", "settings": { - "foreground": "#7CD5F1", - "background": "#7CD5F159" + "fontStyle": "italic" } }, { - "scope": "region.purplish", + "scope": "markup.strikethrough", "settings": { - "foreground": "#BAA0F8", - "background": "#BAA0F859" + "fontStyle": "strikethrough" } }, { - "scope": "region.pinkish", + "scope": "markup.inserted", "settings": { - "foreground": "#FF6D7E", - "background": "#FF6D7E59" + "foreground": "#098658" } }, { - "scope": "region.whitish", + "scope": "markup.deleted", "settings": { - "foreground": "#FFFFFF" + "foreground": "#B934C5" } }, { - "scope": "source", + "scope": "markup.changed", "settings": { - "foreground": "#F2FFFC" + "foreground": "#0451a5" } }, { "scope": [ - "source.scss", - "source.sass" + "punctuation.definition.quote.begin.markdown", + "punctuation.definition.list.begin.markdown" ], "settings": { - "foreground": "#8B9798" + "foreground": "#0451a5" } }, { - "scope": [ - "source.sass variable.other", - "source.sass variable.sass", - "source.scss variable.other", - "source.scss variable.scss", - "source.scss variable.sass", - "source.css variable.other", - "source.css variable.scss", - "source.less variable.other", - "source.less variable.other.less", - "source.less variable.declaration.less" - ], + "scope": "markup.inline.raw", "settings": { - "foreground": "#FFB270", - "fontStyle": "italic" + "foreground": "#800000" } }, { - "scope": "source.git-show.commit.sha", + "name": "brackets of XML/HTML tags", + "scope": "punctuation.definition.tag", "settings": { - "foreground": "#BAA0F8" + "foreground": "#800000" } }, { "scope": [ - "source.git-show.author", - "source.git-show.date", - "source.git-diff.command", - "source.git-diff.command meta.diff.git-diff.header.from-file", - "source.git-diff.command meta.diff.git-diff.header.to-file" + "meta.preprocessor", + "entity.name.function.preprocessor" ], "settings": { - "foreground": "#8B9798" + "foreground": "#0178CE" } }, { - "scope": [ - "source.git-show meta.diff.git-diff.header.extended.index.from-sha", - "source.git-show meta.diff.git-diff.header.extended.index.to-sha" - ], + "scope": "meta.preprocessor.string", "settings": { - "foreground": "#BAA0F8" + "foreground": "#B934C5" } }, { - "scope": "source.git-show meta.diff.range.unified", + "scope": "meta.preprocessor.numeric", "settings": { - "foreground": "#FFB270" + "foreground": "#098658" } }, { - "scope": [ - "source.git-show meta.diff.header.from-file", - "source.git-show meta.diff.header.to-file" - ], + "scope": "meta.structure.dictionary.key.python", "settings": { - "foreground": "#8B9798" + "foreground": "#0451a5" } }, { "scope": "storage", "settings": { - "foreground": "#FF6D7E" + "foreground": "#0178CE" } }, { "scope": "storage.type", "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": "storage.type.extends", - "settings": { - "foreground": "#FF6D7E", - "fontStyle": "normal" - } - }, - { - "scope": "storage.type.function.arrow", - "settings": { - "foreground": "#FF6D7E", - "fontStyle": "normal" + "foreground": "#0178CE" } }, { "scope": [ "storage.modifier", - "storage.type.modifier" - ], - "settings": { - "foreground": "#FF6D7E", - "fontStyle": "italic" - } - }, - { - "scope": "storage.class.restructuredtext.ref", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": [ - "storage.modifier.visibility.rust", - "storage.modifier.lifetime.rust" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "storage.modifier.const.rust", - "storage.modifier.dyn.rust", - "storage.modifier.mut.rust", - "storage.modifier.static.rust", - "storage.type.rust", - "storage.type.core.rust", - "storage.class.std.rust" - ], - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": [ - "storage.type.rust", - "storage.modifier.const.rust", - "storage.modifier.dyn.rust", - "storage.modifier.mut.rust", - "storage.modifier.static.rust", - "keyword.other.rust", - "keyword.other.where.rust" + "keyword.operator.noexcept" ], "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "string", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": "string.unquoted.label", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "string source", - "settings": { - "foreground": "#F2FFFC" + "foreground": "#0178CE" } }, { "scope": [ - "string source punctuation.section.embedded", - "string punctuation.definition.string source" + "string", + "meta.embedded.assembly" ], "settings": { - "foreground": "#8B9798" + "foreground": "#B934C5" } }, { "scope": [ - "string.other.link.title", - "string.other.link.description" + "string.comment.buffered.block.pug", + "string.quoted.pug", + "string.interpolated.pug", + "string.unquoted.plain.in.yaml", + "string.unquoted.plain.out.yaml", + "string.unquoted.block.yaml", + "string.quoted.single.yaml", + "string.quoted.double.xml", + "string.quoted.single.xml", + "string.unquoted.cdata.xml", + "string.quoted.double.html", + "string.quoted.single.html", + "string.unquoted.html", + "string.quoted.single.handlebars", + "string.quoted.double.handlebars" ], "settings": { - "foreground": "#FF6D7E" + "foreground": "#0178CE" } }, { - "scope": "string.other.link.description.title", + "scope": "string.regexp", "settings": { - "foreground": "#7CD5F1" + "foreground": "#811f3f" } }, { + "name": "String interpolation", "scope": [ - "string.regexp punctuation.definition.string.begin", - "string.regexp punctuation.definition.string.end" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "string.other.ref", - "string.other.restructuredtext.ref" + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" ], "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "string.other.git-status.help.key", - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": "string.other.git-status.remote", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "support.constant", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "support.constant.handlebars", - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "support.type.vendor-prefix.css", - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": "support.function", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "support.function.delimiter.elm", - "settings": { - "foreground": "#8B9798" + "foreground": "#0178CE" } }, { + "name": "Reset JavaScript string interpolation expression", "scope": [ - "support.type", - "entity.name.type.object.console" + "meta.template.expression" ], "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": "support.variable", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "support.type.property-name", - "settings": { - "foreground": "#F2FFFC", - "fontStyle": "normal" - } - }, - { - "scope": "support.class", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "support.constant.core.rust", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "text", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "text.find-in-files", - "settings": { - "foreground": "#F2FFFC" + "foreground": "#000000" } }, { "scope": [ - "variable", - "variable.other" + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" ], "settings": { - "foreground": "#F2FFFC" + "foreground": "#0451a5" } }, { "scope": [ - "variable.parameter", - "parameters variable.function" + "support.type.vendored.property-name", + "support.type.property-name", + "variable.css", + "variable.scss", + "variable.other.less", + "source.coffee.embedded" ], "settings": { - "foreground": "#FFB270", - "fontStyle": "italic" + "foreground": "#e50000" } }, { "scope": [ - "variable.language", - "variable.parameter.function.language.special.self.python", - "variable.parameter.function.language.special.cls.python" + "support.type.property-name.json" ], "settings": { - "foreground": "#B8C4C3", - "fontStyle": "italic" - } - }, - { - "scope": "variable.language.arguments", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "variable.other.class", - "settings": { - "foreground": "#7CD5F1" + "foreground": "#0451a5" } }, { - "scope": "variable.other.constant", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "variable.other.readwrite", + "scope": "keyword", "settings": { - "foreground": "#F2FFFC" + "foreground": "#0178CE" } }, { - "scope": "variable.other.member", + "scope": "keyword.control", "settings": { - "foreground": "#F2FFFC" + "foreground": "#0178CE" } }, { - "scope": "variable.other.enummember", + "scope": "keyword.operator", "settings": { - "foreground": "#BAA0F8" + "foreground": "#000000" } }, { "scope": [ - "variable.other.property", - "variable.other.property.static", - "variable.other.event" + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.cast", + "keyword.operator.sizeof", + "keyword.operator.alignof", + "keyword.operator.typeid", + "keyword.operator.alignas", + "keyword.operator.instanceof", + "keyword.operator.logical.python", + "keyword.operator.wordlike" ], "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "variable.function", - "settings": { - "foreground": "#A2E57B" + "foreground": "#0178CE" } }, { - "scope": "variable.other.substitution", + "scope": "keyword.other.unit", "settings": { - "foreground": "#FFB270" + "foreground": "#098658" } }, { "scope": [ - "source.ruby variable.other.readwrite.instance.ruby", - "source.ruby variable.other.readwrite.class.ruby" + "punctuation.section.embedded.begin.php", + "punctuation.section.embedded.end.php" ], "settings": { - "foreground": "#BAA0F8" + "foreground": "#800000" } }, { - "scope": "source.jinja2 variable.other.jinja2.block", + "scope": "support.function.git-rebase", "settings": { - "foreground": "#A2E57B" + "foreground": "#0451a5" } }, { - "scope": "source.jinja2 variable.other.jinja2", + "scope": "constant.sha.git-rebase", "settings": { - "foreground": "#FFB270" + "foreground": "#098658" } }, { + "name": "coloring of the Java import and package identifiers", "scope": [ - "comment", - "keyword", - "storage", - "keyword.control.import", - "keyword.control.default", - "keyword.control.from", - "keyword.operator.new", - "keyword.control.export", - "keyword.control.flow", - "storage.type.class", - "storage.type.function", - "storage.type", - "storage.type.class", - "variable.language", - "variable.language.super", - "variable.language.this", - "meta.class", - "meta.var.expr", - "constant.language.null", - "support.type.primitive", - "entity.name.method.js", - "entity.other.attribute-name", - "punctuation.definition.comment", - "text.html.basic entity.other.attribute-name.html", - "text.html.basic entity.other.attribute-name", - "tag.decorator.js entity.name.tag.js", - "tag.decorator.js punctuation.definition.tag.js", - "source.js constant.other.object.key.js string.unquoted.label.js" + "storage.modifier.import.java", + "variable.language.wildcard.java", + "storage.modifier.package.java" ], "settings": { - "fontStyle": "italic" - } - }, - { - "scope": "token.info-token", - "settings": { - "foreground": "#6796E6" - } - }, - { - "scope": "token.warn-token", - "settings": { - "foreground": "#CD9731" + "foreground": "#000000" } }, { - "scope": "token.error-token", + "name": "this.self", + "scope": "variable.language", "settings": { - "foreground": "#F44747" + "foreground": "#0178CE" } }, - { - "scope": "token.debug-token", - "settings": { - "foreground": "#B267E6" - } - } - ] + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "newOperator": "#AF00DB", + "stringLiteral": "#B934C5", + "customLiteral": "#006674", + "numberLiteral": "#098658", + } } \ No newline at end of file diff --git a/web/src/components/Editor/theme/test.json b/web/src/components/Editor/theme/test.json new file mode 100644 index 0000000000..88f31c3ff8 --- /dev/null +++ b/web/src/components/Editor/theme/test.json @@ -0,0 +1,2067 @@ +{ + "$schema": "vscode://schemas/color-theme", + "type": "dark", + "colors": { + "activityBar.activeFocusBorder": "#ffed72", + "activityBar.background": "#161b1e", + "activityBar.border": "#161b1e", + "activityBar.foreground": "#b8c4c3", + "activityBar.inactiveForeground": "#545f62", + "activityBarBadge.background": "#ffed72", + "activityBarBadge.foreground": "#273136", + "badge.background": "#ffed72", + "badge.foreground": "#273136", + "banner.background": "#3a4449", + "banner.foreground": "#b8c4c3", + "banner.iconForeground": "#b8c4c3", + "breadcrumb.activeSelectionForeground": "#f2fffc", + "breadcrumb.focusForeground": "#b8c4c3", + "breadcrumb.foreground": "#8b9798", + "button.background": "#3a4449", + "button.foreground": "#b8c4c3", + "button.hoverBackground": "#545f62", + "button.secondaryBackground": "#3d3a49", + "button.secondaryForeground": "#b8c4c3", + "button.secondaryHoverBackground": "#545f62", + "button.separator": "#273136", + "charts.blue": "#7cd5f1", + "charts.foreground": "#f2fffc", + "charts.green": "#a2e57b", + "charts.lines": "#6b7678", + "charts.orange": "#ffb270", + "charts.purple": "#baa0f8", + "charts.red": "#ff6d7e", + "charts.yellow": "#ffed72", + "checkbox.background": "#3a4449", + "checkbox.border": "#3a4449", + "checkbox.foreground": "#f2fffc", + "commandCenter.activeBackground": "#273136", + "commandCenter.activeForeground": "#b8c4c3", + "commandCenter.background": "#1d2528", + "commandCenter.border": "#273136", + "commandCenter.foreground": "#8b9798", + "debugConsole.errorForeground": "#ff6d7e", + "debugConsole.infoForeground": "#7cd5f1", + "debugConsole.sourceForeground": "#f2fffc", + "debugConsole.warningForeground": "#ffb270", + "debugConsoleInputIcon.foreground": "#ffed72", + "debugExceptionWidget.background": "#3a4449", + "debugExceptionWidget.border": "#273136", + "debugIcon.breakpointCurrentStackframeForeground": "#ffed72", + "debugIcon.breakpointDisabledForeground": "#b8c4c3", + "debugIcon.breakpointForeground": "#ff6d7e", + "debugIcon.breakpointStackframeForeground": "#f2fffc", + "debugIcon.breakpointUnverifiedForeground": "#ffb270", + "debugIcon.continueForeground": "#f2fffc", + "debugIcon.disconnectForeground": "#f2fffc", + "debugIcon.pauseForeground": "#f2fffc", + "debugIcon.restartForeground": "#a2e57b", + "debugIcon.startForeground": "#a2e57b", + "debugIcon.stepBackForeground": "#f2fffc", + "debugIcon.stepIntoForeground": "#f2fffc", + "debugIcon.stepOutForeground": "#f2fffc", + "debugIcon.stepOverForeground": "#f2fffc", + "debugIcon.stopForeground": "#ff6d7e", + "debugTokenExpression.boolean": "#ffb270", + "debugTokenExpression.error": "#ff6d7e", + "debugTokenExpression.name": "#7cd5f1", + "debugTokenExpression.number": "#baa0f8", + "debugTokenExpression.string": "#ffed72", + "debugTokenExpression.value": "#f2fffc", + "debugToolBar.background": "#3a4449", + "debugView.exceptionLabelBackground": "#ff6d7e", + "debugView.exceptionLabelForeground": "#273136", + "debugView.stateLabelBackground": "#a2e57b", + "debugView.stateLabelForeground": "#273136", + "debugView.valueChangedHighlight": "#ffed72", + "descriptionForeground": "#8b9798", + "diffEditor.diagonalFill": "#3a4449", + "diffEditor.insertedLineBackground": "#a2e57b19", + "diffEditor.insertedTextBackground": "#a2e57b19", + "diffEditor.removedLineBackground": "#ff6d7e19", + "diffEditor.removedTextBackground": "#ff6d7e19", + "diffEditorGutter.insertedLineBackground": "#a2e57b19", + "diffEditorGutter.removedLineBackground": "#ff6d7e19", + "diffEditorOverview.insertedForeground": "#a2e57ba5", + "diffEditorOverview.removedForeground": "#ff6d7ea5", + "dropdown.background": "#273136", + "dropdown.border": "#273136", + "dropdown.foreground": "#8b9798", + "dropdown.listBackground": "#3a4449", + "editor.background": "#273136", + "editor.findMatchBackground": "#f2fffc26", + "editor.findMatchBorder": "#ffed72", + "editor.findMatchHighlightBackground": "#f2fffc26", + "editor.findMatchHighlightBorder": "#00000000", + "editor.findRangeHighlightBackground": "#f2fffc0c", + "editor.findRangeHighlightBorder": "#00000000", + "editor.focusedStackFrameHighlightBackground": "#b8c4c326", + "editor.foldBackground": "#f2fffc0c", + "editor.foreground": "#f2fffc", + "editor.hoverHighlightBackground": "#f2fffc0c", + "editor.inactiveSelectionBackground": "#f2fffc0c", + "editor.inlineValuesBackground": "#545f62", + "editor.inlineValuesForeground": "#b8c4c3", + "editor.lineHighlightBackground": "#f2fffc0c", + "editor.lineHighlightBorder": "#00000000", + "editor.linkedEditingBackground": "#3a4449", + "editor.rangeHighlightBackground": "#3a4449", + "editor.rangeHighlightBorder": "#3a4449", + "editor.selectionBackground": "#b8c4c326", + "editor.selectionHighlightBackground": "#f2fffc26", + "editor.selectionHighlightBorder": "#00000000", + "editor.stackFrameHighlightBackground": "#b8c4c326", + "editor.wordHighlightBackground": "#f2fffc26", + "editor.wordHighlightBorder": "#00000000", + "editor.wordHighlightStrongBackground": "#f2fffc26", + "editor.wordHighlightStrongBorder": "#00000000", + "editorBracketHighlight.foreground1": "#ff6d7e", + "editorBracketHighlight.foreground2": "#ffb270", + "editorBracketHighlight.foreground3": "#ffed72", + "editorBracketHighlight.foreground4": "#a2e57b", + "editorBracketHighlight.foreground5": "#7cd5f1", + "editorBracketHighlight.foreground6": "#baa0f8", + "editorBracketMatch.background": "#273136", + "editorBracketMatch.border": "#6b7678", + "editorCodeLens.foreground": "#6b7678", + "editorCursor.background": "#273136", + "editorCursor.foreground": "#f2fffc", + "editorError.background": "#00000000", + "editorError.border": "#00000000", + "editorError.foreground": "#ff6d7e", + "editorGroup.border": "#1d2528", + "editorGroup.dropBackground": "#1d2528bf", + "editorGroup.emptyBackground": "#161b1e", + "editorGroup.focusedEmptyBorder": "#1d2528", + "editorGroupHeader.noTabsBackground": "#273136", + "editorGroupHeader.tabsBackground": "#273136", + "editorGroupHeader.tabsBorder": "#273136", + "editorGutter.addedBackground": "#a2e57b", + "editorGutter.background": "#273136", + "editorGutter.deletedBackground": "#ff6d7e", + "editorGutter.foldingControlForeground": "#b8c4c3", + "editorGutter.modifiedBackground": "#ffb270", + "editorHint.border": "#273136", + "editorHint.foreground": "#baa0f8", + "editorHoverWidget.background": "#3a4449", + "editorHoverWidget.border": "#273136", + "editorIndentGuide.background": "#3a4449", + "editorInfo.background": "#00000000", + "editorInfo.border": "#273136", + "editorInfo.foreground": "#7cd5f1", + "editorLightBulb.foreground": "#ffed72", + "editorLightBulbAutoFix.foreground": "#a2e57b", + "editorLineNumber.activeForeground": "#b8c4c3", + "editorLineNumber.foreground": "#545f62", + "editorLink.activeForeground": "#7cd5f1", + "editorMarkerNavigation.background": "#3a4449", + "editorMarkerNavigationError.background": "#ff6d7e", + "editorMarkerNavigationInfo.background": "#7cd5f1", + "editorMarkerNavigationWarning.background": "#ffb270", + "editorOverviewRuler.addedForeground": "#a2e57b", + "editorOverviewRuler.border": "#273136", + "editorOverviewRuler.currentContentForeground": "#3a4449", + "editorOverviewRuler.deletedForeground": "#ff6d7e", + "editorOverviewRuler.errorForeground": "#ff6d7e", + "editorOverviewRuler.findMatchForeground": "#f2fffc26", + "editorOverviewRuler.incomingContentForeground": "#3a4449", + "editorOverviewRuler.infoForeground": "#7cd5f1", + "editorOverviewRuler.modifiedForeground": "#ffb270", + "editorOverviewRuler.rangeHighlightForeground": "#f2fffc26", + "editorOverviewRuler.selectionHighlightForeground": "#f2fffc26", + "editorOverviewRuler.warningForeground": "#ffb270", + "editorOverviewRuler.wordHighlightForeground": "#f2fffc26", + "editorOverviewRuler.wordHighlightStrongForeground": "#f2fffc26", + "editorPane.background": "#273136", + "editorRuler.foreground": "#545f62", + "editorSuggestWidget.background": "#3a4449", + "editorSuggestWidget.border": "#3a4449", + "editorSuggestWidget.foreground": "#b8c4c3", + "editorSuggestWidget.highlightForeground": "#f2fffc", + "editorSuggestWidget.selectedBackground": "#6b7678", + "editorUnnecessaryCode.opacity": "#000000a5", + "editorWarning.background": "#00000000", + "editorWarning.border": "#00000000", + "editorWarning.foreground": "#ffb270", + "editorWhitespace.foreground": "#545f62", + "editorWidget.background": "#3a4449", + "editorWidget.border": "#3a4449", + "errorForeground": "#ff6d7e", + "extensionBadge.remoteForeground": "#a2e57b", + "extensionButton.prominentBackground": "#3a4449", + "extensionButton.prominentForeground": "#f2fffc", + "extensionButton.prominentHoverBackground": "#545f62", + "extensionIcon.preReleaseForeground": "#baa0f8", + "extensionIcon.sponsorForeground": "#7cd5f1", + "extensionIcon.starForeground": "#ffed72", + "extensionIcon.verifiedForeground": "#a2e57b", + "focusBorder": "#6b7678", + "foreground": "#f2fffc", + "gitDecoration.addedResourceForeground": "#a2e57b", + "gitDecoration.conflictingResourceForeground": "#ffb270", + "gitDecoration.deletedResourceForeground": "#ff6d7e", + "gitDecoration.ignoredResourceForeground": "#545f62", + "gitDecoration.modifiedResourceForeground": "#ffed72", + "gitDecoration.stageDeletedResourceForeground": "#ff6d7e", + "gitDecoration.stageModifiedResourceForeground": "#ffed72", + "gitDecoration.untrackedResourceForeground": "#b8c4c3", + "icon.foreground": "#8b9798", + "input.background": "#3a4449", + "input.border": "#3a4449", + "input.foreground": "#f2fffc", + "input.placeholderForeground": "#6b7678", + "inputOption.activeBackground": "#545f62", + "inputOption.activeBorder": "#545f62", + "inputOption.activeForeground": "#f2fffc", + "inputOption.hoverBackground": "#545f62", + "inputValidation.errorBackground": "#3a4449", + "inputValidation.errorBorder": "#ff6d7e", + "inputValidation.errorForeground": "#ff6d7e", + "inputValidation.infoBackground": "#3a4449", + "inputValidation.infoBorder": "#7cd5f1", + "inputValidation.infoForeground": "#7cd5f1", + "inputValidation.warningBackground": "#3a4449", + "inputValidation.warningBorder": "#ffb270", + "inputValidation.warningForeground": "#ffb270", + "keybindingLabel.background": "#545f62", + "keybindingLabel.border": "#545f62", + "keybindingLabel.bottomBorder": "#3a4449", + "keybindingLabel.foreground": "#b8c4c3", + "list.activeSelectionBackground": "#f2fffc0c", + "list.activeSelectionForeground": "#ffed72", + "list.dropBackground": "#1d2528bf", + "list.errorForeground": "#ff6d7e", + "list.focusBackground": "#273136", + "list.focusForeground": "#f2fffc", + "list.highlightForeground": "#f2fffc", + "list.hoverBackground": "#f2fffc0c", + "list.hoverForeground": "#f2fffc", + "list.inactiveFocusBackground": "#273136", + "list.inactiveSelectionBackground": "#b8c4c30c", + "list.inactiveSelectionForeground": "#ffed72", + "list.invalidItemForeground": "#ff6d7e", + "list.warningForeground": "#ffb270", + "listFilterWidget.background": "#273136", + "listFilterWidget.noMatchesOutline": "#ff6d7e", + "listFilterWidget.outline": "#273136", + "menu.background": "#273136", + "menu.border": "#1d2528", + "menu.foreground": "#f2fffc", + "menu.selectionForeground": "#ffed72", + "menu.separatorBackground": "#3a4449", + "menubar.selectionForeground": "#f2fffc", + "merge.border": "#273136", + "merge.commonContentBackground": "#f2fffc19", + "merge.commonHeaderBackground": "#f2fffc26", + "merge.currentContentBackground": "#ff6d7e19", + "merge.currentHeaderBackground": "#ff6d7e26", + "merge.incomingContentBackground": "#a2e57b19", + "merge.incomingHeaderBackground": "#a2e57b26", + "mergeEditor.change.background": "#f2fffc19", + "mergeEditor.change.word.background": "#f2fffc19", + "mergeEditor.conflict.handled.minimapOverViewRuler": "#a2e57b", + "mergeEditor.conflict.handledFocused.border": "#a2e57b", + "mergeEditor.conflict.handledUnfocused.border": "#a2e57b", + "mergeEditor.conflict.unhandled.minimapOverViewRuler": "#ff6d7e", + "mergeEditor.conflict.unhandledFocused.border": "#ff6d7e", + "mergeEditor.conflict.unhandledUnfocused.border": "#ff6d7e", + "minimap.errorHighlight": "#ff6d7ea5", + "minimap.findMatchHighlight": "#8b9798a5", + "minimap.selectionHighlight": "#b8c4c326", + "minimap.selectionOccurrenceHighlight": "#6b7678a5", + "minimap.warningHighlight": "#ffb270a5", + "minimapGutter.addedBackground": "#a2e57b", + "minimapGutter.deletedBackground": "#ff6d7e", + "minimapGutter.modifiedBackground": "#ffed72", + "notebook.cellBorderColor": "#3a4449", + "notebook.cellEditorBackground": "#1d25287f", + "notebook.cellInsertionIndicator": "#f2fffc", + "notebook.cellStatusBarItemHoverBackground": "#6b7678", + "notebook.cellToolbarSeparator": "#3a4449", + "notebook.editorBackground": "#273136", + "notebook.focusedEditorBorder": "#6b7678", + "notebookStatusErrorIcon.foreground": "#ff6d7e", + "notebookStatusRunningIcon.foreground": "#f2fffc", + "notebookStatusSuccessIcon.foreground": "#a2e57b", + "notificationCenter.border": "#3a4449", + "notificationCenterHeader.background": "#3a4449", + "notificationCenterHeader.foreground": "#8b9798", + "notificationLink.foreground": "#ffed72", + "notificationToast.border": "#3a4449", + "notifications.background": "#3a4449", + "notifications.border": "#3a4449", + "notifications.foreground": "#b8c4c3", + "notificationsErrorIcon.foreground": "#ff6d7e", + "notificationsInfoIcon.foreground": "#7cd5f1", + "notificationsWarningIcon.foreground": "#ffb270", + "panel.background": "#3a4449", + "panel.border": "#273136", + "panelTitle.activeBorder": "#ffed72", + "panelTitle.activeForeground": "#ffed72", + "panelTitle.inactiveForeground": "#8b9798", + "peekView.border": "#273136", + "peekViewEditor.background": "#3a4449", + "peekViewEditor.matchHighlightBackground": "#545f62", + "peekViewEditorGutter.background": "#3a4449", + "peekViewResult.background": "#3a4449", + "peekViewResult.fileForeground": "#8b9798", + "peekViewResult.lineForeground": "#8b9798", + "peekViewResult.matchHighlightBackground": "#545f62", + "peekViewResult.selectionBackground": "#3a4449", + "peekViewResult.selectionForeground": "#f2fffc", + "peekViewTitle.background": "#3a4449", + "peekViewTitleDescription.foreground": "#8b9798", + "peekViewTitleLabel.foreground": "#f2fffc", + "pickerGroup.border": "#273136", + "pickerGroup.foreground": "#545f62", + "ports.iconRunningProcessForeground": "#a2e57b", + "problemsErrorIcon.foreground": "#ff6d7e", + "problemsInfoIcon.foreground": "#7cd5f1", + "problemsWarningIcon.foreground": "#ffb270", + "profileBadge.background": "#3a4449", + "profileBadge.foreground": "#b8c4c3", + "progressBar.background": "#3a4449", + "sash.hoverBorder": "#6b7678", + "scrollbar.shadow": "#273136", + "scrollbarSlider.activeBackground": "#f2fffc59", + "scrollbarSlider.background": "#b8c4c326", + "scrollbarSlider.hoverBackground": "#f2fffc26", + "selection.background": "#b8c4c326", + "settings.checkboxBackground": "#3a4449", + "settings.checkboxBorder": "#3a4449", + "settings.checkboxForeground": "#f2fffc", + "settings.dropdownBackground": "#3a4449", + "settings.dropdownBorder": "#3a4449", + "settings.dropdownForeground": "#f2fffc", + "settings.dropdownListBorder": "#8b9798", + "settings.headerForeground": "#ffed72", + "settings.modifiedItemIndicator": "#ffed72", + "settings.numberInputBackground": "#3a4449", + "settings.numberInputBorder": "#3a4449", + "settings.numberInputForeground": "#f2fffc", + "settings.rowHoverBackground": "#6b76780c", + "settings.textInputBackground": "#3a4449", + "settings.textInputBorder": "#3a4449", + "settings.textInputForeground": "#f2fffc", + "sideBar.background": "#1d2528", + "sideBar.border": "#161b1e", + "sideBar.dropBackground": "#1d2528bf", + "sideBar.foreground": "#8b9798", + "sideBarSectionHeader.background": "#1d2528", + "sideBarSectionHeader.foreground": "#6b7678", + "sideBarTitle.foreground": "#545f62", + "statusBar.background": "#1d2528", + "statusBar.border": "#161b1e", + "statusBar.debuggingBackground": "#6b7678", + "statusBar.debuggingBorder": "#1d2528", + "statusBar.debuggingForeground": "#f2fffc", + "statusBar.focusBorder": "#3a4449", + "statusBar.foreground": "#6b7678", + "statusBar.noFolderBackground": "#1d2528", + "statusBar.noFolderBorder": "#161b1e", + "statusBar.noFolderForeground": "#6b7678", + "statusBarItem.activeBackground": "#273136", + "statusBarItem.errorBackground": "#273136", + "statusBarItem.errorForeground": "#ff6d7e", + "statusBarItem.focusBorder": "#6b7678", + "statusBarItem.hoverBackground": "#f2fffc0c", + "statusBarItem.prominentBackground": "#3a4449", + "statusBarItem.prominentHoverBackground": "#3a4449", + "statusBarItem.remoteBackground": "#1d2528", + "statusBarItem.remoteForeground": "#a2e57b", + "statusBarItem.warningBackground": "#273136", + "statusBarItem.warningForeground": "#ffb270", + "symbolIcon.arrayForeground": "#ff6d7e", + "symbolIcon.booleanForeground": "#ff6d7e", + "symbolIcon.classForeground": "#7cd5f1", + "symbolIcon.colorForeground": "#baa0f8", + "symbolIcon.constantForeground": "#baa0f8", + "symbolIcon.constructorForeground": "#a2e57b", + "symbolIcon.enumeratorForeground": "#ffb270", + "symbolIcon.enumeratorMemberForeground": "#ffb270", + "symbolIcon.eventForeground": "#ffb270", + "symbolIcon.fieldForeground": "#ffb270", + "symbolIcon.fileForeground": "#b8c4c3", + "symbolIcon.folderForeground": "#b8c4c3", + "symbolIcon.functionForeground": "#a2e57b", + "symbolIcon.interfaceForeground": "#7cd5f1", + "symbolIcon.keyForeground": "#ffb270", + "symbolIcon.keywordForeground": "#ff6d7e", + "symbolIcon.methodForeground": "#a2e57b", + "symbolIcon.moduleForeground": "#7cd5f1", + "symbolIcon.namespaceForeground": "#7cd5f1", + "symbolIcon.nullForeground": "#baa0f8", + "symbolIcon.numberForeground": "#baa0f8", + "symbolIcon.objectForeground": "#7cd5f1", + "symbolIcon.operatorForeground": "#ff6d7e", + "symbolIcon.packageForeground": "#baa0f8", + "symbolIcon.propertyForeground": "#ffb270", + "symbolIcon.referenceForeground": "#baa0f8", + "symbolIcon.snippetForeground": "#a2e57b", + "symbolIcon.stringForeground": "#ffed72", + "symbolIcon.structForeground": "#ff6d7e", + "symbolIcon.textForeground": "#ffed72", + "symbolIcon.typeParameterForeground": "#ffb270", + "symbolIcon.unitForeground": "#baa0f8", + "symbolIcon.variableForeground": "#7cd5f1", + "tab.activeBackground": "#273136", + "tab.activeBorder": "#ffed72", + "tab.activeForeground": "#ffed72", + "tab.activeModifiedBorder": "#545f62", + "tab.border": "#273136", + "tab.hoverBackground": "#273136", + "tab.hoverBorder": "#545f62", + "tab.hoverForeground": "#f2fffc", + "tab.inactiveBackground": "#273136", + "tab.inactiveForeground": "#8b9798", + "tab.inactiveModifiedBorder": "#545f62", + "tab.lastPinnedBorder": "#545f62", + "tab.unfocusedActiveBorder": "#8b9798", + "tab.unfocusedActiveForeground": "#b8c4c3", + "tab.unfocusedActiveModifiedBorder": "#3a4449", + "tab.unfocusedHoverBackground": "#273136", + "tab.unfocusedHoverBorder": "#273136", + "tab.unfocusedHoverForeground": "#b8c4c3", + "tab.unfocusedInactiveForeground": "#8b9798", + "tab.unfocusedInactiveModifiedBorder": "#3a4449", + "terminal.ansiBlack": "#3a4449", + "terminal.ansiBlue": "#ffb270", + "terminal.ansiBrightBlack": "#6b7678", + "terminal.ansiBrightBlue": "#ffb270", + "terminal.ansiBrightCyan": "#7cd5f1", + "terminal.ansiBrightGreen": "#a2e57b", + "terminal.ansiBrightMagenta": "#baa0f8", + "terminal.ansiBrightRed": "#ff6d7e", + "terminal.ansiBrightWhite": "#f2fffc", + "terminal.ansiBrightYellow": "#ffed72", + "terminal.ansiCyan": "#7cd5f1", + "terminal.ansiGreen": "#a2e57b", + "terminal.ansiMagenta": "#baa0f8", + "terminal.ansiRed": "#ff6d7e", + "terminal.ansiWhite": "#f2fffc", + "terminal.ansiYellow": "#ffed72", + "terminal.background": "#3a4449", + "terminal.foreground": "#f2fffc", + "terminal.selectionBackground": "#f2fffc26", + "terminalCommandDecoration.defaultBackground": "#f2fffc", + "terminalCommandDecoration.errorBackground": "#ff6d7e", + "terminalCommandDecoration.successBackground": "#a2e57b", + "terminalCursor.background": "#00000000", + "terminalCursor.foreground": "#f2fffc", + "testing.iconErrored": "#ff6d7e", + "testing.iconFailed": "#ff6d7e", + "testing.iconPassed": "#a2e57b", + "testing.iconQueued": "#f2fffc", + "testing.iconSkipped": "#ffb270", + "testing.iconUnset": "#8b9798", + "testing.message.error.decorationForeground": "#ff6d7e", + "testing.message.error.lineBackground": "#ff6d7e19", + "testing.message.info.decorationForeground": "#f2fffc", + "testing.message.info.lineBackground": "#f2fffc19", + "testing.runAction": "#ffed72", + "textBlockQuote.background": "#3a4449", + "textBlockQuote.border": "#3a4449", + "textCodeBlock.background": "#3a4449", + "textLink.activeForeground": "#f2fffc", + "textLink.foreground": "#ffed72", + "textPreformat.foreground": "#f2fffc", + "textSeparator.foreground": "#6b7678", + "titleBar.activeBackground": "#1d2528", + "titleBar.activeForeground": "#8b9798", + "titleBar.border": "#161b1e", + "titleBar.inactiveBackground": "#1d2528", + "titleBar.inactiveForeground": "#545f62", + "walkThrough.embeddedEditorBackground": "#1d2528", + "welcomePage.progress.background": "#6b7678", + "welcomePage.progress.foreground": "#8b9798", + "welcomePage.tileBackground": "#3a4449", + "welcomePage.tileHoverBackground": "#545f62", + "widget.shadow": "#161b1e", + //"actionBar.toggledBackground": "#545f62", + //"activityBar.activeBorder": "#b8c4c3", + //"activityBar.dropBorder": "#b8c4c3", + //"breadcrumb.background": "#273136", + //"breadcrumbPicker.background": "#3a4449", + //"chat.requestBorder": "#ffffff1a", + //"chat.slashCommandBackground": "#ffed72", + //"chat.slashCommandForeground": "#273136", + //"checkbox.selectBackground": "#3a4449", + //"checkbox.selectBorder": "#8b9798", + //"commandCenter.activeBorder": "#8b97984d", + //"commandCenter.debuggingBackground": "#6b767842", + //"commandCenter.inactiveBorder": "#545f6240", + //"commandCenter.inactiveForeground": "#545f62", + //"commentsView.resolvedIcon": "#cccccc80", + //"commentsView.unresolvedIcon": "#6b7678", + //"diffEditor.move.border": "#8b8b8b9c", + //"diffEditor.moveActive.border": "#ffa500", + //"diffEditor.unchangedCodeBackground": "#74747429", + //"diffEditor.unchangedRegionBackground": "#3e3e3e", + //"diffEditor.unchangedRegionForeground": "#a3a2a2", + //"disabledForeground": "#cccccc80", + //"editor.snippetFinalTabstopHighlightBorder": "#525252", + //"editor.snippetTabstopHighlightBackground": "#7c7c7c4d", + //"editor.symbolHighlightBackground": "#f2fffc26", + //"editor.wordHighlightTextBackground": "#f2fffc26", + //"editor.wordHighlightTextBorder": "#00000000", + //"editorActiveLineNumber.foreground": "#c6c6c6", + //"editorBracketHighlight.unexpectedBracket.foreground": "#ff1212cc", + //"editorBracketPairGuide.activeBackground1": "#00000000", + //"editorBracketPairGuide.activeBackground2": "#00000000", + //"editorBracketPairGuide.activeBackground3": "#00000000", + //"editorBracketPairGuide.activeBackground4": "#00000000", + //"editorBracketPairGuide.activeBackground5": "#00000000", + //"editorBracketPairGuide.activeBackground6": "#00000000", + //"editorBracketPairGuide.background1": "#00000000", + //"editorBracketPairGuide.background2": "#00000000", + //"editorBracketPairGuide.background3": "#00000000", + //"editorBracketPairGuide.background4": "#00000000", + //"editorBracketPairGuide.background5": "#00000000", + //"editorBracketPairGuide.background6": "#00000000", + //"editorCommentsWidget.rangeActiveBackground": "#6b76781a", + //"editorCommentsWidget.rangeBackground": "#6b76781a", + //"editorCommentsWidget.resolvedBorder": "#cccccc80", + //"editorCommentsWidget.unresolvedBorder": "#6b7678", + //"editorGhostText.foreground": "#ffffff56", + //"editorGroup.dropIntoPromptBackground": "#3a4449", + //"editorGroup.dropIntoPromptForeground": "#f2fffc", + //"editorGutter.commentGlyphForeground": "#f2fffc", + //"editorGutter.commentRangeForeground": "#2d373c", + //"editorGutter.commentUnresolvedGlyphForeground": "#f2fffc", + //"editorHoverWidget.foreground": "#f2fffc", + //"editorHoverWidget.highlightForeground": "#f2fffc", + //"editorHoverWidget.statusBarBackground": "#465258", + //"editorIndentGuide.activeBackground": "#545f62", + //"editorIndentGuide.activeBackground1": "#545f62", + //"editorIndentGuide.activeBackground2": "#00000000", + //"editorIndentGuide.activeBackground3": "#00000000", + //"editorIndentGuide.activeBackground4": "#00000000", + //"editorIndentGuide.activeBackground5": "#00000000", + //"editorIndentGuide.activeBackground6": "#00000000", + //"editorIndentGuide.background1": "#3a4449", + //"editorIndentGuide.background2": "#00000000", + //"editorIndentGuide.background3": "#00000000", + //"editorIndentGuide.background4": "#00000000", + //"editorIndentGuide.background5": "#00000000", + //"editorIndentGuide.background6": "#00000000", + //"editorInlayHint.background": "#ffed721a", + //"editorInlayHint.foreground": "#969696", + //"editorInlayHint.parameterBackground": "#ffed721a", + //"editorInlayHint.parameterForeground": "#969696", + //"editorInlayHint.typeBackground": "#ffed721a", + //"editorInlayHint.typeForeground": "#969696", + //"editorMarkerNavigationError.headerBackground": "#ff6d7e1a", + //"editorMarkerNavigationInfo.headerBackground": "#7cd5f11a", + //"editorMarkerNavigationWarning.headerBackground": "#ffb2701a", + //"editorOverviewRuler.bracketMatchForeground": "#a0a0a0", + //"editorOverviewRuler.commentForeground": "#2d373c", + //"editorOverviewRuler.commentUnresolvedForeground": "#2d373c", + //"editorOverviewRuler.commonContentForeground": "#f2fffc26", + //"editorOverviewRuler.wordHighlightTextForeground": "#f2fffc26", + //"editorStickyScroll.background": "#273136", + //"editorStickyScrollHover.background": "#2a2d2e", + //"editorSuggestWidget.focusHighlightForeground": "#f2fffc", + //"editorSuggestWidget.selectedForeground": "#ffed72", + //"editorSuggestWidgetStatus.foreground": "#b8c4c380", + //"editorUnicodeHighlight.background": "#bd9b0326", + //"editorUnicodeHighlight.border": "#bd9b03", + //"editorWidget.foreground": "#f2fffc", + //"extensionBadge.remoteBackground": "#ffed72", + //"extensionButton.background": "#3a4449", + //"extensionButton.foreground": "#b8c4c3", + //"extensionButton.hoverBackground": "#545f62", + //"extensionButton.separator": "#273136", + //"gitDecoration.renamedResourceForeground": "#73c991", + //"gitDecoration.submoduleResourceForeground": "#8db9e2", + //"gitlens.closedAutolinkedIssueIconColor": "#a371f7", + //"gitlens.closedPullRequestIconColor": "#f85149", + //"gitlens.decorations.addedForegroundColor": "#a2e57b", + //"gitlens.decorations.branchAheadForegroundColor": "#35b15e", + //"gitlens.decorations.branchBehindForegroundColor": "#b15e35", + //"gitlens.decorations.branchDivergedForegroundColor": "#d8af1b", + //"gitlens.decorations.branchMissingUpstreamForegroundColor": "#c74e39", + //"gitlens.decorations.branchUnpublishedForegroundColor": "#35b15e", + //"gitlens.decorations.branchUpToDateForegroundColor": "#8b9798", + //"gitlens.decorations.copiedForegroundColor": "#73c991", + //"gitlens.decorations.deletedForegroundColor": "#ff6d7e", + //"gitlens.decorations.ignoredForegroundColor": "#545f62", + //"gitlens.decorations.modifiedForegroundColor": "#ffed72", + //"gitlens.decorations.renamedForegroundColor": "#73c991", + //"gitlens.decorations.untrackedForegroundColor": "#b8c4c3", + //"gitlens.decorations.workspaceCurrentForegroundColor": "#35b15e", + //"gitlens.decorations.workspaceRepoMissingForegroundColor": "#909090", + //"gitlens.decorations.workspaceRepoOpenForegroundColor": "#35b15e", + //"gitlens.decorations.worktreeHasUncommittedChangesForegroundColor": "#e2c08d", + //"gitlens.decorations.worktreeMissingForegroundColor": "#c74e39", + //"gitlens.graphChangesColumnAddedColor": "#347d39", + //"gitlens.graphChangesColumnDeletedColor": "#c93c37", + //"gitlens.graphLane10Color": "#2ece9d", + //"gitlens.graphLane1Color": "#15a0bf", + //"gitlens.graphLane2Color": "#0669f7", + //"gitlens.graphLane3Color": "#8e00c2", + //"gitlens.graphLane4Color": "#c517b6", + //"gitlens.graphLane5Color": "#d90171", + //"gitlens.graphLane6Color": "#cd0101", + //"gitlens.graphLane7Color": "#f25d2e", + //"gitlens.graphLane8Color": "#f2ca33", + //"gitlens.graphLane9Color": "#7bd938", + //"gitlens.graphMinimapMarkerHeadColor": "#05e617", + //"gitlens.graphMinimapMarkerHighlightsColor": "#fbff0a", + //"gitlens.graphMinimapMarkerLocalBranchesColor": "#3087cf", + //"gitlens.graphMinimapMarkerRemoteBranchesColor": "#2b5e88", + //"gitlens.graphMinimapMarkerStashesColor": "#b34db3", + //"gitlens.graphMinimapMarkerTagsColor": "#6b562e", + //"gitlens.graphMinimapMarkerUpstreamColor": "#09ae17", + //"gitlens.graphScrollMarkerHeadColor": "#05e617", + //"gitlens.graphScrollMarkerHighlightsColor": "#fbff0a", + //"gitlens.graphScrollMarkerLocalBranchesColor": "#3087cf", + //"gitlens.graphScrollMarkerRemoteBranchesColor": "#2b5e88", + //"gitlens.graphScrollMarkerStashesColor": "#b34db3", + //"gitlens.graphScrollMarkerTagsColor": "#6b562e", + //"gitlens.graphScrollMarkerUpstreamColor": "#09ae17", + //"gitlens.gutterBackgroundColor": "#ffffff13", + //"gitlens.gutterForegroundColor": "#bebebe", + //"gitlens.gutterUncommittedForegroundColor": "#00bcf299", + //"gitlens.lineHighlightBackgroundColor": "#00bcf233", + //"gitlens.lineHighlightOverviewRulerColor": "#00bcf299", + //"gitlens.mergedPullRequestIconColor": "#a371f7", + //"gitlens.openAutolinkedIssueIconColor": "#3fb950", + //"gitlens.openPullRequestIconColor": "#3fb950", + //"gitlens.trailingLineBackgroundColor": "#00000000", + //"gitlens.trailingLineForegroundColor": "#99999959", + //"gitlens.unpublishedChangesIconColor": "#35b15e", + //"gitlens.unpublishedCommitIconColor": "#35b15e", + //"gitlens.unpulledChangesIconColor": "#b15e35", + //"inlineChat.background": "#3a4449", + //"inlineChat.border": "#3a4449", + //"inlineChat.regionHighlight": "#f2fffc0c", + //"inlineChat.shadow": "#161b1e", + //"inlineChatDiff.inserted": "#a2e57b0c", + //"inlineChatDiff.removed": "#ff6d7e0c", + //"inlineChatInput.background": "#3a4449", + //"inlineChatInput.border": "#3a4449", + //"inlineChatInput.focusBorder": "#6b7678", + //"inlineChatInput.placeholderForeground": "#6b7678", + //"interactive.activeCodeBorder": "#273136", + //"interactive.inactiveCodeBorder": "#b8c4c30c", + //"issues.closed": "#cb2431", + //"issues.newIssueDecoration": "#ffffff48", + //"issues.open": "#3fb950", + //"keybindingTable.headerBackground": "#f2fffc0a", + //"keybindingTable.rowsBackground": "#f2fffc0a", + //"list.deemphasizedForeground": "#8c8c8c", + //"list.filterMatchBackground": "#f2fffc26", + //"list.filterMatchBorder": "#00000000", + //"list.focusHighlightForeground": "#f2fffc", + //"list.focusOutline": "#6b7678", + //"listFilterWidget.shadow": "#161b1e", + //"menu.selectionBackground": "#f2fffc0c", + //"menubar.selectionBackground": "#5a5d5e50", + //"mergeEditor.changeBase.background": "#4b1818", + //"mergeEditor.changeBase.word.background": "#6f1313", + //"mergeEditor.conflict.input1.background": "#ff6d7e0f", + //"mergeEditor.conflict.input2.background": "#a2e57b0f", + //"mergeEditor.conflictingLines.background": "#ffea0047", + //"minimap.foregroundOpacity": "#000000", + //"minimap.infoHighlight": "#7cd5f1", + //"minimapSlider.activeBackground": "#f2fffc2d", + //"minimapSlider.background": "#b8c4c313", + //"minimapSlider.hoverBackground": "#f2fffc13", + //"notebook.focusedCellBorder": "#6b7678", + //"notebook.inactiveFocusedCellBorder": "#3a4449", + //"notebook.selectedCellBackground": "#b8c4c30c", + //"notebook.selectedCellBorder": "#3a4449", + //"notebook.symbolHighlightBackground": "#ffffff0b", + //"notebookEditorOverviewRuler.runningCellForeground": "#a2e57b", + //"notebookScrollbarSlider.activeBackground": "#f2fffc59", + //"notebookScrollbarSlider.background": "#b8c4c326", + //"notebookScrollbarSlider.hoverBackground": "#f2fffc26", + //"panel.dropBorder": "#ffed72", + //"panelInput.border": "#3a4449", + //"panelSection.border": "#273136", + //"panelSection.dropBackground": "#1d2528bf", + //"panelSectionHeader.background": "#80808033", + //"peekViewEditorStickyScroll.background": "#3a4449", + //"pullRequests.closed": "#cb2431", + //"pullRequests.draft": "#6e7681", + //"pullRequests.merged": "#8957e5", + //"pullRequests.notification": "#7cd5f1", + //"pullRequests.open": "#3fb950", + //"quickInput.background": "#3a4449", + //"quickInput.foreground": "#f2fffc", + //"quickInputList.focusBackground": "#f2fffc0c", + //"quickInputList.focusForeground": "#ffed72", + //"quickInputTitle.background": "#ffffff1b", + //"scm.providerBorder": "#454545", + //"search.resultsInfoForeground": "#f2fffca6", + //"searchEditor.findMatchBackground": "#f2fffc19", + //"searchEditor.findMatchBorder": "#00000000", + //"searchEditor.textInputBorder": "#3a4449", + //"settings.focusedRowBackground": "#f2fffc07", + //"settings.focusedRowBorder": "#6b7678", + //"settings.headerBorder": "#273136", + //"settings.sashBorder": "#273136", + //"settings.settingsHeaderHoverForeground": "#ffed72b3", + //"sideBySideEditor.horizontalBorder": "#1d2528", + //"sideBySideEditor.verticalBorder": "#1d2528", + //"simpleFindWidget.sashBorder": "#454545", + //"statusBarItem.compactHoverBackground": "#ffffff33", + //"statusBarItem.errorHoverBackground": "#f2fffc0c", + //"statusBarItem.errorHoverForeground": "#6b7678", + //"statusBarItem.hoverForeground": "#6b7678", + //"statusBarItem.offlineBackground": "#6c1717", + //"statusBarItem.offlineForeground": "#a2e57b", + //"statusBarItem.offlineHoverBackground": "#f2fffc0c", + //"statusBarItem.offlineHoverForeground": "#6b7678", + //"statusBarItem.prominentForeground": "#6b7678", + //"statusBarItem.prominentHoverForeground": "#6b7678", + //"statusBarItem.remoteHoverBackground": "#f2fffc0c", + //"statusBarItem.remoteHoverForeground": "#6b7678", + //"statusBarItem.warningHoverBackground": "#f2fffc0c", + //"statusBarItem.warningHoverForeground": "#6b7678", + //"tab.unfocusedActiveBackground": "#273136", + //"tab.unfocusedInactiveBackground": "#273136", + //"terminal.border": "#273136", + //"terminal.dropBackground": "#1d2528bf", + //"terminal.findMatchBackground": "#f2fffc26", + //"terminal.findMatchHighlightBackground": "#f2fffc26", + //"terminal.hoverHighlightBackground": "#f2fffc06", + //"terminal.inactiveSelectionBackground": "#f2fffc13", + //"terminal.tab.activeBorder": "#ffed72", + //"terminalOverviewRuler.cursorForeground": "#a0a0a0cc", + //"terminalOverviewRuler.findMatchForeground": "#f2fffc26", + //"testing.peekBorder": "#ff6d7e", + //"testing.peekHeaderBackground": "#ff6d7e1a", + //"toolbar.activeBackground": "#63666750", + //"toolbar.hoverBackground": "#5a5d5e50", + //"tree.inactiveIndentGuidesStroke": "#58585866", + //"tree.indentGuidesStroke": "#585858", + //"tree.tableColumnsBorder": "#cccccc20", + //"tree.tableOddRowsBackground": "#f2fffc0a", + //"walkthrough.stepTitle.foreground": "#ffffff", + //"welcomePage.tileBorder": "#ffffff1a", + //"activityBar.activeBackground": null, + //"button.border": null, + //"contrastActiveBorder": null, + //"contrastBorder": null, + //"debugToolBar.border": null, + //"diffEditor.border": null, + //"diffEditor.insertedTextBorder": null, + //"diffEditor.removedTextBorder": null, + //"editor.selectionForeground": null, + //"editor.snippetFinalTabstopHighlightBackground": null, + //"editor.snippetTabstopHighlightBorder": null, + //"editor.symbolHighlightBorder": null, + //"editorGhostText.background": null, + //"editorGhostText.border": null, + //"editorGroup.dropIntoPromptBorder": null, + //"editorGroupHeader.border": null, + //"editorLineNumber.dimmedForeground": null, + //"editorOverviewRuler.background": null, + //"editorSuggestWidget.selectedIconForeground": null, + //"editorUnnecessaryCode.border": null, + //"editorWidget.resizeBorder": null, + //"list.activeSelectionIconForeground": null, + //"list.focusAndSelectionOutline": null, + //"list.inactiveFocusOutline": null, + //"list.inactiveSelectionIconForeground": null, + //"menu.selectionBorder": null, + //"menubar.selectionBorder": null, + //"minimap.background": null, + //"notebook.cellHoverBackground": null, + //"notebook.focusedCellBackground": null, + //"notebook.inactiveSelectedCellBorder": null, + //"notebook.outputContainerBackgroundColor": null, + //"notebook.outputContainerBorderColor": null, + //"panelSectionHeader.border": null, + //"panelSectionHeader.foreground": null, + //"peekViewEditor.matchHighlightBorder": null, + //"quickInput.list.focusBackground": null, + //"quickInputList.focusIconForeground": null, + //"sideBarSectionHeader.border": null, + //"tab.activeBorderTop": null, + //"tab.unfocusedActiveBorderTop": null, + //"terminal.findMatchBorder": null, + //"terminal.findMatchHighlightBorder": null, + //"terminal.selectionForeground": null, + //"toolbar.hoverOutline": null, + //"welcomePage.background": null, + //"widget.border": null, + //"window.activeBorder": null, + //"window.inactiveBorder": null + }, + "tokenColors": [ + { + "scope": [ + "comment", + "comment keyword", + "comment markup.underline.link", + "comment string", + "comment punctuation.definition", + "comment punctuation", + "comment text" + ], + "settings": { + "foreground": "#6B7678", + "fontStyle": "italic" + } + }, + { + "scope": "comment storage.type", + "settings": { + "foreground": "#6B7678" + } + }, + { + "scope": "comment entity.name.type", + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": [ + "comment variable", + "comment variable.other" + ], + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": "comment keyword.codetag.notation", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "comment.git-status.header.remote", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "comment.git-status.header.local", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "comment.other.git-status.head", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "string.quoted.docstring", + "string.quoted.docstring punctuation.definition" + ], + "settings": { + "foreground": "#6B7678" + } + }, + { + "scope": "constant", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "constant.other.caps", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.placeholder.c", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": "constant.other.property", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.citation.latex", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.color", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.character-class.escape", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.key", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.other.symbol", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": "constant.other.elm", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "constant.numeric", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "constant.numeric.line-number.find-in-files", + "settings": { + "foreground": "#545F62" + } + }, + { + "scope": "constant.numeric.line-number.match.find-in-files", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "entity.name.section", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": [ + "entity.name.function", + "entity.name.function.templated", + "entity.name.function.member.static" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "entity.name.type.class.templated", + "entity.name.type.class.generic", + "entity.name.type.namespace" + ], + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.name.label", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "entity.name.function.preprocessor", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.name", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "entity.name.class", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.name.constant", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "entity.name.namespace", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "entity.name.tag", + "entity.name.tag.js.jsx support.class.component.js.jsx", + "entity.name.tag support.class.component", + "source.vue support.class.component" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "entity.name.function.operator", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "meta.brackets entity.name.function.operator", + "punctuation.separator entity.name.function.operator" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "entity.name.type", + "entity.name.type.class.reference", + "entity.name.type.class.value" + ], + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": [ + "entity.other.attribute-name.class.css", + "entity.other.attribute-name.parent-selector-suffix.css", + "entity.other.attribute-name.parent-selector-suffix.css punctuation.definition.entity.css", + "entity.other.attribute-name.css", + "entity.other.animation-name.css" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "entity.other.attribute-name.id.css", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "entity.other.attribute-name.pseudo-class.css", + "entity.other.pseudo-class.css", + "entity.other.pseudo-element.css" + ], + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": [ + "entity.name.function", + "support.function" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "entity.other.git-status.hex", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "entity.other.jinja2.delimiter", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "entity.name.operator.custom-literal", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "entity.name.operator.custom-literal.string", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "entity.name.operator.custom-literal.number", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "entity.name.type.rust", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "entity.name.lifetime.rust", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "invalid", + "settings": { + "foreground": "#FF6D7E", + "fontStyle": "italic underline" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#FFB270", + "fontStyle": "italic underline" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "keyword.control.directive", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "keyword.operator", + "keyword.operator.member", + "keyword.operator.new" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "keyword.other.substitution", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "keyword.other.template.begin", + "keyword.other.template.end" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "keyword.operator.heading.restructuredtext", + "keyword.operator.table.row.restructuredtext keyword.operator.table.data.restructuredtext" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "keyword.other.parenthesis.elm", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "keyword.other.fn.rust", + "keyword.other.rust", + "keyword.other.unsafe.rust", + "keyword.other.where.rust" + ], + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": [ + "keyword.control.rust", + "keyword.operator.misc.rust" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "keyword.declaration.class.ruby", + "keyword.declaration.function.ruby", + "keyword.declaration.namespace.ruby" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.heading", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "markup.raw", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "markup.inserted", + "markup.inserted punctuation.definition.inserted" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "markup.deleted", + "markup.deleted punctuation.definition.deleted" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "markup.changed", + "markup.changed punctuation.definition.changed" + ], + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": [ + "markup.ignored", + "markup.ignored punctuation.definition.ignored" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "markup.untracked", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "markup.quote", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": [ + "meta.brace.round", + "meta.brace.square", + "meta.brace.curly", + "meta.delimiter.comma.js", + "meta.function-call.without-arguments.js", + "meta.function-call.method.without-arguments.js" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "meta.function-call.generic.python", + "support.function.builtin.python" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "meta.function-call.python meta.function-call.arguments.python", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "meta.instance.constructor", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "meta.attribute-with-value.class string", + "meta.attribute.class.html string" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": [ + "meta.attribute-with-value.id string", + "meta.attribute.id.html string" + ], + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": "source.json meta.mapping.key string", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "source.yaml meta.mapping.key string", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "meta.object.member", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "meta.property-list.css variable.other", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "entity.name.constant.preprocessor", + "meta.preprocessor" + ], + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "meta.diff.git-diff.header", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "meta.type_params.rust", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "meta.attribute.rust", + "meta.annotation.rust", + "variable.language.rust", + "variable.annotation.rust", + "meta.annotation.rust string", + "meta.annotation.rust keyword", + "meta.annotation.rust keyword.operator", + "meta.attribute.rust string" + ], + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": "punctuation", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "punctuation.definition.tag", + "punctuation.definition.tag source", + "punctuation.definition.group.begin.ruby", + "punctuation.definition.group.end.ruby", + "punctuation.definition.group.begin.css", + "punctuation.definition.group.end.css", + "punctuation.definition.string.end.html source.css" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "punctuation.definition.group", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "punctuation.definition.comment", + "settings": { + "foreground": "#6B7678" + } + }, + { + "scope": [ + "punctuation.definition.variable", + "punctuation.definition.keyword.scss", + "punctuation.definition.entity.css" + ], + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": [ + "punctuation.section.embedded", + "punctuation.section.embedded entity.name.tag", + "punctuation.section.embedded constant.other", + "punctuation.section.embedded source", + "punctuation.section.embedded.begin" + ], + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "punctuation.template-string.element.begin", + "punctuation.template-string.element.end", + "punctuation.definition.string.template.begin", + "punctuation.definition.string.template.end", + "string.quoted.template punctuation.definition.string.begin", + "string.quoted.template punctuation.definition.string.end", + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "meta.paragraph.markdown meta.dummy.line-break", + "meta.paragraph.markdown meta.hard-line-break.markdown" + ], + "settings": { + "background": "#BAA0F8" + } + }, + { + "scope": "markup.underline.link punctuation", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "region.redish", + "settings": { + "foreground": "#FF6D7E", + "background": "#FF6D7E59" + } + }, + { + "scope": "region.orangish", + "settings": { + "foreground": "#FFB270", + "background": "#FFB27059" + } + }, + { + "scope": "region.yellowish", + "settings": { + "foreground": "#FFED72", + "background": "#FFED7259" + } + }, + { + "scope": "region.greenish", + "settings": { + "foreground": "#A2E57B", + "background": "#A2E57B59" + } + }, + { + "scope": "region.bluish", + "settings": { + "foreground": "#7CD5F1", + "background": "#7CD5F159" + } + }, + { + "scope": "region.purplish", + "settings": { + "foreground": "#BAA0F8", + "background": "#BAA0F859" + } + }, + { + "scope": "region.pinkish", + "settings": { + "foreground": "#FF6D7E", + "background": "#FF6D7E59" + } + }, + { + "scope": "region.whitish", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "source", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "source.scss", + "source.sass" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "source.sass variable.other", + "source.sass variable.sass", + "source.scss variable.other", + "source.scss variable.scss", + "source.scss variable.sass", + "source.css variable.other", + "source.css variable.scss", + "source.less variable.other", + "source.less variable.other.less", + "source.less variable.declaration.less" + ], + "settings": { + "foreground": "#FFB270", + "fontStyle": "italic" + } + }, + { + "scope": "source.git-show.commit.sha", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": [ + "source.git-show.author", + "source.git-show.date", + "source.git-diff.command", + "source.git-diff.command meta.diff.git-diff.header.from-file", + "source.git-diff.command meta.diff.git-diff.header.to-file" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "source.git-show meta.diff.git-diff.header.extended.index.from-sha", + "source.git-show meta.diff.git-diff.header.extended.index.to-sha" + ], + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "source.git-show meta.diff.range.unified", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "source.git-show meta.diff.header.from-file", + "source.git-show meta.diff.header.to-file" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": "storage.type.extends", + "settings": { + "foreground": "#FF6D7E", + "fontStyle": "normal" + } + }, + { + "scope": "storage.type.function.arrow", + "settings": { + "foreground": "#FF6D7E", + "fontStyle": "normal" + } + }, + { + "scope": [ + "storage.modifier", + "storage.type.modifier" + ], + "settings": { + "foreground": "#FF6D7E", + "fontStyle": "italic" + } + }, + { + "scope": "storage.class.restructuredtext.ref", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": [ + "storage.modifier.visibility.rust", + "storage.modifier.lifetime.rust" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "storage.modifier.const.rust", + "storage.modifier.dyn.rust", + "storage.modifier.mut.rust", + "storage.modifier.static.rust", + "storage.type.rust", + "storage.type.core.rust", + "storage.class.std.rust" + ], + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": [ + "storage.type.rust", + "storage.modifier.const.rust", + "storage.modifier.dyn.rust", + "storage.modifier.mut.rust", + "storage.modifier.static.rust", + "keyword.other.rust", + "keyword.other.where.rust" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#FFED72" + } + }, + { + "scope": "string.unquoted.label", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "string source", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "string source punctuation.section.embedded", + "string punctuation.definition.string source" + ], + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "string.other.link.title", + "string.other.link.description" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "string.other.link.description.title", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": [ + "string.regexp punctuation.definition.string.begin", + "string.regexp punctuation.definition.string.end" + ], + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": [ + "string.other.ref", + "string.other.restructuredtext.ref" + ], + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "string.other.git-status.help.key", + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": "string.other.git-status.remote", + "settings": { + "foreground": "#FF6D7E" + } + }, + { + "scope": "support.constant", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "support.constant.handlebars", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": "support.type.vendor-prefix.css", + "settings": { + "foreground": "#B8C4C3" + } + }, + { + "scope": "support.function", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "support.function.delimiter.elm", + "settings": { + "foreground": "#8B9798" + } + }, + { + "scope": [ + "support.type", + "entity.name.type.object.console" + ], + "settings": { + "foreground": "#7CD5F1", + "fontStyle": "italic" + } + }, + { + "scope": "support.variable", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#F2FFFC", + "fontStyle": "normal" + } + }, + { + "scope": "support.class", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "support.constant.core.rust", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "text", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "text.find-in-files", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "variable", + "variable.other" + ], + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": [ + "variable.parameter", + "parameters variable.function" + ], + "settings": { + "foreground": "#FFB270", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.language", + "variable.parameter.function.language.special.self.python", + "variable.parameter.function.language.special.cls.python" + ], + "settings": { + "foreground": "#B8C4C3", + "fontStyle": "italic" + } + }, + { + "scope": "variable.language.arguments", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "variable.other.class", + "settings": { + "foreground": "#7CD5F1" + } + }, + { + "scope": "variable.other.constant", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "variable.other.readwrite", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "variable.other.member", + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "variable.other.enummember", + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": [ + "variable.other.property", + "variable.other.property.static", + "variable.other.event" + ], + "settings": { + "foreground": "#F2FFFC" + } + }, + { + "scope": "variable.function", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "variable.other.substitution", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "source.ruby variable.other.readwrite.instance.ruby", + "source.ruby variable.other.readwrite.class.ruby" + ], + "settings": { + "foreground": "#BAA0F8" + } + }, + { + "scope": "source.jinja2 variable.other.jinja2.block", + "settings": { + "foreground": "#A2E57B" + } + }, + { + "scope": "source.jinja2 variable.other.jinja2", + "settings": { + "foreground": "#FFB270" + } + }, + { + "scope": [ + "comment", + "keyword", + "storage", + "keyword.control.import", + "keyword.control.default", + "keyword.control.from", + "keyword.operator.new", + "keyword.control.export", + "keyword.control.flow", + "storage.type.class", + "storage.type.function", + "storage.type", + "storage.type.class", + "variable.language", + "variable.language.super", + "variable.language.this", + "meta.class", + "meta.var.expr", + "constant.language.null", + "support.type.primitive", + "entity.name.method.js", + "entity.other.attribute-name", + "punctuation.definition.comment", + "text.html.basic entity.other.attribute-name.html", + "text.html.basic entity.other.attribute-name", + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js", + "source.js constant.other.object.key.js string.unquoted.label.js" + ], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#6796E6" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#CD9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#F44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#B267E6" + } + } + ] +} \ No newline at end of file diff --git a/web/src/components/Editor/typesResolve/index.ts b/web/src/components/Editor/typesResolve/index.ts index ed41088d34..f9c8a3b556 100644 --- a/web/src/components/Editor/typesResolve/index.ts +++ b/web/src/components/Editor/typesResolve/index.ts @@ -1,5 +1,8 @@ import axios from "axios"; import * as monaco from "monaco-editor"; +import { RegisteredMemoryFile } from "vscode/service-override/files"; + +import { fileSystemProvider } from "../FunctionEditor"; import { globalDeclare } from "./globals"; @@ -70,7 +73,6 @@ export class AutoImportTypings { */ async parse(source: string) { const rets = this._parser.parseDependencies(source); - console.log("rets", rets); if (!rets || !rets.length) return; const newImports = rets.filter((pkg) => !this.isLoaded(pkg)); @@ -84,9 +86,9 @@ export class AutoImportTypings { */ loadDefaults() { this.addExtraLib({ path: "globals.d.ts", content: globalDeclare }); - // if (!this.isLoaded("@lafjs/cloud")) { - // this.loadDeclaration("@lafjs/cloud"); - // } + if (!this.isLoaded("@lafjs/cloud")) { + this.loadDeclaration("@lafjs/cloud"); + } if (!this.isLoaded("globals")) { this.loadDeclaration("globals"); } @@ -136,7 +138,7 @@ export class AutoImportTypings { const rets = r.data || []; for (const lib of rets) { // 修复包的类型入口文件不为 index.d.ts 的情况 - console.log("lib", lib, "packageName", packageName); + // console.log("lib", lib, "packageName", packageName); if (packageName === lib.packageName && lib.path !== `${packageName}/index.d.ts`) { const _lib = { ...lib }; _lib.path = `${packageName}/index.d.ts`; @@ -156,30 +158,16 @@ export class AutoImportTypings { * @param {path: string, content: string} param0 * @returns */ - // 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 (keys.includes(fullpath)) { - // console.log(`${path} already exists in ts extralib`); - // return; - // } - // try { - // defaults.addExtraLib(content, fullpath); - // } catch (error) { - // console.log(error, fullpath, keys); - // throw error; - // } - // } - addExtraLib({ path, content }: { path: string; content: string }) { - const fullPath = `/root/laf/runtimes/nodejs/node_modules/${path}`; - console.log("fullPath", fullPath); + let fullPath = ""; + if (path === "@lafjs/cloud/index.d.ts") { + fullPath = `/root/laf/runtimes/nodejs/node_modules/@lafjs/cloud/dist/index.d.ts`; + } else { + fullPath = `/root/laf/runtimes/nodejs/node_modules/${path}`; + } try { + fileSystemProvider.registerFile(new RegisteredMemoryFile(monaco.Uri.file(fullPath), content)); if (!monaco.editor.getModel(monaco.Uri.file(fullPath))) { monaco.editor.createModel(content, "typescript", monaco.Uri.file(fullPath)); } From fffa2f3a3240c0dbf7b888c0970d71d64e71bc63 Mon Sep 17 00:00:00 2001 From: heheer <1239331448@qq.com> Date: Wed, 25 Oct 2023 10:49:37 +0800 Subject: [PATCH 05/42] feat(web): add lsp status --- .vscode/settings.json | 2 + web/src/components/Editor/FunctionEditor.tsx | 97 +- web/src/components/Editor/LanguageClient.ts | 26 +- web/src/components/Editor/TextModel.tsx | 31 +- web/src/components/Editor/theme/index.js | 11 + .../Editor/theme/laf_editor_dark_theme.json | 703 ++++++ .../Editor/theme/laf_editor_theme.json | 32 +- web/src/components/Editor/theme/test.json | 2067 ----------------- .../components/Editor/typesResolve/index.ts | 7 +- .../app/functions/mods/EditorPanel/index.tsx | 1 - web/src/pages/app/functions/store.ts | 9 + .../pages/app/mods/StatusBar/LSPBar/index.tsx | 47 + web/src/pages/app/mods/StatusBar/index.tsx | 2 + 13 files changed, 861 insertions(+), 2174 deletions(-) create mode 100644 web/src/components/Editor/theme/laf_editor_dark_theme.json delete mode 100644 web/src/components/Editor/theme/test.json create mode 100644 web/src/pages/app/mods/StatusBar/LSPBar/index.tsx diff --git a/.vscode/settings.json b/.vscode/settings.json index b3d3d85722..589dff3586 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -42,6 +42,7 @@ "chatgpt", "ciphertext", "clsx", + "codingame", "coll", "compat", "containerd", @@ -75,6 +76,7 @@ "logtostderr", "mchid", "millicores", + "mimetypes", "MINIO", "moby", "MONOG", diff --git a/web/src/components/Editor/FunctionEditor.tsx b/web/src/components/Editor/FunctionEditor.tsx index 57d81e709b..7b104c4fcd 100644 --- a/web/src/components/Editor/FunctionEditor.tsx +++ b/web/src/components/Editor/FunctionEditor.tsx @@ -10,12 +10,12 @@ import { import { COLOR_MODE, Pages } from "@/constants"; -import "./userWorker"; import "./theme"; import { createUrl, createWebSocketAndStartClient } from "./LanguageClient"; import { AutoImportTypings } from "./typesResolve"; +import useFunctionCache from "@/hooks/useFunctionCache"; import useHotKey, { DEFAULT_SHORTCUTS } from "@/hooks/useHotKey"; import useFunctionStore from "@/pages/app/functions/store"; import useGlobalStore from "@/pages/globalStore"; @@ -30,10 +30,8 @@ export const fileSystemProvider = new RegisteredFileSystemProvider(false); registerFileSystemOverlay(1, fileSystemProvider); const autoImportTypings = new AutoImportTypings(); const parseImports = debounce(autoImportTypings.parse.bind(autoImportTypings), 1500); -const updateModel = (path: string, value: string, editorRef: any) => { - const newModel = - monaco.editor.getModel(monaco.Uri.file(path)) || - monaco.editor.createModel(value, "typescript", monaco.Uri.file(path)); +const updateModel = (path: string, editorRef: any) => { + const newModel = monaco.editor.getModel(monaco.Uri.file(path)); if (editorRef.current?.getModel() !== newModel) { editorRef.current?.setModel(newModel); @@ -42,7 +40,6 @@ const updateModel = (path: string, value: string, editorRef: any) => { }; function FunctionEditor(props: { - value: string; className?: string; style?: CSSProperties; onChange?: (value: string | undefined) => void; @@ -53,7 +50,6 @@ function FunctionEditor(props: { fontSize?: number; }) { const { - value, onChange, path, height = "100%", @@ -68,17 +64,16 @@ function FunctionEditor(props: { const subscriptionRef = useRef(undefined); const monacoEl = useRef(null); const hostname = "scm3dt.100.66.76.85.nip.io"; - const path1 = "/_/lsp"; + const lspPath = "/_/lsp"; const port = 80; - const url = useMemo(() => createUrl(hostname, port, path1), [hostname, port, path1]); - // let lspWebSocket: WebSocket; + const url = useMemo(() => createUrl(hostname, port, lspPath), [hostname, port, lspPath]); const globalStore = useGlobalStore((state) => state); - const { allFunctionList } = useFunctionStore((state) => state); + const { allFunctionList, setLSPStatus } = useFunctionStore((state) => state); + const functionCache = useFunctionCache(); useHotKey( DEFAULT_SHORTCUTS.send_request, () => { - // format editorRef.current?.trigger("keyboard", "editor.action.formatDocument", {}); }, { @@ -86,6 +81,35 @@ function FunctionEditor(props: { }, ); + useEffect(() => { + const lspWebSocket = createWebSocketAndStartClient(url); + setLSPStatus("initializing"); + + lspWebSocket.addEventListener("message", (event) => { + const message = JSON.parse(event.data); + if (message.method === "textDocument/publishDiagnostics") { + setLSPStatus("ready"); + return; + } + }); + + lspWebSocket.addEventListener("error", (event) => { + setLSPStatus("error"); + }); + + window.onbeforeunload = () => { + // On page reload/exit, close web socket connection + lspWebSocket?.close(); + setLSPStatus("closed"); + }; + return () => { + // On component unmount, close web socket connection + lspWebSocket?.close(); + setLSPStatus("closed"); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + useEffect(() => { if (monacoEl && !editorRef.current) { const start = async () => { @@ -104,56 +128,33 @@ function FunctionEditor(props: { overviewRulerLanes: 0, lineNumbersMinChars: 4, fontSize: fontSize, - theme: "lafEditorTheme", + theme: colorMode === COLOR_MODE.dark ? "lafEditorDarkTheme" : "lafEditorTheme", fontFamily: "Fira Code", fontWeight: "450", scrollBeyondLastLine: false, }); - updateModel(path, value, editorRef); setTimeout(() => { autoImportTypings.loadDefaults(); }); - - // lspWebSocket = createWebSocketAndStartClient(url); - createWebSocketAndStartClient(url); }; start(); - } else if (monacoEl && editorRef.current) { - updateModel(path, value, editorRef); } - allFunctionList.forEach(async (item: any) => { - fileSystemProvider.registerFile( - new RegisteredMemoryFile( - monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`), - item.source.code, - ), - ); - if ( - !monaco.editor.getModel( - monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`), - ) - ) { + const uri = monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`); + + fileSystemProvider.registerFile(new RegisteredMemoryFile(uri, item.source.code)); + if (!monaco.editor.getModel(uri)) { monaco.editor.createModel( - item.source.code, + functionCache.getCache(item._id, item.source?.code), "typescript", - monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`), + uri, ); - // editorRef.current?.setModel(model); } }); - // window.onbeforeunload = () => { - // // On page reload/exit, close web socket connection - // lspWebSocket?.close(); - // }; - // return () => { - // // On component unmount, close web socket connection - // lspWebSocket?.close(); - // }; - - return () => {}; - }, [colorMode, path, readOnly, value, fontSize, url, allFunctionList]); + updateModel(path, editorRef); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [allFunctionList]); // onChange useEffect(() => { @@ -166,11 +167,15 @@ function FunctionEditor(props: { } }, [onChange]); + useEffect(() => { + updateModel(path, editorRef); + }, [path]); + useEffect(() => { if (monacoEl && editorRef.current) { editorRef.current.updateOptions({ fontSize: fontSize, - theme: "lafEditorTheme", + theme: colorMode === COLOR_MODE.dark ? "lafEditorDarkTheme" : "lafEditorTheme", }); } }, [colorMode, fontSize]); diff --git a/web/src/components/Editor/LanguageClient.ts b/web/src/components/Editor/LanguageClient.ts index b4bdecd921..c444aa97f0 100644 --- a/web/src/components/Editor/LanguageClient.ts +++ b/web/src/components/Editor/LanguageClient.ts @@ -1,22 +1,16 @@ import getConfigurationServiceOverride from "@codingame/monaco-vscode-configuration-service-override"; -// import getEditorServiceOverride from "@codingame/monaco-vscode-editor-service-override" -// import getModelServiceOverride from '@codingame/monaco-vscode-model-service-override' import getTextmateServiceOverride from "@codingame/monaco-vscode-textmate-service-override"; -// import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override'; import getThemeServiceOverride from "@codingame/monaco-vscode-theme-service-override"; import { editor, languages } from "monaco-editor"; import { initServices, MonacoLanguageClient } from "monaco-languageclient"; import { Uri } from "vscode"; import { IReference, ITextFileEditorModel } from "vscode/monaco"; -// import { ITextModelService, SyncDescriptor } from "vscode/services"; import { CloseAction, ErrorAction, MessageTransports } from "vscode-languageclient"; import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from "vscode-ws-jsonrpc"; import "@codingame/monaco-vscode-typescript-basics-default-extension"; import "./TextModel"; -// import { TextModelService } from "./TextModel"; - export const createLanguageClient = (transports: MessageTransports): MonacoLanguageClient => { return new MonacoLanguageClient({ name: "Sample Language Client", @@ -28,7 +22,7 @@ export const createLanguageClient = (transports: MessageTransports): MonacoLangu }, workspaceFolder: { uri: Uri.file("/root/laf/runtimes/nodejs/functions"), - name: "Sample Workspace", + name: "Laf Workspace", index: 0, }, }, @@ -53,9 +47,9 @@ export const createUrl = ( return url.toString(); }; -export const createWebSocketAndStartClient = (url: string): WebSocket => { +export const createWebSocketAndStartClient = (url: string) => { const webSocket = new WebSocket(url); - webSocket.onopen = () => { + webSocket.onopen = async () => { const socket = toSocket(webSocket); const reader = new WebSocketMessageReader(socket); const writer = new WebSocketMessageWriter(socket); @@ -63,8 +57,8 @@ export const createWebSocketAndStartClient = (url: string): WebSocket => { reader, writer, }); - languageClient.start(); - reader.onClose(() => languageClient.stop()); + await languageClient.start(); + reader.onClose(() => languageClient?.stop()); }; return webSocket; }; @@ -81,17 +75,11 @@ export const performInit = async (vscodeApiInit: boolean) => { userServices: { ...getThemeServiceOverride(), ...getTextmateServiceOverride(), - ...getConfigurationServiceOverride(Uri.file("/root/laf/runtimes/nodejs/functions/")), - // ...getEditorServiceOverride(async (modelRef, options, sideBySide) => { - // console.log('Received open editor call with parameters: ', modelRef, options, sideBySide); - // return undefined; - // }) - // ...getKeybindingsServiceOverride() + ...getConfigurationServiceOverride(Uri.file("/root/laf/runtimes/nodejs/functions")), }, - debugLogging: true, + // debugLogging: true, }); - // register the TS language with Monaco languages.register({ id: "typescript", extensions: [".ts", ".tsx"], diff --git a/web/src/components/Editor/TextModel.tsx b/web/src/components/Editor/TextModel.tsx index f71acecf3a..d419cfdb7e 100644 --- a/web/src/components/Editor/TextModel.tsx +++ b/web/src/components/Editor/TextModel.tsx @@ -2,13 +2,15 @@ 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); - console.log("model", model); if (model === null) { model = editor.getModel(); } @@ -24,27 +26,42 @@ StandaloneCodeEditorService.prototype.doOpenEditor = function ( return null; } - console.log(editor, input, model.uri.toString()); - // 阻止打开.d.ts文件 if (model.uri.toString().includes(".d.ts")) { return editor; } editor.setModel(model); - // todo - // window.location + + 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 /* Immediate */); + editor.revealRangeInCenter(selection, 1); } else { var pos = { lineNumber: selection.startLineNumber, column: selection.startColumn, }; editor.setPosition(pos); - editor.revealPositionInCenter(pos, 1 /* Immediate */); + editor.revealPositionInCenter(pos, 1); } } return editor; diff --git a/web/src/components/Editor/theme/index.js b/web/src/components/Editor/theme/index.js index 923c5446a8..45b15a3f20 100644 --- a/web/src/components/Editor/theme/index.js +++ b/web/src/components/Editor/theme/index.js @@ -16,6 +16,12 @@ var manifest = { label: "lafEditorTheme", uiTheme: "lafEditorTheme", path: "./themes/laf_editor_theme.json", + }, + { + id: "lafEditorDarkTheme", + label: "lafEditorDarkTheme", + uiTheme: "lafEditorDarkTheme", + path: "./themes/laf_editor_dark_theme.json", } ], }, @@ -30,4 +36,9 @@ registerFileUrl( new URL("./laf_editor_theme.json", import.meta.url).toString(), "application/json", ); +registerFileUrl( + "./themes/laf_editor_dark_theme.json", + new URL("./laf_editor_dark_theme.json", import.meta.url).toString(), + "application/json", +); export { whenReady }; diff --git a/web/src/components/Editor/theme/laf_editor_dark_theme.json b/web/src/components/Editor/theme/laf_editor_dark_theme.json new file mode 100644 index 0000000000..0b772114c2 --- /dev/null +++ b/web/src/components/Editor/theme/laf_editor_dark_theme.json @@ -0,0 +1,703 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "lafEditorDarkTheme", + "colors": { + "editor.inactiveSelectionBackground": "#3A3D41", + "editorIndentGuide.background1": "#404040", + "editorIndentGuide.activeBackground1": "#707070", + "editor.selectionHighlightBackground": "#ADD6FF26", + "list.dropBackground": "#383B3D", + "menu.foreground": "#CCCCCC", + "menu.separatorBackground": "#454545", + "menu.border": "#454545", + "ports.iconRunningProcessForeground": "#369432", + "tab.lastPinnedBorder": "#ccc3", + "list.activeSelectionIconForeground": "#FFF", + "terminal.inactiveSelectionBackground": "#3A3D41", + "actionBar.toggledBackground": "#383a49", + "activityBar.activeBorder": "#0078D4", + "activityBar.background": "#181818", + "activityBar.border": "#2B2B2B", + "activityBar.foreground": "#D7D7D7", + "activityBar.inactiveForeground": "#868686", + "activityBarBadge.background": "#0078D4", + "activityBarBadge.foreground": "#FFFFFF", + "badge.background": "#616161", + "badge.foreground": "#F8F8F8", + "button.background": "#0078D4", + "button.border": "#FFFFFF12", + "button.foreground": "#FFFFFF", + "button.hoverBackground": "#026EC1", + "button.secondaryBackground": "#313131", + "button.secondaryForeground": "#CCCCCC", + "button.secondaryHoverBackground": "#3C3C3C", + "chat.slashCommandBackground": "#34414B", + "chat.slashCommandForeground": "#40A6FF", + "checkbox.background": "#313131", + "checkbox.border": "#3C3C3C", + "debugToolBar.background": "#181818", + "descriptionForeground": "#9D9D9D", + "dropdown.background": "#313131", + "dropdown.border": "#3C3C3C", + "dropdown.foreground": "#CCCCCC", + "dropdown.listBackground": "#202631", + "editor.background": "#202631", + "editor.findMatchBackground": "#9E6A03", + "editor.foreground": "#CCCCCC", + "editorGroup.border": "#FFFFFF17", + "editorGroupHeader.tabsBackground": "#181818", + "editorGroupHeader.tabsBorder": "#2B2B2B", + "editorGutter.addedBackground": "#2EA043", + "editorGutter.deletedBackground": "#F85149", + "editorGutter.modifiedBackground": "#0078D4", + "editorLineNumber.activeForeground": "#CCCCCC", + "editorLineNumber.foreground": "#6E7681", + "editorOverviewRuler.border": "#010409", + "editorWidget.background": "#202020", + "errorForeground": "#F85149", + "focusBorder": "#0078D4", + "foreground": "#CCCCCC", + "icon.foreground": "#CCCCCC", + "input.background": "#313131", + "input.border": "#3C3C3C", + "input.foreground": "#CCCCCC", + "input.placeholderForeground": "#9D9D9D", + "inputOption.activeBackground": "#2489DB82", + "inputOption.activeBorder": "#2488DB", + "keybindingLabel.foreground": "#CCCCCC", + "menu.background": "#202631", + "notificationCenterHeader.background": "#202631", + "notificationCenterHeader.foreground": "#CCCCCC", + "notifications.background": "#202631", + "notifications.border": "#2B2B2B", + "notifications.foreground": "#CCCCCC", + "panel.background": "#181818", + "panel.border": "#2B2B2B", + "panelInput.border": "#2B2B2B", + "panelTitle.activeBorder": "#0078D4", + "panelTitle.activeForeground": "#CCCCCC", + "panelTitle.inactiveForeground": "#9D9D9D", + "peekViewEditor.background": "#202631", + "peekViewEditor.matchHighlightBackground": "#BB800966", + "peekViewResult.background": "#202631", + "peekViewResult.matchHighlightBackground": "#BB800966", + "pickerGroup.border": "#3C3C3C", + "progressBar.background": "#0078D4", + "quickInput.background": "#222222", + "quickInput.foreground": "#CCCCCC", + "settings.dropdownBackground": "#313131", + "settings.dropdownBorder": "#3C3C3C", + "settings.headerForeground": "#FFFFFF", + "settings.modifiedItemIndicator": "#BB800966", + "sideBar.background": "#181818", + "sideBar.border": "#2B2B2B", + "sideBar.foreground": "#CCCCCC", + "sideBarSectionHeader.background": "#181818", + "sideBarSectionHeader.border": "#2B2B2B", + "sideBarSectionHeader.foreground": "#CCCCCC", + "sideBarTitle.foreground": "#CCCCCC", + "statusBar.background": "#181818", + "statusBar.border": "#2B2B2B", + "statusBar.debuggingBackground": "#0078D4", + "statusBar.debuggingForeground": "#FFFFFF", + "statusBar.focusBorder": "#0078D4", + "statusBar.foreground": "#CCCCCC", + "statusBar.noFolderBackground": "#202631", + "statusBarItem.focusBorder": "#0078D4", + "statusBarItem.prominentBackground": "#6E768166", + "statusBarItem.remoteBackground": "#0078D4", + "statusBarItem.remoteForeground": "#FFFFFF", + "tab.activeBackground": "#202631", + "tab.activeBorder": "#202631", + "tab.activeBorderTop": "#0078D4", + "tab.activeForeground": "#FFFFFF", + "tab.border": "#2B2B2B", + "tab.hoverBackground": "#202631", + "tab.inactiveBackground": "#181818", + "tab.inactiveForeground": "#9D9D9D", + "tab.unfocusedActiveBorder": "#202631", + "tab.unfocusedActiveBorderTop": "#2B2B2B", + "tab.unfocusedHoverBackground": "#202631", + "terminal.foreground": "#CCCCCC", + "terminal.tab.activeBorder": "#0078D4", + "textBlockQuote.background": "#2B2B2B", + "textBlockQuote.border": "#616161", + "textCodeBlock.background": "#2B2B2B", + "textLink.activeForeground": "#40A6FF", + "textLink.foreground": "#40A6FF", + "textSeparator.foreground": "#21262D", + "titleBar.activeBackground": "#181818", + "titleBar.activeForeground": "#CCCCCC", + "titleBar.border": "#2B2B2B", + "titleBar.inactiveBackground": "#202631", + "titleBar.inactiveForeground": "#9D9D9D", + "welcomePage.tileBackground": "#2B2B2B", + "welcomePage.progress.foreground": "#0078D4", + "widget.border": "#313131" + }, + "tokenColors": [ + { + "scope": [ + "meta.embedded", + "source.groovy.embedded", + "string meta.image.inline.markdown", + "variable.legacy.builtin.python" + ], + "settings": { + "foreground": "#D4D4D4" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#000080" + } + }, + { + "scope": "comment", + "settings": { + "foreground": "#6A9955" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": [ + "constant.numeric", + "variable.other.enummember", + "keyword.operator.plus.exponent", + "keyword.operator.minus.exponent" + ], + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "constant.regexp", + "settings": { + "foreground": "#646695" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "entity.name.tag.css", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": [ + "entity.other.attribute-name.class.css", + "entity.other.attribute-name.class.mixin.css", + "entity.other.attribute-name.id.css", + "entity.other.attribute-name.parent-selector.css", + "entity.other.attribute-name.pseudo-class.css", + "entity.other.attribute-name.pseudo-element.css", + "source.css.less entity.other.attribute-name.id", + "entity.other.attribute-name.scss" + ], + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "invalid", + "settings": { + "foreground": "#f44747" + } + }, + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#569cd6" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#569cd6" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.strikethrough", + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "punctuation.definition.quote.begin.markdown", + "settings": { + "foreground": "#6A9955" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#6796e6" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#ce9178" + } + }, + { + "name": "brackets of XML/HTML tags", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#808080" + } + }, + { + "scope": [ + "meta.preprocessor", + "entity.name.function.preprocessor" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "meta.structure.dictionary.key.python", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": [ + "storage.modifier", + "keyword.operator.noexcept" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": [ + "string", + "meta.embedded.assembly" + ], + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#d16969" + } + }, + { + "name": "String interpolation", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "name": "Reset JavaScript string interpolation expression", + "scope": [ + "meta.template.expression" + ], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "support.type.vendored.property-name", + "support.type.property-name", + "variable.css", + "variable.scss", + "variable.other.less", + "source.coffee.embedded" + ], + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.cast", + "keyword.operator.sizeof", + "keyword.operator.alignof", + "keyword.operator.typeid", + "keyword.operator.alignas", + "keyword.operator.instanceof", + "keyword.operator.logical.python", + "keyword.operator.wordlike" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": [ + "punctuation.section.embedded.begin.php", + "punctuation.section.embedded.end.php" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "name": "coloring of the Java import and package identifiers", + "scope": [ + "storage.modifier.import.java", + "variable.language.wildcard.java", + "storage.modifier.package.java" + ], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "name": "this.self", + "scope": "variable.language", + "settings": { + "foreground": "#569cd6" + } + }, + { + "name": "Function declarations", + "scope": [ + "entity.name.function", + "support.function", + "support.constant.handlebars", + "source.powershell variable.other.member", + "entity.name.operator.custom-literal" // See https://en.cppreference.com/w/cpp/language/user_literal + ], + "settings": { + "foreground": "#DCDCAA" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "support.class", + "support.type", + "entity.name.type", + "entity.name.namespace", + "entity.other.attribute", + "entity.name.scope-resolution", + "entity.name.class", + "storage.type.numeric.go", + "storage.type.byte.go", + "storage.type.boolean.go", + "storage.type.string.go", + "storage.type.uintptr.go", + "storage.type.error.go", + "storage.type.rune.go", + "storage.type.cs", + "storage.type.generic.cs", + "storage.type.modifier.cs", + "storage.type.variable.cs", + "storage.type.annotation.java", + "storage.type.generic.java", + "storage.type.java", + "storage.type.object.array.java", + "storage.type.primitive.array.java", + "storage.type.primitive.java", + "storage.type.token.java", + "storage.type.groovy", + "storage.type.annotation.groovy", + "storage.type.parameters.groovy", + "storage.type.generic.groovy", + "storage.type.object.array.groovy", + "storage.type.primitive.array.groovy", + "storage.type.primitive.groovy" + ], + "settings": { + "foreground": "#4EC9B0" + } + }, + { + "name": "Types declaration and references, TS grammar specific", + "scope": [ + "meta.type.cast.expr", + "meta.type.new.expr", + "support.constant.math", + "support.constant.dom", + "support.constant.json", + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#4EC9B0" + } + }, + { + "name": "Control flow / Special keywords", + "scope": [ + "keyword.control", + "source.cpp keyword.operator.new", + "keyword.operator.delete", + "keyword.other.using", + "keyword.other.operator", + "entity.name.operator" + ], + "settings": { + "foreground": "#C586C0" + } + }, + { + "name": "Variable and parameter name", + "scope": [ + "variable", + "meta.definition.variable.name", + "support.variable", + "entity.name.variable", + "constant.other.placeholder", // placeholders in strings + ], + "settings": { + "foreground": "#9CDCFE" + } + }, + { + "name": "Constants and enums", + "scope": [ + "variable.other.constant", + "variable.other.enummember" + ], + "settings": { + "foreground": "#4FC1FF", + } + }, + { + "name": "Object keys, TS grammar specific", + "scope": [ + "meta.object-literal.key" + ], + "settings": { + "foreground": "#9CDCFE" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" + ], + "settings": { + "foreground": "#CE9178" + } + }, + { + "name": "Regular expression groups", + "scope": [ + "punctuation.definition.group.regexp", + "punctuation.definition.group.assertion.regexp", + "punctuation.definition.character-class.regexp", + "punctuation.character.set.begin.regexp", + "punctuation.character.set.end.regexp", + "keyword.operator.negation.regexp", + "support.other.parenthesis.regexp" + ], + "settings": { + "foreground": "#CE9178" + } + }, + { + "scope": [ + "constant.character.character-class.regexp", + "constant.other.character-class.set.regexp", + "constant.other.character-class.regexp", + "constant.character.set.regexp" + ], + "settings": { + "foreground": "#d16969" + } + }, + { + "scope": [ + "keyword.operator.or.regexp", + "keyword.control.anchor.regexp" + ], + "settings": { + "foreground": "#DCDCAA" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": [ + "constant.character", + "constant.other.option" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "entity.name.label", + "settings": { + "foreground": "#C8C8C8" + } + } + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "newOperator": "#C586C0", + "stringLiteral": "#ce9178", + "customLiteral": "#DCDCAA", + "numberLiteral": "#b5cea8", + } +} \ No newline at end of file diff --git a/web/src/components/Editor/theme/laf_editor_theme.json b/web/src/components/Editor/theme/laf_editor_theme.json index 64e7538b77..ab61fc2e51 100644 --- a/web/src/components/Editor/theme/laf_editor_theme.json +++ b/web/src/components/Editor/theme/laf_editor_theme.json @@ -9,22 +9,8 @@ "scrollbarSlider.background": "#E8EAEC", "editorIndentGuide.activeBackground1": "#fff", "editorIndentGuide.background1": "#eee", - "activityBar.activeBorder": "#005FB8", - "activityBar.background": "#F8F8F8", - "activityBar.border": "#E5E5E5", - "activityBar.foreground": "#1F1F1F", - "activityBar.inactiveForeground": "#616161", - "activityBarBadge.background": "#005FB8", - "activityBarBadge.foreground": "#FFFFFF", "badge.background": "#CCCCCC", "badge.foreground": "#3B3B3B", - "button.background": "#005FB8", - "button.border": "#0000001a", - "button.foreground": "#FFFFFF", - "button.hoverBackground": "#0258A8", - "button.secondaryBackground": "#E5E5E5", - "button.secondaryForeground": "#3B3B3B", - "button.secondaryHoverBackground": "#CCCCCC", "chat.slashCommandBackground": "#D2ECFF", "chat.slashCommandForeground": "#306CA2", "checkbox.background": "#F8F8F8", @@ -37,6 +23,7 @@ "editor.background": "#FFFFFF", "editor.foreground": "#3B3B3B", "editor.inactiveSelectionBackground": "#E5EBF1", + "editor.selectionBackground": "#bed9f5", "editor.selectionHighlightBackground": "#ADD6FF80", "editorGroup.border": "#E5E5E5", "editorGroupHeader.tabsBackground": "#F8F8F8", @@ -64,7 +51,6 @@ "list.activeSelectionIconForeground": "#000000", "list.hoverBackground": "#F2F2F2", "list.focusAndSelectionOutline": "#005FB8", - "menu.border": "#CECECE", "notebook.cellBorderColor": "#E5E5E5", "notebook.selectedCellBackground": "#C8DDF150", "notificationCenterHeader.background": "#FFFFFF", @@ -125,10 +111,6 @@ "tab.unfocusedActiveBorder": "#F8F8F8", "tab.unfocusedActiveBorderTop": "#E5E5E5", "tab.unfocusedHoverBackground": "#F8F8F8", - "terminalCursor.foreground": "#005FB8", - "terminal.foreground": "#3B3B3B", - "terminal.inactiveSelectionBackground": "#E5EBF1", - "terminal.tab.activeBorder": "#005FB8", "textBlockQuote.background": "#F8F8F8", "textBlockQuote.border": "#E5E5E5", "textCodeBlock.background": "#F8F8F8", @@ -143,6 +125,7 @@ "welcomePage.tileBackground": "#F3F3F3", "widget.border": "#E5E5E5", "actionBar.toggledBackground": "#dddddd", + "scrollbar.shadow": "#2731360A", "editorBracketHighlight.foreground1": "#B93A67", "editorBracketHighlight.foreground2": "#0178CE", // "editorBracketHighlight.foreground3": "#ffed72", @@ -713,17 +696,6 @@ "foreground": "#098658" } }, - { - "name": "coloring of the Java import and package identifiers", - "scope": [ - "storage.modifier.import.java", - "variable.language.wildcard.java", - "storage.modifier.package.java" - ], - "settings": { - "foreground": "#000000" - } - }, { "name": "this.self", "scope": "variable.language", diff --git a/web/src/components/Editor/theme/test.json b/web/src/components/Editor/theme/test.json deleted file mode 100644 index 88f31c3ff8..0000000000 --- a/web/src/components/Editor/theme/test.json +++ /dev/null @@ -1,2067 +0,0 @@ -{ - "$schema": "vscode://schemas/color-theme", - "type": "dark", - "colors": { - "activityBar.activeFocusBorder": "#ffed72", - "activityBar.background": "#161b1e", - "activityBar.border": "#161b1e", - "activityBar.foreground": "#b8c4c3", - "activityBar.inactiveForeground": "#545f62", - "activityBarBadge.background": "#ffed72", - "activityBarBadge.foreground": "#273136", - "badge.background": "#ffed72", - "badge.foreground": "#273136", - "banner.background": "#3a4449", - "banner.foreground": "#b8c4c3", - "banner.iconForeground": "#b8c4c3", - "breadcrumb.activeSelectionForeground": "#f2fffc", - "breadcrumb.focusForeground": "#b8c4c3", - "breadcrumb.foreground": "#8b9798", - "button.background": "#3a4449", - "button.foreground": "#b8c4c3", - "button.hoverBackground": "#545f62", - "button.secondaryBackground": "#3d3a49", - "button.secondaryForeground": "#b8c4c3", - "button.secondaryHoverBackground": "#545f62", - "button.separator": "#273136", - "charts.blue": "#7cd5f1", - "charts.foreground": "#f2fffc", - "charts.green": "#a2e57b", - "charts.lines": "#6b7678", - "charts.orange": "#ffb270", - "charts.purple": "#baa0f8", - "charts.red": "#ff6d7e", - "charts.yellow": "#ffed72", - "checkbox.background": "#3a4449", - "checkbox.border": "#3a4449", - "checkbox.foreground": "#f2fffc", - "commandCenter.activeBackground": "#273136", - "commandCenter.activeForeground": "#b8c4c3", - "commandCenter.background": "#1d2528", - "commandCenter.border": "#273136", - "commandCenter.foreground": "#8b9798", - "debugConsole.errorForeground": "#ff6d7e", - "debugConsole.infoForeground": "#7cd5f1", - "debugConsole.sourceForeground": "#f2fffc", - "debugConsole.warningForeground": "#ffb270", - "debugConsoleInputIcon.foreground": "#ffed72", - "debugExceptionWidget.background": "#3a4449", - "debugExceptionWidget.border": "#273136", - "debugIcon.breakpointCurrentStackframeForeground": "#ffed72", - "debugIcon.breakpointDisabledForeground": "#b8c4c3", - "debugIcon.breakpointForeground": "#ff6d7e", - "debugIcon.breakpointStackframeForeground": "#f2fffc", - "debugIcon.breakpointUnverifiedForeground": "#ffb270", - "debugIcon.continueForeground": "#f2fffc", - "debugIcon.disconnectForeground": "#f2fffc", - "debugIcon.pauseForeground": "#f2fffc", - "debugIcon.restartForeground": "#a2e57b", - "debugIcon.startForeground": "#a2e57b", - "debugIcon.stepBackForeground": "#f2fffc", - "debugIcon.stepIntoForeground": "#f2fffc", - "debugIcon.stepOutForeground": "#f2fffc", - "debugIcon.stepOverForeground": "#f2fffc", - "debugIcon.stopForeground": "#ff6d7e", - "debugTokenExpression.boolean": "#ffb270", - "debugTokenExpression.error": "#ff6d7e", - "debugTokenExpression.name": "#7cd5f1", - "debugTokenExpression.number": "#baa0f8", - "debugTokenExpression.string": "#ffed72", - "debugTokenExpression.value": "#f2fffc", - "debugToolBar.background": "#3a4449", - "debugView.exceptionLabelBackground": "#ff6d7e", - "debugView.exceptionLabelForeground": "#273136", - "debugView.stateLabelBackground": "#a2e57b", - "debugView.stateLabelForeground": "#273136", - "debugView.valueChangedHighlight": "#ffed72", - "descriptionForeground": "#8b9798", - "diffEditor.diagonalFill": "#3a4449", - "diffEditor.insertedLineBackground": "#a2e57b19", - "diffEditor.insertedTextBackground": "#a2e57b19", - "diffEditor.removedLineBackground": "#ff6d7e19", - "diffEditor.removedTextBackground": "#ff6d7e19", - "diffEditorGutter.insertedLineBackground": "#a2e57b19", - "diffEditorGutter.removedLineBackground": "#ff6d7e19", - "diffEditorOverview.insertedForeground": "#a2e57ba5", - "diffEditorOverview.removedForeground": "#ff6d7ea5", - "dropdown.background": "#273136", - "dropdown.border": "#273136", - "dropdown.foreground": "#8b9798", - "dropdown.listBackground": "#3a4449", - "editor.background": "#273136", - "editor.findMatchBackground": "#f2fffc26", - "editor.findMatchBorder": "#ffed72", - "editor.findMatchHighlightBackground": "#f2fffc26", - "editor.findMatchHighlightBorder": "#00000000", - "editor.findRangeHighlightBackground": "#f2fffc0c", - "editor.findRangeHighlightBorder": "#00000000", - "editor.focusedStackFrameHighlightBackground": "#b8c4c326", - "editor.foldBackground": "#f2fffc0c", - "editor.foreground": "#f2fffc", - "editor.hoverHighlightBackground": "#f2fffc0c", - "editor.inactiveSelectionBackground": "#f2fffc0c", - "editor.inlineValuesBackground": "#545f62", - "editor.inlineValuesForeground": "#b8c4c3", - "editor.lineHighlightBackground": "#f2fffc0c", - "editor.lineHighlightBorder": "#00000000", - "editor.linkedEditingBackground": "#3a4449", - "editor.rangeHighlightBackground": "#3a4449", - "editor.rangeHighlightBorder": "#3a4449", - "editor.selectionBackground": "#b8c4c326", - "editor.selectionHighlightBackground": "#f2fffc26", - "editor.selectionHighlightBorder": "#00000000", - "editor.stackFrameHighlightBackground": "#b8c4c326", - "editor.wordHighlightBackground": "#f2fffc26", - "editor.wordHighlightBorder": "#00000000", - "editor.wordHighlightStrongBackground": "#f2fffc26", - "editor.wordHighlightStrongBorder": "#00000000", - "editorBracketHighlight.foreground1": "#ff6d7e", - "editorBracketHighlight.foreground2": "#ffb270", - "editorBracketHighlight.foreground3": "#ffed72", - "editorBracketHighlight.foreground4": "#a2e57b", - "editorBracketHighlight.foreground5": "#7cd5f1", - "editorBracketHighlight.foreground6": "#baa0f8", - "editorBracketMatch.background": "#273136", - "editorBracketMatch.border": "#6b7678", - "editorCodeLens.foreground": "#6b7678", - "editorCursor.background": "#273136", - "editorCursor.foreground": "#f2fffc", - "editorError.background": "#00000000", - "editorError.border": "#00000000", - "editorError.foreground": "#ff6d7e", - "editorGroup.border": "#1d2528", - "editorGroup.dropBackground": "#1d2528bf", - "editorGroup.emptyBackground": "#161b1e", - "editorGroup.focusedEmptyBorder": "#1d2528", - "editorGroupHeader.noTabsBackground": "#273136", - "editorGroupHeader.tabsBackground": "#273136", - "editorGroupHeader.tabsBorder": "#273136", - "editorGutter.addedBackground": "#a2e57b", - "editorGutter.background": "#273136", - "editorGutter.deletedBackground": "#ff6d7e", - "editorGutter.foldingControlForeground": "#b8c4c3", - "editorGutter.modifiedBackground": "#ffb270", - "editorHint.border": "#273136", - "editorHint.foreground": "#baa0f8", - "editorHoverWidget.background": "#3a4449", - "editorHoverWidget.border": "#273136", - "editorIndentGuide.background": "#3a4449", - "editorInfo.background": "#00000000", - "editorInfo.border": "#273136", - "editorInfo.foreground": "#7cd5f1", - "editorLightBulb.foreground": "#ffed72", - "editorLightBulbAutoFix.foreground": "#a2e57b", - "editorLineNumber.activeForeground": "#b8c4c3", - "editorLineNumber.foreground": "#545f62", - "editorLink.activeForeground": "#7cd5f1", - "editorMarkerNavigation.background": "#3a4449", - "editorMarkerNavigationError.background": "#ff6d7e", - "editorMarkerNavigationInfo.background": "#7cd5f1", - "editorMarkerNavigationWarning.background": "#ffb270", - "editorOverviewRuler.addedForeground": "#a2e57b", - "editorOverviewRuler.border": "#273136", - "editorOverviewRuler.currentContentForeground": "#3a4449", - "editorOverviewRuler.deletedForeground": "#ff6d7e", - "editorOverviewRuler.errorForeground": "#ff6d7e", - "editorOverviewRuler.findMatchForeground": "#f2fffc26", - "editorOverviewRuler.incomingContentForeground": "#3a4449", - "editorOverviewRuler.infoForeground": "#7cd5f1", - "editorOverviewRuler.modifiedForeground": "#ffb270", - "editorOverviewRuler.rangeHighlightForeground": "#f2fffc26", - "editorOverviewRuler.selectionHighlightForeground": "#f2fffc26", - "editorOverviewRuler.warningForeground": "#ffb270", - "editorOverviewRuler.wordHighlightForeground": "#f2fffc26", - "editorOverviewRuler.wordHighlightStrongForeground": "#f2fffc26", - "editorPane.background": "#273136", - "editorRuler.foreground": "#545f62", - "editorSuggestWidget.background": "#3a4449", - "editorSuggestWidget.border": "#3a4449", - "editorSuggestWidget.foreground": "#b8c4c3", - "editorSuggestWidget.highlightForeground": "#f2fffc", - "editorSuggestWidget.selectedBackground": "#6b7678", - "editorUnnecessaryCode.opacity": "#000000a5", - "editorWarning.background": "#00000000", - "editorWarning.border": "#00000000", - "editorWarning.foreground": "#ffb270", - "editorWhitespace.foreground": "#545f62", - "editorWidget.background": "#3a4449", - "editorWidget.border": "#3a4449", - "errorForeground": "#ff6d7e", - "extensionBadge.remoteForeground": "#a2e57b", - "extensionButton.prominentBackground": "#3a4449", - "extensionButton.prominentForeground": "#f2fffc", - "extensionButton.prominentHoverBackground": "#545f62", - "extensionIcon.preReleaseForeground": "#baa0f8", - "extensionIcon.sponsorForeground": "#7cd5f1", - "extensionIcon.starForeground": "#ffed72", - "extensionIcon.verifiedForeground": "#a2e57b", - "focusBorder": "#6b7678", - "foreground": "#f2fffc", - "gitDecoration.addedResourceForeground": "#a2e57b", - "gitDecoration.conflictingResourceForeground": "#ffb270", - "gitDecoration.deletedResourceForeground": "#ff6d7e", - "gitDecoration.ignoredResourceForeground": "#545f62", - "gitDecoration.modifiedResourceForeground": "#ffed72", - "gitDecoration.stageDeletedResourceForeground": "#ff6d7e", - "gitDecoration.stageModifiedResourceForeground": "#ffed72", - "gitDecoration.untrackedResourceForeground": "#b8c4c3", - "icon.foreground": "#8b9798", - "input.background": "#3a4449", - "input.border": "#3a4449", - "input.foreground": "#f2fffc", - "input.placeholderForeground": "#6b7678", - "inputOption.activeBackground": "#545f62", - "inputOption.activeBorder": "#545f62", - "inputOption.activeForeground": "#f2fffc", - "inputOption.hoverBackground": "#545f62", - "inputValidation.errorBackground": "#3a4449", - "inputValidation.errorBorder": "#ff6d7e", - "inputValidation.errorForeground": "#ff6d7e", - "inputValidation.infoBackground": "#3a4449", - "inputValidation.infoBorder": "#7cd5f1", - "inputValidation.infoForeground": "#7cd5f1", - "inputValidation.warningBackground": "#3a4449", - "inputValidation.warningBorder": "#ffb270", - "inputValidation.warningForeground": "#ffb270", - "keybindingLabel.background": "#545f62", - "keybindingLabel.border": "#545f62", - "keybindingLabel.bottomBorder": "#3a4449", - "keybindingLabel.foreground": "#b8c4c3", - "list.activeSelectionBackground": "#f2fffc0c", - "list.activeSelectionForeground": "#ffed72", - "list.dropBackground": "#1d2528bf", - "list.errorForeground": "#ff6d7e", - "list.focusBackground": "#273136", - "list.focusForeground": "#f2fffc", - "list.highlightForeground": "#f2fffc", - "list.hoverBackground": "#f2fffc0c", - "list.hoverForeground": "#f2fffc", - "list.inactiveFocusBackground": "#273136", - "list.inactiveSelectionBackground": "#b8c4c30c", - "list.inactiveSelectionForeground": "#ffed72", - "list.invalidItemForeground": "#ff6d7e", - "list.warningForeground": "#ffb270", - "listFilterWidget.background": "#273136", - "listFilterWidget.noMatchesOutline": "#ff6d7e", - "listFilterWidget.outline": "#273136", - "menu.background": "#273136", - "menu.border": "#1d2528", - "menu.foreground": "#f2fffc", - "menu.selectionForeground": "#ffed72", - "menu.separatorBackground": "#3a4449", - "menubar.selectionForeground": "#f2fffc", - "merge.border": "#273136", - "merge.commonContentBackground": "#f2fffc19", - "merge.commonHeaderBackground": "#f2fffc26", - "merge.currentContentBackground": "#ff6d7e19", - "merge.currentHeaderBackground": "#ff6d7e26", - "merge.incomingContentBackground": "#a2e57b19", - "merge.incomingHeaderBackground": "#a2e57b26", - "mergeEditor.change.background": "#f2fffc19", - "mergeEditor.change.word.background": "#f2fffc19", - "mergeEditor.conflict.handled.minimapOverViewRuler": "#a2e57b", - "mergeEditor.conflict.handledFocused.border": "#a2e57b", - "mergeEditor.conflict.handledUnfocused.border": "#a2e57b", - "mergeEditor.conflict.unhandled.minimapOverViewRuler": "#ff6d7e", - "mergeEditor.conflict.unhandledFocused.border": "#ff6d7e", - "mergeEditor.conflict.unhandledUnfocused.border": "#ff6d7e", - "minimap.errorHighlight": "#ff6d7ea5", - "minimap.findMatchHighlight": "#8b9798a5", - "minimap.selectionHighlight": "#b8c4c326", - "minimap.selectionOccurrenceHighlight": "#6b7678a5", - "minimap.warningHighlight": "#ffb270a5", - "minimapGutter.addedBackground": "#a2e57b", - "minimapGutter.deletedBackground": "#ff6d7e", - "minimapGutter.modifiedBackground": "#ffed72", - "notebook.cellBorderColor": "#3a4449", - "notebook.cellEditorBackground": "#1d25287f", - "notebook.cellInsertionIndicator": "#f2fffc", - "notebook.cellStatusBarItemHoverBackground": "#6b7678", - "notebook.cellToolbarSeparator": "#3a4449", - "notebook.editorBackground": "#273136", - "notebook.focusedEditorBorder": "#6b7678", - "notebookStatusErrorIcon.foreground": "#ff6d7e", - "notebookStatusRunningIcon.foreground": "#f2fffc", - "notebookStatusSuccessIcon.foreground": "#a2e57b", - "notificationCenter.border": "#3a4449", - "notificationCenterHeader.background": "#3a4449", - "notificationCenterHeader.foreground": "#8b9798", - "notificationLink.foreground": "#ffed72", - "notificationToast.border": "#3a4449", - "notifications.background": "#3a4449", - "notifications.border": "#3a4449", - "notifications.foreground": "#b8c4c3", - "notificationsErrorIcon.foreground": "#ff6d7e", - "notificationsInfoIcon.foreground": "#7cd5f1", - "notificationsWarningIcon.foreground": "#ffb270", - "panel.background": "#3a4449", - "panel.border": "#273136", - "panelTitle.activeBorder": "#ffed72", - "panelTitle.activeForeground": "#ffed72", - "panelTitle.inactiveForeground": "#8b9798", - "peekView.border": "#273136", - "peekViewEditor.background": "#3a4449", - "peekViewEditor.matchHighlightBackground": "#545f62", - "peekViewEditorGutter.background": "#3a4449", - "peekViewResult.background": "#3a4449", - "peekViewResult.fileForeground": "#8b9798", - "peekViewResult.lineForeground": "#8b9798", - "peekViewResult.matchHighlightBackground": "#545f62", - "peekViewResult.selectionBackground": "#3a4449", - "peekViewResult.selectionForeground": "#f2fffc", - "peekViewTitle.background": "#3a4449", - "peekViewTitleDescription.foreground": "#8b9798", - "peekViewTitleLabel.foreground": "#f2fffc", - "pickerGroup.border": "#273136", - "pickerGroup.foreground": "#545f62", - "ports.iconRunningProcessForeground": "#a2e57b", - "problemsErrorIcon.foreground": "#ff6d7e", - "problemsInfoIcon.foreground": "#7cd5f1", - "problemsWarningIcon.foreground": "#ffb270", - "profileBadge.background": "#3a4449", - "profileBadge.foreground": "#b8c4c3", - "progressBar.background": "#3a4449", - "sash.hoverBorder": "#6b7678", - "scrollbar.shadow": "#273136", - "scrollbarSlider.activeBackground": "#f2fffc59", - "scrollbarSlider.background": "#b8c4c326", - "scrollbarSlider.hoverBackground": "#f2fffc26", - "selection.background": "#b8c4c326", - "settings.checkboxBackground": "#3a4449", - "settings.checkboxBorder": "#3a4449", - "settings.checkboxForeground": "#f2fffc", - "settings.dropdownBackground": "#3a4449", - "settings.dropdownBorder": "#3a4449", - "settings.dropdownForeground": "#f2fffc", - "settings.dropdownListBorder": "#8b9798", - "settings.headerForeground": "#ffed72", - "settings.modifiedItemIndicator": "#ffed72", - "settings.numberInputBackground": "#3a4449", - "settings.numberInputBorder": "#3a4449", - "settings.numberInputForeground": "#f2fffc", - "settings.rowHoverBackground": "#6b76780c", - "settings.textInputBackground": "#3a4449", - "settings.textInputBorder": "#3a4449", - "settings.textInputForeground": "#f2fffc", - "sideBar.background": "#1d2528", - "sideBar.border": "#161b1e", - "sideBar.dropBackground": "#1d2528bf", - "sideBar.foreground": "#8b9798", - "sideBarSectionHeader.background": "#1d2528", - "sideBarSectionHeader.foreground": "#6b7678", - "sideBarTitle.foreground": "#545f62", - "statusBar.background": "#1d2528", - "statusBar.border": "#161b1e", - "statusBar.debuggingBackground": "#6b7678", - "statusBar.debuggingBorder": "#1d2528", - "statusBar.debuggingForeground": "#f2fffc", - "statusBar.focusBorder": "#3a4449", - "statusBar.foreground": "#6b7678", - "statusBar.noFolderBackground": "#1d2528", - "statusBar.noFolderBorder": "#161b1e", - "statusBar.noFolderForeground": "#6b7678", - "statusBarItem.activeBackground": "#273136", - "statusBarItem.errorBackground": "#273136", - "statusBarItem.errorForeground": "#ff6d7e", - "statusBarItem.focusBorder": "#6b7678", - "statusBarItem.hoverBackground": "#f2fffc0c", - "statusBarItem.prominentBackground": "#3a4449", - "statusBarItem.prominentHoverBackground": "#3a4449", - "statusBarItem.remoteBackground": "#1d2528", - "statusBarItem.remoteForeground": "#a2e57b", - "statusBarItem.warningBackground": "#273136", - "statusBarItem.warningForeground": "#ffb270", - "symbolIcon.arrayForeground": "#ff6d7e", - "symbolIcon.booleanForeground": "#ff6d7e", - "symbolIcon.classForeground": "#7cd5f1", - "symbolIcon.colorForeground": "#baa0f8", - "symbolIcon.constantForeground": "#baa0f8", - "symbolIcon.constructorForeground": "#a2e57b", - "symbolIcon.enumeratorForeground": "#ffb270", - "symbolIcon.enumeratorMemberForeground": "#ffb270", - "symbolIcon.eventForeground": "#ffb270", - "symbolIcon.fieldForeground": "#ffb270", - "symbolIcon.fileForeground": "#b8c4c3", - "symbolIcon.folderForeground": "#b8c4c3", - "symbolIcon.functionForeground": "#a2e57b", - "symbolIcon.interfaceForeground": "#7cd5f1", - "symbolIcon.keyForeground": "#ffb270", - "symbolIcon.keywordForeground": "#ff6d7e", - "symbolIcon.methodForeground": "#a2e57b", - "symbolIcon.moduleForeground": "#7cd5f1", - "symbolIcon.namespaceForeground": "#7cd5f1", - "symbolIcon.nullForeground": "#baa0f8", - "symbolIcon.numberForeground": "#baa0f8", - "symbolIcon.objectForeground": "#7cd5f1", - "symbolIcon.operatorForeground": "#ff6d7e", - "symbolIcon.packageForeground": "#baa0f8", - "symbolIcon.propertyForeground": "#ffb270", - "symbolIcon.referenceForeground": "#baa0f8", - "symbolIcon.snippetForeground": "#a2e57b", - "symbolIcon.stringForeground": "#ffed72", - "symbolIcon.structForeground": "#ff6d7e", - "symbolIcon.textForeground": "#ffed72", - "symbolIcon.typeParameterForeground": "#ffb270", - "symbolIcon.unitForeground": "#baa0f8", - "symbolIcon.variableForeground": "#7cd5f1", - "tab.activeBackground": "#273136", - "tab.activeBorder": "#ffed72", - "tab.activeForeground": "#ffed72", - "tab.activeModifiedBorder": "#545f62", - "tab.border": "#273136", - "tab.hoverBackground": "#273136", - "tab.hoverBorder": "#545f62", - "tab.hoverForeground": "#f2fffc", - "tab.inactiveBackground": "#273136", - "tab.inactiveForeground": "#8b9798", - "tab.inactiveModifiedBorder": "#545f62", - "tab.lastPinnedBorder": "#545f62", - "tab.unfocusedActiveBorder": "#8b9798", - "tab.unfocusedActiveForeground": "#b8c4c3", - "tab.unfocusedActiveModifiedBorder": "#3a4449", - "tab.unfocusedHoverBackground": "#273136", - "tab.unfocusedHoverBorder": "#273136", - "tab.unfocusedHoverForeground": "#b8c4c3", - "tab.unfocusedInactiveForeground": "#8b9798", - "tab.unfocusedInactiveModifiedBorder": "#3a4449", - "terminal.ansiBlack": "#3a4449", - "terminal.ansiBlue": "#ffb270", - "terminal.ansiBrightBlack": "#6b7678", - "terminal.ansiBrightBlue": "#ffb270", - "terminal.ansiBrightCyan": "#7cd5f1", - "terminal.ansiBrightGreen": "#a2e57b", - "terminal.ansiBrightMagenta": "#baa0f8", - "terminal.ansiBrightRed": "#ff6d7e", - "terminal.ansiBrightWhite": "#f2fffc", - "terminal.ansiBrightYellow": "#ffed72", - "terminal.ansiCyan": "#7cd5f1", - "terminal.ansiGreen": "#a2e57b", - "terminal.ansiMagenta": "#baa0f8", - "terminal.ansiRed": "#ff6d7e", - "terminal.ansiWhite": "#f2fffc", - "terminal.ansiYellow": "#ffed72", - "terminal.background": "#3a4449", - "terminal.foreground": "#f2fffc", - "terminal.selectionBackground": "#f2fffc26", - "terminalCommandDecoration.defaultBackground": "#f2fffc", - "terminalCommandDecoration.errorBackground": "#ff6d7e", - "terminalCommandDecoration.successBackground": "#a2e57b", - "terminalCursor.background": "#00000000", - "terminalCursor.foreground": "#f2fffc", - "testing.iconErrored": "#ff6d7e", - "testing.iconFailed": "#ff6d7e", - "testing.iconPassed": "#a2e57b", - "testing.iconQueued": "#f2fffc", - "testing.iconSkipped": "#ffb270", - "testing.iconUnset": "#8b9798", - "testing.message.error.decorationForeground": "#ff6d7e", - "testing.message.error.lineBackground": "#ff6d7e19", - "testing.message.info.decorationForeground": "#f2fffc", - "testing.message.info.lineBackground": "#f2fffc19", - "testing.runAction": "#ffed72", - "textBlockQuote.background": "#3a4449", - "textBlockQuote.border": "#3a4449", - "textCodeBlock.background": "#3a4449", - "textLink.activeForeground": "#f2fffc", - "textLink.foreground": "#ffed72", - "textPreformat.foreground": "#f2fffc", - "textSeparator.foreground": "#6b7678", - "titleBar.activeBackground": "#1d2528", - "titleBar.activeForeground": "#8b9798", - "titleBar.border": "#161b1e", - "titleBar.inactiveBackground": "#1d2528", - "titleBar.inactiveForeground": "#545f62", - "walkThrough.embeddedEditorBackground": "#1d2528", - "welcomePage.progress.background": "#6b7678", - "welcomePage.progress.foreground": "#8b9798", - "welcomePage.tileBackground": "#3a4449", - "welcomePage.tileHoverBackground": "#545f62", - "widget.shadow": "#161b1e", - //"actionBar.toggledBackground": "#545f62", - //"activityBar.activeBorder": "#b8c4c3", - //"activityBar.dropBorder": "#b8c4c3", - //"breadcrumb.background": "#273136", - //"breadcrumbPicker.background": "#3a4449", - //"chat.requestBorder": "#ffffff1a", - //"chat.slashCommandBackground": "#ffed72", - //"chat.slashCommandForeground": "#273136", - //"checkbox.selectBackground": "#3a4449", - //"checkbox.selectBorder": "#8b9798", - //"commandCenter.activeBorder": "#8b97984d", - //"commandCenter.debuggingBackground": "#6b767842", - //"commandCenter.inactiveBorder": "#545f6240", - //"commandCenter.inactiveForeground": "#545f62", - //"commentsView.resolvedIcon": "#cccccc80", - //"commentsView.unresolvedIcon": "#6b7678", - //"diffEditor.move.border": "#8b8b8b9c", - //"diffEditor.moveActive.border": "#ffa500", - //"diffEditor.unchangedCodeBackground": "#74747429", - //"diffEditor.unchangedRegionBackground": "#3e3e3e", - //"diffEditor.unchangedRegionForeground": "#a3a2a2", - //"disabledForeground": "#cccccc80", - //"editor.snippetFinalTabstopHighlightBorder": "#525252", - //"editor.snippetTabstopHighlightBackground": "#7c7c7c4d", - //"editor.symbolHighlightBackground": "#f2fffc26", - //"editor.wordHighlightTextBackground": "#f2fffc26", - //"editor.wordHighlightTextBorder": "#00000000", - //"editorActiveLineNumber.foreground": "#c6c6c6", - //"editorBracketHighlight.unexpectedBracket.foreground": "#ff1212cc", - //"editorBracketPairGuide.activeBackground1": "#00000000", - //"editorBracketPairGuide.activeBackground2": "#00000000", - //"editorBracketPairGuide.activeBackground3": "#00000000", - //"editorBracketPairGuide.activeBackground4": "#00000000", - //"editorBracketPairGuide.activeBackground5": "#00000000", - //"editorBracketPairGuide.activeBackground6": "#00000000", - //"editorBracketPairGuide.background1": "#00000000", - //"editorBracketPairGuide.background2": "#00000000", - //"editorBracketPairGuide.background3": "#00000000", - //"editorBracketPairGuide.background4": "#00000000", - //"editorBracketPairGuide.background5": "#00000000", - //"editorBracketPairGuide.background6": "#00000000", - //"editorCommentsWidget.rangeActiveBackground": "#6b76781a", - //"editorCommentsWidget.rangeBackground": "#6b76781a", - //"editorCommentsWidget.resolvedBorder": "#cccccc80", - //"editorCommentsWidget.unresolvedBorder": "#6b7678", - //"editorGhostText.foreground": "#ffffff56", - //"editorGroup.dropIntoPromptBackground": "#3a4449", - //"editorGroup.dropIntoPromptForeground": "#f2fffc", - //"editorGutter.commentGlyphForeground": "#f2fffc", - //"editorGutter.commentRangeForeground": "#2d373c", - //"editorGutter.commentUnresolvedGlyphForeground": "#f2fffc", - //"editorHoverWidget.foreground": "#f2fffc", - //"editorHoverWidget.highlightForeground": "#f2fffc", - //"editorHoverWidget.statusBarBackground": "#465258", - //"editorIndentGuide.activeBackground": "#545f62", - //"editorIndentGuide.activeBackground1": "#545f62", - //"editorIndentGuide.activeBackground2": "#00000000", - //"editorIndentGuide.activeBackground3": "#00000000", - //"editorIndentGuide.activeBackground4": "#00000000", - //"editorIndentGuide.activeBackground5": "#00000000", - //"editorIndentGuide.activeBackground6": "#00000000", - //"editorIndentGuide.background1": "#3a4449", - //"editorIndentGuide.background2": "#00000000", - //"editorIndentGuide.background3": "#00000000", - //"editorIndentGuide.background4": "#00000000", - //"editorIndentGuide.background5": "#00000000", - //"editorIndentGuide.background6": "#00000000", - //"editorInlayHint.background": "#ffed721a", - //"editorInlayHint.foreground": "#969696", - //"editorInlayHint.parameterBackground": "#ffed721a", - //"editorInlayHint.parameterForeground": "#969696", - //"editorInlayHint.typeBackground": "#ffed721a", - //"editorInlayHint.typeForeground": "#969696", - //"editorMarkerNavigationError.headerBackground": "#ff6d7e1a", - //"editorMarkerNavigationInfo.headerBackground": "#7cd5f11a", - //"editorMarkerNavigationWarning.headerBackground": "#ffb2701a", - //"editorOverviewRuler.bracketMatchForeground": "#a0a0a0", - //"editorOverviewRuler.commentForeground": "#2d373c", - //"editorOverviewRuler.commentUnresolvedForeground": "#2d373c", - //"editorOverviewRuler.commonContentForeground": "#f2fffc26", - //"editorOverviewRuler.wordHighlightTextForeground": "#f2fffc26", - //"editorStickyScroll.background": "#273136", - //"editorStickyScrollHover.background": "#2a2d2e", - //"editorSuggestWidget.focusHighlightForeground": "#f2fffc", - //"editorSuggestWidget.selectedForeground": "#ffed72", - //"editorSuggestWidgetStatus.foreground": "#b8c4c380", - //"editorUnicodeHighlight.background": "#bd9b0326", - //"editorUnicodeHighlight.border": "#bd9b03", - //"editorWidget.foreground": "#f2fffc", - //"extensionBadge.remoteBackground": "#ffed72", - //"extensionButton.background": "#3a4449", - //"extensionButton.foreground": "#b8c4c3", - //"extensionButton.hoverBackground": "#545f62", - //"extensionButton.separator": "#273136", - //"gitDecoration.renamedResourceForeground": "#73c991", - //"gitDecoration.submoduleResourceForeground": "#8db9e2", - //"gitlens.closedAutolinkedIssueIconColor": "#a371f7", - //"gitlens.closedPullRequestIconColor": "#f85149", - //"gitlens.decorations.addedForegroundColor": "#a2e57b", - //"gitlens.decorations.branchAheadForegroundColor": "#35b15e", - //"gitlens.decorations.branchBehindForegroundColor": "#b15e35", - //"gitlens.decorations.branchDivergedForegroundColor": "#d8af1b", - //"gitlens.decorations.branchMissingUpstreamForegroundColor": "#c74e39", - //"gitlens.decorations.branchUnpublishedForegroundColor": "#35b15e", - //"gitlens.decorations.branchUpToDateForegroundColor": "#8b9798", - //"gitlens.decorations.copiedForegroundColor": "#73c991", - //"gitlens.decorations.deletedForegroundColor": "#ff6d7e", - //"gitlens.decorations.ignoredForegroundColor": "#545f62", - //"gitlens.decorations.modifiedForegroundColor": "#ffed72", - //"gitlens.decorations.renamedForegroundColor": "#73c991", - //"gitlens.decorations.untrackedForegroundColor": "#b8c4c3", - //"gitlens.decorations.workspaceCurrentForegroundColor": "#35b15e", - //"gitlens.decorations.workspaceRepoMissingForegroundColor": "#909090", - //"gitlens.decorations.workspaceRepoOpenForegroundColor": "#35b15e", - //"gitlens.decorations.worktreeHasUncommittedChangesForegroundColor": "#e2c08d", - //"gitlens.decorations.worktreeMissingForegroundColor": "#c74e39", - //"gitlens.graphChangesColumnAddedColor": "#347d39", - //"gitlens.graphChangesColumnDeletedColor": "#c93c37", - //"gitlens.graphLane10Color": "#2ece9d", - //"gitlens.graphLane1Color": "#15a0bf", - //"gitlens.graphLane2Color": "#0669f7", - //"gitlens.graphLane3Color": "#8e00c2", - //"gitlens.graphLane4Color": "#c517b6", - //"gitlens.graphLane5Color": "#d90171", - //"gitlens.graphLane6Color": "#cd0101", - //"gitlens.graphLane7Color": "#f25d2e", - //"gitlens.graphLane8Color": "#f2ca33", - //"gitlens.graphLane9Color": "#7bd938", - //"gitlens.graphMinimapMarkerHeadColor": "#05e617", - //"gitlens.graphMinimapMarkerHighlightsColor": "#fbff0a", - //"gitlens.graphMinimapMarkerLocalBranchesColor": "#3087cf", - //"gitlens.graphMinimapMarkerRemoteBranchesColor": "#2b5e88", - //"gitlens.graphMinimapMarkerStashesColor": "#b34db3", - //"gitlens.graphMinimapMarkerTagsColor": "#6b562e", - //"gitlens.graphMinimapMarkerUpstreamColor": "#09ae17", - //"gitlens.graphScrollMarkerHeadColor": "#05e617", - //"gitlens.graphScrollMarkerHighlightsColor": "#fbff0a", - //"gitlens.graphScrollMarkerLocalBranchesColor": "#3087cf", - //"gitlens.graphScrollMarkerRemoteBranchesColor": "#2b5e88", - //"gitlens.graphScrollMarkerStashesColor": "#b34db3", - //"gitlens.graphScrollMarkerTagsColor": "#6b562e", - //"gitlens.graphScrollMarkerUpstreamColor": "#09ae17", - //"gitlens.gutterBackgroundColor": "#ffffff13", - //"gitlens.gutterForegroundColor": "#bebebe", - //"gitlens.gutterUncommittedForegroundColor": "#00bcf299", - //"gitlens.lineHighlightBackgroundColor": "#00bcf233", - //"gitlens.lineHighlightOverviewRulerColor": "#00bcf299", - //"gitlens.mergedPullRequestIconColor": "#a371f7", - //"gitlens.openAutolinkedIssueIconColor": "#3fb950", - //"gitlens.openPullRequestIconColor": "#3fb950", - //"gitlens.trailingLineBackgroundColor": "#00000000", - //"gitlens.trailingLineForegroundColor": "#99999959", - //"gitlens.unpublishedChangesIconColor": "#35b15e", - //"gitlens.unpublishedCommitIconColor": "#35b15e", - //"gitlens.unpulledChangesIconColor": "#b15e35", - //"inlineChat.background": "#3a4449", - //"inlineChat.border": "#3a4449", - //"inlineChat.regionHighlight": "#f2fffc0c", - //"inlineChat.shadow": "#161b1e", - //"inlineChatDiff.inserted": "#a2e57b0c", - //"inlineChatDiff.removed": "#ff6d7e0c", - //"inlineChatInput.background": "#3a4449", - //"inlineChatInput.border": "#3a4449", - //"inlineChatInput.focusBorder": "#6b7678", - //"inlineChatInput.placeholderForeground": "#6b7678", - //"interactive.activeCodeBorder": "#273136", - //"interactive.inactiveCodeBorder": "#b8c4c30c", - //"issues.closed": "#cb2431", - //"issues.newIssueDecoration": "#ffffff48", - //"issues.open": "#3fb950", - //"keybindingTable.headerBackground": "#f2fffc0a", - //"keybindingTable.rowsBackground": "#f2fffc0a", - //"list.deemphasizedForeground": "#8c8c8c", - //"list.filterMatchBackground": "#f2fffc26", - //"list.filterMatchBorder": "#00000000", - //"list.focusHighlightForeground": "#f2fffc", - //"list.focusOutline": "#6b7678", - //"listFilterWidget.shadow": "#161b1e", - //"menu.selectionBackground": "#f2fffc0c", - //"menubar.selectionBackground": "#5a5d5e50", - //"mergeEditor.changeBase.background": "#4b1818", - //"mergeEditor.changeBase.word.background": "#6f1313", - //"mergeEditor.conflict.input1.background": "#ff6d7e0f", - //"mergeEditor.conflict.input2.background": "#a2e57b0f", - //"mergeEditor.conflictingLines.background": "#ffea0047", - //"minimap.foregroundOpacity": "#000000", - //"minimap.infoHighlight": "#7cd5f1", - //"minimapSlider.activeBackground": "#f2fffc2d", - //"minimapSlider.background": "#b8c4c313", - //"minimapSlider.hoverBackground": "#f2fffc13", - //"notebook.focusedCellBorder": "#6b7678", - //"notebook.inactiveFocusedCellBorder": "#3a4449", - //"notebook.selectedCellBackground": "#b8c4c30c", - //"notebook.selectedCellBorder": "#3a4449", - //"notebook.symbolHighlightBackground": "#ffffff0b", - //"notebookEditorOverviewRuler.runningCellForeground": "#a2e57b", - //"notebookScrollbarSlider.activeBackground": "#f2fffc59", - //"notebookScrollbarSlider.background": "#b8c4c326", - //"notebookScrollbarSlider.hoverBackground": "#f2fffc26", - //"panel.dropBorder": "#ffed72", - //"panelInput.border": "#3a4449", - //"panelSection.border": "#273136", - //"panelSection.dropBackground": "#1d2528bf", - //"panelSectionHeader.background": "#80808033", - //"peekViewEditorStickyScroll.background": "#3a4449", - //"pullRequests.closed": "#cb2431", - //"pullRequests.draft": "#6e7681", - //"pullRequests.merged": "#8957e5", - //"pullRequests.notification": "#7cd5f1", - //"pullRequests.open": "#3fb950", - //"quickInput.background": "#3a4449", - //"quickInput.foreground": "#f2fffc", - //"quickInputList.focusBackground": "#f2fffc0c", - //"quickInputList.focusForeground": "#ffed72", - //"quickInputTitle.background": "#ffffff1b", - //"scm.providerBorder": "#454545", - //"search.resultsInfoForeground": "#f2fffca6", - //"searchEditor.findMatchBackground": "#f2fffc19", - //"searchEditor.findMatchBorder": "#00000000", - //"searchEditor.textInputBorder": "#3a4449", - //"settings.focusedRowBackground": "#f2fffc07", - //"settings.focusedRowBorder": "#6b7678", - //"settings.headerBorder": "#273136", - //"settings.sashBorder": "#273136", - //"settings.settingsHeaderHoverForeground": "#ffed72b3", - //"sideBySideEditor.horizontalBorder": "#1d2528", - //"sideBySideEditor.verticalBorder": "#1d2528", - //"simpleFindWidget.sashBorder": "#454545", - //"statusBarItem.compactHoverBackground": "#ffffff33", - //"statusBarItem.errorHoverBackground": "#f2fffc0c", - //"statusBarItem.errorHoverForeground": "#6b7678", - //"statusBarItem.hoverForeground": "#6b7678", - //"statusBarItem.offlineBackground": "#6c1717", - //"statusBarItem.offlineForeground": "#a2e57b", - //"statusBarItem.offlineHoverBackground": "#f2fffc0c", - //"statusBarItem.offlineHoverForeground": "#6b7678", - //"statusBarItem.prominentForeground": "#6b7678", - //"statusBarItem.prominentHoverForeground": "#6b7678", - //"statusBarItem.remoteHoverBackground": "#f2fffc0c", - //"statusBarItem.remoteHoverForeground": "#6b7678", - //"statusBarItem.warningHoverBackground": "#f2fffc0c", - //"statusBarItem.warningHoverForeground": "#6b7678", - //"tab.unfocusedActiveBackground": "#273136", - //"tab.unfocusedInactiveBackground": "#273136", - //"terminal.border": "#273136", - //"terminal.dropBackground": "#1d2528bf", - //"terminal.findMatchBackground": "#f2fffc26", - //"terminal.findMatchHighlightBackground": "#f2fffc26", - //"terminal.hoverHighlightBackground": "#f2fffc06", - //"terminal.inactiveSelectionBackground": "#f2fffc13", - //"terminal.tab.activeBorder": "#ffed72", - //"terminalOverviewRuler.cursorForeground": "#a0a0a0cc", - //"terminalOverviewRuler.findMatchForeground": "#f2fffc26", - //"testing.peekBorder": "#ff6d7e", - //"testing.peekHeaderBackground": "#ff6d7e1a", - //"toolbar.activeBackground": "#63666750", - //"toolbar.hoverBackground": "#5a5d5e50", - //"tree.inactiveIndentGuidesStroke": "#58585866", - //"tree.indentGuidesStroke": "#585858", - //"tree.tableColumnsBorder": "#cccccc20", - //"tree.tableOddRowsBackground": "#f2fffc0a", - //"walkthrough.stepTitle.foreground": "#ffffff", - //"welcomePage.tileBorder": "#ffffff1a", - //"activityBar.activeBackground": null, - //"button.border": null, - //"contrastActiveBorder": null, - //"contrastBorder": null, - //"debugToolBar.border": null, - //"diffEditor.border": null, - //"diffEditor.insertedTextBorder": null, - //"diffEditor.removedTextBorder": null, - //"editor.selectionForeground": null, - //"editor.snippetFinalTabstopHighlightBackground": null, - //"editor.snippetTabstopHighlightBorder": null, - //"editor.symbolHighlightBorder": null, - //"editorGhostText.background": null, - //"editorGhostText.border": null, - //"editorGroup.dropIntoPromptBorder": null, - //"editorGroupHeader.border": null, - //"editorLineNumber.dimmedForeground": null, - //"editorOverviewRuler.background": null, - //"editorSuggestWidget.selectedIconForeground": null, - //"editorUnnecessaryCode.border": null, - //"editorWidget.resizeBorder": null, - //"list.activeSelectionIconForeground": null, - //"list.focusAndSelectionOutline": null, - //"list.inactiveFocusOutline": null, - //"list.inactiveSelectionIconForeground": null, - //"menu.selectionBorder": null, - //"menubar.selectionBorder": null, - //"minimap.background": null, - //"notebook.cellHoverBackground": null, - //"notebook.focusedCellBackground": null, - //"notebook.inactiveSelectedCellBorder": null, - //"notebook.outputContainerBackgroundColor": null, - //"notebook.outputContainerBorderColor": null, - //"panelSectionHeader.border": null, - //"panelSectionHeader.foreground": null, - //"peekViewEditor.matchHighlightBorder": null, - //"quickInput.list.focusBackground": null, - //"quickInputList.focusIconForeground": null, - //"sideBarSectionHeader.border": null, - //"tab.activeBorderTop": null, - //"tab.unfocusedActiveBorderTop": null, - //"terminal.findMatchBorder": null, - //"terminal.findMatchHighlightBorder": null, - //"terminal.selectionForeground": null, - //"toolbar.hoverOutline": null, - //"welcomePage.background": null, - //"widget.border": null, - //"window.activeBorder": null, - //"window.inactiveBorder": null - }, - "tokenColors": [ - { - "scope": [ - "comment", - "comment keyword", - "comment markup.underline.link", - "comment string", - "comment punctuation.definition", - "comment punctuation", - "comment text" - ], - "settings": { - "foreground": "#6B7678", - "fontStyle": "italic" - } - }, - { - "scope": "comment storage.type", - "settings": { - "foreground": "#6B7678" - } - }, - { - "scope": "comment entity.name.type", - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": [ - "comment variable", - "comment variable.other" - ], - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": "comment keyword.codetag.notation", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "comment.git-status.header.remote", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "comment.git-status.header.local", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "comment.other.git-status.head", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": [ - "string.quoted.docstring", - "string.quoted.docstring punctuation.definition" - ], - "settings": { - "foreground": "#6B7678" - } - }, - { - "scope": "constant", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "constant.other.caps", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.placeholder.c", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": "constant.other.property", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.citation.latex", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.color", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.character-class.escape", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.key", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.other.symbol", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": "constant.other.elm", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "constant.numeric", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.language", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.character.escape", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "constant.numeric.line-number.find-in-files", - "settings": { - "foreground": "#545F62" - } - }, - { - "scope": "constant.numeric.line-number.match.find-in-files", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": "entity.name.section", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": [ - "entity.name.function", - "entity.name.function.templated", - "entity.name.function.member.static" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": [ - "entity.name.type.class.templated", - "entity.name.type.class.generic", - "entity.name.type.namespace" - ], - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.name.label", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "entity.name.function.preprocessor", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.name", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "entity.name.class", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.name.constant", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "entity.name.namespace", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "entity.other.inherited-class", - "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": "entity.name.function", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": [ - "entity.name.tag", - "entity.name.tag.js.jsx support.class.component.js.jsx", - "entity.name.tag support.class.component", - "source.vue support.class.component" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "entity.name.function.operator", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "meta.brackets entity.name.function.operator", - "punctuation.separator entity.name.function.operator" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "entity.name.type", - "entity.name.type.class.reference", - "entity.name.type.class.value" - ], - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.other.attribute-name", - "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": [ - "entity.other.attribute-name.class.css", - "entity.other.attribute-name.parent-selector-suffix.css", - "entity.other.attribute-name.parent-selector-suffix.css punctuation.definition.entity.css", - "entity.other.attribute-name.css", - "entity.other.animation-name.css" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "entity.other.attribute-name.id.css", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": [ - "entity.other.attribute-name.pseudo-class.css", - "entity.other.pseudo-class.css", - "entity.other.pseudo-element.css" - ], - "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": [ - "entity.name.function", - "support.function" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "entity.other.git-status.hex", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "entity.other.jinja2.delimiter", - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "entity.name.operator.custom-literal", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "entity.name.operator.custom-literal.string", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": "entity.name.operator.custom-literal.number", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "entity.name.type.rust", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "entity.name.lifetime.rust", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "invalid", - "settings": { - "foreground": "#FF6D7E", - "fontStyle": "italic underline" - } - }, - { - "scope": "invalid.deprecated", - "settings": { - "foreground": "#FFB270", - "fontStyle": "italic underline" - } - }, - { - "scope": "keyword", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "keyword.control", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "keyword.control.directive", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "keyword.operator", - "keyword.operator.member", - "keyword.operator.new" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "keyword.other.substitution", - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "keyword.other.template.begin", - "keyword.other.template.end" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "keyword.operator.heading.restructuredtext", - "keyword.operator.table.row.restructuredtext keyword.operator.table.data.restructuredtext" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "keyword.other.parenthesis.elm", - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "keyword.other.fn.rust", - "keyword.other.rust", - "keyword.other.unsafe.rust", - "keyword.other.where.rust" - ], - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": [ - "keyword.control.rust", - "keyword.operator.misc.rust" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "keyword.declaration.class.ruby", - "keyword.declaration.function.ruby", - "keyword.declaration.namespace.ruby" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "markup.italic", - "settings": { - "fontStyle": "italic" - } - }, - { - "scope": "markup.bold", - "settings": { - "fontStyle": "bold" - } - }, - { - "scope": "markup.heading", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": "markup.raw", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": "markup.underline", - "settings": { - "fontStyle": "underline" - } - }, - { - "scope": "markup.underline.link", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": [ - "markup.inserted", - "markup.inserted punctuation.definition.inserted" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": [ - "markup.deleted", - "markup.deleted punctuation.definition.deleted" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "markup.changed", - "markup.changed punctuation.definition.changed" - ], - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": [ - "markup.ignored", - "markup.ignored punctuation.definition.ignored" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "markup.untracked", - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "markup.quote", - "settings": { - "fontStyle": "italic" - } - }, - { - "scope": [ - "meta.brace.round", - "meta.brace.square", - "meta.brace.curly", - "meta.delimiter.comma.js", - "meta.function-call.without-arguments.js", - "meta.function-call.method.without-arguments.js" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "meta.function-call.generic.python", - "support.function.builtin.python" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "meta.function-call.python meta.function-call.arguments.python", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "meta.instance.constructor", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": [ - "meta.attribute-with-value.class string", - "meta.attribute.class.html string" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": [ - "meta.attribute-with-value.id string", - "meta.attribute.id.html string" - ], - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": "source.json meta.mapping.key string", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "source.yaml meta.mapping.key string", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "meta.object.member", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "meta.property-list.css variable.other", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": [ - "entity.name.constant.preprocessor", - "meta.preprocessor" - ], - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "meta.diff.git-diff.header", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": "meta.type_params.rust", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": [ - "meta.attribute.rust", - "meta.annotation.rust", - "variable.language.rust", - "variable.annotation.rust", - "meta.annotation.rust string", - "meta.annotation.rust keyword", - "meta.annotation.rust keyword.operator", - "meta.attribute.rust string" - ], - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": "punctuation", - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "punctuation.definition.tag", - "punctuation.definition.tag source", - "punctuation.definition.group.begin.ruby", - "punctuation.definition.group.end.ruby", - "punctuation.definition.group.begin.css", - "punctuation.definition.group.end.css", - "punctuation.definition.string.end.html source.css" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "punctuation.definition.group", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "punctuation.definition.comment", - "settings": { - "foreground": "#6B7678" - } - }, - { - "scope": [ - "punctuation.definition.variable", - "punctuation.definition.keyword.scss", - "punctuation.definition.entity.css" - ], - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": [ - "punctuation.section.embedded", - "punctuation.section.embedded entity.name.tag", - "punctuation.section.embedded constant.other", - "punctuation.section.embedded source", - "punctuation.section.embedded.begin" - ], - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": [ - "punctuation.template-string.element.begin", - "punctuation.template-string.element.end", - "punctuation.definition.string.template.begin", - "punctuation.definition.string.template.end", - "string.quoted.template punctuation.definition.string.begin", - "string.quoted.template punctuation.definition.string.end", - "punctuation.definition.template-expression.begin", - "punctuation.definition.template-expression.end" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "meta.paragraph.markdown meta.dummy.line-break", - "meta.paragraph.markdown meta.hard-line-break.markdown" - ], - "settings": { - "background": "#BAA0F8" - } - }, - { - "scope": "markup.underline.link punctuation", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "region.redish", - "settings": { - "foreground": "#FF6D7E", - "background": "#FF6D7E59" - } - }, - { - "scope": "region.orangish", - "settings": { - "foreground": "#FFB270", - "background": "#FFB27059" - } - }, - { - "scope": "region.yellowish", - "settings": { - "foreground": "#FFED72", - "background": "#FFED7259" - } - }, - { - "scope": "region.greenish", - "settings": { - "foreground": "#A2E57B", - "background": "#A2E57B59" - } - }, - { - "scope": "region.bluish", - "settings": { - "foreground": "#7CD5F1", - "background": "#7CD5F159" - } - }, - { - "scope": "region.purplish", - "settings": { - "foreground": "#BAA0F8", - "background": "#BAA0F859" - } - }, - { - "scope": "region.pinkish", - "settings": { - "foreground": "#FF6D7E", - "background": "#FF6D7E59" - } - }, - { - "scope": "region.whitish", - "settings": { - "foreground": "#FFFFFF" - } - }, - { - "scope": "source", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": [ - "source.scss", - "source.sass" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "source.sass variable.other", - "source.sass variable.sass", - "source.scss variable.other", - "source.scss variable.scss", - "source.scss variable.sass", - "source.css variable.other", - "source.css variable.scss", - "source.less variable.other", - "source.less variable.other.less", - "source.less variable.declaration.less" - ], - "settings": { - "foreground": "#FFB270", - "fontStyle": "italic" - } - }, - { - "scope": "source.git-show.commit.sha", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": [ - "source.git-show.author", - "source.git-show.date", - "source.git-diff.command", - "source.git-diff.command meta.diff.git-diff.header.from-file", - "source.git-diff.command meta.diff.git-diff.header.to-file" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "source.git-show meta.diff.git-diff.header.extended.index.from-sha", - "source.git-show meta.diff.git-diff.header.extended.index.to-sha" - ], - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "source.git-show meta.diff.range.unified", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": [ - "source.git-show meta.diff.header.from-file", - "source.git-show meta.diff.header.to-file" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "storage", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "storage.type", - "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": "storage.type.extends", - "settings": { - "foreground": "#FF6D7E", - "fontStyle": "normal" - } - }, - { - "scope": "storage.type.function.arrow", - "settings": { - "foreground": "#FF6D7E", - "fontStyle": "normal" - } - }, - { - "scope": [ - "storage.modifier", - "storage.type.modifier" - ], - "settings": { - "foreground": "#FF6D7E", - "fontStyle": "italic" - } - }, - { - "scope": "storage.class.restructuredtext.ref", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": [ - "storage.modifier.visibility.rust", - "storage.modifier.lifetime.rust" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "storage.modifier.const.rust", - "storage.modifier.dyn.rust", - "storage.modifier.mut.rust", - "storage.modifier.static.rust", - "storage.type.rust", - "storage.type.core.rust", - "storage.class.std.rust" - ], - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": [ - "storage.type.rust", - "storage.modifier.const.rust", - "storage.modifier.dyn.rust", - "storage.modifier.mut.rust", - "storage.modifier.static.rust", - "keyword.other.rust", - "keyword.other.where.rust" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "string", - "settings": { - "foreground": "#FFED72" - } - }, - { - "scope": "string.unquoted.label", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "string source", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": [ - "string source punctuation.section.embedded", - "string punctuation.definition.string source" - ], - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "string.other.link.title", - "string.other.link.description" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "string.other.link.description.title", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": [ - "string.regexp punctuation.definition.string.begin", - "string.regexp punctuation.definition.string.end" - ], - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": [ - "string.other.ref", - "string.other.restructuredtext.ref" - ], - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "string.other.git-status.help.key", - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": "string.other.git-status.remote", - "settings": { - "foreground": "#FF6D7E" - } - }, - { - "scope": "support.constant", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "support.constant.handlebars", - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": "support.type.vendor-prefix.css", - "settings": { - "foreground": "#B8C4C3" - } - }, - { - "scope": "support.function", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "support.function.delimiter.elm", - "settings": { - "foreground": "#8B9798" - } - }, - { - "scope": [ - "support.type", - "entity.name.type.object.console" - ], - "settings": { - "foreground": "#7CD5F1", - "fontStyle": "italic" - } - }, - { - "scope": "support.variable", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "support.type.property-name", - "settings": { - "foreground": "#F2FFFC", - "fontStyle": "normal" - } - }, - { - "scope": "support.class", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "support.constant.core.rust", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "text", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "text.find-in-files", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": [ - "variable", - "variable.other" - ], - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": [ - "variable.parameter", - "parameters variable.function" - ], - "settings": { - "foreground": "#FFB270", - "fontStyle": "italic" - } - }, - { - "scope": [ - "variable.language", - "variable.parameter.function.language.special.self.python", - "variable.parameter.function.language.special.cls.python" - ], - "settings": { - "foreground": "#B8C4C3", - "fontStyle": "italic" - } - }, - { - "scope": "variable.language.arguments", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "variable.other.class", - "settings": { - "foreground": "#7CD5F1" - } - }, - { - "scope": "variable.other.constant", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "variable.other.readwrite", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "variable.other.member", - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "variable.other.enummember", - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": [ - "variable.other.property", - "variable.other.property.static", - "variable.other.event" - ], - "settings": { - "foreground": "#F2FFFC" - } - }, - { - "scope": "variable.function", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "variable.other.substitution", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": [ - "source.ruby variable.other.readwrite.instance.ruby", - "source.ruby variable.other.readwrite.class.ruby" - ], - "settings": { - "foreground": "#BAA0F8" - } - }, - { - "scope": "source.jinja2 variable.other.jinja2.block", - "settings": { - "foreground": "#A2E57B" - } - }, - { - "scope": "source.jinja2 variable.other.jinja2", - "settings": { - "foreground": "#FFB270" - } - }, - { - "scope": [ - "comment", - "keyword", - "storage", - "keyword.control.import", - "keyword.control.default", - "keyword.control.from", - "keyword.operator.new", - "keyword.control.export", - "keyword.control.flow", - "storage.type.class", - "storage.type.function", - "storage.type", - "storage.type.class", - "variable.language", - "variable.language.super", - "variable.language.this", - "meta.class", - "meta.var.expr", - "constant.language.null", - "support.type.primitive", - "entity.name.method.js", - "entity.other.attribute-name", - "punctuation.definition.comment", - "text.html.basic entity.other.attribute-name.html", - "text.html.basic entity.other.attribute-name", - "tag.decorator.js entity.name.tag.js", - "tag.decorator.js punctuation.definition.tag.js", - "source.js constant.other.object.key.js string.unquoted.label.js" - ], - "settings": { - "fontStyle": "italic" - } - }, - { - "scope": "token.info-token", - "settings": { - "foreground": "#6796E6" - } - }, - { - "scope": "token.warn-token", - "settings": { - "foreground": "#CD9731" - } - }, - { - "scope": "token.error-token", - "settings": { - "foreground": "#F44747" - } - }, - { - "scope": "token.debug-token", - "settings": { - "foreground": "#B267E6" - } - } - ] -} \ No newline at end of file diff --git a/web/src/components/Editor/typesResolve/index.ts b/web/src/components/Editor/typesResolve/index.ts index f9c8a3b556..5b602e4c6d 100644 --- a/web/src/components/Editor/typesResolve/index.ts +++ b/web/src/components/Editor/typesResolve/index.ts @@ -86,9 +86,9 @@ export class AutoImportTypings { */ loadDefaults() { this.addExtraLib({ path: "globals.d.ts", content: globalDeclare }); - if (!this.isLoaded("@lafjs/cloud")) { - this.loadDeclaration("@lafjs/cloud"); - } + // if (!this.isLoaded("@lafjs/cloud")) { + // this.loadDeclaration("@lafjs/cloud"); + // } if (!this.isLoaded("globals")) { this.loadDeclaration("globals"); } @@ -138,7 +138,6 @@ export class AutoImportTypings { const rets = r.data || []; for (const lib of rets) { // 修复包的类型入口文件不为 index.d.ts 的情况 - // console.log("lib", lib, "packageName", packageName); if (packageName === lib.packageName && lib.path !== `${packageName}/index.d.ts`) { const _lib = { ...lib }; _lib.path = `${packageName}/index.d.ts`; diff --git a/web/src/pages/app/functions/mods/EditorPanel/index.tsx b/web/src/pages/app/functions/mods/EditorPanel/index.tsx index 8425340462..0fde641a13 100644 --- a/web/src/pages/app/functions/mods/EditorPanel/index.tsx +++ b/web/src/pages/app/functions/mods/EditorPanel/index.tsx @@ -44,7 +44,6 @@ function EditorPanel() { marginRight: -14, }} path={`/root/laf/runtimes/nodejs/functions/${currentFunction?.name}.ts`} - value={functionCache.getCache(currentFunction!._id, currentFunction!.source?.code)} onChange={(value) => { updateFunctionCode(currentFunction, value || ""); functionCache.setCache(currentFunction!._id, value || ""); diff --git a/web/src/pages/app/functions/store.ts b/web/src/pages/app/functions/store.ts index 1b99d5d146..8f1d230cb9 100644 --- a/web/src/pages/app/functions/store.ts +++ b/web/src/pages/app/functions/store.ts @@ -14,6 +14,7 @@ type State = { currentFuncTimeUsage: string; functionCodes: { [key: string]: string }; isFetchButtonClicked: Boolean; + LSPStatus: string; getFunctionUrl: () => string; setCurrentRequestId: (requestId: string | undefined) => void; setCurrentFuncLogs: (logs: string) => void; @@ -23,6 +24,7 @@ type State = { setCurrentFunction: (currentFunction: TFunction | { [key: string]: any }) => void; updateFunctionCode: (current: TFunction | { [key: string]: any }, codes: string) => void; setIsFetchButtonClicked: () => void; + setLSPStatus: (status: string) => void; }; const useFunctionStore = create()( @@ -36,6 +38,7 @@ const useFunctionStore = create()( isFetchButtonClicked: false, currentFuncLogs: "", currentFuncTimeUsage: "", + LSPStatus: "initializing", getFunctionUrl: () => { const currentApp = useGlobalStore.getState().currentApp; @@ -95,6 +98,12 @@ const useFunctionStore = create()( state.currentFuncTimeUsage = timeUsage; }); }, + + setLSPStatus: async (status) => { + set((state) => { + state.LSPStatus = status; + }); + }, })), ), ); diff --git a/web/src/pages/app/mods/StatusBar/LSPBar/index.tsx b/web/src/pages/app/mods/StatusBar/LSPBar/index.tsx new file mode 100644 index 0000000000..5717434143 --- /dev/null +++ b/web/src/pages/app/mods/StatusBar/LSPBar/index.tsx @@ -0,0 +1,47 @@ +import { useMemo } from "react"; +import { Spinner } from "@chakra-ui/react"; + +import { createUrl, createWebSocketAndStartClient } from "@/components/Editor/LanguageClient"; + +import useFunctionStore from "@/pages/app/functions/store"; + +export default function LSPBar() { + const hostname = "scm3dt.100.66.76.85.nip.io"; + const lspPath = "/_/lsp"; + const port = 80; + const url = useMemo(() => createUrl(hostname, port, lspPath), [hostname, port, lspPath]); + + const { LSPStatus, setLSPStatus } = useFunctionStore(); + + return ( +
+ {LSPStatus === "ready" && ( +
+ LSP is Running +
+ )} + {LSPStatus === "initializing" && ( +
+ + Initializing TS language features… +
+ )} + {LSPStatus === "closed" && ( +
+ LSP closed +
+ )} + {LSPStatus === "error" && ( +
{ + createWebSocketAndStartClient(url); + setLSPStatus("initializing"); + }} + > + LSP ERROR +
+ )} +
+ ); +} diff --git a/web/src/pages/app/mods/StatusBar/index.tsx b/web/src/pages/app/mods/StatusBar/index.tsx index 043c64e519..69bb0b9377 100644 --- a/web/src/pages/app/mods/StatusBar/index.tsx +++ b/web/src/pages/app/mods/StatusBar/index.tsx @@ -10,6 +10,7 @@ import Panel from "@/components/Panel"; import Icons from "../SideBar/Icons"; import LogsModal from "./LogsModal"; +import LSPBar from "./LSPBar"; import MonitorBar from "./MonitorBar"; import SysSetting from "@/pages/app/setting/SysSetting"; @@ -46,6 +47,7 @@ function StatusBar() { statusConditions={currentApp?.phase} state={currentApp?.state} /> + From 0ca05e92a8d0fa95d98b4af374e7fb4848285f7f Mon Sep 17 00:00:00 2001 From: heheer <1239331448@qq.com> Date: Wed, 25 Oct 2023 14:57:56 +0800 Subject: [PATCH 06/42] feat: add function position cache & create function not restart lsp --- web/src/components/Editor/FunctionEditor.tsx | 20 ++++++---- web/src/components/Editor/LanguageClient.ts | 6 ++- web/src/constants/index.ts | 2 + web/src/hooks/useFunctionCache.ts | 12 ++++++ .../app/functions/mods/EditorPanel/index.tsx | 10 +++-- .../mods/FunctionPanel/CreateModal/index.tsx | 2 +- .../functions/mods/FunctionPanel/index.tsx | 10 ++++- .../app/functions/mods/HeadPanel/index.tsx | 37 +++++++++++-------- 8 files changed, 68 insertions(+), 31 deletions(-) diff --git a/web/src/components/Editor/FunctionEditor.tsx b/web/src/components/Editor/FunctionEditor.tsx index 7b104c4fcd..156c733bf1 100644 --- a/web/src/components/Editor/FunctionEditor.tsx +++ b/web/src/components/Editor/FunctionEditor.tsx @@ -7,8 +7,9 @@ import { RegisteredMemoryFile, registerFileSystemOverlay, } from "vscode/service-override/files"; +import { Position } from "vscode/vscode/src/vs/editor/common/core/position"; -import { COLOR_MODE, Pages } from "@/constants"; +import { COLOR_MODE, Pages, RUNTIMES_PATH } from "@/constants"; import "./theme"; @@ -42,7 +43,7 @@ const updateModel = (path: string, editorRef: any) => { function FunctionEditor(props: { className?: string; style?: CSSProperties; - onChange?: (value: string | undefined) => void; + onChange?: (code: string | undefined, pos: Position | undefined) => void; path: string; height?: string; colorMode?: string; @@ -93,7 +94,7 @@ function FunctionEditor(props: { } }); - lspWebSocket.addEventListener("error", (event) => { + lspWebSocket.addEventListener("error", () => { setLSPStatus("error"); }); @@ -140,10 +141,9 @@ function FunctionEditor(props: { start(); } allFunctionList.forEach(async (item: any) => { - const uri = monaco.Uri.file(`/root/laf/runtimes/nodejs/functions/${item.name}.ts`); - - fileSystemProvider.registerFile(new RegisteredMemoryFile(uri, item.source.code)); + const uri = monaco.Uri.file(`${RUNTIMES_PATH}/${item.name}.ts`); if (!monaco.editor.getModel(uri)) { + fileSystemProvider.registerFile(new RegisteredMemoryFile(uri, item.source.code)); monaco.editor.createModel( functionCache.getCache(item._id, item.source?.code), "typescript", @@ -161,7 +161,7 @@ function FunctionEditor(props: { subscriptionRef.current?.dispose(); if (onChange) { subscriptionRef.current = editorRef.current?.onDidChangeModelContent((event) => { - onChange(editorRef.current?.getValue()); + onChange(editorRef.current?.getValue(), editorRef.current?.getPosition() || undefined); parseImports(editorRef.current?.getValue() || ""); }); } @@ -169,6 +169,12 @@ function FunctionEditor(props: { 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(() => { diff --git a/web/src/components/Editor/LanguageClient.ts b/web/src/components/Editor/LanguageClient.ts index c444aa97f0..25a442276b 100644 --- a/web/src/components/Editor/LanguageClient.ts +++ b/web/src/components/Editor/LanguageClient.ts @@ -8,6 +8,8 @@ import { IReference, ITextFileEditorModel } from "vscode/monaco"; 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 "./TextModel"; @@ -21,7 +23,7 @@ export const createLanguageClient = (transports: MessageTransports): MonacoLangu closed: () => ({ action: CloseAction.DoNotRestart }), }, workspaceFolder: { - uri: Uri.file("/root/laf/runtimes/nodejs/functions"), + uri: Uri.file(RUNTIMES_PATH), name: "Laf Workspace", index: 0, }, @@ -75,7 +77,7 @@ export const performInit = async (vscodeApiInit: boolean) => { userServices: { ...getThemeServiceOverride(), ...getTextmateServiceOverride(), - ...getConfigurationServiceOverride(Uri.file("/root/laf/runtimes/nodejs/functions")), + ...getConfigurationServiceOverride(Uri.file(RUNTIMES_PATH)), }, // debugLogging: true, }); diff --git a/web/src/constants/index.ts b/web/src/constants/index.ts index 4f03060da2..d2f3fbd357 100644 --- a/web/src/constants/index.ts +++ b/web/src/constants/index.ts @@ -98,3 +98,5 @@ export enum APP_SETTING_KEY { DOMAIN = "domain", COMMON = "common", } + +export const RUNTIMES_PATH = "/root/laf/runtimes/nodejs/functions"; diff --git a/web/src/hooks/useFunctionCache.ts b/web/src/hooks/useFunctionCache.ts index cf6dbe1175..c6aadd0033 100644 --- a/web/src/hooks/useFunctionCache.ts +++ b/web/src/hooks/useFunctionCache.ts @@ -1,3 +1,5 @@ +import { RUNTIMES_PATH } from "@/constants"; + function useFunctionCache() { const CACHE_KEY_PREFIX = "$cached_function@"; @@ -13,10 +15,20 @@ function useFunctionCache() { localStorage.removeItem(CACHE_KEY_PREFIX + functionId); } + function getPositionCache(path: string, _default: string = ""): string { + return localStorage.getItem(CACHE_KEY_PREFIX + path) || _default; + } + + function setPositionCache(functionName: string, value: string) { + localStorage.setItem(CACHE_KEY_PREFIX + `${RUNTIMES_PATH}/${functionName}.ts`, value); + } + return { getCache, setCache, removeCache, + getPositionCache, + setPositionCache, }; } diff --git a/web/src/pages/app/functions/mods/EditorPanel/index.tsx b/web/src/pages/app/functions/mods/EditorPanel/index.tsx index 0fde641a13..d2549e7f4d 100644 --- a/web/src/pages/app/functions/mods/EditorPanel/index.tsx +++ b/web/src/pages/app/functions/mods/EditorPanel/index.tsx @@ -4,6 +4,7 @@ import { useColorMode } from "@chakra-ui/react"; import FunctionEditor from "@/components/Editor/FunctionEditor"; import EmptyBox from "@/components/EmptyBox"; import Panel from "@/components/Panel"; +import { RUNTIMES_PATH } from "@/constants"; import { useFunctionListQuery } from "../../service"; import useFunctionStore from "../../store"; @@ -43,10 +44,11 @@ function EditorPanel() { marginLeft: -14, marginRight: -14, }} - path={`/root/laf/runtimes/nodejs/functions/${currentFunction?.name}.ts`} - onChange={(value) => { - updateFunctionCode(currentFunction, value || ""); - functionCache.setCache(currentFunction!._id, value || ""); + path={`${RUNTIMES_PATH}/${currentFunction?.name}.ts`} + onChange={(code, pos) => { + updateFunctionCode(currentFunction, code || ""); + functionCache.setCache(currentFunction!._id, code || ""); + functionCache.setPositionCache(currentFunction!.name, JSON.stringify(pos)); }} fontSize={commonSettings.fontSize} /> diff --git a/web/src/pages/app/functions/mods/FunctionPanel/CreateModal/index.tsx b/web/src/pages/app/functions/mods/FunctionPanel/CreateModal/index.tsx index 46d227fb19..ee5c2de5f5 100644 --- a/web/src/pages/app/functions/mods/FunctionPanel/CreateModal/index.tsx +++ b/web/src/pages/app/functions/mods/FunctionPanel/CreateModal/index.tsx @@ -126,7 +126,7 @@ const CreateModal = (props: { showSuccess(isEdit ? t("update success") : t("create success")); onClose(); reset(defaultValues); - navigate(`/app/${currentApp.appid}/function/${res.data.name}`); + navigate(`/app/${currentApp.appid}/function/${res.data.name}`, { replace: true }); } }; diff --git a/web/src/pages/app/functions/mods/FunctionPanel/index.tsx b/web/src/pages/app/functions/mods/FunctionPanel/index.tsx index 325eac45d2..e12f345544 100644 --- a/web/src/pages/app/functions/mods/FunctionPanel/index.tsx +++ b/web/src/pages/app/functions/mods/FunctionPanel/index.tsx @@ -271,7 +271,9 @@ export default function FunctionList() { if (!recentFunctionList.map((item) => item._id).includes(item._id)) { setRecentFunctionList([item as unknown as TFunction, ...recentFunctionList]); } - navigate(`/app/${currentApp?.appid}/${Pages.function}/${item?.name}`); + navigate(`/app/${currentApp?.appid}/${Pages.function}/${item?.name}`, { + replace: true, + }); } else { item.isExpanded = !item.isExpanded; setFunctionRoot({ ...functionRoot }); @@ -312,6 +314,12 @@ export default function FunctionList() { const res = await deleteFunctionMutation.mutateAsync(item); if (!res.error) { showSuccess(t("DeleteSuccess")); + + // const nextFunction = recentFunctionList[0].name === currentFunction?.name ? recentFunctionList[1] : recentFunctionList[0] || allFunctionList[0] || {}; + // setCurrentFunction(nextFunction); + // if (nextFunction.name) { + // navigate(`/app/${currentApp?.appid}/${Pages.function}/${nextFunction?.name}`, {replace: true}) + // } } }} headerText={String(t("Delete"))} diff --git a/web/src/pages/app/functions/mods/HeadPanel/index.tsx b/web/src/pages/app/functions/mods/HeadPanel/index.tsx index 61b0071057..ef77624de7 100644 --- a/web/src/pages/app/functions/mods/HeadPanel/index.tsx +++ b/web/src/pages/app/functions/mods/HeadPanel/index.tsx @@ -63,7 +63,9 @@ function HeadPanel() { : "px-[14px]", )} onClick={() => { - navigate(`/app/${currentApp?.appid}/${Pages.function}/${item?.name}`); + navigate(`/app/${currentApp?.appid}/${Pages.function}/${item?.name}`, { + replace: true, + }); setCurrentFunction(item); }} > @@ -81,22 +83,25 @@ function HeadPanel() { )} - - { - e.stopPropagation(); - setRecentFunctionList( - recentFunctionList.filter((i) => i._id !== item._id), + { + e.stopPropagation(); + setRecentFunctionList( + recentFunctionList.filter((i) => i._id !== item._id), + ); + if (currentFunction?._id === item._id) { + const nextFunction = + recentFunctionList[index + 1] || recentFunctionList[0] || {}; + setCurrentFunction(nextFunction); + navigate( + `/app/${currentApp?.appid}/${Pages.function}/${nextFunction.name}`, + { replace: true }, ); - if (currentFunction?._id === item._id) { - setCurrentFunction( - recentFunctionList[index + 1] || recentFunctionList[0] || {}, - ); - } - }} - /> + } + }} + > + From d8c25955a9fba6a7be728e6713dc7630e4b41f8f Mon Sep 17 00:00:00 2001 From: heheer <1239331448@qq.com> Date: Thu, 26 Oct 2023 16:54:57 +0800 Subject: [PATCH 07/42] chore: change json editor to @monaco-editor/react --- web/package-lock.json | 51 ++++ web/package.json | 3 +- web/src/components/Editor/CodeViewer.tsx | 255 ------------------ .../components/Editor/CommonDiffEditor.tsx | 2 - web/src/components/Editor/ENVEditor.tsx | 78 ++---- web/src/components/Editor/FunctionEditor.tsx | 9 - web/src/components/Editor/JSONEditor.tsx | 123 +++------ web/src/components/Editor/JSONViewer.tsx | 1 + .../components/Editor/theme/dotenv_theme.json | 40 +++ web/src/components/Editor/theme/index.js | 11 + web/src/components/Editor/userWorker.ts | 43 ++- .../app/functions/mods/DeployButton/index.tsx | 2 +- .../Mods/MonacoEditor/index.tsx | 56 +--- 13 files changed, 189 insertions(+), 485 deletions(-) delete mode 100644 web/src/components/Editor/CodeViewer.tsx create mode 100644 web/src/components/Editor/theme/dotenv_theme.json diff --git a/web/package-lock.json b/web/package-lock.json index 3784a479e1..9d7d6d5324 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -24,6 +24,7 @@ "@patternfly/react-log-viewer": "^5.0.0", "@sentry/integrations": "^7.73.0", "@sentry/react": "^7.73.0", + "@monaco-editor/react": "^4.6.0", "@tanstack/react-query": "^4.29.7", "ansi_up": "^6.0.2", "axios": "^1.4.0", @@ -3987,6 +3988,30 @@ "@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/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -12454,6 +12479,11 @@ "url": "https://github.com/sponsors/wooorm" } }, + "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-argv": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", @@ -17100,6 +17130,22 @@ "@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" + } + }, "@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -23314,6 +23360,11 @@ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" }, + "state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" + }, "string-argv": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", diff --git a/web/package.json b/web/package.json index e91e1158d2..e238400d0a 100644 --- a/web/package.json +++ b/web/package.json @@ -30,6 +30,7 @@ "@patternfly/react-log-viewer": "^5.0.0", "@sentry/integrations": "^7.73.0", "@sentry/react": "^7.73.0", + "@monaco-editor/react": "^4.6.0", "@tanstack/react-query": "^4.29.7", "ansi_up": "^6.0.2", "axios": "^1.4.0", @@ -119,4 +120,4 @@ "prettier --write" ] } -} +} \ No newline at end of file diff --git a/web/src/components/Editor/CodeViewer.tsx b/web/src/components/Editor/CodeViewer.tsx deleted file mode 100644 index 4f1f2b1892..0000000000 --- a/web/src/components/Editor/CodeViewer.tsx +++ /dev/null @@ -1,255 +0,0 @@ -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 29594bd843..1a8cea14c5 100644 --- a/web/src/components/Editor/CommonDiffEditor.tsx +++ b/web/src/components/Editor/CommonDiffEditor.tsx @@ -4,8 +4,6 @@ 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/ENVEditor.tsx b/web/src/components/Editor/ENVEditor.tsx index 2998bbb073..a704b1c3fd 100644 --- a/web/src/components/Editor/ENVEditor.tsx +++ b/web/src/components/Editor/ENVEditor.tsx @@ -3,55 +3,23 @@ import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; import { COLOR_MODE } from "@/constants"; -import "./userWorker"; - const languageId = "dotenv"; -// 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", -// }, -// }); +monaco.languages.register({ + id: languageId, +}); + +monaco.languages.setMonarchTokensProvider(languageId, { + tokenizer: { + root: [ + [/^\w+(?==)/, "key"], + [/(=)([^=]*)$/, ["operator", "value"]], + [/^#.*/, "comment"], + // new lines + [/.*/, "value"], + ], + }, +}); function ENVEditor(props: { value: string; @@ -70,7 +38,7 @@ function ENVEditor(props: { if (monacoEl && !editorRef.current) { editorRef.current = monaco.editor.create(monacoEl.current!, { language: languageId, - theme: colorMode === COLOR_MODE.dark ? "dotenvDarkTheme" : "dotenvTheme", + theme: "dotenvTheme", lineNumbers: "off", guides: { indentation: false, @@ -115,13 +83,13 @@ function ENVEditor(props: { } }, [value]); - // useEffect(() => { - // if (monacoEl && editorRef.current) { - // editorRef.current.updateOptions({ - // theme: colorMode === COLOR_MODE.dark ? "JSONEditorThemeDark" : "JSONEditorTheme", - // }); - // } - // }, [colorMode]); + useEffect(() => { + if (monacoEl && editorRef.current) { + editorRef.current.updateOptions({ + theme: colorMode === COLOR_MODE.dark ? "dotenvTheme" : "dotenvTheme", + }); + } + }, [colorMode]); return (
(); - 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]); - - useEffect(() => { - if (monacoEl && editorRef.current) { - editorRef.current.updateOptions({ - theme: colorMode === COLOR_MODE.dark ? "JSONEditorThemeDark" : "JSONEditorTheme", - }); - } - }, [colorMode]); - - return
; + 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, + theme: colorMode === COLOR_MODE.dark ? "vs-dark" : "vs", + tabSize: 2, + }; + + return ( + + ); } export default JSONEditor; diff --git a/web/src/components/Editor/JSONViewer.tsx b/web/src/components/Editor/JSONViewer.tsx index f004a79039..2928adab00 100644 --- a/web/src/components/Editor/JSONViewer.tsx +++ b/web/src/components/Editor/JSONViewer.tsx @@ -238,6 +238,7 @@ const JSONViewerDarkStyle: any = { fontWeight: "bold", }, }; + export default function JSONViewer(props: JSONViewerProps) { const { code, language = "json", colorMode = COLOR_MODE.light, ...rest } = props; const lightTheme = { background: "#fdfdfe" }; diff --git a/web/src/components/Editor/theme/dotenv_theme.json b/web/src/components/Editor/theme/dotenv_theme.json new file mode 100644 index 0000000000..63975eb26a --- /dev/null +++ b/web/src/components/Editor/theme/dotenv_theme.json @@ -0,0 +1,40 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "dotenvTheme", + "include": "./laf_editor_theme.json", + "colors": { + "editor.background": "#ffffff00", + "editorLineNumber.foreground": "#aaa", + "editorOverviewRuler.border": "#ffffff00", + "editor.lineHighlightBackground": "#F7F8FA", + "scrollbarSlider.background": "#E8EAEC", + "editorIndentGuide.activeBackground1": "#ddd", + "editorIndentGuide.background1": "#eee", + }, + "tokenColors": [ + { + "scope": "key", + "settings": { + "foreground": "#953800" + } + }, + { + "scope": "value", + "settings": { + "foreground": "#2E4C7E" + }, + }, + { + "scope": "operator", + "settings": { + "foreground": "#CF212E" + }, + }, + { + "scope": "comment", + "settings": { + "foreground": "#0A3069" + }, + }, + ] +} \ No newline at end of file diff --git a/web/src/components/Editor/theme/index.js b/web/src/components/Editor/theme/index.js index 45b15a3f20..227cce6cf9 100644 --- a/web/src/components/Editor/theme/index.js +++ b/web/src/components/Editor/theme/index.js @@ -22,6 +22,12 @@ var manifest = { label: "lafEditorDarkTheme", uiTheme: "lafEditorDarkTheme", path: "./themes/laf_editor_dark_theme.json", + // }, + // { + // id: "dotenvTheme", + // label: "dotenvTheme", + // uiTheme: "dotenvTheme", + // path: "./themes/dotenv_theme.json", } ], }, @@ -41,4 +47,9 @@ registerFileUrl( new URL("./laf_editor_dark_theme.json", import.meta.url).toString(), "application/json", ); +// registerFileUrl( +// "./themes/dotenv_theme.json", +// new URL("./dotenv_theme.json", import.meta.url).toString(), +// "application/json", +// ); export { whenReady }; diff --git a/web/src/components/Editor/userWorker.ts b/web/src/components/Editor/userWorker.ts index cabb94cc21..3859f9655e 100644 --- a/web/src/components/Editor/userWorker.ts +++ b/web/src/components/Editor/userWorker.ts @@ -1,28 +1,27 @@ -// 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"; +// // 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) { -// if (label === "json") { -// return new jsonWorker(); -// } -// if (label === "css" || label === "scss" || label === "less") { -// return new cssWorker(); -// } -// if (label === "html" || label === "handlebars" || label === "razor") { -// return new htmlWorker(); -// } -// if (label === "typescript" || label === "javascript") { -// return new tsWorker(); -// } -// return new editorWorker(); -// }, +// getWorker(_: any, label: string) { +// if (label === 'json') { +// return new jsonWorker(); +// } +// if (label === 'css' || label === 'scss' || label === 'less') { +// return new cssWorker(); +// } +// if (label === 'html' || label === 'handlebars' || label === 'razor') { +// return new htmlWorker(); +// } +// if (label === 'typescript' || label === 'javascript') { +// return new tsWorker(); +// } +// return new editorWorker(); +// } // }; // // monaco.languages.typescript.typescriptDefaults.setEagerModelSync(true); diff --git a/web/src/pages/app/functions/mods/DeployButton/index.tsx b/web/src/pages/app/functions/mods/DeployButton/index.tsx index f75f4a6f28..b0a0a7c55e 100644 --- a/web/src/pages/app/functions/mods/DeployButton/index.tsx +++ b/web/src/pages/app/functions/mods/DeployButton/index.tsx @@ -77,7 +77,7 @@ export default function DeployButton() { return ( <>