From 3c717a05e0eeb5deab4f99d66631a924e9f438cc Mon Sep 17 00:00:00 2001 From: Phillip Bronzel Date: Tue, 20 Dec 2022 22:24:35 +0100 Subject: [PATCH] feat: add missing features after 1.1.0 update + fix left ribbon, close #57, close #62 --- manifest.json | 2 +- package-lock.json | 910 ++++---- package.json | 2 +- pnpm-lock.yaml | 1920 ----------------- scripts/esbuild.config.mjs | 6 +- scripts/update-icon-list.mjs | 146 +- src/assets/commander-logo-christmas.svg | 2 +- src/constants.ts | 593 ++++- src/l10n.ts | 5 +- src/main.ts | 23 +- src/manager/commands/explorerManager.ts | 72 +- src/manager/commands/index.ts | 15 +- src/manager/commands/leftRibbonManager.ts | 36 +- src/manager/commands/menuManager.ts | 92 +- src/manager/commands/pageHeaderManager.ts | 76 +- src/manager/commands/ribbonManager.ts | 254 --- src/manager/commands/statusBarManager.ts | 98 +- src/manager/commands/titleBarManager.ts | 67 +- src/types.ts | 9 +- src/ui/addCommandModal.ts | 16 +- src/ui/chooseCustomNameModal.ts | 17 +- src/ui/chooseIconModal.ts | 25 +- src/ui/components/About.tsx | 88 +- src/ui/components/Accordion.tsx | 5 +- src/ui/components/AdvancedToolbarSettings.tsx | 212 +- src/ui/components/ChangeableText.tsx | 9 +- src/ui/components/Credits.tsx | 18 +- src/ui/components/MacroBuilder.tsx | 2 +- src/ui/components/MacroViewer.tsx | 45 +- src/ui/components/commandComponent.tsx | 54 +- src/ui/components/commandViewerComponent.tsx | 38 +- src/ui/components/hidingViewer.tsx | 121 +- src/ui/components/settingComponent.tsx | 86 +- src/ui/components/settingTabComponent.tsx | 21 +- src/ui/confirmDeleteModal.ts | 2 - src/ui/icons.ts | 5 +- src/ui/mobileModifyModal.ts | 4 +- src/ui/settingTab.ts | 8 +- src/ui/settingTabModal.ts | 9 +- src/util.tsx | 62 +- 40 files changed, 2127 insertions(+), 3048 deletions(-) delete mode 100644 pnpm-lock.yaml delete mode 100644 src/manager/commands/ribbonManager.ts diff --git a/manifest.json b/manifest.json index dd1628b..42f160d 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "cmdr", "name": "Commander", - "version": "0.4.5", + "version": "0.4.9", "minAppVersion": "1.1.0", "description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.", "author": "jsmorabito & phibr0", diff --git a/package-lock.json b/package-lock.json index 43d428e..6874e15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,13 @@ { "name": "cmdr", - "version": "0.4.0", + "version": "0.4.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cmdr", - "version": "0.4.0", + "version": "0.4.9", "dependencies": { - "@codemirror/lang-javascript": "^6.1.1", "array-move": "^4.0.0", "canvas-confetti": "^1.6.0", "preact": "^10.11.3" @@ -43,9 +42,10 @@ } }, "node_modules/@codemirror/autocomplete": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.3.4.tgz", - "integrity": "sha512-irxKsTSjS0OkfMWWt9YxtNK97++/E+XIHfKnRpSVfZyHzda/amYF0BR+T8mMkrGQWidx2zApxHx08GT13egyQA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.4.0.tgz", + "integrity": "sha512-HLF2PnZAm1s4kGs30EiqKMgD7XsYaQ0XJnMR0rofEWQ5t5D60SfqpDIkIh1ze5tiEbyUWm8+VJ6W1/erVvBMIA==", + "dev": true, "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", @@ -149,9 +149,9 @@ } }, "node_modules/@codemirror/lang-html": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.3.1.tgz", - "integrity": "sha512-36PoquiZ1S8HW0mF2hupZYPajYgpSwK27YDPOOwMk4jFW+shkS79I7mSNmYlDBkgRS8p3ldfh3dG2/HknwsawA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.0.tgz", + "integrity": "sha512-HHged0d9AQ/mpjYLTYDVdtI7235dO0COFNgc5uuiGokgjWx3L/sjMSw5aS/Nk7JG++LhsohG5HMNTCuqAq3Tcg==", "dev": true, "dependencies": { "@codemirror/autocomplete": "^6.0.0", @@ -161,13 +161,15 @@ "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.2.2", "@lezer/common": "^1.0.0", + "@lezer/css": "^1.1.0", "@lezer/html": "^1.1.0" } }, "node_modules/@codemirror/lang-javascript": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.1.1.tgz", - "integrity": "sha512-F4+kiuC5d5dUSJmff96tJQwpEXs/tX/4bapMRnZWW6bHKK1Fx6MunTzopkCUWRa9bF87GPmb9m7Qtg7Yv8f3uQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.1.2.tgz", + "integrity": "sha512-OcwLfZXdQ1OHrLiIcKCn7MqZ7nx205CMKlhe+vL88pe2ymhT9+2P+QhwkYGxMICj8TDHyp8HFKVwpiisUT7iEQ==", + "dev": true, "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.0.0", @@ -179,8 +181,9 @@ } }, "node_modules/@codemirror/language": { - "version": "6.2.1", - "resolved": "git+ssh://git@github.com/lishid/cm-language.git#073afd8e6bc4d8e5cf6170a50f9b668a98c39f1c", + "version": "6.3.1", + "resolved": "git+ssh://git@github.com/lishid/cm-language.git#6f84ca041393471ae1e2c82a0b6ec515a94e8dcf", + "dev": true, "license": "MIT", "dependencies": { "@codemirror/state": "^6.0.0", @@ -195,6 +198,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.1.0.tgz", "integrity": "sha512-mdvDQrjRmYPvQ3WrzF6Ewaao+NWERYtpthJvoQ3tK3t/44Ynhk8ZGjTSL9jMEv8CgSMogmt75X8ceOZRDSXHtQ==", + "dev": true, "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", @@ -234,7 +238,8 @@ "node_modules/@codemirror/state": { "version": "6.1.4", "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.4.tgz", - "integrity": "sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==" + "integrity": "sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==", + "dev": true }, "node_modules/@codemirror/text": { "version": "0.19.6", @@ -244,9 +249,10 @@ "dev": true }, "node_modules/@codemirror/view": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.6.0.tgz", - "integrity": "sha512-40VaFVZI3rkyjO5GHFAbNwaW+YgZexjKyx5gxLU2DvfuXAEZX0kW0apOXb0SBRLnKIQJ+U/n2nPfxgBVFHERrg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.7.1.tgz", + "integrity": "sha512-kYtS+uqYw/q/0ytYxpkqE1JVuK5NsbmBklWYhwLFTKO9gVuTdh/kDEeZPKorbqHcJ+P+ucrhcsS1czVweOpT2g==", + "dev": true, "dependencies": { "@codemirror/state": "^6.1.4", "style-mod": "^4.0.0", @@ -254,9 +260,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.16.tgz", - "integrity": "sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", "cpu": [ "arm" ], @@ -270,9 +276,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz", - "integrity": "sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", "cpu": [ "loong64" ], @@ -286,16 +292,16 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", + "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", "dev": true, "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.4.0", - "globals": "^13.15.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -310,9 +316,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "peer": true, "dependencies": { @@ -348,12 +354,13 @@ "node_modules/@lezer/common": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.2.tgz", - "integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==" + "integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==", + "dev": true }, "node_modules/@lezer/css": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.0.tgz", - "integrity": "sha512-3dc6l8ZQOOAZUhNk6ekrkaZ6iJScn0QKxsmKgmn0BsaIXePqgPPk3d1iqo/d7laICE6eYrLpxm5HrGyNyR0hfQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.1.tgz", + "integrity": "sha512-mSjx+unLLapEqdOYDejnGBokB5+AiJKZVclmud0MKQOKx3DLJ5b5VTCstgDDknR6iIV4gVrN6euzsCnj0A2gQA==", "dev": true, "dependencies": { "@lezer/highlight": "^1.0.0", @@ -364,14 +371,15 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.3.tgz", "integrity": "sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==", + "dev": true, "dependencies": { "@lezer/common": "^1.0.0" } }, "node_modules/@lezer/html": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.2.0.tgz", - "integrity": "sha512-T6sseEJQPTFayX3h9DINh7KyFBwCjEtrqQRD+7USmtkJh1xHDutsB6KYHKveSd+TbsedIPAcZwar+gkHl1rVSw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.0.tgz", + "integrity": "sha512-jU/ah8DEoiECLTMouU/X/ujIg6k9WQMIOFMaCLebzaXfrguyGaR3DpTgmk0tbljiuIJ7hlmVJPcJcxGzmCd0Mg==", "dev": true, "dependencies": { "@lezer/common": "^1.0.0", @@ -380,9 +388,10 @@ } }, "node_modules/@lezer/javascript": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.3.1.tgz", - "integrity": "sha512-3Z6OggGxRuqMntAuadxW0Oy7Zbs56KJSwujDc6vwhVfbi5upHOEzNIrNLvphDU/HozLoTCGQcjNmjLkb2Zr5pg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.0.tgz", + "integrity": "sha512-MQ3oLJGEtpUgZ03LOLI60tDnjSkKO6h9hZSe31qJ1UQV+I9bpv3pwSnPUnX0+e+3E1PBVkox0GB2/MXkxg0M2w==", + "dev": true, "dependencies": { "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" @@ -392,6 +401,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.5.tgz", "integrity": "sha512-f9319YG1A/3ysgUE3bqCHEd7g+3ZZ71MWlwEc42mpnLVYXgfJJgtu1XAyBB4Kz8FmqmnFe9caopDqKeMMMAU6g==", + "dev": true, "dependencies": { "@lezer/common": "^1.0.0" } @@ -459,9 +469,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "version": "18.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz", + "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==", "dev": true }, "node_modules/@types/prop-types": { @@ -471,9 +481,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.25", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz", - "integrity": "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==", + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -503,14 +513,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", - "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz", + "integrity": "sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/type-utils": "5.45.0", - "@typescript-eslint/utils": "5.45.0", + "@typescript-eslint/scope-manager": "5.47.0", + "@typescript-eslint/type-utils": "5.47.0", + "@typescript-eslint/utils": "5.47.0", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -536,14 +546,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", - "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.0.tgz", + "integrity": "sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/scope-manager": "5.47.0", + "@typescript-eslint/types": "5.47.0", + "@typescript-eslint/typescript-estree": "5.47.0", "debug": "^4.3.4" }, "engines": { @@ -563,13 +573,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", - "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz", + "integrity": "sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/visitor-keys": "5.45.0" + "@typescript-eslint/types": "5.47.0", + "@typescript-eslint/visitor-keys": "5.47.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -580,13 +590,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", - "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz", + "integrity": "sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.45.0", - "@typescript-eslint/utils": "5.45.0", + "@typescript-eslint/typescript-estree": "5.47.0", + "@typescript-eslint/utils": "5.47.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -607,9 +617,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", - "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.0.tgz", + "integrity": "sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -620,13 +630,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", - "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz", + "integrity": "sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/visitor-keys": "5.45.0", + "@typescript-eslint/types": "5.47.0", + "@typescript-eslint/visitor-keys": "5.47.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -647,16 +657,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", - "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.0.tgz", + "integrity": "sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/scope-manager": "5.47.0", + "@typescript-eslint/types": "5.47.0", + "@typescript-eslint/typescript-estree": "5.47.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -673,12 +683,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", - "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz", + "integrity": "sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/types": "5.47.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -1055,7 +1065,8 @@ "node_modules/crelt": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", - "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==" + "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==", + "dev": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -1212,9 +1223,9 @@ } }, "node_modules/es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "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==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -1223,6 +1234,7 @@ "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", @@ -1238,8 +1250,8 @@ "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", "unbox-primitive": "^1.0.2" }, "engines": { @@ -1267,9 +1279,9 @@ } }, "node_modules/esbuild": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.16.tgz", - "integrity": "sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", "dev": true, "hasInstallScript": true, "bin": { @@ -1279,34 +1291,34 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.15.16", - "@esbuild/linux-loong64": "0.15.16", - "esbuild-android-64": "0.15.16", - "esbuild-android-arm64": "0.15.16", - "esbuild-darwin-64": "0.15.16", - "esbuild-darwin-arm64": "0.15.16", - "esbuild-freebsd-64": "0.15.16", - "esbuild-freebsd-arm64": "0.15.16", - "esbuild-linux-32": "0.15.16", - "esbuild-linux-64": "0.15.16", - "esbuild-linux-arm": "0.15.16", - "esbuild-linux-arm64": "0.15.16", - "esbuild-linux-mips64le": "0.15.16", - "esbuild-linux-ppc64le": "0.15.16", - "esbuild-linux-riscv64": "0.15.16", - "esbuild-linux-s390x": "0.15.16", - "esbuild-netbsd-64": "0.15.16", - "esbuild-openbsd-64": "0.15.16", - "esbuild-sunos-64": "0.15.16", - "esbuild-windows-32": "0.15.16", - "esbuild-windows-64": "0.15.16", - "esbuild-windows-arm64": "0.15.16" + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" } }, "node_modules/esbuild-android-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz", - "integrity": "sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", "cpu": [ "x64" ], @@ -1320,9 +1332,9 @@ } }, "node_modules/esbuild-android-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz", - "integrity": "sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", "cpu": [ "arm64" ], @@ -1336,9 +1348,9 @@ } }, "node_modules/esbuild-darwin-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz", - "integrity": "sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", "cpu": [ "x64" ], @@ -1352,9 +1364,9 @@ } }, "node_modules/esbuild-darwin-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz", - "integrity": "sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", "cpu": [ "arm64" ], @@ -1368,9 +1380,9 @@ } }, "node_modules/esbuild-freebsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz", - "integrity": "sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", "cpu": [ "x64" ], @@ -1384,9 +1396,9 @@ } }, "node_modules/esbuild-freebsd-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz", - "integrity": "sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", "cpu": [ "arm64" ], @@ -1400,9 +1412,9 @@ } }, "node_modules/esbuild-linux-32": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz", - "integrity": "sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", "cpu": [ "ia32" ], @@ -1416,9 +1428,9 @@ } }, "node_modules/esbuild-linux-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz", - "integrity": "sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", "cpu": [ "x64" ], @@ -1432,9 +1444,9 @@ } }, "node_modules/esbuild-linux-arm": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz", - "integrity": "sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", "cpu": [ "arm" ], @@ -1448,9 +1460,9 @@ } }, "node_modules/esbuild-linux-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz", - "integrity": "sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", "cpu": [ "arm64" ], @@ -1464,9 +1476,9 @@ } }, "node_modules/esbuild-linux-mips64le": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz", - "integrity": "sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", "cpu": [ "mips64el" ], @@ -1480,9 +1492,9 @@ } }, "node_modules/esbuild-linux-ppc64le": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz", - "integrity": "sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", "cpu": [ "ppc64" ], @@ -1496,9 +1508,9 @@ } }, "node_modules/esbuild-linux-riscv64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz", - "integrity": "sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", "cpu": [ "riscv64" ], @@ -1512,9 +1524,9 @@ } }, "node_modules/esbuild-linux-s390x": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz", - "integrity": "sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", "cpu": [ "s390x" ], @@ -1528,9 +1540,9 @@ } }, "node_modules/esbuild-netbsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz", - "integrity": "sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", "cpu": [ "x64" ], @@ -1544,9 +1556,9 @@ } }, "node_modules/esbuild-openbsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz", - "integrity": "sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", "cpu": [ "x64" ], @@ -1566,20 +1578,20 @@ "dev": true }, "node_modules/esbuild-sass-plugin": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-2.4.2.tgz", - "integrity": "sha512-Rsih/IkKDZlBbw73tUhten9gpg6NElDPLzUl/aSSo4A8oqoHTa5PGHq0yrsuxbszSWAppCFBYDVvi8CGGmvU3A==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-2.4.4.tgz", + "integrity": "sha512-nxyscxQbvKcy12rLOh52zDqk0anOvWIdUcAlvaoCVQcpmR9GkrFbyGLsRNpoEYyB3Rho9Raq+YE6A6ehMDkN0g==", "dev": true, "dependencies": { - "esbuild": "^0.15.12", + "esbuild": "^0.15.17", "resolve": "^1.22.1", - "sass": "^1.55.0" + "sass": "^1.56.1" } }, "node_modules/esbuild-sunos-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz", - "integrity": "sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", "cpu": [ "x64" ], @@ -1593,9 +1605,9 @@ } }, "node_modules/esbuild-windows-32": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz", - "integrity": "sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", "cpu": [ "ia32" ], @@ -1609,9 +1621,9 @@ } }, "node_modules/esbuild-windows-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz", - "integrity": "sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", "cpu": [ "x64" ], @@ -1625,9 +1637,9 @@ } }, "node_modules/esbuild-windows-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz", - "integrity": "sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", "cpu": [ "arm64" ], @@ -1654,14 +1666,14 @@ } }, "node_modules/eslint": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", - "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", + "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", "dev": true, "peer": true, "dependencies": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "@eslint/eslintrc": "^1.4.0", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -1680,7 +1692,7 @@ "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", @@ -1914,9 +1926,9 @@ "peer": true }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -2138,9 +2150,9 @@ } }, "node_modules/globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "peer": true, "dependencies": { @@ -2173,6 +2185,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -2263,9 +2287,9 @@ "dev": true }, "node_modules/ignore": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", - "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "engines": { "node": ">= 4" @@ -2323,12 +2347,12 @@ "peer": true }, "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.1.3", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -3055,9 +3079,9 @@ } }, "node_modules/obsidian": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-0.16.3.tgz", - "integrity": "sha512-hal9qk1A0GMhHSeLr2/+o3OpLmImiP+Y+sx2ewP13ds76KXsziG96n+IPFT0mSkup1zSwhEu+DeRhmbcyCCXWw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.1.1.tgz", + "integrity": "sha512-GcxhsHNkPEkwHEjeyitfYNBcQuYGeAHFs1pEpZIv0CnzSfui8p8bPLm2YKLgcg20B764770B1sYGtxCvk9ptxg==", "dev": true, "dependencies": { "@types/codemirror": "0.0.108", @@ -3239,9 +3263,9 @@ } }, "node_modules/postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "dev": true, "funding": [ { @@ -3602,9 +3626,9 @@ } }, "node_modules/sass": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", - "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "version": "1.57.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", + "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -3812,7 +3836,8 @@ "node_modules/style-mod": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", - "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==" + "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", + "dev": true }, "node_modules/supports-color": { "version": "7.2.0", @@ -3953,9 +3978,9 @@ } }, "node_modules/typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -4009,7 +4034,8 @@ "node_modules/w3c-keyname": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz", - "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==" + "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==", + "dev": true }, "node_modules/web-streams-polyfill": { "version": "3.2.1", @@ -4109,9 +4135,10 @@ }, "dependencies": { "@codemirror/autocomplete": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.3.4.tgz", - "integrity": "sha512-irxKsTSjS0OkfMWWt9YxtNK97++/E+XIHfKnRpSVfZyHzda/amYF0BR+T8mMkrGQWidx2zApxHx08GT13egyQA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.4.0.tgz", + "integrity": "sha512-HLF2PnZAm1s4kGs30EiqKMgD7XsYaQ0XJnMR0rofEWQ5t5D60SfqpDIkIh1ze5tiEbyUWm8+VJ6W1/erVvBMIA==", + "dev": true, "requires": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", @@ -4210,9 +4237,9 @@ } }, "@codemirror/lang-html": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.3.1.tgz", - "integrity": "sha512-36PoquiZ1S8HW0mF2hupZYPajYgpSwK27YDPOOwMk4jFW+shkS79I7mSNmYlDBkgRS8p3ldfh3dG2/HknwsawA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.0.tgz", + "integrity": "sha512-HHged0d9AQ/mpjYLTYDVdtI7235dO0COFNgc5uuiGokgjWx3L/sjMSw5aS/Nk7JG++LhsohG5HMNTCuqAq3Tcg==", "dev": true, "requires": { "@codemirror/autocomplete": "^6.0.0", @@ -4222,13 +4249,15 @@ "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.2.2", "@lezer/common": "^1.0.0", + "@lezer/css": "^1.1.0", "@lezer/html": "^1.1.0" } }, "@codemirror/lang-javascript": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.1.1.tgz", - "integrity": "sha512-F4+kiuC5d5dUSJmff96tJQwpEXs/tX/4bapMRnZWW6bHKK1Fx6MunTzopkCUWRa9bF87GPmb9m7Qtg7Yv8f3uQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.1.2.tgz", + "integrity": "sha512-OcwLfZXdQ1OHrLiIcKCn7MqZ7nx205CMKlhe+vL88pe2ymhT9+2P+QhwkYGxMICj8TDHyp8HFKVwpiisUT7iEQ==", + "dev": true, "requires": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.0.0", @@ -4240,7 +4269,8 @@ } }, "@codemirror/language": { - "version": "git+ssh://git@github.com/lishid/cm-language.git#073afd8e6bc4d8e5cf6170a50f9b668a98c39f1c", + "version": "git+ssh://git@github.com/lishid/cm-language.git#6f84ca041393471ae1e2c82a0b6ec515a94e8dcf", + "dev": true, "from": "@codemirror/language@github:lishid/cm-language", "requires": { "@codemirror/state": "^6.0.0", @@ -4255,6 +4285,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.1.0.tgz", "integrity": "sha512-mdvDQrjRmYPvQ3WrzF6Ewaao+NWERYtpthJvoQ3tK3t/44Ynhk8ZGjTSL9jMEv8CgSMogmt75X8ceOZRDSXHtQ==", + "dev": true, "requires": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", @@ -4295,7 +4326,8 @@ "@codemirror/state": { "version": "6.1.4", "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.4.tgz", - "integrity": "sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==" + "integrity": "sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==", + "dev": true }, "@codemirror/text": { "version": "0.19.6", @@ -4304,9 +4336,10 @@ "dev": true }, "@codemirror/view": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.6.0.tgz", - "integrity": "sha512-40VaFVZI3rkyjO5GHFAbNwaW+YgZexjKyx5gxLU2DvfuXAEZX0kW0apOXb0SBRLnKIQJ+U/n2nPfxgBVFHERrg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.7.1.tgz", + "integrity": "sha512-kYtS+uqYw/q/0ytYxpkqE1JVuK5NsbmBklWYhwLFTKO9gVuTdh/kDEeZPKorbqHcJ+P+ucrhcsS1czVweOpT2g==", + "dev": true, "requires": { "@codemirror/state": "^6.1.4", "style-mod": "^4.0.0", @@ -4314,30 +4347,30 @@ } }, "@esbuild/android-arm": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.16.tgz", - "integrity": "sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz", - "integrity": "sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", "dev": true, "optional": true }, "@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", + "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", "dev": true, "peer": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.4.0", - "globals": "^13.15.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -4346,9 +4379,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "peer": true, "requires": { @@ -4374,12 +4407,13 @@ "@lezer/common": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.2.tgz", - "integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==" + "integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==", + "dev": true }, "@lezer/css": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.0.tgz", - "integrity": "sha512-3dc6l8ZQOOAZUhNk6ekrkaZ6iJScn0QKxsmKgmn0BsaIXePqgPPk3d1iqo/d7laICE6eYrLpxm5HrGyNyR0hfQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.1.tgz", + "integrity": "sha512-mSjx+unLLapEqdOYDejnGBokB5+AiJKZVclmud0MKQOKx3DLJ5b5VTCstgDDknR6iIV4gVrN6euzsCnj0A2gQA==", "dev": true, "requires": { "@lezer/highlight": "^1.0.0", @@ -4390,14 +4424,15 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.3.tgz", "integrity": "sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==", + "dev": true, "requires": { "@lezer/common": "^1.0.0" } }, "@lezer/html": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.2.0.tgz", - "integrity": "sha512-T6sseEJQPTFayX3h9DINh7KyFBwCjEtrqQRD+7USmtkJh1xHDutsB6KYHKveSd+TbsedIPAcZwar+gkHl1rVSw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.0.tgz", + "integrity": "sha512-jU/ah8DEoiECLTMouU/X/ujIg6k9WQMIOFMaCLebzaXfrguyGaR3DpTgmk0tbljiuIJ7hlmVJPcJcxGzmCd0Mg==", "dev": true, "requires": { "@lezer/common": "^1.0.0", @@ -4406,9 +4441,10 @@ } }, "@lezer/javascript": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.3.1.tgz", - "integrity": "sha512-3Z6OggGxRuqMntAuadxW0Oy7Zbs56KJSwujDc6vwhVfbi5upHOEzNIrNLvphDU/HozLoTCGQcjNmjLkb2Zr5pg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.0.tgz", + "integrity": "sha512-MQ3oLJGEtpUgZ03LOLI60tDnjSkKO6h9hZSe31qJ1UQV+I9bpv3pwSnPUnX0+e+3E1PBVkox0GB2/MXkxg0M2w==", + "dev": true, "requires": { "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" @@ -4418,6 +4454,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.5.tgz", "integrity": "sha512-f9319YG1A/3ysgUE3bqCHEd7g+3ZZ71MWlwEc42mpnLVYXgfJJgtu1XAyBB4Kz8FmqmnFe9caopDqKeMMMAU6g==", + "dev": true, "requires": { "@lezer/common": "^1.0.0" } @@ -4476,9 +4513,9 @@ "dev": true }, "@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "version": "18.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz", + "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==", "dev": true }, "@types/prop-types": { @@ -4488,9 +4525,9 @@ "dev": true }, "@types/react": { - "version": "18.0.25", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz", - "integrity": "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==", + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", "dev": true, "requires": { "@types/prop-types": "*", @@ -4520,14 +4557,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", - "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz", + "integrity": "sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/type-utils": "5.45.0", - "@typescript-eslint/utils": "5.45.0", + "@typescript-eslint/scope-manager": "5.47.0", + "@typescript-eslint/type-utils": "5.47.0", + "@typescript-eslint/utils": "5.47.0", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -4537,53 +4574,53 @@ } }, "@typescript-eslint/parser": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", - "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.0.tgz", + "integrity": "sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/scope-manager": "5.47.0", + "@typescript-eslint/types": "5.47.0", + "@typescript-eslint/typescript-estree": "5.47.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", - "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz", + "integrity": "sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/visitor-keys": "5.45.0" + "@typescript-eslint/types": "5.47.0", + "@typescript-eslint/visitor-keys": "5.47.0" } }, "@typescript-eslint/type-utils": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", - "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz", + "integrity": "sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.45.0", - "@typescript-eslint/utils": "5.45.0", + "@typescript-eslint/typescript-estree": "5.47.0", + "@typescript-eslint/utils": "5.47.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", - "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.0.tgz", + "integrity": "sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", - "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz", + "integrity": "sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==", "dev": true, "requires": { - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/visitor-keys": "5.45.0", + "@typescript-eslint/types": "5.47.0", + "@typescript-eslint/visitor-keys": "5.47.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4592,28 +4629,28 @@ } }, "@typescript-eslint/utils": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", - "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.0.tgz", + "integrity": "sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.45.0", - "@typescript-eslint/types": "5.45.0", - "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/scope-manager": "5.47.0", + "@typescript-eslint/types": "5.47.0", + "@typescript-eslint/typescript-estree": "5.47.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", - "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz", + "integrity": "sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/types": "5.47.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -4899,7 +4936,8 @@ "crelt": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.5.tgz", - "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==" + "integrity": "sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==", + "dev": true }, "cross-spawn": { "version": "7.0.3", @@ -5015,9 +5053,9 @@ } }, "es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "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==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -5026,6 +5064,7 @@ "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", @@ -5041,8 +5080,8 @@ "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", "unbox-primitive": "^1.0.2" } }, @@ -5058,144 +5097,144 @@ } }, "esbuild": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.16.tgz", - "integrity": "sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.15.16", - "@esbuild/linux-loong64": "0.15.16", - "esbuild-android-64": "0.15.16", - "esbuild-android-arm64": "0.15.16", - "esbuild-darwin-64": "0.15.16", - "esbuild-darwin-arm64": "0.15.16", - "esbuild-freebsd-64": "0.15.16", - "esbuild-freebsd-arm64": "0.15.16", - "esbuild-linux-32": "0.15.16", - "esbuild-linux-64": "0.15.16", - "esbuild-linux-arm": "0.15.16", - "esbuild-linux-arm64": "0.15.16", - "esbuild-linux-mips64le": "0.15.16", - "esbuild-linux-ppc64le": "0.15.16", - "esbuild-linux-riscv64": "0.15.16", - "esbuild-linux-s390x": "0.15.16", - "esbuild-netbsd-64": "0.15.16", - "esbuild-openbsd-64": "0.15.16", - "esbuild-sunos-64": "0.15.16", - "esbuild-windows-32": "0.15.16", - "esbuild-windows-64": "0.15.16", - "esbuild-windows-arm64": "0.15.16" + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" } }, "esbuild-android-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz", - "integrity": "sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", "dev": true, "optional": true }, "esbuild-android-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz", - "integrity": "sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", "dev": true, "optional": true }, "esbuild-darwin-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz", - "integrity": "sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", "dev": true, "optional": true }, "esbuild-darwin-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz", - "integrity": "sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", "dev": true, "optional": true }, "esbuild-freebsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz", - "integrity": "sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", "dev": true, "optional": true }, "esbuild-freebsd-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz", - "integrity": "sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", "dev": true, "optional": true }, "esbuild-linux-32": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz", - "integrity": "sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", "dev": true, "optional": true }, "esbuild-linux-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz", - "integrity": "sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", "dev": true, "optional": true }, "esbuild-linux-arm": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz", - "integrity": "sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", "dev": true, "optional": true }, "esbuild-linux-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz", - "integrity": "sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", "dev": true, "optional": true }, "esbuild-linux-mips64le": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz", - "integrity": "sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", "dev": true, "optional": true }, "esbuild-linux-ppc64le": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz", - "integrity": "sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", "dev": true, "optional": true }, "esbuild-linux-riscv64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz", - "integrity": "sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", "dev": true, "optional": true }, "esbuild-linux-s390x": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz", - "integrity": "sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", "dev": true, "optional": true }, "esbuild-netbsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz", - "integrity": "sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", "dev": true, "optional": true }, "esbuild-openbsd-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz", - "integrity": "sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", "dev": true, "optional": true }, @@ -5206,41 +5245,41 @@ "dev": true }, "esbuild-sass-plugin": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-2.4.2.tgz", - "integrity": "sha512-Rsih/IkKDZlBbw73tUhten9gpg6NElDPLzUl/aSSo4A8oqoHTa5PGHq0yrsuxbszSWAppCFBYDVvi8CGGmvU3A==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-2.4.4.tgz", + "integrity": "sha512-nxyscxQbvKcy12rLOh52zDqk0anOvWIdUcAlvaoCVQcpmR9GkrFbyGLsRNpoEYyB3Rho9Raq+YE6A6ehMDkN0g==", "dev": true, "requires": { - "esbuild": "^0.15.12", + "esbuild": "^0.15.17", "resolve": "^1.22.1", - "sass": "^1.55.0" + "sass": "^1.56.1" } }, "esbuild-sunos-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz", - "integrity": "sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", "dev": true, "optional": true }, "esbuild-windows-32": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz", - "integrity": "sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", "dev": true, "optional": true }, "esbuild-windows-64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz", - "integrity": "sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", "dev": true, "optional": true }, "esbuild-windows-arm64": { - "version": "0.15.16", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz", - "integrity": "sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==", + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", "dev": true, "optional": true }, @@ -5252,14 +5291,14 @@ "peer": true }, "eslint": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", - "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", + "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", "dev": true, "peer": true, "requires": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "@eslint/eslintrc": "^1.4.0", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -5278,7 +5317,7 @@ "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", @@ -5459,9 +5498,9 @@ "peer": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -5618,9 +5657,9 @@ } }, "globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "peer": true, "requires": { @@ -5641,6 +5680,15 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -5707,9 +5755,9 @@ "dev": true }, "ignore": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", - "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, "immutable": { @@ -5755,12 +5803,12 @@ "peer": true }, "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.1.3", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -6282,9 +6330,9 @@ } }, "obsidian": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-0.16.3.tgz", - "integrity": "sha512-hal9qk1A0GMhHSeLr2/+o3OpLmImiP+Y+sx2ewP13ds76KXsziG96n+IPFT0mSkup1zSwhEu+DeRhmbcyCCXWw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.1.1.tgz", + "integrity": "sha512-GcxhsHNkPEkwHEjeyitfYNBcQuYGeAHFs1pEpZIv0CnzSfui8p8bPLm2YKLgcg20B764770B1sYGtxCvk9ptxg==", "dev": true, "requires": { "@types/codemirror": "0.0.108", @@ -6414,9 +6462,9 @@ "dev": true }, "postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -6630,9 +6678,9 @@ } }, "sass": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", - "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "version": "1.57.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", + "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -6786,7 +6834,8 @@ "style-mod": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz", - "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==" + "integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==", + "dev": true }, "supports-color": { "version": "7.2.0", @@ -6892,9 +6941,9 @@ "peer": true }, "typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true }, "unbox-primitive": { @@ -6938,7 +6987,8 @@ "w3c-keyname": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz", - "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==" + "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==", + "dev": true }, "web-streams-polyfill": { "version": "3.2.1", diff --git a/package.json b/package.json index 6db7aaa..b1e9e8d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cmdr", - "version": "0.4.5", + "version": "0.4.9", "description": "Customize your workspace by adding commands /everywhere/.", "main": "main.js", "scripts": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 68b6688..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,1920 +0,0 @@ -lockfileVersion: 5.4 - -specifiers: - '@codemirror/autocomplete': ^6.3.4 - '@codemirror/commands': ^6.1.2 - '@codemirror/lang-css': ^6.0.1 - '@codemirror/lang-html': ^6.3.1 - '@codemirror/language': github:lishid/cm-language - '@codemirror/lint': ^6.1.0 - '@codemirror/search': ^6.2.3 - '@codemirror/state': ^6.1.4 - '@codemirror/view': ^6.6.0 - '@types/canvas-confetti': ^1.6.0 - '@types/node': ^18.11.9 - '@types/react': ^18.0.25 - '@typescript-eslint/eslint-plugin': ^5.45.0 - '@typescript-eslint/parser': ^5.45.0 - array-move: ^4.0.0 - builtin-modules: ^3.3.0 - canvas-confetti: ^1.6.0 - codemirror: ^6.0.1 - codemirror6-themes: ^0.1.2 - esbuild: ^0.15.16 - esbuild-plugin-alias: ^0.2.1 - esbuild-sass-plugin: ^2.4.2 - node-fetch: ^3.3.0 - npm-run-all: ^4.1.5 - obsidian: latest - preact: ^10.11.3 - tailwindcss: ^3.2.4 - tslib: ^2.4.1 - typescript: ^4.9.3 - -dependencies: - array-move: 4.0.0 - canvas-confetti: 1.6.0 - preact: 10.11.3 - -devDependencies: - '@codemirror/autocomplete': 6.3.4_2no7mvu6zf2xjpiieqfbigrd6i - '@codemirror/commands': 6.1.2 - '@codemirror/lang-css': 6.0.1_@codemirror+view@6.6.0 - '@codemirror/lang-html': 6.3.1 - '@codemirror/language': github.com/lishid/cm-language/073afd8e6bc4d8e5cf6170a50f9b668a98c39f1c - '@codemirror/lint': 6.1.0 - '@codemirror/search': 6.2.3 - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - '@types/canvas-confetti': 1.6.0 - '@types/node': 18.11.9 - '@types/react': 18.0.25 - '@typescript-eslint/eslint-plugin': 5.45.0_fa34fco6ifjoy23bohvwoqn6xu - '@typescript-eslint/parser': 5.45.0_typescript@4.9.3 - builtin-modules: 3.3.0 - codemirror: 6.0.1 - codemirror6-themes: 0.1.2 - esbuild: 0.15.16 - esbuild-plugin-alias: 0.2.1 - esbuild-sass-plugin: 2.4.2 - node-fetch: 3.3.0 - npm-run-all: 4.1.5 - obsidian: 0.16.3_lbdck2taelwzbjy5j3vthedh6e - tailwindcss: 3.2.4 - tslib: 2.4.1 - typescript: 4.9.3 - -packages: - - /@codemirror/autocomplete/6.3.4_2no7mvu6zf2xjpiieqfbigrd6i: - resolution: {integrity: sha512-irxKsTSjS0OkfMWWt9YxtNK97++/E+XIHfKnRpSVfZyHzda/amYF0BR+T8mMkrGQWidx2zApxHx08GT13egyQA==} - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - dependencies: - '@codemirror/language': github.com/lishid/cm-language/073afd8e6bc4d8e5cf6170a50f9b668a98c39f1c - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - '@lezer/common': 1.0.2 - dev: true - - /@codemirror/commands/6.1.2: - resolution: {integrity: sha512-sO3jdX1s0pam6lIdeSJLMN3DQ6mPEbM4yLvyKkdqtmd/UDwhXA5+AwFJ89rRXm6vTeOXBsE5cAmlos/t7MJdgg==} - dependencies: - '@codemirror/language': 6.2.1 - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - '@lezer/common': 1.0.2 - dev: true - - /@codemirror/highlight/0.19.8: - resolution: {integrity: sha512-v/lzuHjrYR8MN2mEJcUD6fHSTXXli9C1XGYpr+ElV6fLBIUhMTNKR3qThp611xuWfXfwDxeL7ppcbkM/MzPV3A==} - deprecated: As of 0.20.0, this package has been split between @lezer/highlight and @codemirror/language - dependencies: - '@codemirror/language': 0.19.10 - '@codemirror/rangeset': 0.19.9 - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 - '@lezer/common': 0.15.12 - style-mod: 4.0.0 - dev: true - - /@codemirror/lang-css/6.0.1_@codemirror+view@6.6.0: - resolution: {integrity: sha512-rlLq1Dt0WJl+2epLQeAsfqIsx3lGu4HStHCJu95nGGuz2P2fNugbU3dQYafr2VRjM4eMC9HviI6jvS98CNtG5w==} - dependencies: - '@codemirror/autocomplete': 6.3.4_2no7mvu6zf2xjpiieqfbigrd6i - '@codemirror/language': 6.2.1 - '@codemirror/state': 6.1.4 - '@lezer/css': 1.1.0 - transitivePeerDependencies: - - '@codemirror/view' - dev: true - - /@codemirror/lang-html/6.3.1: - resolution: {integrity: sha512-36PoquiZ1S8HW0mF2hupZYPajYgpSwK27YDPOOwMk4jFW+shkS79I7mSNmYlDBkgRS8p3ldfh3dG2/HknwsawA==} - dependencies: - '@codemirror/autocomplete': 6.3.4_2no7mvu6zf2xjpiieqfbigrd6i - '@codemirror/lang-css': 6.0.1_@codemirror+view@6.6.0 - '@codemirror/lang-javascript': 6.1.1 - '@codemirror/language': 6.2.1 - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - '@lezer/common': 1.0.2 - '@lezer/html': 1.2.0 - dev: true - - /@codemirror/lang-javascript/6.1.1: - resolution: {integrity: sha512-F4+kiuC5d5dUSJmff96tJQwpEXs/tX/4bapMRnZWW6bHKK1Fx6MunTzopkCUWRa9bF87GPmb9m7Qtg7Yv8f3uQ==} - dependencies: - '@codemirror/autocomplete': 6.3.4_2no7mvu6zf2xjpiieqfbigrd6i - '@codemirror/language': 6.2.1 - '@codemirror/lint': 6.1.0 - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - '@lezer/common': 1.0.2 - '@lezer/javascript': 1.3.1 - dev: true - - /@codemirror/language/0.19.10: - resolution: {integrity: sha512-yA0DZ3RYn2CqAAGW62VrU8c4YxscMQn45y/I9sjBlqB1e2OTQLg4CCkMBuMSLXk4xaqjlsgazeOQWaJQOKfV8Q==} - dependencies: - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - '@codemirror/view': 0.19.48 - '@lezer/common': 0.15.12 - '@lezer/lr': 0.15.8 - dev: true - - /@codemirror/language/6.2.1: - resolution: {integrity: sha512-MC3svxuvIj0MRpFlGHxLS6vPyIdbTr2KKPEW46kCoCXw2ktb4NTkpkPBI/lSP/FoNXLCBJ0mrnUi1OoZxtpW1Q==} - dependencies: - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - '@lezer/common': 1.0.2 - '@lezer/highlight': 1.1.3 - '@lezer/lr': 1.2.5 - style-mod: 4.0.0 - dev: true - - /@codemirror/lint/6.1.0: - resolution: {integrity: sha512-mdvDQrjRmYPvQ3WrzF6Ewaao+NWERYtpthJvoQ3tK3t/44Ynhk8ZGjTSL9jMEv8CgSMogmt75X8ceOZRDSXHtQ==} - dependencies: - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - crelt: 1.0.5 - dev: true - - /@codemirror/rangeset/0.19.9: - resolution: {integrity: sha512-V8YUuOvK+ew87Xem+71nKcqu1SXd5QROMRLMS/ljT5/3MCxtgrRie1Cvild0G/Z2f1fpWxzX78V0U4jjXBorBQ==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/state - dependencies: - '@codemirror/state': 0.19.9 - dev: true - - /@codemirror/search/6.2.3: - resolution: {integrity: sha512-V9n9233lopQhB1dyjsBK2Wc1i+8hcCqxl1wQ46c5HWWLePoe4FluV3TGHoZ04rBRlGjNyz9DTmpJErig8UE4jw==} - dependencies: - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - crelt: 1.0.5 - dev: true - - /@codemirror/state/0.19.9: - resolution: {integrity: sha512-psOzDolKTZkx4CgUqhBQ8T8gBc0xN5z4gzed109aF6x7D7umpDRoimacI/O6d9UGuyl4eYuDCZmDFr2Rq7aGOw==} - dependencies: - '@codemirror/text': 0.19.6 - dev: true - - /@codemirror/state/6.1.4: - resolution: {integrity: sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==} - dev: true - - /@codemirror/text/0.19.6: - resolution: {integrity: sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/state - dev: true - - /@codemirror/view/0.19.48: - resolution: {integrity: sha512-0eg7D2Nz4S8/caetCTz61rK0tkHI17V/d15Jy0kLOT8dTLGGNJUponDnW28h2B6bERmPlVHKh8MJIr5OCp1nGw==} - dependencies: - '@codemirror/rangeset': 0.19.9 - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - style-mod: 4.0.0 - w3c-keyname: 2.2.6 - dev: true - - /@codemirror/view/6.6.0: - resolution: {integrity: sha512-40VaFVZI3rkyjO5GHFAbNwaW+YgZexjKyx5gxLU2DvfuXAEZX0kW0apOXb0SBRLnKIQJ+U/n2nPfxgBVFHERrg==} - dependencies: - '@codemirror/state': 6.1.4 - style-mod: 4.0.0 - w3c-keyname: 2.2.6 - dev: true - - /@esbuild/android-arm/0.15.16: - resolution: {integrity: sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64/0.15.16: - resolution: {integrity: sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@lezer/common/0.15.12: - resolution: {integrity: sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==} - dev: true - - /@lezer/common/1.0.2: - resolution: {integrity: sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==} - dev: true - - /@lezer/css/1.1.0: - resolution: {integrity: sha512-3dc6l8ZQOOAZUhNk6ekrkaZ6iJScn0QKxsmKgmn0BsaIXePqgPPk3d1iqo/d7laICE6eYrLpxm5HrGyNyR0hfQ==} - dependencies: - '@lezer/highlight': 1.1.3 - '@lezer/lr': 1.2.5 - dev: true - - /@lezer/highlight/1.1.3: - resolution: {integrity: sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==} - dependencies: - '@lezer/common': 1.0.2 - dev: true - - /@lezer/html/1.2.0: - resolution: {integrity: sha512-T6sseEJQPTFayX3h9DINh7KyFBwCjEtrqQRD+7USmtkJh1xHDutsB6KYHKveSd+TbsedIPAcZwar+gkHl1rVSw==} - dependencies: - '@lezer/common': 1.0.2 - '@lezer/highlight': 1.1.3 - '@lezer/lr': 1.2.5 - dev: true - - /@lezer/javascript/1.3.1: - resolution: {integrity: sha512-3Z6OggGxRuqMntAuadxW0Oy7Zbs56KJSwujDc6vwhVfbi5upHOEzNIrNLvphDU/HozLoTCGQcjNmjLkb2Zr5pg==} - dependencies: - '@lezer/highlight': 1.1.3 - '@lezer/lr': 1.2.5 - dev: true - - /@lezer/lr/0.15.8: - resolution: {integrity: sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==} - dependencies: - '@lezer/common': 0.15.12 - dev: true - - /@lezer/lr/1.2.5: - resolution: {integrity: sha512-f9319YG1A/3ysgUE3bqCHEd7g+3ZZ71MWlwEc42mpnLVYXgfJJgtu1XAyBB4Kz8FmqmnFe9caopDqKeMMMAU6g==} - dependencies: - '@lezer/common': 1.0.2 - dev: true - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.13.0 - dev: true - - /@types/canvas-confetti/1.6.0: - resolution: {integrity: sha512-Yq6rIccwcco0TLD5SMUrIM7Fk7Fe/C0jmNRxJJCLtAF6gebDkPuUjK5EHedxecm69Pi/aA+It39Ux4OHmFhjRw==} - dev: true - - /@types/codemirror/0.0.108: - resolution: {integrity: sha512-3FGFcus0P7C2UOGCNUVENqObEb4SFk+S8Dnxq7K6aIsLVs/vDtlangl3PEO0ykaKXyK56swVF6Nho7VsA44uhw==} - dependencies: - '@types/tern': 0.23.4 - dev: true - - /@types/estree/1.0.0: - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} - dev: true - - /@types/json-schema/7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - dev: true - - /@types/node/18.11.9: - resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} - dev: true - - /@types/prop-types/15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - dev: true - - /@types/react/18.0.25: - resolution: {integrity: sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 - csstype: 3.1.1 - dev: true - - /@types/scheduler/0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - dev: true - - /@types/semver/7.3.13: - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} - dev: true - - /@types/tern/0.23.4: - resolution: {integrity: sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==} - dependencies: - '@types/estree': 1.0.0 - dev: true - - /@typescript-eslint/eslint-plugin/5.45.0_fa34fco6ifjoy23bohvwoqn6xu: - resolution: {integrity: sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/parser': 5.45.0_typescript@4.9.3 - '@typescript-eslint/scope-manager': 5.45.0 - '@typescript-eslint/type-utils': 5.45.0_typescript@4.9.3 - '@typescript-eslint/utils': 5.45.0_typescript@4.9.3 - debug: 4.3.4 - ignore: 5.2.1 - natural-compare-lite: 1.4.0 - regexpp: 3.2.0 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.3 - typescript: 4.9.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser/5.45.0_typescript@4.9.3: - resolution: {integrity: sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.45.0 - '@typescript-eslint/types': 5.45.0 - '@typescript-eslint/typescript-estree': 5.45.0_typescript@4.9.3 - debug: 4.3.4 - typescript: 4.9.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager/5.45.0: - resolution: {integrity: sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.45.0 - '@typescript-eslint/visitor-keys': 5.45.0 - dev: true - - /@typescript-eslint/type-utils/5.45.0_typescript@4.9.3: - resolution: {integrity: sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 5.45.0_typescript@4.9.3 - '@typescript-eslint/utils': 5.45.0_typescript@4.9.3 - debug: 4.3.4 - tsutils: 3.21.0_typescript@4.9.3 - typescript: 4.9.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types/5.45.0: - resolution: {integrity: sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/typescript-estree/5.45.0_typescript@4.9.3: - resolution: {integrity: sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.45.0 - '@typescript-eslint/visitor-keys': 5.45.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.3 - typescript: 4.9.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils/5.45.0_typescript@4.9.3: - resolution: {integrity: sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.45.0 - '@typescript-eslint/types': 5.45.0 - '@typescript-eslint/typescript-estree': 5.45.0_typescript@4.9.3 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys/5.45.0: - resolution: {integrity: sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.45.0 - eslint-visitor-keys: 3.3.0 - dev: true - - /acorn-node/1.8.2: - resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - xtend: 4.0.2 - dev: true - - /acorn-walk/7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - - /anymatch/3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /arg/5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: true - - /array-move/4.0.0: - resolution: {integrity: sha512-+RY54S8OuVvg94THpneQvFRmqWdAHeqtMzgMW6JNurHxe8rsS07cHQdfGkXnTUXiBcyZ0j3SiDIxxj0RPiqCkQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false - - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /binary-extensions/2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /builtin-modules/3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true - - /call-bind/1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.1.3 - dev: true - - /camelcase-css/2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true - - /canvas-confetti/1.6.0: - resolution: {integrity: sha512-ej+w/m8Jzpv9Z7W7uJZer14Ke8P2ogsjg4ZMGIuq4iqUOqY2Jq8BNW42iGmNfRwREaaEfFIczLuZZiEVSYNHAA==} - dev: false - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - - /chokidar/3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /codemirror/6.0.1: - resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} - dependencies: - '@codemirror/autocomplete': 6.3.4_2no7mvu6zf2xjpiieqfbigrd6i - '@codemirror/commands': 6.1.2 - '@codemirror/language': 6.2.1 - '@codemirror/lint': 6.1.0 - '@codemirror/search': 6.2.3 - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - dev: true - - /codemirror6-themes/0.1.2: - resolution: {integrity: sha512-MlXaa3Bx3iz4Bh9DK7+Xy+aPqbRHRsPG1iogoe6W/5f6JJqTER5QroZfKTz+ACfTqpjk2OHahv6XMl8KRi6h0w==} - dependencies: - '@codemirror/highlight': 0.19.8 - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 - dev: true - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true - - /crelt/1.0.5: - resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} - dev: true - - /cross-spawn/6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.1 - shebang-command: 1.2.0 - which: 1.3.1 - dev: true - - /cssesc/3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /csstype/3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} - dev: true - - /data-uri-to-buffer/4.0.0: - resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} - engines: {node: '>= 12'} - dev: true - - /debug/4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - - /define-properties/1.1.4: - resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: true - - /defined/1.0.1: - resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} - dev: true - - /detective/5.2.1: - resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} - engines: {node: '>=0.8.0'} - hasBin: true - dependencies: - acorn-node: 1.8.2 - defined: 1.0.1 - minimist: 1.2.7 - dev: true - - /didyoumean/1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true - - /dir-glob/3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /dlv/1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - - /es-abstract/1.20.4: - resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - es-to-primitive: 1.2.1 - function-bind: 1.1.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.1.3 - get-symbol-description: 1.0.0 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-symbols: 1.0.3 - internal-slot: 1.0.3 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-weakref: 1.0.2 - object-inspect: 1.12.2 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - safe-regex-test: 1.0.0 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - unbox-primitive: 1.0.2 - dev: true - - /es-to-primitive/1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - - /esbuild-android-64/0.15.16: - resolution: {integrity: sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64/0.15.16: - resolution: {integrity: sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.15.16: - resolution: {integrity: sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.15.16: - resolution: {integrity: sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.15.16: - resolution: {integrity: sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.15.16: - resolution: {integrity: sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.15.16: - resolution: {integrity: sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.15.16: - resolution: {integrity: sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.15.16: - resolution: {integrity: sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.15.16: - resolution: {integrity: sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.15.16: - resolution: {integrity: sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.15.16: - resolution: {integrity: sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.15.16: - resolution: {integrity: sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x/0.15.16: - resolution: {integrity: sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64/0.15.16: - resolution: {integrity: sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64/0.15.16: - resolution: {integrity: sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-plugin-alias/0.2.1: - resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} - dev: true - - /esbuild-sass-plugin/2.4.2: - resolution: {integrity: sha512-Rsih/IkKDZlBbw73tUhten9gpg6NElDPLzUl/aSSo4A8oqoHTa5PGHq0yrsuxbszSWAppCFBYDVvi8CGGmvU3A==} - dependencies: - esbuild: 0.15.16 - resolve: 1.22.1 - sass: 1.56.1 - dev: true - - /esbuild-sunos-64/0.15.16: - resolution: {integrity: sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.15.16: - resolution: {integrity: sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.15.16: - resolution: {integrity: sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.15.16: - resolution: {integrity: sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild/0.15.16: - resolution: {integrity: sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.16 - '@esbuild/linux-loong64': 0.15.16 - esbuild-android-64: 0.15.16 - esbuild-android-arm64: 0.15.16 - esbuild-darwin-64: 0.15.16 - esbuild-darwin-arm64: 0.15.16 - esbuild-freebsd-64: 0.15.16 - esbuild-freebsd-arm64: 0.15.16 - esbuild-linux-32: 0.15.16 - esbuild-linux-64: 0.15.16 - esbuild-linux-arm: 0.15.16 - esbuild-linux-arm64: 0.15.16 - esbuild-linux-mips64le: 0.15.16 - esbuild-linux-ppc64le: 0.15.16 - esbuild-linux-riscv64: 0.15.16 - esbuild-linux-s390x: 0.15.16 - esbuild-netbsd-64: 0.15.16 - esbuild-openbsd-64: 0.15.16 - esbuild-sunos-64: 0.15.16 - esbuild-windows-32: 0.15.16 - esbuild-windows-64: 0.15.16 - esbuild-windows-arm64: 0.15.16 - dev: true - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: true - - /eslint-scope/5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-utils/3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys/2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - - /eslint-visitor-keys/3.3.0: - resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse/4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - - /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /fast-glob/3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fastq/1.13.0: - resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} - dependencies: - reusify: 1.0.4 - dev: true - - /fetch-blob/3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.2.1 - dev: true - - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /formdata-polyfill/4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - dependencies: - fetch-blob: 3.2.0 - dev: true - - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - - /function.prototype.name/1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 - functions-have-names: 1.2.3 - dev: true - - /functions-have-names/1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - - /get-intrinsic/1.1.3: - resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - dev: true - - /get-symbol-description/1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.3 - dev: true - - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent/6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /globby/11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.1 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /graceful-fs/4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: true - - /has-bigints/1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - - /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true - - /has-property-descriptors/1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.1.3 - dev: true - - /has-symbols/1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: true - - /has-tostringtag/1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true - - /hosted-git-info/2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true - - /ignore/5.2.1: - resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==} - engines: {node: '>= 4'} - dev: true - - /immutable/4.1.0: - resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} - dev: true - - /internal-slot/1.0.3: - resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.1.3 - has: 1.0.3 - side-channel: 1.0.4 - dev: true - - /is-arrayish/0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true - - /is-bigint/1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 - dev: true - - /is-binary-path/2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-boolean-object/1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - - /is-callable/1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true - - /is-core-module/2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - dev: true - - /is-date-object/1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-negative-zero/2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true - - /is-number-object/1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-regex/1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: true - - /is-shared-array-buffer/1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - dependencies: - call-bind: 1.0.2 - dev: true - - /is-string/1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-symbol/1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /is-weakref/1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.2 - dev: true - - /isexe/2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /json-parse-better-errors/1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - - /lilconfig/2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} - engines: {node: '>=10'} - dev: true - - /load-json-file/4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.10 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /memorystream/0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - dev: true - - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimist/1.2.7: - resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} - dev: true - - /moment/2.29.4: - resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - dev: true - - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true - - /nanoid/3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /natural-compare-lite/1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - - /nice-try/1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - dev: true - - /node-domexception/1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - dev: true - - /node-fetch/3.3.0: - resolution: {integrity: sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - data-uri-to-buffer: 4.0.0 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - dev: true - - /normalize-package-data/2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.1 - semver: 5.7.1 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /npm-run-all/4.1.5: - resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} - engines: {node: '>= 4'} - hasBin: true - dependencies: - ansi-styles: 3.2.1 - chalk: 2.4.2 - cross-spawn: 6.0.5 - memorystream: 0.3.1 - minimatch: 3.1.2 - pidtree: 0.3.1 - read-pkg: 3.0.0 - shell-quote: 1.7.4 - string.prototype.padend: 3.1.4 - dev: true - - /object-hash/3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - dev: true - - /object-inspect/1.12.2: - resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} - dev: true - - /object-keys/1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true - - /object.assign/4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - - /obsidian/0.16.3_lbdck2taelwzbjy5j3vthedh6e: - resolution: {integrity: sha512-hal9qk1A0GMhHSeLr2/+o3OpLmImiP+Y+sx2ewP13ds76KXsziG96n+IPFT0mSkup1zSwhEu+DeRhmbcyCCXWw==} - peerDependencies: - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - dependencies: - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - '@types/codemirror': 0.0.108 - moment: 2.29.4 - dev: true - - /parse-json/4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - - /path-key/2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - dev: true - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-type/3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - - /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pidtree/0.3.1: - resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - - /pify/2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - dev: true - - /pify/3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true - - /postcss-import/14.1.0_postcss@8.4.19: - resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.0.0 - dependencies: - postcss: 8.4.19 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.1 - dev: true - - /postcss-js/4.0.0_postcss@8.4.19: - resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.3.3 - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.19 - dev: true - - /postcss-load-config/3.1.4_postcss@8.4.19: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.0.6 - postcss: 8.4.19 - yaml: 1.10.2 - dev: true - - /postcss-nested/6.0.0_postcss@8.4.19: - resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - dependencies: - postcss: 8.4.19 - postcss-selector-parser: 6.0.11 - dev: true - - /postcss-selector-parser/6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - - /postcss-value-parser/4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true - - /postcss/8.4.19: - resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.4 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - - /preact/10.11.3: - resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} - dev: false - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /quick-lru/5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - - /read-cache/1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - dependencies: - pify: 2.3.0 - dev: true - - /read-pkg/3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /regexp.prototype.flags/1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - functions-have-names: 1.2.3 - dev: true - - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - - /resolve/1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} - hasBin: true - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /reusify/1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /safe-regex-test/1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.3 - is-regex: 1.1.4 - dev: true - - /sass/1.56.1: - resolution: {integrity: sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==} - engines: {node: '>=12.0.0'} - hasBin: true - dependencies: - chokidar: 3.5.3 - immutable: 4.1.0 - source-map-js: 1.0.2 - dev: true - - /semver/5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: true - - /semver/7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /shebang-command/1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - dependencies: - shebang-regex: 1.0.0 - dev: true - - /shebang-regex/1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - dev: true - - /shell-quote/1.7.4: - resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} - dev: true - - /side-channel/1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.3 - object-inspect: 1.12.2 - dev: true - - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /source-map-js/1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true - - /spdx-correct/3.1.1: - resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.12 - dev: true - - /spdx-exceptions/2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true - - /spdx-expression-parse/3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.12 - dev: true - - /spdx-license-ids/3.0.12: - resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} - dev: true - - /string.prototype.padend/3.1.4: - resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 - dev: true - - /string.prototype.trimend/1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 - dev: true - - /string.prototype.trimstart/1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 - dev: true - - /strip-bom/3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - - /style-mod/4.0.0: - resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} - dev: true - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /tailwindcss/3.2.4: - resolution: {integrity: sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==} - engines: {node: '>=12.13.0'} - hasBin: true - dependencies: - arg: 5.0.2 - chokidar: 3.5.3 - color-name: 1.1.4 - detective: 5.2.1 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.2.12 - glob-parent: 6.0.2 - is-glob: 4.0.3 - lilconfig: 2.0.6 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.19 - postcss-import: 14.1.0_postcss@8.4.19 - postcss-js: 4.0.0_postcss@8.4.19 - postcss-load-config: 3.1.4_postcss@8.4.19 - postcss-nested: 6.0.0_postcss@8.4.19 - postcss-selector-parser: 6.0.11 - postcss-value-parser: 4.2.0 - quick-lru: 5.1.1 - resolve: 1.22.1 - transitivePeerDependencies: - - ts-node - dev: true - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - - /tslib/2.4.1: - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} - dev: true - - /tsutils/3.21.0_typescript@4.9.3: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.9.3 - dev: true - - /typescript/4.9.3: - resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - - /unbox-primitive/1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - dependencies: - call-bind: 1.0.2 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: true - - /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true - - /validate-npm-package-license/3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.1.1 - spdx-expression-parse: 3.0.1 - dev: true - - /w3c-keyname/2.2.6: - resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} - dev: true - - /web-streams-polyfill/3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} - engines: {node: '>= 8'} - dev: true - - /which-boxed-primitive/1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - dev: true - - /which/1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - - /yaml/1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - github.com/lishid/cm-language/073afd8e6bc4d8e5cf6170a50f9b668a98c39f1c: - resolution: {tarball: https://codeload.github.com/lishid/cm-language/tar.gz/073afd8e6bc4d8e5cf6170a50f9b668a98c39f1c} - name: '@codemirror/language' - version: 6.2.1 - prepare: true - requiresBuild: true - dependencies: - '@codemirror/state': 6.1.4 - '@codemirror/view': 6.6.0 - '@lezer/common': 1.0.2 - '@lezer/highlight': 1.1.3 - '@lezer/lr': 1.2.5 - style-mod: 4.0.0 - dev: true diff --git a/scripts/esbuild.config.mjs b/scripts/esbuild.config.mjs index e606db4..97b326e 100644 --- a/scripts/esbuild.config.mjs +++ b/scripts/esbuild.config.mjs @@ -1,9 +1,9 @@ import esbuild from "esbuild"; import process from "process"; -import builtins from 'builtin-modules'; +import builtins from "builtin-modules"; import alias from "esbuild-plugin-alias"; -import { sassPlugin } from 'esbuild-sass-plugin'; -import { createRequire } from 'module'; +import { sassPlugin } from "esbuild-sass-plugin"; +import { createRequire } from "module"; import { renameSync, copyFileSync, appendFileSync } from "fs"; const require = createRequire(import.meta.url); diff --git a/scripts/update-icon-list.mjs b/scripts/update-icon-list.mjs index 3bbf900..c510ebd 100644 --- a/scripts/update-icon-list.mjs +++ b/scripts/update-icon-list.mjs @@ -3,28 +3,162 @@ import fetch from "node-fetch"; // eslint-disable-next-line no-async-promise-executor let version = await new Promise(async (resolve) => { console.log("The latest 5 Versions are:"); - console.log((await (await fetch("https://api.github.com/repos/lucide-icons/lucide/tags")).json()).slice(0, 4).map((pre) => pre.name).join("\n") + "\n"); + console.log( + ( + await ( + await fetch( + "https://api.github.com/repos/lucide-icons/lucide/tags" + ) + ).json() + ) + .slice(0, 4) + .map((pre) => pre.name) + .join("\n") + "\n" + ); console.log("Select Lucide Version: "); process.stdin.on("data", resolve); }); -const files = await (await fetch(`https://api.github.com/repos/lucide-icons/lucide/git/trees/${version}?recursive=1`)).json(); -const obsidianIconList = ["any-key", "audio-file", "blocks", "bold-glyph", "bracket-glyph", "broken-link", "bullet-list", "bullet-list-glyph", "calendar-with-checkmark", "check-in-circle", "check-small", "checkbox-glyph", "checkmark", "clock", "cloud", "code-glyph", "create-new", "cross", "cross-in-box", "crossed-star", "csv", "deleteColumn", "deleteRow", "dice", "document", "documents", "dot-network", "double-down-arrow-glyph", "double-up-arrow-glyph", "down-arrow-with-tail", "down-chevron-glyph", "enter", "exit-fullscreen", "expand-vertically", "filled-pin", "folder", "formula", "forward-arrow", "fullscreen", "gear", "go-to-file", "hashtag", "heading-glyph", "help", "highlight-glyph", "horizontal-split", "image-file", "image-glyph", "indent-glyph", "info", "insertColumn", "insertRow", "install", "italic-glyph", "keyboard-glyph", "languages", "left-arrow", "left-arrow-with-tail", "left-chevron-glyph", "lines-of-text", "link", "link-glyph", "logo-crystal", "magnifying-glass", "microphone", "microphone-filled", "minus-with-circle", "moveColumnLeft", "moveColumnRight", "moveRowDown", "moveRowUp", "note-glyph", "number-list-glyph", "open-vault", "pane-layout", "paper-plane", "paused", "pdf-file", "pencil", "percent-sign-glyph", "pin", "plus-with-circle", "popup-open", "presentation", "price-tag-glyph", "quote-glyph", "redo-glyph", "reset", "right-arrow", "right-arrow-with-tail", "right-chevron-glyph", "right-triangle", "run-command", "search", "sheets-in-box", "sortAsc", "sortDesc", "spreadsheet", "stacked-levels", "star", "star-list", "strikethrough-glyph", "switch", "sync", "sync-small", "tag-glyph", "three-horizontal-bars", "trash", "undo-glyph", "unindent-glyph", "up-and-down-arrows", "up-arrow-with-tail", "up-chevron-glyph", "uppercase-lowercase-a", "vault", "vertical-split", "vertical-three-dots", "wrench-screwdriver-glyph"]; +const files = await ( + await fetch( + `https://api.github.com/repos/lucide-icons/lucide/git/trees/${version}?recursive=1` + ) +).json(); +const obsidianIconList = [ + "any-key", + "audio-file", + "blocks", + "bold-glyph", + "bracket-glyph", + "broken-link", + "bullet-list", + "bullet-list-glyph", + "calendar-with-checkmark", + "check-in-circle", + "check-small", + "checkbox-glyph", + "checkmark", + "clock", + "cloud", + "code-glyph", + "create-new", + "cross", + "cross-in-box", + "crossed-star", + "csv", + "deleteColumn", + "deleteRow", + "dice", + "document", + "documents", + "dot-network", + "double-down-arrow-glyph", + "double-up-arrow-glyph", + "down-arrow-with-tail", + "down-chevron-glyph", + "enter", + "exit-fullscreen", + "expand-vertically", + "filled-pin", + "folder", + "formula", + "forward-arrow", + "fullscreen", + "gear", + "go-to-file", + "hashtag", + "heading-glyph", + "help", + "highlight-glyph", + "horizontal-split", + "image-file", + "image-glyph", + "indent-glyph", + "info", + "insertColumn", + "insertRow", + "install", + "italic-glyph", + "keyboard-glyph", + "languages", + "left-arrow", + "left-arrow-with-tail", + "left-chevron-glyph", + "lines-of-text", + "link", + "link-glyph", + "logo-crystal", + "magnifying-glass", + "microphone", + "microphone-filled", + "minus-with-circle", + "moveColumnLeft", + "moveColumnRight", + "moveRowDown", + "moveRowUp", + "note-glyph", + "number-list-glyph", + "open-vault", + "pane-layout", + "paper-plane", + "paused", + "pdf-file", + "pencil", + "percent-sign-glyph", + "pin", + "plus-with-circle", + "popup-open", + "presentation", + "price-tag-glyph", + "quote-glyph", + "redo-glyph", + "reset", + "right-arrow", + "right-arrow-with-tail", + "right-chevron-glyph", + "right-triangle", + "run-command", + "search", + "sheets-in-box", + "sortAsc", + "sortDesc", + "spreadsheet", + "stacked-levels", + "star", + "star-list", + "strikethrough-glyph", + "switch", + "sync", + "sync-small", + "tag-glyph", + "three-horizontal-bars", + "trash", + "undo-glyph", + "unindent-glyph", + "up-and-down-arrows", + "up-arrow-with-tail", + "up-chevron-glyph", + "uppercase-lowercase-a", + "vault", + "vertical-split", + "vertical-three-dots", + "wrench-screwdriver-glyph", +]; const iconList = []; for (const item of files.tree) { - const icon = (item.path).match(/icons\/(.*)\.svg/)?.[1]; + const icon = item.path.match(/icons\/(.*)\.svg/)?.[1]; if (icon) iconList.push(icon); } const newList = iconList.reduce((acc, lucide) => { if (obsidianIconList.findIndex((obsidian) => obsidian === lucide) === -1) { - acc.push(lucide) + acc.push(lucide); } else { acc.push("lucide-" + lucide); } - return acc + return acc; }, []); const dedupedList = [...new Set(newList)]; diff --git a/src/assets/commander-logo-christmas.svg b/src/assets/commander-logo-christmas.svg index 6e033f9..f068942 100644 --- a/src/assets/commander-logo-christmas.svg +++ b/src/assets/commander-logo-christmas.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/constants.ts b/src/constants.ts index c9b49a6..6f9d09d 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -30,4 +30,595 @@ export const DEFAULT_SETTINGS: CommanderSettings = { }, }; -export const ICON_LIST = ["activity", "airplay", "alarm-check", "alarm-clock-off", "alarm-clock", "alarm-minus", "alarm-plus", "album", "alert-circle", "alert-octagon", "alert-triangle", "align-center-horizontal", "align-center-vertical", "align-center", "align-end-horizontal", "align-end-vertical", "align-horizontal-distribute-center", "align-horizontal-distribute-end", "align-horizontal-distribute-start", "align-horizontal-justify-center", "align-horizontal-justify-end", "align-horizontal-justify-start", "align-horizontal-space-around", "align-horizontal-space-between", "align-justify", "align-left", "align-right", "align-start-horizontal", "align-start-vertical", "align-vertical-distribute-center", "align-vertical-distribute-end", "align-vertical-distribute-start", "align-vertical-justify-center", "align-vertical-justify-end", "align-vertical-justify-start", "align-vertical-space-around", "align-vertical-space-between", "anchor", "aperture", "archive", "arrow-big-down", "arrow-big-left", "arrow-big-right", "arrow-big-up", "arrow-down-circle", "arrow-down-left", "arrow-down-right", "arrow-down", "arrow-left-circle", "arrow-left-right", "arrow-left", "arrow-right-circle", "arrow-right", "arrow-up-circle", "arrow-up-left", "arrow-up-right", "arrow-up", "asterisk", "at-sign", "award", "axe", "banknote", "bar-chart-2", "bar-chart", "baseline", "battery-charging", "battery-full", "battery-low", "battery-medium", "battery", "beaker", "bell-minus", "bell-off", "bell-plus", "bell-ring", "bell", "bike", "binary", "bitcoin", "bluetooth-connected", "bluetooth-off", "bluetooth-searching", "bluetooth", "bold", "book-open", "book", "bookmark-minus", "bookmark-plus", "bookmark", "bot", "box-select", "box", "briefcase", "brush", "bug", "building-2", "building", "bus", "calculator", "calendar", "camera-off", "camera", "car", "carrot", "cast", "check-circle-2", "check-circle", "check-square", "check", "chevron-down", "chevron-first", "chevron-last", "chevron-left", "chevron-right", "chevron-up", "chevrons-down-up", "chevrons-down", "chevrons-left", "chevrons-right", "chevrons-up-down", "chevrons-up", "chrome", "circle-slashed", "circle", "clipboard-check", "clipboard-copy", "clipboard-list", "clipboard-x", "clipboard", "clock-1", "clock-10", "clock-11", "clock-12", "clock-2", "clock-3", "clock-4", "clock-5", "clock-6", "clock-7", "clock-8", "clock-9", "lucide-clock", "cloud-drizzle", "cloud-fog", "cloud-hail", "cloud-lightning", "cloud-moon", "cloud-off", "cloud-rain-wind", "cloud-rain", "cloud-snow", "cloud-sun", "lucide-cloud", "cloudy", "clover", "code-2", "code", "codepen", "codesandbox", "coffee", "coins", "columns", "command", "compass", "contact", "contrast", "cookie", "copy", "copyleft", "copyright", "corner-down-left", "corner-down-right", "corner-left-down", "corner-left-up", "corner-right-down", "corner-right-up", "corner-up-left", "corner-up-right", "cpu", "credit-card", "crop", "lucide-cross", "crosshair", "crown", "currency", "database", "delete", "dice-1", "dice-2", "dice-3", "dice-4", "dice-5", "dice-6", "disc", "divide-circle", "divide-square", "divide", "dollar-sign", "download-cloud", "download", "dribbble", "droplet", "droplets", "drumstick", "edit-2", "edit-3", "edit", "egg", "equal-not", "equal", "eraser", "euro", "expand", "external-link", "eye-off", "eye", "facebook", "fast-forward", "feather", "figma", "file-check-2", "file-check", "file-code", "file-digit", "file-input", "file-minus-2", "file-minus", "file-output", "file-plus-2", "file-plus", "file-search", "file-text", "file-x-2", "file-x", "file", "files", "film", "filter", "flag-off", "flag-triangle-left", "flag-triangle-right", "flag", "flame", "flashlight-off", "flashlight", "flask-conical", "flask-round", "folder-minus", "folder-open", "folder-plus", "lucide-folder", "form-input", "forward", "frame", "framer", "frown", "function-square", "gamepad-2", "gamepad", "gauge", "gavel", "gem", "ghost", "gift", "git-branch-plus", "git-branch", "git-commit", "git-fork", "git-merge", "git-pull-request", "github", "gitlab", "glasses", "globe-2", "globe", "grab", "graduation-cap", "grid", "grip-horizontal", "grip-vertical", "hammer", "hand-metal", "hand", "hard-drive", "hard-hat", "hash", "haze", "headphones", "heart", "help-circle", "hexagon", "highlighter", "history", "home", "image-minus", "image-off", "image-plus", "image", "import", "inbox", "indent", "indian-rupee", "infinity", "lucide-info", "inspect", "instagram", "italic", "japanese-yen", "key", "keyboard", "landmark", "lucide-languages", "laptop-2", "laptop", "lasso-select", "lasso", "layers", "layout-dashboard", "layout-grid", "layout-list", "layout-template", "layout", "library", "life-buoy", "lightbulb-off", "lightbulb", "link-2-off", "link-2", "lucide-link", "linkedin", "list-checks", "list-minus", "list-ordered", "list-plus", "list-x", "list", "loader-2", "loader", "locate-fixed", "locate-off", "locate", "lock", "log-in", "log-out", "mail", "map-pin", "map", "maximize-2", "maximize", "megaphone", "meh", "menu", "message-circle", "message-square", "mic-off", "mic", "minimize-2", "minimize", "minus-circle", "minus-square", "minus", "monitor-off", "monitor-speaker", "monitor", "moon", "more-horizontal", "more-vertical", "mountain-snow", "mountain", "mouse-pointer-2", "mouse-pointer-click", "mouse-pointer", "mouse", "move-diagonal-2", "move-diagonal", "move-horizontal", "move-vertical", "move", "music", "navigation-2", "navigation", "network", "octagon", "option", "outdent", "package-check", "package-minus", "package-plus", "package-search", "package-x", "package", "palette", "palmtree", "paperclip", "pause-circle", "pause-octagon", "pause", "pen-tool", "lucide-pencil", "percent", "person-standing", "phone-call", "phone-forwarded", "phone-incoming", "phone-missed", "phone-off", "phone-outgoing", "phone", "pie-chart", "piggy-bank", "lucide-pin", "pipette", "plane", "play-circle", "play", "plug-zap", "plus-circle", "plus-square", "plus", "pocket", "podcast", "pointer", "pound-sterling", "power-off", "power", "printer", "qr-code", "quote", "radio-receiver", "radio", "redo", "refresh-ccw", "refresh-cw", "regex", "repeat-1", "repeat", "reply-all", "reply", "rewind", "rocket", "rocking-chair", "rotate-ccw", "rotate-cw", "rss", "ruler", "russian-ruble", "save", "scale", "scan-line", "scan", "scissors", "screen-share-off", "screen-share", "lucide-search", "send", "separator-horizontal", "separator-vertical", "server-crash", "server-off", "server", "settings-2", "settings", "share-2", "share", "sheet", "shield-alert", "shield-check", "shield-close", "shield-off", "shield", "shirt", "shopping-bag", "shopping-cart", "shovel", "shrink", "shuffle", "sidebar-close", "sidebar-open", "sidebar", "sigma", "signal-high", "signal-low", "signal-medium", "signal-zero", "signal", "skip-back", "skip-forward", "skull", "slack", "slash", "sliders", "smartphone-charging", "smartphone", "smile", "snowflake", "sort-asc", "sort-desc", "speaker", "sprout", "square", "star-half", "lucide-star", "stop-circle", "stretch-horizontal", "stretch-vertical", "strikethrough", "subscript", "sun", "sunrise", "sunset", "superscript", "swiss-franc", "switch-camera", "table", "tablet", "tag", "target", "tent", "terminal-square", "terminal", "text-cursor-input", "text-cursor", "thermometer-snowflake", "thermometer-sun", "thermometer", "thumbs-down", "thumbs-up", "ticket", "timer-off", "timer-reset", "timer", "toggle-left", "toggle-right", "tornado", "trash-2", "lucide-trash", "trello", "trending-down", "trending-up", "triangle", "truck", "tv-2", "tv", "twitch", "twitter", "type", "umbrella", "underline", "undo", "unlink-2", "unlink", "unlock", "upload-cloud", "upload", "user-check", "user-minus", "user-plus", "user-x", "user", "users", "verified", "vibrate", "video-off", "video", "view", "voicemail", "volume-1", "volume-2", "volume-x", "volume", "wallet", "wand", "watch", "waves", "webcam", "wifi-off", "wifi", "wind", "wrap-text", "wrench", "x-circle", "x-octagon", "x-square", "x", "youtube", "zap-off", "zap", "zoom-in", "zoom-out", "search-large"]; +export const ICON_LIST = [ + "activity", + "airplay", + "alarm-check", + "alarm-clock-off", + "alarm-clock", + "alarm-minus", + "alarm-plus", + "album", + "alert-circle", + "alert-octagon", + "alert-triangle", + "align-center-horizontal", + "align-center-vertical", + "align-center", + "align-end-horizontal", + "align-end-vertical", + "align-horizontal-distribute-center", + "align-horizontal-distribute-end", + "align-horizontal-distribute-start", + "align-horizontal-justify-center", + "align-horizontal-justify-end", + "align-horizontal-justify-start", + "align-horizontal-space-around", + "align-horizontal-space-between", + "align-justify", + "align-left", + "align-right", + "align-start-horizontal", + "align-start-vertical", + "align-vertical-distribute-center", + "align-vertical-distribute-end", + "align-vertical-distribute-start", + "align-vertical-justify-center", + "align-vertical-justify-end", + "align-vertical-justify-start", + "align-vertical-space-around", + "align-vertical-space-between", + "anchor", + "aperture", + "archive", + "arrow-big-down", + "arrow-big-left", + "arrow-big-right", + "arrow-big-up", + "arrow-down-circle", + "arrow-down-left", + "arrow-down-right", + "arrow-down", + "arrow-left-circle", + "arrow-left-right", + "arrow-left", + "arrow-right-circle", + "arrow-right", + "arrow-up-circle", + "arrow-up-left", + "arrow-up-right", + "arrow-up", + "asterisk", + "at-sign", + "award", + "axe", + "banknote", + "bar-chart-2", + "bar-chart", + "baseline", + "battery-charging", + "battery-full", + "battery-low", + "battery-medium", + "battery", + "beaker", + "bell-minus", + "bell-off", + "bell-plus", + "bell-ring", + "bell", + "bike", + "binary", + "bitcoin", + "bluetooth-connected", + "bluetooth-off", + "bluetooth-searching", + "bluetooth", + "bold", + "book-open", + "book", + "bookmark-minus", + "bookmark-plus", + "bookmark", + "bot", + "box-select", + "box", + "briefcase", + "brush", + "bug", + "building-2", + "building", + "bus", + "calculator", + "calendar", + "camera-off", + "camera", + "car", + "carrot", + "cast", + "check-circle-2", + "check-circle", + "check-square", + "check", + "chevron-down", + "chevron-first", + "chevron-last", + "chevron-left", + "chevron-right", + "chevron-up", + "chevrons-down-up", + "chevrons-down", + "chevrons-left", + "chevrons-right", + "chevrons-up-down", + "chevrons-up", + "chrome", + "circle-slashed", + "circle", + "clipboard-check", + "clipboard-copy", + "clipboard-list", + "clipboard-x", + "clipboard", + "clock-1", + "clock-10", + "clock-11", + "clock-12", + "clock-2", + "clock-3", + "clock-4", + "clock-5", + "clock-6", + "clock-7", + "clock-8", + "clock-9", + "lucide-clock", + "cloud-drizzle", + "cloud-fog", + "cloud-hail", + "cloud-lightning", + "cloud-moon", + "cloud-off", + "cloud-rain-wind", + "cloud-rain", + "cloud-snow", + "cloud-sun", + "lucide-cloud", + "cloudy", + "clover", + "code-2", + "code", + "codepen", + "codesandbox", + "coffee", + "coins", + "columns", + "command", + "compass", + "contact", + "contrast", + "cookie", + "copy", + "copyleft", + "copyright", + "corner-down-left", + "corner-down-right", + "corner-left-down", + "corner-left-up", + "corner-right-down", + "corner-right-up", + "corner-up-left", + "corner-up-right", + "cpu", + "credit-card", + "crop", + "lucide-cross", + "crosshair", + "crown", + "currency", + "database", + "delete", + "dice-1", + "dice-2", + "dice-3", + "dice-4", + "dice-5", + "dice-6", + "disc", + "divide-circle", + "divide-square", + "divide", + "dollar-sign", + "download-cloud", + "download", + "dribbble", + "droplet", + "droplets", + "drumstick", + "edit-2", + "edit-3", + "edit", + "egg", + "equal-not", + "equal", + "eraser", + "euro", + "expand", + "external-link", + "eye-off", + "eye", + "facebook", + "fast-forward", + "feather", + "figma", + "file-check-2", + "file-check", + "file-code", + "file-digit", + "file-input", + "file-minus-2", + "file-minus", + "file-output", + "file-plus-2", + "file-plus", + "file-search", + "file-text", + "file-x-2", + "file-x", + "file", + "files", + "film", + "filter", + "flag-off", + "flag-triangle-left", + "flag-triangle-right", + "flag", + "flame", + "flashlight-off", + "flashlight", + "flask-conical", + "flask-round", + "folder-minus", + "folder-open", + "folder-plus", + "lucide-folder", + "form-input", + "forward", + "frame", + "framer", + "frown", + "function-square", + "gamepad-2", + "gamepad", + "gauge", + "gavel", + "gem", + "ghost", + "gift", + "git-branch-plus", + "git-branch", + "git-commit", + "git-fork", + "git-merge", + "git-pull-request", + "github", + "gitlab", + "glasses", + "globe-2", + "globe", + "grab", + "graduation-cap", + "grid", + "grip-horizontal", + "grip-vertical", + "hammer", + "hand-metal", + "hand", + "hard-drive", + "hard-hat", + "hash", + "haze", + "headphones", + "heart", + "help-circle", + "hexagon", + "highlighter", + "history", + "home", + "image-minus", + "image-off", + "image-plus", + "image", + "import", + "inbox", + "indent", + "indian-rupee", + "infinity", + "lucide-info", + "inspect", + "instagram", + "italic", + "japanese-yen", + "key", + "keyboard", + "landmark", + "lucide-languages", + "laptop-2", + "laptop", + "lasso-select", + "lasso", + "layers", + "layout-dashboard", + "layout-grid", + "layout-list", + "layout-template", + "layout", + "library", + "life-buoy", + "lightbulb-off", + "lightbulb", + "link-2-off", + "link-2", + "lucide-link", + "linkedin", + "list-checks", + "list-minus", + "list-ordered", + "list-plus", + "list-x", + "list", + "loader-2", + "loader", + "locate-fixed", + "locate-off", + "locate", + "lock", + "log-in", + "log-out", + "mail", + "map-pin", + "map", + "maximize-2", + "maximize", + "megaphone", + "meh", + "menu", + "message-circle", + "message-square", + "mic-off", + "mic", + "minimize-2", + "minimize", + "minus-circle", + "minus-square", + "minus", + "monitor-off", + "monitor-speaker", + "monitor", + "moon", + "more-horizontal", + "more-vertical", + "mountain-snow", + "mountain", + "mouse-pointer-2", + "mouse-pointer-click", + "mouse-pointer", + "mouse", + "move-diagonal-2", + "move-diagonal", + "move-horizontal", + "move-vertical", + "move", + "music", + "navigation-2", + "navigation", + "network", + "octagon", + "option", + "outdent", + "package-check", + "package-minus", + "package-plus", + "package-search", + "package-x", + "package", + "palette", + "palmtree", + "paperclip", + "pause-circle", + "pause-octagon", + "pause", + "pen-tool", + "lucide-pencil", + "percent", + "person-standing", + "phone-call", + "phone-forwarded", + "phone-incoming", + "phone-missed", + "phone-off", + "phone-outgoing", + "phone", + "pie-chart", + "piggy-bank", + "lucide-pin", + "pipette", + "plane", + "play-circle", + "play", + "plug-zap", + "plus-circle", + "plus-square", + "plus", + "pocket", + "podcast", + "pointer", + "pound-sterling", + "power-off", + "power", + "printer", + "qr-code", + "quote", + "radio-receiver", + "radio", + "redo", + "refresh-ccw", + "refresh-cw", + "regex", + "repeat-1", + "repeat", + "reply-all", + "reply", + "rewind", + "rocket", + "rocking-chair", + "rotate-ccw", + "rotate-cw", + "rss", + "ruler", + "russian-ruble", + "save", + "scale", + "scan-line", + "scan", + "scissors", + "screen-share-off", + "screen-share", + "lucide-search", + "send", + "separator-horizontal", + "separator-vertical", + "server-crash", + "server-off", + "server", + "settings-2", + "settings", + "share-2", + "share", + "sheet", + "shield-alert", + "shield-check", + "shield-close", + "shield-off", + "shield", + "shirt", + "shopping-bag", + "shopping-cart", + "shovel", + "shrink", + "shuffle", + "sidebar-close", + "sidebar-open", + "sidebar", + "sigma", + "signal-high", + "signal-low", + "signal-medium", + "signal-zero", + "signal", + "skip-back", + "skip-forward", + "skull", + "slack", + "slash", + "sliders", + "smartphone-charging", + "smartphone", + "smile", + "snowflake", + "sort-asc", + "sort-desc", + "speaker", + "sprout", + "square", + "star-half", + "lucide-star", + "stop-circle", + "stretch-horizontal", + "stretch-vertical", + "strikethrough", + "subscript", + "sun", + "sunrise", + "sunset", + "superscript", + "swiss-franc", + "switch-camera", + "table", + "tablet", + "tag", + "target", + "tent", + "terminal-square", + "terminal", + "text-cursor-input", + "text-cursor", + "thermometer-snowflake", + "thermometer-sun", + "thermometer", + "thumbs-down", + "thumbs-up", + "ticket", + "timer-off", + "timer-reset", + "timer", + "toggle-left", + "toggle-right", + "tornado", + "trash-2", + "lucide-trash", + "trello", + "trending-down", + "trending-up", + "triangle", + "truck", + "tv-2", + "tv", + "twitch", + "twitter", + "type", + "umbrella", + "underline", + "undo", + "unlink-2", + "unlink", + "unlock", + "upload-cloud", + "upload", + "user-check", + "user-minus", + "user-plus", + "user-x", + "user", + "users", + "verified", + "vibrate", + "video-off", + "video", + "view", + "voicemail", + "volume-1", + "volume-2", + "volume-x", + "volume", + "wallet", + "wand", + "watch", + "waves", + "webcam", + "wifi-off", + "wifi", + "wind", + "wrap-text", + "wrench", + "x-circle", + "x-octagon", + "x-square", + "x", + "youtube", + "zap-off", + "zap", + "zoom-in", + "zoom-out", + "search-large", +]; diff --git a/src/l10n.ts b/src/l10n.ts index b0d0679..d4e858b 100644 --- a/src/l10n.ts +++ b/src/l10n.ts @@ -56,5 +56,8 @@ export default function t(str: string): string { console.error("Error: dictionary locale not found", moment.locale()); } - return (locale && locale[str as keyof typeof locale]) || en[str as keyof typeof en]; + return ( + (locale && locale[str as keyof typeof locale]) || + en[str as keyof typeof en] + ); } diff --git a/src/main.ts b/src/main.ts index 843c8d4..c7e933c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,9 @@ -import { injectIcons, removeStyles, updateMacroCommands, updateStyles } from "src/util"; +import { + injectIcons, + removeStyles, + updateMacroCommands, + updateStyles, +} from "src/util"; import { updateSpacing } from "src/util"; import { Command, Plugin } from "obsidian"; import { DEFAULT_SETTINGS } from "./constants"; @@ -8,7 +13,6 @@ import { ExplorerManager, FileMenuCommandManager, PageHeaderManager, - RibbonManager, StatusBarManager, } from "./manager/commands"; import { Action, CommanderSettings } from "./types"; @@ -35,14 +39,11 @@ export default class CommanderPlugin extends Plugin { }; public async executeStartupMacros(): Promise { - const ref = setTimeout(() => { - this.settings.macros.forEach(async (macro, idx) => { - if (macro.startup) { - await this.executeMacro(idx); - } - }); - }, 1000); - this.register(() => clearTimeout(ref)); + this.settings.macros.forEach((macro, idx) => { + if (macro.startup) { + this.executeMacro(idx); + } + }); } public async executeMacro(id: number): Promise { @@ -78,7 +79,7 @@ export default class CommanderPlugin extends Plugin { public async onload(): Promise { await this.loadSettings(); - delete this.settings.hide.leftRibbon; + this.settings.hide.leftRibbon ??= []; // TODO: remove this in a future version registerCustomIcons(); diff --git a/src/manager/commands/explorerManager.ts b/src/manager/commands/explorerManager.ts index ff53587..a96c86e 100644 --- a/src/manager/commands/explorerManager.ts +++ b/src/manager/commands/explorerManager.ts @@ -15,11 +15,13 @@ export default class ExplorerManager extends CommandManagerBase { public constructor(plugin: CommanderPlugin, pairs: CommandIconPair[]) { super(plugin, pairs); this.init(); - this.plugin.register(() => this.actions.forEach((_, key) => this.removeAction(key))); + this.plugin.register(() => + this.actions.forEach((_, key) => this.removeAction(key)) + ); } private getFileExplorers(): WorkspaceLeaf[] { - return app.workspace.getLeavesOfType('file-explorer'); + return app.workspace.getLeavesOfType("file-explorer"); } private init(): void { @@ -35,7 +37,7 @@ export default class ExplorerManager extends CommandManagerBase { // File explorers that get opened later on this.plugin.registerEvent( - app.workspace.on('layout-change', () => { + app.workspace.on("layout-change", () => { const explorers = this.getFileExplorers(); explorers.forEach((exp) => { this.addAction(cmd, exp); @@ -63,7 +65,7 @@ export default class ExplorerManager extends CommandManagerBase { // File explorers that get opened later on this.plugin.registerEvent( - app.workspace.on('layout-change', () => { + app.workspace.on("layout-change", () => { const explorers = this.getFileExplorers(); explorers.forEach((exp) => { this.addAction(pair, exp); @@ -80,15 +82,29 @@ export default class ExplorerManager extends CommandManagerBase { } private buttonExists(leaf: WorkspaceLeaf, action: CommandIconPair) { - return [...leaf.view.containerEl.querySelectorAll('div.nav-buttons-container > .cmdr.clickable-icon')].some(element => - element.getAttribute("data-cmdr") === action.icon + action.name + return [ + ...leaf.view.containerEl.querySelectorAll( + "div.nav-buttons-container > .cmdr.clickable-icon" + ), + ].some( + (element) => + element.getAttribute("data-cmdr") === action.icon + action.name ); } private addAction(pair: CommandIconPair, leaf: WorkspaceLeaf): void { - if (this.buttonExists(leaf, pair)) { return; }; + if (this.buttonExists(leaf, pair)) { + return; + } - const btn = createDiv({ cls: "cmdr clickable-icon", attr: { "aria-label-position": "top", "aria-label": pair.name, "data-cmdr": pair.icon + pair.name } }); + const btn = createDiv({ + cls: "cmdr clickable-icon", + attr: { + "aria-label-position": "top", + "aria-label": pair.name, + "data-cmdr": pair.icon + pair.name, + }, + }); this.actions.set(pair, btn); btn.style.color = pair.color === "#000000" || pair.color === undefined @@ -132,9 +148,8 @@ export default class ExplorerManager extends CommandManagerBase { btn.addEventListener("contextmenu", (event) => { event.stopImmediatePropagation(); new Menu() - .addItem(item => { - item - .setTitle(t("Add command")) + .addItem((item) => { + item.setTitle(t("Add command")) .setIcon("command") .onClick(async () => { const pair = await chooseNewCommand(this.plugin); @@ -142,12 +157,13 @@ export default class ExplorerManager extends CommandManagerBase { }); }) .addSeparator() - .addItem(item => { - item - .setTitle(t("Change Icon")) + .addItem((item) => { + item.setTitle(t("Change Icon")) .setIcon("box") .onClick(async () => { - const newIcon = await (new ChooseIconModal(this.plugin)).awaitSelection(); + const newIcon = await new ChooseIconModal( + this.plugin + ).awaitSelection(); if (newIcon && newIcon !== pair.icon) { pair.icon = newIcon; await this.plugin.saveSettings(); @@ -155,12 +171,13 @@ export default class ExplorerManager extends CommandManagerBase { } }); }) - .addItem(item => { - item - .setTitle(t("Rename")) + .addItem((item) => { + item.setTitle(t("Rename")) .setIcon("text-cursor-input") .onClick(async () => { - const newName = await (new ChooseCustomNameModal(pair.name)).awaitSelection(); + const newName = await new ChooseCustomNameModal( + pair.name + ).awaitSelection(); if (newName && newName !== pair.name) { pair.name = newName; await this.plugin.saveSettings(); @@ -168,13 +185,17 @@ export default class ExplorerManager extends CommandManagerBase { } }); }) - .addItem(item => { + .addItem((item) => { item.dom.addClass("is-warning"); - item - .setTitle(t("Delete")) + item.setTitle(t("Delete")) .setIcon("lucide-trash") .onClick(async () => { - if (!this.plugin.settings.confirmDeletion || (await new ConfirmDeleteModal(this.plugin).didChooseRemove())) { + if ( + !this.plugin.settings.confirmDeletion || + (await new ConfirmDeleteModal( + this.plugin + ).didChooseRemove()) + ) { this.removeCommand(pair); } }); @@ -183,7 +204,9 @@ export default class ExplorerManager extends CommandManagerBase { }); setNormal(); - leaf.view?.containerEl?.querySelector?.("div.nav-buttons-container")?.appendChild?.(btn); + leaf.view?.containerEl + ?.querySelector?.("div.nav-buttons-container") + ?.appendChild?.(btn); } private removeAction(pair: CommandIconPair, instant = false): void { @@ -202,5 +225,4 @@ export default class ExplorerManager extends CommandManagerBase { this.actions.delete(pair); }); } - } diff --git a/src/manager/commands/index.ts b/src/manager/commands/index.ts index 6391a03..97577da 100644 --- a/src/manager/commands/index.ts +++ b/src/manager/commands/index.ts @@ -1,15 +1,16 @@ -import ExplorerManager from './explorerManager'; -import { EditorMenuCommandManager, FileMenuCommandManager } from './menuManager'; -import PageHeaderManager from './pageHeaderManager'; -import RibbonManager from './ribbonManager'; -import StatusBarManager from './statusBarManager'; -import TitleBarManager from './titleBarManager'; +import ExplorerManager from "./explorerManager"; +import { + EditorMenuCommandManager, + FileMenuCommandManager, +} from "./menuManager"; +import PageHeaderManager from "./pageHeaderManager"; +import StatusBarManager from "./statusBarManager"; +import TitleBarManager from "./titleBarManager"; export { EditorMenuCommandManager, FileMenuCommandManager, PageHeaderManager, - RibbonManager, StatusBarManager, TitleBarManager, ExplorerManager, diff --git a/src/manager/commands/leftRibbonManager.ts b/src/manager/commands/leftRibbonManager.ts index 6c2ff7f..a59c6c2 100644 --- a/src/manager/commands/leftRibbonManager.ts +++ b/src/manager/commands/leftRibbonManager.ts @@ -1,6 +1,7 @@ import CommanderPlugin from "src/main"; import { CommandIconPair } from "src/types"; import CommandManagerBase from "./commandManager"; +import { isModeActive } from "src/util"; export default class LeftRibbonManager extends CommandManagerBase { public plugin: CommanderPlugin; @@ -10,10 +11,11 @@ export default class LeftRibbonManager extends CommandManagerBase { super(plugin, plugin.settings.leftRibbon); this.plugin = plugin; + this.plugin.settings.leftRibbon.forEach((pair) => + this.addCommand(pair, false) + ); + app.workspace.onLayoutReady(() => { - this.plugin.settings.leftRibbon.forEach((pair) => - this.addCommand(pair, false) - ); // if (this.plugin.settings.showAddCommand) { // this.plugin.addRibbonIcon("plus", t("Add new"), async () => // this.addCommand(await chooseNewCommand(plugin)) @@ -30,10 +32,23 @@ export default class LeftRibbonManager extends CommandManagerBase { this.plugin.settings.leftRibbon.push(pair); await this.plugin.saveSettings(); } - this.plugin.addRibbonIcon(pair.icon, pair.name, () => - app.commands.executeCommandById(pair.id) - ); - this.plugin.register(() => this.removeCommand(pair, false)); + if (isModeActive(pair.mode)) { + this.plugin.addRibbonIcon(pair.icon, pair.name, () => + app.commands.executeCommandById(pair.id) + ); + // @ts-expect-error + const nativeAction = app.workspace.leftRibbon.items.find( + // @ts-expect-error + (i) => i.icon === pair.icon && i.name === i.name + ); + if (nativeAction) { + nativeAction.buttonEl.style.color = + pair.color === "#000000" || pair.color === undefined + ? "inherit" + : pair.color; + } + this.plugin.register(() => this.removeCommand(pair, false)); + } } public async removeCommand( @@ -57,5 +72,10 @@ export default class LeftRibbonManager extends CommandManagerBase { } // eslint-disable-next-line @typescript-eslint/no-empty-function - public reorder(): void {} + public reorder(): void { + this.plugin.settings.leftRibbon.forEach((pair) => { + this.removeCommand(pair, false); + this.addCommand(pair, false); + }); + } } diff --git a/src/manager/commands/menuManager.ts b/src/manager/commands/menuManager.ts index 880ced7..92ac89f 100644 --- a/src/manager/commands/menuManager.ts +++ b/src/manager/commands/menuManager.ts @@ -1,4 +1,13 @@ -import { Command, Editor, MarkdownView, Menu, MenuItem, setIcon, TAbstractFile, WorkspaceLeaf } from "obsidian"; +import { + Command, + Editor, + MarkdownView, + Menu, + MenuItem, + setIcon, + TAbstractFile, + WorkspaceLeaf, +} from "obsidian"; import CommandManagerBase from "./commandManager"; import CommanderPlugin from "src/main"; import { CommandIconPair } from "src/types"; @@ -21,10 +30,17 @@ abstract class Base extends CommandManagerBase { // There is no state to update // eslint-disable-next-line @typescript-eslint/no-empty-function - public reorder(): void { } + public reorder(): void {} // eslint-disable-next-line no-unused-vars - protected addRemovableCommand(this: (item: MenuItem) => void, command: Command, cmdPair: CommandIconPair, plugin: CommanderPlugin, menu: Menu, commandList: CommandIconPair[]): (item: MenuItem) => void { + protected addRemovableCommand( + this: (item: MenuItem) => void, + command: Command, + cmdPair: CommandIconPair, + plugin: CommanderPlugin, + menu: Menu, + commandList: CommandIconPair[] + ): (item: MenuItem) => void { return (item: MenuItem) => { item.dom.addClass("cmdr"); item.dom.style.color = @@ -35,7 +51,7 @@ abstract class Base extends CommandManagerBase { item.dom.style.display = "flex"; const optionEl = createDiv({ - cls: "cmdr-menu-more-options" + cls: "cmdr-menu-more-options", }); let optionMenu: Menu | null = null; optionEl.addEventListener("click", (event) => { @@ -94,8 +110,7 @@ abstract class Base extends CommandManagerBase { setIcon(optionEl, "more-vertical"); item.dom.append(optionEl); - item - .setTitle(cmdPair.name ?? command.name) + item.setTitle(cmdPair.name ?? command.name) .setIcon(cmdPair.icon) .onClick(() => app.commands.executeCommandById(cmdPair.id)); @@ -130,11 +145,14 @@ abstract class Base extends CommandManagerBase { }; } - protected addCommandAddButton(plugin: CommanderPlugin, menu: Menu, commandList: CommandIconPair[]): void { + protected addCommandAddButton( + plugin: CommanderPlugin, + menu: Menu, + commandList: CommandIconPair[] + ): void { if (plugin.settings.showAddCommand) { menu.addItem((item: MenuItem) => { - item - .setTitle(t("Add command")) + item.setTitle(t("Add command")) .setIcon("plus-circle") .setSection("cmdr") .onClick(async () => { @@ -150,13 +168,15 @@ abstract class Base extends CommandManagerBase { }); } } - } export class EditorMenuCommandManager extends Base { - public applyEditorMenuCommands(plugin: CommanderPlugin) { - return async (menu: Menu, editor: Editor, view: MarkdownView): Promise => { + return async ( + menu: Menu, + editor: Editor, + view: MarkdownView + ): Promise => { this.addCommandAddButton(plugin, menu, plugin.settings.editorMenu); for (const cmdPair of plugin.settings.editorMenu) { @@ -168,20 +188,36 @@ export class EditorMenuCommandManager extends Base { if (!isModeActive(cmdPair.mode)) continue; //Use the check callbacks accordingly - if ((command.checkCallback && !command.checkCallback(true)) - || (command.editorCheckCallback && !command.editorCheckCallback(true, editor, view)) - ) continue; + if ( + (command.checkCallback && !command.checkCallback(true)) || + (command.editorCheckCallback && + !command.editorCheckCallback(true, editor, view)) + ) + continue; - menu.addItem(this.addRemovableCommand.call(this, command, cmdPair, plugin, menu, plugin.settings.editorMenu)); + menu.addItem( + this.addRemovableCommand.call( + this, + command, + cmdPair, + plugin, + menu, + plugin.settings.editorMenu + ) + ); } }; } } export class FileMenuCommandManager extends Base { - public applyFileMenuCommands(plugin: CommanderPlugin) { - return async (menu: Menu, _: TAbstractFile, __: string, leaf?: WorkspaceLeaf): Promise => { + return async ( + menu: Menu, + _: TAbstractFile, + __: string, + leaf?: WorkspaceLeaf + ): Promise => { this.addCommandAddButton(plugin, menu, plugin.settings.fileMenu); for (const cmdPair of plugin.settings.fileMenu) { @@ -201,7 +237,13 @@ export class FileMenuCommandManager extends Base { } } else if (command.editorCheckCallback) { if (leaf?.view instanceof MarkdownView) { - if (!command.editorCheckCallback(true, leaf.view.editor, leaf.view)) { + if ( + !command.editorCheckCallback( + true, + leaf.view.editor, + leaf.view + ) + ) { continue; } } else { @@ -209,9 +251,17 @@ export class FileMenuCommandManager extends Base { } } - menu.addItem(this.addRemovableCommand.call(this, command, cmdPair, plugin, menu, plugin.settings.fileMenu)); + menu.addItem( + this.addRemovableCommand.call( + this, + command, + cmdPair, + plugin, + menu, + plugin.settings.fileMenu + ) + ); } }; } - } diff --git a/src/manager/commands/pageHeaderManager.ts b/src/manager/commands/pageHeaderManager.ts index b9a222f..1b6638e 100644 --- a/src/manager/commands/pageHeaderManager.ts +++ b/src/manager/commands/pageHeaderManager.ts @@ -27,7 +27,7 @@ export default class PageHeaderManager extends CommandManagerBase { if (!buttons || buttons.has(id)) return; const buttonIcon = (view as ItemView).addAction(icon, name, () => { - app.workspace.setActiveLeaf(leaf, {focus: true}); + app.workspace.setActiveLeaf(leaf, { focus: true }); app.commands.executeCommandById(id); }); buttons.set(id, buttonIcon); @@ -40,9 +40,8 @@ export default class PageHeaderManager extends CommandManagerBase { buttonIcon.addEventListener("contextmenu", (event) => { event.stopImmediatePropagation(); new Menu() - .addItem(item => { - item - .setTitle(t("Add command")) + .addItem((item) => { + item.setTitle(t("Add command")) .setIcon("command") .onClick(async () => { const pair = await chooseNewCommand(this.plugin); @@ -50,12 +49,13 @@ export default class PageHeaderManager extends CommandManagerBase { }); }) .addSeparator() - .addItem(item => { - item - .setTitle(t("Change Icon")) + .addItem((item) => { + item.setTitle(t("Change Icon")) .setIcon("box") .onClick(async () => { - const newIcon = await (new ChooseIconModal(this.plugin)).awaitSelection(); + const newIcon = await new ChooseIconModal( + this.plugin + ).awaitSelection(); if (newIcon && newIcon !== pair.icon) { pair.icon = newIcon; await this.plugin.saveSettings(); @@ -63,12 +63,13 @@ export default class PageHeaderManager extends CommandManagerBase { } }); }) - .addItem(item => { - item - .setTitle(t("Rename")) + .addItem((item) => { + item.setTitle(t("Rename")) .setIcon("text-cursor-input") .onClick(async () => { - const newName = await (new ChooseCustomNameModal(pair.name)).awaitSelection(); + const newName = await new ChooseCustomNameModal( + pair.name + ).awaitSelection(); if (newName && newName !== pair.name) { pair.name = newName; await this.plugin.saveSettings(); @@ -76,13 +77,17 @@ export default class PageHeaderManager extends CommandManagerBase { } }); }) - .addItem(item => { + .addItem((item) => { item.dom.addClass("is-warning"); - item - .setTitle(t("Delete")) + item.setTitle(t("Delete")) .setIcon("lucide-trash") .onClick(async () => { - if (!this.plugin.settings.confirmDeletion || (await new ConfirmDeleteModal(this.plugin).didChooseRemove())) { + if ( + !this.plugin.settings.confirmDeletion || + (await new ConfirmDeleteModal( + this.plugin + ).didChooseRemove()) + ) { this.removeCommand(pair); } }); @@ -96,10 +101,14 @@ export default class PageHeaderManager extends CommandManagerBase { // Remove all buttons on plugin unload this.removeButtonsFromAllLeaves(); }); - this.plugin.registerEvent(app.workspace.on("layout-change", () => { - this.addButtonsToAllLeaves(); - })); - app.workspace.onLayoutReady(() => setTimeout(() => this.addButtonsToAllLeaves(), 100)); + this.plugin.registerEvent( + app.workspace.on("layout-change", () => { + this.addButtonsToAllLeaves(); + }) + ); + app.workspace.onLayoutReady(() => + setTimeout(() => this.addButtonsToAllLeaves(), 100) + ); } private addAdderButton(leaf: WorkspaceLeaf) { @@ -107,33 +116,38 @@ export default class PageHeaderManager extends CommandManagerBase { const id = "cmdr-adder"; if (!(view instanceof ItemView)) return; if (this.buttons.get(view)?.has(id)) return; - const buttonIcon = view.addAction("plus", t("Add new"), async () => { + const buttonIcon = view.addAction("plus", t("Add new"), async () => { this.addCommand(await chooseNewCommand(this.plugin)); }); buttonIcon.addClasses(["cmdr", id]); - if (!this.buttons.has(view)) this.buttons.set(view, new Map); + if (!this.buttons.has(view)) this.buttons.set(view, new Map()); this.buttons.get(view)!.set(id, buttonIcon); } - private addButtonsToAllLeaves(refresh: boolean = false): void { - activeWindow.requestAnimationFrame( - () => app.workspace.iterateAllLeaves(leaf => this.addButtonsToLeaf(leaf, refresh)) + private addButtonsToAllLeaves(refresh = false): void { + activeWindow.requestAnimationFrame(() => + app.workspace.iterateAllLeaves((leaf) => + this.addButtonsToLeaf(leaf, refresh) + ) ); } private removeButtonsFromAllLeaves(): void { - activeWindow.requestAnimationFrame( - () => app.workspace.iterateAllLeaves(leaf => this.removeButtonsFromLeaf(leaf)) + activeWindow.requestAnimationFrame(() => + app.workspace.iterateAllLeaves((leaf) => + this.removeButtonsFromLeaf(leaf) + ) ); } - private buttonsFor(leaf: WorkspaceLeaf, create: boolean = false) { + private buttonsFor(leaf: WorkspaceLeaf, create = false) { if (!(leaf.view instanceof ItemView)) return; - if (create && !this.buttons.has(leaf.view)) this.buttons.set(leaf.view, new Map); + if (create && !this.buttons.has(leaf.view)) + this.buttons.set(leaf.view, new Map()); return this.buttons.get(leaf.view); } - private addButtonsToLeaf(leaf: WorkspaceLeaf, refresh: boolean = false): void { + private addButtonsToLeaf(leaf: WorkspaceLeaf, refresh = false): void { if (!(leaf.view instanceof ItemView)) return; if (refresh) { this.removeButtonsFromLeaf(leaf); @@ -141,7 +155,7 @@ export default class PageHeaderManager extends CommandManagerBase { // View already has buttons and we're not doing a full refresh return; } - for (let i = this.pairs.length -1; i>=0; i--) { + for (let i = this.pairs.length - 1; i >= 0; i--) { const pair = this.pairs[i]; if (isModeActive(pair.mode)) this.addPageHeaderButton(leaf, pair); } diff --git a/src/manager/commands/ribbonManager.ts b/src/manager/commands/ribbonManager.ts deleted file mode 100644 index a6c7c65..0000000 --- a/src/manager/commands/ribbonManager.ts +++ /dev/null @@ -1,254 +0,0 @@ -import { isModeActive } from 'src/util'; -import { Menu, Platform, setIcon, WorkspaceRibbon } from "obsidian"; -import CommandManagerBase from "./commandManager"; -import CommanderPlugin from "src/main"; -import { CommandIconPair } from "src/types"; -import ConfirmDeleteModal from "src/ui/confirmDeleteModal"; -import { chooseNewCommand, getCommandFromId } from "src/util"; -import ChooseCustomNameModal from "src/ui/chooseCustomNameModal"; -import ChooseIconModal from "src/ui/chooseIconModal"; -import t from 'src/l10n'; - -export default class RibbonManager extends CommandManagerBase { - private actions: { - [id: string]: HTMLElement; - }; - private ribbonEl: WorkspaceRibbon; - private addBtn: HTMLDivElement; - - public constructor( - private side: "left" | "right", - plugin: CommanderPlugin, - ) { - super(plugin, plugin.settings[`${side}Ribbon`]); - this.actions = {}; - - app.workspace.onLayoutReady(() => { - if (this.side === "right") { - this.addActionContainer(); - } else { - this.ribbonEl = app.workspace.leftRibbon; - } - this.addBtn = createDiv({ cls: "cmdr side-dock-ribbon-action cmdr-adder", attr: { "aria-label-position": side === "left" ? "right" : "left", "aria-label": t("Add new") } }); - this.init(); - }); - - this.plugin.register(() => { - if (Platform.isMobile) { - Object.keys(this.actions).forEach((id) => this.removeActionMobile(id)); - } - else { - Object.values(this.actions).forEach(el => el.remove()); - } - }); - } - - public async addCommand(pair: CommandIconPair): Promise { - const cmd = getCommandFromId(pair.id); - if (cmd) { - this.addAction(pair.name ?? cmd.name, pair.icon, pair, () => app.commands.executeCommandById(pair.id)); - } else { - this.addAction(t("This Command seems to have been removed. {{command_name}}").replace("{{command_name}}", pair.name || ""), "trash", pair, (event: MouseEvent) => { - this.removeAction((event.target as HTMLElement).getAttribute("aria-label") + "trash"); - }); - } - - this.pairs.push(pair); - await this.plugin.saveSettings(); - } - - public async removeCommand(pair: CommandIconPair): Promise { - this.removeAction(pair.name + pair.icon); - this.pairs.remove(pair); - await this.plugin.saveSettings(); - } - - public reorder(): void | Promise { - this.addBtn.remove(); - if (Platform.isMobile) { - Object.keys(this.actions).forEach((id) => this.removeActionMobile(id)); - } - else { - Object.values(this.actions).forEach(el => el.remove()); - } - this.init(); - } - - private init(): void { - for (const c of this.pairs) { - if (isModeActive(c.mode)) { - this.addAction(c.name, c.icon, c, () => app.commands.executeCommandById(c.id)); - } - } - - this.plugin.register(() => this.addBtn.remove()); - setIcon(this.addBtn, "plus"); - this.addBtn.onclick = async (): Promise => { - const pair = await chooseNewCommand(this.plugin); - this.addCommand(pair); - this.reorder(); - }; - if (this.plugin.settings.showAddCommand) - app.workspace.onLayoutReady(() => - this.ribbonEl.ribbonItemsEl?.append?.(this.addBtn) - ); - } - - private addActionMobile(name: string, icon: string, callback: () => void) { - app.workspace.leftRibbon.orderedRibbonActions.push({ - // @ts-expect-error - cmdr__id: name + icon, - title: name, - icon, - callback, - }); - } - - private removeActionMobile(id: string): void { - app.workspace.leftRibbon.orderedRibbonActions = - // @ts-expect-error - app.workspace.leftRibbon.orderedRibbonActions.filter((action) => action.cmdr__id !== id); - } - - // eslint-disable-next-line no-unused-vars - private addAction(name: string, icon: string, pair: CommandIconPair, callback: (event: MouseEvent) => void): void { - // eslint-disable-next-line @typescript-eslint/no-empty-function - const newAction = this.ribbonEl.makeRibbonItemButton( - icon, - name, - () => {} - ); - newAction.addClass("cmdr"); - newAction.style.color = - pair.color === "#000000" || pair.color === undefined - ? "inherit" - : pair.color; - newAction.setAttribute( - "aria-label-position", - this.side === "left" ? "right" : "left" - ); - this.actions[name + icon] = newAction; - - if (Platform.isMobile) { - // @ts-expect-error - this.addActionMobile(name, icon, callback); - return; - } - - let isRemovable = false; - - const setNormal = (): void => { - newAction.empty(); - setIcon(newAction, icon); - newAction.onclick = callback; - }; - const setRemovable = (): void => { - newAction.empty(); - setIcon(newAction, "trash"); - newAction.onclick = async (): Promise => { - if ( - !this.plugin.settings.confirmDeletion || - (await new ConfirmDeleteModal( - this.plugin - ).didChooseRemove()) - ) { - this.removeCommand(pair); - } - }; - }; - - newAction.addEventListener("mouseleave", () => { - isRemovable = false; - setNormal(); - }); - newAction.addEventListener("mousemove", (event) => { - event.preventDefault(); - event.stopImmediatePropagation(); - if (event.shiftKey) { - if (!isRemovable) setRemovable(); - isRemovable = true; - } - }); - newAction.addEventListener("contextmenu", (event) => { - event.stopImmediatePropagation(); - new Menu() - .addItem((item) => { - item.setTitle(t("Add command")) - .setIcon("command") - .onClick(async () => { - const pair = await chooseNewCommand(this.plugin); - this.addCommand(pair); - }); - }) - .addSeparator() - .addItem((item) => { - item.setTitle(t("Change Icon")) - .setIcon("box") - .onClick(async () => { - const newIcon = await new ChooseIconModal( - this.plugin - ).awaitSelection(); - if (newIcon && newIcon !== pair.icon) { - pair.icon = newIcon; - await this.plugin.saveSettings(); - this.reorder(); - } - }); - }) - .addItem((item) => { - item.setTitle(t("Rename")) - .setIcon("text-cursor-input") - .onClick(async () => { - const newName = await new ChooseCustomNameModal( - pair.name - ).awaitSelection(); - if (newName && newName !== pair.name) { - pair.name = newName; - await this.plugin.saveSettings(); - this.reorder(); - } - }); - }) - .addItem((item) => { - item.dom.addClass("is-warning"); - item.setTitle(t("Delete")) - .setIcon("lucide-trash") - .onClick(async () => { - if ( - !this.plugin.settings.confirmDeletion || - (await new ConfirmDeleteModal( - this.plugin - ).didChooseRemove()) - ) { - this.removeCommand(pair); - } - }); - }) - .showAtMouseEvent(event); - }); - - setNormal(); - - this.ribbonEl.ribbonItemsEl?.append(newAction); - } - - private async removeAction(id: string): Promise { - if (Platform.isMobile) { - this.removeActionMobile(id); - return; - } - this.actions[id].addClass("cmdr-ribbon-removing"); - this.actions[id].addEventListener("transitionend", () => { - this.actions[id].remove(); - delete this.actions[id]; - }); - } - - private addActionContainer(): void { - const div = createDiv({ cls: `side-dock-actions cmdr-${this.side}-ribbon` }); - this.ribbonEl.collapseButtonEl.insertAdjacentElement("afterend", div); - this.ribbonEl.ribbonItemsEl = div; - - this.plugin.register(() => div.remove()); - } -} diff --git a/src/manager/commands/statusBarManager.ts b/src/manager/commands/statusBarManager.ts index 7e59186..b222432 100644 --- a/src/manager/commands/statusBarManager.ts +++ b/src/manager/commands/statusBarManager.ts @@ -11,12 +11,17 @@ import CommandManagerBase from "./commandManager"; export default class StatusBarManager extends CommandManagerBase { private container: HTMLElement; private readonly actions = new Map(); - private addBtn = createDiv({ cls: "cmdr status-bar-item cmdr-adder", attr: { "aria-label-position": "top", "aria-label": t("Add new") } }); + private addBtn = createDiv({ + cls: "cmdr status-bar-item cmdr-adder", + attr: { "aria-label-position": "top", "aria-label": t("Add new") }, + }); public constructor(plugin: CommanderPlugin, pairs: CommandIconPair[]) { super(plugin, pairs); this.init(); - this.plugin.register(() => this.actions.forEach((_, key) => this.removeAction(key))); + this.plugin.register(() => + this.actions.forEach((_, key) => this.removeAction(key)) + ); } private init(): void { @@ -34,24 +39,28 @@ export default class StatusBarManager extends CommandManagerBase { } this.plugin.saveSettings(); - this.plugin.registerDomEvent(this.container, "contextmenu", (event) => { - if (event.target !== this.container) { - return; + this.plugin.registerDomEvent( + this.container, + "contextmenu", + (event) => { + if (event.target !== this.container) { + return; + } + + new Menu() + .addItem((item) => { + item.setTitle(t("Add command")) + .setIcon("command") + .onClick(async () => { + const pair = await chooseNewCommand( + this.plugin + ); + this.addCommand(pair); + }); + }) + .showAtMouseEvent(event); } - - new Menu() - .addItem((item) => { - item.setTitle(t("Add command")) - .setIcon("command") - .onClick(async () => { - const pair = await chooseNewCommand( - this.plugin - ); - this.addCommand(pair); - }); - }) - .showAtMouseEvent(event); - }); + ); this.plugin.register(() => this.addBtn.remove()); setIcon(this.addBtn, "plus"); @@ -60,7 +69,8 @@ export default class StatusBarManager extends CommandManagerBase { this.addCommand(pair); this.reorder(); }; - if (this.plugin.settings.showAddCommand) this.container.prepend(this.addBtn); + if (this.plugin.settings.showAddCommand) + this.container.prepend(this.addBtn); }); } @@ -83,7 +93,10 @@ export default class StatusBarManager extends CommandManagerBase { } private addAction(pair: CommandIconPair): void { - const btn = createDiv({ cls: "cmdr status-bar-item clickable-icon", attr: { "aria-label-position": "top", "aria-label": pair.name } }); + const btn = createDiv({ + cls: "cmdr status-bar-item clickable-icon", + attr: { "aria-label-position": "top", "aria-label": pair.name }, + }); this.actions.set(pair, btn); btn.style.color = pair.color === "#000000" || pair.color === undefined @@ -101,7 +114,12 @@ export default class StatusBarManager extends CommandManagerBase { btn.empty(); setIcon(btn, "trash"); btn.onclick = async (): Promise => { - if (!this.plugin.settings.confirmDeletion || (await new ConfirmDeleteModal(this.plugin).didChooseRemove())) { + if ( + !this.plugin.settings.confirmDeletion || + (await new ConfirmDeleteModal( + this.plugin + ).didChooseRemove()) + ) { this.removeCommand(pair); } }; @@ -122,9 +140,8 @@ export default class StatusBarManager extends CommandManagerBase { btn.addEventListener("contextmenu", (event) => { event.stopImmediatePropagation(); new Menu() - .addItem(item => { - item - .setTitle(t("Add command")) + .addItem((item) => { + item.setTitle(t("Add command")) .setIcon("command") .onClick(async () => { const pair = await chooseNewCommand(this.plugin); @@ -132,12 +149,13 @@ export default class StatusBarManager extends CommandManagerBase { }); }) .addSeparator() - .addItem(item => { - item - .setTitle(t("Change Icon")) + .addItem((item) => { + item.setTitle(t("Change Icon")) .setIcon("box") .onClick(async () => { - const newIcon = await (new ChooseIconModal(this.plugin)).awaitSelection(); + const newIcon = await new ChooseIconModal( + this.plugin + ).awaitSelection(); if (newIcon && newIcon !== pair.icon) { pair.icon = newIcon; await this.plugin.saveSettings(); @@ -145,12 +163,13 @@ export default class StatusBarManager extends CommandManagerBase { } }); }) - .addItem(item => { - item - .setTitle(t("Rename")) + .addItem((item) => { + item.setTitle(t("Rename")) .setIcon("text-cursor-input") .onClick(async () => { - const newName = await (new ChooseCustomNameModal(pair.name)).awaitSelection(); + const newName = await new ChooseCustomNameModal( + pair.name + ).awaitSelection(); if (newName && newName !== pair.name) { pair.name = newName; await this.plugin.saveSettings(); @@ -158,13 +177,17 @@ export default class StatusBarManager extends CommandManagerBase { } }); }) - .addItem(item => { + .addItem((item) => { item.dom.addClass("is-warning"); - item - .setTitle(t("Delete")) + item.setTitle(t("Delete")) .setIcon("lucide-trash") .onClick(async () => { - if (!this.plugin.settings.confirmDeletion || (await new ConfirmDeleteModal(this.plugin).didChooseRemove())) { + if ( + !this.plugin.settings.confirmDeletion || + (await new ConfirmDeleteModal( + this.plugin + ).didChooseRemove()) + ) { this.removeCommand(pair); } }); @@ -192,5 +215,4 @@ export default class StatusBarManager extends CommandManagerBase { this.actions.delete(pair); }); } - } diff --git a/src/manager/commands/titleBarManager.ts b/src/manager/commands/titleBarManager.ts index f70c16a..81659a7 100644 --- a/src/manager/commands/titleBarManager.ts +++ b/src/manager/commands/titleBarManager.ts @@ -11,18 +11,25 @@ import CommandManagerBase from "./commandManager"; export default class TitleBarManager extends CommandManagerBase { private container: HTMLElement; private readonly actions = new Map(); - private addBtn = createDiv({ cls: "cmdr titlebar-button cmdr-adder", attr: { "aria-label": t("Add new") } }); + private addBtn = createDiv({ + cls: "cmdr titlebar-button cmdr-adder", + attr: { "aria-label": t("Add new") }, + }); public constructor(plugin: CommanderPlugin, pairArray: CommandIconPair[]) { super(plugin, pairArray); this.init(); - this.plugin.register(() => this.actions.forEach((_, key) => this.removeTitleBarAction(key))); + this.plugin.register(() => + this.actions.forEach((_, key) => this.removeTitleBarAction(key)) + ); } private init(): void { app.workspace.onLayoutReady(async () => { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - this.container = document.querySelector(".titlebar div.titlebar-button-container.mod-right")!; + this.container = document.querySelector( + ".titlebar div.titlebar-button-container.mod-right" + )!; for (const cmd of this.pairs) { //Command has been removed if (!getCommandFromId(cmd.id)) { @@ -43,7 +50,8 @@ export default class TitleBarManager extends CommandManagerBase { this.addCommand(pair); this.reorder(); }; - if (this.plugin.settings.showAddCommand) this.container.prepend(this.addBtn); + if (this.plugin.settings.showAddCommand) + this.container.prepend(this.addBtn); }); } @@ -60,21 +68,29 @@ export default class TitleBarManager extends CommandManagerBase { } private async addTitleBarAction(pair: CommandIconPair): Promise { - const btn = createDiv({ cls: "cmdr titlebar-button", attr: { "aria-label": pair.name } }); + const btn = createDiv({ + cls: "cmdr titlebar-button", + attr: { "aria-label": pair.name }, + }); this.actions.set(pair, btn); let isRemovable = false; const setNormal = (): void => { btn.empty(); - setIcon(btn, pair.icon, 12); + setIcon(btn, pair.icon); btn.onclick = (): void => app.commands.executeCommandById(pair.id); }; const setRemovable = (): void => { btn.empty(); - setIcon(btn, "trash", 12); + setIcon(btn, "trash"); btn.onclick = async (): Promise => { - if (!this.plugin.settings.confirmDeletion || (await new ConfirmDeleteModal(this.plugin).didChooseRemove())) { + if ( + !this.plugin.settings.confirmDeletion || + (await new ConfirmDeleteModal( + this.plugin + ).didChooseRemove()) + ) { this.removeCommand(pair); } }; @@ -95,9 +111,8 @@ export default class TitleBarManager extends CommandManagerBase { btn.addEventListener("contextmenu", (event) => { event.stopImmediatePropagation(); new Menu() - .addItem(item => { - item - .setTitle(t("Add command")) + .addItem((item) => { + item.setTitle(t("Add command")) .setIcon("command") .onClick(async () => { const pair = await chooseNewCommand(this.plugin); @@ -105,12 +120,13 @@ export default class TitleBarManager extends CommandManagerBase { }); }) .addSeparator() - .addItem(item => { - item - .setTitle(t("Change Icon")) + .addItem((item) => { + item.setTitle(t("Change Icon")) .setIcon("box") .onClick(async () => { - const newIcon = await (new ChooseIconModal(this.plugin)).awaitSelection(); + const newIcon = await new ChooseIconModal( + this.plugin + ).awaitSelection(); if (newIcon && newIcon !== pair.icon) { pair.icon = newIcon; await this.plugin.saveSettings(); @@ -118,12 +134,13 @@ export default class TitleBarManager extends CommandManagerBase { } }); }) - .addItem(item => { - item - .setTitle(t("Rename")) + .addItem((item) => { + item.setTitle(t("Rename")) .setIcon("text-cursor-input") .onClick(async () => { - const newName = await (new ChooseCustomNameModal(pair.name)).awaitSelection(); + const newName = await new ChooseCustomNameModal( + pair.name + ).awaitSelection(); if (newName && newName !== pair.name) { pair.name = newName; await this.plugin.saveSettings(); @@ -131,13 +148,17 @@ export default class TitleBarManager extends CommandManagerBase { } }); }) - .addItem(item => { + .addItem((item) => { item.dom.addClass("is-warning"); - item - .setTitle(t("Delete")) + item.setTitle(t("Delete")) .setIcon("lucide-trash") .onClick(async () => { - if (!this.plugin.settings.confirmDeletion || (await new ConfirmDeleteModal(this.plugin).didChooseRemove())) { + if ( + !this.plugin.settings.confirmDeletion || + (await new ConfirmDeleteModal( + this.plugin + ).didChooseRemove()) + ) { this.removeCommand(pair); } }); diff --git a/src/types.ts b/src/types.ts index 2e8bade..3b83f1e 100644 --- a/src/types.ts +++ b/src/types.ts @@ -7,10 +7,11 @@ export enum Action { LOOP, } -export type MacroItem = { action: Action.COMMAND, commandId: string } - | { action: Action.DELAY, delay: number } +export type MacroItem = + | { action: Action.COMMAND; commandId: string } + | { action: Action.DELAY; delay: number } | { action: Action.EDITOR } - | { action: Action.LOOP, times: number, commandId: string }; + | { action: Action.LOOP; times: number; commandId: string }; export interface Macro { name: string; @@ -34,7 +35,7 @@ export interface CommanderSettings { macros: Macro[]; hide: { statusbar: string[]; - leftRibbon?: string[]; + leftRibbon: string[]; }; spacing: number; advancedToolbar: AdvancedToolbarSettings; diff --git a/src/ui/addCommandModal.ts b/src/ui/addCommandModal.ts index f4a3b6e..962d2f7 100644 --- a/src/ui/addCommandModal.ts +++ b/src/ui/addCommandModal.ts @@ -15,15 +15,15 @@ export default class AddCommandModal extends FuzzySuggestModal { this.setInstructions([ { command: "↑↓", - purpose: t("to navigate") + purpose: t("to navigate"), }, { command: "↵", - purpose: t("to choose an icon") + purpose: t("to choose an icon"), }, { command: "esc", - purpose: t("to cancel") + purpose: t("to cancel"), }, ]); } @@ -33,7 +33,8 @@ export default class AddCommandModal extends FuzzySuggestModal { return new Promise((resolve, reject) => { this.onChooseItem = (item): void => resolve(item); //This is wrapped inside a setTimeout, because onClose is called before onChooseItem - this.onClose = (): number => window.setTimeout(() => reject("No Command selected"), 0); + this.onClose = (): number => + window.setTimeout(() => reject("No Command selected"), 0); }); } @@ -45,7 +46,10 @@ export default class AddCommandModal extends FuzzySuggestModal { //Append the icon if available if (item.item.icon) { const aux = el.createDiv({ cls: "suggestion-aux" }); - setIcon(aux.createSpan({ cls: "suggestion-flair" }), item.item.icon); + setIcon( + aux.createSpan({ cls: "suggestion-flair" }), + item.item.icon + ); } } @@ -59,5 +63,5 @@ export default class AddCommandModal extends FuzzySuggestModal { // This will be overriden anyway, but typescript complains if it's not declared // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-empty-function - public onChooseItem(item: Command, evt: MouseEvent | KeyboardEvent): void { } + public onChooseItem(item: Command, evt: MouseEvent | KeyboardEvent): void {} } diff --git a/src/ui/chooseCustomNameModal.ts b/src/ui/chooseCustomNameModal.ts index d2c7379..c04228e 100644 --- a/src/ui/chooseCustomNameModal.ts +++ b/src/ui/chooseCustomNameModal.ts @@ -2,7 +2,6 @@ import { SuggestModal } from "obsidian"; import t from "src/l10n"; export default class ChooseCustomNameModal extends SuggestModal { - // This is used in onOpen, not sure why eslint doesn't recognize it // eslint-disable-next-line no-unused-vars public constructor(private defaultName: string) { @@ -13,15 +12,15 @@ export default class ChooseCustomNameModal extends SuggestModal { this.setInstructions([ { command: "", - purpose: t("Choose a custom Name for your new Command") + purpose: t("Choose a custom Name for your new Command"), }, { command: "↵", - purpose: t("to save") + purpose: t("to save"), }, { command: "esc", - purpose: t("to cancel") + purpose: t("to cancel"), }, ]); } @@ -45,7 +44,8 @@ export default class ChooseCustomNameModal extends SuggestModal { return new Promise((resolve, reject) => { this.onChooseSuggestion = (item): void => resolve(item); //This is wrapped inside a setTimeout, because onClose is called before onChooseItem - this.onClose = (): number => window.setTimeout(() => reject("No Name selected"), 0); + this.onClose = (): number => + window.setTimeout(() => reject("No Name selected"), 0); }); } @@ -55,9 +55,12 @@ export default class ChooseCustomNameModal extends SuggestModal { // This isn't needed, since we just want a text field without options // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-empty-function - public renderSuggestion(value: string, el: HTMLElement): void { } + public renderSuggestion(value: string, el: HTMLElement): void {} // This will be overriden anyway, but typescript complains if it's not declared // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-empty-function - public onChooseSuggestion(item: string, evt: MouseEvent | KeyboardEvent): void { } + public onChooseSuggestion( + item: string, + evt: MouseEvent | KeyboardEvent + ): void {} } diff --git a/src/ui/chooseIconModal.ts b/src/ui/chooseIconModal.ts index 942801a..d41ceab 100644 --- a/src/ui/chooseIconModal.ts +++ b/src/ui/chooseIconModal.ts @@ -1,7 +1,7 @@ -import { ICON_LIST } from './../constants'; +import { ICON_LIST } from "./../constants"; import { setIcon, FuzzySuggestModal, FuzzyMatch } from "obsidian"; import CommanderPlugin from "src/main"; -import t from 'src/l10n'; +import t from "src/l10n"; export default class ChooseIconModal extends FuzzySuggestModal { private plugin: CommanderPlugin; @@ -14,15 +14,15 @@ export default class ChooseIconModal extends FuzzySuggestModal { this.setInstructions([ { command: "↑↓", - purpose: t("to navigate") + purpose: t("to navigate"), }, { command: "↵", - purpose: t("to choose a custom icon") + purpose: t("to choose a custom icon"), }, { command: "esc", - purpose: t("to cancel") + purpose: t("to cancel"), }, ]); } @@ -32,14 +32,23 @@ export default class ChooseIconModal extends FuzzySuggestModal { return new Promise((resolve, reject) => { this.onChooseItem = (item): void => resolve(item); //This is wrapped inside a setTimeout, because onClose is called before onChooseItem - this.onClose = (): number => window.setTimeout(() => reject("No Icon selected"), 0); + this.onClose = (): number => + window.setTimeout(() => reject("No Icon selected"), 0); }); } public renderSuggestion(item: FuzzyMatch, el: HTMLElement): void { el.addClass("mod-complex"); const content = el.createDiv({ cls: "suggestion-content" }); - content.createDiv({ cls: "suggestion-title" }).setText(item.item.replace(/-/g, " ").replace(/(^\w{1})|(\s+\w{1})/g, letter => letter.toUpperCase())); + content + .createDiv({ cls: "suggestion-title" }) + .setText( + item.item + .replace(/-/g, " ") + .replace(/(^\w{1})|(\s+\w{1})/g, (letter) => + letter.toUpperCase() + ) + ); const aux = el.createDiv({ cls: "suggestion-aux" }); setIcon(aux.createSpan({ cls: "suggestion-flair" }), item.item); @@ -55,5 +64,5 @@ export default class ChooseIconModal extends FuzzySuggestModal { // This will be overriden anyway, but typescript complains if it's not declared // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-empty-function - public onChooseItem(_: string, __: MouseEvent | KeyboardEvent): void { } + public onChooseItem(_: string, __: MouseEvent | KeyboardEvent): void {} } diff --git a/src/ui/components/About.tsx b/src/ui/components/About.tsx index c08bca5..37d0f1c 100644 --- a/src/ui/components/About.tsx +++ b/src/ui/components/About.tsx @@ -5,37 +5,93 @@ import { showConfetti, ObsidianIcon } from "src/util"; import Credits from "./Credits"; import Logo from "./Logo"; -export default function About({ manifest }: { manifest: PluginManifest }): h.JSX.Element { - const feedbackBtn = ; - const donateBtn = ; +export default function About({ + manifest, +}: { + manifest: PluginManifest; +}): h.JSX.Element { + const feedbackBtn = ( + + ); + const donateBtn = ( + + ); return (
{Platform.isMobile && [
, feedbackBtn, donateBtn]} {Platform.isDesktop && [ -
+
-
{t("Leave feedback")}
-
{t("Share feedback, issues, and ideas with our feedback form.")}
-
-
- {feedbackBtn} +
+ {t("Leave feedback")} +
+
+ {t( + "Share feedback, issues, and ideas with our feedback form." + )} +
+
{feedbackBtn}
, -
+
{t("Donate")}
-
{t("Consider donating to support development.")}
-
-
- {donateBtn} +
+ {t("Consider donating to support development.")} +
+
{donateBtn}
, -
+
, ]} {manifest.name} - {manifest.version} + + {manifest.version} +
); } diff --git a/src/ui/components/Accordion.tsx b/src/ui/components/Accordion.tsx index 2635ea5..c985d0d 100644 --- a/src/ui/components/Accordion.tsx +++ b/src/ui/components/Accordion.tsx @@ -18,7 +18,10 @@ export default function Accordion({ return (
-
+
cb - .setLimits(0, 5, 1) - .setValue(plugin.settings.advancedToolbar.rowCount) - .setDynamicTooltip() - .onChange(async (value) => { - plugin.settings.advancedToolbar.rowCount = value; - await plugin.saveSettings(); - updateStyles(plugin.settings.advancedToolbar); - }) + .setDesc( + "Set how many Rows the Mobile Toolbar should have. Set this to 0 to remove the Toolbar." + ) + .addSlider((cb) => + cb + .setLimits(0, 5, 1) + .setValue(plugin.settings.advancedToolbar.rowCount) + .setDynamicTooltip() + .onChange(async (value) => { + plugin.settings.advancedToolbar.rowCount = value; + await plugin.saveSettings(); + updateStyles(plugin.settings.advancedToolbar); + }) ); new Setting(containerEl) .setName("Column Layout") - .setDesc("Use a column based layout instead of the default row. This makes it easier to arrange the Commands.") - .addToggle(cb => cb - .setValue(plugin.settings.advancedToolbar.columnLayout) - .onChange(async value => { - plugin.settings.advancedToolbar.columnLayout = value; - await plugin.saveSettings(); - updateStyles(plugin.settings.advancedToolbar); - }) + .setDesc( + "Use a column based layout instead of the default row. This makes it easier to arrange the Commands." + ) + .addToggle((cb) => + cb + .setValue(plugin.settings.advancedToolbar.columnLayout) + .onChange(async (value) => { + plugin.settings.advancedToolbar.columnLayout = value; + await plugin.saveSettings(); + updateStyles(plugin.settings.advancedToolbar); + }) ); // new Setting(containerEl) @@ -47,32 +53,36 @@ function render(containerEl: HTMLElement, plugin: CommanderPlugin) { new Setting(containerEl) .setName("Bottom Offset") - .setDesc("Offset the Toolbar from the Bottom of the Screen. This is useful if the toolbar is partially obscured by other UI Elements.") - .addSlider(cb => cb - .setLimits(0, 32, 1) - .setValue(plugin.settings.advancedToolbar.heightOffset) - .setDynamicTooltip() - .onChange(async (value) => { - plugin.settings.advancedToolbar.heightOffset = value; - await plugin.saveSettings(); - updateStyles(plugin.settings.advancedToolbar); - }) + .setDesc( + "Offset the Toolbar from the Bottom of the Screen. This is useful if the toolbar is partially obscured by other UI Elements." + ) + .addSlider((cb) => + cb + .setLimits(0, 32, 1) + .setValue(plugin.settings.advancedToolbar.heightOffset) + .setDynamicTooltip() + .onChange(async (value) => { + plugin.settings.advancedToolbar.heightOffset = value; + await plugin.saveSettings(); + updateStyles(plugin.settings.advancedToolbar); + }) ); - if (Platform.isMobile) { const description = document.createDocumentFragment(); description.appendChild(createEl("h3", { text: "Custom Icons" })); containerEl.appendChild(description); - plugin.getCommandsWithoutIcons().forEach(command => { + plugin.getCommandsWithoutIcons().forEach((command) => { new Setting(containerEl) .setName(command.name) .setDesc(`ID: ${command.id}`) - .addButton(bt => { - const iconDiv = bt.buttonEl.createDiv({ cls: "AT-settings-icon" }); + .addButton((bt) => { + const iconDiv = bt.buttonEl.createDiv({ + cls: "AT-settings-icon", + }); if (command.icon) { - setIcon(iconDiv, command.icon, 20); + setIcon(iconDiv, command.icon); } else { const currentIcon = plugin.settings.advancedToolbar.mappedIcons.find( @@ -83,86 +93,128 @@ function render(containerEl: HTMLElement, plugin: CommanderPlugin) { : bt.setButtonText("No Icon"); } bt.onClick(async () => { - const icon = await new ChooseIconModal(plugin).awaitSelection(); - const mappedIcon = plugin.settings.advancedToolbar.mappedIcons.find(m => m.commandID === command.id); + const icon = await new ChooseIconModal( + plugin + ).awaitSelection(); + const mappedIcon = + plugin.settings.advancedToolbar.mappedIcons.find( + (m) => m.commandID === command.id + ); if (mappedIcon) { mappedIcon.iconID = icon; } else { - plugin.settings.advancedToolbar.mappedIcons.push({ commandID: command.id, iconID: icon }); + plugin.settings.advancedToolbar.mappedIcons.push({ + commandID: command.id, + iconID: icon, + }); } await plugin.saveSettings(); injectIcons(plugin.settings.advancedToolbar); render(containerEl, plugin); }); }) - .addExtraButton(bt => { + .addExtraButton((bt) => { bt.setIcon("reset") .setTooltip("Reset to default - Requires a restart") .onClick(async () => { - plugin.settings.advancedToolbar.mappedIcons = plugin.settings.advancedToolbar.mappedIcons.filter(p => p.commandID !== command.id); + plugin.settings.advancedToolbar.mappedIcons = + plugin.settings.advancedToolbar.mappedIcons.filter( + (p) => p.commandID !== command.id + ); delete command.icon; delete app.commands.commands[command.id].icon; await plugin.saveSettings(); render(containerEl, plugin); - new Notice("If the default Icon doesn't appear, you might have to restart Obsidian.") + new Notice( + "If the default Icon doesn't appear, you might have to restart Obsidian." + ); }); }); }); } - const advancedEl = containerEl.appendChild(createEl("div", { cls: "cmdr-sep-con", attr: { style: "margin-top: 64px" } })); - advancedEl.appendChild(createEl("div", { text: "Advanced Settings", attr: { style: "margin-bottom: 8px; font-weight: bold" } })); + const advancedEl = containerEl.appendChild( + createEl("div", { + cls: "cmdr-sep-con", + attr: { style: "margin-top: 64px" }, + }) + ); + advancedEl.appendChild( + createEl("div", { + text: "Advanced Settings", + attr: { style: "margin-bottom: 8px; font-weight: bold" }, + }) + ); new Setting(advancedEl) .setName("Button Height") - .setDesc("Change the Height of each Button inside the Mobile Toolbar (in px).") - .addText(cb => cb - .setValue(plugin.settings.advancedToolbar.rowHeight?.toString() ?? "48") - .setPlaceholder("48") - .onChange(async (value) => { - const height = Number(value); - const invalid = isNaN(height); - cb.inputEl.toggleClass("is-invalid", invalid) - if (!invalid) { - plugin.settings.advancedToolbar.rowHeight = height; - await plugin.saveSettings(); - updateStyles(plugin.settings.advancedToolbar); - } - }) + .setDesc( + "Change the Height of each Button inside the Mobile Toolbar (in px)." + ) + .addText((cb) => + cb + .setValue( + plugin.settings.advancedToolbar.rowHeight?.toString() ?? + "48" + ) + .setPlaceholder("48") + .onChange(async (value) => { + const height = Number(value); + const invalid = isNaN(height); + cb.inputEl.toggleClass("is-invalid", invalid); + if (!invalid) { + plugin.settings.advancedToolbar.rowHeight = height; + await plugin.saveSettings(); + updateStyles(plugin.settings.advancedToolbar); + } + }) ); new Setting(advancedEl) .setName("Button Width") - .setDesc("Change the Width of each Button inside the Mobile Toolbar (in px).") - .addText(cb => cb - .setValue(plugin.settings.advancedToolbar.buttonWidth?.toString() ?? "48") - .setPlaceholder("48") - .onChange(async (value) => { - const width = Number(value); - const invalid = isNaN(width); - cb.inputEl.toggleClass("is-invalid", invalid) - if (!invalid) { - plugin.settings.advancedToolbar.buttonWidth = width; - await plugin.saveSettings(); - updateStyles(plugin.settings.advancedToolbar); - } - }) + .setDesc( + "Change the Width of each Button inside the Mobile Toolbar (in px)." + ) + .addText((cb) => + cb + .setValue( + plugin.settings.advancedToolbar.buttonWidth?.toString() ?? + "48" + ) + .setPlaceholder("48") + .onChange(async (value) => { + const width = Number(value); + const invalid = isNaN(width); + cb.inputEl.toggleClass("is-invalid", invalid); + if (!invalid) { + plugin.settings.advancedToolbar.buttonWidth = width; + await plugin.saveSettings(); + updateStyles(plugin.settings.advancedToolbar); + } + }) ); new Setting(advancedEl) .setName("Toolbar Extra Spacing") - .setDesc("Some Themes need extra spacing in the toolbar. If your Toolbar doesn't wrap properly, try increasing this value.") - .addSlider(cb => cb - .setLimits(0, 64, 1) - .setValue(plugin.settings.advancedToolbar.spacing) - .setDynamicTooltip() - .onChange(async (value) => { - plugin.settings.advancedToolbar.spacing = value; - await plugin.saveSettings(); - updateStyles(plugin.settings.advancedToolbar); - }) + .setDesc( + "Some Themes need extra spacing in the toolbar. If your Toolbar doesn't wrap properly, try increasing this value." + ) + .addSlider((cb) => + cb + .setLimits(0, 64, 1) + .setValue(plugin.settings.advancedToolbar.spacing) + .setDynamicTooltip() + .onChange(async (value) => { + plugin.settings.advancedToolbar.spacing = value; + await plugin.saveSettings(); + updateStyles(plugin.settings.advancedToolbar); + }) ); } -export default function AdvancedToolbarSettings({ plugin }: { plugin: CommanderPlugin }): h.JSX.Element { +export default function AdvancedToolbarSettings({ + plugin, +}: { + plugin: CommanderPlugin; +}): h.JSX.Element { const ref = useRef(null); useEffect(() => { diff --git a/src/ui/components/ChangeableText.tsx b/src/ui/components/ChangeableText.tsx index e0ca898..352ef18 100644 --- a/src/ui/components/ChangeableText.tsx +++ b/src/ui/components/ChangeableText.tsx @@ -11,7 +11,7 @@ interface Props { export default function ChangeableText({ value, handleChange, - ariaLabel + ariaLabel, }: Props): h.JSX.Element { const [showInputEle, setShowInput] = useState(false); const el: Ref | undefined = useRef(null); @@ -44,8 +44,11 @@ export default function ChangeableText({ /> ) : ( { setWidth(target?.offsetWidth); setShowInput(true); }} + onDblClick={({ target }): void => { + /* @ts-ignore */ + setWidth(target?.offsetWidth); + setShowInput(true); + }} aria-label={ariaLabel} > {value} diff --git a/src/ui/components/Credits.tsx b/src/ui/components/Credits.tsx index eb0df87..3048b7d 100644 --- a/src/ui/components/Credits.tsx +++ b/src/ui/components/Credits.tsx @@ -1,10 +1,26 @@ import { h } from "preact"; +import { useState } from "preact/hooks"; import t from "src/l10n"; +const links = [ + "https://github.com/jsmorabito", + "https://github.com/phibr0", + "https://www.youtube.com/watch?v=dQw4w9WgXcQ", +]; + export default function Credits(): h.JSX.Element { + const [clicks, setClicks] = useState(0); + return (
- {t("By Johnny✨ and phibr0")} + { + setClicks((c) => c + 1); + location.replace(links[clicks % links.length]); + }} + > + {t("By Johnny✨ and phibr0")} +
); } diff --git a/src/ui/components/MacroBuilder.tsx b/src/ui/components/MacroBuilder.tsx index 1b7a2a5..5e2ed2d 100644 --- a/src/ui/components/MacroBuilder.tsx +++ b/src/ui/components/MacroBuilder.tsx @@ -264,4 +264,4 @@ export default function ({
); -}; +} diff --git a/src/ui/components/MacroViewer.tsx b/src/ui/components/MacroViewer.tsx index 53a548c..0f03924 100644 --- a/src/ui/components/MacroViewer.tsx +++ b/src/ui/components/MacroViewer.tsx @@ -15,11 +15,14 @@ interface MacroBuilderProps { plugin: CommanderPlugin; macros: Macro[]; } -export default function MacroViewer({ plugin, macros }: MacroBuilderProps): h.JSX.Element { +export default function MacroViewer({ + plugin, + macros, +}: MacroBuilderProps): h.JSX.Element { const handleBuilder = (macro: Macro, idx?: number) => { const onClose = (updatedMacro: Macro) => { macros.splice( - idx !== undefined ? idx : (macros.length), + idx !== undefined ? idx : macros.length, idx !== undefined ? 1 : 0, updatedMacro ); @@ -28,7 +31,7 @@ export default function MacroViewer({ plugin, macros }: MacroBuilderProps): h.JS this.forceUpdate(); updateMacroCommands(plugin); modal.close(); - } + }; const modal = new MacroBuilderModal(plugin, macro, onClose); modal.open(); }; @@ -38,7 +41,7 @@ export default function MacroViewer({ plugin, macros }: MacroBuilderProps): h.JS plugin.saveSettings(); this.forceUpdate(); updateMacroCommands(plugin); - } + }; return ( @@ -46,9 +49,7 @@ export default function MacroViewer({ plugin, macros }: MacroBuilderProps): h.JS {macros.map((item, idx) => (
-
- {item.name} -
+
{item.name}
{item.macro.length} Actions
@@ -64,7 +65,12 @@ export default function MacroViewer({ plugin, macros }: MacroBuilderProps): h.JS aria-label="Delete" class="mod-warning" onClick={async (): Promise => { - if (!plugin.settings.confirmDeletion || await new ConfirmDeleteModal(plugin).didChooseRemove()) { + if ( + !plugin.settings.confirmDeletion || + (await new ConfirmDeleteModal( + plugin + ).didChooseRemove()) + ) { handleDelete(idx); } }} @@ -75,21 +81,28 @@ export default function MacroViewer({ plugin, macros }: MacroBuilderProps): h.JS
))}
- {!macros.length &&
- {/* This isn't really dangerous, + {!macros.length && ( +
+ {/* This isn't really dangerous, as the svg is inserted at build time and no other data can be passed to it */} - -

No Macros yet!

- {t("Would you like to add one now?")} -
} + +

No Macros yet!

+ {t("Would you like to add one now?")} +
+ )} {Platform.isMobile &&
}
-
); -}; +} diff --git a/src/ui/components/commandComponent.tsx b/src/ui/components/commandComponent.tsx index f12daae..d5d28ea 100644 --- a/src/ui/components/commandComponent.tsx +++ b/src/ui/components/commandComponent.tsx @@ -16,6 +16,7 @@ interface CommandViewerProps { handleRename: (name: string) => void; handleModeChange: (mode?: string) => void; handleColorChange: (color?: string) => void; + sortable?: boolean; } export default function CommandComponent({ @@ -27,6 +28,7 @@ export default function CommandComponent({ handleRename, handleModeChange, handleColorChange, + sortable = true, }: CommandViewerProps): h.JSX.Element { const cmd = getCommandFromId(pair.id); if (!cmd) { @@ -150,18 +152,22 @@ export default function CommandComponent({ initialColor={pair.color ?? "#000"} onChange={handleColorChange} /> - - + {sortable && ( + <> + + + + )} - - + {sortable && ( + <> + + + + )} (null!); interface CommandViewerProps { manager: CommandManagerBase; - plugin: CommanderPlugin - children?: h.JSX.Element | h.JSX.Element[] + plugin: CommanderPlugin; + children?: h.JSX.Element | h.JSX.Element[]; + sortable?: boolean; } -export default function CommandViewer({ manager, plugin, children }: CommandViewerProps): h.JSX.Element { +export default function CommandViewer({ + manager, + plugin, + children, + sortable = true, +}: CommandViewerProps): h.JSX.Element { return (
{manager.pairs.map((cmd, idx) => { - if (cmd.mode.match(/desktop|mobile|any/) || cmd.mode === app.appId) { + if ( + cmd.mode.match(/desktop|mobile|any/) || + cmd.mode === app.appId + ) { return ( => { @@ -114,13 +124,19 @@ export default function CommandViewer({ manager, plugin, children }: CommandView } })}
- {!manager.pairs.some((pre) => isModeActive(pre.mode) || pre.mode.match(/mobile|desktop/)) &&
- {/* This isn't really dangerous, + {!manager.pairs.some( + (pre) => + isModeActive(pre.mode) || + pre.mode.match(/mobile|desktop/) + ) && ( +
+ {/* This isn't really dangerous, as the svg is inserted at build time and no other data can be passed to it */} - -

{t("No commands here!")}

- {t("Would you like to add one now?")} -
} + +

{t("No commands here!")}

+ {t("Would you like to add one now?")} +
+ )} {Platform.isMobile &&
} @@ -140,6 +156,6 @@ export default function CommandViewer({ manager, plugin, children }: CommandView
{children} -
+ ); } diff --git a/src/ui/components/hidingViewer.tsx b/src/ui/components/hidingViewer.tsx index 1ca1dcf..76f27c1 100644 --- a/src/ui/components/hidingViewer.tsx +++ b/src/ui/components/hidingViewer.tsx @@ -7,35 +7,114 @@ import { updateHiderStylesheet } from "src/util"; import Accordion from "./Accordion"; import { EyeToggleComponent } from "./settingComponent"; -export function StatusbarHider({ plugin }: { plugin: CommanderPlugin }): h.JSX.Element { +export function LeftRibbonHider({ + plugin, +}: { + plugin: CommanderPlugin; +}): h.JSX.Element { + const [ribbonCommands, setRibbonCommands] = useState< + { name: string; icon: string }[] + >([]); + const hiddenCommands = plugin.settings.hide.leftRibbon; + useEffect(() => { + setRibbonCommands( + // @ts-expect-error + app.workspace.leftRibbon.items.map((item) => ({ + name: item.title, + icon: item.icon, + })) + ); + }, []); + + return ( + +
+ + {ribbonCommands.map((command) => ( + => { + if (!value) { + hiddenCommands.push(command.name); + } else { + hiddenCommands.contains(command.name) && + hiddenCommands.remove(command.name); + } + updateHiderStylesheet(plugin.settings); + await plugin.saveSettings(); + }} + value={hiddenCommands.contains(command.name)} + /> + ))} + +
+ ); +} + +export function StatusbarHider({ + plugin, +}: { + plugin: CommanderPlugin; +}): h.JSX.Element { const hiddenPlugins = plugin.settings.hide.statusbar; - const [pluginsWithRibbonItems, setPluginsWithRibbonItems] = useState([]); + const [pluginsWithRibbonItems, setPluginsWithRibbonItems] = useState< + PluginManifest[] + >([]); useEffect(() => { - const statusBarItems = [...app.statusBar.containerEl.getElementsByClassName("status-bar-item")]; - const ids = (statusBarItems.map(el => [...el.classList].find((pre) => pre.startsWith("plugin-"))).filter((pre) => pre) as string[]).map((pre) => pre.substring(7)); - setPluginsWithRibbonItems(ids.map((id) => app.plugins.manifests[id] || { id, name: id.replace(/-/g, " ").replace(/(^\w{1})|(\s+\w{1})/g, letter => letter.toUpperCase()), description: "Core Plugin" })); + const statusBarItems = [ + ...app.statusBar.containerEl.getElementsByClassName( + "status-bar-item" + ), + ]; + const ids = ( + statusBarItems + .map((el) => + [...el.classList].find((pre) => pre.startsWith("plugin-")) + ) + .filter((pre) => pre) as string[] + ).map((pre) => pre.substring(7)); + setPluginsWithRibbonItems( + ids.map( + (id) => + app.plugins.manifests[id] || { + id, + name: id + .replace(/-/g, " ") + .replace(/(^\w{1})|(\s+\w{1})/g, (letter) => + letter.toUpperCase() + ), + description: "Core Plugin", + } + ) + ); }, []); return (
- {pluginsWithRibbonItems.map((manifest) => => { - if (!value) { - hiddenPlugins.push(manifest.id); - } else { - hiddenPlugins.contains(manifest.id) && hiddenPlugins.remove(manifest.id); - } - updateHiderStylesheet(plugin.settings); - await plugin.saveSettings(); - }} - />)} + {pluginsWithRibbonItems.map((manifest) => ( + => { + if (!value) { + hiddenPlugins.push(manifest.id); + } else { + hiddenPlugins.contains(manifest.id) && + hiddenPlugins.remove(manifest.id); + } + updateHiderStylesheet(plugin.settings); + await plugin.saveSettings(); + }} + /> + ))}
); diff --git a/src/ui/components/settingComponent.tsx b/src/ui/components/settingComponent.tsx index 2e1c58a..37f0a2e 100644 --- a/src/ui/components/settingComponent.tsx +++ b/src/ui/components/settingComponent.tsx @@ -10,16 +10,19 @@ interface BaseComponentProps { description: string; className?: string; } -function BaseComponent({ name, description, children, className }: BaseComponentProps): h.JSX.Element { +function BaseComponent({ + name, + description, + children, + className, +}: BaseComponentProps): h.JSX.Element { return (
{name}
{description}
-
- {children} -
+
{children}
); } @@ -38,10 +41,17 @@ export function ToggleComponent(props: SettingProps): h.JSX.Element { const [state, setState] = useState(props.value); return ( - +
{ setState(!state); props.changeHandler(state); }} + onClick={(): void => { + setState(!state); + props.changeHandler(state); + }} /> ); @@ -51,17 +61,31 @@ interface EyeToggleSettingProps extends SettingProps { hideLabel: string; showLabel: string; } -export function EyeToggleComponent({ name, description, changeHandler, value, hideLabel, showLabel }: EyeToggleSettingProps): h.JSX.Element { +export function EyeToggleComponent({ + name, + description, + changeHandler, + value, + hideLabel, + showLabel, +}: EyeToggleSettingProps): h.JSX.Element { const [state, setState] = useState(value); return ( - + { setState(!state); changeHandler(state); }} + onClick={(): void => { + setState(!state); + changeHandler(state); + }} /> ); @@ -71,17 +95,41 @@ export function SliderComponent(props: SettingProps): h.JSX.Element { const [val, setVal] = useState(props.value); return ( - +
- { - //@ts-expect-error - const n = Number(target.value); - if (!isNaN(n) && val !== n) { - setVal(n); props.changeHandler(n); - } - }} /> - {/*@ts-expect-error*/} - { if (val !== target.value) { setVal(target.value); props.changeHandler(target.value); } }} /> + { + //@ts-expect-error + const n = Number(target.value); + if (!isNaN(n) && val !== n) { + setVal(n); + props.changeHandler(n); + } + }} + /> + { + {/*@ts-expect-error*/} + if (val !== target.value) { + {/*@ts-expect-error*/} + setVal(target.value); + {/*@ts-expect-error*/} + props.changeHandler(target.value); + } + }} + />
); diff --git a/src/ui/components/settingTabComponent.tsx b/src/ui/components/settingTabComponent.tsx index a27fd06..b5766d8 100644 --- a/src/ui/components/settingTabComponent.tsx +++ b/src/ui/components/settingTabComponent.tsx @@ -8,7 +8,7 @@ import CommanderPlugin from "../../main"; import About from "./About"; import AdvancedToolbarSettings from "./AdvancedToolbarSettings"; import CommandViewer from "./commandViewerComponent"; -import { StatusbarHider } from "./hidingViewer"; +import { LeftRibbonHider, StatusbarHider } from "./hidingViewer"; import MacroViewer from "./MacroViewer"; import { SliderComponent, ToggleComponent } from "./settingComponent"; @@ -90,24 +90,15 @@ export default function settingTabComponent({ => { plugin.settings.showAddCommand = !value; plugin.manager.pageHeader.reorder(); await plugin.saveSettings(); }} /> - => { - plugin.settings.debug = !value; - await plugin.saveSettings(); - }} - /> -
+
- Reordering/Sorting + {" "} + Reordering and Sorting

As of Obsidian 1.1.0 you can reorder the Buttons diff --git a/src/ui/confirmDeleteModal.ts b/src/ui/confirmDeleteModal.ts index 79cd3ff..edd738f 100644 --- a/src/ui/confirmDeleteModal.ts +++ b/src/ui/confirmDeleteModal.ts @@ -31,5 +31,3 @@ export default class ConfirmDeleteModal extends Modal { render(null, this.contentEl); } } - - diff --git a/src/ui/icons.ts b/src/ui/icons.ts index cf66516..6ea6fda 100644 --- a/src/ui/icons.ts +++ b/src/ui/icons.ts @@ -1,5 +1,8 @@ import { addIcon } from "obsidian"; export default function registerCustomIcons(): void { - addIcon("cmdr-all-devices", ``); + addIcon( + "cmdr-all-devices", + `` + ); } diff --git a/src/ui/mobileModifyModal.ts b/src/ui/mobileModifyModal.ts index acbe847..d3a3cd5 100644 --- a/src/ui/mobileModifyModal.ts +++ b/src/ui/mobileModifyModal.ts @@ -1,5 +1,5 @@ /* eslint-disable no-unused-vars */ -import { CommandIconPair } from 'src/types'; +import { CommandIconPair } from "src/types"; import { Modal } from "obsidian"; import { h, render, VNode } from "preact"; import MobileModifyComponent from "./components/mobileModifyComponent"; @@ -28,5 +28,3 @@ export default class MobileModifyModal extends Modal { render(null, this.contentEl); } } - - diff --git a/src/ui/settingTab.ts b/src/ui/settingTab.ts index 45d8537..b5cd8a5 100644 --- a/src/ui/settingTab.ts +++ b/src/ui/settingTab.ts @@ -12,7 +12,13 @@ export default class CommanderSettingTab extends PluginSettingTab { } public display(): void { - render(h(settingTabComponent, { plugin: this.plugin, mobileMode: Platform.isMobile }), this.containerEl); + render( + h(settingTabComponent, { + plugin: this.plugin, + mobileMode: Platform.isMobile, + }), + this.containerEl + ); } public hide(): void { diff --git a/src/ui/settingTabModal.ts b/src/ui/settingTabModal.ts index 992afba..b1376c1 100644 --- a/src/ui/settingTabModal.ts +++ b/src/ui/settingTabModal.ts @@ -9,12 +9,15 @@ export default class SettingTabModal extends Modal { public constructor(plugin: CommanderPlugin) { super(app); this.plugin = plugin; - this.containerEl.addClass('cmdr-setting-modal'); + this.containerEl.addClass("cmdr-setting-modal"); } public onOpen(): void { - const mobileMode = Platform.isMobile;//this.containerEl.getBoundingClientRect().width <= 1100; - render(h(settingTabComponent, { plugin: this.plugin, mobileMode }), this.contentEl); + const mobileMode = Platform.isMobile; //this.containerEl.getBoundingClientRect().width <= 1100; + render( + h(settingTabComponent, { plugin: this.plugin, mobileMode }), + this.contentEl + ); } public onClose(): void { diff --git a/src/util.tsx b/src/util.tsx index e784e48..9cca470 100644 --- a/src/util.tsx +++ b/src/util.tsx @@ -1,12 +1,16 @@ -import { AdvancedToolbarSettings, CommanderSettings, CommandIconPair } from './types'; +import { + AdvancedToolbarSettings, + CommanderSettings, + CommandIconPair, +} from "./types"; import CommanderPlugin from "./main"; import AddCommandModal from "./ui/addCommandModal"; -import ChooseIconModal from './ui/chooseIconModal'; -import { Command, Platform, setIcon } from 'obsidian'; -import ChooseCustomNameModal from './ui/chooseCustomNameModal'; -import { ComponentProps, h } from 'preact'; -import { useRef, useLayoutEffect } from 'preact/hooks'; -import confetti from 'canvas-confetti'; +import ChooseIconModal from "./ui/chooseIconModal"; +import { Command, Platform, setIcon } from "obsidian"; +import ChooseCustomNameModal from "./ui/chooseCustomNameModal"; +import { ComponentProps, h } from "preact"; +import { useRef, useLayoutEffect } from "preact/hooks"; +import confetti from "canvas-confetti"; /** * It creates a modal, waits for the user to select a command, and then creates another modal to wait @@ -14,8 +18,9 @@ import confetti from 'canvas-confetti'; * @param {CommanderPlugin} plugin - The plugin that is calling the modal. * @returns {CommandIconPair} */ -export async function chooseNewCommand(plugin: CommanderPlugin): Promise { - +export async function chooseNewCommand( + plugin: CommanderPlugin +): Promise { const command = await new AddCommandModal(plugin).awaitSelection(); let icon; @@ -31,7 +36,7 @@ export async function chooseNewCommand(plugin: CommanderPlugin): Promise { - const myCanvas = activeDocument.createElement('canvas'); + const myCanvas = activeDocument.createElement("canvas"); activeDocument.body.appendChild(myCanvas); myCanvas.style.position = "fixed"; myCanvas.style.width = "100vw"; @@ -102,7 +110,7 @@ export async function showConfetti({ target }: MouseEvent): Promise { const myConfetti = confetti.create(myCanvas, { resize: true, - useWorker: true + useWorker: true, }); const pos = (target as HTMLDivElement).getBoundingClientRect(); @@ -128,7 +136,9 @@ export function updateSpacing(spacing: number): void { } export function updateMacroCommands(plugin: CommanderPlugin): void { - const oldCommands = Object.keys(app.commands.commands).filter(p => p.startsWith("cmdr:macro-")); + const oldCommands = Object.keys(app.commands.commands).filter((p) => + p.startsWith("cmdr:macro-") + ); for (const command of oldCommands) { //@ts-ignore app.commands.removeCommand(command); @@ -141,7 +151,7 @@ export function updateMacroCommands(plugin: CommanderPlugin): void { name: macro.name, callback: () => { plugin.executeMacro(parseInt(idx)); - } + }, }); } } @@ -151,12 +161,12 @@ export function updateStyles(settings: AdvancedToolbarSettings) { s.setProperty("--at-button-height", (settings.rowHeight ?? 48) + "px"); s.setProperty("--at-button-width", (settings.buttonWidth ?? 48) + "px"); s.setProperty("--at-row-count", settings.rowCount.toString()); - s.setProperty("--at-spacing", (settings.spacing) + "px"); - s.setProperty("--at-offset", (settings.heightOffset) + "px"); - c.toggle('AT-multirow', settings.rowCount > 1); - c.toggle('AT-row', !settings.columnLayout); - c.toggle('AT-column', settings.columnLayout); - c.toggle('AT-no-toolbar', settings.rowCount === 0); + s.setProperty("--at-spacing", settings.spacing + "px"); + s.setProperty("--at-offset", settings.heightOffset + "px"); + c.toggle("AT-multirow", settings.rowCount > 1); + c.toggle("AT-row", !settings.columnLayout); + c.toggle("AT-column", settings.columnLayout); + c.toggle("AT-no-toolbar", settings.rowCount === 0); } export function removeStyles() { @@ -166,15 +176,15 @@ export function removeStyles() { s.removeProperty("--at-row-count"); s.removeProperty("--at-spacing"); s.removeProperty("--at-offset"); - c.remove('AT-multirow'); - c.remove('AT-row'); - c.remove('AT-column'); - c.remove('AT-no-toolbar'); - c.remove('advanced-toolbar'); + c.remove("AT-multirow"); + c.remove("AT-row"); + c.remove("AT-column"); + c.remove("AT-no-toolbar"); + c.remove("advanced-toolbar"); } export function injectIcons(settings: AdvancedToolbarSettings) { - settings.mappedIcons.forEach(mapped => { + settings.mappedIcons.forEach((mapped) => { const command = app.commands.commands[mapped.commandID]; if (command) { command.icon = mapped.iconID;