mirror of
https://github.com/LBRYFoundation/curate.git
synced 2025-08-23 09:27:24 +00:00
refactor: use dysnomia, remove node-fetch, misc changes
This commit is contained in:
parent
cba02ccacf
commit
b4bbcce67d
16 changed files with 81 additions and 128 deletions
10
.github/workflows/eslint.yml
vendored
10
.github/workflows/eslint.yml
vendored
|
@ -12,11 +12,11 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
- name: Install Node v16
|
- name: Install Node v18
|
||||||
uses: actions/setup-node@v1
|
uses: actions/setup-node@v1v3
|
||||||
with:
|
with:
|
||||||
node-version: 16.x
|
node-version: 18
|
||||||
- name: Install Yarn
|
- name: Install Yarn
|
||||||
run: npm install -g yarn
|
run: npm install -g yarn
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
|
@ -24,7 +24,7 @@ jobs:
|
||||||
- name: Run ESLint
|
- name: Run ESLint
|
||||||
run: yarn run eslint:fix
|
run: yarn run eslint:fix
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
uses: EndBug/add-and-commit@v4
|
uses: EndBug/add-and-commit@v9
|
||||||
with:
|
with:
|
||||||
add: src
|
add: src
|
||||||
message: "chore(lint): Auto-fix linting errors"
|
message: "chore(lint): Auto-fix linting errors"
|
||||||
|
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -3,4 +3,5 @@ config/default.js
|
||||||
config/production.js
|
config/production.js
|
||||||
config/curate.sqlite
|
config/curate.sqlite
|
||||||
package-lock.json
|
package-lock.json
|
||||||
.idea/
|
.idea/
|
||||||
|
yarn-error.log
|
|
@ -7,7 +7,7 @@ This bot allows the community of LBRY to support eachother through the [LBRY Fou
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
* Pull the repo
|
* 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 [Yarn](https://yarnpkg.com/) (`npm install yarn -g`)
|
||||||
* Install [Redis](https://redis.io/) ([quickstart](https://redis.io/topics/quickstart))
|
* Install [Redis](https://redis.io/) ([quickstart](https://redis.io/topics/quickstart))
|
||||||
* Install LBRY-SDK
|
* 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:
|
This bot would not be possible without the following people/software:
|
||||||
|
|
||||||
* LBRY Inc. and the LBRY SDK
|
* LBRY Inc. and the LBRY SDK
|
||||||
* Eris - NodeJS Library for Discord
|
* Dysnomia - NodeJS Library for Discord, fork of Eris
|
||||||
* LBRY Foundation
|
* LBRY Foundation
|
||||||
* Snazzah - Creator of the Faux command base and developer of the bot
|
* Snazzah - Creator of the Faux command base and developer of the bot
|
||||||
* Coolguy3289 - Developer of the bot and command flow
|
* Coolguy3289 - Developer of the bot and command flow
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
// [string] The token for the bot
|
||||||
|
token: "",
|
||||||
// [string] The prefix for the bot
|
// [string] The prefix for the bot
|
||||||
prefix: "!",
|
prefix: "!",
|
||||||
// [Array<string>] An array of elevated IDs, giving them access to developer commands
|
// [Array<string>] An array of elevated IDs, giving them access to developer commands
|
||||||
|
@ -25,30 +27,25 @@ module.exports = {
|
||||||
walletBackupFolder: "~/.lbryum_backup/",
|
walletBackupFolder: "~/.lbryum_backup/",
|
||||||
// [string] Amount to auto-fund upon account creation
|
// [string] Amount to auto-fund upon account creation
|
||||||
startingBalance: "",
|
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: {
|
discordConfig: {
|
||||||
// [string] The token for the bot
|
|
||||||
auth: "Bot <token>",
|
|
||||||
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: {
|
allowedMentions: {
|
||||||
everyone: false,
|
everyone: false,
|
||||||
roles: false,
|
roles: false,
|
||||||
users: true
|
users: true
|
||||||
|
},
|
||||||
|
messageLimit: 0,
|
||||||
|
gateway: {
|
||||||
|
autoreconnect: true,
|
||||||
|
maxShards: "auto",
|
||||||
|
intents: [
|
||||||
|
"guilds",
|
||||||
|
"guildMessages",
|
||||||
|
"guildMessageReactions",
|
||||||
|
"directMessages",
|
||||||
|
"directMessageReactions",
|
||||||
|
"messageContent"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// [Object] Redis config
|
// [Object] Redis config
|
||||||
|
|
|
@ -9,15 +9,15 @@
|
||||||
"eslint:fix": "eslint ./src --fix"
|
"eslint:fix": "eslint ./src --fix"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@projectdysnomia/dysnomia": "github:projectdysnomia/dysnomia#dev",
|
||||||
"abort-controller": "^3.0.0",
|
"abort-controller": "^3.0.0",
|
||||||
"cat-loggr": "^1.2.2",
|
"cat-loggr": "^1.2.2",
|
||||||
"config": "^3.3.9",
|
"config": "^3.3.9",
|
||||||
"eventemitter3": "^5.0.0",
|
"eventemitter3": "^5.0.0",
|
||||||
"fuzzy": "^0.1.3",
|
"fuzzy": "^0.1.3",
|
||||||
"ioredis": "^5.3.0",
|
"ioredis": "^5.3.0",
|
||||||
|
"just-clone": "^6.2.0",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"node-fetch": "2",
|
|
||||||
"oceanic.js": "^1.3.2",
|
|
||||||
"require-reload": "^0.2.2",
|
"require-reload": "^0.2.2",
|
||||||
"sequelize": "^6.28.0",
|
"sequelize": "^6.28.0",
|
||||||
"sqlite3": "^5.1.4"
|
"sqlite3": "^5.1.4"
|
||||||
|
|
15
src/bot.js
15
src/bot.js
|
@ -1,4 +1,4 @@
|
||||||
const Oceanic = require('oceanic.js');
|
const Dysnomia = require('@projectdysnomia/dysnomia');
|
||||||
const Database = require('./database');
|
const Database = require('./database');
|
||||||
const EventHandler = require('./events');
|
const EventHandler = require('./events');
|
||||||
const CommandLoader = require('./commandloader');
|
const CommandLoader = require('./commandloader');
|
||||||
|
@ -8,12 +8,13 @@ const path = require('path');
|
||||||
const CatLoggr = require('cat-loggr');
|
const CatLoggr = require('cat-loggr');
|
||||||
const config = require('config');
|
const config = require('config');
|
||||||
const LBRY = require('./structures/LBRY');
|
const LBRY = require('./structures/LBRY');
|
||||||
|
const clone = require('just-clone');
|
||||||
|
|
||||||
class CurateBot extends Oceanic.Client {
|
class CurateBot extends Dysnomia.Client {
|
||||||
constructor({ packagePath, mainDir } = {}) {
|
constructor({ packagePath, mainDir } = {}) {
|
||||||
// Initialization
|
// Initialization
|
||||||
const pkg = require(packagePath || `${mainDir}/package.json`);
|
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.dir = mainDir;
|
||||||
this.pkg = pkg;
|
this.pkg = pkg;
|
||||||
this.logger = new CatLoggr({
|
this.logger = new CatLoggr({
|
||||||
|
@ -23,10 +24,8 @@ class CurateBot extends Oceanic.Client {
|
||||||
{ name: 'error', color: CatLoggr._chalk.black.bgRed, err: true },
|
{ name: 'error', color: CatLoggr._chalk.black.bgRed, err: true },
|
||||||
{ name: 'warn', color: CatLoggr._chalk.black.bgYellow, err: true },
|
{ name: 'warn', color: CatLoggr._chalk.black.bgYellow, err: true },
|
||||||
{ name: 'init', color: CatLoggr._chalk.black.bgGreen },
|
{ name: 'init', color: CatLoggr._chalk.black.bgGreen },
|
||||||
{ name: 'webserv', color: CatLoggr._chalk.black.bgBlue },
|
|
||||||
{ name: 'info', color: CatLoggr._chalk.black.bgCyan },
|
{ name: 'info', color: CatLoggr._chalk.black.bgCyan },
|
||||||
{ name: 'assert', color: CatLoggr._chalk.cyan.bgBlack },
|
{ 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: 'debug', color: CatLoggr._chalk.magenta.bgBlack, aliases: ['log', 'dir'] },
|
||||||
{ name: 'limiter', color: CatLoggr._chalk.gray.bgBlack },
|
{ name: 'limiter', color: CatLoggr._chalk.gray.bgBlack },
|
||||||
{ name: 'fileload', color: CatLoggr._chalk.white.bgBlack }
|
{ name: 'fileload', color: CatLoggr._chalk.white.bgBlack }
|
||||||
|
@ -113,7 +112,7 @@ class CurateBot extends Oceanic.Client {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start typing in a channel
|
* 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) {
|
async startTyping(channel) {
|
||||||
if (this.isTyping(channel)) return;
|
if (this.isTyping(channel)) return;
|
||||||
|
@ -125,7 +124,7 @@ class CurateBot extends Oceanic.Client {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the bot is currently typing in a channel
|
* Whether the bot is currently typing in a channel
|
||||||
* @param {Oceanic.TextableChannel} channel
|
* @param {Dysnomia.TextableChannel} channel
|
||||||
*/
|
*/
|
||||||
isTyping(channel) {
|
isTyping(channel) {
|
||||||
return this.typingIntervals.has(channel.id);
|
return this.typingIntervals.has(channel.id);
|
||||||
|
@ -133,7 +132,7 @@ class CurateBot extends Oceanic.Client {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stops typing in a channel
|
* Stops typing in a channel
|
||||||
* @param {Oceanic.TextableChannel} channel
|
* @param {Dysnomia.TextableChannel} channel
|
||||||
*/
|
*/
|
||||||
stopTyping(channel) {
|
stopTyping(channel) {
|
||||||
if (!this.isTyping(channel)) return;
|
if (!this.isTyping(channel)) return;
|
||||||
|
|
|
@ -13,12 +13,12 @@ module.exports = class AdminBalance extends Command {
|
||||||
const response = await this.client.lbry.walletBalance();
|
const response = await this.client.lbry.walletBalance();
|
||||||
const wallet = await response.json();
|
const wallet = await response.json();
|
||||||
if (await this.handleResponse(message, response, wallet)) return;
|
if (await this.handleResponse(message, response, wallet)) return;
|
||||||
return message.channel.createMessage({ embed: {
|
return message.channel.createMessage({ embeds: [{
|
||||||
color: config.embedColor,
|
color: config.embedColor,
|
||||||
description: `**Available:** ${wallet.result.available} LBC\n\n` +
|
description: `**Available:** ${wallet.result.available} LBC\n\n` +
|
||||||
`Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` +
|
`Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` +
|
||||||
`Total: ${wallet.result.total} LBC`
|
`Total: ${wallet.result.total} LBC`
|
||||||
} });
|
}] });
|
||||||
}
|
}
|
||||||
|
|
||||||
get metadata() { return {
|
get metadata() { return {
|
||||||
|
|
|
@ -30,25 +30,25 @@ module.exports = class Balance extends Command {
|
||||||
const response = await this.client.lbry.accountBalance(account.accountID);
|
const response = await this.client.lbry.accountBalance(account.accountID);
|
||||||
const wallet = await response.json();
|
const wallet = await response.json();
|
||||||
if (await this.handleResponse(message, response, wallet)) return;
|
if (await this.handleResponse(message, response, wallet)) return;
|
||||||
return message.channel.createMessage({ embed: {
|
return message.channel.createMessage({ embeds: [{
|
||||||
color: config.embedColor,
|
color: config.embedColor,
|
||||||
description: `<@${discordID}> has **${wallet.result.available}** LBC available.\n\n` +
|
description: `<@${discordID}> has **${wallet.result.available}** LBC available.\n\n` +
|
||||||
`Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` +
|
`Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` +
|
||||||
`Total: ${wallet.result.total} LBC`
|
`Total: ${wallet.result.total} LBC`
|
||||||
} });
|
}] });
|
||||||
} else {
|
} else {
|
||||||
const account = await Util.LBRY.findOrCreateAccount(this.client, message.author.id);
|
const account = await Util.LBRY.findOrCreateAccount(this.client, message.author.id);
|
||||||
const response = await this.client.lbry.accountBalance(account.accountID);
|
const response = await this.client.lbry.accountBalance(account.accountID);
|
||||||
const wallet = await response.json();
|
const wallet = await response.json();
|
||||||
if (await this.handleResponse(message, response, wallet)) return;
|
if (await this.handleResponse(message, response, wallet)) return;
|
||||||
return message.channel.createMessage({ embed: {
|
return message.channel.createMessage({ embeds: [{
|
||||||
color: config.embedColor,
|
color: config.embedColor,
|
||||||
description: `You have **${wallet.result.available}** LBC available.\n\n` +
|
description: `You have **${wallet.result.available}** LBC available.\n\n` +
|
||||||
`Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` +
|
`Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` +
|
||||||
`Total: ${wallet.result.total} LBC` +
|
`Total: ${wallet.result.total} LBC` +
|
||||||
(account.newAccount ? '\n\n:warning: This account was just created. ' +
|
(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.' : '')
|
'Please wait a few seconds, and run the command again to get an accurate balance.' : '')
|
||||||
} });
|
}] });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ module.exports = class Help extends Command {
|
||||||
value: command.metadata.note
|
value: command.metadata.note
|
||||||
});
|
});
|
||||||
|
|
||||||
return message.channel.createMessage({ embed });
|
return message.channel.createMessage({ embeds: [embed] });
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Display general help command
|
// Display general help command
|
||||||
|
@ -89,7 +89,7 @@ module.exports = class Help extends Command {
|
||||||
inline: true
|
inline: true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
return message.channel.createMessage({ embed });
|
return message.channel.createMessage({ embeds: [embed] });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,12 @@ module.exports = class TBalance extends Command {
|
||||||
const response = await this.client.lbry.accountBalance(account.id);
|
const response = await this.client.lbry.accountBalance(account.id);
|
||||||
const wallet = await response.json();
|
const wallet = await response.json();
|
||||||
if (await this.handleResponse(message, response, wallet)) return;
|
if (await this.handleResponse(message, response, wallet)) return;
|
||||||
return message.channel.createMessage({ embed: {
|
return message.channel.createMessage({ embeds: [{
|
||||||
color: config.embedColor,
|
color: config.embedColor,
|
||||||
description: `**${wallet.result.available}** LBC is available in the trusted account.\n\n` +
|
description: `**${wallet.result.available}** LBC is available in the trusted account.\n\n` +
|
||||||
`Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` +
|
`Reserved in Supports: ${wallet.result.reserved_subtotals.supports} LBC\n` +
|
||||||
`Total: ${wallet.result.total} LBC`
|
`Total: ${wallet.result.total} LBC`
|
||||||
} });
|
}] });
|
||||||
}
|
}
|
||||||
|
|
||||||
get metadata() { return {
|
get metadata() { return {
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
const ArgumentInterpreter = require('./structures/ArgumentInterpreter');
|
const ArgumentInterpreter = require('./structures/ArgumentInterpreter');
|
||||||
const Util = require('./util');
|
const Util = require('./util');
|
||||||
const config = require('config');
|
const config = require('config');
|
||||||
const { Permissions } = require('oceanic.js');
|
|
||||||
|
|
||||||
module.exports = class Events {
|
module.exports = class Events {
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
|
@ -15,7 +14,7 @@ module.exports = class Events {
|
||||||
|
|
||||||
// Check to see if bot can send messages
|
// Check to see if bot can send messages
|
||||||
if (message.channel.type !== 1 &&
|
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
|
// Message awaiter
|
||||||
if (this.client.messageAwaiter.processHalt(message)) return;
|
if (this.client.messageAwaiter.processHalt(message)) return;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
const Paginator = require('./Paginator');
|
const Paginator = require('./Paginator');
|
||||||
const lodash = require('lodash');
|
const lodash = require('lodash');
|
||||||
const config = require('config');
|
const config = require('config');
|
||||||
const { Permissions } = require('oceanic.js');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A generic pager that shows a list of items
|
* A generic pager that shows a list of items
|
||||||
|
@ -39,7 +38,7 @@ class GenericPager extends Paginator {
|
||||||
*/
|
*/
|
||||||
canEmbed() {
|
canEmbed() {
|
||||||
return this.message.channel.type === 1 ||
|
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')
|
value: displayPage.join('\n')
|
||||||
});
|
});
|
||||||
|
|
||||||
return { embed };
|
return { embeds: [embed] };
|
||||||
} else {
|
} else {
|
||||||
const top = `${this.itemTitle} ` +
|
const top = `${this.itemTitle} ` +
|
||||||
`(${this.items.length}, Page ${this.pageNumber}/${this.maxPages})`;
|
`(${this.items.length}, Page ${this.pageNumber}/${this.maxPages})`;
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
const fetch = require('node-fetch');
|
|
||||||
const AbortController = require('abort-controller');
|
const AbortController = require('abort-controller');
|
||||||
const config = require('config');
|
const config = require('config');
|
||||||
const Util = require('../util');
|
const Util = require('../util');
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
const EventEmitter = require('eventemitter3');
|
const EventEmitter = require('eventemitter3');
|
||||||
const { Permissions } = require('oceanic.js');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class that creates a paging process for messages
|
* A class that creates a paging process for messages
|
||||||
|
@ -88,7 +87,7 @@ class Paginator extends EventEmitter {
|
||||||
*/
|
*/
|
||||||
canPaginate() {
|
canPaginate() {
|
||||||
return this.message.channel.type === 1 ||
|
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() {
|
canManage() {
|
||||||
return this.message.channel.type !== 1 &&
|
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');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
10
src/util.js
10
src/util.js
|
@ -1,8 +1,6 @@
|
||||||
const fetch = require('node-fetch');
|
|
||||||
const config = require('config');
|
const config = require('config');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const { Permissions } = require('oceanic.js');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the utilities for the bot
|
* Represents the utilities for the bot
|
||||||
|
@ -51,7 +49,7 @@ Util.Prefix = {
|
||||||
Util.Prefix.regex(client, prefixes), '$2').replace(/\s\s+/g, ' ').trim();
|
Util.Prefix.regex(client, prefixes), '$2').replace(/\s\s+/g, ' ').trim();
|
||||||
},
|
},
|
||||||
escapeRegex(s) {
|
escapeRegex(s) {
|
||||||
return s.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
|
return s.replace(/[-/\\^$*+?.()|[\]{}!]/g, '\\$&');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -61,11 +59,11 @@ Util.Prefix = {
|
||||||
*/
|
*/
|
||||||
Util.CommandPermissions = {
|
Util.CommandPermissions = {
|
||||||
attach: (client, message) => message.channel.type === 1 ||
|
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 ||
|
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 ||
|
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,
|
guild: (_, message) => !!message.guildID,
|
||||||
elevated: (_, message) => config.elevated.includes(message.author.id),
|
elevated: (_, message) => config.elevated.includes(message.author.id),
|
||||||
curator: (client, message) => {
|
curator: (client, message) => {
|
||||||
|
|
94
yarn.lock
94
yarn.lock
|
@ -2,17 +2,6 @@
|
||||||
# yarn lockfile v1
|
# 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":
|
"@eslint/eslintrc@^1.4.1":
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
|
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
|
||||||
|
@ -109,6 +98,15 @@
|
||||||
mkdirp "^1.0.4"
|
mkdirp "^1.0.4"
|
||||||
rimraf "^3.0.2"
|
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":
|
"@tootallnate/once@1":
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
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"
|
resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.7.1.tgz#cdab1b4779f6b1718a08de89d92d2603b71950cb"
|
||||||
integrity sha512-I6OUIZ5cYRk5lp14xSOAiXjWrfVoMZVjDuevBYgQDYzZIjsf2CAISpEcXOkFAtpAHbmWIDLcZObejqny/9xq5Q==
|
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:
|
abbrev@1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
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"
|
balanced-match "^1.0.0"
|
||||||
concat-map "0.0.1"
|
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:
|
cacache@^15.2.0:
|
||||||
version "15.3.0"
|
version "15.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb"
|
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"
|
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd"
|
||||||
integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==
|
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:
|
doctrine@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
|
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"
|
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
|
||||||
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
|
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:
|
levn@^0.4.1:
|
||||||
version "0.4.1"
|
version "0.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
|
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"
|
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
|
||||||
integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
|
integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
|
||||||
|
|
||||||
node-fetch@2, node-fetch@^2.6.7:
|
node-fetch@^2.6.7:
|
||||||
version "2.6.7"
|
version "2.6.7"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
||||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
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"
|
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||||
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
|
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:
|
once@^1.3.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
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"
|
type-check "^0.4.0"
|
||||||
word-wrap "^1.2.3"
|
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:
|
p-limit@^3.0.2:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
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"
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||||
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
|
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:
|
promise-inflight@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
|
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"
|
resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45"
|
||||||
integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==
|
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:
|
"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3:
|
||||||
version "4.2.3"
|
version "4.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
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"
|
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
||||||
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
|
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
|
||||||
|
|
||||||
tslib@^2.4.0:
|
tweetnacl@^1.0.3:
|
||||||
version "2.4.1"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
|
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
|
||||||
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
|
integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
|
||||||
|
|
||||||
type-check@^0.4.0, type-check@~0.4.0:
|
type-check@^0.4.0, type-check@~0.4.0:
|
||||||
version "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"
|
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
|
||||||
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
|
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:
|
unique-filename@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
|
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"
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||||
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||||
|
|
||||||
ws@^8.11.0, ws@^8.9.0:
|
ws@^8.2.3:
|
||||||
version "8.11.0"
|
version "8.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
|
resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8"
|
||||||
integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
|
integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==
|
||||||
|
|
||||||
yallist@^4.0.0:
|
yallist@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
|
|
Loading…
Add table
Reference in a new issue