diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml index f5bf3cc..009d855 100644 --- a/.github/workflows/eslint.yml +++ b/.github/workflows/eslint.yml @@ -12,11 +12,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v2 - - name: Install Node v16 - uses: actions/setup-node@v1 + uses: actions/checkout@v3 + - name: Install Node v18 + uses: actions/setup-node@v1v3 with: - node-version: 16.x + node-version: 18 - name: Install Yarn run: npm install -g yarn - name: Install dependencies @@ -24,7 +24,7 @@ jobs: - name: Run ESLint run: yarn run eslint:fix - name: Commit changes - uses: EndBug/add-and-commit@v4 + uses: EndBug/add-and-commit@v9 with: add: src message: "chore(lint): Auto-fix linting errors" diff --git a/.gitignore b/.gitignore index 6511d93..198e1bb 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ config/default.js config/production.js config/curate.sqlite package-lock.json -.idea/ \ No newline at end of file +.idea/ +yarn-error.log \ No newline at end of file diff --git a/README.md b/README.md index af9c838..ec149f3 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ This bot allows the community of LBRY to support eachother through the [LBRY Fou ## Installation * Pull the repo -* Install [Node.JS LTS](https://nodejs.org/) (Currently Node v12.x) +* Install [Node.JS LTS](https://nodejs.org/) (Currently Node v18.x) * Install [Yarn](https://yarnpkg.com/) (`npm install yarn -g`) * Install [Redis](https://redis.io/) ([quickstart](https://redis.io/topics/quickstart)) * Install LBRY-SDK @@ -19,7 +19,7 @@ This bot allows the community of LBRY to support eachother through the [LBRY Fou This bot would not be possible without the following people/software: * LBRY Inc. and the LBRY SDK -* Eris - NodeJS Library for Discord +* Dysnomia - NodeJS Library for Discord, fork of Eris * LBRY Foundation * Snazzah - Creator of the Faux command base and developer of the bot * Coolguy3289 - Developer of the bot and command flow diff --git a/config/_default.js b/config/_default.js index a2a9bfb..56bfe3f 100644 --- a/config/_default.js +++ b/config/_default.js @@ -1,4 +1,6 @@ module.exports = { + // [string] The token for the bot + token: "", // [string] The prefix for the bot prefix: "!", // [Array] An array of elevated IDs, giving them access to developer commands @@ -25,30 +27,25 @@ module.exports = { walletBackupFolder: "~/.lbryum_backup/", // [string] Amount to auto-fund upon account creation startingBalance: "", - // [Object] Oceanic client options (https://docs.oceanic.ws/v1.3.0/interfaces/Types_Client.ClientOptions.html) + // [Object] Dysnomia client options (subset of https://abal.moe/Eris/docs/Client) discordConfig: { - // [string] The token for the bot - auth: "Bot ", - gateway: { - autoReconnect: true, - maxShards: "auto", - messageLimit: 0, - intents: [ - "GUILDS", - "GUILD_EMOJIS_AND_STICKERS", - "GUILD_MESSAGES", - "GUILD_MESSAGE_REACTIONS", - "DIRECT_MESSAGES", - "DIRECT_MESSAGE_REACTIONS" - ] - }, - collectionLimits: { - messages: 0 - }, allowedMentions: { everyone: false, roles: false, users: true + }, + messageLimit: 0, + gateway: { + autoreconnect: true, + maxShards: "auto", + intents: [ + "guilds", + "guildMessages", + "guildMessageReactions", + "directMessages", + "directMessageReactions", + "messageContent" + ] } }, // [Object] Redis config diff --git a/package.json b/package.json index eb662ae..cba9d2e 100644 --- a/package.json +++ b/package.json @@ -9,15 +9,15 @@ "eslint:fix": "eslint ./src --fix" }, "dependencies": { + "@projectdysnomia/dysnomia": "github:projectdysnomia/dysnomia#dev", "abort-controller": "^3.0.0", "cat-loggr": "^1.2.2", "config": "^3.3.9", "eventemitter3": "^5.0.0", "fuzzy": "^0.1.3", "ioredis": "^5.3.0", + "just-clone": "^6.2.0", "moment": "^2.29.4", - "node-fetch": "2", - "oceanic.js": "^1.3.2", "require-reload": "^0.2.2", "sequelize": "^6.28.0", "sqlite3": "^5.1.4" diff --git a/src/bot.js b/src/bot.js index 3afccba..1bdead5 100644 --- a/src/bot.js +++ b/src/bot.js @@ -1,4 +1,4 @@ -const Oceanic = require('oceanic.js'); +const Dysnomia = require('@projectdysnomia/dysnomia'); const Database = require('./database'); const EventHandler = require('./events'); const CommandLoader = require('./commandloader'); @@ -8,12 +8,13 @@ const path = require('path'); const CatLoggr = require('cat-loggr'); const config = require('config'); const LBRY = require('./structures/LBRY'); +const clone = require('just-clone'); -class CurateBot extends Oceanic.Client { +class CurateBot extends Dysnomia.Client { constructor({ packagePath, mainDir } = {}) { // Initialization const pkg = require(packagePath || `${mainDir}/package.json`); - super(JSON.parse(JSON.stringify(config.discordConfig))); + super(`Bot ${config.token}`, clone(config.discordConfig)); this.dir = mainDir; this.pkg = pkg; this.logger = new CatLoggr({ @@ -23,10 +24,8 @@ class CurateBot extends Oceanic.Client { { name: 'error', color: CatLoggr._chalk.black.bgRed, err: true }, { name: 'warn', color: CatLoggr._chalk.black.bgYellow, err: true }, { name: 'init', color: CatLoggr._chalk.black.bgGreen }, - { name: 'webserv', color: CatLoggr._chalk.black.bgBlue }, { name: 'info', color: CatLoggr._chalk.black.bgCyan }, { name: 'assert', color: CatLoggr._chalk.cyan.bgBlack }, - { name: 'poster', color: CatLoggr._chalk.yellow.bgBlack }, { name: 'debug', color: CatLoggr._chalk.magenta.bgBlack, aliases: ['log', 'dir'] }, { name: 'limiter', color: CatLoggr._chalk.gray.bgBlack }, { name: 'fileload', color: CatLoggr._chalk.white.bgBlack } @@ -113,7 +112,7 @@ class CurateBot extends Oceanic.Client { /** * Start typing in a channel - * @param {Oceanic.TextableChannel} channel The channel to start typing in + * @param {Dysnomia.TextableChannel} channel The channel to start typing in */ async startTyping(channel) { if (this.isTyping(channel)) return; @@ -125,7 +124,7 @@ class CurateBot extends Oceanic.Client { /** * Whether the bot is currently typing in a channel - * @param {Oceanic.TextableChannel} channel + * @param {Dysnomia.TextableChannel} channel */ isTyping(channel) { return this.typingIntervals.has(channel.id); @@ -133,7 +132,7 @@ class CurateBot extends Oceanic.Client { /** * Stops typing in a channel - * @param {Oceanic.TextableChannel} channel + * @param {Dysnomia.TextableChannel} channel */ stopTyping(channel) { if (!this.isTyping(channel)) return; diff --git a/src/commands/admin/adminbalance.js b/src/commands/admin/adminbalance.js index 42bcc31..0a10928 100644 --- a/src/commands/admin/adminbalance.js +++ b/src/commands/admin/adminbalance.js @@ -13,12 +13,12 @@ module.exports = class AdminBalance extends Command { const response = await this.client.lbry.walletBalance(); const wallet = await response.json(); if (await this.handleResponse(message, response, wallet)) return; - return message.channel.createMessage({ embed: { + return message.channel.createMessage({ embeds: [{ color: config.embedColor, description: `**Available:** ${wallet.result.available} LBC\n\n` + `Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` + `Total: ${wallet.result.total} LBC` - } }); + }] }); } get metadata() { return { diff --git a/src/commands/curator/balance.js b/src/commands/curator/balance.js index b8034a0..6321631 100644 --- a/src/commands/curator/balance.js +++ b/src/commands/curator/balance.js @@ -30,25 +30,25 @@ module.exports = class Balance extends Command { const response = await this.client.lbry.accountBalance(account.accountID); const wallet = await response.json(); if (await this.handleResponse(message, response, wallet)) return; - return message.channel.createMessage({ embed: { + return message.channel.createMessage({ embeds: [{ color: config.embedColor, description: `<@${discordID}> has **${wallet.result.available}** LBC available.\n\n` + `Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` + `Total: ${wallet.result.total} LBC` - } }); + }] }); } else { const account = await Util.LBRY.findOrCreateAccount(this.client, message.author.id); const response = await this.client.lbry.accountBalance(account.accountID); const wallet = await response.json(); if (await this.handleResponse(message, response, wallet)) return; - return message.channel.createMessage({ embed: { + return message.channel.createMessage({ embeds: [{ color: config.embedColor, description: `You have **${wallet.result.available}** LBC available.\n\n` + `Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` + `Total: ${wallet.result.total} LBC` + (account.newAccount ? '\n\n:warning: This account was just created. ' + 'Please wait a few seconds, and run the command again to get an accurate balance.' : '') - } }); + }] }); } } diff --git a/src/commands/help.js b/src/commands/help.js index 73a4dfd..436985d 100644 --- a/src/commands/help.js +++ b/src/commands/help.js @@ -60,7 +60,7 @@ module.exports = class Help extends Command { value: command.metadata.note }); - return message.channel.createMessage({ embed }); + return message.channel.createMessage({ embeds: [embed] }); } } else { // Display general help command @@ -89,7 +89,7 @@ module.exports = class Help extends Command { inline: true }); }); - return message.channel.createMessage({ embed }); + return message.channel.createMessage({ embeds: [embed] }); } } diff --git a/src/commands/trusted/tbalance.js b/src/commands/trusted/tbalance.js index b5c1262..30ec58c 100644 --- a/src/commands/trusted/tbalance.js +++ b/src/commands/trusted/tbalance.js @@ -15,12 +15,12 @@ module.exports = class TBalance extends Command { const response = await this.client.lbry.accountBalance(account.id); const wallet = await response.json(); if (await this.handleResponse(message, response, wallet)) return; - return message.channel.createMessage({ embed: { + return message.channel.createMessage({ embeds: [{ color: config.embedColor, description: `**${wallet.result.available}** LBC is available in the trusted account.\n\n` + `Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` + `Total: ${wallet.result.total} LBC` - } }); + }] }); } get metadata() { return { diff --git a/src/events.js b/src/events.js index e5cdb99..c03fa00 100644 --- a/src/events.js +++ b/src/events.js @@ -1,7 +1,6 @@ const ArgumentInterpreter = require('./structures/ArgumentInterpreter'); const Util = require('./util'); const config = require('config'); -const { Permissions } = require('oceanic.js'); module.exports = class Events { constructor(client) { @@ -15,7 +14,7 @@ module.exports = class Events { // Check to see if bot can send messages if (message.channel.type !== 1 && - !message.channel.permissionsOf(this.client.user.id).has(Permissions.SEND_MESSAGES)) return; + !message.channel.permissionsOf(this.client.user.id).has('sendMessages')) return; // Message awaiter if (this.client.messageAwaiter.processHalt(message)) return; diff --git a/src/structures/GenericPager.js b/src/structures/GenericPager.js index d95dfb1..88aeac9 100644 --- a/src/structures/GenericPager.js +++ b/src/structures/GenericPager.js @@ -1,7 +1,6 @@ const Paginator = require('./Paginator'); const lodash = require('lodash'); const config = require('config'); -const { Permissions } = require('oceanic.js'); /** * A generic pager that shows a list of items @@ -39,7 +38,7 @@ class GenericPager extends Paginator { */ canEmbed() { return this.message.channel.type === 1 || - this.message.channel.permissionsOf(this.client.user.id).has(Permissions.EMBED_LINKS); + this.message.channel.permissionsOf(this.client.user.id).has('embedLinks'); } /** @@ -71,7 +70,7 @@ class GenericPager extends Paginator { value: displayPage.join('\n') }); - return { embed }; + return { embeds: [embed] }; } else { const top = `${this.itemTitle} ` + `(${this.items.length}, Page ${this.pageNumber}/${this.maxPages})`; diff --git a/src/structures/LBRY.js b/src/structures/LBRY.js index f29d2e2..a6d96a3 100644 --- a/src/structures/LBRY.js +++ b/src/structures/LBRY.js @@ -1,4 +1,3 @@ -const fetch = require('node-fetch'); const AbortController = require('abort-controller'); const config = require('config'); const Util = require('../util'); diff --git a/src/structures/Paginator.js b/src/structures/Paginator.js index 2dbf33e..af7a0d3 100644 --- a/src/structures/Paginator.js +++ b/src/structures/Paginator.js @@ -1,5 +1,4 @@ const EventEmitter = require('eventemitter3'); -const { Permissions } = require('oceanic.js'); /** * A class that creates a paging process for messages @@ -88,7 +87,7 @@ class Paginator extends EventEmitter { */ canPaginate() { return this.message.channel.type === 1 || - this.message.channel.permissionsOf(this.client.user.id).has(Permissions.ADD_REACTIONS); + this.message.channel.permissionsOf(this.client.user.id).has('addReactions'); } /** @@ -97,7 +96,7 @@ class Paginator extends EventEmitter { */ canManage() { return this.message.channel.type !== 1 && - this.message.channel.permissionsOf(this.client.user.id).has(Permissions.MANAGE_MESSAGES); + this.message.channel.permissionsOf(this.client.user.id).has('manageMessages'); } /** diff --git a/src/util.js b/src/util.js index 46d5c78..207a51f 100644 --- a/src/util.js +++ b/src/util.js @@ -1,8 +1,6 @@ -const fetch = require('node-fetch'); const config = require('config'); const fs = require('fs'); const path = require('path'); -const { Permissions } = require('oceanic.js'); /** * Represents the utilities for the bot @@ -51,7 +49,7 @@ Util.Prefix = { Util.Prefix.regex(client, prefixes), '$2').replace(/\s\s+/g, ' ').trim(); }, escapeRegex(s) { - return s.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'); + return s.replace(/[-/\\^$*+?.()|[\]{}!]/g, '\\$&'); } }; @@ -61,11 +59,11 @@ Util.Prefix = { */ Util.CommandPermissions = { attach: (client, message) => message.channel.type === 1 || - message.channel.permissionsOf(client.user.id).has(Permissions.ATTACH_FILES), + message.channel.permissionsOf(client.user.id).has('attachFiles'), embed: (client, message) => message.channel.type === 1 || - message.channel.permissionsOf(client.user.id).has(Permissions.EMBED_LINKS), + message.channel.permissionsOf(client.user.id).has('embedLinks'), emoji: (client, message) => message.channel.type === 1 || - message.channel.permissionsOf(client.user.id).has(Permissions.USE_EXTERNAL_EMOJIS), + message.channel.permissionsOf(client.user.id).has('externalEmojis'), guild: (_, message) => !!message.guildID, elevated: (_, message) => config.elevated.includes(message.author.id), curator: (client, message) => { diff --git a/yarn.lock b/yarn.lock index 7716e4d..cc3ba01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,17 +2,6 @@ # yarn lockfile v1 -"@discordjs/voice@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@discordjs/voice/-/voice-0.13.0.tgz#dd7eb490246ce00ccdad486859b9ccc4ef275ac9" - integrity sha512-ZzwDmVINaLgkoDUeTJfpN9TkjINMLfTVoLMtEygm0YC5jTTw7AvKGqhc+Ae/2kNLywd0joyFVNrLp94yCkQ9SA== - dependencies: - "@types/ws" "^8.5.3" - discord-api-types "^0.37.12" - prism-media "^1.3.4" - tslib "^2.4.0" - ws "^8.9.0" - "@eslint/eslintrc@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" @@ -109,6 +98,15 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@projectdysnomia/dysnomia@github:projectdysnomia/dysnomia#dev": + version "0.1.0-dev" + resolved "https://codeload.github.com/projectdysnomia/dysnomia/tar.gz/15ebb0c9e9a6d7ec28340e69ff71ebbcea9d5bce" + dependencies: + ws "^8.2.3" + optionalDependencies: + opusscript "^0.0.8" + tweetnacl "^1.0.3" + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -141,13 +139,6 @@ resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.7.1.tgz#cdab1b4779f6b1718a08de89d92d2603b71950cb" integrity sha512-I6OUIZ5cYRk5lp14xSOAiXjWrfVoMZVjDuevBYgQDYzZIjsf2CAISpEcXOkFAtpAHbmWIDLcZObejqny/9xq5Q== -"@types/ws@^8.5.3": - version "8.5.3" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" - integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== - dependencies: - "@types/node" "*" - abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -263,13 +254,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - cacache@^15.2.0: version "15.3.0" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" @@ -431,11 +415,6 @@ detect-libc@^2.0.0: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== -discord-api-types@^0.37.12: - version "0.37.17" - resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.17.tgz#314e4225fdff31b08b83ba5104d46564bc02303c" - integrity sha512-5ZIw1VtkmToBy8ziketjHkZnW1FoLevyXdK/TslNFLozijug2RnB3MyBNtSGzML1c72koU3neeGkvFZ8OiU0tQ== - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -918,6 +897,11 @@ json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +just-clone@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/just-clone/-/just-clone-6.2.0.tgz#a4614d9bf7e4bbdcae7f9ba904aea5ea9cae8ae5" + integrity sha512-1IynUYEc/HAwxhi3WDpIpxJbZpMCvvrrmZVqvj9EhpvbH8lls7HhdhiByjL7DkAaWlLIzpC0Xc/VPvy/UxLNjA== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -1092,7 +1076,7 @@ node-addon-api@^4.2.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== -node-fetch@2, node-fetch@^2.6.7: +node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -1147,16 +1131,6 @@ object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -oceanic.js@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/oceanic.js/-/oceanic.js-1.3.2.tgz#30d3bdeeb2b07dbd36a576f7f1b4837e75015306" - integrity sha512-nLedv0gmtMTnAVJQWIePWf7nz/7fRzYpoQndiwsn8X9CGRDAYDgtmdCtUD+EylkIN5zRNg+aWm6EcriKEXCZUg== - dependencies: - undici "^5.12.0" - ws "^8.11.0" - optionalDependencies: - "@discordjs/voice" "^0.13.0" - once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -1176,6 +1150,11 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +opusscript@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/opusscript/-/opusscript-0.0.8.tgz#00b49e81281b4d99092d013b1812af8654bd0a87" + integrity sha512-VSTi1aWFuCkRCVq+tx/BQ5q9fMnQ9pVZ3JU4UHKqTkf0ED3fKEPdr+gKAAl3IA2hj9rrP6iyq3hlcJq3HELtNQ== + p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -1229,11 +1208,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prism-media@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/prism-media/-/prism-media-1.3.4.tgz#7951f26a9186b791dc8c820ff07310ec46a8a5f1" - integrity sha512-eW7LXORkTCQznZs+eqe9VjGOrLBxcBPXgNyHXMTSRVhphvd/RrxgIR7WaWt4fkLuhshcdT5KHL88LAfcvS3f5g== - promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -1443,11 +1417,6 @@ standard-as-callback@^2.1.0: resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -1517,10 +1486,10 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -tslib@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -1534,13 +1503,6 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -undici@^5.12.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.12.0.tgz#c758ffa704fbcd40d506e4948860ccaf4099f531" - integrity sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg== - dependencies: - busboy "^1.6.0" - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -1621,10 +1583,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -ws@^8.11.0, ws@^8.9.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== +ws@^8.2.3: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" + integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== yallist@^4.0.0: version "4.0.0"