mirror of
https://github.com/Vendicated/Vencord.git
synced 2025-02-25 07:48:32 +00:00
Merge branch 'Vendicated:main' into main
This commit is contained in:
commit
92ca4fa908
21 changed files with 857 additions and 379 deletions
|
@ -109,46 +109,6 @@
|
||||||
|
|
||||||
"unused-imports/no-unused-imports": "error",
|
"unused-imports/no-unused-imports": "error",
|
||||||
|
|
||||||
"path-alias/no-relative": "error",
|
"path-alias/no-relative": "error"
|
||||||
|
|
||||||
"@typescript-eslint/no-restricted-imports": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"paths": [
|
|
||||||
// shrug, couldn't find a better way since the pattern one doesn't work:
|
|
||||||
// ["utils", "!utils/*"]
|
|
||||||
{
|
|
||||||
"name": "./utils",
|
|
||||||
"message": "Do not import from index. This might cause issues. Import from the specific file instead.",
|
|
||||||
"allowTypeImports": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "../utils",
|
|
||||||
"message": "Do not import from index. This might cause issues. Import from the specific file instead.",
|
|
||||||
"allowTypeImports": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "../../utils",
|
|
||||||
"message": "Do not import from index. This might cause issues. Import from the specific file instead.",
|
|
||||||
"allowTypeImports": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "../../../utils",
|
|
||||||
"message": "Do not import from index. This might cause issues. Import from the specific file instead.",
|
|
||||||
"allowTypeImports": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "../../../../utils",
|
|
||||||
"message": "Do not import from index. This might cause issues. Import from the specific file instead.",
|
|
||||||
"allowTypeImports": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "../../../../../utils",
|
|
||||||
"message": "Do not import from index. This might cause issues. Import from the specific file instead.",
|
|
||||||
"allowTypeImports": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
13
.github/workflows/build.yml
vendored
13
.github/workflows/build.yml
vendored
|
@ -33,9 +33,22 @@ jobs:
|
||||||
- name: Build web
|
- name: Build web
|
||||||
run: pnpm buildWeb --standalone
|
run: pnpm buildWeb --standalone
|
||||||
|
|
||||||
|
- name: Sign firefox extension
|
||||||
|
run: |
|
||||||
|
pnpx web-ext sign --api-key $WEBEXT_USER --api-secret $WEBEXT_SECRET --channel=listed
|
||||||
|
env:
|
||||||
|
WEBEXT_USER: ${{ secrets.WEBEXT_USER }}
|
||||||
|
WEBEXT_SECRET: ${{ secrets.WEBEXT_SECRET }}
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: pnpm build --standalone
|
run: pnpm build --standalone
|
||||||
|
|
||||||
|
- name: Rename extensions for more user friendliness
|
||||||
|
run: |
|
||||||
|
mv dist/*.xpi dist/Vencord-for-Firefox.xpi
|
||||||
|
mv dist/extension-v3.zip dist/Vencord-for-Chrome-and-Edge.zip
|
||||||
|
rm -rf dist/extension-v2-unpacked
|
||||||
|
|
||||||
- name: Get some values needed for the release
|
- name: Get some values needed for the release
|
||||||
id: release_values
|
id: release_values
|
||||||
run: |
|
run: |
|
||||||
|
|
1
.npmrc
Normal file
1
.npmrc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
strict-peer-dependencies=false
|
|
@ -19,7 +19,8 @@ If you're a power user who wants to contribute and make plugins or just want to
|
||||||
|
|
||||||
## Installing on Browser
|
## Installing on Browser
|
||||||
|
|
||||||
Install [the browser extension](https://github.com/Vendicated/Vencord/releases/latest/download/extension.zip) or [UserScript](https://github.com/Vendicated/Vencord/releases/download/devbuild/Vencord.user.js). Please note that they aren't automatically updated for now, so you will regularely have to reinstall it.
|
Install the browser extension for [](https://github.com/Vendicated/Vencord/releases/latest/download/Vencord-for-Chrome-and-Edge.zip), [](https://github.com/Vendicated/Vencord/releases/latest/download/Vencord-for-Firefox.xpi) or [UserScript](https://github.com/Vendicated/Vencord/releases/download/devbuild/Vencord.user.js). Please note that they aren't automatically updated for now, so you will regularely have to reinstall it.
|
||||||
|
|
||||||
|
|
||||||
You may also build them from source, to do that do the same steps as in the manual regular install method,
|
You may also build them from source, to do that do the same steps as in the manual regular install method,
|
||||||
except run `pnpm buildWeb` instead of `pnpm build`, and your outputs will be in the dist folder
|
except run `pnpm buildWeb` instead of `pnpm build`, and your outputs will be in the dist folder
|
||||||
|
|
48
browser/background.js
Normal file
48
browser/background.js
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
* Vencord, a modification for Discord's desktop app
|
||||||
|
* Copyright (c) 2022 Linnea Gräf
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function setContentTypeOnStylesheets(details) {
|
||||||
|
if (details.type === "stylesheet") {
|
||||||
|
details.responseHeaders = details.responseHeaders.filter(it => it.name.toLowerCase() !== 'content-type');
|
||||||
|
details.responseHeaders.push({ name: "Content-Type", value: "text/css" });
|
||||||
|
}
|
||||||
|
return { responseHeaders: details.responseHeaders };
|
||||||
|
}
|
||||||
|
|
||||||
|
var cspHeaders = [
|
||||||
|
"content-security-policy",
|
||||||
|
"content-security-policy-report-only",
|
||||||
|
];
|
||||||
|
|
||||||
|
function removeCSPHeaders(details) {
|
||||||
|
return {
|
||||||
|
responseHeaders: details.responseHeaders.filter(header =>
|
||||||
|
!cspHeaders.includes(header.name.toLowerCase()))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
browser.webRequest.onHeadersReceived.addListener(
|
||||||
|
setContentTypeOnStylesheets, { urls: ["https://raw.githubusercontent.com/*"] }, ["blocking", "responseHeaders"]
|
||||||
|
);
|
||||||
|
|
||||||
|
browser.webRequest.onHeadersReceived.addListener(
|
||||||
|
removeCSPHeaders, { urls: ["https://raw.githubusercontent.com/*", "*://*.discord.com/*"] }, ["blocking", "responseHeaders"]
|
||||||
|
);
|
31
browser/manifestv2.json
Normal file
31
browser/manifestv2.json
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"manifest_version": 2,
|
||||||
|
"name": "Vencord Web",
|
||||||
|
"description": "The Vencord Client Mod for Discord Web.",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": "Vendicated",
|
||||||
|
"homepage_url": "https://github.com/Vendicated/Vencord",
|
||||||
|
"permissions": [
|
||||||
|
"webRequest",
|
||||||
|
"webRequestBlocking",
|
||||||
|
"*://*.discord.com/*",
|
||||||
|
"https://raw.githubusercontent.com/*"
|
||||||
|
],
|
||||||
|
"content_scripts": [
|
||||||
|
{
|
||||||
|
"run_at": "document_start",
|
||||||
|
"matches": ["*://*.discord.com/*"],
|
||||||
|
"js": ["content.js"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"web_accessible_resources": ["dist/Vencord.js"],
|
||||||
|
"background": {
|
||||||
|
"scripts": ["background.js"]
|
||||||
|
},
|
||||||
|
"browser_specific_settings": {
|
||||||
|
"gecko": {
|
||||||
|
"id": "vencord-firefox@vendicated.dev",
|
||||||
|
"strict_min_version": "92.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
package.json
33
package.json
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "vencord",
|
"name": "vencord",
|
||||||
"private": "true",
|
"private": "true",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"description": "A Discord client mod that does things differently",
|
"description": "A Discord client mod that does things differently",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"homepage": "https://github.com/Vendicated/Vencord#readme",
|
"homepage": "https://github.com/Vendicated/Vencord#readme",
|
||||||
|
@ -30,36 +30,43 @@
|
||||||
"watch": "node scripts/build/build.mjs --watch"
|
"watch": "node scripts/build/build.mjs --watch"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"console-menu": "^0.1.0",
|
|
||||||
"diff": "^5.1.0",
|
|
||||||
"fflate": "^0.7.4"
|
"fflate": "^0.7.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/diff": "^5.0.2",
|
"@types/diff": "^5.0.2",
|
||||||
"@types/node": "^18.7.13",
|
"@types/node": "^18.11.9",
|
||||||
"@types/react": "^18.0.17",
|
"@types/react": "^18.0.25",
|
||||||
"@types/react-dom": "^18.0.8",
|
"@types/react-dom": "^18.0.9",
|
||||||
"@types/yazl": "^2.4.2",
|
"@types/yazl": "^2.4.2",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.42.1",
|
"@typescript-eslint/eslint-plugin": "^5.44.0",
|
||||||
"@typescript-eslint/parser": "^5.39.0",
|
"@typescript-eslint/parser": "^5.44.0",
|
||||||
|
"console-menu": "^0.1.0",
|
||||||
|
"diff": "^5.1.0",
|
||||||
"discord-types": "^1.3.26",
|
"discord-types": "^1.3.26",
|
||||||
"esbuild": "^0.15.5",
|
"esbuild": "^0.15.16",
|
||||||
"eslint": "^8.24.0",
|
"eslint": "^8.28.0",
|
||||||
"eslint-import-resolver-alias": "^1.1.2",
|
"eslint-import-resolver-alias": "^1.1.2",
|
||||||
"eslint-plugin-header": "^3.1.1",
|
"eslint-plugin-header": "^3.1.1",
|
||||||
"eslint-plugin-path-alias": "^1.0.0",
|
"eslint-plugin-path-alias": "^1.0.0",
|
||||||
"eslint-plugin-simple-import-sort": "^8.0.0",
|
"eslint-plugin-simple-import-sort": "^8.0.0",
|
||||||
"eslint-plugin-unused-imports": "^2.0.0",
|
"eslint-plugin-unused-imports": "^2.0.0",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"puppeteer-core": "^19.2.2",
|
"puppeteer-core": "^19.3.0",
|
||||||
"standalone-electron-types": "^1.0.0",
|
"standalone-electron-types": "^1.0.0",
|
||||||
"type-fest": "^3.1.0",
|
"type-fest": "^3.3.0",
|
||||||
"typescript": "^4.8.4"
|
"typescript": "^4.9.3"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@7.13.4",
|
"packageManager": "pnpm@7.13.4",
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"patchedDependencies": {
|
"patchedDependencies": {
|
||||||
"eslint-plugin-path-alias@1.0.0": "patches/eslint-plugin-path-alias@1.0.0.patch"
|
"eslint-plugin-path-alias@1.0.0": "patches/eslint-plugin-path-alias@1.0.0.patch"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"webExt": {
|
||||||
|
"artifactsDir": "./dist",
|
||||||
|
"build": {
|
||||||
|
"overwriteDest": true
|
||||||
|
},
|
||||||
|
"sourceDir": "./dist/extension-v2-unpacked"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
487
pnpm-lock.yaml
generated
487
pnpm-lock.yaml
generated
|
@ -7,17 +7,17 @@ patchedDependencies:
|
||||||
|
|
||||||
specifiers:
|
specifiers:
|
||||||
'@types/diff': ^5.0.2
|
'@types/diff': ^5.0.2
|
||||||
'@types/node': ^18.7.13
|
'@types/node': ^18.11.9
|
||||||
'@types/react': ^18.0.17
|
'@types/react': ^18.0.25
|
||||||
'@types/react-dom': ^18.0.8
|
'@types/react-dom': ^18.0.9
|
||||||
'@types/yazl': ^2.4.2
|
'@types/yazl': ^2.4.2
|
||||||
'@typescript-eslint/eslint-plugin': ^5.42.1
|
'@typescript-eslint/eslint-plugin': ^5.44.0
|
||||||
'@typescript-eslint/parser': ^5.39.0
|
'@typescript-eslint/parser': ^5.44.0
|
||||||
console-menu: ^0.1.0
|
console-menu: ^0.1.0
|
||||||
diff: ^5.1.0
|
diff: ^5.1.0
|
||||||
discord-types: ^1.3.26
|
discord-types: ^1.3.26
|
||||||
esbuild: ^0.15.5
|
esbuild: ^0.15.16
|
||||||
eslint: ^8.24.0
|
eslint: ^8.28.0
|
||||||
eslint-import-resolver-alias: ^1.1.2
|
eslint-import-resolver-alias: ^1.1.2
|
||||||
eslint-plugin-header: ^3.1.1
|
eslint-plugin-header: ^3.1.1
|
||||||
eslint-plugin-path-alias: ^1.0.0
|
eslint-plugin-path-alias: ^1.0.0
|
||||||
|
@ -25,42 +25,51 @@ specifiers:
|
||||||
eslint-plugin-unused-imports: ^2.0.0
|
eslint-plugin-unused-imports: ^2.0.0
|
||||||
fflate: ^0.7.4
|
fflate: ^0.7.4
|
||||||
moment: ^2.29.4
|
moment: ^2.29.4
|
||||||
puppeteer-core: ^19.2.2
|
puppeteer-core: ^19.3.0
|
||||||
standalone-electron-types: ^1.0.0
|
standalone-electron-types: ^1.0.0
|
||||||
type-fest: ^3.1.0
|
type-fest: ^3.3.0
|
||||||
typescript: ^4.8.4
|
typescript: ^4.9.3
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
console-menu: 0.1.0
|
|
||||||
diff: 5.1.0
|
|
||||||
fflate: 0.7.4
|
fflate: 0.7.4
|
||||||
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@types/diff': 5.0.2
|
'@types/diff': 5.0.2
|
||||||
'@types/node': 18.7.13
|
'@types/node': 18.11.9
|
||||||
'@types/react': 18.0.17
|
'@types/react': 18.0.25
|
||||||
'@types/react-dom': 18.0.8
|
'@types/react-dom': 18.0.9
|
||||||
'@types/yazl': 2.4.2
|
'@types/yazl': 2.4.2
|
||||||
'@typescript-eslint/eslint-plugin': 5.42.1_xyciw6oqjoiiono4dhv3uhn5my
|
'@typescript-eslint/eslint-plugin': 5.44.0_fnsv2sbzcckq65bwfk7a5xwslu
|
||||||
'@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa
|
'@typescript-eslint/parser': 5.44.0_hsf322ms6xhhd4b5ne6lb74y4a
|
||||||
|
console-menu: 0.1.0
|
||||||
|
diff: 5.1.0
|
||||||
discord-types: 1.3.26
|
discord-types: 1.3.26
|
||||||
esbuild: 0.15.5
|
esbuild: 0.15.16
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
eslint-import-resolver-alias: 1.1.2
|
eslint-import-resolver-alias: 1.1.2
|
||||||
eslint-plugin-header: 3.1.1_eslint@8.24.0
|
eslint-plugin-header: 3.1.1_eslint@8.28.0
|
||||||
eslint-plugin-path-alias: 1.0.0_m6sma4g6bh67km3q6igf6uxaja_eslint@8.24.0
|
eslint-plugin-path-alias: 1.0.0_m6sma4g6bh67km3q6igf6uxaja_eslint@8.28.0
|
||||||
eslint-plugin-simple-import-sort: 8.0.0_eslint@8.24.0
|
eslint-plugin-simple-import-sort: 8.0.0_eslint@8.28.0
|
||||||
eslint-plugin-unused-imports: 2.0.0_5yz3upex2kb6hbdwaq7bihlxnq
|
eslint-plugin-unused-imports: 2.0.0_aucl44mjeutxyzmt4nvo2cczya
|
||||||
moment: 2.29.4
|
moment: 2.29.4
|
||||||
puppeteer-core: 19.2.2
|
puppeteer-core: 19.3.0
|
||||||
standalone-electron-types: 1.0.0
|
standalone-electron-types: 1.0.0
|
||||||
type-fest: 3.1.0
|
type-fest: 3.3.0
|
||||||
typescript: 4.8.4
|
typescript: 4.9.3
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
/@esbuild/linux-loong64/0.15.5:
|
/@esbuild/android-arm/0.15.16:
|
||||||
resolution: {integrity: sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==}
|
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'}
|
engines: {node: '>=12'}
|
||||||
cpu: [loong64]
|
cpu: [loong64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -68,15 +77,15 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@eslint/eslintrc/1.3.2:
|
/@eslint/eslintrc/1.3.3:
|
||||||
resolution: {integrity: sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==}
|
resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv: 6.12.6
|
ajv: 6.12.6
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
espree: 9.4.0
|
espree: 9.4.1
|
||||||
globals: 13.17.0
|
globals: 13.18.0
|
||||||
ignore: 5.2.0
|
ignore: 5.2.1
|
||||||
import-fresh: 3.3.0
|
import-fresh: 3.3.0
|
||||||
js-yaml: 4.1.0
|
js-yaml: 4.1.0
|
||||||
minimatch: 3.1.2
|
minimatch: 3.1.2
|
||||||
|
@ -85,8 +94,8 @@ packages:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@humanwhocodes/config-array/0.10.7:
|
/@humanwhocodes/config-array/0.11.7:
|
||||||
resolution: {integrity: sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==}
|
resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==}
|
||||||
engines: {node: '>=10.10.0'}
|
engines: {node: '>=10.10.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@humanwhocodes/object-schema': 1.2.1
|
'@humanwhocodes/object-schema': 1.2.1
|
||||||
|
@ -96,10 +105,6 @@ packages:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@humanwhocodes/gitignore-to-minimatch/1.0.2:
|
|
||||||
resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@humanwhocodes/module-importer/1.0.1:
|
/@humanwhocodes/module-importer/1.0.1:
|
||||||
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
|
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
|
||||||
engines: {node: '>=12.22'}
|
engines: {node: '>=12.22'}
|
||||||
|
@ -138,37 +143,33 @@ packages:
|
||||||
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
|
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/node/18.7.13:
|
/@types/node/18.11.9:
|
||||||
resolution: {integrity: sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==}
|
resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@types/node/18.8.4:
|
|
||||||
resolution: {integrity: sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==}
|
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/prop-types/15.7.5:
|
/@types/prop-types/15.7.5:
|
||||||
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
|
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/react-dom/18.0.8:
|
/@types/react-dom/18.0.9:
|
||||||
resolution: {integrity: sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==}
|
resolution: {integrity: sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/react': 18.0.17
|
'@types/react': 18.0.25
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/react/17.0.2:
|
/@types/react/17.0.2:
|
||||||
resolution: {integrity: sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA==}
|
resolution: {integrity: sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/prop-types': 15.7.5
|
'@types/prop-types': 15.7.5
|
||||||
csstype: 3.1.0
|
csstype: 3.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/react/18.0.17:
|
/@types/react/18.0.25:
|
||||||
resolution: {integrity: sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==}
|
resolution: {integrity: sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/prop-types': 15.7.5
|
'@types/prop-types': 15.7.5
|
||||||
'@types/scheduler': 0.16.2
|
'@types/scheduler': 0.16.2
|
||||||
csstype: 3.1.0
|
csstype: 3.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/scheduler/0.16.2:
|
/@types/scheduler/0.16.2:
|
||||||
|
@ -183,18 +184,18 @@ packages:
|
||||||
resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
|
resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.8.4
|
'@types/node': 18.11.9
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/@types/yazl/2.4.2:
|
/@types/yazl/2.4.2:
|
||||||
resolution: {integrity: sha512-T+9JH8O2guEjXNxqmybzQ92mJUh2oCwDDMSSimZSe1P+pceZiFROZLYmcbqkzV5EUwz6VwcKXCO2S2yUpra6XQ==}
|
resolution: {integrity: sha512-T+9JH8O2guEjXNxqmybzQ92mJUh2oCwDDMSSimZSe1P+pceZiFROZLYmcbqkzV5EUwz6VwcKXCO2S2yUpra6XQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.7.13
|
'@types/node': 18.11.9
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/eslint-plugin/5.42.1_xyciw6oqjoiiono4dhv3uhn5my:
|
/@typescript-eslint/eslint-plugin/5.44.0_fnsv2sbzcckq65bwfk7a5xwslu:
|
||||||
resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==}
|
resolution: {integrity: sha512-j5ULd7FmmekcyWeArx+i8x7sdRHzAtXTkmDPthE4amxZOWKFK7bomoJ4r7PJ8K7PoMzD16U8MmuZFAonr1ERvw==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@typescript-eslint/parser': ^5.0.0
|
'@typescript-eslint/parser': ^5.0.0
|
||||||
|
@ -204,24 +205,24 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/parser': 5.39.0_ypn2ylkkyfa5i233caldtndbqa
|
'@typescript-eslint/parser': 5.44.0_hsf322ms6xhhd4b5ne6lb74y4a
|
||||||
'@typescript-eslint/scope-manager': 5.42.1
|
'@typescript-eslint/scope-manager': 5.44.0
|
||||||
'@typescript-eslint/type-utils': 5.42.1_ypn2ylkkyfa5i233caldtndbqa
|
'@typescript-eslint/type-utils': 5.44.0_hsf322ms6xhhd4b5ne6lb74y4a
|
||||||
'@typescript-eslint/utils': 5.42.1_ypn2ylkkyfa5i233caldtndbqa
|
'@typescript-eslint/utils': 5.44.0_hsf322ms6xhhd4b5ne6lb74y4a
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
ignore: 5.2.0
|
ignore: 5.2.1
|
||||||
natural-compare-lite: 1.4.0
|
natural-compare-lite: 1.4.0
|
||||||
regexpp: 3.2.0
|
regexpp: 3.2.0
|
||||||
semver: 7.3.7
|
semver: 7.3.8
|
||||||
tsutils: 3.21.0_typescript@4.8.4
|
tsutils: 3.21.0_typescript@4.9.3
|
||||||
typescript: 4.8.4
|
typescript: 4.9.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/parser/5.39.0_ypn2ylkkyfa5i233caldtndbqa:
|
/@typescript-eslint/parser/5.44.0_hsf322ms6xhhd4b5ne6lb74y4a:
|
||||||
resolution: {integrity: sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA==}
|
resolution: {integrity: sha512-H7LCqbZnKqkkgQHaKLGC6KUjt3pjJDx8ETDqmwncyb6PuoigYajyAwBGz08VU/l86dZWZgI4zm5k2VaKqayYyA==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||||
|
@ -230,34 +231,26 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 5.39.0
|
'@typescript-eslint/scope-manager': 5.44.0
|
||||||
'@typescript-eslint/types': 5.39.0
|
'@typescript-eslint/types': 5.44.0
|
||||||
'@typescript-eslint/typescript-estree': 5.39.0_typescript@4.8.4
|
'@typescript-eslint/typescript-estree': 5.44.0_typescript@4.9.3
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
typescript: 4.8.4
|
typescript: 4.9.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/scope-manager/5.39.0:
|
/@typescript-eslint/scope-manager/5.44.0:
|
||||||
resolution: {integrity: sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==}
|
resolution: {integrity: sha512-2pKml57KusI0LAhgLKae9kwWeITZ7IsZs77YxyNyIVOwQ1kToyXRaJLl+uDEXzMN5hnobKUOo2gKntK9H1YL8g==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 5.39.0
|
'@typescript-eslint/types': 5.44.0
|
||||||
'@typescript-eslint/visitor-keys': 5.39.0
|
'@typescript-eslint/visitor-keys': 5.44.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/scope-manager/5.42.1:
|
/@typescript-eslint/type-utils/5.44.0_hsf322ms6xhhd4b5ne6lb74y4a:
|
||||||
resolution: {integrity: sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==}
|
resolution: {integrity: sha512-A1u0Yo5wZxkXPQ7/noGkRhV4J9opcymcr31XQtOzcc5nO/IHN2E2TPMECKWYpM3e6olWEM63fq/BaL1wEYnt/w==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
dependencies:
|
|
||||||
'@typescript-eslint/types': 5.42.1
|
|
||||||
'@typescript-eslint/visitor-keys': 5.42.1
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@typescript-eslint/type-utils/5.42.1_ypn2ylkkyfa5i233caldtndbqa:
|
|
||||||
resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: '*'
|
eslint: '*'
|
||||||
|
@ -266,28 +259,23 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4
|
'@typescript-eslint/typescript-estree': 5.44.0_typescript@4.9.3
|
||||||
'@typescript-eslint/utils': 5.42.1_ypn2ylkkyfa5i233caldtndbqa
|
'@typescript-eslint/utils': 5.44.0_hsf322ms6xhhd4b5ne6lb74y4a
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
tsutils: 3.21.0_typescript@4.8.4
|
tsutils: 3.21.0_typescript@4.9.3
|
||||||
typescript: 4.8.4
|
typescript: 4.9.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/types/5.39.0:
|
/@typescript-eslint/types/5.44.0:
|
||||||
resolution: {integrity: sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==}
|
resolution: {integrity: sha512-Tp+zDnHmGk4qKR1l+Y1rBvpjpm5tGXX339eAlRBDg+kgZkz9Bw+pqi4dyseOZMsGuSH69fYfPJCBKBrbPCxYFQ==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/types/5.42.1:
|
/@typescript-eslint/typescript-estree/5.44.0_typescript@4.9.3:
|
||||||
resolution: {integrity: sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==}
|
resolution: {integrity: sha512-M6Jr+RM7M5zeRj2maSfsZK2660HKAJawv4Ud0xT+yauyvgrsHu276VtXlKDFnEmhG+nVEd0fYZNXGoAgxwDWJw==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@typescript-eslint/typescript-estree/5.39.0_typescript@4.8.4:
|
|
||||||
resolution: {integrity: sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '*'
|
typescript: '*'
|
||||||
|
@ -295,85 +283,56 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 5.39.0
|
'@typescript-eslint/types': 5.44.0
|
||||||
'@typescript-eslint/visitor-keys': 5.39.0
|
'@typescript-eslint/visitor-keys': 5.44.0
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
globby: 11.1.0
|
globby: 11.1.0
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
semver: 7.3.7
|
semver: 7.3.8
|
||||||
tsutils: 3.21.0_typescript@4.8.4
|
tsutils: 3.21.0_typescript@4.9.3
|
||||||
typescript: 4.8.4
|
typescript: 4.9.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/typescript-estree/5.42.1_typescript@4.8.4:
|
/@typescript-eslint/utils/5.44.0_hsf322ms6xhhd4b5ne6lb74y4a:
|
||||||
resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==}
|
resolution: {integrity: sha512-fMzA8LLQ189gaBjS0MZszw5HBdZgVwxVFShCO3QN+ws3GlPkcy9YuS3U4wkT6su0w+Byjq3mS3uamy9HE4Yfjw==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
peerDependencies:
|
|
||||||
typescript: '*'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
typescript:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@typescript-eslint/types': 5.42.1
|
|
||||||
'@typescript-eslint/visitor-keys': 5.42.1
|
|
||||||
debug: 4.3.4
|
|
||||||
globby: 11.1.0
|
|
||||||
is-glob: 4.0.3
|
|
||||||
semver: 7.3.7
|
|
||||||
tsutils: 3.21.0_typescript@4.8.4
|
|
||||||
typescript: 4.8.4
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@typescript-eslint/utils/5.42.1_ypn2ylkkyfa5i233caldtndbqa:
|
|
||||||
resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/json-schema': 7.0.11
|
'@types/json-schema': 7.0.11
|
||||||
'@types/semver': 7.3.13
|
'@types/semver': 7.3.13
|
||||||
'@typescript-eslint/scope-manager': 5.42.1
|
'@typescript-eslint/scope-manager': 5.44.0
|
||||||
'@typescript-eslint/types': 5.42.1
|
'@typescript-eslint/types': 5.44.0
|
||||||
'@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4
|
'@typescript-eslint/typescript-estree': 5.44.0_typescript@4.9.3
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
eslint-scope: 5.1.1
|
eslint-scope: 5.1.1
|
||||||
eslint-utils: 3.0.0_eslint@8.24.0
|
eslint-utils: 3.0.0_eslint@8.28.0
|
||||||
semver: 7.3.7
|
semver: 7.3.8
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/visitor-keys/5.39.0:
|
/@typescript-eslint/visitor-keys/5.44.0:
|
||||||
resolution: {integrity: sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg==}
|
resolution: {integrity: sha512-a48tLG8/4m62gPFbJ27FxwCOqPKxsb8KC3HkmYoq2As/4YyjQl1jDbRr1s63+g4FS/iIehjmN3L5UjmKva1HzQ==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 5.39.0
|
'@typescript-eslint/types': 5.44.0
|
||||||
eslint-visitor-keys: 3.3.0
|
eslint-visitor-keys: 3.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/visitor-keys/5.42.1:
|
/acorn-jsx/5.3.2_acorn@8.8.1:
|
||||||
resolution: {integrity: sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
dependencies:
|
|
||||||
'@typescript-eslint/types': 5.42.1
|
|
||||||
eslint-visitor-keys: 3.3.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/acorn-jsx/5.3.2_acorn@8.8.0:
|
|
||||||
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.8.0
|
acorn: 8.8.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/acorn/8.8.0:
|
/acorn/8.8.1:
|
||||||
resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==}
|
resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -570,7 +529,7 @@ packages:
|
||||||
resolution: {integrity: sha512-gOGvuhugXvHggnodbEop0Wzh05eondeCdpPZqcwlzJc7KoPrdsHUM8TZug1lN2jN7Qm3XrZcoP5dZDaO2CaYSw==}
|
resolution: {integrity: sha512-gOGvuhugXvHggnodbEop0Wzh05eondeCdpPZqcwlzJc7KoPrdsHUM8TZug1lN2jN7Qm3XrZcoP5dZDaO2CaYSw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
keypress: 0.2.1
|
keypress: 0.2.1
|
||||||
dev: false
|
dev: true
|
||||||
|
|
||||||
/copy-descriptor/0.1.1:
|
/copy-descriptor/0.1.1:
|
||||||
resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
|
resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
|
||||||
|
@ -594,8 +553,8 @@ packages:
|
||||||
which: 2.0.2
|
which: 2.0.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/csstype/3.1.0:
|
/csstype/3.1.1:
|
||||||
resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==}
|
resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/debug/2.6.9:
|
/debug/2.6.9:
|
||||||
|
@ -659,7 +618,7 @@ packages:
|
||||||
/diff/5.1.0:
|
/diff/5.1.0:
|
||||||
resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
|
resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
|
||||||
engines: {node: '>=0.3.1'}
|
engines: {node: '>=0.3.1'}
|
||||||
dev: false
|
dev: true
|
||||||
|
|
||||||
/dir-glob/3.0.1:
|
/dir-glob/3.0.1:
|
||||||
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
|
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
|
||||||
|
@ -688,8 +647,8 @@ packages:
|
||||||
once: 1.4.0
|
once: 1.4.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/esbuild-android-64/0.15.5:
|
/esbuild-android-64/0.15.16:
|
||||||
resolution: {integrity: sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==}
|
resolution: {integrity: sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
@ -697,8 +656,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-android-arm64/0.15.5:
|
/esbuild-android-arm64/0.15.16:
|
||||||
resolution: {integrity: sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==}
|
resolution: {integrity: sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
@ -706,8 +665,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-darwin-64/0.15.5:
|
/esbuild-darwin-64/0.15.16:
|
||||||
resolution: {integrity: sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==}
|
resolution: {integrity: sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
@ -715,8 +674,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-darwin-arm64/0.15.5:
|
/esbuild-darwin-arm64/0.15.16:
|
||||||
resolution: {integrity: sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==}
|
resolution: {integrity: sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
@ -724,8 +683,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-freebsd-64/0.15.5:
|
/esbuild-freebsd-64/0.15.16:
|
||||||
resolution: {integrity: sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==}
|
resolution: {integrity: sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
@ -733,8 +692,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-freebsd-arm64/0.15.5:
|
/esbuild-freebsd-arm64/0.15.16:
|
||||||
resolution: {integrity: sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==}
|
resolution: {integrity: sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
@ -742,8 +701,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-linux-32/0.15.5:
|
/esbuild-linux-32/0.15.16:
|
||||||
resolution: {integrity: sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==}
|
resolution: {integrity: sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -751,8 +710,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-linux-64/0.15.5:
|
/esbuild-linux-64/0.15.16:
|
||||||
resolution: {integrity: sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==}
|
resolution: {integrity: sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -760,8 +719,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-linux-arm/0.15.5:
|
/esbuild-linux-arm/0.15.16:
|
||||||
resolution: {integrity: sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==}
|
resolution: {integrity: sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -769,8 +728,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-linux-arm64/0.15.5:
|
/esbuild-linux-arm64/0.15.16:
|
||||||
resolution: {integrity: sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==}
|
resolution: {integrity: sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -778,8 +737,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-linux-mips64le/0.15.5:
|
/esbuild-linux-mips64le/0.15.16:
|
||||||
resolution: {integrity: sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==}
|
resolution: {integrity: sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [mips64el]
|
cpu: [mips64el]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -787,8 +746,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-linux-ppc64le/0.15.5:
|
/esbuild-linux-ppc64le/0.15.16:
|
||||||
resolution: {integrity: sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==}
|
resolution: {integrity: sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -796,8 +755,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-linux-riscv64/0.15.5:
|
/esbuild-linux-riscv64/0.15.16:
|
||||||
resolution: {integrity: sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==}
|
resolution: {integrity: sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -805,8 +764,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-linux-s390x/0.15.5:
|
/esbuild-linux-s390x/0.15.16:
|
||||||
resolution: {integrity: sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==}
|
resolution: {integrity: sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -814,8 +773,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-netbsd-64/0.15.5:
|
/esbuild-netbsd-64/0.15.16:
|
||||||
resolution: {integrity: sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==}
|
resolution: {integrity: sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [netbsd]
|
os: [netbsd]
|
||||||
|
@ -823,8 +782,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-openbsd-64/0.15.5:
|
/esbuild-openbsd-64/0.15.16:
|
||||||
resolution: {integrity: sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==}
|
resolution: {integrity: sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [openbsd]
|
os: [openbsd]
|
||||||
|
@ -832,8 +791,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-sunos-64/0.15.5:
|
/esbuild-sunos-64/0.15.16:
|
||||||
resolution: {integrity: sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==}
|
resolution: {integrity: sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [sunos]
|
os: [sunos]
|
||||||
|
@ -841,8 +800,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-windows-32/0.15.5:
|
/esbuild-windows-32/0.15.16:
|
||||||
resolution: {integrity: sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==}
|
resolution: {integrity: sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
@ -850,8 +809,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-windows-64/0.15.5:
|
/esbuild-windows-64/0.15.16:
|
||||||
resolution: {integrity: sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==}
|
resolution: {integrity: sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
@ -859,8 +818,8 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild-windows-arm64/0.15.5:
|
/esbuild-windows-arm64/0.15.16:
|
||||||
resolution: {integrity: sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==}
|
resolution: {integrity: sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
@ -868,33 +827,34 @@ packages:
|
||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/esbuild/0.15.5:
|
/esbuild/0.15.16:
|
||||||
resolution: {integrity: sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==}
|
resolution: {integrity: sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@esbuild/linux-loong64': 0.15.5
|
'@esbuild/android-arm': 0.15.16
|
||||||
esbuild-android-64: 0.15.5
|
'@esbuild/linux-loong64': 0.15.16
|
||||||
esbuild-android-arm64: 0.15.5
|
esbuild-android-64: 0.15.16
|
||||||
esbuild-darwin-64: 0.15.5
|
esbuild-android-arm64: 0.15.16
|
||||||
esbuild-darwin-arm64: 0.15.5
|
esbuild-darwin-64: 0.15.16
|
||||||
esbuild-freebsd-64: 0.15.5
|
esbuild-darwin-arm64: 0.15.16
|
||||||
esbuild-freebsd-arm64: 0.15.5
|
esbuild-freebsd-64: 0.15.16
|
||||||
esbuild-linux-32: 0.15.5
|
esbuild-freebsd-arm64: 0.15.16
|
||||||
esbuild-linux-64: 0.15.5
|
esbuild-linux-32: 0.15.16
|
||||||
esbuild-linux-arm: 0.15.5
|
esbuild-linux-64: 0.15.16
|
||||||
esbuild-linux-arm64: 0.15.5
|
esbuild-linux-arm: 0.15.16
|
||||||
esbuild-linux-mips64le: 0.15.5
|
esbuild-linux-arm64: 0.15.16
|
||||||
esbuild-linux-ppc64le: 0.15.5
|
esbuild-linux-mips64le: 0.15.16
|
||||||
esbuild-linux-riscv64: 0.15.5
|
esbuild-linux-ppc64le: 0.15.16
|
||||||
esbuild-linux-s390x: 0.15.5
|
esbuild-linux-riscv64: 0.15.16
|
||||||
esbuild-netbsd-64: 0.15.5
|
esbuild-linux-s390x: 0.15.16
|
||||||
esbuild-openbsd-64: 0.15.5
|
esbuild-netbsd-64: 0.15.16
|
||||||
esbuild-sunos-64: 0.15.5
|
esbuild-openbsd-64: 0.15.16
|
||||||
esbuild-windows-32: 0.15.5
|
esbuild-sunos-64: 0.15.16
|
||||||
esbuild-windows-64: 0.15.5
|
esbuild-windows-32: 0.15.16
|
||||||
esbuild-windows-arm64: 0.15.5
|
esbuild-windows-64: 0.15.16
|
||||||
|
esbuild-windows-arm64: 0.15.16
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/escape-string-regexp/4.0.0:
|
/escape-string-regexp/4.0.0:
|
||||||
|
@ -909,35 +869,35 @@ packages:
|
||||||
eslint-plugin-import: '>=1.4.0'
|
eslint-plugin-import: '>=1.4.0'
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-plugin-header/3.1.1_eslint@8.24.0:
|
/eslint-plugin-header/3.1.1_eslint@8.28.0:
|
||||||
resolution: {integrity: sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==}
|
resolution: {integrity: sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: '>=7.7.0'
|
eslint: '>=7.7.0'
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-plugin-path-alias/1.0.0_m6sma4g6bh67km3q6igf6uxaja_eslint@8.24.0:
|
/eslint-plugin-path-alias/1.0.0_m6sma4g6bh67km3q6igf6uxaja_eslint@8.28.0:
|
||||||
resolution: {integrity: sha512-FXus57yC+Zd3sMv46pbloXYwFeNVNHJqlACr9V68FG/IzGFBBokGJpmjDbEjpt8ZCeVSndUubeDWWl2A8sCNVQ==}
|
resolution: {integrity: sha512-FXus57yC+Zd3sMv46pbloXYwFeNVNHJqlACr9V68FG/IzGFBBokGJpmjDbEjpt8ZCeVSndUubeDWWl2A8sCNVQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^7
|
eslint: ^7
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
nanomatch: 1.2.13
|
nanomatch: 1.2.13
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
patched: true
|
patched: true
|
||||||
|
|
||||||
/eslint-plugin-simple-import-sort/8.0.0_eslint@8.24.0:
|
/eslint-plugin-simple-import-sort/8.0.0_eslint@8.28.0:
|
||||||
resolution: {integrity: sha512-bXgJQ+lqhtQBCuWY/FUWdB27j4+lqcvXv5rUARkzbeWLwea+S5eBZEQrhnO+WgX3ZoJHVj0cn943iyXwByHHQw==}
|
resolution: {integrity: sha512-bXgJQ+lqhtQBCuWY/FUWdB27j4+lqcvXv5rUARkzbeWLwea+S5eBZEQrhnO+WgX3ZoJHVj0cn943iyXwByHHQw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: '>=5.0.0'
|
eslint: '>=5.0.0'
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-plugin-unused-imports/2.0.0_5yz3upex2kb6hbdwaq7bihlxnq:
|
/eslint-plugin-unused-imports/2.0.0_aucl44mjeutxyzmt4nvo2cczya:
|
||||||
resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==}
|
resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -947,8 +907,8 @@ packages:
|
||||||
'@typescript-eslint/eslint-plugin':
|
'@typescript-eslint/eslint-plugin':
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/eslint-plugin': 5.42.1_xyciw6oqjoiiono4dhv3uhn5my
|
'@typescript-eslint/eslint-plugin': 5.44.0_fnsv2sbzcckq65bwfk7a5xwslu
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
eslint-rule-composer: 0.3.0
|
eslint-rule-composer: 0.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
@ -973,13 +933,13 @@ packages:
|
||||||
estraverse: 5.3.0
|
estraverse: 5.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-utils/3.0.0_eslint@8.24.0:
|
/eslint-utils/3.0.0_eslint@8.28.0:
|
||||||
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
|
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
|
||||||
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
|
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: '>=5'
|
eslint: '>=5'
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.24.0
|
eslint: 8.28.0
|
||||||
eslint-visitor-keys: 2.1.0
|
eslint-visitor-keys: 2.1.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
@ -993,15 +953,15 @@ packages:
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint/8.24.0:
|
/eslint/8.28.0:
|
||||||
resolution: {integrity: sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==}
|
resolution: {integrity: sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint/eslintrc': 1.3.2
|
'@eslint/eslintrc': 1.3.3
|
||||||
'@humanwhocodes/config-array': 0.10.7
|
'@humanwhocodes/config-array': 0.11.7
|
||||||
'@humanwhocodes/gitignore-to-minimatch': 1.0.2
|
|
||||||
'@humanwhocodes/module-importer': 1.0.1
|
'@humanwhocodes/module-importer': 1.0.1
|
||||||
|
'@nodelib/fs.walk': 1.2.8
|
||||||
ajv: 6.12.6
|
ajv: 6.12.6
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
cross-spawn: 7.0.3
|
cross-spawn: 7.0.3
|
||||||
|
@ -1009,23 +969,23 @@ packages:
|
||||||
doctrine: 3.0.0
|
doctrine: 3.0.0
|
||||||
escape-string-regexp: 4.0.0
|
escape-string-regexp: 4.0.0
|
||||||
eslint-scope: 7.1.1
|
eslint-scope: 7.1.1
|
||||||
eslint-utils: 3.0.0_eslint@8.24.0
|
eslint-utils: 3.0.0_eslint@8.28.0
|
||||||
eslint-visitor-keys: 3.3.0
|
eslint-visitor-keys: 3.3.0
|
||||||
espree: 9.4.0
|
espree: 9.4.1
|
||||||
esquery: 1.4.0
|
esquery: 1.4.0
|
||||||
esutils: 2.0.3
|
esutils: 2.0.3
|
||||||
fast-deep-equal: 3.1.3
|
fast-deep-equal: 3.1.3
|
||||||
file-entry-cache: 6.0.1
|
file-entry-cache: 6.0.1
|
||||||
find-up: 5.0.0
|
find-up: 5.0.0
|
||||||
glob-parent: 6.0.2
|
glob-parent: 6.0.2
|
||||||
globals: 13.17.0
|
globals: 13.18.0
|
||||||
globby: 11.1.0
|
|
||||||
grapheme-splitter: 1.0.4
|
grapheme-splitter: 1.0.4
|
||||||
ignore: 5.2.0
|
ignore: 5.2.1
|
||||||
import-fresh: 3.3.0
|
import-fresh: 3.3.0
|
||||||
imurmurhash: 0.1.4
|
imurmurhash: 0.1.4
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
js-sdsl: 4.1.5
|
is-path-inside: 3.0.3
|
||||||
|
js-sdsl: 4.2.0
|
||||||
js-yaml: 4.1.0
|
js-yaml: 4.1.0
|
||||||
json-stable-stringify-without-jsonify: 1.0.1
|
json-stable-stringify-without-jsonify: 1.0.1
|
||||||
levn: 0.4.1
|
levn: 0.4.1
|
||||||
|
@ -1041,12 +1001,12 @@ packages:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/espree/9.4.0:
|
/espree/9.4.1:
|
||||||
resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==}
|
resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.8.0
|
acorn: 8.8.1
|
||||||
acorn-jsx: 5.3.2_acorn@8.8.0
|
acorn-jsx: 5.3.2_acorn@8.8.1
|
||||||
eslint-visitor-keys: 3.3.0
|
eslint-visitor-keys: 3.3.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
@ -1238,8 +1198,8 @@ packages:
|
||||||
path-is-absolute: 1.0.1
|
path-is-absolute: 1.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/globals/13.17.0:
|
/globals/13.18.0:
|
||||||
resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==}
|
resolution: {integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dependencies:
|
dependencies:
|
||||||
type-fest: 0.20.2
|
type-fest: 0.20.2
|
||||||
|
@ -1252,7 +1212,7 @@ packages:
|
||||||
array-union: 2.1.0
|
array-union: 2.1.0
|
||||||
dir-glob: 3.0.1
|
dir-glob: 3.0.1
|
||||||
fast-glob: 3.2.12
|
fast-glob: 3.2.12
|
||||||
ignore: 5.2.0
|
ignore: 5.2.1
|
||||||
merge2: 1.4.1
|
merge2: 1.4.1
|
||||||
slash: 3.0.0
|
slash: 3.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -1311,8 +1271,8 @@ packages:
|
||||||
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ignore/5.2.0:
|
/ignore/5.2.1:
|
||||||
resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
|
resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==}
|
||||||
engines: {node: '>= 4'}
|
engines: {node: '>= 4'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
@ -1426,6 +1386,11 @@ packages:
|
||||||
engines: {node: '>=0.12.0'}
|
engines: {node: '>=0.12.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/is-path-inside/3.0.3:
|
||||||
|
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/is-plain-object/2.0.4:
|
/is-plain-object/2.0.4:
|
||||||
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
|
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
@ -1458,8 +1423,8 @@ packages:
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/js-sdsl/4.1.5:
|
/js-sdsl/4.2.0:
|
||||||
resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==}
|
resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/js-yaml/4.1.0:
|
/js-yaml/4.1.0:
|
||||||
|
@ -1479,7 +1444,7 @@ packages:
|
||||||
|
|
||||||
/keypress/0.2.1:
|
/keypress/0.2.1:
|
||||||
resolution: {integrity: sha512-HjorDJFNhnM4SicvaUXac0X77NiskggxJdesG72+O5zBKpSqKFCrqmndKVqpu3pFqkla0St6uGk8Ju0sCurrmg==}
|
resolution: {integrity: sha512-HjorDJFNhnM4SicvaUXac0X77NiskggxJdesG72+O5zBKpSqKFCrqmndKVqpu3pFqkla0St6uGk8Ju0sCurrmg==}
|
||||||
dev: false
|
dev: true
|
||||||
|
|
||||||
/kind-of/3.2.2:
|
/kind-of/3.2.2:
|
||||||
resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
|
resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
|
||||||
|
@ -1742,8 +1707,8 @@ packages:
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/puppeteer-core/19.2.2:
|
/puppeteer-core/19.3.0:
|
||||||
resolution: {integrity: sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==}
|
resolution: {integrity: sha512-P8VAAOBnBJo/7DKJnj1b0K9kZBF2D8lkdL94CjJ+DZKCp182LQqYemPI9omUSZkh4bgykzXjZhaVR1qtddTTQg==}
|
||||||
engines: {node: '>=14.1.0'}
|
engines: {node: '>=14.1.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
cross-fetch: 3.1.5
|
cross-fetch: 3.1.5
|
||||||
|
@ -1832,8 +1797,8 @@ packages:
|
||||||
ret: 0.1.15
|
ret: 0.1.15
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/semver/7.3.7:
|
/semver/7.3.8:
|
||||||
resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}
|
resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -1914,7 +1879,7 @@ packages:
|
||||||
/standalone-electron-types/1.0.0:
|
/standalone-electron-types/1.0.0:
|
||||||
resolution: {integrity: sha512-0HOi/tlTz3mjWhsAz4uRbpQcHMZ+ifj1JzWW9nugykOHClBBG77ps8QinrzX1eow4Iw2pnC+RFaSYRgufF4BOg==}
|
resolution: {integrity: sha512-0HOi/tlTz3mjWhsAz4uRbpQcHMZ+ifj1JzWW9nugykOHClBBG77ps8QinrzX1eow4Iw2pnC+RFaSYRgufF4BOg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.8.4
|
'@types/node': 18.11.9
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/static-extend/0.1.2:
|
/static-extend/0.1.2:
|
||||||
|
@ -2010,14 +1975,14 @@ packages:
|
||||||
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
|
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/tsutils/3.21.0_typescript@4.8.4:
|
/tsutils/3.21.0_typescript@4.9.3:
|
||||||
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
|
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
peerDependencies:
|
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'
|
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:
|
dependencies:
|
||||||
tslib: 1.14.1
|
tslib: 1.14.1
|
||||||
typescript: 4.8.4
|
typescript: 4.9.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/type-check/0.4.0:
|
/type-check/0.4.0:
|
||||||
|
@ -2032,13 +1997,13 @@ packages:
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/type-fest/3.1.0:
|
/type-fest/3.3.0:
|
||||||
resolution: {integrity: sha512-StmrZmK3eD9mDF9Vt7UhqthrDSk66O9iYl5t5a0TSoVkHjl0XZx/xuc/BRz4urAXXGHOY5OLsE0RdJFIApSFmw==}
|
resolution: {integrity: sha512-gezeeOIZyQLGW5uuCeEnXF1aXmtt2afKspXz3YqoOcZ3l/YMJq1pujvgT+cz/Nw1O/7q/kSav5fihJHsC/AOUg==}
|
||||||
engines: {node: '>=14.16'}
|
engines: {node: '>=14.16'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typescript/4.8.4:
|
/typescript/4.9.3:
|
||||||
resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
|
resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==}
|
||||||
engines: {node: '>=4.2.0'}
|
engines: {node: '>=4.2.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
38
report.md
38
report.md
|
@ -1,38 +0,0 @@
|
||||||
# Vencord Report
|
|
||||||
|
|
||||||
## Bad Patches
|
|
||||||
- BetterGifAltText (had no effect)
|
|
||||||
- ID: `866358`
|
|
||||||
- Match: ```/(return .{1,2}\.createElement.{0,50}isWindowFocused)/ ```
|
|
||||||
- Webhook Tags (had no effect)
|
|
||||||
- ID: `696278`
|
|
||||||
- Match: ```/return null==(.)\?null:.\.createElement\((.)\.Z/ ```
|
|
||||||
- MessageAccessoriesAPI (had no effect)
|
|
||||||
- ID: `96063`
|
|
||||||
- Match: ```/\(\)\.container\)},(.+?)\)};return/ ```
|
|
||||||
- NoBlockedMessages (had no effect)
|
|
||||||
- ID: `748241`
|
|
||||||
- Match: ```/collapsedReason;return (?=\w{1,2}.createElement)/ ```
|
|
||||||
- IgnoreActivities (had no effect)
|
|
||||||
- ID: `413620`
|
|
||||||
- Match: ```/(.:\(\)=>.)(.+)(function (.)\(.{1,10}\.width.+\)\)\)})/ ```
|
|
||||||
- IgnoreActivities (had no effect)
|
|
||||||
- ID: `529622`
|
|
||||||
- Match: ```/(this.renderLastPlayed\(\)\),this.renderOverlayToggle\(\))/ ```
|
|
||||||
- IgnoreActivities (errored)
|
|
||||||
- ID: `529622`
|
|
||||||
- Match: ```/;(.\.renderOverlayToggle=function\(\).+?\)\)\)};)/ ```
|
|
||||||
- Error: ```Unexpected end of input ```
|
|
||||||
- ViewIcons (had no effect)
|
|
||||||
- ID: `847018`
|
|
||||||
- Match: ```/(?<=createElement\((.{1,5}),\{id:"leave-guild".{0,100},)(.{1,2}\.createElement)\((.{1,5}),null,(.{1,2})\)(?=\)\}function)/ ```
|
|
||||||
- PlainFolderIcon (found no module)
|
|
||||||
- ID: `-`
|
|
||||||
- Match: ```().expandedFolderIconWrapperabaa ```
|
|
||||||
|
|
||||||
## Bad Starts
|
|
||||||
- NitroBypass
|
|
||||||
- Error: ```tets error ```
|
|
||||||
## Discord Errors
|
|
||||||
- ```Failed to load resource: the server responded with a status of 429 () ```
|
|
||||||
- ```Failed to load resource: the server responded with a status of 404 () ```
|
|
|
@ -20,9 +20,9 @@
|
||||||
|
|
||||||
import esbuild from "esbuild";
|
import esbuild from "esbuild";
|
||||||
import { zip } from "fflate";
|
import { zip } from "fflate";
|
||||||
import { readFileSync, writeFileSync } from "fs";
|
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "fs";
|
||||||
import { readFile } from "fs/promises";
|
import { readFile } from "fs/promises";
|
||||||
import { join } from "path";
|
import { join, resolve } from "path";
|
||||||
|
|
||||||
// wtf is this assert syntax
|
// wtf is this assert syntax
|
||||||
import PackageJSON from "../../package.json" assert { type: "json" };
|
import PackageJSON from "../../package.json" assert { type: "json" };
|
||||||
|
@ -72,20 +72,39 @@ await Promise.all(
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
zip({
|
async function buildPluginZip(target, files, shouldZip) {
|
||||||
dist: {
|
const entries = {
|
||||||
"Vencord.js": readFileSync("dist/browser.js")
|
"dist/Vencord.js": readFileSync("dist/browser.js"),
|
||||||
},
|
...Object.fromEntries(await Promise.all(files.map(async f => [
|
||||||
...Object.fromEntries(await Promise.all(["modifyResponseHeaders.json", "content.js", "manifest.json"].map(async f => [
|
(f.startsWith("manifest") ? "manifest.json" : f),
|
||||||
f,
|
await readFile(join("browser", f))
|
||||||
await readFile(join("browser", f))
|
]))),
|
||||||
]))),
|
};
|
||||||
}, {}, (err, data) => {
|
|
||||||
if (err) {
|
if (shouldZip) {
|
||||||
console.error(err);
|
zip(entries, {}, (err, data) => {
|
||||||
process.exitCode = 1;
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
process.exitCode = 1;
|
||||||
|
} else {
|
||||||
|
writeFileSync("dist/" + target, data);
|
||||||
|
console.info("Extension written to dist/" + target);
|
||||||
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
writeFileSync("dist/extension.zip", data);
|
if (existsSync(target))
|
||||||
console.info("Extension written to dist/extension.zip");
|
rmSync(target, { recursive: true });
|
||||||
|
for (const entry in entries) {
|
||||||
|
const destination = "dist/" + target + "/" + entry;
|
||||||
|
const parentDirectory = resolve(destination, "..");
|
||||||
|
mkdirSync(parentDirectory, { recursive: true });
|
||||||
|
writeFileSync(destination, entries[entry]);
|
||||||
|
}
|
||||||
|
console.info("Unpacked Extension written to dist/" + target);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
|
await buildPluginZip("extension-v3.zip", ["modifyResponseHeaders.json", "content.js", "manifestv3.json"], true);
|
||||||
|
await buildPluginZip("extension-v2.zip", ["background.js", "content.js", "manifestv2.json"], true);
|
||||||
|
await buildPluginZip("extension-v2-unpacked", ["background.js", "content.js", "manifestv2.json"], false);
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ export interface Settings {
|
||||||
notifyAboutUpdates: boolean;
|
notifyAboutUpdates: boolean;
|
||||||
useQuickCss: boolean;
|
useQuickCss: boolean;
|
||||||
enableReactDevtools: boolean;
|
enableReactDevtools: boolean;
|
||||||
|
themeLinks: string[];
|
||||||
plugins: {
|
plugins: {
|
||||||
[plugin: string]: {
|
[plugin: string]: {
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
|
@ -40,6 +41,7 @@ export interface Settings {
|
||||||
const DefaultSettings: Settings = {
|
const DefaultSettings: Settings = {
|
||||||
notifyAboutUpdates: true,
|
notifyAboutUpdates: true,
|
||||||
useQuickCss: true,
|
useQuickCss: true,
|
||||||
|
themeLinks: [],
|
||||||
enableReactDevtools: false,
|
enableReactDevtools: false,
|
||||||
plugins: {}
|
plugins: {}
|
||||||
};
|
};
|
||||||
|
|
135
src/components/VencordSettings/ThemesTab.tsx
Normal file
135
src/components/VencordSettings/ThemesTab.tsx
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
/*
|
||||||
|
* Vencord, a modification for Discord's desktop app
|
||||||
|
* Copyright (c) 2022 Vendicated and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { useSettings } from "@api/settings";
|
||||||
|
import ErrorBoundary from "@components/ErrorBoundary";
|
||||||
|
import { Link } from "@components/Link";
|
||||||
|
import { useAwaiter } from "@utils/misc";
|
||||||
|
import { findLazy } from "@webpack";
|
||||||
|
import { Card, Forms, Margins, React, TextArea } from "@webpack/common";
|
||||||
|
|
||||||
|
const TextAreaProps = findLazy(m => typeof m.textarea === "string");
|
||||||
|
|
||||||
|
function Validator({ link }: { link: string; }) {
|
||||||
|
const [res, err, pending] = useAwaiter(() => fetch(link).then(res => {
|
||||||
|
if (res.status > 300) throw `${res.status} ${res.statusText}`;
|
||||||
|
const contentType = res.headers.get("Content-Type");
|
||||||
|
if (!contentType?.startsWith("text/css") && !contentType?.startsWith("text/plain"))
|
||||||
|
throw "Not a CSS file. Remember to use the raw link!";
|
||||||
|
|
||||||
|
return "Okay!";
|
||||||
|
}));
|
||||||
|
|
||||||
|
const text = pending
|
||||||
|
? "Checking..."
|
||||||
|
: err
|
||||||
|
? `Error: ${err instanceof Error ? err.message : String(err)}`
|
||||||
|
: "Valid!";
|
||||||
|
|
||||||
|
return <Forms.FormText style={{
|
||||||
|
color: pending ? "var(--text-muted)" : err ? "var(--text-danger)" : "var(--text-positive)"
|
||||||
|
}}>{text}</Forms.FormText>;
|
||||||
|
}
|
||||||
|
|
||||||
|
function Validators({ themeLinks }: { themeLinks: string[]; }) {
|
||||||
|
if (!themeLinks.length) return null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Forms.FormTitle className={Margins.marginTop20} tag="h5">Validator</Forms.FormTitle>
|
||||||
|
<Forms.FormText>This section will tell you whether your themes can successfully be loaded</Forms.FormText>
|
||||||
|
<div>
|
||||||
|
{themeLinks.map(link => (
|
||||||
|
<Card style={{
|
||||||
|
padding: ".5em",
|
||||||
|
marginBottom: ".5em"
|
||||||
|
}} key={link}>
|
||||||
|
<Forms.FormTitle tag="h5" style={{
|
||||||
|
overflowWrap: "break-word"
|
||||||
|
}}>
|
||||||
|
{link}
|
||||||
|
</Forms.FormTitle>
|
||||||
|
<Validator link={link} />
|
||||||
|
</Card>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ErrorBoundary.wrap(function () {
|
||||||
|
const settings = useSettings();
|
||||||
|
const ref = React.useRef<HTMLTextAreaElement>();
|
||||||
|
|
||||||
|
function onBlur() {
|
||||||
|
settings.themeLinks = [...new Set(
|
||||||
|
ref.current!.value
|
||||||
|
.trim()
|
||||||
|
.split(/\n+/)
|
||||||
|
.map(s => s.trim())
|
||||||
|
.filter(Boolean)
|
||||||
|
)];
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Card style={{
|
||||||
|
padding: "1em",
|
||||||
|
marginBottom: "1em",
|
||||||
|
marginTop: "1em"
|
||||||
|
}}>
|
||||||
|
<Forms.FormTitle tag="h5">Paste links to .css / .theme.css files here</Forms.FormTitle>
|
||||||
|
<Forms.FormText>One link per line</Forms.FormText>
|
||||||
|
<Forms.FormText>Be careful to use the raw links or github.io links!</Forms.FormText>
|
||||||
|
<Forms.FormDivider />
|
||||||
|
<Forms.FormTitle tag="h5">Find Themes:</Forms.FormTitle>
|
||||||
|
<div>
|
||||||
|
<Link style={{ marginRight: ".5em" }} href="https://betterdiscord.app/themes">
|
||||||
|
BetterDiscord Themes
|
||||||
|
</Link>
|
||||||
|
<Link href="https://github.com/search?q=discord+theme">Github</Link>
|
||||||
|
</div>
|
||||||
|
<Forms.FormText>If using the BD site, click on "Source" somewhere below the Download button</Forms.FormText>
|
||||||
|
<Forms.FormText>In the GitHub repository of your theme, find X.theme.css / X.css, click on it, then click the "Raw" button</Forms.FormText>
|
||||||
|
<Forms.FormText>
|
||||||
|
If the theme has configuration that requires you to edit the file:
|
||||||
|
<ul>
|
||||||
|
<li>• Make a github account</li>
|
||||||
|
<li>• Click the fork button on the top right</li>
|
||||||
|
<li>• Edit the file</li>
|
||||||
|
<li>• Use the link to your own repository instead</li>
|
||||||
|
</ul>
|
||||||
|
</Forms.FormText>
|
||||||
|
</Card>
|
||||||
|
<Forms.FormTitle tag="h5">Themes</Forms.FormTitle>
|
||||||
|
<TextArea
|
||||||
|
style={{
|
||||||
|
padding: ".5em",
|
||||||
|
border: "1px solid var(--background-modifier-accent)"
|
||||||
|
}}
|
||||||
|
ref={ref}
|
||||||
|
defaultValue={settings.themeLinks.join("\n")}
|
||||||
|
className={TextAreaProps.textarea}
|
||||||
|
placeholder="Theme Links"
|
||||||
|
spellCheck={false}
|
||||||
|
onBlur={onBlur}
|
||||||
|
/>
|
||||||
|
<Validators themeLinks={settings.themeLinks} />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
});
|
|
@ -22,7 +22,7 @@ import DonateButton from "@components/DonateButton";
|
||||||
import ErrorBoundary from "@components/ErrorBoundary";
|
import ErrorBoundary from "@components/ErrorBoundary";
|
||||||
import IpcEvents from "@utils/IpcEvents";
|
import IpcEvents from "@utils/IpcEvents";
|
||||||
import { useAwaiter } from "@utils/misc";
|
import { useAwaiter } from "@utils/misc";
|
||||||
import { Button, Card, Forms, React, Switch } from "@webpack/common";
|
import { Button, Card, Forms, Margins, React, Switch } from "@webpack/common";
|
||||||
|
|
||||||
const st = (style: string) => `vcSettings${style}`;
|
const st = (style: string) => `vcSettings${style}`;
|
||||||
|
|
||||||
|
@ -30,9 +30,15 @@ function VencordSettings() {
|
||||||
const [settingsDir, , settingsDirPending] = useAwaiter(() => VencordNative.ipc.invoke<string>(IpcEvents.GET_SETTINGS_DIR), "Loading...");
|
const [settingsDir, , settingsDirPending] = useAwaiter(() => VencordNative.ipc.invoke<string>(IpcEvents.GET_SETTINGS_DIR), "Loading...");
|
||||||
const settings = useSettings();
|
const settings = useSettings();
|
||||||
|
|
||||||
|
const [donateImage] = React.useState(
|
||||||
|
Math.random() > 0.5
|
||||||
|
? "https://cdn.discordapp.com/emojis/1026533090627174460.png"
|
||||||
|
: "https://media.discordapp.net/stickers/1039992459209490513.png"
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<DonateCard />
|
<DonateCard image={donateImage} />
|
||||||
<Forms.FormSection title="Quick Actions">
|
<Forms.FormSection title="Quick Actions">
|
||||||
<Card className={st("QuickActionCard")}>
|
<Card className={st("QuickActionCard")}>
|
||||||
{IS_WEB ? (
|
{IS_WEB ? (
|
||||||
|
@ -75,6 +81,9 @@ function VencordSettings() {
|
||||||
<Forms.FormDivider />
|
<Forms.FormDivider />
|
||||||
|
|
||||||
<Forms.FormSection title="Settings">
|
<Forms.FormSection title="Settings">
|
||||||
|
<Forms.FormText className={Margins.marginBottom20}>
|
||||||
|
Hint: You can change the position of this settings section in the settings of the "Settings" plugin!
|
||||||
|
</Forms.FormText>
|
||||||
<Switch
|
<Switch
|
||||||
value={settings.useQuickCss}
|
value={settings.useQuickCss}
|
||||||
onChange={(v: boolean) => settings.useQuickCss = v}
|
onChange={(v: boolean) => settings.useQuickCss = v}
|
||||||
|
@ -104,8 +113,11 @@ function VencordSettings() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
interface DonateCardProps {
|
||||||
|
image: string;
|
||||||
|
}
|
||||||
|
|
||||||
function DonateCard() {
|
function DonateCard({ image }: DonateCardProps) {
|
||||||
return (
|
return (
|
||||||
<Card style={{
|
<Card style={{
|
||||||
padding: "1em",
|
padding: "1em",
|
||||||
|
@ -123,8 +135,9 @@ function DonateCard() {
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img
|
||||||
role="presentation"
|
role="presentation"
|
||||||
src="https://cdn.discordapp.com/emojis/1026533090627174460.png"
|
src={image}
|
||||||
alt=""
|
alt=""
|
||||||
|
height={128}
|
||||||
style={{ marginLeft: "auto", transform: "rotate(10deg)" }}
|
style={{ marginLeft: "auto", transform: "rotate(10deg)" }}
|
||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
|
@ -24,6 +24,7 @@ import cssText from "~fileContent/settingsStyles.css";
|
||||||
|
|
||||||
import BackupRestoreTab from "./BackupRestoreTab";
|
import BackupRestoreTab from "./BackupRestoreTab";
|
||||||
import PluginsTab from "./PluginsTab";
|
import PluginsTab from "./PluginsTab";
|
||||||
|
import ThemesTab from "./ThemesTab";
|
||||||
import Updater from "./Updater";
|
import Updater from "./Updater";
|
||||||
import VencordSettings from "./VencordTab";
|
import VencordSettings from "./VencordTab";
|
||||||
|
|
||||||
|
@ -47,7 +48,7 @@ interface SettingsTab {
|
||||||
const SettingsTabs: Record<string, SettingsTab> = {
|
const SettingsTabs: Record<string, SettingsTab> = {
|
||||||
VencordSettings: { name: "Vencord", component: () => <VencordSettings /> },
|
VencordSettings: { name: "Vencord", component: () => <VencordSettings /> },
|
||||||
VencordPlugins: { name: "Plugins", component: () => <PluginsTab /> },
|
VencordPlugins: { name: "Plugins", component: () => <PluginsTab /> },
|
||||||
VencordThemes: { name: "Themes", component: () => <Text variant="text-md/medium">Coming soon to a Vencord near you!</Text> },
|
VencordThemes: { name: "Themes", component: () => <ThemesTab /> },
|
||||||
VencordUpdater: { name: "Updater" }, // Only show updater if IS_WEB is false
|
VencordUpdater: { name: "Updater" }, // Only show updater if IS_WEB is false
|
||||||
VencordSettingsSync: { name: "Backup & Restore", component: () => <BackupRestoreTab /> },
|
VencordSettingsSync: { name: "Backup & Restore", component: () => <BackupRestoreTab /> },
|
||||||
};
|
};
|
||||||
|
|
132
src/plugins/memberCount.tsx
Normal file
132
src/plugins/memberCount.tsx
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
/*
|
||||||
|
* Vencord, a modification for Discord's desktop app
|
||||||
|
* Copyright (c) 2022 Vendicated and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import ErrorBoundary from "@components/ErrorBoundary";
|
||||||
|
import { Flex } from "@components/Flex";
|
||||||
|
import { Devs } from "@utils/constants";
|
||||||
|
import { getCurrentChannel } from "@utils/discord";
|
||||||
|
import { useForceUpdater } from "@utils/misc";
|
||||||
|
import definePlugin from "@utils/types";
|
||||||
|
import { FluxDispatcher, Tooltip } from "@webpack/common";
|
||||||
|
|
||||||
|
const counts = {} as Record<string, [number, number]>;
|
||||||
|
let forceUpdate: () => void;
|
||||||
|
|
||||||
|
function MemberCount() {
|
||||||
|
const guildId = getCurrentChannel().guild_id;
|
||||||
|
const c = counts[guildId];
|
||||||
|
|
||||||
|
forceUpdate = useForceUpdater();
|
||||||
|
|
||||||
|
if (!c) return null;
|
||||||
|
|
||||||
|
let total = String(c[0]);
|
||||||
|
if (total === "0" && c[1] > 0) {
|
||||||
|
total = "Loading...";
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Flex id="vc-membercount" style={{
|
||||||
|
marginTop: "1em",
|
||||||
|
marginBottom: "-.5em",
|
||||||
|
paddingInline: "1em",
|
||||||
|
justifyContent: "center",
|
||||||
|
alignContent: "center",
|
||||||
|
gap: 0
|
||||||
|
}}>
|
||||||
|
<Tooltip text={`${c[1]} Online`} position="bottom">
|
||||||
|
{props => (
|
||||||
|
<div {...props}>
|
||||||
|
<span
|
||||||
|
style={{
|
||||||
|
backgroundColor: "var(--status-green-600)",
|
||||||
|
width: "12px",
|
||||||
|
height: "12px",
|
||||||
|
borderRadius: "50%",
|
||||||
|
display: "inline-block",
|
||||||
|
marginRight: "0.5em"
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<span style={{ color: "var(--status-green-600)" }}>{c[1]}</span>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</Tooltip>
|
||||||
|
<Tooltip text={`${c[0] || "?"} Total Members`} position="bottom">
|
||||||
|
{props => (
|
||||||
|
<div {...props}>
|
||||||
|
<span
|
||||||
|
style={{
|
||||||
|
width: "6px",
|
||||||
|
height: "6px",
|
||||||
|
borderRadius: "50%",
|
||||||
|
border: "3px solid var(--status-grey-500)",
|
||||||
|
display: "inline-block",
|
||||||
|
marginRight: "0.5em",
|
||||||
|
marginLeft: "1em"
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<span style={{ color: "var(--status-grey-500)" }}>{total}</span>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</Tooltip>
|
||||||
|
</Flex>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default definePlugin({
|
||||||
|
name: "MemberCount",
|
||||||
|
description: "Shows the amount of online & total members in the server member list",
|
||||||
|
authors: [Devs.Ven],
|
||||||
|
|
||||||
|
patches: [{
|
||||||
|
find: ".isSidebarVisible,",
|
||||||
|
replacement: {
|
||||||
|
match: /(var (.)=.\.className.+?children):\[(.\.useMemo[^}]+"aria-multiselectable")/,
|
||||||
|
replace: "$1:[$2.startsWith('members')?Vencord.Plugins.plugins.MemberCount.render():null,$3"
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
|
||||||
|
onGuildMemberListUpdate({ guildId, groups, memberCount, id }) {
|
||||||
|
// eeeeeh - sometimes it has really wrong counts??? like 10 times less than actual
|
||||||
|
// but if we only listen to everyone updates, sometimes we never get the count?
|
||||||
|
// this seems to work but isn't optional
|
||||||
|
if (id !== "everyone" && counts[guildId]) return;
|
||||||
|
|
||||||
|
let count = 0;
|
||||||
|
for (const group of groups) {
|
||||||
|
if (group.id !== "offline")
|
||||||
|
count += group.count;
|
||||||
|
}
|
||||||
|
counts[guildId] = [memberCount, count];
|
||||||
|
forceUpdate?.();
|
||||||
|
},
|
||||||
|
|
||||||
|
start() {
|
||||||
|
FluxDispatcher.subscribe("GUILD_MEMBER_LIST_UPDATE", this.onGuildMemberListUpdate);
|
||||||
|
},
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
FluxDispatcher.unsubscribe("GUILD_MEMBER_LIST_UPDATE", this.onGuildMemberListUpdate);
|
||||||
|
},
|
||||||
|
|
||||||
|
render: () => (
|
||||||
|
<ErrorBoundary noop>
|
||||||
|
<MemberCount />
|
||||||
|
</ErrorBoundary>
|
||||||
|
)
|
||||||
|
});
|
135
src/plugins/serverListIndicators.tsx
Normal file
135
src/plugins/serverListIndicators.tsx
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
/*
|
||||||
|
* Vencord, a modification for Discord's desktop app
|
||||||
|
* Copyright (c) 2022 Sofia Lima
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { addServerListElement, removeServerListElement, ServerListRenderPosition } from "@api/ServerList";
|
||||||
|
import { Settings } from "@api/settings";
|
||||||
|
import ErrorBoundary from "@components/ErrorBoundary";
|
||||||
|
import { Devs } from "@utils/constants";
|
||||||
|
import { useForceUpdater } from "@utils/misc";
|
||||||
|
import definePlugin, { OptionType } from "@utils/types";
|
||||||
|
import { FluxDispatcher, GuildStore,PresenceStore, RelationshipStore } from "@webpack/common";
|
||||||
|
|
||||||
|
enum IndicatorType {
|
||||||
|
SERVER = 1 << 0,
|
||||||
|
FRIEND = 1 << 1,
|
||||||
|
BOTH = SERVER | FRIEND,
|
||||||
|
}
|
||||||
|
|
||||||
|
let onlineFriends = 0;
|
||||||
|
let guildCount = 0;
|
||||||
|
let forceUpdateFriendCount: () => void;
|
||||||
|
let forceUpdateGuildCount: () => void;
|
||||||
|
|
||||||
|
function FriendsIndicator() {
|
||||||
|
forceUpdateFriendCount = useForceUpdater();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<span id="vc-friendcount" style={{
|
||||||
|
display: "inline-block",
|
||||||
|
width: "100%",
|
||||||
|
fontSize: "12px",
|
||||||
|
fontWeight: "600",
|
||||||
|
color: "var(--header-secondary)",
|
||||||
|
textTransform: "uppercase",
|
||||||
|
textAlign: "center",
|
||||||
|
}}>
|
||||||
|
{onlineFriends} online
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ServersIndicator() {
|
||||||
|
forceUpdateGuildCount = useForceUpdater();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<span id="vc-guildcount" style={{
|
||||||
|
display: "inline-block",
|
||||||
|
width: "100%",
|
||||||
|
fontSize: "12px",
|
||||||
|
fontWeight: "600",
|
||||||
|
color: "var(--header-secondary)",
|
||||||
|
textTransform: "uppercase",
|
||||||
|
textAlign: "center",
|
||||||
|
}}>
|
||||||
|
{guildCount} servers
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default definePlugin({
|
||||||
|
name: "ServerListIndicators",
|
||||||
|
description: "Add online friend count or server count in the server list",
|
||||||
|
authors: [Devs.dzshn],
|
||||||
|
dependencies: ["ServerListAPI"],
|
||||||
|
|
||||||
|
options: {
|
||||||
|
mode: {
|
||||||
|
description: "mode",
|
||||||
|
type: OptionType.SELECT,
|
||||||
|
options: [
|
||||||
|
{ label: "Only online friend count", value: IndicatorType.FRIEND, default: true },
|
||||||
|
{ label: "Only server count", value: IndicatorType.SERVER },
|
||||||
|
{ label: "Both server and online friend counts", value: IndicatorType.BOTH },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
renderIndicator: () => {
|
||||||
|
const { mode } = Settings.plugins.ServerListIndicators;
|
||||||
|
return <ErrorBoundary noop>
|
||||||
|
<div style={{ marginBottom: "4px" }}>
|
||||||
|
{!!(mode & IndicatorType.FRIEND) && <FriendsIndicator />}
|
||||||
|
{!!(mode & IndicatorType.SERVER) && <ServersIndicator />}
|
||||||
|
</div>
|
||||||
|
</ErrorBoundary>;
|
||||||
|
},
|
||||||
|
|
||||||
|
handlePresenceUpdate() {
|
||||||
|
onlineFriends = 0;
|
||||||
|
const relations = RelationshipStore.getRelationships();
|
||||||
|
for (const id of Object.keys(relations)) {
|
||||||
|
const type = relations[id];
|
||||||
|
// FRIEND relationship type
|
||||||
|
if (type === 1 && PresenceStore.getStatus(id) !== "offline") {
|
||||||
|
onlineFriends += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
forceUpdateFriendCount?.();
|
||||||
|
},
|
||||||
|
|
||||||
|
handleGuildUpdate() {
|
||||||
|
guildCount = GuildStore.getGuildCount();
|
||||||
|
forceUpdateGuildCount?.();
|
||||||
|
},
|
||||||
|
|
||||||
|
start() {
|
||||||
|
this.handlePresenceUpdate();
|
||||||
|
this.handleGuildUpdate();
|
||||||
|
addServerListElement(ServerListRenderPosition.Above, this.renderIndicator);
|
||||||
|
FluxDispatcher.subscribe("PRESENCE_UPDATES", this.handlePresenceUpdate);
|
||||||
|
FluxDispatcher.subscribe("GUILD_CREATE", this.handleGuildUpdate);
|
||||||
|
FluxDispatcher.subscribe("GUILD_DELETE", this.handleGuildUpdate);
|
||||||
|
},
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
removeServerListElement(ServerListRenderPosition.Above, this.renderIndicator);
|
||||||
|
FluxDispatcher.unsubscribe("PRESENCE_UPDATES", this.handlePresenceUpdate);
|
||||||
|
FluxDispatcher.unsubscribe("GUILD_CREATE", this.handleGuildUpdate);
|
||||||
|
FluxDispatcher.unsubscribe("GUILD_DELETE", this.handleGuildUpdate);
|
||||||
|
}
|
||||||
|
});
|
|
@ -16,9 +16,11 @@
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { Settings } from "@api/settings";
|
||||||
import { Devs } from "@utils/constants";
|
import { Devs } from "@utils/constants";
|
||||||
|
import Logger from "@utils/Logger";
|
||||||
import { LazyComponent } from "@utils/misc";
|
import { LazyComponent } from "@utils/misc";
|
||||||
import definePlugin from "@utils/types";
|
import definePlugin, { OptionType } from "@utils/types";
|
||||||
|
|
||||||
import gitHash from "~git-hash";
|
import gitHash from "~git-hash";
|
||||||
|
|
||||||
|
@ -43,7 +45,23 @@ export default definePlugin({
|
||||||
}, {
|
}, {
|
||||||
find: "Messages.ACTIVITY_SETTINGS",
|
find: "Messages.ACTIVITY_SETTINGS",
|
||||||
replacement: {
|
replacement: {
|
||||||
match: /\{section:(.{1,2})\.ID\.HEADER,\s*label:(.{1,2})\..{1,2}\.Messages\.ACTIVITY_SETTINGS\}/,
|
get match() {
|
||||||
|
switch (Settings.plugins.Settings.settingsLocation) {
|
||||||
|
case "top": return /\{section:(.{1,2})\.ID\.HEADER,\s*label:(.{1,2})\..{1,2}\.Messages\.USER_SETTINGS\}/;
|
||||||
|
case "aboveNitro": return /\{section:(.{1,2})\.ID\.HEADER,\s*label:(.{1,2})\..{1,2}\.Messages\.BILLING_SETTINGS\}/;
|
||||||
|
case "belowNitro": return /\{section:(.{1,2})\.ID\.HEADER,\s*label:(.{1,2})\..{1,2}\.Messages\.APP_SETTINGS\}/;
|
||||||
|
case "aboveActivity": return /\{section:(.{1,2})\.ID\.HEADER,\s*label:(.{1,2})\..{1,2}\.Messages\.ACTIVITY_SETTINGS\}/;
|
||||||
|
case "belowActivity": return /(?<=\{section:(.{1,2})\.ID\.DIVIDER},)\{section:"changelog"/;
|
||||||
|
case "bottom": return /\{section:(.{1,2})\.ID\.CUSTOM,\s*element:.+?}/;
|
||||||
|
default: {
|
||||||
|
new Logger("Settings").error(
|
||||||
|
new Error("No switch case matched????? Don't mess with the settings, silly")
|
||||||
|
);
|
||||||
|
// matches nothing
|
||||||
|
return /(?!a)a/;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
replace: (m, mod) => {
|
replace: (m, mod) => {
|
||||||
const updater = !IS_WEB ? '{section:"VencordUpdater",label:"Updater",element:Vencord.Plugins.plugins.Settings.tabs.updater},' : "";
|
const updater = !IS_WEB ? '{section:"VencordUpdater",label:"Updater",element:Vencord.Plugins.plugins.Settings.tabs.updater},' : "";
|
||||||
const patchHelper = IS_DEV ? '{section:"VencordPatchHelper",label:"Patch Helper",element:Vencord.Components.PatchHelper},' : "";
|
const patchHelper = IS_DEV ? '{section:"VencordPatchHelper",label:"Patch Helper",element:Vencord.Components.PatchHelper},' : "";
|
||||||
|
@ -61,6 +79,22 @@ export default definePlugin({
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
|
|
||||||
|
options: {
|
||||||
|
settingsLocation: {
|
||||||
|
type: OptionType.SELECT,
|
||||||
|
description: "Where to put the Vencord settings section",
|
||||||
|
options: [
|
||||||
|
{ label: "At the very top", value: "top" },
|
||||||
|
{ label: "Above the Nitro section", value: "aboveNitro" },
|
||||||
|
{ label: "Below the Nitro section", value: "belowNitro" },
|
||||||
|
{ label: "Above Activity Settings", value: "aboveActivity", default: true },
|
||||||
|
{ label: "Below Activity Settings", value: "belowActivity" },
|
||||||
|
{ label: "At the very bottom", value: "bottom" },
|
||||||
|
],
|
||||||
|
restartNeeded: true
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
tabs: {
|
tabs: {
|
||||||
vencord: () => <SettingsComponent tab="VencordSettings" />,
|
vencord: () => <SettingsComponent tab="VencordSettings" />,
|
||||||
plugins: () => <SettingsComponent tab="VencordPlugins" />,
|
plugins: () => <SettingsComponent tab="VencordPlugins" />,
|
||||||
|
|
|
@ -27,7 +27,7 @@ import type { LiteralUnion } from "type-fest";
|
||||||
*
|
*
|
||||||
* @example onceDefined(window, "webpackChunkdiscord_app", wpInstance => wpInstance.push(...));
|
* @example onceDefined(window, "webpackChunkdiscord_app", wpInstance => wpInstance.push(...));
|
||||||
*/
|
*/
|
||||||
export function onceDefined<T, P extends LiteralUnion<keyof T, PropertyKey>>(
|
export function onceDefined<T extends object, P extends LiteralUnion<keyof T, PropertyKey>>(
|
||||||
target: T, property: P, callback: (v: P extends keyof T ? T[P] : any) => void
|
target: T, property: P, callback: (v: P extends keyof T ? T[P] : any) => void
|
||||||
): void {
|
): void {
|
||||||
const propertyAsAny = property as any;
|
const propertyAsAny = property as any;
|
||||||
|
|
|
@ -21,6 +21,7 @@ import { addSettingsListener, Settings } from "@api/settings";
|
||||||
import IpcEvents from "./IpcEvents";
|
import IpcEvents from "./IpcEvents";
|
||||||
|
|
||||||
let style: HTMLStyleElement;
|
let style: HTMLStyleElement;
|
||||||
|
let themesStyle: HTMLStyleElement;
|
||||||
|
|
||||||
export async function toggle(isEnabled: boolean) {
|
export async function toggle(isEnabled: boolean) {
|
||||||
if (!style) {
|
if (!style) {
|
||||||
|
@ -35,7 +36,22 @@ export async function toggle(isEnabled: boolean) {
|
||||||
style.disabled = !isEnabled;
|
style.disabled = !isEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function initThemes() {
|
||||||
|
if (!themesStyle) {
|
||||||
|
themesStyle = document.createElement("style");
|
||||||
|
themesStyle.id = "vencord-themes";
|
||||||
|
document.head.appendChild(themesStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
const { themeLinks } = Settings;
|
||||||
|
const links = themeLinks.map(link => `@import url("${link.trim()}");`).join("\n");
|
||||||
|
themesStyle.textContent = links;
|
||||||
|
}
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
toggle(Settings.useQuickCss);
|
toggle(Settings.useQuickCss);
|
||||||
addSettingsListener("useQuickCss", toggle);
|
addSettingsListener("useQuickCss", toggle);
|
||||||
|
|
||||||
|
initThemes();
|
||||||
|
addSettingsListener("themeLinks", initThemes);
|
||||||
});
|
});
|
||||||
|
|
|
@ -50,6 +50,7 @@ export let UserStore: Stores.UserStore;
|
||||||
export let SelectedChannelStore: Stores.SelectedChannelStore;
|
export let SelectedChannelStore: Stores.SelectedChannelStore;
|
||||||
export let SelectedGuildStore: any;
|
export let SelectedGuildStore: any;
|
||||||
export let ChannelStore: Stores.ChannelStore;
|
export let ChannelStore: Stores.ChannelStore;
|
||||||
|
export let RelationshipStore: Stores.RelationshipStore;
|
||||||
|
|
||||||
export const Forms = {} as {
|
export const Forms = {} as {
|
||||||
FormTitle: Components.FormTitle;
|
FormTitle: Components.FormTitle;
|
||||||
|
@ -64,6 +65,7 @@ export let Tooltip: Components.Tooltip;
|
||||||
export let Router: any;
|
export let Router: any;
|
||||||
export let TextInput: any;
|
export let TextInput: any;
|
||||||
export let Text: (props: TextProps) => JSX.Element;
|
export let Text: (props: TextProps) => JSX.Element;
|
||||||
|
export const TextArea = findByCodeLazy("handleSetRef", "textArea") as React.ComponentType<React.PropsWithRef<any>>;
|
||||||
|
|
||||||
export const Select = LazyComponent(() => findByCode("optionClassName", "popoutPosition", "autoFocus", "maxVisibleItems"));
|
export const Select = LazyComponent(() => findByCode("optionClassName", "popoutPosition", "autoFocus", "maxVisibleItems"));
|
||||||
export const Slider = LazyComponent(() => findByCode("closestMarkerIndex", "stickToMarkers"));
|
export const Slider = LazyComponent(() => findByCode("closestMarkerIndex", "stickToMarkers"));
|
||||||
|
@ -156,6 +158,7 @@ waitFor("getSortedPrivateChannels", m => ChannelStore = m);
|
||||||
waitFor("getCurrentlySelectedChannelId", m => SelectedChannelStore = m);
|
waitFor("getCurrentlySelectedChannelId", m => SelectedChannelStore = m);
|
||||||
waitFor("getLastSelectedGuildId", m => SelectedGuildStore = m);
|
waitFor("getLastSelectedGuildId", m => SelectedGuildStore = m);
|
||||||
waitFor("getGuildCount", m => GuildStore = m);
|
waitFor("getGuildCount", m => GuildStore = m);
|
||||||
|
waitFor("getRelationshipType", m => RelationshipStore = m);
|
||||||
|
|
||||||
waitFor(["Hovers", "Looks", "Sizes"], m => Button = m);
|
waitFor(["Hovers", "Looks", "Sizes"], m => Button = m);
|
||||||
waitFor(filters.byCode("helpdeskArticleId"), m => Switch = m);
|
waitFor(filters.byCode("helpdeskArticleId"), m => Switch = m);
|
||||||
|
|
Loading…
Add table
Reference in a new issue