├── .gitignore ├── package.json ├── slappey.json ├── src ├── client │ └── client.ts ├── commands │ ├── mod │ │ ├── BanCommand.ts │ │ ├── ChprefixCommand.ts │ │ ├── ChwelcomechannelCommand.ts │ │ ├── KickCommand.ts │ │ └── TimeoutCommand.ts │ └── test │ │ └── TestCommand.ts ├── events │ ├── GuildCreateEvent.ts │ ├── GuildMemberAddEvent.ts │ ├── message │ │ └── MessageEvent.ts │ └── ready │ │ └── ReadyEvent.ts ├── index.ts ├── typeorm │ └── entities │ │ ├── GuildBanLog.ts │ │ ├── GuildConfiguration.ts │ │ ├── ModerationLog.ts │ │ └── index.ts └── utils │ ├── registry.ts │ ├── structures │ ├── BaseCommand.ts │ └── BaseEvent.ts │ └── types.ts ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "discord-bot-v13", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "dependencies": { 7 | "discord.js": "^13.5.0", 8 | "dotenv": "^10.0.0", 9 | "mysql2": "^2.3.3", 10 | "reflect-metadata": "^0.1.13", 11 | "socket.io-client": "^4.4.1", 12 | "typeorm": "^0.2.41" 13 | }, 14 | "devDependencies": { 15 | "@types/node": "^17.0.5", 16 | "@types/socket.io-client": "^3.0.0", 17 | "nodemon": "^2.0.15", 18 | "typescript": "^4.5.4" 19 | }, 20 | "scripts": { 21 | "dev": "nodemon ./src/index.ts", 22 | "start": "node ./build/index.js", 23 | "build": "tsc" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /slappey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "discord-bot-v13", 3 | "language": "typescript", 4 | "manager": "yarn", 5 | "prefix": "$" 6 | } 7 | -------------------------------------------------------------------------------- /src/client/client.ts: -------------------------------------------------------------------------------- 1 | import { Client, ClientOptions, Collection } from 'discord.js'; 2 | import BaseEvent from '../utils/structures/BaseEvent'; 3 | import BaseCommand from '../utils/structures/BaseCommand'; 4 | import { GuildConfiguration } from '../typeorm/entities/GuildConfiguration'; 5 | 6 | export default class DiscordClient extends Client { 7 | private _commands = new Collection(); 8 | private _events = new Collection(); 9 | private _prefix: string = '!'; 10 | private _configs = new Collection(); 11 | 12 | constructor(options: ClientOptions) { 13 | super(options); 14 | } 15 | 16 | get commands(): Collection { 17 | return this._commands; 18 | } 19 | get events(): Collection { 20 | return this._events; 21 | } 22 | get prefix(): string { 23 | return this._prefix; 24 | } 25 | set prefix(prefix: string) { 26 | this._prefix = prefix; 27 | } 28 | get configs() { 29 | return this._configs; 30 | } 31 | set configs(guildConfigs: Collection) { 32 | this._configs = guildConfigs; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/commands/mod/BanCommand.ts: -------------------------------------------------------------------------------- 1 | import { Message } from 'discord.js'; 2 | import BaseCommand from '../../utils/structures/BaseCommand'; 3 | import DiscordClient from '../../client/client'; 4 | import { getRepository, Repository } from 'typeorm'; 5 | import { GuildBanLog } from '../../typeorm/entities/GuildBanLog'; 6 | import { ModerationLog } from '../../typeorm/entities/ModerationLog'; 7 | 8 | export default class BanCommand extends BaseCommand { 9 | constructor( 10 | private readonly modLogRepository: Repository = getRepository( 11 | ModerationLog 12 | ) 13 | ) { 14 | super('ban', 'mod', []); 15 | } 16 | 17 | async run(client: DiscordClient, message: Message, args: Array) { 18 | console.log(args); 19 | const [memberId, ...rest] = args; 20 | const reason = rest.join(' '); 21 | try { 22 | // const member = await message.guild?.members.fetch(memberId)!; 23 | // await member.ban({ reason }); 24 | const guildBan = this.modLogRepository.create({ 25 | guildId: message.guildId!, 26 | issuedBy: message.author.id, 27 | issuedOn: new Date(), 28 | type: 'ban', 29 | reason, 30 | memberId, 31 | }); 32 | await this.modLogRepository.save(guildBan); 33 | } catch (err) { 34 | console.log(err); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/commands/mod/ChprefixCommand.ts: -------------------------------------------------------------------------------- 1 | import { Message } from 'discord.js'; 2 | import BaseCommand from '../../utils/structures/BaseCommand'; 3 | import DiscordClient from '../../client/client'; 4 | import { getRepository } from 'typeorm'; 5 | import { GuildConfiguration } from '../../typeorm/entities/GuildConfiguration'; 6 | 7 | export default class ChprefixCommand extends BaseCommand { 8 | constructor( 9 | private readonly guildConfigRepository = getRepository(GuildConfiguration) 10 | ) { 11 | super('chprefix', 'mod', []); 12 | } 13 | 14 | async run(client: DiscordClient, message: Message, args: Array) { 15 | if (!args.length) { 16 | message.channel.send('Please provide an argument!'); 17 | return; 18 | } 19 | const [newPrefix] = args; 20 | try { 21 | const config = client.configs.get(message.guildId!); 22 | const updatedConfig = await this.guildConfigRepository.save({ 23 | ...config, 24 | prefix: newPrefix, 25 | }); 26 | console.log(updatedConfig); 27 | message.channel.send('Updated prefix successfully!'); 28 | client.configs.set(message.guildId!, updatedConfig); 29 | console.log(client.configs); 30 | } catch (err) { 31 | console.log(err); 32 | message.channel.send('Something went wrong.'); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/commands/mod/ChwelcomechannelCommand.ts: -------------------------------------------------------------------------------- 1 | import { Message } from 'discord.js'; 2 | import BaseCommand from '../../utils/structures/BaseCommand'; 3 | import DiscordClient from '../../client/client'; 4 | import { GuildConfiguration } from '../../typeorm/entities/GuildConfiguration'; 5 | import { getRepository } from 'typeorm'; 6 | 7 | export default class ChwelcomechannelCommand extends BaseCommand { 8 | constructor( 9 | private readonly guildConfigRepository = getRepository(GuildConfiguration) 10 | ) { 11 | super('chwelcomechannel', 'mod', []); 12 | } 13 | 14 | async run(client: DiscordClient, message: Message, args: Array) { 15 | if (!args.length) { 16 | message.channel.send('Please provide an argument!'); 17 | return; 18 | } 19 | const [newChannelId] = args; 20 | try { 21 | const config = client.configs.get(message.guildId!); 22 | const updatedConfig = await this.guildConfigRepository.save({ 23 | ...config, 24 | welcomeChannelId: newChannelId, 25 | }); 26 | console.log(updatedConfig); 27 | message.channel.send('Updated Welcome Channel successfully!'); 28 | client.configs.set(message.guildId!, updatedConfig); 29 | console.log(client.configs); 30 | } catch (err) { 31 | console.log(err); 32 | message.channel.send('Something went wrong.'); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/commands/mod/KickCommand.ts: -------------------------------------------------------------------------------- 1 | import { Message } from 'discord.js'; 2 | import BaseCommand from '../../utils/structures/BaseCommand'; 3 | import DiscordClient from '../../client/client'; 4 | import { getRepository, Repository } from 'typeorm'; 5 | import { ModerationLog } from '../../typeorm/entities/ModerationLog'; 6 | 7 | export default class KickCommand extends BaseCommand { 8 | constructor( 9 | private readonly modLogRepository: Repository = getRepository( 10 | ModerationLog 11 | ) 12 | ) { 13 | super('kick', 'mod', []); 14 | } 15 | 16 | async run(client: DiscordClient, message: Message, args: Array) { 17 | console.log(args); 18 | const [memberId, ...rest] = args; 19 | const reason = rest.join(' '); 20 | try { 21 | // const member = await message.guild?.members.fetch(memberId)!; 22 | // await member.kick(reason); 23 | const date = new Date(); 24 | date.setDate(date.getDate() - 6); 25 | const modLog = this.modLogRepository.create({ 26 | guildId: message.guildId!, 27 | memberId, 28 | issuedBy: message.author.id, 29 | issuedOn: date, 30 | reason, 31 | type: 'kick', 32 | }); 33 | await this.modLogRepository.save(modLog); 34 | } catch (err) { 35 | console.log(err); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/commands/mod/TimeoutCommand.ts: -------------------------------------------------------------------------------- 1 | import { Message } from 'discord.js'; 2 | import BaseCommand from '../../utils/structures/BaseCommand'; 3 | import DiscordClient from '../../client/client'; 4 | import { getRepository, Repository } from 'typeorm'; 5 | import { ModerationLog } from '../../typeorm/entities/ModerationLog'; 6 | 7 | export default class TimeoutCommand extends BaseCommand { 8 | constructor( 9 | private readonly modLogRepository: Repository = getRepository( 10 | ModerationLog 11 | ) 12 | ) { 13 | super('timeout', 'mod', []); 14 | } 15 | 16 | async run(client: DiscordClient, message: Message, args: Array) { 17 | console.log(args); 18 | const [memberId, timeoutStr, ...rest] = args; 19 | const reason = rest.join(' '); 20 | const time = parseInt(timeoutStr); 21 | if (isNaN(time)) { 22 | message.channel.send('Invalid Time'); 23 | return; 24 | } 25 | try { 26 | const member = await message.guild?.members.fetch(memberId)!; 27 | await member.timeout(time * 1000, reason); 28 | const modLog = this.modLogRepository.create({ 29 | guildId: message.guildId!, 30 | memberId, 31 | issuedBy: message.author.id, 32 | issuedOn: new Date(), 33 | reason, 34 | type: 'timeout', 35 | }); 36 | await this.modLogRepository.save(modLog); 37 | } catch (err) { 38 | console.log(err); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/commands/test/TestCommand.ts: -------------------------------------------------------------------------------- 1 | import { Message } from 'discord.js'; 2 | import BaseCommand from '../../utils/structures/BaseCommand'; 3 | import DiscordClient from '../../client/client'; 4 | 5 | export default class TestCommand extends BaseCommand { 6 | constructor() { 7 | super('test', 'testing', []); 8 | } 9 | 10 | async run(client: DiscordClient, message: Message, args: Array) { 11 | message.channel.send('Test command works'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/events/GuildCreateEvent.ts: -------------------------------------------------------------------------------- 1 | // https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-guildCreate 2 | import { Guild } from 'discord.js'; 3 | import BaseEvent from '../utils/structures/BaseEvent'; 4 | import DiscordClient from '../client/client'; 5 | import { getRepository } from 'typeorm'; 6 | import { GuildConfiguration } from '../typeorm/entities/GuildConfiguration'; 7 | 8 | export default class GuildCreateEvent extends BaseEvent { 9 | constructor( 10 | private readonly guildConfigRepository = getRepository(GuildConfiguration) 11 | ) { 12 | super('guildCreate'); 13 | } 14 | 15 | async run(client: DiscordClient, guild: Guild) { 16 | console.log('Hello, World!'); 17 | console.log(`Joined ${guild.name}`); 18 | const config = await this.guildConfigRepository.findOne({ 19 | guildId: guild.id, 20 | }); 21 | if (config) { 22 | console.log('A configuration was found!'); 23 | client.configs.set(guild.id, config); 24 | console.log(client.configs); 25 | } else { 26 | console.log('A configuration was NOT found. Creating One.'); 27 | const newConfig = this.guildConfigRepository.create({ 28 | guildId: guild.id, 29 | }); 30 | const savedConfig = await this.guildConfigRepository.save(newConfig); 31 | client.configs.set(guild.id, savedConfig); 32 | console.log(client.configs); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/events/GuildMemberAddEvent.ts: -------------------------------------------------------------------------------- 1 | // https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-guildMemberAdd 2 | import { GuildMember, TextChannel } from 'discord.js'; 3 | import BaseEvent from '../utils/structures/BaseEvent'; 4 | import DiscordClient from '../client/client'; 5 | 6 | export default class GuildMemberAddEvent extends BaseEvent { 7 | constructor() { 8 | super('guildMemberAdd'); 9 | } 10 | 11 | async run(client: DiscordClient, member: GuildMember) { 12 | console.log(`Guild Member Joined`); 13 | console.log(`Joined ${member.guild.id} ${member.guild.name}`); 14 | const config = client.configs.get(member.guild.id); 15 | console.log(config); 16 | if (!config) return; 17 | if (config.welcomeChannelId) { 18 | const channel = member.guild.channels.cache.get( 19 | config.welcomeChannelId 20 | ) as TextChannel; 21 | if (!channel) console.log('No welcome channel found'); 22 | else channel.send(`Welcome ${member}`); 23 | } else { 24 | console.log('No welcome channel set.'); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/events/message/MessageEvent.ts: -------------------------------------------------------------------------------- 1 | import BaseEvent from '../../utils/structures/BaseEvent'; 2 | import { Message } from 'discord.js'; 3 | import DiscordClient from '../../client/client'; 4 | 5 | export default class MessageEvent extends BaseEvent { 6 | constructor() { 7 | super('messageCreate'); 8 | } 9 | 10 | async run(client: DiscordClient, message: Message) { 11 | if (message.author.bot) return; 12 | const config = client.configs.get(message.guildId!); 13 | if (!config) { 14 | message.channel.send('No configuration set.'); 15 | return; 16 | } 17 | if (message.content.startsWith(config.prefix)) { 18 | const [cmdName, ...cmdArgs] = message.content 19 | .slice(config.prefix.length) 20 | .trim() 21 | .split(/\s+/); 22 | const command = client.commands.get(cmdName); 23 | if (command) { 24 | command.run(client, message, cmdArgs); 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/events/ready/ReadyEvent.ts: -------------------------------------------------------------------------------- 1 | import BaseEvent from '../../utils/structures/BaseEvent'; 2 | import DiscordClient from '../../client/client'; 3 | 4 | export default class ReadyEvent extends BaseEvent { 5 | constructor() { 6 | super('ready'); 7 | } 8 | async run (client: DiscordClient) { 9 | console.log('Bot has logged in.'); 10 | } 11 | } -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | require('dotenv').config(); 2 | import 'reflect-metadata'; 3 | import { registerCommands, registerEvents } from './utils/registry'; 4 | import DiscordClient from './client/client'; 5 | import { Collection, Intents } from 'discord.js'; 6 | import { createConnection, getRepository } from 'typeorm'; 7 | import { GuildConfiguration } from './typeorm/entities/GuildConfiguration'; 8 | import { io } from 'socket.io-client'; 9 | import { entities } from './typeorm/entities'; 10 | 11 | const client = new DiscordClient({ 12 | intents: [ 13 | Intents.FLAGS.GUILDS, 14 | Intents.FLAGS.GUILD_MESSAGES, 15 | Intents.FLAGS.GUILD_MEMBERS, 16 | ], 17 | }); 18 | 19 | (async () => { 20 | const socket = io('http://localhost:3001'); 21 | 22 | socket.on('guildPrefixUpdate', (config: GuildConfiguration) => { 23 | console.log('guildPrefixUpdate'); 24 | console.log(config); 25 | console.log(client.configs); 26 | client.configs.set(config.guildId, config); 27 | console.log(client.configs); 28 | }); 29 | 30 | await createConnection({ 31 | type: 'mysql', 32 | host: process.env.MYSQL_DB_HOST, 33 | port: 3306, 34 | username: process.env.MYSQL_DB_USERNAME, 35 | password: process.env.MYSQL_DB_PASSWORD, 36 | database: process.env.MYSQL_DB_DATABASE, 37 | synchronize: true, 38 | entities: entities, 39 | }); 40 | 41 | const configRepo = getRepository(GuildConfiguration); 42 | const guildConfigs = await configRepo.find(); 43 | const configs = new Collection(); 44 | guildConfigs.forEach((config) => configs.set(config.guildId, config)); 45 | 46 | client.configs = configs; 47 | 48 | await registerCommands(client, '../commands'); 49 | await registerEvents(client, '../events'); 50 | await client.login(process.env.DJS_BOT_TOKEN); 51 | })(); 52 | -------------------------------------------------------------------------------- /src/typeorm/entities/GuildBanLog.ts: -------------------------------------------------------------------------------- 1 | import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; 2 | 3 | @Entity({ name: 'guild_bans' }) 4 | export class GuildBanLog { 5 | @PrimaryGeneratedColumn() 6 | id: number; 7 | 8 | @Column({ name: 'guild_id' }) 9 | guildId: string; 10 | 11 | @Column({ name: 'banned_member_id' }) 12 | bannedMemberId: string; 13 | 14 | @Column({ name: 'issued_by' }) 15 | issuedBy: string; 16 | 17 | @Column() 18 | reason?: string; 19 | 20 | @Column({ name: 'issued_on' }) 21 | issuedOn: Date; 22 | } 23 | -------------------------------------------------------------------------------- /src/typeorm/entities/GuildConfiguration.ts: -------------------------------------------------------------------------------- 1 | import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; 2 | 3 | @Entity({ name: 'guild_configurations' }) 4 | export class GuildConfiguration { 5 | @PrimaryGeneratedColumn() 6 | id: number; 7 | 8 | @Column({ unique: true, name: 'guild_id' }) 9 | guildId: string; 10 | 11 | @Column({ default: '?' }) 12 | prefix: string; 13 | 14 | @Column({ name: 'welcome_channel_id', nullable: true }) 15 | welcomeChannelId: string; 16 | } 17 | -------------------------------------------------------------------------------- /src/typeorm/entities/ModerationLog.ts: -------------------------------------------------------------------------------- 1 | import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; 2 | import { ModerationActionType } from '../../utils/types'; 3 | 4 | @Entity({ name: 'moderation_logs' }) 5 | export class ModerationLog { 6 | @PrimaryGeneratedColumn() 7 | id: number; 8 | 9 | @Column({ name: 'guild_id' }) 10 | guildId: string; 11 | 12 | @Column({ name: 'member_id' }) 13 | memberId: string; 14 | 15 | @Column({ name: 'issued_by' }) 16 | issuedBy: string; 17 | 18 | @Column() 19 | reason?: string; 20 | 21 | @Column({ name: 'issued_on' }) 22 | issuedOn: Date; 23 | 24 | @Column() 25 | type: ModerationActionType; 26 | } 27 | -------------------------------------------------------------------------------- /src/typeorm/entities/index.ts: -------------------------------------------------------------------------------- 1 | import { GuildBanLog } from './GuildBanLog'; 2 | import { GuildConfiguration } from './GuildConfiguration'; 3 | import { ModerationLog } from './ModerationLog'; 4 | 5 | export const entities = [GuildBanLog, GuildConfiguration, ModerationLog]; 6 | -------------------------------------------------------------------------------- /src/utils/registry.ts: -------------------------------------------------------------------------------- 1 | 2 | import path from 'path'; 3 | import { promises as fs } from 'fs'; 4 | import DiscordClient from '../client/client'; 5 | 6 | export async function registerCommands(client: DiscordClient, dir: string = '') { 7 | const filePath = path.join(__dirname, dir); 8 | const files = await fs.readdir(filePath); 9 | for (const file of files) { 10 | const stat = await fs.lstat(path.join(filePath, file)); 11 | if (stat.isDirectory()) registerCommands(client, path.join(dir, file)); 12 | if (file.endsWith('.js') || file.endsWith('.ts')) { 13 | const { default: Command } = await import(path.join(dir, file)); 14 | const command = new Command(); 15 | client.commands.set(command.getName(), command); 16 | command.getAliases().forEach((alias: string) => { 17 | client.commands.set(alias, command); 18 | }); 19 | } 20 | } 21 | } 22 | 23 | export async function registerEvents(client: DiscordClient, dir: string = '') { 24 | const filePath = path.join(__dirname, dir); 25 | const files = await fs.readdir(filePath); 26 | for (const file of files) { 27 | const stat = await fs.lstat(path.join(filePath, file)); 28 | if (stat.isDirectory()) registerEvents(client, path.join(dir, file)); 29 | if (file.endsWith('.js') || file.endsWith('.ts')) { 30 | const { default: Event } = await import(path.join(dir, file)); 31 | const event = new Event(); 32 | client.events.set(event.getName(), event); 33 | client.on(event.getName(), event.run.bind(event, client)); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/utils/structures/BaseCommand.ts: -------------------------------------------------------------------------------- 1 | 2 | import { Message } from 'discord.js'; 3 | import DiscordClient from '../../client/client'; 4 | 5 | export default abstract class BaseCommand { 6 | constructor(private name: string, private category: string, private aliases: Array) {} 7 | 8 | getName(): string { return this.name; } 9 | getCategory(): string { return this.category; } 10 | getAliases(): Array { return this.aliases; } 11 | 12 | abstract run(client: DiscordClient, message: Message, args: Array | null): Promise; 13 | } -------------------------------------------------------------------------------- /src/utils/structures/BaseEvent.ts: -------------------------------------------------------------------------------- 1 | 2 | import DiscordClient from '../../client/client'; 3 | 4 | export default abstract class BaseEvent { 5 | constructor(private name: string) { } 6 | 7 | getName(): string { return this.name; } 8 | abstract run(client: DiscordClient, ...args: any): void; 9 | } 10 | -------------------------------------------------------------------------------- /src/utils/types.ts: -------------------------------------------------------------------------------- 1 | export type ModerationActionType = 'ban' | 'kick' | 'timeout'; 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es6" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | "experimentalDecorators": true /* Enable experimental support for TC39 stage 2 draft decorators. */, 18 | "emitDecoratorMetadata": true /* Emit design-type metadata for decorated declarations in source files. */, 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ 22 | // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | 26 | /* Modules */ 27 | "module": "commonjs" /* Specify what module code is generated. */, 28 | // "rootDir": "./", /* Specify the root folder within your source files. */ 29 | // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ 30 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 31 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 32 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 33 | // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ 34 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 35 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 36 | "resolveJsonModule": true /* Enable importing .json files */, 37 | // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ 38 | 39 | /* JavaScript Support */ 40 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ 41 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 42 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ 43 | 44 | /* Emit */ 45 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 46 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 47 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 48 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 49 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ 50 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 51 | // "removeComments": true, /* Disable emitting comments. */ 52 | // "noEmit": true, /* Disable emitting files from a compilation. */ 53 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 54 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ 55 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 56 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 57 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 58 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 59 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 60 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 61 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 62 | // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ 63 | // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ 64 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 65 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ 66 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 67 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 68 | 69 | /* Interop Constraints */ 70 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 71 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 72 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, 73 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 74 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 75 | 76 | /* Type Checking */ 77 | "strict": true /* Enable all strict type-checking options. */, 78 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ 79 | // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ 80 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 81 | // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ 82 | "strictPropertyInitialization": false /* Check for class properties that are declared but not set in the constructor. */, 83 | // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ 84 | // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ 85 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 86 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ 87 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ 88 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 89 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 90 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 91 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 92 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 93 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ 94 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 95 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 96 | 97 | /* Completeness */ 98 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 99 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@discordjs/builders@^0.11.0": 6 | version "0.11.0" 7 | resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-0.11.0.tgz#4102abe3e0cd093501f3f71931df43eb92f5b0cc" 8 | integrity sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg== 9 | dependencies: 10 | "@sindresorhus/is" "^4.2.0" 11 | discord-api-types "^0.26.0" 12 | ts-mixer "^6.0.0" 13 | tslib "^2.3.1" 14 | zod "^3.11.6" 15 | 16 | "@discordjs/collection@^0.4.0": 17 | version "0.4.0" 18 | resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.4.0.tgz#b6488286a1cc7b41b644d7e6086f25a1c1e6f837" 19 | integrity sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw== 20 | 21 | "@node-redis/client@^1.0.1": 22 | version "1.0.1" 23 | resolved "https://registry.yarnpkg.com/@node-redis/client/-/client-1.0.1.tgz#ddca6021097ce1026fedc193cac8c36b05c6cad8" 24 | integrity sha512-o0I4LdzJXP6QYxRnBPrQ7cIG5tF3SNM/PBnjC3mV6QkzIiGRElzWqSr9a9JCJdcyB1SIA80bhgGhpdTpCQ1Sdw== 25 | dependencies: 26 | cluster-key-slot "1.1.0" 27 | generic-pool "3.8.2" 28 | redis-parser "3.0.0" 29 | yallist "4.0.0" 30 | 31 | "@node-redis/json@^1.0.1": 32 | version "1.0.1" 33 | resolved "https://registry.yarnpkg.com/@node-redis/json/-/json-1.0.1.tgz#8cd987c1855392adf21bc4f06163a7eda97a40a3" 34 | integrity sha512-2EB96ZN0yUr4mgA9Odme48jX8eF5Ji0jrsRn4rLfEhME7L3rHLdKeUfxJKxbPOxadP6k8+6ViElxPZrKuV2nvQ== 35 | 36 | "@node-redis/search@^1.0.1": 37 | version "1.0.1" 38 | resolved "https://registry.yarnpkg.com/@node-redis/search/-/search-1.0.1.tgz#8d0936049f4858b9aefab40524ce8e5a52e5d08e" 39 | integrity sha512-iA2Gw6gr0X6IfNSjTyme9W1tDlLkwQ1bPApo4s8aVwZ2Ju8Z4COVik0vT6BJPRin79f5xPZgnaec3DIoC2UpHA== 40 | 41 | "@node-redis/time-series@^1.0.0": 42 | version "1.0.0" 43 | resolved "https://registry.yarnpkg.com/@node-redis/time-series/-/time-series-1.0.0.tgz#3db4caa63d7c158f0b73ab6cd46bd6c9c187dfaf" 44 | integrity sha512-QcaCIL/DlYJXedSfmjF+IRxKJbBUXBrjA5Gv0IiPlXXFFOkRnbPGKq6hmwBAAWyk1U03wyBHDFKVS3/9GnZV8g== 45 | 46 | "@sapphire/async-queue@^1.1.9": 47 | version "1.1.9" 48 | resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.1.9.tgz#ce69611c8753c4affd905a7ef43061c7eb95c01b" 49 | integrity sha512-CbXaGwwlEMq+l1TRu01FJCvySJ1CEFKFclHT48nIfNeZXaAAmmwwy7scUKmYHPUa3GhoMp6Qr1B3eAJux6XgOQ== 50 | 51 | "@sindresorhus/is@^0.14.0": 52 | version "0.14.0" 53 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" 54 | integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== 55 | 56 | "@sindresorhus/is@^4.2.0": 57 | version "4.2.0" 58 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca" 59 | integrity sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw== 60 | 61 | "@socket.io/component-emitter@~3.0.0": 62 | version "3.0.0" 63 | resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz#8863915676f837d9dad7b76f50cb500c1e9422e9" 64 | integrity sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q== 65 | 66 | "@sqltools/formatter@^1.2.2": 67 | version "1.2.3" 68 | resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.3.tgz#1185726610acc37317ddab11c3c7f9066966bd20" 69 | integrity sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg== 70 | 71 | "@szmarczak/http-timer@^1.1.2": 72 | version "1.1.2" 73 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" 74 | integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== 75 | dependencies: 76 | defer-to-connect "^1.0.1" 77 | 78 | "@types/node-fetch@^2.5.12": 79 | version "2.5.12" 80 | resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" 81 | integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== 82 | dependencies: 83 | "@types/node" "*" 84 | form-data "^3.0.0" 85 | 86 | "@types/node@*", "@types/node@^17.0.5": 87 | version "17.0.5" 88 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.5.tgz#57ca67ec4e57ad9e4ef5a6bab48a15387a1c83e0" 89 | integrity sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw== 90 | 91 | "@types/socket.io-client@^3.0.0": 92 | version "3.0.0" 93 | resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-3.0.0.tgz#d0b8ea22121b7c1df68b6a923002f9c8e3cefb42" 94 | integrity sha512-s+IPvFoEIjKA3RdJz/Z2dGR4gLgysKi8owcnrVwNjgvc01Lk68LJDDsG2GRqegFITcxmvCMYM7bhMpwEMlHmDg== 95 | dependencies: 96 | socket.io-client "*" 97 | 98 | "@types/ws@^8.2.2": 99 | version "8.2.2" 100 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.2.2.tgz#7c5be4decb19500ae6b3d563043cd407bf366c21" 101 | integrity sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg== 102 | dependencies: 103 | "@types/node" "*" 104 | 105 | "@types/zen-observable@0.8.3": 106 | version "0.8.3" 107 | resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3" 108 | integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== 109 | 110 | abbrev@1: 111 | version "1.1.1" 112 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 113 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 114 | 115 | ansi-align@^3.0.0: 116 | version "3.0.1" 117 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" 118 | integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== 119 | dependencies: 120 | string-width "^4.1.0" 121 | 122 | ansi-regex@^5.0.1: 123 | version "5.0.1" 124 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 125 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 126 | 127 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 128 | version "4.3.0" 129 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 130 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 131 | dependencies: 132 | color-convert "^2.0.1" 133 | 134 | any-promise@^1.0.0: 135 | version "1.3.0" 136 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 137 | integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= 138 | 139 | anymatch@~3.1.2: 140 | version "3.1.2" 141 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 142 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 143 | dependencies: 144 | normalize-path "^3.0.0" 145 | picomatch "^2.0.4" 146 | 147 | app-root-path@^3.0.0: 148 | version "3.0.0" 149 | resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" 150 | integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== 151 | 152 | argparse@^2.0.1: 153 | version "2.0.1" 154 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 155 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 156 | 157 | asynckit@^0.4.0: 158 | version "0.4.0" 159 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 160 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 161 | 162 | backo2@~1.0.2: 163 | version "1.0.2" 164 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 165 | integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= 166 | 167 | balanced-match@^1.0.0: 168 | version "1.0.2" 169 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 170 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 171 | 172 | base64-arraybuffer@~1.0.1: 173 | version "1.0.1" 174 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz#87bd13525626db4a9838e00a508c2b73efcf348c" 175 | integrity sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA== 176 | 177 | base64-js@^1.3.1: 178 | version "1.5.1" 179 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 180 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 181 | 182 | binary-extensions@^2.0.0: 183 | version "2.2.0" 184 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 185 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 186 | 187 | boxen@^5.0.0: 188 | version "5.1.2" 189 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" 190 | integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== 191 | dependencies: 192 | ansi-align "^3.0.0" 193 | camelcase "^6.2.0" 194 | chalk "^4.1.0" 195 | cli-boxes "^2.2.1" 196 | string-width "^4.2.2" 197 | type-fest "^0.20.2" 198 | widest-line "^3.1.0" 199 | wrap-ansi "^7.0.0" 200 | 201 | brace-expansion@^1.1.7: 202 | version "1.1.11" 203 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 204 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 205 | dependencies: 206 | balanced-match "^1.0.0" 207 | concat-map "0.0.1" 208 | 209 | braces@~3.0.2: 210 | version "3.0.2" 211 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 212 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 213 | dependencies: 214 | fill-range "^7.0.1" 215 | 216 | buffer@^6.0.3: 217 | version "6.0.3" 218 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" 219 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 220 | dependencies: 221 | base64-js "^1.3.1" 222 | ieee754 "^1.2.1" 223 | 224 | cacheable-request@^6.0.0: 225 | version "6.1.0" 226 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" 227 | integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== 228 | dependencies: 229 | clone-response "^1.0.2" 230 | get-stream "^5.1.0" 231 | http-cache-semantics "^4.0.0" 232 | keyv "^3.0.0" 233 | lowercase-keys "^2.0.0" 234 | normalize-url "^4.1.0" 235 | responselike "^1.0.2" 236 | 237 | camelcase@^6.2.0: 238 | version "6.2.1" 239 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" 240 | integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== 241 | 242 | chalk@^4.0.0, chalk@^4.1.0: 243 | version "4.1.2" 244 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 245 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 246 | dependencies: 247 | ansi-styles "^4.1.0" 248 | supports-color "^7.1.0" 249 | 250 | chokidar@^3.5.2: 251 | version "3.5.2" 252 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" 253 | integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== 254 | dependencies: 255 | anymatch "~3.1.2" 256 | braces "~3.0.2" 257 | glob-parent "~5.1.2" 258 | is-binary-path "~2.1.0" 259 | is-glob "~4.0.1" 260 | normalize-path "~3.0.0" 261 | readdirp "~3.6.0" 262 | optionalDependencies: 263 | fsevents "~2.3.2" 264 | 265 | ci-info@^2.0.0: 266 | version "2.0.0" 267 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" 268 | integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 269 | 270 | cli-boxes@^2.2.1: 271 | version "2.2.1" 272 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" 273 | integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== 274 | 275 | cli-highlight@^2.1.11: 276 | version "2.1.11" 277 | resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" 278 | integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== 279 | dependencies: 280 | chalk "^4.0.0" 281 | highlight.js "^10.7.1" 282 | mz "^2.4.0" 283 | parse5 "^5.1.1" 284 | parse5-htmlparser2-tree-adapter "^6.0.0" 285 | yargs "^16.0.0" 286 | 287 | cliui@^7.0.2: 288 | version "7.0.4" 289 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 290 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 291 | dependencies: 292 | string-width "^4.2.0" 293 | strip-ansi "^6.0.0" 294 | wrap-ansi "^7.0.0" 295 | 296 | clone-response@^1.0.2: 297 | version "1.0.2" 298 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 299 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 300 | dependencies: 301 | mimic-response "^1.0.0" 302 | 303 | cluster-key-slot@1.1.0: 304 | version "1.1.0" 305 | resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" 306 | integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== 307 | 308 | color-convert@^2.0.1: 309 | version "2.0.1" 310 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 311 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 312 | dependencies: 313 | color-name "~1.1.4" 314 | 315 | color-name@~1.1.4: 316 | version "1.1.4" 317 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 318 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 319 | 320 | combined-stream@^1.0.8: 321 | version "1.0.8" 322 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 323 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 324 | dependencies: 325 | delayed-stream "~1.0.0" 326 | 327 | concat-map@0.0.1: 328 | version "0.0.1" 329 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 330 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 331 | 332 | configstore@^5.0.1: 333 | version "5.0.1" 334 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" 335 | integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== 336 | dependencies: 337 | dot-prop "^5.2.0" 338 | graceful-fs "^4.1.2" 339 | make-dir "^3.0.0" 340 | unique-string "^2.0.0" 341 | write-file-atomic "^3.0.0" 342 | xdg-basedir "^4.0.0" 343 | 344 | crypto-random-string@^2.0.0: 345 | version "2.0.0" 346 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" 347 | integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== 348 | 349 | debug@^3.2.7: 350 | version "3.2.7" 351 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 352 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 353 | dependencies: 354 | ms "^2.1.1" 355 | 356 | debug@^4.3.1, debug@~4.3.1, debug@~4.3.2: 357 | version "4.3.3" 358 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" 359 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== 360 | dependencies: 361 | ms "2.1.2" 362 | 363 | decompress-response@^3.3.0: 364 | version "3.3.0" 365 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" 366 | integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= 367 | dependencies: 368 | mimic-response "^1.0.0" 369 | 370 | deep-extend@^0.6.0: 371 | version "0.6.0" 372 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 373 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 374 | 375 | defer-to-connect@^1.0.1: 376 | version "1.1.3" 377 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" 378 | integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== 379 | 380 | delayed-stream@~1.0.0: 381 | version "1.0.0" 382 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 383 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 384 | 385 | denque@^2.0.1: 386 | version "2.0.1" 387 | resolved "https://registry.yarnpkg.com/denque/-/denque-2.0.1.tgz#bcef4c1b80dc32efe97515744f21a4229ab8934a" 388 | integrity sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ== 389 | 390 | discord-api-types@^0.26.0: 391 | version "0.26.0" 392 | resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.26.0.tgz#0134c6ee919035f2075ac1af9cdc0898b8dae71d" 393 | integrity sha512-bnUltSHpQLzTVZTMjm+iNgVhAbtm5oAKHrhtiPaZoxprbm1UtuCZCsG0yXM61NamWfeSz7xnLvgFc50YzVJ5cQ== 394 | 395 | discord.js@^13.5.0: 396 | version "13.5.0" 397 | resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-13.5.0.tgz#f9ca9e629f2de0fb138e8c916fa93e40d70631f5" 398 | integrity sha512-K+ZcB0f+wA1ZzDhz3hlaAi4Ap7jSvVEUZ+U29T4DMoiNNUv22F4vu1byrOq8GyyLLDFiZ3iSudea0MvSHu3fQA== 399 | dependencies: 400 | "@discordjs/builders" "^0.11.0" 401 | "@discordjs/collection" "^0.4.0" 402 | "@sapphire/async-queue" "^1.1.9" 403 | "@types/node-fetch" "^2.5.12" 404 | "@types/ws" "^8.2.2" 405 | discord-api-types "^0.26.0" 406 | form-data "^4.0.0" 407 | node-fetch "^2.6.1" 408 | ws "^8.4.0" 409 | 410 | dot-prop@^5.2.0: 411 | version "5.3.0" 412 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" 413 | integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== 414 | dependencies: 415 | is-obj "^2.0.0" 416 | 417 | dotenv@^10.0.0: 418 | version "10.0.0" 419 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" 420 | integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== 421 | 422 | dotenv@^8.2.0: 423 | version "8.6.0" 424 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" 425 | integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== 426 | 427 | duplexer3@^0.1.4: 428 | version "0.1.4" 429 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 430 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 431 | 432 | emoji-regex@^8.0.0: 433 | version "8.0.0" 434 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 435 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 436 | 437 | end-of-stream@^1.1.0: 438 | version "1.4.4" 439 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 440 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 441 | dependencies: 442 | once "^1.4.0" 443 | 444 | engine.io-client@~6.1.1: 445 | version "6.1.1" 446 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.1.1.tgz#800d4b9db5487d169686729e5bd887afa78d36b0" 447 | integrity sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g== 448 | dependencies: 449 | "@socket.io/component-emitter" "~3.0.0" 450 | debug "~4.3.1" 451 | engine.io-parser "~5.0.0" 452 | has-cors "1.1.0" 453 | parseqs "0.0.6" 454 | parseuri "0.0.6" 455 | ws "~8.2.3" 456 | xmlhttprequest-ssl "~2.0.0" 457 | yeast "0.1.2" 458 | 459 | engine.io-parser@~5.0.0: 460 | version "5.0.2" 461 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.2.tgz#69a2ec3ed431da021f0666712d07f106bcffa6ce" 462 | integrity sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g== 463 | dependencies: 464 | base64-arraybuffer "~1.0.1" 465 | 466 | escalade@^3.1.1: 467 | version "3.1.1" 468 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 469 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 470 | 471 | escape-goat@^2.0.0: 472 | version "2.1.1" 473 | resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" 474 | integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== 475 | 476 | fill-range@^7.0.1: 477 | version "7.0.1" 478 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 479 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 480 | dependencies: 481 | to-regex-range "^5.0.1" 482 | 483 | form-data@^3.0.0: 484 | version "3.0.1" 485 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" 486 | integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== 487 | dependencies: 488 | asynckit "^0.4.0" 489 | combined-stream "^1.0.8" 490 | mime-types "^2.1.12" 491 | 492 | form-data@^4.0.0: 493 | version "4.0.0" 494 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 495 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 496 | dependencies: 497 | asynckit "^0.4.0" 498 | combined-stream "^1.0.8" 499 | mime-types "^2.1.12" 500 | 501 | fs.realpath@^1.0.0: 502 | version "1.0.0" 503 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 504 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 505 | 506 | fsevents@~2.3.2: 507 | version "2.3.2" 508 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 509 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 510 | 511 | generate-function@^2.3.1: 512 | version "2.3.1" 513 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" 514 | integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== 515 | dependencies: 516 | is-property "^1.0.2" 517 | 518 | generic-pool@3.8.2: 519 | version "3.8.2" 520 | resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.8.2.tgz#aab4f280adb522fdfbdc5e5b64d718d3683f04e9" 521 | integrity sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg== 522 | 523 | get-caller-file@^2.0.5: 524 | version "2.0.5" 525 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 526 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 527 | 528 | get-stream@^4.1.0: 529 | version "4.1.0" 530 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 531 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 532 | dependencies: 533 | pump "^3.0.0" 534 | 535 | get-stream@^5.1.0: 536 | version "5.2.0" 537 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 538 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 539 | dependencies: 540 | pump "^3.0.0" 541 | 542 | glob-parent@~5.1.2: 543 | version "5.1.2" 544 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 545 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 546 | dependencies: 547 | is-glob "^4.0.1" 548 | 549 | glob@^7.1.6: 550 | version "7.2.0" 551 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 552 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 553 | dependencies: 554 | fs.realpath "^1.0.0" 555 | inflight "^1.0.4" 556 | inherits "2" 557 | minimatch "^3.0.4" 558 | once "^1.3.0" 559 | path-is-absolute "^1.0.0" 560 | 561 | global-dirs@^3.0.0: 562 | version "3.0.0" 563 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" 564 | integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== 565 | dependencies: 566 | ini "2.0.0" 567 | 568 | got@^9.6.0: 569 | version "9.6.0" 570 | resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" 571 | integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== 572 | dependencies: 573 | "@sindresorhus/is" "^0.14.0" 574 | "@szmarczak/http-timer" "^1.1.2" 575 | cacheable-request "^6.0.0" 576 | decompress-response "^3.3.0" 577 | duplexer3 "^0.1.4" 578 | get-stream "^4.1.0" 579 | lowercase-keys "^1.0.1" 580 | mimic-response "^1.0.1" 581 | p-cancelable "^1.0.0" 582 | to-readable-stream "^1.0.0" 583 | url-parse-lax "^3.0.0" 584 | 585 | graceful-fs@^4.1.2: 586 | version "4.2.8" 587 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" 588 | integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== 589 | 590 | has-cors@1.1.0: 591 | version "1.1.0" 592 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" 593 | integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= 594 | 595 | has-flag@^3.0.0: 596 | version "3.0.0" 597 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 598 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 599 | 600 | has-flag@^4.0.0: 601 | version "4.0.0" 602 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 603 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 604 | 605 | has-yarn@^2.1.0: 606 | version "2.1.0" 607 | resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" 608 | integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== 609 | 610 | highlight.js@^10.7.1: 611 | version "10.7.3" 612 | resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" 613 | integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== 614 | 615 | http-cache-semantics@^4.0.0: 616 | version "4.1.0" 617 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 618 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 619 | 620 | iconv-lite@^0.6.3: 621 | version "0.6.3" 622 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" 623 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== 624 | dependencies: 625 | safer-buffer ">= 2.1.2 < 3.0.0" 626 | 627 | ieee754@^1.2.1: 628 | version "1.2.1" 629 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 630 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 631 | 632 | ignore-by-default@^1.0.1: 633 | version "1.0.1" 634 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 635 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 636 | 637 | import-lazy@^2.1.0: 638 | version "2.1.0" 639 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 640 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 641 | 642 | imurmurhash@^0.1.4: 643 | version "0.1.4" 644 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 645 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 646 | 647 | inflight@^1.0.4: 648 | version "1.0.6" 649 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 650 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 651 | dependencies: 652 | once "^1.3.0" 653 | wrappy "1" 654 | 655 | inherits@2, inherits@^2.0.1: 656 | version "2.0.4" 657 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 658 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 659 | 660 | ini@2.0.0: 661 | version "2.0.0" 662 | resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" 663 | integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== 664 | 665 | ini@~1.3.0: 666 | version "1.3.8" 667 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 668 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 669 | 670 | is-binary-path@~2.1.0: 671 | version "2.1.0" 672 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 673 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 674 | dependencies: 675 | binary-extensions "^2.0.0" 676 | 677 | is-ci@^2.0.0: 678 | version "2.0.0" 679 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" 680 | integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== 681 | dependencies: 682 | ci-info "^2.0.0" 683 | 684 | is-extglob@^2.1.1: 685 | version "2.1.1" 686 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 687 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 688 | 689 | is-fullwidth-code-point@^3.0.0: 690 | version "3.0.0" 691 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 692 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 693 | 694 | is-glob@^4.0.1, is-glob@~4.0.1: 695 | version "4.0.3" 696 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 697 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 698 | dependencies: 699 | is-extglob "^2.1.1" 700 | 701 | is-installed-globally@^0.4.0: 702 | version "0.4.0" 703 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" 704 | integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== 705 | dependencies: 706 | global-dirs "^3.0.0" 707 | is-path-inside "^3.0.2" 708 | 709 | is-npm@^5.0.0: 710 | version "5.0.0" 711 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" 712 | integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== 713 | 714 | is-number@^7.0.0: 715 | version "7.0.0" 716 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 717 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 718 | 719 | is-obj@^2.0.0: 720 | version "2.0.0" 721 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" 722 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 723 | 724 | is-path-inside@^3.0.2: 725 | version "3.0.3" 726 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 727 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 728 | 729 | is-property@^1.0.2: 730 | version "1.0.2" 731 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 732 | integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= 733 | 734 | is-typedarray@^1.0.0: 735 | version "1.0.0" 736 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 737 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 738 | 739 | is-yarn-global@^0.3.0: 740 | version "0.3.0" 741 | resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" 742 | integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== 743 | 744 | js-yaml@^4.0.0: 745 | version "4.1.0" 746 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 747 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 748 | dependencies: 749 | argparse "^2.0.1" 750 | 751 | json-buffer@3.0.0: 752 | version "3.0.0" 753 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" 754 | integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= 755 | 756 | keyv@^3.0.0: 757 | version "3.1.0" 758 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" 759 | integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== 760 | dependencies: 761 | json-buffer "3.0.0" 762 | 763 | latest-version@^5.1.0: 764 | version "5.1.0" 765 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" 766 | integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== 767 | dependencies: 768 | package-json "^6.3.0" 769 | 770 | long@^4.0.0: 771 | version "4.0.0" 772 | resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" 773 | integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== 774 | 775 | lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: 776 | version "1.0.1" 777 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 778 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 779 | 780 | lowercase-keys@^2.0.0: 781 | version "2.0.0" 782 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 783 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 784 | 785 | lru-cache@^4.1.3: 786 | version "4.1.5" 787 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 788 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 789 | dependencies: 790 | pseudomap "^1.0.2" 791 | yallist "^2.1.2" 792 | 793 | lru-cache@^6.0.0: 794 | version "6.0.0" 795 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 796 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 797 | dependencies: 798 | yallist "^4.0.0" 799 | 800 | make-dir@^3.0.0: 801 | version "3.1.0" 802 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 803 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 804 | dependencies: 805 | semver "^6.0.0" 806 | 807 | mime-db@1.51.0: 808 | version "1.51.0" 809 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" 810 | integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== 811 | 812 | mime-types@^2.1.12: 813 | version "2.1.34" 814 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" 815 | integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== 816 | dependencies: 817 | mime-db "1.51.0" 818 | 819 | mimic-response@^1.0.0, mimic-response@^1.0.1: 820 | version "1.0.1" 821 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 822 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 823 | 824 | minimatch@^3.0.4: 825 | version "3.0.4" 826 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 827 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 828 | dependencies: 829 | brace-expansion "^1.1.7" 830 | 831 | minimist@^1.2.0: 832 | version "1.2.5" 833 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 834 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 835 | 836 | mkdirp@^1.0.4: 837 | version "1.0.4" 838 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 839 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 840 | 841 | ms@2.1.2: 842 | version "2.1.2" 843 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 844 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 845 | 846 | ms@^2.1.1: 847 | version "2.1.3" 848 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 849 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 850 | 851 | mysql2@^2.3.3: 852 | version "2.3.3" 853 | resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.3.3.tgz#944f3deca4b16629052ff8614fbf89d5552545a0" 854 | integrity sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA== 855 | dependencies: 856 | denque "^2.0.1" 857 | generate-function "^2.3.1" 858 | iconv-lite "^0.6.3" 859 | long "^4.0.0" 860 | lru-cache "^6.0.0" 861 | named-placeholders "^1.1.2" 862 | seq-queue "^0.0.5" 863 | sqlstring "^2.3.2" 864 | 865 | mz@^2.4.0: 866 | version "2.7.0" 867 | resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" 868 | integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== 869 | dependencies: 870 | any-promise "^1.0.0" 871 | object-assign "^4.0.1" 872 | thenify-all "^1.0.0" 873 | 874 | named-placeholders@^1.1.2: 875 | version "1.1.2" 876 | resolved "https://registry.yarnpkg.com/named-placeholders/-/named-placeholders-1.1.2.tgz#ceb1fbff50b6b33492b5cf214ccf5e39cef3d0e8" 877 | integrity sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA== 878 | dependencies: 879 | lru-cache "^4.1.3" 880 | 881 | node-fetch@^2.6.1: 882 | version "2.6.6" 883 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" 884 | integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA== 885 | dependencies: 886 | whatwg-url "^5.0.0" 887 | 888 | nodemon@^2.0.15: 889 | version "2.0.15" 890 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.15.tgz#504516ce3b43d9dc9a955ccd9ec57550a31a8d4e" 891 | integrity sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA== 892 | dependencies: 893 | chokidar "^3.5.2" 894 | debug "^3.2.7" 895 | ignore-by-default "^1.0.1" 896 | minimatch "^3.0.4" 897 | pstree.remy "^1.1.8" 898 | semver "^5.7.1" 899 | supports-color "^5.5.0" 900 | touch "^3.1.0" 901 | undefsafe "^2.0.5" 902 | update-notifier "^5.1.0" 903 | 904 | nopt@~1.0.10: 905 | version "1.0.10" 906 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 907 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 908 | dependencies: 909 | abbrev "1" 910 | 911 | normalize-path@^3.0.0, normalize-path@~3.0.0: 912 | version "3.0.0" 913 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 914 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 915 | 916 | normalize-url@^4.1.0: 917 | version "4.5.1" 918 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" 919 | integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== 920 | 921 | object-assign@^4.0.1: 922 | version "4.1.1" 923 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 924 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 925 | 926 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 927 | version "1.4.0" 928 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 929 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 930 | dependencies: 931 | wrappy "1" 932 | 933 | p-cancelable@^1.0.0: 934 | version "1.1.0" 935 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" 936 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== 937 | 938 | package-json@^6.3.0: 939 | version "6.5.0" 940 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" 941 | integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== 942 | dependencies: 943 | got "^9.6.0" 944 | registry-auth-token "^4.0.0" 945 | registry-url "^5.0.0" 946 | semver "^6.2.0" 947 | 948 | parse5-htmlparser2-tree-adapter@^6.0.0: 949 | version "6.0.1" 950 | resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" 951 | integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== 952 | dependencies: 953 | parse5 "^6.0.1" 954 | 955 | parse5@^5.1.1: 956 | version "5.1.1" 957 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" 958 | integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== 959 | 960 | parse5@^6.0.1: 961 | version "6.0.1" 962 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" 963 | integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 964 | 965 | parseqs@0.0.6: 966 | version "0.0.6" 967 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" 968 | integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== 969 | 970 | parseuri@0.0.6: 971 | version "0.0.6" 972 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" 973 | integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== 974 | 975 | path-is-absolute@^1.0.0: 976 | version "1.0.1" 977 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 978 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 979 | 980 | picomatch@^2.0.4, picomatch@^2.2.1: 981 | version "2.3.0" 982 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 983 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 984 | 985 | prepend-http@^2.0.0: 986 | version "2.0.0" 987 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" 988 | integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= 989 | 990 | pseudomap@^1.0.2: 991 | version "1.0.2" 992 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 993 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 994 | 995 | pstree.remy@^1.1.8: 996 | version "1.1.8" 997 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" 998 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 999 | 1000 | pump@^3.0.0: 1001 | version "3.0.0" 1002 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1003 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1004 | dependencies: 1005 | end-of-stream "^1.1.0" 1006 | once "^1.3.1" 1007 | 1008 | pupa@^2.1.1: 1009 | version "2.1.1" 1010 | resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" 1011 | integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== 1012 | dependencies: 1013 | escape-goat "^2.0.0" 1014 | 1015 | rc@^1.2.8: 1016 | version "1.2.8" 1017 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 1018 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 1019 | dependencies: 1020 | deep-extend "^0.6.0" 1021 | ini "~1.3.0" 1022 | minimist "^1.2.0" 1023 | strip-json-comments "~2.0.1" 1024 | 1025 | readdirp@~3.6.0: 1026 | version "3.6.0" 1027 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1028 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1029 | dependencies: 1030 | picomatch "^2.2.1" 1031 | 1032 | redis-errors@^1.0.0: 1033 | version "1.2.0" 1034 | resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" 1035 | integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= 1036 | 1037 | redis-parser@3.0.0: 1038 | version "3.0.0" 1039 | resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" 1040 | integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= 1041 | dependencies: 1042 | redis-errors "^1.0.0" 1043 | 1044 | redis@^4.0.1: 1045 | version "4.0.1" 1046 | resolved "https://registry.yarnpkg.com/redis/-/redis-4.0.1.tgz#c020e2ac7f83f0c1d42ced50b8a7af28164bd6ee" 1047 | integrity sha512-qfcq1oz2ci7pNdCfTLLEuKhS8jZ17dFiT1exogOr+jd3EVP/h9qpy7K+VajB4BXA0k8q68KFqR6HrliKV6jt1Q== 1048 | dependencies: 1049 | "@node-redis/client" "^1.0.1" 1050 | "@node-redis/json" "^1.0.1" 1051 | "@node-redis/search" "^1.0.1" 1052 | "@node-redis/time-series" "^1.0.0" 1053 | 1054 | reflect-metadata@^0.1.13: 1055 | version "0.1.13" 1056 | resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" 1057 | integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== 1058 | 1059 | registry-auth-token@^4.0.0: 1060 | version "4.2.1" 1061 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" 1062 | integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== 1063 | dependencies: 1064 | rc "^1.2.8" 1065 | 1066 | registry-url@^5.0.0: 1067 | version "5.1.0" 1068 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" 1069 | integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== 1070 | dependencies: 1071 | rc "^1.2.8" 1072 | 1073 | require-directory@^2.1.1: 1074 | version "2.1.1" 1075 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1076 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1077 | 1078 | responselike@^1.0.2: 1079 | version "1.0.2" 1080 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" 1081 | integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= 1082 | dependencies: 1083 | lowercase-keys "^1.0.0" 1084 | 1085 | safe-buffer@^5.0.1: 1086 | version "5.2.1" 1087 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1088 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1089 | 1090 | "safer-buffer@>= 2.1.2 < 3.0.0": 1091 | version "2.1.2" 1092 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1093 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1094 | 1095 | sax@>=0.6.0: 1096 | version "1.2.4" 1097 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 1098 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 1099 | 1100 | semver-diff@^3.1.1: 1101 | version "3.1.1" 1102 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" 1103 | integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== 1104 | dependencies: 1105 | semver "^6.3.0" 1106 | 1107 | semver@^5.7.1: 1108 | version "5.7.1" 1109 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1110 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1111 | 1112 | semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: 1113 | version "6.3.0" 1114 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1115 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1116 | 1117 | semver@^7.3.4: 1118 | version "7.3.5" 1119 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 1120 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 1121 | dependencies: 1122 | lru-cache "^6.0.0" 1123 | 1124 | seq-queue@^0.0.5: 1125 | version "0.0.5" 1126 | resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e" 1127 | integrity sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4= 1128 | 1129 | sha.js@^2.4.11: 1130 | version "2.4.11" 1131 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 1132 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== 1133 | dependencies: 1134 | inherits "^2.0.1" 1135 | safe-buffer "^5.0.1" 1136 | 1137 | signal-exit@^3.0.2: 1138 | version "3.0.6" 1139 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" 1140 | integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== 1141 | 1142 | socket.io-client@*, socket.io-client@^4.4.1: 1143 | version "4.4.1" 1144 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.4.1.tgz#b6aa9448149d09b8d0b2bbf3d2fac310631fdec9" 1145 | integrity sha512-N5C/L5fLNha5Ojd7Yeb/puKcPWWcoB/A09fEjjNsg91EDVr5twk/OEyO6VT9dlLSUNY85NpW6KBhVMvaLKQ3vQ== 1146 | dependencies: 1147 | "@socket.io/component-emitter" "~3.0.0" 1148 | backo2 "~1.0.2" 1149 | debug "~4.3.2" 1150 | engine.io-client "~6.1.1" 1151 | parseuri "0.0.6" 1152 | socket.io-parser "~4.1.1" 1153 | 1154 | socket.io-parser@~4.1.1: 1155 | version "4.1.1" 1156 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.1.1.tgz#0ad53d980781cab1eabe320417d8480c0133e62d" 1157 | integrity sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA== 1158 | dependencies: 1159 | "@socket.io/component-emitter" "~3.0.0" 1160 | debug "~4.3.1" 1161 | 1162 | sqlstring@^2.3.2: 1163 | version "2.3.2" 1164 | resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.2.tgz#cdae7169389a1375b18e885f2e60b3e460809514" 1165 | integrity sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg== 1166 | 1167 | string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: 1168 | version "4.2.3" 1169 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1170 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1171 | dependencies: 1172 | emoji-regex "^8.0.0" 1173 | is-fullwidth-code-point "^3.0.0" 1174 | strip-ansi "^6.0.1" 1175 | 1176 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1177 | version "6.0.1" 1178 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1179 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1180 | dependencies: 1181 | ansi-regex "^5.0.1" 1182 | 1183 | strip-json-comments@~2.0.1: 1184 | version "2.0.1" 1185 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1186 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1187 | 1188 | supports-color@^5.5.0: 1189 | version "5.5.0" 1190 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1191 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1192 | dependencies: 1193 | has-flag "^3.0.0" 1194 | 1195 | supports-color@^7.1.0: 1196 | version "7.2.0" 1197 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1198 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1199 | dependencies: 1200 | has-flag "^4.0.0" 1201 | 1202 | thenify-all@^1.0.0: 1203 | version "1.6.0" 1204 | resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" 1205 | integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= 1206 | dependencies: 1207 | thenify ">= 3.1.0 < 4" 1208 | 1209 | "thenify@>= 3.1.0 < 4": 1210 | version "3.3.1" 1211 | resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" 1212 | integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== 1213 | dependencies: 1214 | any-promise "^1.0.0" 1215 | 1216 | to-readable-stream@^1.0.0: 1217 | version "1.0.0" 1218 | resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" 1219 | integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== 1220 | 1221 | to-regex-range@^5.0.1: 1222 | version "5.0.1" 1223 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1224 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1225 | dependencies: 1226 | is-number "^7.0.0" 1227 | 1228 | touch@^3.1.0: 1229 | version "3.1.0" 1230 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 1231 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 1232 | dependencies: 1233 | nopt "~1.0.10" 1234 | 1235 | tr46@~0.0.3: 1236 | version "0.0.3" 1237 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 1238 | integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= 1239 | 1240 | ts-mixer@^6.0.0: 1241 | version "6.0.0" 1242 | resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.0.tgz#4e631d3a36e3fa9521b973b132e8353bc7267f9f" 1243 | integrity sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ== 1244 | 1245 | tslib@^2.1.0, tslib@^2.3.1: 1246 | version "2.3.1" 1247 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 1248 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 1249 | 1250 | type-fest@^0.20.2: 1251 | version "0.20.2" 1252 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1253 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1254 | 1255 | typedarray-to-buffer@^3.1.5: 1256 | version "3.1.5" 1257 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" 1258 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 1259 | dependencies: 1260 | is-typedarray "^1.0.0" 1261 | 1262 | typeorm@^0.2.41: 1263 | version "0.2.41" 1264 | resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.41.tgz#88758101ac158dc0a0a903d70eaacea2974281cc" 1265 | integrity sha512-/d8CLJJxKPgsnrZWiMyPI0rz2MFZnBQrnQ5XP3Vu3mswv2WPexb58QM6BEtmRmlTMYN5KFWUz8SKluze+wS9xw== 1266 | dependencies: 1267 | "@sqltools/formatter" "^1.2.2" 1268 | app-root-path "^3.0.0" 1269 | buffer "^6.0.3" 1270 | chalk "^4.1.0" 1271 | cli-highlight "^2.1.11" 1272 | debug "^4.3.1" 1273 | dotenv "^8.2.0" 1274 | glob "^7.1.6" 1275 | js-yaml "^4.0.0" 1276 | mkdirp "^1.0.4" 1277 | reflect-metadata "^0.1.13" 1278 | sha.js "^2.4.11" 1279 | tslib "^2.1.0" 1280 | xml2js "^0.4.23" 1281 | yargs "^17.0.1" 1282 | zen-observable-ts "^1.0.0" 1283 | 1284 | typescript@^4.5.4: 1285 | version "4.5.4" 1286 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" 1287 | integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== 1288 | 1289 | undefsafe@^2.0.5: 1290 | version "2.0.5" 1291 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" 1292 | integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== 1293 | 1294 | unique-string@^2.0.0: 1295 | version "2.0.0" 1296 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" 1297 | integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== 1298 | dependencies: 1299 | crypto-random-string "^2.0.0" 1300 | 1301 | update-notifier@^5.1.0: 1302 | version "5.1.0" 1303 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" 1304 | integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== 1305 | dependencies: 1306 | boxen "^5.0.0" 1307 | chalk "^4.1.0" 1308 | configstore "^5.0.1" 1309 | has-yarn "^2.1.0" 1310 | import-lazy "^2.1.0" 1311 | is-ci "^2.0.0" 1312 | is-installed-globally "^0.4.0" 1313 | is-npm "^5.0.0" 1314 | is-yarn-global "^0.3.0" 1315 | latest-version "^5.1.0" 1316 | pupa "^2.1.1" 1317 | semver "^7.3.4" 1318 | semver-diff "^3.1.1" 1319 | xdg-basedir "^4.0.0" 1320 | 1321 | url-parse-lax@^3.0.0: 1322 | version "3.0.0" 1323 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" 1324 | integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= 1325 | dependencies: 1326 | prepend-http "^2.0.0" 1327 | 1328 | webidl-conversions@^3.0.0: 1329 | version "3.0.1" 1330 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 1331 | integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= 1332 | 1333 | whatwg-url@^5.0.0: 1334 | version "5.0.0" 1335 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 1336 | integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= 1337 | dependencies: 1338 | tr46 "~0.0.3" 1339 | webidl-conversions "^3.0.0" 1340 | 1341 | widest-line@^3.1.0: 1342 | version "3.1.0" 1343 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" 1344 | integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== 1345 | dependencies: 1346 | string-width "^4.0.0" 1347 | 1348 | wrap-ansi@^7.0.0: 1349 | version "7.0.0" 1350 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1351 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1352 | dependencies: 1353 | ansi-styles "^4.0.0" 1354 | string-width "^4.1.0" 1355 | strip-ansi "^6.0.0" 1356 | 1357 | wrappy@1: 1358 | version "1.0.2" 1359 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1360 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1361 | 1362 | write-file-atomic@^3.0.0: 1363 | version "3.0.3" 1364 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" 1365 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 1366 | dependencies: 1367 | imurmurhash "^0.1.4" 1368 | is-typedarray "^1.0.0" 1369 | signal-exit "^3.0.2" 1370 | typedarray-to-buffer "^3.1.5" 1371 | 1372 | ws@^8.4.0: 1373 | version "8.4.0" 1374 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.0.tgz#f05e982a0a88c604080e8581576e2a063802bed6" 1375 | integrity sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ== 1376 | 1377 | ws@~8.2.3: 1378 | version "8.2.3" 1379 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" 1380 | integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== 1381 | 1382 | xdg-basedir@^4.0.0: 1383 | version "4.0.0" 1384 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" 1385 | integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== 1386 | 1387 | xml2js@^0.4.23: 1388 | version "0.4.23" 1389 | resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" 1390 | integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== 1391 | dependencies: 1392 | sax ">=0.6.0" 1393 | xmlbuilder "~11.0.0" 1394 | 1395 | xmlbuilder@~11.0.0: 1396 | version "11.0.1" 1397 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" 1398 | integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== 1399 | 1400 | xmlhttprequest-ssl@~2.0.0: 1401 | version "2.0.0" 1402 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" 1403 | integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== 1404 | 1405 | y18n@^5.0.5: 1406 | version "5.0.8" 1407 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 1408 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1409 | 1410 | yallist@4.0.0, yallist@^4.0.0: 1411 | version "4.0.0" 1412 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1413 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1414 | 1415 | yallist@^2.1.2: 1416 | version "2.1.2" 1417 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1418 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 1419 | 1420 | yargs-parser@^20.2.2: 1421 | version "20.2.9" 1422 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 1423 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 1424 | 1425 | yargs-parser@^21.0.0: 1426 | version "21.0.0" 1427 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" 1428 | integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== 1429 | 1430 | yargs@^16.0.0: 1431 | version "16.2.0" 1432 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 1433 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 1434 | dependencies: 1435 | cliui "^7.0.2" 1436 | escalade "^3.1.1" 1437 | get-caller-file "^2.0.5" 1438 | require-directory "^2.1.1" 1439 | string-width "^4.2.0" 1440 | y18n "^5.0.5" 1441 | yargs-parser "^20.2.2" 1442 | 1443 | yargs@^17.0.1: 1444 | version "17.3.1" 1445 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9" 1446 | integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA== 1447 | dependencies: 1448 | cliui "^7.0.2" 1449 | escalade "^3.1.1" 1450 | get-caller-file "^2.0.5" 1451 | require-directory "^2.1.1" 1452 | string-width "^4.2.3" 1453 | y18n "^5.0.5" 1454 | yargs-parser "^21.0.0" 1455 | 1456 | yeast@0.1.2: 1457 | version "0.1.2" 1458 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" 1459 | integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= 1460 | 1461 | zen-observable-ts@^1.0.0: 1462 | version "1.1.0" 1463 | resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz#2d1aa9d79b87058e9b75698b92791c1838551f83" 1464 | integrity sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA== 1465 | dependencies: 1466 | "@types/zen-observable" "0.8.3" 1467 | zen-observable "0.8.15" 1468 | 1469 | zen-observable@0.8.15: 1470 | version "0.8.15" 1471 | resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" 1472 | integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== 1473 | 1474 | zod@^3.11.6: 1475 | version "3.11.6" 1476 | resolved "https://registry.yarnpkg.com/zod/-/zod-3.11.6.tgz#e43a5e0c213ae2e02aefe7cb2b1a6fa3d7f1f483" 1477 | integrity sha512-daZ80A81I3/9lIydI44motWe6n59kRBfNzTuS2bfzVh1nAXi667TOTWWtatxyG+fwgNUiagSj/CWZwRRbevJIg== 1478 | --------------------------------------------------------------------------------