From ff44dffe80e451a171277415ed22264c011151f4 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Fri, 8 Sep 2023 00:07:57 +0200 Subject: [PATCH 01/17] Migrate to bun --- .nvmrc | 1 - .vscode/settings.json | 2 +- bun.lockb | Bin 0 -> 111318 bytes package-lock.json | 5934 ----------------------------------------- package.json | 10 +- 5 files changed, 4 insertions(+), 5943 deletions(-) delete mode 100644 .nvmrc create mode 100755 bun.lockb delete mode 100644 package-lock.json diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 2a59cf43..00000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v20.0.0 diff --git a/.vscode/settings.json b/.vscode/settings.json index 727543d7..38a2aba5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,7 +2,7 @@ "explorer.fileNesting.enabled": true, "explorer.fileNesting.patterns": { "tsconfig.json": "tsconfig.*.json", - "package.json": "package-lock.json, .npmrc, yarn.lock, .yarnrc, .nvmrc", + "package.json": "package-lock.json, .npmrc, yarn.lock, .yarnrc, .nvmrc, bun.lockb", "flake.nix": "flake.lock", "*.ts": "$(capture).test.ts" }, diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..3dc5a82f756d0257188a1dc7d65b04ac2e8b137d GIT binary patch literal 111318 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.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@biomejs/biome": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.0.0.tgz", - "integrity": "sha512-Y5CND1QZ5pF6hc4dFw5ItDutv9KJO91ksLdBIFyvHL7LmXN0UomqyyRWryvrqq+YlA8Q58cR6sqjjQuMp9E2Ig==", - "dev": true, - "hasInstallScript": true, - "bin": { - "biome": "bin/biome" - }, - "engines": { - "node": ">=14.*" - }, - "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "1.0.0", - "@biomejs/cli-darwin-x64": "1.0.0", - "@biomejs/cli-linux-arm64": "1.0.0", - "@biomejs/cli-linux-x64": "1.0.0", - "@biomejs/cli-win32-arm64": "1.0.0", - "@biomejs/cli-win32-x64": "1.0.0" - } - }, - "node_modules/@biomejs/cli-darwin-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.0.0.tgz", - "integrity": "sha512-3v7kEyxkf3D246esH+q/lDK5wWn+xLCXZpHCuc1itAmC35GkEc6S7um6C1VD3XKXLx6N0sJR/rTmjKiRGV32Ig==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.*" - } - }, - "node_modules/@biomejs/cli-darwin-x64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.0.0.tgz", - "integrity": "sha512-uxIMt/X7TQWicjsImkqMvUUEqaFZTOJJrtEhlHl/eIaETWJmK3uAR7ihIWctpGJnN16sUgpLgwczc7FETqu/PQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.*" - } - }, - "node_modules/@biomejs/cli-linux-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.0.0.tgz", - "integrity": "sha512-kJWtu3Xr4MdHV2Yn4U+eZudAGPgv0kRCjWAyzLRewJiqE5TLPrX08imB9SU1n3+VxNO8e2JJ0tWWBHo4J+aSEg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.*" - } - }, - "node_modules/@biomejs/cli-linux-x64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.0.0.tgz", - "integrity": "sha512-FK6hYZ0Lkk39eXYx1+2ZWtLkApc0RdOpcjDVM96JbvI0bxqvNnm193BPXuxh5A/fCl6N28RNUvcKnZ5LbgZ0Yw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.*" - } - }, - "node_modules/@biomejs/cli-win32-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.0.0.tgz", - "integrity": "sha512-kE+OY2isEJHBodiLPMlybZckHkl3CQWsvXuJEvSxkoMhLbGDPEV3yZ/0lEph3BlxP3KP5vUO3hOFGaTvHFOuqQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.*" - } - }, - "node_modules/@biomejs/cli-win32-x64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.0.0.tgz", - "integrity": "sha512-Ko6ZsbmbScPMEnh/xz4mwDSCZIUCAEjbbbnUVApgAAL2+1Hoe7Vnhh2RiwYRqy3tHrBIMDwXkSxj0vlf1G3EHg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.*" - } - }, - "node_modules/@discordjs/builders": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.6.5.tgz", - "integrity": "sha512-SdweyCs/+mHj+PNhGLLle7RrRFX9ZAhzynHahMCLqp5Zeq7np7XC6/mgzHc79QoVlQ1zZtOkTTiJpOZu5V8Ufg==", - "dependencies": { - "@discordjs/formatters": "^0.3.2", - "@discordjs/util": "^1.0.1", - "@sapphire/shapeshift": "^3.9.2", - "discord-api-types": "0.37.50", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.3", - "tslib": "^2.6.1" - }, - "engines": { - "node": ">=16.11.0" - } - }, - "node_modules/@discordjs/builders/node_modules/discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - }, - "node_modules/@discordjs/collection": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz", - "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==", - "engines": { - "node": ">=16.11.0" - } - }, - "node_modules/@discordjs/formatters": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.3.2.tgz", - "integrity": "sha512-lE++JZK8LSSDRM5nLjhuvWhGuKiXqu+JZ/DsOR89DVVia3z9fdCJVcHF2W/1Zxgq0re7kCzmAJlCMMX3tetKpA==", - "dependencies": { - "discord-api-types": "0.37.50" - }, - "engines": { - "node": ">=16.11.0" - } - }, - "node_modules/@discordjs/formatters/node_modules/discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - }, - "node_modules/@discordjs/rest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-2.0.1.tgz", - "integrity": "sha512-/eWAdDRvwX/rIE2tuQUmKaxmWeHmGealttIzGzlYfI4+a7y9b6ZoMp8BG/jaohs8D8iEnCNYaZiOFLVFLQb8Zg==", - "dependencies": { - "@discordjs/collection": "^1.5.3", - "@discordjs/util": "^1.0.1", - "@sapphire/async-queue": "^1.5.0", - "@sapphire/snowflake": "^3.5.1", - "@vladfrangu/async_event_emitter": "^2.2.2", - "discord-api-types": "0.37.50", - "magic-bytes.js": "^1.0.15", - "tslib": "^2.6.1", - "undici": "5.22.1" - }, - "engines": { - "node": ">=16.11.0" - } - }, - "node_modules/@discordjs/rest/node_modules/discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - }, - "node_modules/@discordjs/util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-1.0.1.tgz", - "integrity": "sha512-d0N2yCxB8r4bn00/hvFZwM7goDcUhtViC5un4hPj73Ba4yrChLSJD8fy7Ps5jpTLg1fE9n4K0xBLc1y9WGwSsA==", - "engines": { - "node": ">=16.11.0" - } - }, - "node_modules/@discordjs/voice": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.16.0.tgz", - "integrity": "sha512-ToGCvHD1cBscuW3p+C7zOF5+L7MJmU4GjdOARfNk9mkHyFFZq4grK+Sxr3QXKbp27DtfDBc9uqD4GUOYgxngfA==", - "dependencies": { - "@types/ws": "^8.5.4", - "discord-api-types": "^0.37.37", - "prism-media": "^1.3.5", - "tslib": "^2.5.0", - "ws": "^8.13.0" - }, - "engines": { - "node": ">=16.9.0" - } - }, - "node_modules/@discordjs/ws": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-1.0.1.tgz", - "integrity": "sha512-avvAolBqN3yrSvdBPcJ/0j2g42ABzrv3PEL76e3YTp2WYMGH7cuspkjfSyNWaqYl1J+669dlLp+YFMxSVQyS5g==", - "dependencies": { - "@discordjs/collection": "^1.5.3", - "@discordjs/rest": "^2.0.1", - "@discordjs/util": "^1.0.1", - "@sapphire/async-queue": "^1.5.0", - "@types/ws": "^8.5.5", - "@vladfrangu/async_event_emitter": "^2.2.2", - "discord-api-types": "0.37.50", - "tslib": "^2.6.1", - "ws": "^8.13.0" - }, - "engines": { - "node": ">=16.11.0" - } - }, - "node_modules/@discordjs/ws/node_modules/discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - }, - "node_modules/@ffprobe-installer/darwin-arm64": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/darwin-arm64/-/darwin-arm64-5.0.1.tgz", - "integrity": "sha512-vwNCNjokH8hfkbl6m95zICHwkSzhEvDC3GVBcUp5HX8+4wsX10SP3B+bGur7XUzTIZ4cQpgJmEIAx6TUwRepMg==", - "cpu": [ - "arm64" - ], - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@ffprobe-installer/darwin-x64": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/darwin-x64/-/darwin-x64-5.1.0.tgz", - "integrity": "sha512-J+YGscZMpQclFg31O4cfVRGmDpkVsQ2fZujoUdMAAYcP0NtqpC49Hs3SWJpBdsGB4VeqOt5TTm1vSZQzs1NkhA==", - "cpu": [ - "x64" - ], - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@ffprobe-installer/ffprobe": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/ffprobe/-/ffprobe-2.1.2.tgz", - "integrity": "sha512-ZNvwk4f2magF42Zji2Ese16SMj9BS7Fui4kRjg6gTYTxY3gWZNpg85n4MIfQyI9nimHg4x/gT6FVkp/bBDuBwg==", - "engines": { - "node": ">=14.21.2" - }, - "optionalDependencies": { - "@ffprobe-installer/darwin-arm64": "5.0.1", - "@ffprobe-installer/darwin-x64": "5.1.0", - "@ffprobe-installer/linux-arm": "5.2.0", - "@ffprobe-installer/linux-arm64": "5.2.0", - "@ffprobe-installer/linux-ia32": "5.2.0", - "@ffprobe-installer/linux-x64": "5.2.0", - "@ffprobe-installer/win32-ia32": "5.1.0", - "@ffprobe-installer/win32-x64": "5.1.0" - } - }, - "node_modules/@ffprobe-installer/linux-arm": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-arm/-/linux-arm-5.2.0.tgz", - "integrity": "sha512-PF5HqEhCY7WTWHtLDYbA/+rLS+rhslWvyBlAG1Fk8VzVlnRdl93o6hy7DE2kJgxWQbFaR3ZktPQGEzfkrmQHvQ==", - "cpu": [ - "arm" - ], - "hasInstallScript": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@ffprobe-installer/linux-arm64": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-arm64/-/linux-arm64-5.2.0.tgz", - "integrity": "sha512-X1VvWtlLs6ScP73biVLuHD5ohKJKsMTa0vafCESOen4mOoNeLAYbxOVxDWAdFz9cpZgRiloFj5QD6nDj8E28yQ==", - "cpu": [ - "arm64" - ], - "hasInstallScript": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@ffprobe-installer/linux-ia32": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-ia32/-/linux-ia32-5.2.0.tgz", - "integrity": "sha512-TFVK5sasXyXhbIG7LtPRDmtkrkOsInwKcL43iEvEw+D9vCS2rc//mn9/0Q+BR0UoJEiMK4+ApYr/3LLVUBPOCQ==", - "cpu": [ - "ia32" - ], - "hasInstallScript": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@ffprobe-installer/linux-x64": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-x64/-/linux-x64-5.2.0.tgz", - "integrity": "sha512-D3UeqTLYPNs7pBWPLUYGehPdRVqU8eACox4OZy3pZUZatxye2YKlvBwEfaLdL1v2Z4FOAlLUhms0kY8m8kqSRA==", - "cpu": [ - "x64" - ], - "hasInstallScript": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@ffprobe-installer/win32-ia32": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/win32-ia32/-/win32-ia32-5.1.0.tgz", - "integrity": "sha512-5O3vOoNRxmut0/Nu9vSazTdSHasrr+zPT2B3Hm7kjmO3QVFcIfVImS6ReQnZeSy8JPJOqXts5kX5x/3KOX54XQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@ffprobe-installer/win32-x64": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/win32-x64/-/win32-x64-5.1.0.tgz", - "integrity": "sha512-jMGYeAgkrdn4e2vvYt/qakgHRE3CPju4bn5TmdPfoAm1BlX1mY9cyMd8gf5vSzI8gH8Zq5WQAyAkmekX/8TSTg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "optional": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@resvg/resvg-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.4.1.tgz", - "integrity": "sha512-wTOf1zerZX8qYcMmLZw3czR4paI4hXqPjShNwJRh5DeHxvgffUS5KM7XwxtbIheUW6LVYT5fhT2AJiP6mU7U4A==", - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@resvg/resvg-js-android-arm-eabi": "2.4.1", - "@resvg/resvg-js-android-arm64": "2.4.1", - "@resvg/resvg-js-darwin-arm64": "2.4.1", - "@resvg/resvg-js-darwin-x64": "2.4.1", - "@resvg/resvg-js-linux-arm-gnueabihf": "2.4.1", - "@resvg/resvg-js-linux-arm64-gnu": "2.4.1", - "@resvg/resvg-js-linux-arm64-musl": "2.4.1", - "@resvg/resvg-js-linux-x64-gnu": "2.4.1", - "@resvg/resvg-js-linux-x64-musl": "2.4.1", - "@resvg/resvg-js-win32-arm64-msvc": "2.4.1", - "@resvg/resvg-js-win32-ia32-msvc": "2.4.1", - "@resvg/resvg-js-win32-x64-msvc": "2.4.1" - } - }, - "node_modules/@resvg/resvg-js-android-arm-eabi": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm-eabi/-/resvg-js-android-arm-eabi-2.4.1.tgz", - "integrity": "sha512-AA6f7hS0FAPpvQMhBCf6f1oD1LdlqNXKCxAAPpKh6tR11kqV0YIB9zOlIYgITM14mq2YooLFl6XIbbvmY+jwUw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-android-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm64/-/resvg-js-android-arm64-2.4.1.tgz", - "integrity": "sha512-/QleoRdPfsEuH9jUjilYcDtKK/BkmWcK+1LXM8L2nsnf/CI8EnFyv7ZzCj4xAIvZGAy9dTYr/5NZBcTwxG2HQg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-darwin-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-arm64/-/resvg-js-darwin-arm64-2.4.1.tgz", - "integrity": "sha512-U1oMNhea+kAXgiEXgzo7EbFGCD1Edq5aSlQoe6LMly6UjHzgx2W3N5kEXCwU/CgN5FiQhZr7PlSJSlcr7mdhfg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-darwin-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-x64/-/resvg-js-darwin-x64-2.4.1.tgz", - "integrity": "sha512-avyVh6DpebBfHHtTQTZYSr6NG1Ur6TEilk1+H0n7V+g4F7x7WPOo8zL00ZhQCeRQ5H4f8WXNWIEKL8fwqcOkYw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-arm-gnueabihf": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm-gnueabihf/-/resvg-js-linux-arm-gnueabihf-2.4.1.tgz", - "integrity": "sha512-isY/mdKoBWH4VB5v621co+8l101jxxYjuTkwOLsbW+5RK9EbLciPlCB02M99ThAHzI2MYxIUjXNmNgOW8btXvw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-arm64-gnu": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-gnu/-/resvg-js-linux-arm64-gnu-2.4.1.tgz", - "integrity": "sha512-uY5voSCrFI8TH95vIYBm5blpkOtltLxLRODyhKJhGfskOI7XkRw5/t1u0sWAGYD8rRSNX+CA+np86otKjubrNg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-arm64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-musl/-/resvg-js-linux-arm64-musl-2.4.1.tgz", - "integrity": "sha512-6mT0+JBCsermKMdi/O2mMk3m7SqOjwi9TKAwSngRZ/nQoL3Z0Z5zV+572ztgbWr0GODB422uD8e9R9zzz38dRQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-x64-gnu": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-gnu/-/resvg-js-linux-x64-gnu-2.4.1.tgz", - "integrity": "sha512-60KnrscLj6VGhkYOJEmmzPlqqfcw1keDh6U+vMcNDjPhV3B5vRSkpP/D/a8sfokyeh4VEacPSYkWGezvzS2/mg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-linux-x64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-musl/-/resvg-js-linux-x64-musl-2.4.1.tgz", - "integrity": "sha512-0AMyZSICC1D7ge115cOZQW8Pcad6PjWuZkBFF3FJuSxC6Dgok0MQnLTs2MfMdKBlAcwO9dXsf3bv9tJZj8pATA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-win32-arm64-msvc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-arm64-msvc/-/resvg-js-win32-arm64-msvc-2.4.1.tgz", - "integrity": "sha512-76XDFOFSa3d0QotmcNyChh2xHwk+JTFiEQBVxMlHpHMeq7hNrQJ1IpE1zcHSQvrckvkdfLboKRrlGB86B10Qjw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-win32-ia32-msvc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-ia32-msvc/-/resvg-js-win32-ia32-msvc-2.4.1.tgz", - "integrity": "sha512-odyVFGrEWZIzzJ89KdaFtiYWaIJh9hJRW/frcEcG3agJ464VXkN/2oEVF5ulD+5mpGlug9qJg7htzHcKxDN8sg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@resvg/resvg-js-win32-x64-msvc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-x64-msvc/-/resvg-js-win32-x64-msvc-2.4.1.tgz", - "integrity": "sha512-vY4kTLH2S3bP+puU5x7hlAxHv+ulFgcK6Zn3efKSr0M0KnZ9A3qeAjZteIpkowEFfUeMPNg2dvvoFRJA9zqxSw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@sapphire/async-queue": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz", - "integrity": "sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@sapphire/shapeshift": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.2.tgz", - "integrity": "sha512-YRbCXWy969oGIdqR/wha62eX8GNHsvyYi0Rfd4rNW6tSVVa8p0ELiMEuOH/k8rgtvRoM+EMV7Csqz77YdwiDpA==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@sapphire/snowflake": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.1.tgz", - "integrity": "sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/debug": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", - "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/jsdom": { - "version": "21.1.2", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.2.tgz", - "integrity": "sha512-bGj+7TaCkOwkJfx7HtS9p22Ij0A2aKMuz8a1+owpkxa1wU/HUBy/WAXhdv90uDdVI9rSjGvUrXmLSeA9VP3JeA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - } - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/node": { - "version": "20.5.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz", - "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==" - }, - "node_modules/@types/node-cron": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/node-cron/-/node-cron-3.0.8.tgz", - "integrity": "sha512-+z5VrCvLwiJUohbRSgHdyZnHzAaLuD/E2bBANw+NQ1l05Crj8dIxb/kKK+OEqRitV2Wr/LYLuEBenGDsHZVV5Q==", - "dev": true - }, - "node_modules/@types/node-fetch": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", - "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/sqlite3": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.8.tgz", - "integrity": "sha512-sQMt/qnyUWnqiTcJXm5ZfNPIBeJ/DVvJDwxw+0tAxPJvadzfiP1QhryO1JOR6t1yfb8NpzQb/Rud06mob5laIA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", - "dev": true - }, - "node_modules/@types/validator": { - "version": "13.7.17", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.17.tgz", - "integrity": "sha512-aqayTNmeWrZcvnG2MG9eGYI6b7S5fl+yKgPs6bAjOTwPS316R5SxBGKvtSExfyoJU7pIeHJfsHI0Ji41RVMkvQ==" - }, - "node_modules/@types/ws": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@vladfrangu/async_event_emitter": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz", - "integrity": "sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ==", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "optional": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/canvas": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", - "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "nan": "^2.17.0", - "simple-get": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/chrono-node": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-2.6.5.tgz", - "integrity": "sha512-1B4iFd8xJ235PAprvRbs7zaEvmepOrN7dQ5UWjsXoDnlRP1vriGUwmcYw+KeQGKtz+YkgMo7bglf/q/l2VhoxQ==", - "dependencies": { - "dayjs": "^1.10.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/concurrently": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.1.tgz", - "integrity": "sha512-nVraf3aXOpIcNud5pB9M82p1tynmZkrSGQ1p6X/VY8cJ+2LMVqAgXsJxYYefACSHbTYlm92O1xuhdGTjwoEvbQ==", - "dev": true, - "dependencies": { - "chalk": "^4.1.2", - "date-fns": "^2.30.0", - "lodash": "^4.17.21", - "rxjs": "^7.8.1", - "shell-quote": "^1.8.1", - "spawn-command": "0.0.2", - "supports-color": "^8.1.1", - "tree-kill": "^1.2.2", - "yargs": "^17.7.2" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": "^14.13.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "node_modules/croner": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/croner/-/croner-7.0.1.tgz", - "integrity": "sha512-G2w4l4ZRwvfUBSUaBXqOS0xtsHpIGsROuOYqLxkV9VWfU7O6ZRuEncvxx08a8vAbKVc3WFD3/rxIFBGfg6Sbww==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssstyle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", - "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", - "dependencies": { - "rrweb-cssom": "^0.6.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/data-urls": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", - "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^12.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "node_modules/decode-base64": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/decode-base64/-/decode-base64-3.0.1.tgz", - "integrity": "sha512-IWgiXlMAdm9c4RrOnvkFxYpfZRlOys4Wxnc/QT72hVLUZKCr7RPkfamgn2GXysCo06Zd4TGZyKaPHO4soBgSAg==", - "dependencies": { - "node-buffer-encoding": "^1.0.1" - } - }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/discord-api-types": { - "version": "0.37.51", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.51.tgz", - "integrity": "sha512-tdmdH98t3zgjQF6zwOHl0OB/PCBiE4aVsNTuN7m0PfU2jOLx3lNoU6xTeFALntUtlIxN80GTr9RPQR4t7msjSg==" - }, - "node_modules/discord.js": { - "version": "14.13.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.13.0.tgz", - "integrity": "sha512-Kufdvg7fpyTEwANGy9x7i4od4yu5c6gVddGi5CKm4Y5a6sF0VBODObI3o0Bh7TGCj0LfNT8Qp8z04wnLFzgnbA==", - "dependencies": { - "@discordjs/builders": "^1.6.5", - "@discordjs/collection": "^1.5.3", - "@discordjs/formatters": "^0.3.2", - "@discordjs/rest": "^2.0.1", - "@discordjs/util": "^1.0.1", - "@discordjs/ws": "^1.0.1", - "@sapphire/snowflake": "^3.5.1", - "@types/ws": "^8.5.5", - "discord-api-types": "0.37.50", - "fast-deep-equal": "^3.1.3", - "lodash.snakecase": "^4.1.1", - "tslib": "^2.6.1", - "undici": "5.22.1", - "ws": "^8.13.0" - }, - "engines": { - "node": ">=16.11.0" - } - }, - "node_modules/discord.js/node_modules/discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dottie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.4.tgz", - "integrity": "sha512-iz64WUOmp/ECQhWMJjTWFzJN/wQ7RJ5v/a6A2OiCwjaGCpNo66WGIjlSf+IULO9DQd0b4cFawLOTbiKSrpKodw==" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/fast-copy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz", - "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-redact": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz", - "integrity": "sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/function-once": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/function-once/-/function-once-3.0.0.tgz", - "integrity": "sha512-WEhgu9PE55sHFf+SBg3lI8+CWpsqReLcsp3g12XhwSJJgnodpSpHk6StvpeVcKuHAFCAdttLrslJRFDSdLDf4g==" - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/get-audio-duration": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-audio-duration/-/get-audio-duration-4.0.1.tgz", - "integrity": "sha512-sx1ZRXVRN+PZlnVq2ub4wnDfPtkL4kJFeI4/I7Su0UR1ckhCca3cDOvik2v2AjIY8oyHUnKaTOoTk3o1JYEaDw==", - "dependencies": { - "@ffprobe-installer/ffprobe": "^2.1.1", - "execa": "^5.0.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "optional": true - }, - "node_modules/graphviz-wasm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/graphviz-wasm/-/graphviz-wasm-3.0.1.tgz", - "integrity": "sha512-RaN6vGdtyPU0N8oCOSofhMILlTfNr/fs0mP9+iAa5OL80/JVIvuzEMHJm8XFwiIN/RpfYfy7hhrZGv/VwLSuHA==", - "dependencies": { - "decode-base64": "^3.0.1", - "function-once": "^3.0.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "node_modules/help-me": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.2.0.tgz", - "integrity": "sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==", - "dev": true, - "dependencies": { - "glob": "^8.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/help-me/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/help-me/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/help-me/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "optional": true - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "optional": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true - }, - "node_modules/inflection": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.4.tgz", - "integrity": "sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==", - "engines": [ - "node >= 0.4.0" - ] - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/instagram-url-direct": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/instagram-url-direct/-/instagram-url-direct-1.0.13.tgz", - "integrity": "sha512-OurcvocEtjtxm3mWL1pNLM/V/JeB4wLaNxXMp0rlxuVYoqMrcbU3HOyTbVC/8Z1n56KbqI+zCCpXQwMcK5AnPA==", - "dependencies": { - "axios": "^0.21.1" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "optional": true - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsdom": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", - "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", - "dependencies": { - "abab": "^2.0.6", - "cssstyle": "^3.0.0", - "data-urls": "^4.0.0", - "decimal.js": "^10.4.3", - "domexception": "^4.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.4", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.6.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^12.0.1", - "ws": "^8.13.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/libsodium": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", - "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" - }, - "node_modules/libsodium-wrappers": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", - "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", - "dependencies": { - "libsodium": "^0.7.11" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-bytes.js": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.0.15.tgz", - "integrity": "sha512-bpRmwbRHqongRhA+mXzbLWjVy7ylqmfMBYaQkSs6pac0z6hBTvsgrH0r4FBYd/UYVJBmS6Rp/O+oCCQVLzKV1g==" - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "optional": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "optional": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "engines": { - "node": "*" - } - }, - "node_modules/moment-timezone": { - "version": "0.5.43", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", - "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", - "dependencies": { - "moment": "^2.29.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node_modules/node-buffer-encoding": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-buffer-encoding/-/node-buffer-encoding-1.0.1.tgz", - "integrity": "sha512-eklg9A4yXOlIZOIeV8D33gHZjw2g61TREuhucTM+/OR/xn4MXTZaV60fEYP+Lsa7C9bliJvvNrgkC6igafgKrw==" - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "optional": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/nwsapi": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz", - "integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-exit-leak-free": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", - "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/pg-connection-string": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.1.tgz", - "integrity": "sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==" - }, - "node_modules/pino": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.15.0.tgz", - "integrity": "sha512-olUADJByk4twxccmAxb1RiGKOSvddHugCV3wkqjyv+3Sooa2KLrmXrKEWOKi0XPCLasRR5jBXxioE1jxUa4KzQ==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.0.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.1.0", - "thread-stream": "^2.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-abstract-transport": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", - "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", - "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - } - }, - "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/pino-pretty": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.2.0.tgz", - "integrity": "sha512-tRvpyEmGtc2D+Lr3FulIZ+R1baggQ4S3xD2Ar93KixFEDx6SEAUP3W5aYuEw1C73d6ROrNcB2IXLteW8itlwhA==", - "dev": true, - "dependencies": { - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-copy": "^3.0.0", - "fast-safe-stringify": "^2.1.1", - "help-me": "^4.0.1", - "joycon": "^3.1.1", - "minimist": "^1.2.6", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^4.0.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, - "node_modules/pino-pretty/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" - }, - "node_modules/prism-media": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz", - "integrity": "sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==", - "peerDependencies": { - "@discordjs/opus": ">=0.8.0 <1.0.0", - "ffmpeg-static": "^5.0.2 || ^4.2.7 || ^3.0.0 || ^2.4.0", - "node-opus": "^0.3.3", - "opusscript": "^0.0.8" - }, - "peerDependenciesMeta": { - "@discordjs/opus": { - "optional": true - }, - "ffmpeg-static": { - "optional": true - }, - "node-opus": { - "optional": true - }, - "opusscript": { - "optional": true - } - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-warning": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", - "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/real-require": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", - "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/retry-as-promised": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-7.0.4.tgz", - "integrity": "sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA==" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-stable-stringify": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.0.tgz", - "integrity": "sha512-eehKHKpab6E741ud7ZIMcXhKcP6TSIezPkNZhy5U8xC6+VvrRdUA2tMgxGxaGl4cz7c2Ew5+mg5+wNB16KQqrA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/secure-json-parse": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", - "dev": true - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sequelize": { - "version": "6.32.1", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.32.1.tgz", - "integrity": "sha512-3Iv0jruv57Y0YvcxQW7BE56O7DC1BojcfIrqh6my+IQwde+9u/YnuYHzK+8kmZLhLvaziRT1eWu38nh9yVwn/g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/sequelize" - } - ], - "dependencies": { - "@types/debug": "^4.1.8", - "@types/validator": "^13.7.17", - "debug": "^4.3.4", - "dottie": "^2.0.4", - "inflection": "^1.13.4", - "lodash": "^4.17.21", - "moment": "^2.29.4", - "moment-timezone": "^0.5.43", - "pg-connection-string": "^2.6.0", - "retry-as-promised": "^7.0.4", - "semver": "^7.5.1", - "sequelize-pool": "^7.1.0", - "toposort-class": "^1.0.1", - "uuid": "^8.3.2", - "validator": "^13.9.0", - "wkx": "^0.5.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependenciesMeta": { - "ibm_db": { - "optional": true - }, - "mariadb": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-hstore": { - "optional": true - }, - "snowflake-sdk": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } - } - }, - "node_modules/sequelize-pool": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", - "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/sequelize/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", - "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", - "optional": true, - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sonic-boom": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", - "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, - "node_modules/spawn-command": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", - "dev": true - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sqlite3": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.6.tgz", - "integrity": "sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^4.2.0", - "tar": "^6.1.11" - }, - "optionalDependencies": { - "node-gyp": "8.x" - }, - "peerDependencies": { - "node-gyp": "8.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/thread-stream": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", - "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", - "dependencies": { - "real-require": "^0.2.0" - } - }, - "node_modules/toposort-class": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", - "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==" - }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", - "dependencies": { - "punycode": "^2.3.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-mixer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.3.tgz", - "integrity": "sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==" - }, - "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici": { - "version": "5.22.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", - "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", - "dependencies": { - "busboy": "^1.6.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/validator": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", - "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", - "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", - "dependencies": { - "tr46": "^4.1.1", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wkx": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", - "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@biomejs/biome": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.0.0.tgz", - "integrity": "sha512-Y5CND1QZ5pF6hc4dFw5ItDutv9KJO91ksLdBIFyvHL7LmXN0UomqyyRWryvrqq+YlA8Q58cR6sqjjQuMp9E2Ig==", - "dev": true, - "requires": { - "@biomejs/cli-darwin-arm64": "1.0.0", - "@biomejs/cli-darwin-x64": "1.0.0", - "@biomejs/cli-linux-arm64": "1.0.0", - "@biomejs/cli-linux-x64": "1.0.0", - "@biomejs/cli-win32-arm64": "1.0.0", - "@biomejs/cli-win32-x64": "1.0.0" - } - }, - "@biomejs/cli-darwin-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.0.0.tgz", - "integrity": "sha512-3v7kEyxkf3D246esH+q/lDK5wWn+xLCXZpHCuc1itAmC35GkEc6S7um6C1VD3XKXLx6N0sJR/rTmjKiRGV32Ig==", - "dev": true, - "optional": true - }, - "@biomejs/cli-darwin-x64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.0.0.tgz", - "integrity": "sha512-uxIMt/X7TQWicjsImkqMvUUEqaFZTOJJrtEhlHl/eIaETWJmK3uAR7ihIWctpGJnN16sUgpLgwczc7FETqu/PQ==", - "dev": true, - "optional": true - }, - "@biomejs/cli-linux-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.0.0.tgz", - "integrity": "sha512-kJWtu3Xr4MdHV2Yn4U+eZudAGPgv0kRCjWAyzLRewJiqE5TLPrX08imB9SU1n3+VxNO8e2JJ0tWWBHo4J+aSEg==", - "dev": true, - "optional": true - }, - "@biomejs/cli-linux-x64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.0.0.tgz", - "integrity": "sha512-FK6hYZ0Lkk39eXYx1+2ZWtLkApc0RdOpcjDVM96JbvI0bxqvNnm193BPXuxh5A/fCl6N28RNUvcKnZ5LbgZ0Yw==", - "dev": true, - "optional": true - }, - "@biomejs/cli-win32-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.0.0.tgz", - "integrity": "sha512-kE+OY2isEJHBodiLPMlybZckHkl3CQWsvXuJEvSxkoMhLbGDPEV3yZ/0lEph3BlxP3KP5vUO3hOFGaTvHFOuqQ==", - "dev": true, - "optional": true - }, - "@biomejs/cli-win32-x64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.0.0.tgz", - "integrity": "sha512-Ko6ZsbmbScPMEnh/xz4mwDSCZIUCAEjbbbnUVApgAAL2+1Hoe7Vnhh2RiwYRqy3tHrBIMDwXkSxj0vlf1G3EHg==", - "dev": true, - "optional": true - }, - "@discordjs/builders": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.6.5.tgz", - "integrity": "sha512-SdweyCs/+mHj+PNhGLLle7RrRFX9ZAhzynHahMCLqp5Zeq7np7XC6/mgzHc79QoVlQ1zZtOkTTiJpOZu5V8Ufg==", - "requires": { - "@discordjs/formatters": "^0.3.2", - "@discordjs/util": "^1.0.1", - "@sapphire/shapeshift": "^3.9.2", - "discord-api-types": "0.37.50", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.3", - "tslib": "^2.6.1" - }, - "dependencies": { - "discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - } - } - }, - "@discordjs/collection": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz", - "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==" - }, - "@discordjs/formatters": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.3.2.tgz", - "integrity": "sha512-lE++JZK8LSSDRM5nLjhuvWhGuKiXqu+JZ/DsOR89DVVia3z9fdCJVcHF2W/1Zxgq0re7kCzmAJlCMMX3tetKpA==", - "requires": { - "discord-api-types": "0.37.50" - }, - "dependencies": { - "discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - } - } - }, - "@discordjs/rest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-2.0.1.tgz", - "integrity": "sha512-/eWAdDRvwX/rIE2tuQUmKaxmWeHmGealttIzGzlYfI4+a7y9b6ZoMp8BG/jaohs8D8iEnCNYaZiOFLVFLQb8Zg==", - "requires": { - "@discordjs/collection": "^1.5.3", - "@discordjs/util": "^1.0.1", - "@sapphire/async-queue": "^1.5.0", - "@sapphire/snowflake": "^3.5.1", - "@vladfrangu/async_event_emitter": "^2.2.2", - "discord-api-types": "0.37.50", - "magic-bytes.js": "^1.0.15", - "tslib": "^2.6.1", - "undici": "5.22.1" - }, - "dependencies": { - "discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - } - } - }, - "@discordjs/util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-1.0.1.tgz", - "integrity": "sha512-d0N2yCxB8r4bn00/hvFZwM7goDcUhtViC5un4hPj73Ba4yrChLSJD8fy7Ps5jpTLg1fE9n4K0xBLc1y9WGwSsA==" - }, - "@discordjs/voice": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@discordjs/voice/-/voice-0.16.0.tgz", - "integrity": "sha512-ToGCvHD1cBscuW3p+C7zOF5+L7MJmU4GjdOARfNk9mkHyFFZq4grK+Sxr3QXKbp27DtfDBc9uqD4GUOYgxngfA==", - "requires": { - "@types/ws": "^8.5.4", - "discord-api-types": "^0.37.37", - "prism-media": "^1.3.5", - "tslib": "^2.5.0", - "ws": "^8.13.0" - } - }, - "@discordjs/ws": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-1.0.1.tgz", - "integrity": "sha512-avvAolBqN3yrSvdBPcJ/0j2g42ABzrv3PEL76e3YTp2WYMGH7cuspkjfSyNWaqYl1J+669dlLp+YFMxSVQyS5g==", - "requires": { - "@discordjs/collection": "^1.5.3", - "@discordjs/rest": "^2.0.1", - "@discordjs/util": "^1.0.1", - "@sapphire/async-queue": "^1.5.0", - "@types/ws": "^8.5.5", - "@vladfrangu/async_event_emitter": "^2.2.2", - "discord-api-types": "0.37.50", - "tslib": "^2.6.1", - "ws": "^8.13.0" - }, - "dependencies": { - "discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - } - } - }, - "@ffprobe-installer/darwin-arm64": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/darwin-arm64/-/darwin-arm64-5.0.1.tgz", - "integrity": "sha512-vwNCNjokH8hfkbl6m95zICHwkSzhEvDC3GVBcUp5HX8+4wsX10SP3B+bGur7XUzTIZ4cQpgJmEIAx6TUwRepMg==", - "optional": true - }, - "@ffprobe-installer/darwin-x64": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/darwin-x64/-/darwin-x64-5.1.0.tgz", - "integrity": "sha512-J+YGscZMpQclFg31O4cfVRGmDpkVsQ2fZujoUdMAAYcP0NtqpC49Hs3SWJpBdsGB4VeqOt5TTm1vSZQzs1NkhA==", - "optional": true - }, - "@ffprobe-installer/ffprobe": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/ffprobe/-/ffprobe-2.1.2.tgz", - "integrity": "sha512-ZNvwk4f2magF42Zji2Ese16SMj9BS7Fui4kRjg6gTYTxY3gWZNpg85n4MIfQyI9nimHg4x/gT6FVkp/bBDuBwg==", - "requires": { - "@ffprobe-installer/darwin-arm64": "5.0.1", - "@ffprobe-installer/darwin-x64": "5.1.0", - "@ffprobe-installer/linux-arm": "5.2.0", - "@ffprobe-installer/linux-arm64": "5.2.0", - "@ffprobe-installer/linux-ia32": "5.2.0", - "@ffprobe-installer/linux-x64": "5.2.0", - "@ffprobe-installer/win32-ia32": "5.1.0", - "@ffprobe-installer/win32-x64": "5.1.0" - } - }, - "@ffprobe-installer/linux-arm": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-arm/-/linux-arm-5.2.0.tgz", - "integrity": "sha512-PF5HqEhCY7WTWHtLDYbA/+rLS+rhslWvyBlAG1Fk8VzVlnRdl93o6hy7DE2kJgxWQbFaR3ZktPQGEzfkrmQHvQ==", - "optional": true - }, - "@ffprobe-installer/linux-arm64": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-arm64/-/linux-arm64-5.2.0.tgz", - "integrity": "sha512-X1VvWtlLs6ScP73biVLuHD5ohKJKsMTa0vafCESOen4mOoNeLAYbxOVxDWAdFz9cpZgRiloFj5QD6nDj8E28yQ==", - "optional": true - }, - "@ffprobe-installer/linux-ia32": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-ia32/-/linux-ia32-5.2.0.tgz", - "integrity": "sha512-TFVK5sasXyXhbIG7LtPRDmtkrkOsInwKcL43iEvEw+D9vCS2rc//mn9/0Q+BR0UoJEiMK4+ApYr/3LLVUBPOCQ==", - "optional": true - }, - "@ffprobe-installer/linux-x64": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/linux-x64/-/linux-x64-5.2.0.tgz", - "integrity": "sha512-D3UeqTLYPNs7pBWPLUYGehPdRVqU8eACox4OZy3pZUZatxye2YKlvBwEfaLdL1v2Z4FOAlLUhms0kY8m8kqSRA==", - "optional": true - }, - "@ffprobe-installer/win32-ia32": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/win32-ia32/-/win32-ia32-5.1.0.tgz", - "integrity": "sha512-5O3vOoNRxmut0/Nu9vSazTdSHasrr+zPT2B3Hm7kjmO3QVFcIfVImS6ReQnZeSy8JPJOqXts5kX5x/3KOX54XQ==", - "optional": true - }, - "@ffprobe-installer/win32-x64": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@ffprobe-installer/win32-x64/-/win32-x64-5.1.0.tgz", - "integrity": "sha512-jMGYeAgkrdn4e2vvYt/qakgHRE3CPju4bn5TmdPfoAm1BlX1mY9cyMd8gf5vSzI8gH8Zq5WQAyAkmekX/8TSTg==", - "optional": true - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", - "requires": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "optional": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true - } - } - }, - "@resvg/resvg-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.4.1.tgz", - "integrity": "sha512-wTOf1zerZX8qYcMmLZw3czR4paI4hXqPjShNwJRh5DeHxvgffUS5KM7XwxtbIheUW6LVYT5fhT2AJiP6mU7U4A==", - "requires": { - "@resvg/resvg-js-android-arm-eabi": "2.4.1", - "@resvg/resvg-js-android-arm64": "2.4.1", - "@resvg/resvg-js-darwin-arm64": "2.4.1", - "@resvg/resvg-js-darwin-x64": "2.4.1", - "@resvg/resvg-js-linux-arm-gnueabihf": "2.4.1", - "@resvg/resvg-js-linux-arm64-gnu": "2.4.1", - "@resvg/resvg-js-linux-arm64-musl": "2.4.1", - "@resvg/resvg-js-linux-x64-gnu": "2.4.1", - "@resvg/resvg-js-linux-x64-musl": "2.4.1", - "@resvg/resvg-js-win32-arm64-msvc": "2.4.1", - "@resvg/resvg-js-win32-ia32-msvc": "2.4.1", - "@resvg/resvg-js-win32-x64-msvc": "2.4.1" - } - }, - "@resvg/resvg-js-android-arm-eabi": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm-eabi/-/resvg-js-android-arm-eabi-2.4.1.tgz", - "integrity": "sha512-AA6f7hS0FAPpvQMhBCf6f1oD1LdlqNXKCxAAPpKh6tR11kqV0YIB9zOlIYgITM14mq2YooLFl6XIbbvmY+jwUw==", - "optional": true - }, - "@resvg/resvg-js-android-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm64/-/resvg-js-android-arm64-2.4.1.tgz", - "integrity": "sha512-/QleoRdPfsEuH9jUjilYcDtKK/BkmWcK+1LXM8L2nsnf/CI8EnFyv7ZzCj4xAIvZGAy9dTYr/5NZBcTwxG2HQg==", - "optional": true - }, - "@resvg/resvg-js-darwin-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-arm64/-/resvg-js-darwin-arm64-2.4.1.tgz", - "integrity": "sha512-U1oMNhea+kAXgiEXgzo7EbFGCD1Edq5aSlQoe6LMly6UjHzgx2W3N5kEXCwU/CgN5FiQhZr7PlSJSlcr7mdhfg==", - "optional": true - }, - "@resvg/resvg-js-darwin-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-x64/-/resvg-js-darwin-x64-2.4.1.tgz", - "integrity": "sha512-avyVh6DpebBfHHtTQTZYSr6NG1Ur6TEilk1+H0n7V+g4F7x7WPOo8zL00ZhQCeRQ5H4f8WXNWIEKL8fwqcOkYw==", - "optional": true - }, - "@resvg/resvg-js-linux-arm-gnueabihf": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm-gnueabihf/-/resvg-js-linux-arm-gnueabihf-2.4.1.tgz", - "integrity": "sha512-isY/mdKoBWH4VB5v621co+8l101jxxYjuTkwOLsbW+5RK9EbLciPlCB02M99ThAHzI2MYxIUjXNmNgOW8btXvw==", - "optional": true - }, - "@resvg/resvg-js-linux-arm64-gnu": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-gnu/-/resvg-js-linux-arm64-gnu-2.4.1.tgz", - "integrity": "sha512-uY5voSCrFI8TH95vIYBm5blpkOtltLxLRODyhKJhGfskOI7XkRw5/t1u0sWAGYD8rRSNX+CA+np86otKjubrNg==", - "optional": true - }, - "@resvg/resvg-js-linux-arm64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-musl/-/resvg-js-linux-arm64-musl-2.4.1.tgz", - "integrity": "sha512-6mT0+JBCsermKMdi/O2mMk3m7SqOjwi9TKAwSngRZ/nQoL3Z0Z5zV+572ztgbWr0GODB422uD8e9R9zzz38dRQ==", - "optional": true - }, - "@resvg/resvg-js-linux-x64-gnu": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-gnu/-/resvg-js-linux-x64-gnu-2.4.1.tgz", - "integrity": "sha512-60KnrscLj6VGhkYOJEmmzPlqqfcw1keDh6U+vMcNDjPhV3B5vRSkpP/D/a8sfokyeh4VEacPSYkWGezvzS2/mg==", - "optional": true - }, - "@resvg/resvg-js-linux-x64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-musl/-/resvg-js-linux-x64-musl-2.4.1.tgz", - "integrity": "sha512-0AMyZSICC1D7ge115cOZQW8Pcad6PjWuZkBFF3FJuSxC6Dgok0MQnLTs2MfMdKBlAcwO9dXsf3bv9tJZj8pATA==", - "optional": true - }, - "@resvg/resvg-js-win32-arm64-msvc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-arm64-msvc/-/resvg-js-win32-arm64-msvc-2.4.1.tgz", - "integrity": "sha512-76XDFOFSa3d0QotmcNyChh2xHwk+JTFiEQBVxMlHpHMeq7hNrQJ1IpE1zcHSQvrckvkdfLboKRrlGB86B10Qjw==", - "optional": true - }, - "@resvg/resvg-js-win32-ia32-msvc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-ia32-msvc/-/resvg-js-win32-ia32-msvc-2.4.1.tgz", - "integrity": "sha512-odyVFGrEWZIzzJ89KdaFtiYWaIJh9hJRW/frcEcG3agJ464VXkN/2oEVF5ulD+5mpGlug9qJg7htzHcKxDN8sg==", - "optional": true - }, - "@resvg/resvg-js-win32-x64-msvc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-x64-msvc/-/resvg-js-win32-x64-msvc-2.4.1.tgz", - "integrity": "sha512-vY4kTLH2S3bP+puU5x7hlAxHv+ulFgcK6Zn3efKSr0M0KnZ9A3qeAjZteIpkowEFfUeMPNg2dvvoFRJA9zqxSw==", - "optional": true - }, - "@sapphire/async-queue": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz", - "integrity": "sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==" - }, - "@sapphire/shapeshift": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.2.tgz", - "integrity": "sha512-YRbCXWy969oGIdqR/wha62eX8GNHsvyYi0Rfd4rNW6tSVVa8p0ELiMEuOH/k8rgtvRoM+EMV7Csqz77YdwiDpA==", - "requires": { - "fast-deep-equal": "^3.1.3", - "lodash": "^4.17.21" - } - }, - "@sapphire/snowflake": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.1.tgz", - "integrity": "sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==" - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "@types/debug": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", - "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", - "requires": { - "@types/ms": "*" - } - }, - "@types/jsdom": { - "version": "21.1.2", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.2.tgz", - "integrity": "sha512-bGj+7TaCkOwkJfx7HtS9p22Ij0A2aKMuz8a1+owpkxa1wU/HUBy/WAXhdv90uDdVI9rSjGvUrXmLSeA9VP3JeA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - } - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "@types/node": { - "version": "20.5.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz", - "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==" - }, - "@types/node-cron": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/node-cron/-/node-cron-3.0.8.tgz", - "integrity": "sha512-+z5VrCvLwiJUohbRSgHdyZnHzAaLuD/E2bBANw+NQ1l05Crj8dIxb/kKK+OEqRitV2Wr/LYLuEBenGDsHZVV5Q==", - "dev": true - }, - "@types/node-fetch": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", - "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/sqlite3": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.8.tgz", - "integrity": "sha512-sQMt/qnyUWnqiTcJXm5ZfNPIBeJ/DVvJDwxw+0tAxPJvadzfiP1QhryO1JOR6t1yfb8NpzQb/Rud06mob5laIA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", - "dev": true - }, - "@types/validator": { - "version": "13.7.17", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.17.tgz", - "integrity": "sha512-aqayTNmeWrZcvnG2MG9eGYI6b7S5fl+yKgPs6bAjOTwPS316R5SxBGKvtSExfyoJU7pIeHJfsHI0Ji41RVMkvQ==" - }, - "@types/ws": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", - "requires": { - "@types/node": "*" - } - }, - "@vladfrangu/async_event_emitter": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz", - "integrity": "sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ==" - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "optional": true, - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "requires": { - "streamsearch": "^1.1.0" - } - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true - } - } - }, - "canvas": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", - "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "nan": "^2.17.0", - "simple-get": "^3.0.3" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "chrono-node": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-2.6.5.tgz", - "integrity": "sha512-1B4iFd8xJ235PAprvRbs7zaEvmepOrN7dQ5UWjsXoDnlRP1vriGUwmcYw+KeQGKtz+YkgMo7bglf/q/l2VhoxQ==", - "requires": { - "dayjs": "^1.10.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "optional": true - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "concurrently": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.1.tgz", - "integrity": "sha512-nVraf3aXOpIcNud5pB9M82p1tynmZkrSGQ1p6X/VY8cJ+2LMVqAgXsJxYYefACSHbTYlm92O1xuhdGTjwoEvbQ==", - "dev": true, - "requires": { - "chalk": "^4.1.2", - "date-fns": "^2.30.0", - "lodash": "^4.17.21", - "rxjs": "^7.8.1", - "shell-quote": "^1.8.1", - "spawn-command": "0.0.2", - "supports-color": "^8.1.1", - "tree-kill": "^1.2.2", - "yargs": "^17.7.2" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "croner": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/croner/-/croner-7.0.1.tgz", - "integrity": "sha512-G2w4l4ZRwvfUBSUaBXqOS0xtsHpIGsROuOYqLxkV9VWfU7O6ZRuEncvxx08a8vAbKVc3WFD3/rxIFBGfg6Sbww==" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cssstyle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", - "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", - "requires": { - "rrweb-cssom": "^0.6.0" - } - }, - "data-urls": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", - "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", - "requires": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^12.0.0" - } - }, - "date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.21.0" - } - }, - "dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "dev": true - }, - "dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "decode-base64": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/decode-base64/-/decode-base64-3.0.1.tgz", - "integrity": "sha512-IWgiXlMAdm9c4RrOnvkFxYpfZRlOys4Wxnc/QT72hVLUZKCr7RPkfamgn2GXysCo06Zd4TGZyKaPHO4soBgSAg==", - "requires": { - "node-buffer-encoding": "^1.0.1" - } - }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "optional": true - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" - }, - "discord-api-types": { - "version": "0.37.51", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.51.tgz", - "integrity": "sha512-tdmdH98t3zgjQF6zwOHl0OB/PCBiE4aVsNTuN7m0PfU2jOLx3lNoU6xTeFALntUtlIxN80GTr9RPQR4t7msjSg==" - }, - "discord.js": { - "version": "14.13.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.13.0.tgz", - "integrity": "sha512-Kufdvg7fpyTEwANGy9x7i4od4yu5c6gVddGi5CKm4Y5a6sF0VBODObI3o0Bh7TGCj0LfNT8Qp8z04wnLFzgnbA==", - "requires": { - "@discordjs/builders": "^1.6.5", - "@discordjs/collection": "^1.5.3", - "@discordjs/formatters": "^0.3.2", - "@discordjs/rest": "^2.0.1", - "@discordjs/util": "^1.0.1", - "@discordjs/ws": "^1.0.1", - "@sapphire/snowflake": "^3.5.1", - "@types/ws": "^8.5.5", - "discord-api-types": "0.37.50", - "fast-deep-equal": "^3.1.3", - "lodash.snakecase": "^4.1.1", - "tslib": "^2.6.1", - "undici": "5.22.1", - "ws": "^8.13.0" - }, - "dependencies": { - "discord-api-types": { - "version": "0.37.50", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.50.tgz", - "integrity": "sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==" - } - } - }, - "domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "requires": { - "webidl-conversions": "^7.0.0" - } - }, - "dottie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.4.tgz", - "integrity": "sha512-iz64WUOmp/ECQhWMJjTWFzJN/wQ7RJ5v/a6A2OiCwjaGCpNo66WGIjlSf+IULO9DQd0b4cFawLOTbiKSrpKodw==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "fast-copy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz", - "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-redact": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz", - "integrity": "sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw==" - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "function-once": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/function-once/-/function-once-3.0.0.tgz", - "integrity": "sha512-WEhgu9PE55sHFf+SBg3lI8+CWpsqReLcsp3g12XhwSJJgnodpSpHk6StvpeVcKuHAFCAdttLrslJRFDSdLDf4g==" - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "get-audio-duration": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-audio-duration/-/get-audio-duration-4.0.1.tgz", - "integrity": "sha512-sx1ZRXVRN+PZlnVq2ub4wnDfPtkL4kJFeI4/I7Su0UR1ckhCca3cDOvik2v2AjIY8oyHUnKaTOoTk3o1JYEaDw==", - "requires": { - "@ffprobe-installer/ffprobe": "^2.1.1", - "execa": "^5.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "optional": true - }, - "graphviz-wasm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/graphviz-wasm/-/graphviz-wasm-3.0.1.tgz", - "integrity": "sha512-RaN6vGdtyPU0N8oCOSofhMILlTfNr/fs0mP9+iAa5OL80/JVIvuzEMHJm8XFwiIN/RpfYfy7hhrZGv/VwLSuHA==", - "requires": { - "decode-base64": "^3.0.1", - "function-once": "^3.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "help-me": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.2.0.tgz", - "integrity": "sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==", - "dev": true, - "requires": { - "glob": "^8.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "requires": { - "whatwg-encoding": "^2.0.0" - } - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "optional": true - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "optional": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true - }, - "inflection": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.4.tgz", - "integrity": "sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "instagram-url-direct": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/instagram-url-direct/-/instagram-url-direct-1.0.13.tgz", - "integrity": "sha512-OurcvocEtjtxm3mWL1pNLM/V/JeB4wLaNxXMp0rlxuVYoqMrcbU3HOyTbVC/8Z1n56KbqI+zCCpXQwMcK5AnPA==", - "requires": { - "axios": "^0.21.1" - } - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true - }, - "jsdom": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", - "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", - "requires": { - "abab": "^2.0.6", - "cssstyle": "^3.0.0", - "data-urls": "^4.0.0", - "decimal.js": "^10.4.3", - "domexception": "^4.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.4", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.6.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^12.0.1", - "ws": "^8.13.0", - "xml-name-validator": "^4.0.0" - } - }, - "libsodium": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", - "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" - }, - "libsodium-wrappers": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", - "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", - "requires": { - "libsodium": "^0.7.11" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "magic-bytes.js": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.0.15.tgz", - "integrity": "sha512-bpRmwbRHqongRhA+mXzbLWjVy7ylqmfMBYaQkSs6pac0z6hBTvsgrH0r4FBYd/UYVJBmS6Rp/O+oCCQVLzKV1g==" - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } - } - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "dependencies": { - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "optional": true - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "optional": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" - }, - "moment-timezone": { - "version": "0.5.43", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", - "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", - "requires": { - "moment": "^2.29.4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "optional": true - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node-buffer-encoding": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-buffer-encoding/-/node-buffer-encoding-1.0.1.tgz", - "integrity": "sha512-eklg9A4yXOlIZOIeV8D33gHZjw2g61TREuhucTM+/OR/xn4MXTZaV60fEYP+Lsa7C9bliJvvNrgkC6igafgKrw==" - }, - "node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "optional": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "optional": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { - "abbrev": "1" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "nwsapi": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz", - "integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "on-exit-leak-free": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", - "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "requires": { - "entities": "^4.4.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "pg-connection-string": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.1.tgz", - "integrity": "sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==" - }, - "pino": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.15.0.tgz", - "integrity": "sha512-olUADJByk4twxccmAxb1RiGKOSvddHugCV3wkqjyv+3Sooa2KLrmXrKEWOKi0XPCLasRR5jBXxioE1jxUa4KzQ==", - "requires": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.0.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.1.0", - "thread-stream": "^2.0.0" - } - }, - "pino-abstract-transport": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", - "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", - "requires": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - } - } - } - }, - "pino-pretty": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.2.0.tgz", - "integrity": "sha512-tRvpyEmGtc2D+Lr3FulIZ+R1baggQ4S3xD2Ar93KixFEDx6SEAUP3W5aYuEw1C73d6ROrNcB2IXLteW8itlwhA==", - "dev": true, - "requires": { - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-copy": "^3.0.0", - "fast-safe-stringify": "^2.1.1", - "help-me": "^4.0.1", - "joycon": "^3.1.1", - "minimist": "^1.2.6", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^4.0.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - } - } - } - }, - "pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" - }, - "prism-media": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz", - "integrity": "sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==", - "requires": {} - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" - }, - "process-warning": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", - "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "real-require": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", - "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==" - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true - }, - "retry-as-promised": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-7.0.4.tgz", - "integrity": "sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" - }, - "rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-stable-stringify": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.0.tgz", - "integrity": "sha512-eehKHKpab6E741ud7ZIMcXhKcP6TSIezPkNZhy5U8xC6+VvrRdUA2tMgxGxaGl4cz7c2Ew5+mg5+wNB16KQqrA==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "requires": { - "xmlchars": "^2.2.0" - } - }, - "secure-json-parse": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", - "dev": true - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "sequelize": { - "version": "6.32.1", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.32.1.tgz", - "integrity": "sha512-3Iv0jruv57Y0YvcxQW7BE56O7DC1BojcfIrqh6my+IQwde+9u/YnuYHzK+8kmZLhLvaziRT1eWu38nh9yVwn/g==", - "requires": { - "@types/debug": "^4.1.8", - "@types/validator": "^13.7.17", - "debug": "^4.3.4", - "dottie": "^2.0.4", - "inflection": "^1.13.4", - "lodash": "^4.17.21", - "moment": "^2.29.4", - "moment-timezone": "^0.5.43", - "pg-connection-string": "^2.6.0", - "retry-as-promised": "^7.0.4", - "semver": "^7.5.1", - "sequelize-pool": "^7.1.0", - "toposort-class": "^1.0.1", - "uuid": "^8.3.2", - "validator": "^13.9.0", - "wkx": "^0.5.0" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, - "sequelize-pool": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", - "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "optional": true - }, - "socks": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", - "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", - "optional": true, - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "sonic-boom": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", - "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", - "requires": { - "atomic-sleep": "^1.0.0" - } - }, - "spawn-command": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", - "dev": true - }, - "split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" - }, - "sqlite3": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.6.tgz", - "integrity": "sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^4.2.0", - "node-gyp": "8.x", - "tar": "^6.1.11" - } - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } - } - }, - "thread-stream": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", - "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", - "requires": { - "real-require": "^0.2.0" - } - }, - "toposort-class": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", - "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==" - }, - "tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - } - }, - "tr46": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", - "requires": { - "punycode": "^2.3.0" - } - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "ts-mixer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.3.tgz", - "integrity": "sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==" - }, - "tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" - }, - "typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true - }, - "undici": { - "version": "5.22.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", - "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", - "requires": { - "busboy": "^1.6.0" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "validator": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", - "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==" - }, - "w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "requires": { - "xml-name-validator": "^4.0.0" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" - }, - "whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "requires": { - "iconv-lite": "0.6.3" - } - }, - "whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==" - }, - "whatwg-url": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", - "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", - "requires": { - "tr46": "^4.1.1", - "webidl-conversions": "^7.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "wkx": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", - "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", - "requires": { - "@types/node": "*" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "requires": {} - }, - "xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } -} diff --git a/package.json b/package.json index 067bd7bd..31527a6e 100644 --- a/package.json +++ b/package.json @@ -3,19 +3,16 @@ "private": true, "version": "0.1.0", "description": "Offizieller Bot der Coding Shitpost Zentrale", - "main": "built/app.js", + "module": "src/app.ts", "type": "module", "scripts": { - "start": "node --es-module-specifier-resolution=node built/app.js", + "start": "bun src/app.ts", "test": "tsc --noEmit", - "compile": "tsc --sourceMap false --removeComments true", "ci": "biome ci ./", "format": "biome format --write ./", "lint": "biome lint ./", "lint:fix": "biome lint --apply ./", - "watch-node": "node --watch built/app.js", - "watch-ts": "tsc -w", - "watch": "concurrently -k -n 'TS,N' -c 'cyan,green' \"npm run watch-ts\" \"npm run watch-node\"" + "watch": "bun --watch src/app.ts" }, "repository": { "type": "git", @@ -54,7 +51,6 @@ "@types/node-cron": "^3.0.8", "@types/node-fetch": "^2.6.4", "@types/sqlite3": "^3.1.8", - "concurrently": "^8.2.1", "pino-pretty": "^10.2.0", "typescript": "^5.2.2" }, From 8c019ea6d1cfcc2fe0054eed368b158d859f4153 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Fri, 8 Sep 2023 17:34:48 +0200 Subject: [PATCH 02/17] Migrate dockerfile to use bun --- Dockerfile | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index b6c050ec..b31c776b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20-slim as dependency-base +FROM oven/bun:latest as dependency-base WORKDIR /app RUN apt-get update -yqq \ && apt-get install -yqq \ @@ -10,16 +10,13 @@ FROM node:20-slim as dependency-base COPY package*.json /app/ FROM dependency-base as build - # Install dependencies (with dev-deps) - RUN npm ci - - COPY . /app/ - RUN npm run compile + # Install dependencies with dev-deps + RUN bun install FROM dependency-base as runtime-dependencies - RUN NODE_ENV=production npm ci + RUN NODE_ENV=production bun install -FROM node:20-slim +FROM oven/bun:latest WORKDIR /app RUN apt-get update -yqqq \ && apt-get install -yqqq \ @@ -38,8 +35,6 @@ FROM node:20-slim RUN cp /usr/share/zoneinfo/${TZ} /etc/localtime COPY --from=runtime-dependencies /app/node_modules /app/node_modules - COPY --from=build /app/package.json /app/package.json - COPY --from=build /app/assets /app/assets - COPY --from=build /app/built /app/built + COPY ./ /app/ - ENTRYPOINT ["node", "--es-module-specifier-resolution=node", "built/app.js"] + ENTRYPOINT ["bun", "src/app.ts"] From 80b81d72c280beb64c2d7b01442ca494bcee2219 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Fri, 8 Sep 2023 17:35:06 +0200 Subject: [PATCH 03/17] Update lockfile --- bun.lockb | Bin 111318 -> 110456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index 3dc5a82f756d0257188a1dc7d65b04ac2e8b137d..df8207df4b0913b421bf77a5455520752721b90f 100755 GIT binary patch delta 15523 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 JouXghzX7~qLQwz! delta 15968 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 Date: Fri, 8 Sep 2023 17:36:01 +0200 Subject: [PATCH 04/17] Add lockfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b31c776b..eed9271b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ FROM oven/bun:latest as dependency-base libpixman-1-dev libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev \ && apt-get clean -yqqq - COPY package*.json /app/ + COPY package.json bun.lockb /app/ FROM dependency-base as build # Install dependencies with dev-deps From 8babcd0754142aa574b17eca9be36dad27bb2d41 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Fri, 8 Sep 2023 17:44:51 +0200 Subject: [PATCH 05/17] Remove unused stage --- Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index eed9271b..57308b56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,10 +9,6 @@ FROM oven/bun:latest as dependency-base COPY package.json bun.lockb /app/ -FROM dependency-base as build - # Install dependencies with dev-deps - RUN bun install - FROM dependency-base as runtime-dependencies RUN NODE_ENV=production bun install From 4d600cca150f6064a28a3104110b01322beafaf8 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Fri, 8 Sep 2023 17:48:34 +0200 Subject: [PATCH 06/17] Add engine --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6bfc138d..c2eb4052 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,6 @@ "typescript": "^5.2.2" }, "engines": { - "node": ">=20.0.0" + "bun": "^1.0.0" } } From 80718a055ce992138f352708bb094f6ed5844c28 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Fri, 8 Sep 2023 17:49:08 +0200 Subject: [PATCH 07/17] Add bun as dev dep --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index c2eb4052..261716b3 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "@types/node": "^20.5.9", "@types/node-cron": "^3.0.8", "@types/sqlite3": "^3.1.8", + "bun": "^1.0.0", "pino-pretty": "^10.2.0", "typescript": "^5.2.2" }, From f5628ae40729570881e296c202cf73b79772bbfb Mon Sep 17 00:00:00 2001 From: holzmaster Date: Tue, 31 Oct 2023 00:17:23 +0100 Subject: [PATCH 08/17] Merge --- .github/dependabot.yml | 4 + .github/workflows/CI.yml | 10 +- .github/workflows/auto-merge.yml | 26 +++++ .vscode/settings.json | 1 + Dockerfile | 2 +- biome.json | 2 +- bun.lockb | Bin 110456 -> 119324 bytes package.json | 30 +++--- src/app.ts | 9 +- src/commands/command.ts | 1 + src/commands/ehre.ts | 15 ++- src/commands/hilfe.ts | 43 ++++---- src/commands/info.ts | 2 +- src/commands/modcommands/ban.ts | 2 +- src/commands/poll.ts | 11 +- src/commands/special/linkEnhancer.ts | 139 +++++++++++++++++++++++++ src/commands/special/linkRedirect.ts | 75 ------------- src/commands/woislog.ts | 4 +- src/handler/aprilFoolsHandler.ts | 4 +- src/handler/cmdHandler.ts | 7 +- src/handler/commandHandler.ts | 8 +- src/handler/reactionHandler.ts | 5 +- src/handler/voiceStateUpdateHandler.ts | 10 +- src/storage/model/Nickname.ts | 1 + src/types.d.ts | 1 + 25 files changed, 264 insertions(+), 148 deletions(-) create mode 100644 .github/workflows/auto-merge.yml create mode 100644 src/commands/special/linkEnhancer.ts delete mode 100644 src/commands/special/linkRedirect.ts diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 205aa4d6..9e4f39ad 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,6 +4,10 @@ updates: directory: "/" schedule: interval: "monthly" + groups: + patch-dependencies: + update-types: + - "patch" - package-ecosystem: "docker" directory: "/" diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index e0d0ade6..0ffa91a6 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -35,12 +35,12 @@ jobs: needs: lint steps: - - uses: actions/checkout@v3 - - uses: docker/setup-qemu-action@v2 - - uses: docker/setup-buildx-action@v2 + - uses: actions/checkout@v4 + - uses: docker/setup-qemu-action@v3 + - uses: docker/setup-buildx-action@v3 - name: Build and export - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: tags: csz-bot:latest load: true diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 00000000..e8eedae9 --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,26 @@ +name: Dependabot auto-merge + +# Taken and adapted rom: +# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#enable-auto-merge-on-a-pull-request + +on: pull_request + +permissions: + contents: write + pull-requests: write + +jobs: + dependabot: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' }} + + steps: + - uses: dependabot/fetch-metadata@v1 + id: metadata + + - name: Enable auto-merge for Dependabot PRs + if: ${{ steps.metadata.outputs.update-type == 'version-update:semver-patch' }} + run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.vscode/settings.json b/.vscode/settings.json index 38a2aba5..5fc4bdc3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -16,6 +16,7 @@ "editor.defaultFormatter": "biomejs.biome" }, "cSpell.words": [ + "proxitok", "wois", "bday", "pino", diff --git a/Dockerfile b/Dockerfile index 57308b56..1f9c387a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ FROM oven/bun:latest as dependency-base FROM dependency-base as runtime-dependencies RUN NODE_ENV=production bun install -FROM oven/bun:latest +FROM node:20-slim WORKDIR /app RUN apt-get update -yqqq \ && apt-get install -yqqq \ diff --git a/biome.json b/biome.json index 7d31109f..947b3a60 100644 --- a/biome.json +++ b/biome.json @@ -5,7 +5,7 @@ }, "formatter": { "enabled": true, - "indentSize": 4, + "indentWidth": 4, "indentStyle": "space" }, "vcs": { diff --git a/bun.lockb b/bun.lockb index df8207df4b0913b421bf77a5455520752721b90f..9b297f92fffb46364891242d126240bfadbf5e5e 100755 GIT binary patch delta 25223 zcmeIacUTnL(lAu+qM~9%MFn%l zyv;dm%$T#=tlRYcs(V_;eSE)j?tR|-$9R&Keus>!uK_x^sCk;N5=mZa=AcyIgc&cbROV8N#2CWttdvwLH#j#bCub-MfG-2Twys2C z1e^t28@M-c9pLn=eyO?X`FZJCeKXS2`sGWYPnBflWM*WiNhFM(L}CCsEvX=l3?Bha z$T7rBUXhZOma&ohilO&QW;8O#FQ5!kR z0h5Ch)mRQ?vg6IZWUO5FBRVFa^73-iskt%~;pyy@0ePU$u=TZ^WV65}pFXqkT2`u8 zFh^7kFzKELrWy{ZacWjdcAxaDw7aH)Ubvai^b*jdw;3PgVL31wS2Q1(>`YekZZNN=d@MeyNg27JQ3TMU5O57{dF5uE--wz#1T40jbO%1O`4rixm* z3GO=sle{r787PAu(LSINsG{1y2zb#a@TuYlz~smoU`o`yoQ(ARK#3%nt<)-9xi0AqK9w4*?y2t~N9c*4pBo%XdN~DILy?rJ@z5vVqt!S7n7nZZrnc_)<-HCs zGWQcI)&-^tw?IG&Ie8gmPhyJ#sz?AuJK|(V#(=$`$eUc^Sp!v`OQ>{sPL$gu_q~{-kKGnVxxHj+xHc8j20UbgfiaTt6fi3%0+H;+c}0oki)0^hp}ppZcQ&Kn|U4E@VTc8qZMUd|+yDS73V;ZbEQ_ zK~`i5>;(M2nSiT-DO9_FslXCo3h`Jqe+nw12+WQX91tTg27HR(5MXkweH)muqu_ZiFgdsn zm?|$2;UQuK1unh^1fMlD>@7MuYjp5F=jIc zpgw7P%+6$}CkVnw0p37VS9s3KWp?2$5`-cU@EVDU5{Wf5n*v(`djn(LC^848>F_i3 zNq#?J<7in=J-yfZgT^|Wf1JraG;wB)O`TP3Cv3@0J2!LDv?sS$D~g_ficCAxr*M4# zx=mj(ukP*1-+T9Z{2%Gh9D1%#Uvu$<*&fT!83(?!?lz>Cb-l4k7ZwM$>vaBU-C^0r z32prLFR?jxz&v?i-N-0?qp-7GSD$J5X3;&bdF!Sx8!u3+NXYDgxrHs(s^7@J_OlzoLfOpqsrvDM&YX$u@FUt$HD zV4;-V1uyu!6?e88yks4TBpf_l(vvL!MH<>{l9_@z!xmdAnYwH>J~LPwE2V4!c4Q=H zNG>}AippxUrSQszt%k-BU5NyR$nh?CbLO4Y4hY0>!sl)*2MWK!>H$=U5wCrOXWpOd2|DDQX)Bit5(o>prfgq&!s% zDUXDOuPzP3^gvLhdVFx^v&D8wS+$y{#j9H(^GO{IwNNmbY=XT~wjR9i;gj6~)q*#O zhB8f98waIqIR@yqDf*#s9Q(}gX@=QOq&pT}7nS0!V?Cb%kP38rFuT#ycH*lJg$)^k(#ic2GD zGYtJG-u!R46B=FWqL3W}MPcDHL~3e|X0z8VBV=*7qb3NwF$WZB>F~{a0VDw^ki#2sY-dfQAPRbY~VG3XcIj-tb`rOm?_Yj&PvBk4!* zlxz?C2=ryKr&2Z^Qlk64DOE#gtQs!?f^fs(Jgz15x_#j6e6d12I zUP_rKrpjROglKdJMVZZyI@x?sHk^o5bz%_< zXSO&{DJui7BQ*G_NA?*M<&+lRq0wwYkWx0&U1PqGJp@HwA-yqf>{**&C6mi01S@5$ zJp>7+OytfDHKogUmR&u3^FS#ESwoY2LWoi}89eHKOk0TPT~OZ#k<`}{6h8!q;Epnq zx5{i`i$j%$&%tXA9-1$y#n!as+i%#kzR=}Aab+rSgP?0ky$DZ>6-rs9mlzeKq14cu zMh*?+wzz8pU9=4Yat)}aY!8bF<^@|Frj$BjD8$hSWBRiR4KQbdj)b-WKhU3&6jUv~ zHDPigRfRtFjJ@M*afDLl;wO$^ zidYJ$ro2`3glr`!(#PV2etEzaH&n_jFj|DzxwtB19YE1g6qdtrpah>te>Ynksg!*J zkNUP2EqYQvq*xeR;u*oDu?dZo()pnK@p00I8R|Jej{tN3y15`}@NLUvug>)dOC_WCAxFhSe+0sCT^f@Tr zp3E~uh%n|MYlW;UC}A={WSHq}LNq@f@rflqS}Ds!@;VltF91%ZU063cF;qiKy17R?u{57^Vl}hml91ItYqbbQ`kO zEtQNfYZI%KrJ(KTFIsRS6|$wEC>Z>T^di=V!j1hyKyMc`3;_$5Gk9u(FZ?+BR*oE6%c z6s(ZNfKu}HP^(|UaME|GJskT%ZTyKcZz+*<`>vS{D&aeI1XS90$`A8oukX~%wBBmnu zDgF6WmTtstEFXz4xWgPG41Ok@wdtgk6(UtAIzrl4fTE$oFCVh|ph#bj-@;h7qrrXM zG(y%6cS34Y+Rp(+wPE_iz`09WygiaRB1g$f*mF@ZiEMEfrED#DlxeUUq%gF{Y(xuy ziG*J)%!I{qIJii&A`9N;E>QlU(AFr0>?tUOQC(jsl3Va436p3cs2_uP6R1FF3R~G1 zpvW^}2?*{e3|4+`BvXMxnhFD4b{rIWjj7K=A*+Q>p>h}*h;(C6l;wKlnRFbeFn%K3 zjXSa+q3;id-$2n+z@SwWJz)uq>@2jS)=%6_a529WX@Tn~?u86DflC%h*9wDNh>Ns~ zFt$-k1BI+3C~6xXiQ_Q`zU0& ziGuF}wGR|hTrD%e(4y%~ko5pX)0sf621WCkKz#%ymh)p5o9Z;Sg=Yjh07vo?;0d5s zV|T${gmnRa0{IixVD7zrEM%}PdPkpB{0HnWeFij*ZOd4$~LFT#2Nj1=A;S|p*kBAIy_$;n?DIQ*ZCe@l}C$UKQQ8`<3nImJ&>ym>^M zzX%%x`U9x30|4Yk7Jy3U03_^`?n2`Sf*`G207>%!bo~mGUIBpcAOJOfn3^80#)ZIi z5hlG6YCIB{F2Yn#5uRxAZjAv!mnJp^JsUs<=BP0TOqV7m`CI@QoCl!mSD54r0E8C; z=vpXA5h_>&f($JN(6yNV{56(AwhBNkUkf053xF=dRKYei-a(i(>}h2~)^`Kw(!|DW zW}1R6>}kv{=xH24($n;T>sOepoZ+Pc)@OJ3w4xt6B-hp4{{)kVH`V%tX*#&8rZuq^ z8`;Z>?cU3nA0iLb8k(4DeyHXXwx)Y9Dc7{sn0`y4i!j~RQq#Y}mziPaY$v?6Az<-jUFTG?s_VY`Q8o z;myEQbc-6(RYSVcF)+ol%$3X^ENT5pFM?^Np(rk3tj^Y^H6l^X8_rt4Q24yq&v z)Cz=Ykw2=Y|5HrHDai?_>l^|9`6dFfrCr5;cM%A}e|HglCjWOA@!ws9dJeJ#rdjmA zy9fl~zq<%^R{ZNO)HieWGe)?+Ffn3aruntI;uliUX_i^T}JEgd|q8{bF=Z8t_wW|_;0cHE;M{|`eecFT193< zm(L9Sb}%CTeP@?rADeE-{#-LQ^u&k@Gwa94YCS`M7|BrdGy65FD zMyx7*H?rdRm!*>wsi$WSI664nO0~5X8~q?=QJeMJp>J)j&;Iae?vDATvX2&aF##_| zX%!UNwIAJVR&Vy?9BY+U&5`55Lmlq#oD^yFZrzJNc4gg()Vg|n!G3=m{T5fA&TXM^ zUKwGetTTLXq)ue(*UM{Pikj1ELa3DG-xA|PHm*Ef`RHtt*W;c%BL zxr@f1`gSn0wB6ZP$1N{D`F#0oM$FLoQ0cBwPG4-iofhk@GmlIg;t_trU z3rx&BVa<-B6$g$V z_3L|xS(-R-`Od4Mu5k<6JNhPOwwgM*_~}UYB9{~8`XDp(&1&t}^MAiNeDepxxwkhM zJPFIc>|ArmydvjD)*9#R6S_L~b~oD}8RgkJ;*VFuo5#47aF?INEM79nZxV)c;Kd6y2G)L*%Gw0(f_{FSv*c9w_s@f&k^WKc%1 zJkMOOvVLW#PGya$)odG4GJ8&enUbyg`4_jrBO z&Fv}|IkiX|mm&9)EDKX~G~Ng3+?hU3Qt5S?tFbbH2{b>G7MZb$Bbsz_7`xNjtqS8Xv7Fn{dSbXr1Y0J>BQ5 z$u=k(v7ki5ySJL&wf^$w@`~7jvM=x3Ps%fTF=l7A>ZafMZjP~EM|ZJooN1%~&3@^^ z-x!;RW!~m{Hg0J8R(pJB{ZF@EY}gQdZ_ki-Q)aQ5`>a*Hvd1nqjoBO6z$c{JgO1Cd zcS-BGZLNR*FWscd$(hO5|8isob-Q5}^0>`T!@I98FP%FhvV?upt3$W8mzh0l`@XK` zz0=_z0lwGtZprOCZ6xg+3@Ux?hFF|8YV&FCYx|>mv^vyT2R_~@b)5A zsN0F=Pa>S0_QWOcY4n+$*JqvJxjd^mTT}6K6HRC^1T`nwsSYRV-JnKl& z!aeyfH*W52+N-eVbnoJrQK{0n5$s8L7qH@j=jOyCaqf+#c(^Y12)w!4#I4Y`TlAi< zBdxbtj9QzxXSO$M{cU7SNZhJjGioi~anUW~+rG2h)qCdBtV*}p!(cD@ih>JAH)i-ayq)KByyF9#c^hRTN3!)cH6Pw! zdZ483gzb+iAzNL+n46-%CH;Su<5*Uk7^QYHGbTA{hMb_^i-6=*H?PD`$f~cLZ9DD zj*a%Xa!+zb+vVz9tI>_rfA5Jn`Y3(L@_obB9qttS>hHS)``)eG_S>q8qCDO^i5_|PP1CzYh5P>sDX%i# ztZk6)*~Q)Y-715w^Eb}E?qX~4HBFDRNjmq*v0MBQo3~ZNtw!wIG|OaO!m|ylr#wtC zSmR`O#Btw8_By;fRoQcM^|=F|e0w(7aLDtfVb9x7x+ebib&NsQvY?8tij0ZZS~d7! znYrq>4msn>ieB|B7`@`e^{#P;ejEJd=DGWaCaAqDB21eM^`-Nwed=h-ukDAr-Zhvs z`skrd)12uozO3(%e!zQ_-HEXtE}Oeu9&6h}VbeS}BI{7%4a+jsm!lV|JF8+}w_Mxo z)2-0S8>bu^!bIIx9Em?|rXN2o{;yX7^*djzd!vEvvZYoFUUV-#IH{GP?yB}LEW;lM zRR`~1Qg49k@xaqn`h9$N?>CNXIC^xzwyk*^WBwSzum#6jZPYuO$*?DnwPH+Io8w(r z>*I#(h~upoGxjK`BgYL@7tenfJ^RqOhr67gr1mgTw*6Y`^*(n;o!cG4hF=`#u_gGR z{lOWn`l?21S339%+_7)`5`7buS^rC)iw>BN{t%N(PpHJX)j~58&n|2{Y2N6A>&oD1 zcgt7(8PoHq=h6$^_qjaj=GiZI@w@()OzjUPnxxqr{M?LtzB?zf&Ca#^FXwe^SpUAu zu@`0DzdvEIOsh60X1He^7^GOB<&vIJR4{y4rHj7K!z)I4i*B^Oay6r9+xX~Q7CQo7Z?qiJady;)RNuVp0I90^)nQ59MHQ?r9jS_WPi z^RAkiAM-J!#q`19-^RA^+PQ>gEYUmh>mDVNj*&~-Yi7#pqs~X&n&tO7xWSCG=MrOw z^nbbJa;=18Q%tJwZ7I#^(WS=5*gUf4w&%?vr|5aX<>{_9Cnik%)b)JXAWQZnykncM zxgxDA|5oRG;KT`feP=W{Iy>S>@PJRpBqt-cPN-C!_XwESXL#uwhgpYq+M2dpZaOV) zr0uy={aVa1PjyS;7HN2Arx`nGy(x>l%U?|2_U(1McRKRR?|oVqmVG-o|KrNzT5)?< zoXrY6=I~}M>4QXL3?}lDHmDlKg!HQl}R2DrBe(K@)aZ1O#;XOQbZ%O6H zZXTLk@%E91T?cy1D_%M$D@K&NMzu}6I@P^NcEA3f@h5xl>b<3{VZ439wcm1#1`Z3o z)~&}Zt%dnZE^H6@Q1o!z`FoZnTdqo@d?xhlGs{$%DTPh4qo%_#CR&Y-e46y)W%j(< zNynuQUg_r5Pp5qy)S%GC%6avANn>t?^eqlI%z1EF|JIB;+_5ih3Ts|F-#px0 zR_b0~!(%5+!}(A5T+^R(eQia^mgcT^Y?dpWe;+Wp!>3VxpXLvoF`~hs155w7dFw@B z=Y@?`%@?&gKDKmHgEgZDKD!hduA|#i;uA%7RqAcMv!-FcCTmvsdD+ft_U(0#532lK z?MB{kd9eLiUQ3r1!FNWFkDpv`$A$XcE&d#Sd+OX~jpeiES=bEM+1*+HW$*F5*FQLX zLBnAeO}l}!brdOOgDwUgel?xjy`WvsvrSYpTpjnVk3H1voX76GS>3uOztfwl^)$9^ zt3zfwlTsIUubyyq_Ji_9mUjjoAD%00GlUSkY8p1HFKhcI#4Gqx?v?bSBIglqn>H=a zN^Mb7bnNZ(SawH>`@>oT%?A_{Ld?( z>C!pj7i2qXS@CJvyTRG>dRfgp_EsxBvdnJjsLK4hT9y&pt=3QZ>zvaYYc}pnxAHAM zSszC=RJ=A@Tj%7>_-uzLtwXROj@`PN4nL0U{H{l`*69zbLq#nvderH(U|f!8`P)6U z^)@veDbclSbEYbEhP+dJ^k0Fm7fhMgxBZj}w{9IOy{(-+>(kN>Ut2BHFzl{rSYmj- zvvQMmzjdx->voN<+ESXLyLRcPrKcWE335OF+J{LpZeQnG?wdW`BF7~^7&vFIirKKK zc=e~!g%;0PtBX#tcaxvVKYnhUU6SZ+OAo8WNYvACSfw-fwBwlH zm)~u)dGxQc4yEr7K5uBy{#$IX;!#!Fdsi0>4(vWEbY=Qm`x%~J z=jOIGTl>zt(cAa*Y*;ib{`SQ?ykS?!({sVCW5#dmyIn8-w|Q14T^?S!8S}gJ-P2jG zlT=Fvtdg}-%vIU1`>^=Zq-lrU6MO9T>=tv@>+Ij5LwxSHAMLDRSo{%K-IOuzDpm(Hb;(tQ2b zG1DW)emvlnu9vobPNb9Fp-UZhrHmP+ir$m4&EuKXsrES?%-NhfduL>hwXWFX_@-js z^Hne9?LJJ3Ihyfju8%uCCcD-8ykxqn>#g23>193>@7Y;wd^$7juOkaT zm7GZ^UmV*dLiLwV;NDU9Dmruy_Z=b)-)y&*-mVZG_R}<6|9zFwkbw>ndE!`ldq54)^Y61eU8UuiFx}Cw#97wth#z`W=mN` z4-LcqnuZnr20k(Q_3PM67r(r=vtg%K9ZkEBX`eZ8-6fOa1GUdFg?5UVt=@UjtBtuaE^-(1#Jd`X12qkA ze>qxLX%kX8a`*J=%46$yZP4A|WN^zWD|&Q6uc7x}o^G;ZUf~%3+7q|5?;3bKSEhQ( zbeUwDT9LB)ed4#HE^GCRc*DXMjv!6LP78mpwbALp)p{qgSNd}2u0-DHxqsw<71P74 zW=xFq9z8P5V&T>!(^9&gb5``?j&-wrb)@h9E9=5z1LS@mJlEt$^LB-=3c)|@sw6sp zHAy_;)wM^?&S&fP9t=v+f85sduzbj_R~xPS=y?pcxn7=l<&Rfx26tw*daWb-ZPe?# z7vBF}=2O^r(S)m&L)%#h?~3T~Kkkz9MAjL4aKOs>C%xwO|2!q^_7Szm_~QEg zcY54PbS7tvne<+1pA&D+dd9>URdkD7wq#Rie$}fB&R-u-sgUXW_i9sr`sl+KWsUlG z)EU;JN!t52vbO^hW9GW*RJEGx&fC?I6agzR{=Q#2MFuLf8`{@71rb>D0}_pKHp~hUTQfypcqBx$Qje@w;l#bzpoE zEP`@Fyh^WQoH?LRdTtJW;lBL1<0_cG+2TmNRVtMgM;T zMx>8FG8uT@OrwMoZ$2wKhku)?0=D&k)cx;F{wMPKdO%?H;{+dI_I5{1EqK&GSB=E1Uh{-7`$u@qz@1poe zC8F?u6I<7|4i(1g!!WL%Bhxa8wtd9G_~I{-rob!`R3)^9qg&e6O;q#5H;!n&5`T%J zjT4FKRTJ^uATRE$BV(qbEeeU~+jk7z;G*3H-O?*X&DA{G7|<=fbaDbf7cJ_1w9dqtK`G9HF~Nk2ZDD0BU&)wH`%^oTdh~RPz#@ zL5OcO#HyJt;Ee}Ri(099uDBlzpes(zqmYt8(r>NiSyOy*wQIy#dN8hBZ%0Ol3v*%m z*igIaC7y$TLx978KLAI#%`S{nKx5qQ1MCM>0Vu~814;o)080VO0LuX@04urcE{v7K zB;5WEm;#szmcmX^BG~nto+(K8zi+RNzb!FTlKf~%*zyrV;z*zu&^}YzW1h@?N6L1Bv8?XmZ z1=tJN$I0CoHx-R1>TK#<>P&hzNAFE-2hjUhWq?(H)qpjCa===^I=~#j4V0lb&Sn8_ z;{Fz(25=j22e25h1h5pa46qzPLrxp|QU-q^-48bd06hV{0m*=N+-~xXhNLIJ9Y8Nf z($gh+5Jay&&{H~dKplV)z!+cxFaXE^r%^`^AP7K@PiRPc185k_0lol7fHS}aP!F&f z<>(!<3P2@27-|bc>2V@KWYX%9C{IeL_jw{cbZvyaYySiPAVE2pl{UK0Q#a@OcN#T zaA}0@0&oC&8#5h{3P=JZ08T=OhPfMH7hoG81P}=D12h28e3S&B>7glL2Vf^)D}dyY z02=+107ZZifI;*Z8U?ta-Bf=-M*t}<0#KnsHC;qAB(7yKKZd^p&Gj@S=qnYi4?X~2 zfH%N=YrF^ZUg}EWHw94sP##eZ=>sTaQvqWoTz?oZ%8-O){!a@m4iA(p+07_))f03qqa00jjY9OcKPRUO?GzAbJ&Id_oHKbMq z04M=ypG`?c$wiA3B^QmHKV$HLD>|Qh?8A6*#&X6&JIFVH^OQ5eOfc6&&RE+9^M9Jk z?@z@)+t*`y2KxJkant0CZTkR!Nl)0QgYFRjydQE{@r5J<5(7xY6AK^-^9}SxhYx{- z_Pk$?>8#yo(nk-H0Dp*rBxAT5Ib*|2;XVObmq5=5dcHA>VqZM|x|k7?x)3I!UNGL*ay6Lw$pSP=(5mv14Mm z`F<##z-{(pS~Kf7ZGR@nZY#==S7EWoo(Imi9m3ZJud#e^@&3#sM#V)003~oW;fxK} zD3A%(l1RA)otZc-eJQs;kO^eWxwnB#P>6VFR6^Br>4F>2JYfof^;KXd)D?o>CH_L| z9+sr<$6{@iFM)pwnTdwhKH)z8M=O3*M=0c3Pput?*P}mmF*a@^M_ZSvX zNTt+CF`tW%M5%JF1bRX@`RkzFo4F@cP&}?`_Kw|gTkK_R`09cvtIu;zI1(bH2BX0Q zUJo4g^v%nX5h=VvpfB=KJOL|LI^h1psOcXd@kctN=w~hyMYUu`+yn&^$IRj`Dws6p z3>O*3oMuWm!v^TmyIi*hjE${$EY?Ru*Uc7Di~rJMyv&5| ztYmZ7xv3S7E7Zzp9iPxaj1VS92nJKbwTyu8)f|UE7iJ!D-y#qp@gS~_D~7FeEc9Fk z8-YUqi$`<$8R;cE&Di*uk5B-`E|zQE5YZRUi4m*NJqK3`44rzmxCBbZd@cYAH&6^5jvY6E=!2*?*V#OcJ+JiN>zv z-YU^b@rbVHO_DBKzUnj*;JNo2<7J)JV^b}>bDAwtqdaG6c{ zbz@vpCWP6*?Q9C~#51>sgjPZ7a4=b@VRTLgOYYYV@nj6&;D4vUt1xn(kHA6r5<_-`NRy)qP zIfAy5^KK4>XIxBktW)A~YbWm5D>`boGJ#q2F~v?icx~tBH73g7WoeM8M>@x?B@4^B zKVSj&sCv%41#I8t{8~WLn`_yEX>BK-p!WH4tX53NQxjl;b_%e)pR0tPmaZRnq6K4( zHS-?n|Lbgr@uV@^2~7;L6VFU*JJ@Sc$l3K@)jng)xN)ajBA5>_P-$OdK4hd_-Nm;S zXfY$zjZ!-s8VhGNBW0!SFX4N_hFb_(h_lzRnnyb|cjS&w^Yd11u*R{%x<O><|TZeByzh^lw%(n;xTV69g4?y-67YoUB=CT0yB(TLud-uwjIzC?j})NIaOPr!(3)O&_zz( z2Iw|dLMm^$B%;1@3{ghhPEv8?*0*6sF&r1r7R^%|`^k!(c&=MY;71OHNx$O+S%s(_p74h#>>N&KQM6lA>q5(l2$(PAiUt2 z^@1j~JddG|IVVVg|FgLR9WXAnS_>Nj$rsa`tLmJJGG}hY;j11zHsZWHGB)YfP^b;^ z`tURhm3FquoGjp56TWCdLSJcW7JeRkwR~7@W5yL6nrOsR@MPa+Eb5(K!|?g#PrH5b zoII%-&~EWyzrJ0jJhx3~ z69e@yVWJl{Iog#4{NkG% zzhy-_2w%+FiU%x;hX|r5El5xhk6aXw6@-MoPeJla7x_IPZ`4u+9r2(>@i0Pi38fK! z@#seJctU;|=D!h$hc}7`6#l4DJmRz2qU)=dSnZ_mS?X0$JjhWzs}K@JKVP)oUm~9E zC>~!35geeg@XMz04fsXYsJFE-nXB4v(4~4=Xb5;oP0T>w{_VfW);JPk{2%A znNr4>QDa%MWi z1Z_25$xLLpi>t5_y(nYubF$UUUF$wL(b+FKJG(_?SdgBJ^Oo_ElAoPBRM5}C>CLIR+{;A9&RLW5 z-JqZ#rx}(jUBG}E8vo2n0f_$O=5ruq9c%KAzR#GNc z+K;if`%b2QF9KProMPN=BI9Bq_HYK|-|xA_YZ!O8pHl(ypBadQ5FRse3Wth#%ehQt z+?{^PEHa>(X>xz=Mmpo>ppl8B@*^+dWEdZRBig}0MhF2FnBL;92LkaHVW4df#V#s2 zDLFO6FSj5oKV67L$WJVahagOa$v`}oq*A%5X{k7BItf`T*C^`yuYA7zzi6k*X(i<6 zDIzu7)x=Y#FVYeJsZpznT6r&3w#xh?Uv^c z%|S*56f-Wi!ab_g6k+59hH_5xF=_KA;?`h`tDby$#*{UTHD^8mb2MM)i8Yv{{vP*W5xgg delta 24652 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 YI-G!$?N2ewDm=|8#Eg2!Tkv1~7v3uDp#T5? diff --git a/package.json b/package.json index 261716b3..081162e3 100644 --- a/package.json +++ b/package.json @@ -26,35 +26,35 @@ "homepage": "https://github.com/NullDev/CSZ-Bot#readme", "dependencies": { "@discordjs/voice": "^0.16.0", - "@resvg/resvg-js": "^2.4.1", + "@resvg/resvg-js": "^2.6.0", "canvas": "^2.11.2", - "chrono-node": "^2.6.6", - "croner": "^7.0.1", + "chrono-node": "^2.7.0", + "croner": "^7.0.4", "discord.js": "^14.13.0", "get-audio-duration": "^4.0.1", "graphviz-wasm": "^3.0.1", "instagram-url-direct": "^1.0.13", "jsdom": "^22.1.0", - "libsodium-wrappers": "^0.7.11", + "libsodium-wrappers": "^0.7.13", "minimist": "^1.2.8", "moment": "^2.29.4", - "pino": "^8.15.0", - "sequelize": "^6.32.1", + "pino": "^8.16.1", + "sequelize": "^6.33.0", "sqlite3": "~5.1.6" }, "devDependencies": { - "@biomejs/biome": "^1.1.2", + "@biomejs/biome": "^1.3.1", "@ffprobe-installer/ffprobe": "^2.1.2", - "@types/jsdom": "^21.1.2", - "@types/minimist": "^1.2.2", - "@types/node": "^20.5.9", - "@types/node-cron": "^3.0.8", - "@types/sqlite3": "^3.1.8", - "bun": "^1.0.0", - "pino-pretty": "^10.2.0", + "@types/jsdom": "^21.1.4", + "@types/minimist": "^1.2.4", + "@types/node": "^20.8.9", + "@types/node-cron": "^3.0.10", + "@types/sqlite3": "^3.1.10", + "concurrently": "^8.2.2", + "pino-pretty": "^10.2.3", "typescript": "^5.2.2" }, "engines": { - "bun": "^1.0.0" + "node": ">=20.0.0" } } diff --git a/src/app.ts b/src/app.ts index 0c4a7901..603b973a 100644 --- a/src/app.ts +++ b/src/app.ts @@ -25,7 +25,7 @@ import * as poll from "./commands/poll.js"; import GuildRagequit from "./storage/model/GuildRagequit.js"; import reactionHandler from "./handler/reactionHandler.js"; import { - WoisData, + woisData, checkVoiceUpdate, } from "./handler/voiceStateUpdateHandler.js"; @@ -117,7 +117,7 @@ process.once("exit", code => { }); const clearWoisLogTask = () => { - WoisData.latestEvents = WoisData.latestEvents.filter( + woisData.latestEvents = woisData.latestEvents.filter( event => event.createdAt.getTime() > Date.now() - 2 * 60 * 1000, ); }; @@ -208,7 +208,10 @@ login().then( ); const scheduleCronjobs = async (context: BotContext) => { - const schedule = (pattern: string, callback: Function) => { + const schedule = ( + pattern: string, + callback: Parameters[1], + ) => { cron( pattern, { diff --git a/src/commands/command.ts b/src/commands/command.ts index cbf7f286..abfa2cc6 100644 --- a/src/commands/command.ts +++ b/src/commands/command.ts @@ -38,6 +38,7 @@ export interface UserInteraction { } // For the sake of simplicity, at the moment every command returns void +// biome-ignore lint/suspicious/noConfusingVoidType: It's ok here, since this is the return type of a promise. export type CommandResult = void; // For ApplicationCommands we require a SlashCommandBuilder object to create the command and a handler method diff --git a/src/commands/ehre.ts b/src/commands/ehre.ts index ff456927..784b67aa 100644 --- a/src/commands/ehre.ts +++ b/src/commands/ehre.ts @@ -7,6 +7,7 @@ import { SlashCommandBuilder, SlashCommandSubcommandBuilder, SlashCommandUserOption, + TextChannel, User, } from "discord.js"; @@ -131,9 +132,17 @@ export const ehreReactionHandler = { } await handleVote(invoker.id, ehrenbruder.id); - await reactionEvent.message.reply( - `${invoker} hat ${ehrenbruder} geΓ€hrt`, - ); + + const replyChannel = reactionEvent.message.channel; + const replyChannelHasSlowMode = + replyChannel.isTextBased() && + (replyChannel as TextChannel).rateLimitPerUser > 0; + + if (!replyChannelHasSlowMode) { + await reactionEvent.message.reply( + `${invoker} hat ${ehrenbruder} geΓ€hrt`, + ); + } }, }; diff --git a/src/commands/hilfe.ts b/src/commands/hilfe.ts index 21ae03aa..b9b32bb6 100644 --- a/src/commands/hilfe.ts +++ b/src/commands/hilfe.ts @@ -13,22 +13,22 @@ const getCommandMessageChunksMatchingLimit = ( const chunk: string[] = []; let index = 0; - commands - .sort((a, b) => a[0].localeCompare(b[0])) - .forEach(value => { - if ( - chunk[index] && - chunk[index].length + (value[0].length + value[1].length + 10) > - 2000 - ) { - chunk[index] += "```"; - ++index; - } - if (!chunk[index]) { - chunk[index] = "```css\n"; - } - chunk[index] += `${value[0]}: ${value[1]}\n\n`; - }); + // TODO: Use toSorted once Node.js's types have it + const sortedCommands = commands.sort((a, b) => a[0].localeCompare(b[0])); + for (const value of sortedCommands) { + if ( + chunk[index] && + chunk[index].length + (value[0].length + value[1].length + 10) > + 2000 + ) { + chunk[index] += "```"; + ++index; + } + if (!chunk[index]) { + chunk[index] = "```css\n"; + } + chunk[index] += `${value[0]}: ${value[1]}\n\n`; + } chunk[index] += "```"; @@ -74,12 +74,11 @@ export const run: CommandFunction = async ( } // New Class-based commands - messageCommands - .filter(cmd => !cmd.modCommand) - .forEach(cmd => { - const commandStr = context.prefix.command + cmd.name; - commandObj[commandStr] = cmd.description; - }); + const userCommands = messageCommands.filter(cmd => !cmd.modCommand); + for (const cmd of userCommands) { + const commandStr = context.prefix.command + cmd.name; + commandObj[commandStr] = cmd.description; + } await message.author.send( `Hallo, ${message.author.username}!\n\nHier ist eine Liste mit Commands:\n\nBei Fragen kannst du dich ΓΌber den Kanal #czs-Bot (<#902960751222853702>) an uns wenden!`, diff --git a/src/commands/info.ts b/src/commands/info.ts index 8e1d8f25..dfd97fbd 100644 --- a/src/commands/info.ts +++ b/src/commands/info.ts @@ -31,7 +31,7 @@ const fetchLanguages = async (): Promise> => { headers: { Accept: "application/vnd.github.v3+json" }, }, ); - return Object.keys((await res.json()) as {}); + return Object.keys((await res.json()) as object); }; const getContributors = async (): Promise => { diff --git a/src/commands/modcommands/ban.ts b/src/commands/modcommands/ban.ts index 917cad36..e4c57417 100644 --- a/src/commands/modcommands/ban.ts +++ b/src/commands/modcommands/ban.ts @@ -139,7 +139,7 @@ export const ban = async ( reason: string, isSelfBan: boolean, duration?: number, -): Promise => { +) => { log.debug( `Banning ${member.id} by ${banInvoker.id} because of ${reason} for ${duration}.`, ); diff --git a/src/commands/poll.ts b/src/commands/poll.ts index fa86145f..5866a9fa 100644 --- a/src/commands/poll.ts +++ b/src/commands/poll.ts @@ -195,7 +195,7 @@ export const run: CommandFunction = async (_client, message, args, context) => { const finishTime = new Date(new Date().valueOf() + delayTime * 60 * 1000); if (options.delayed) { - if (isNaN(delayTime) || delayTime <= 0) { + if (Number.isNaN(delayTime) || delayTime <= 0) { return "Bruder keine ungΓΌltigen Zeiten angeben πŸ™„"; } else if (delayTime > 60 * 1000 * 24 * 7) { return "Bruder du kannst maximal 7 Tage auf ein Ergebnis warten πŸ™„"; @@ -238,6 +238,8 @@ export const run: CommandFunction = async (_client, message, args, context) => { if (options.delayed) { const reactionMap: string[] = []; const reactions: string[][] = []; + + // biome-ignore lint/complexity/noForEach: We need the index here pollOptions.forEach((option, index) => { reactionMap[index] = option; reactions[index] = []; @@ -266,14 +268,13 @@ export const run: CommandFunction = async (_client, message, args, context) => { export const importPolls = async () => { const additionalDatas = await AdditionalMessageData.findAll(); let count = 0; - additionalDatas.forEach(additionalData => { + for (const additionalData of additionalDatas) { if (!additionalData.customData.delayedPollData) { - return; + continue; } - delayedPolls.push(additionalData.customData.delayedPollData); count++; - }); + } log.info(`Loaded ${count} polls from database`); }; diff --git a/src/commands/special/linkEnhancer.ts b/src/commands/special/linkEnhancer.ts new file mode 100644 index 00000000..c48ff7d9 --- /dev/null +++ b/src/commands/special/linkEnhancer.ts @@ -0,0 +1,139 @@ +import type { Client } from "discord.js"; + +import type { ProcessableMessage } from "../../handler/cmdHandler.js"; +import type { SpecialCommand, CommandResult } from "../command.js"; + +type LinkConfig = { + redirectTo?: string; + enhanceEmbed?: string; +}; + +type LinkReplacementResult = { + redirects: string[]; + enhancedEmbeds: string[]; +}; + +const linkMap: Record = { + // "reddit.com": { redirectTo: "teddit.adminforge.de" }, + // "old.reddit.com": { redirectTo: "teddit.adminforge.de" }, + // "tiktok.com": { redirectTo: "proxitok.pabloferreiro.es" }, + // "tiktok.com": { redirectTo: "tok.timewaste.kellertreff.com" }, + + "twitter.com": { + redirectTo: "nitter.adminforge.de", + enhanceEmbed: "fxtwitter.com", + }, + "instagram.com": { + enhanceEmbed: "instagramez.com", + }, + "x.com": { redirectTo: "nitter.adminforge.de", enhanceEmbed: "fixupx.com" }, + // "twitter.com": { redirectTo: "nitter.timewaste.kellertreff.com" }, + // "x.com": { redirectTo: "nitter.timewaste.kellertreff.com" }, + + "medium.com": { redirectTo: "scribe.rip" }, + "quora.com": { redirectTo: "quetre.iket.me" }, +}; + +export class LinkEnhancer implements SpecialCommand { + name = "LinkEnhancer"; + description = "Macht ein paar doofe Links zu tollen Links"; + randomness = 1; + cooldownTime = 0; + + matches(message: ProcessableMessage): boolean { + const domains = Object.keys(linkMap); + const content = message.content.toLowerCase(); + return domains.some( + domain => + content.includes(`https://${domain}`) || + content.includes(`https://www.${domain}`), + ); + } + + async handleSpecialMessage( + message: ProcessableMessage, + _client: Client, + ): Promise { + const urls = message.content + .toLowerCase() + .split(" ") + .filter(word => word.startsWith("https://")); + if (urls.length === 0) return; + + const matchingConfigs = Object.fromEntries( + Object.entries(linkMap).filter(([domain]) => { + return urls.some(url => url.startsWith(`https://${domain}`)); + }), + ); + + if (matchingConfigs === undefined) return; + + const enhancedUrls = this.enhanceAllUrls(urls, matchingConfigs); + + if ( + enhancedUrls.enhancedEmbeds.length === 0 && + enhancedUrls.redirects.length === 0 + ) + // Workaround for archive.org links like https://web.archive.org/*/https://www.reddit.com/r/* + // We could tweak the matches function instead. + return; + + const redirects = enhancedUrls.redirects.map(u => `<${u}>`).join("\n"); + const enhancedEmbeds = enhancedUrls.enhancedEmbeds.join("\n"); + const msg = `Public Service Announcement fΓΌr nicht krebsige Links:\n${ + redirects.length > 0 ? `${redirects}\n` : "" + }${enhancedEmbeds}`; + await message.reply({ + content: msg, + allowedMentions: { repliedUser: false }, + }); + + if (enhancedEmbeds.length > 0) { + // If we have enhanced embeds, we can suppress the original embeds. + // However it is possible, that the user posted more embeds than we enhanced. + // Don't care lol. + await message.suppressEmbeds(); + } + } + + private enhanceAllUrls( + urls: string[], + config: Record, + ): LinkReplacementResult { + const redirects: string[] = []; + const enhancedEmbeds: string[] = []; + + for (const url of urls) { + const domain = url.split("/")[2]; + const urlConfig = config[domain]; + if (urlConfig === undefined) { + continue; + } + + const redirectTo = urlConfig.redirectTo; + const enhancedEmbed = urlConfig.enhanceEmbed; + + if (redirectTo !== undefined) + redirects.push(this.enhanceUrl(url, domain, redirectTo)); + + if (enhancedEmbed !== undefined) { + enhancedEmbeds.push( + this.enhanceUrl(url, domain, enhancedEmbed), + ); + } + } + + return { redirects, enhancedEmbeds }; + } + + private enhanceUrl( + url: string, + suckyhost: string, + enhancedHost: string, + ): string { + return url.replace( + new RegExp(`https:\/\/(www\.)?${suckyhost}`), + `https://${enhancedHost}`, + ); + } +} diff --git a/src/commands/special/linkRedirect.ts b/src/commands/special/linkRedirect.ts deleted file mode 100644 index 985e04db..00000000 --- a/src/commands/special/linkRedirect.ts +++ /dev/null @@ -1,75 +0,0 @@ -import type { Client } from "discord.js"; - -import type { ProcessableMessage } from "../../handler/cmdHandler.js"; -import type { SpecialCommand, CommandResult } from "../command.js"; - -const linkMap: Record = { - // "reddit.com": "teddit.adminforge.de", - // "old.reddit.com": "teddit.adminforge.de", - "tiktok.com": "proxitok.pabloferreiro.es", - // "twitter.com": "nitter.adminforge.de", - "medium.com": "scribe.rip", - "quora.com": "quetre.iket.me", -}; - -export class LinkRedirect implements SpecialCommand { - name = "LinkRedirect"; - description = "Macht ein paar doofe Links zu tollen Links"; - randomness = 1; - cooldownTime = 0; - - matches(message: ProcessableMessage): boolean { - const domains = Object.keys(linkMap); - const content = message.content.toLowerCase(); - return domains.some( - domain => - content.includes(`https://${domain}`) || - content.includes(`https://www.${domain}`), - ); - } - - async handleSpecialMessage( - message: ProcessableMessage, - _client: Client, - ): Promise { - const urls = message.content - .toLowerCase() - .split(" ") - .filter(word => word.startsWith("https://")); - if (urls.length === 0) return; - - const replacedUrls = urls - .map(this.tryReplaceUrl) - .filter((url): url is string => url !== undefined); - - // Workaround for archive.org links like https://web.archive.org/*/https://www.reddit.com/r/* - // We could tweak the matches function instead. - if (replacedUrls.length === 0) return; - - const msg = `Public Service Announcement fΓΌr nicht krebsige Links:\n${replacedUrls - .map(u => `<${u}>`) - .join("\n")}`; - await message.reply({ - content: msg, - allowedMentions: { repliedUser: false }, - }); - } - - private tryReplaceUrl(url: string): string | undefined { - const domains = Object.keys(linkMap); - const domain = domains.find( - d => - url.startsWith(`https://${d}`) || - url.startsWith(`https://www.${d}`), - ); - if (!domain) return; - - const replacement = linkMap[domain]; - if (!replacement) return; - - return url.replace( - new RegExp(`https:\/\/(www\.)?${domain}`), - `https://${replacement}`, - ); - } -} diff --git a/src/commands/woislog.ts b/src/commands/woislog.ts index 12e50889..9a556bb2 100644 --- a/src/commands/woislog.ts +++ b/src/commands/woislog.ts @@ -1,7 +1,7 @@ import { CommandInteraction, SlashCommandBuilder } from "discord.js"; import type { ApplicationCommand, CommandResult } from "./command.js"; -import { WoisData } from "../handler/voiceStateUpdateHandler.js"; +import { woisData } from "../handler/voiceStateUpdateHandler.js"; export class WoisLog implements ApplicationCommand { name = "woislog"; @@ -14,7 +14,7 @@ export class WoisLog implements ApplicationCommand { async handleInteraction( command: CommandInteraction, ): Promise { - const latestEvents = WoisData.latestEvents.filter(event => { + const latestEvents = woisData.latestEvents.filter(event => { return event.createdAt.getTime() > Date.now() - 2 * 60 * 1000; }); diff --git a/src/handler/aprilFoolsHandler.ts b/src/handler/aprilFoolsHandler.ts index 89d27671..62c55ec0 100644 --- a/src/handler/aprilFoolsHandler.ts +++ b/src/handler/aprilFoolsHandler.ts @@ -39,9 +39,9 @@ const createShuffledNicknames = async ( members: Collection, ): Promise> => { const shuffledNicknames: Record = {}; - Array.from(members.entries()).forEach(([id, member]) => { + for (const [id, member] of members.entries()) { tmpNicknameStore[id] = member.displayName; - }); + } const averageCockSize: Record = await Penis.getAveragePenisSizes(); diff --git a/src/handler/cmdHandler.ts b/src/handler/cmdHandler.ts index 242c3ef0..6f0aea5c 100644 --- a/src/handler/cmdHandler.ts +++ b/src/handler/cmdHandler.ts @@ -83,7 +83,12 @@ export default async function ( const commandPath = path.join(commandDir, commandFile); - const usedCommand = (await import(commandPath)) as { + // We need a file:// URL because in windows, paths begin with a drive letter, + // which is interpreted as the protocol. + const commandModuleUrl = new URL("file://"); + commandModuleUrl.pathname = commandPath; + + const usedCommand = (await import(commandModuleUrl.toString())) as { run: CommandFunction; description: string; }; diff --git a/src/handler/commandHandler.ts b/src/handler/commandHandler.ts index d439f5ef..457268a6 100644 --- a/src/handler/commandHandler.ts +++ b/src/handler/commandHandler.ts @@ -65,7 +65,6 @@ import { ErinnerungCommand } from "../commands/erinnerung.js"; import { YoinkCommand } from "../commands/yoink.js"; import { isProcessableMessage, ProcessableMessage } from "./cmdHandler.js"; import { EmoteSenderCommand } from "../commands/special/emoteSender.js"; -import { InstagramLink } from "../commands/special/instagram.js"; import { OidaCommand } from "../commands/oida.js"; import { DeOidaCommand } from "../commands/deoida.js"; import { EhreCommand } from "../commands/ehre.js"; @@ -76,7 +75,7 @@ import { WoisCommand } from "../commands/woisvote.js"; import { ApplicationCommandCreationResponse } from "../types.js"; // import { AoCCommand } from "../commands/aoc.js"; import { BanListCommand } from "../commands/banlist.js"; -import { LinkRedirect } from "../commands/special/linkRedirect.js"; +import { LinkEnhancer } from "../commands/special/linkEnhancer.js"; import { Vote2Command } from "../commands/vote2.js"; const config = getConfig(); @@ -119,13 +118,13 @@ export const commands: readonly Command[] = [ new ErinnerungCommand(), new YoinkCommand(), new EmoteSenderCommand(), - new InstagramLink(), + // Broken: new InstagramLink(), new OidaCommand(), new DeOidaCommand(), new EhreCommand(), // new AoCCommand(), new BanListCommand(), - new LinkRedirect(), + new LinkEnhancer(), new Vote2Command(), ]; export const interactions: readonly UserInteraction[] = [ @@ -140,6 +139,7 @@ export const specialCommands = commands.filter(isSpecialCommand); const lastSpecialCommands: Record = specialCommands.reduce( + // biome-ignore lint/performance/noAccumulatingSpread: Whatever this does, someone wrote pretty cool code (acc, cmd) => ({ ...acc, [cmd.name]: 0 }), {}, ); diff --git a/src/handler/reactionHandler.ts b/src/handler/reactionHandler.ts index 466aad97..f652cc8e 100644 --- a/src/handler/reactionHandler.ts +++ b/src/handler/reactionHandler.ts @@ -95,11 +95,12 @@ export default { if (isStrawpoll) { if (isDelayedPoll) { - delayedPoll.reactions.forEach(reactionList => { + for (const reactionList of delayedPoll.reactions) { + // biome-ignore lint/complexity/noForEach: We need the index here reactionList.forEach((x, i) => { if (x === member.id) reactionList.splice(i); }); - }); + } const delayedPollReactions = delayedPoll.reactions[pollEmojis.indexOf(reactionName)]; delayedPollReactions.push(member.id); diff --git a/src/handler/voiceStateUpdateHandler.ts b/src/handler/voiceStateUpdateHandler.ts index 555a4b6b..674929ac 100644 --- a/src/handler/voiceStateUpdateHandler.ts +++ b/src/handler/voiceStateUpdateHandler.ts @@ -11,9 +11,9 @@ export interface VoiceUpdateEvent { createdAt: Date; } -export class WoisData { - static latestEvents: VoiceUpdateEvent[] = []; -} +export const woisData = { + latestEvents: [] as VoiceUpdateEvent[], +}; export async function checkVoiceUpdate( oldState: VoiceState, @@ -27,7 +27,7 @@ export async function checkVoiceUpdate( // User joined Channel if (oldState.channel === null && newState.channel !== null) { if (newState.channelId === config.ids.haupt_woischat) { - WoisData.latestEvents.push({ + woisData.latestEvents.push({ oldState, newState, createdAt: new Date(), @@ -39,7 +39,7 @@ export async function checkVoiceUpdate( if (oldState.channel !== null && newState.channel === null) { if (newState.channelId === config.ids.haupt_woischat) { // Add to latest events - WoisData.latestEvents.push({ + woisData.latestEvents.push({ oldState, newState, createdAt: new Date(), diff --git a/src/storage/model/Nickname.ts b/src/storage/model/Nickname.ts index 288bad36..b1f94316 100644 --- a/src/storage/model/Nickname.ts +++ b/src/storage/model/Nickname.ts @@ -60,6 +60,7 @@ export default class Nickname extends Model { return nicknames.reduce( (acc, cur) => ({ // Das ding + // biome-ignore lint/performance/noAccumulatingSpread: This should be ok. ...acc, // VV [cur.userId]: [...(acc[cur.userId] ?? []), cur.nickName], }), diff --git a/src/types.d.ts b/src/types.d.ts index 32c0e498..1b0cbc31 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -6,6 +6,7 @@ import type { ProcessableMessage } from "./handler/cmdHandler.js"; /** * A string denotes the response to the message (for example a business error). */ +// biome-ignore lint/suspicious/noConfusingVoidType: It's ok here, since this is the return type of a promise. export type CommandResult = string | void; export type CommandFunction = ( From 865e3c2d4a57e0f93891f37439d0492a59b90dc3 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Fri, 19 Jan 2024 16:50:32 +0100 Subject: [PATCH 09/17] Add permissions --- .github/workflows/CI.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2130d39d..45652bbb 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -15,6 +15,9 @@ jobs: name: Lint runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: - uses: actions/checkout@v4 with: From 663db23793da8cbe42b14ebca98116afeba80a04 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Fri, 19 Jan 2024 16:52:38 +0100 Subject: [PATCH 10/17] GH Action does not support bun cache --- .github/workflows/CI.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 45652bbb..20de10ec 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -27,7 +27,6 @@ jobs: - uses: actions/setup-node@v4 with: node-version: '20' - cache: npm - run: npm ci - run: npm run ci From 9c513c59e884732066374d9adafa6ef615b24b71 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Fri, 19 Jan 2024 16:55:36 +0100 Subject: [PATCH 11/17] setup-node -> setup-bun --- .github/workflows/CI.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 20de10ec..981aeaab 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -24,11 +24,11 @@ jobs: show-progress: false fetch-depth: 0 - - uses: actions/setup-node@v4 + - uses: oven-sh/setup-bun@v1 with: - node-version: '20' + bun-version: latest - - run: npm ci + - run: bun install - run: npm run ci build: From 9d33ff60292c609f05594ccdad9ce535ab15e2a5 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Sun, 17 Mar 2024 23:01:38 +0100 Subject: [PATCH 12/17] Fix formatting --- .editorconfig | 4 ++ package.json | 118 +++++++++++++++++++++++++------------------------- 2 files changed, 63 insertions(+), 59 deletions(-) diff --git a/.editorconfig b/.editorconfig index 67399f0a..3d3bd55d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,3 +9,7 @@ trim_trailing_whitespace = true [*.{js,ts}] indent_style = space indent_size = 4 + +[package.json] +indent_style = space +indent_size = 2 diff --git a/package.json b/package.json index 116c441d..f61dfa66 100644 --- a/package.json +++ b/package.json @@ -1,61 +1,61 @@ { - "name": "csz-bot", - "private": true, - "version": "0.1.0", - "description": "Offizieller Bot der Coding Shitpost Zentrale", - "module": "src/app.ts", - "type": "module", - "scripts": { - "start": "bun src/app.ts", - "test": "tsc --noEmit", - "ci": "biome ci ./", - "format": "biome format --write ./", - "lint": "biome lint ./", - "lint:fix": "biome lint --apply ./", - "watch": "bun --watch src/app.ts" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/NullDev/CSZ-Bot.git" - }, - "author": "Users of the CSZ", - "license": "MIT", - "bugs": { - "url": "https://github.com/NullDev/CSZ-Bot/issues" - }, - "homepage": "https://github.com/NullDev/CSZ-Bot#readme", - "dependencies": { - "@discordjs/voice": "^0.16.1", - "@napi-rs/canvas": "^0.1.51", - "@resvg/resvg-js": "^2.6.0", - "chrono-node": "^2.7.5", - "croner": "^8.0.1", - "discord.js": "^14.14.1", - "get-audio-duration": "^4.0.1", - "graphviz-wasm": "^3.0.1", - "instagram-url-direct": "^1.0.13", - "jsdom": "^24.0.0", - "libsodium-wrappers": "^0.7.13", - "minimist": "^1.2.8", - "moment": "^2.30.1", - "pino": "^8.19.0", - "sequelize": "^6.37.1", - "splid-js": "^1.1.1", - "sqlite3": "~5.1.7" - }, - "devDependencies": { - "@biomejs/biome": "^1.6.1", - "@ffprobe-installer/ffprobe": "^2.1.2", - "@types/jsdom": "^21.1.6", - "@types/minimist": "^1.2.5", - "@types/node": "^20.11.28", - "@types/node-cron": "^3.0.11", - "@types/sqlite3": "^3.1.11", - "concurrently": "^8.2.2", - "pino-pretty": "^10.3.1", - "typescript": "^5.4.2" - }, - "engines": { - "node": ">=21.1.0" - } + "name": "csz-bot", + "private": true, + "version": "0.1.0", + "description": "Offizieller Bot der Coding Shitpost Zentrale", + "module": "src/app.ts", + "type": "module", + "scripts": { + "start": "bun src/app.ts", + "test": "tsc --noEmit", + "ci": "biome ci ./src", + "format": "biome format --write ./src", + "lint": "biome lint ./", + "lint:fix": "biome lint --apply ./src", + "watch": "bun --watch src/app.ts" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/NullDev/CSZ-Bot.git" + }, + "author": "Users of the CSZ", + "license": "MIT", + "bugs": { + "url": "https://github.com/NullDev/CSZ-Bot/issues" + }, + "homepage": "https://github.com/NullDev/CSZ-Bot#readme", + "dependencies": { + "@discordjs/voice": "^0.16.1", + "@napi-rs/canvas": "^0.1.51", + "@resvg/resvg-js": "^2.6.0", + "chrono-node": "^2.7.5", + "croner": "^8.0.1", + "discord.js": "^14.14.1", + "get-audio-duration": "^4.0.1", + "graphviz-wasm": "^3.0.1", + "instagram-url-direct": "^1.0.13", + "jsdom": "^24.0.0", + "libsodium-wrappers": "^0.7.13", + "minimist": "^1.2.8", + "moment": "^2.30.1", + "pino": "^8.19.0", + "sequelize": "^6.37.1", + "splid-js": "^1.1.1", + "sqlite3": "~5.1.7" + }, + "devDependencies": { + "@biomejs/biome": "^1.6.1", + "@ffprobe-installer/ffprobe": "^2.1.2", + "@types/jsdom": "^21.1.6", + "@types/minimist": "^1.2.5", + "@types/node": "^20.11.28", + "@types/node-cron": "^3.0.11", + "@types/sqlite3": "^3.1.11", + "concurrently": "^8.2.2", + "pino-pretty": "^10.3.1", + "typescript": "^5.4.2" + }, + "engines": { + "node": ">=21.1.0" + } } From 1a4fe55b24f51cd9a3e104f21b025ba1ef9d1922 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Sun, 17 Mar 2024 23:08:15 +0100 Subject: [PATCH 13/17] Remove native deps --- Dockerfile | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0c5db09d..be8a8b85 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,11 @@ -FROM oven/bun:latest as dependency-base +FROM oven/bun:latest as runtime-dependencies WORKDIR /app - RUN apt-get update -yqq \ - && apt-get install -yqq \ - python3 build-essential pkg-config \ - && apt-get clean -yqqq - -FROM dependency-base as runtime-dependencies RUN --mount=type=bind,source=package.json,target=package.json \ --mount=type=bind,source=bun.lockb,target=bun.lockb \ + --mount=type=cache,target=/root/.bun/install/cache \ NODE_ENV=production bun install -FROM node:21-slim +FROM oven/bun:latest WORKDIR /app RUN apt-get update -yqqq \ && apt-get install -yqqq \ From 2dd0e1ff595b497ee6e96d6ec33ae09fcd5524db Mon Sep 17 00:00:00 2001 From: holzmaster Date: Sun, 17 Mar 2024 23:09:25 +0100 Subject: [PATCH 14/17] Remove unused file --- src/utils/configHandler.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/utils/configHandler.ts b/src/utils/configHandler.ts index e403852c..64285157 100644 --- a/src/utils/configHandler.ts +++ b/src/utils/configHandler.ts @@ -4,9 +4,6 @@ import * as path from "node:path"; import log from "../utils/logger.js"; import type { Config } from "../types.js"; -const packageFile = JSON.parse( - fs.readFileSync(path.resolve("package.json"), "utf-8"), -); const configPath = path.resolve("config.json"); export const getConfig = () => { From 5c53a3516cc3946ae0d546b1e15a60245a2b4d32 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Sun, 17 Mar 2024 23:32:51 +0100 Subject: [PATCH 15/17] Fancier init --- src/app.ts | 16 +++++++++++----- src/terminal.ts | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 src/terminal.ts diff --git a/src/app.ts b/src/app.ts index 79470196..e205386b 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,8 +1,6 @@ import * as Discord from "discord.js"; import { type Message, - MessageReaction, - User, type VoiceState, GatewayIntentBits, Partials, @@ -50,15 +48,23 @@ import { import { AoCHandler } from "./commands/aoc.js"; import { rotate } from "./helper/bannerCarusel.js"; import deleteThreadMessagesHandler from "./handler/deleteThreadMessagesHandler.js"; +import * as terminal from "./terminal.js"; const args = process.argv.slice(2); +const prodMode = + process.env.NODE_ENV === "production" + ? ` ${terminal.highlightWarn(" production ")} mode` + : ""; + +const cszBot = terminal.highlight(" CSZ Bot "); + console.log( // biome-ignore lint/style/useTemplate: Seems to be more readable this way "\n" + - " β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n" + - ` β”‚ CSZ Bot β”‚ Copyright (c) ${new Date().getFullYear()} Users of the CSZ\n` + - " β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n", + " β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n" + + ` β”‚ ${cszBot} β”‚ Copyright (c) ${new Date().getFullYear()} Users of the CSZ\n` + + ` β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜${prodMode}\n`, ); let botContext: BotContext; diff --git a/src/terminal.ts b/src/terminal.ts new file mode 100644 index 00000000..be230b9d --- /dev/null +++ b/src/terminal.ts @@ -0,0 +1,17 @@ +const color = { + whiteBright: (s: string) => `\u001B[97m${s}\u001B[39m`, + bgRed: (s: string) => `\u001B[41m${s}\u001B[49m`, + bgYellow: (s: string) => `\u001B[43m${s}\u001B[49m`, + bgCyan: (s: string) => `\u001B[46m${s}\u001B[49m`, + black: (s: string) => `\u001B[30m${s}\u001B[39m`, +}; + +export function highlight(s: string): string { + return color.bgCyan(color.whiteBright(s)); +} +export function highlightError(s: string) { + return color.whiteBright(color.bgRed(s)); +} +export function highlightWarn(s: string) { + return color.black(color.bgYellow(s)); +} From 73fe1fcc7f0aa3ede82fdae26a16dba7c87c5889 Mon Sep 17 00:00:00 2001 From: holzmaster Date: Sun, 17 Mar 2024 23:39:50 +0100 Subject: [PATCH 16/17] Move bot context away from db init --- src/app.ts | 2 +- src/storage/storage.ts | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/app.ts b/src/app.ts index e205386b..05d2fb04 100644 --- a/src/app.ts +++ b/src/app.ts @@ -261,7 +261,7 @@ client.once("ready", async initializedClient => { botContext = await createBotContext(initializedClient); console.assert(!!botContext, "Bot context should be available"); // TODO: Remove once botContext is used - await storage.initialize(botContext); + await storage.initialize(botContext.databasePath); await scheduleCronjobs(botContext); diff --git a/src/storage/storage.ts b/src/storage/storage.ts index 88698115..ef972f4d 100644 --- a/src/storage/storage.ts +++ b/src/storage/storage.ts @@ -13,15 +13,14 @@ import Boob from "./model/Boob.js"; import Reminder from "./model/Reminder.js"; import AustrianTranslation from "./model/AustrianTranslation.js"; import { EhrePoints, EhreVotes } from "./model/Ehre.js"; -import type { BotContext } from "../context.js"; import WoisAction from "./model/WoisAction.js"; import SplidGroup from "./model/SplidGroup.js"; import SplidLink from "./model/SplidLink.js"; -export async function initialize(botContext: BotContext) { +export async function initialize(databasePath: string) { const sequelize = new Sequelize({ dialect: "sqlite", - storage: botContext.databasePath, + storage: databasePath, logQueryParameters: true, logging: sql => { // currently way too noisy because of the fading messages From 11ca0e14b743d3d3af2c254c35cf0208cf13f41f Mon Sep 17 00:00:00 2001 From: holzmaster Date: Sun, 17 Mar 2024 23:51:05 +0100 Subject: [PATCH 17/17] Uff --- a.mjs | 93 ----------------------------------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 a.mjs diff --git a/a.mjs b/a.mjs deleted file mode 100644 index e182f8a3..00000000 --- a/a.mjs +++ /dev/null @@ -1,93 +0,0 @@ -import { SplidClient } from "splid-js"; -const client = new SplidClient({ - installationId: "b65aa4f8-b6d5-4b51-9df6-406ce2026b32", // TODO: Move to config -}); - -const vpn = "18Z4VJLPB"; -const summit = "3AN4J72K5"; -const mehner = "LJVDLBFU2"; -const inviteCode = mehner; -const groupRes = await client.group.getByInviteCode(inviteCode); - -const groupInfoRes = await client.groupInfo.getByGroup( - groupRes.result.objectId, -); -console.log(groupInfoRes.result.results); - -const membersRes = await client.person.getByGroup(groupRes.result.objectId); - -const members = membersRes.result.results.map(p => ({ - name: p.name, - initials: p.initials, - globalId: p.GlobalId, - objectId: p.objectId, -})); -const membersMap = new Map(members.map(m => [m.globalId, m])); -const balanceMatrix = new Map( - members.map(m => [m.globalId, new Map(members.map(m => [m.globalId, 0]))]), -); - -const entriesRes = await client.entry.getByGroup(groupRes.result.objectId); -const entries = entriesRes.result.results; -console.log(entries); -for (const entry of entries) { - // console.log(entry); - const primaryPayer = membersMap.get(entry.primaryPayer); - - for (const item of entry.items) { - const partsMembers = item.P?.P; - if (!partsMembers) { - console.warn("No partsMembers"); - console.warn(item); - continue; - } - - const amount = item.AM; - if (!amount) { - console.warn("No amount"); - console.warn(item); - continue; - } - - // console.log(partsMembers); - // console.log(item); - - console.log( - `${primaryPayer.name} paid for "${entry.title}" ${amount} ${entry.currencyCode} (${entry.isPayment})`, - ); - - for (const [memberId, parts] of Object.entries(partsMembers)) { - const member = membersMap.get(memberId); - console.log( - `${primaryPayer.name} paid for ${member.name} ${ - amount * parts * (entry.isPayment ? 1 : -1) - } ${entry.currencyCode}`, - ); - - const balanceRow = balanceMatrix.get(primaryPayer.globalId); - const memberBalanceForPayer = balanceRow.get(member.globalId); - balanceRow.set( - member.globalId, - memberBalanceForPayer + amount * parts, - ); - } - } - console.log("---------------"); -} - -console.log(balanceMatrix); -console.log(computeAccountBalances(balanceMatrix)); - -function computeAccountBalances(balanceMatrix) { - const balances = {}; - for (const member of members) { - let balance = 0; - for (const [otherId, payed] of balanceMatrix.entries()) { - const otherBalance = payed.get(member.globalId); - balance -= otherBalance; // other payed for me - balance += balanceMatrix.get(member.globalId).get(otherId); // me payed for him - } - balances[member.globalId] = balance; - } - return balances; -}