├── .dockerignore ├── .env.example ├── .gitattributes ├── .github └── workflows │ └── codeql-analysis.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── SECURITY.md ├── docker-compose.yml ├── package.json ├── src ├── config.ts └── index.ts ├── tsconfig.json └── yarn.lock /.dockerignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Diagnostic reports (https://nodejs.org/api/report.html) 6 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 7 | 8 | # Dependency directories 9 | node_modules/ 10 | 11 | # TypeScript cache 12 | *.tsbuildinfo 13 | 14 | # dotenv environment variables file 15 | .env 16 | .env* 17 | 18 | # Build output 19 | dist 20 | 21 | # Docker files 22 | Dockerfile 23 | docker-compose.yml 24 | .dockerignore -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | DISCORD_TOKEN='YOUR_DISCORD_TOKEN_HERE' -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ main ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ main ] 20 | schedule: 21 | - cron: '22 6 * * 5' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | permissions: 28 | actions: read 29 | contents: read 30 | security-events: write 31 | 32 | strategy: 33 | fail-fast: false 34 | matrix: 35 | language: [ 'javascript' ] 36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] 37 | # Learn more: 38 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed 39 | 40 | steps: 41 | - name: Checkout repository 42 | uses: actions/checkout@v2 43 | 44 | # Initializes the CodeQL tools for scanning. 45 | - name: Initialize CodeQL 46 | uses: github/codeql-action/init@v1 47 | with: 48 | languages: ${{ matrix.language }} 49 | # If you wish to specify custom queries, you can do so here or in a config file. 50 | # By default, queries listed here will override any specified in a config file. 51 | # Prefix the list here with "+" to use these queries and those in the config file. 52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 53 | 54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 55 | # If this step fails, then you should remove it and run the build manually (see below) 56 | - name: Autobuild 57 | uses: github/codeql-action/autobuild@v1 58 | 59 | # ℹ️ Command-line programs to run using the OS shell. 60 | # 📚 https://git.io/JvXDl 61 | 62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 63 | # and modify them (or add more) to build your code if your project 64 | # uses a compiled language 65 | 66 | #- run: | 67 | # make bootstrap 68 | # make release 69 | 70 | - name: Perform CodeQL Analysis 71 | uses: github/codeql-action/analyze@v1 72 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env* 73 | !.env.example 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:lts-alpine AS builder 2 | WORKDIR /var/bot 3 | 4 | COPY package.json yarn.lock ./ 5 | RUN yarn install --frozen-lockfile && yarn cache clean 6 | 7 | COPY . . 8 | 9 | RUN yarn build 10 | 11 | # RUNNER 12 | FROM node:lts-alpine AS runner 13 | WORKDIR /var/bot 14 | 15 | COPY package.json yarn.lock ./ 16 | ARG NODE_ENV=production 17 | RUN yarn install --frozen-lockfile && yarn cache clean 18 | 19 | COPY --from=builder /var/bot/dist/ ./ 20 | 21 | RUN adduser -S bot 22 | USER bot 23 | 24 | ENTRYPOINT [ "node", "index.js" ] -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Bruno Silva 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # discord-bot-typescript-boilerplate 2 | 3 | 🤖 NODE.TS - Start your next discord bot project in seconds. 4 | 5 | ## Installation 6 | 7 | Clone project 8 | 9 | ``` 10 | git clone git@github.com:BrunoS3D/discord-bot-typescript-boilerplate.git your-app-name 11 | cd your-app-name 12 | ``` 13 | 14 | Install dependencies 15 | 16 | ```sh 17 | yarn install # or just yarn 18 | ``` 19 | 20 | Create environment variable files `.env` and `.env.dev` based on [.env.example](./.env.example) on project root folder 21 | 22 | ```bash 23 | # linux / macOS 24 | cp .env.example .env 25 | cp .env.example .env.dev 26 | ``` 27 | 28 | ```bash 29 | # windows 30 | copy .env.example .env 31 | copy .env.example .env.dev 32 | ``` 33 | 34 | ## Running on development environment 35 | 36 | > ⚠ Remember to follow the [Installation](#Installation) steps before proceeding 37 | 38 | Running the bot 39 | 40 | ```sh 41 | yarn dev # or cross-env NODE_ENV=development env-cmd -f .env.dev tsnd --transpile-only --respawn --no-notify --ignore-watch node_modules ./src/index.ts 42 | ``` 43 | 44 | > ⚠ Note that the loaded environment variables file is `.env.dev` 45 | 46 | ## Running on production environment 47 | 48 | ### With Docker 49 | 50 | > ⚠ Remember to follow the [Installation](#Installation) steps before proceeding 51 | 52 | ```bash 53 | docker build -t your-app-name . 54 | docker run -it --rm -e DISCORD_TOKEN="YOUR TOKEN HERE" --name your-app-name your-app-name 55 | ``` 56 | 57 | ### With Docker Compose 58 | 59 | > ⚠ Remember to follow the [Installation](#Installation) steps before proceeding 60 | 61 | ```bash 62 | docker compose up -d 63 | ``` 64 | 65 | > ⚠ Note that the loaded environment variables file is `.env` 66 | 67 | ### Without Docker Compose 68 | 69 | > ⚠ Remember to follow the [Installation](#Installation) steps before proceeding 70 | 71 | Directly 72 | 73 | ```bash 74 | yarn deploy 75 | ``` 76 | 77 | > ⚠ Note that the loaded environment variables file is `.env` 78 | 79 | Manually 80 | 81 | ```bash 82 | yarn build 83 | ``` 84 | 85 | Startup bot 86 | 87 | ```bash 88 | yarn start # or cross-env NODE_ENV=production env-cmd -f .env node ./dist/index.js 89 | ``` 90 | 91 | > ⚠ Note that the loaded environment variables file is `.env` 92 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Use this section to tell people about which versions of your project are 6 | currently being supported with security updates. 7 | 8 | | Version | Supported | 9 | | ------- | ------------------ | 10 | | 5.1.x | :white_check_mark: | 11 | | 5.0.x | :x: | 12 | | 4.0.x | :white_check_mark: | 13 | | < 4.0 | :x: | 14 | 15 | ## Reporting a Vulnerability 16 | 17 | Use this section to tell people how to report a vulnerability. 18 | 19 | Tell them where to go, how often they can expect to get an update on a 20 | reported vulnerability, what to expect if the vulnerability is accepted or 21 | declined, etc. 22 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | bot: 5 | restart: always 6 | container_name: discord-bot-typescript-boilerplate 7 | build: 8 | context: . 9 | dockerfile: Dockerfile 10 | env_file: 11 | - .env 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "discord-bot-typescript-boilerplate", 3 | "version": "1.0.0", 4 | "main": "./dist/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "dev": "cross-env NODE_ENV=development env-cmd -f .env.dev tsnd --transpile-only --respawn --no-notify --ignore-watch node_modules ./src/index.ts", 8 | "start": "cross-env NODE_ENV=production env-cmd -f .env node ./dist/index.js", 9 | "build": "tsc", 10 | "deploy": "yarn && yarn build && yarn start" 11 | }, 12 | "dependencies": { 13 | "cross-env": "^7.0.3", 14 | "discord.js": "^12.2.0", 15 | "env-cmd": "^10.1.0" 16 | }, 17 | "devDependencies": { 18 | "@types/node": "^16.4.10", 19 | "ts-node-dev": "^1.1.8", 20 | "typescript": "^4.3.5" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/config.ts: -------------------------------------------------------------------------------- 1 | import { ClientOptions, Intents } from 'discord.js'; 2 | 3 | export default { 4 | bot: { 5 | token: process.env.DISCORD_TOKEN, 6 | }, 7 | client: { 8 | ws: { intents: Intents.ALL } 9 | } as ClientOptions 10 | } 11 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { Client } from 'discord.js'; 2 | import config from './config'; 3 | 4 | const DISCORD_CLIENT = new Client(config.client); 5 | 6 | DISCORD_CLIENT.on('ready', async () => { 7 | console.log(`Logged in as ${DISCORD_CLIENT.user?.tag}!`); 8 | }); 9 | 10 | DISCORD_CLIENT.on('message', async (message) => { 11 | if (message.author.bot) return; 12 | 13 | if (message.content.toLowerCase() === 'ping') { 14 | await message.reply('pong!'); 15 | } 16 | }); 17 | 18 | DISCORD_CLIENT.login(config.bot.token); 19 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "module": "commonjs", 5 | "allowJs": true, 6 | "strict": true, 7 | "resolveJsonModule": true, 8 | "rootDir": "./src", 9 | "outDir": "./dist", 10 | "esModuleInterop": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "skipLibCheck": true, 13 | }, 14 | "include": [ 15 | "src/**/*.ts" 16 | ] 17 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@discordjs/collection@^0.1.6": 6 | version "0.1.6" 7 | resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.1.6.tgz#9e9a7637f4e4e0688fd8b2b5c63133c91607682c" 8 | integrity sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ== 9 | 10 | "@discordjs/form-data@^3.0.1": 11 | version "3.0.1" 12 | resolved "https://registry.yarnpkg.com/@discordjs/form-data/-/form-data-3.0.1.tgz#5c9e6be992e2e57d0dfa0e39979a850225fb4697" 13 | integrity sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg== 14 | dependencies: 15 | asynckit "^0.4.0" 16 | combined-stream "^1.0.8" 17 | mime-types "^2.1.12" 18 | 19 | "@types/node@^16.4.10": 20 | version "16.4.10" 21 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.10.tgz#e57e2a54fc6da58da94b3571b1cb456d39f88597" 22 | integrity sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ== 23 | 24 | "@types/strip-bom@^3.0.0": 25 | version "3.0.0" 26 | resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" 27 | integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= 28 | 29 | "@types/strip-json-comments@0.0.30": 30 | version "0.0.30" 31 | resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" 32 | integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== 33 | 34 | abort-controller@^3.0.0: 35 | version "3.0.0" 36 | resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" 37 | integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== 38 | dependencies: 39 | event-target-shim "^5.0.0" 40 | 41 | anymatch@~3.1.2: 42 | version "3.1.2" 43 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 44 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 45 | dependencies: 46 | normalize-path "^3.0.0" 47 | picomatch "^2.0.4" 48 | 49 | arg@^4.1.0: 50 | version "4.1.3" 51 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 52 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 53 | 54 | asynckit@^0.4.0: 55 | version "0.4.0" 56 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 57 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 58 | 59 | balanced-match@^1.0.0: 60 | version "1.0.2" 61 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 62 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 63 | 64 | binary-extensions@^2.0.0: 65 | version "2.2.0" 66 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 67 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 68 | 69 | brace-expansion@^1.1.7: 70 | version "1.1.11" 71 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 72 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 73 | dependencies: 74 | balanced-match "^1.0.0" 75 | concat-map "0.0.1" 76 | 77 | braces@~3.0.2: 78 | version "3.0.2" 79 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 80 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 81 | dependencies: 82 | fill-range "^7.0.1" 83 | 84 | buffer-from@^1.0.0: 85 | version "1.1.2" 86 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 87 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 88 | 89 | chokidar@^3.5.1: 90 | version "3.5.2" 91 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" 92 | integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== 93 | dependencies: 94 | anymatch "~3.1.2" 95 | braces "~3.0.2" 96 | glob-parent "~5.1.2" 97 | is-binary-path "~2.1.0" 98 | is-glob "~4.0.1" 99 | normalize-path "~3.0.0" 100 | readdirp "~3.6.0" 101 | optionalDependencies: 102 | fsevents "~2.3.2" 103 | 104 | combined-stream@^1.0.8: 105 | version "1.0.8" 106 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 107 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 108 | dependencies: 109 | delayed-stream "~1.0.0" 110 | 111 | commander@^4.0.0: 112 | version "4.1.1" 113 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" 114 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== 115 | 116 | concat-map@0.0.1: 117 | version "0.0.1" 118 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 119 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 120 | 121 | create-require@^1.1.0: 122 | version "1.1.1" 123 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 124 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 125 | 126 | cross-env@^7.0.3: 127 | version "7.0.3" 128 | resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" 129 | integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== 130 | dependencies: 131 | cross-spawn "^7.0.1" 132 | 133 | cross-spawn@^7.0.0, cross-spawn@^7.0.1: 134 | version "7.0.3" 135 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 136 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 137 | dependencies: 138 | path-key "^3.1.0" 139 | shebang-command "^2.0.0" 140 | which "^2.0.1" 141 | 142 | delayed-stream@~1.0.0: 143 | version "1.0.0" 144 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 145 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 146 | 147 | diff@^4.0.1: 148 | version "4.0.2" 149 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 150 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 151 | 152 | discord.js@^12.2.0: 153 | version "12.5.1" 154 | resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-12.5.1.tgz#992b45753e3815526a279914ccc281d3496f5990" 155 | integrity sha512-VwZkVaUAIOB9mKdca0I5MefPMTQJTNg0qdgi1huF3iwsFwJ0L5s/Y69AQe+iPmjuV6j9rtKoG0Ta0n9vgEIL6w== 156 | dependencies: 157 | "@discordjs/collection" "^0.1.6" 158 | "@discordjs/form-data" "^3.0.1" 159 | abort-controller "^3.0.0" 160 | node-fetch "^2.6.1" 161 | prism-media "^1.2.2" 162 | setimmediate "^1.0.5" 163 | tweetnacl "^1.0.3" 164 | ws "^7.3.1" 165 | 166 | dynamic-dedupe@^0.3.0: 167 | version "0.3.0" 168 | resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" 169 | integrity sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE= 170 | dependencies: 171 | xtend "^4.0.0" 172 | 173 | env-cmd@^10.1.0: 174 | version "10.1.0" 175 | resolved "https://registry.yarnpkg.com/env-cmd/-/env-cmd-10.1.0.tgz#c7f5d3b550c9519f137fdac4dd8fb6866a8c8c4b" 176 | integrity sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA== 177 | dependencies: 178 | commander "^4.0.0" 179 | cross-spawn "^7.0.0" 180 | 181 | event-target-shim@^5.0.0: 182 | version "5.0.1" 183 | resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" 184 | integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== 185 | 186 | fill-range@^7.0.1: 187 | version "7.0.1" 188 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 189 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 190 | dependencies: 191 | to-regex-range "^5.0.1" 192 | 193 | fs.realpath@^1.0.0: 194 | version "1.0.0" 195 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 196 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 197 | 198 | fsevents@~2.3.2: 199 | version "2.3.2" 200 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 201 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 202 | 203 | function-bind@^1.1.1: 204 | version "1.1.1" 205 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 206 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 207 | 208 | glob-parent@~5.1.2: 209 | version "5.1.2" 210 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 211 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 212 | dependencies: 213 | is-glob "^4.0.1" 214 | 215 | glob@^7.1.3: 216 | version "7.1.7" 217 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 218 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 219 | dependencies: 220 | fs.realpath "^1.0.0" 221 | inflight "^1.0.4" 222 | inherits "2" 223 | minimatch "^3.0.4" 224 | once "^1.3.0" 225 | path-is-absolute "^1.0.0" 226 | 227 | has@^1.0.3: 228 | version "1.0.3" 229 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 230 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 231 | dependencies: 232 | function-bind "^1.1.1" 233 | 234 | inflight@^1.0.4: 235 | version "1.0.6" 236 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 237 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 238 | dependencies: 239 | once "^1.3.0" 240 | wrappy "1" 241 | 242 | inherits@2: 243 | version "2.0.4" 244 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 245 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 246 | 247 | is-binary-path@~2.1.0: 248 | version "2.1.0" 249 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 250 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 251 | dependencies: 252 | binary-extensions "^2.0.0" 253 | 254 | is-core-module@^2.2.0: 255 | version "2.5.0" 256 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" 257 | integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== 258 | dependencies: 259 | has "^1.0.3" 260 | 261 | is-extglob@^2.1.1: 262 | version "2.1.1" 263 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 264 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 265 | 266 | is-glob@^4.0.1, is-glob@~4.0.1: 267 | version "4.0.1" 268 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 269 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 270 | dependencies: 271 | is-extglob "^2.1.1" 272 | 273 | is-number@^7.0.0: 274 | version "7.0.0" 275 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 276 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 277 | 278 | isexe@^2.0.0: 279 | version "2.0.0" 280 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 281 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 282 | 283 | make-error@^1.1.1: 284 | version "1.3.6" 285 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 286 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 287 | 288 | mime-db@1.44.0: 289 | version "1.44.0" 290 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 291 | integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 292 | 293 | mime-types@^2.1.12: 294 | version "2.1.27" 295 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 296 | integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 297 | dependencies: 298 | mime-db "1.44.0" 299 | 300 | minimatch@^3.0.4: 301 | version "3.0.4" 302 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 303 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 304 | dependencies: 305 | brace-expansion "^1.1.7" 306 | 307 | minimist@^1.2.5: 308 | version "1.2.5" 309 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 310 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 311 | 312 | mkdirp@^1.0.4: 313 | version "1.0.4" 314 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 315 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 316 | 317 | node-fetch@^2.6.1: 318 | version "2.6.1" 319 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 320 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 321 | 322 | normalize-path@^3.0.0, normalize-path@~3.0.0: 323 | version "3.0.0" 324 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 325 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 326 | 327 | once@^1.3.0: 328 | version "1.4.0" 329 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 330 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 331 | dependencies: 332 | wrappy "1" 333 | 334 | path-is-absolute@^1.0.0: 335 | version "1.0.1" 336 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 337 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 338 | 339 | path-key@^3.1.0: 340 | version "3.1.1" 341 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 342 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 343 | 344 | path-parse@^1.0.6: 345 | version "1.0.7" 346 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 347 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 348 | 349 | picomatch@^2.0.4, picomatch@^2.2.1: 350 | version "2.3.0" 351 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 352 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 353 | 354 | prism-media@^1.2.2: 355 | version "1.2.2" 356 | resolved "https://registry.yarnpkg.com/prism-media/-/prism-media-1.2.2.tgz#4f1c841f248b67d325a24b4e6b1a491b8f50a24f" 357 | integrity sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw== 358 | 359 | readdirp@~3.6.0: 360 | version "3.6.0" 361 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 362 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 363 | dependencies: 364 | picomatch "^2.2.1" 365 | 366 | resolve@^1.0.0: 367 | version "1.20.0" 368 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 369 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 370 | dependencies: 371 | is-core-module "^2.2.0" 372 | path-parse "^1.0.6" 373 | 374 | rimraf@^2.6.1: 375 | version "2.7.1" 376 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 377 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 378 | dependencies: 379 | glob "^7.1.3" 380 | 381 | setimmediate@^1.0.5: 382 | version "1.0.5" 383 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 384 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= 385 | 386 | shebang-command@^2.0.0: 387 | version "2.0.0" 388 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 389 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 390 | dependencies: 391 | shebang-regex "^3.0.0" 392 | 393 | shebang-regex@^3.0.0: 394 | version "3.0.0" 395 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 396 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 397 | 398 | source-map-support@^0.5.12, source-map-support@^0.5.17: 399 | version "0.5.19" 400 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 401 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 402 | dependencies: 403 | buffer-from "^1.0.0" 404 | source-map "^0.6.0" 405 | 406 | source-map@^0.6.0: 407 | version "0.6.1" 408 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 409 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 410 | 411 | strip-bom@^3.0.0: 412 | version "3.0.0" 413 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 414 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 415 | 416 | strip-json-comments@^2.0.0: 417 | version "2.0.1" 418 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 419 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 420 | 421 | to-regex-range@^5.0.1: 422 | version "5.0.1" 423 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 424 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 425 | dependencies: 426 | is-number "^7.0.0" 427 | 428 | tree-kill@^1.2.2: 429 | version "1.2.2" 430 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 431 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 432 | 433 | ts-node-dev@^1.1.8: 434 | version "1.1.8" 435 | resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-1.1.8.tgz#95520d8ab9d45fffa854d6668e2f8f9286241066" 436 | integrity sha512-Q/m3vEwzYwLZKmV6/0VlFxcZzVV/xcgOt+Tx/VjaaRHyiBcFlV0541yrT09QjzzCxlDZ34OzKjrFAynlmtflEg== 437 | dependencies: 438 | chokidar "^3.5.1" 439 | dynamic-dedupe "^0.3.0" 440 | minimist "^1.2.5" 441 | mkdirp "^1.0.4" 442 | resolve "^1.0.0" 443 | rimraf "^2.6.1" 444 | source-map-support "^0.5.12" 445 | tree-kill "^1.2.2" 446 | ts-node "^9.0.0" 447 | tsconfig "^7.0.0" 448 | 449 | ts-node@^9.0.0: 450 | version "9.1.1" 451 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" 452 | integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== 453 | dependencies: 454 | arg "^4.1.0" 455 | create-require "^1.1.0" 456 | diff "^4.0.1" 457 | make-error "^1.1.1" 458 | source-map-support "^0.5.17" 459 | yn "3.1.1" 460 | 461 | tsconfig@^7.0.0: 462 | version "7.0.0" 463 | resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" 464 | integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== 465 | dependencies: 466 | "@types/strip-bom" "^3.0.0" 467 | "@types/strip-json-comments" "0.0.30" 468 | strip-bom "^3.0.0" 469 | strip-json-comments "^2.0.0" 470 | 471 | tweetnacl@^1.0.3: 472 | version "1.0.3" 473 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" 474 | integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== 475 | 476 | typescript@^4.3.5: 477 | version "4.3.5" 478 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" 479 | integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== 480 | 481 | which@^2.0.1: 482 | version "2.0.2" 483 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 484 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 485 | dependencies: 486 | isexe "^2.0.0" 487 | 488 | wrappy@1: 489 | version "1.0.2" 490 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 491 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 492 | 493 | ws@^7.3.1: 494 | version "7.4.6" 495 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" 496 | integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== 497 | 498 | xtend@^4.0.0: 499 | version "4.0.2" 500 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 501 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 502 | 503 | yn@3.1.1: 504 | version "3.1.1" 505 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 506 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 507 | --------------------------------------------------------------------------------