aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.eslintrc.cjs3
-rw-r--r--.vscode/launch.json9
-rw-r--r--.yarnrc.yml2
-rw-r--r--package.json23
-rw-r--r--src/commands/config/config.ts4
-rw-r--r--src/commands/dev/eval.ts3
-rw-r--r--src/commands/dev/say.ts12
-rw-r--r--src/commands/dev/sh.ts13
-rw-r--r--src/commands/info/help.ts2
-rw-r--r--src/commands/info/userInfo.ts4
-rw-r--r--src/lib/common/util/Format.ts24
-rw-r--r--src/lib/extensions/discord-akairo/BushClient.ts23
-rw-r--r--src/lib/extensions/discord.js/ExtendedGuild.ts1
-rw-r--r--src/lib/utils/BushConstants.ts1
-rw-r--r--src/lib/utils/BushLogger.ts12
-rw-r--r--src/lib/utils/BushUtils.ts8
-rw-r--r--src/listeners/commands/commandError.ts9
-rw-r--r--yarn.lock423
18 files changed, 290 insertions, 286 deletions
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index e2d7435..f62abfd 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -177,6 +177,7 @@ module.exports = {
{ paths: [{ name: 'console', importNames: ['assert'], message: 'Import from the `assert` module instead.' }] }
],
'no-restricted-globals': ['error', ...globals.map((v) => ({ name: v, message: "Don't use DOM globals." }))],
- '@typescript-eslint/no-namespace': 'off'
+ '@typescript-eslint/no-namespace': 'off',
+ 'no-debugger': 'warn'
}
};
diff --git a/.vscode/launch.json b/.vscode/launch.json
index d0be0a4..d6eb609 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -9,14 +9,7 @@
"program": "${workspaceFolder}/dist/src/bot.js",
"sourceMaps": true,
"resolveSourceMapLocations": ["${workspaceFolder}/**"],
- "skipFiles": [
- "<node_internals>/**",
- "/**/.yarn/**",
- "/**/.nvm/**",
- "**/node_modules/**",
- "!**/node_modules/discord-akairo/**",
- "!**/node_modules/discord.js/**"
- ]
+ "skipFiles": ["<node_internals>/**", "/**/.yarn/**", "/**/.nvm/**"]
}
]
}
diff --git a/.yarnrc.yml b/.yarnrc.yml
index a7944f9..caaf948 100644
--- a/.yarnrc.yml
+++ b/.yarnrc.yml
@@ -1,5 +1,3 @@
-checksumBehavior: ignore
-
enableGlobalCache: true
enableTelemetry: false
diff --git a/package.json b/package.json
index 9f14480..5b25d9d 100644
--- a/package.json
+++ b/package.json
@@ -22,11 +22,13 @@
"license": "CC-BY-NC-SA-4.0",
"scripts": {
"build:esbuild": "yarn rimraf dist && yarn esbuild --sourcemap=inline --outdir=dist --platform=node --target=es2020 --format=esm --log-level=warning src/**/*.ts",
- "build:tsc": "yarn tsc",
+ "build:tsc": "yarn rimraf dist && yarn tsc",
"build:tsc:no-emit": "yarn tsc --noEmit",
+ "build:keep": "yarn tsc ",
"start:raw": "node --enable-source-maps --experimental-json-modules --no-warnings dist/src/bot.js",
"start:esbuild": "yarn build:esbuild && yarn start:raw",
"start": "yarn build:tsc && yarn start:raw",
+ "start:keep": "yarn build:keep && yarn start:raw",
"start:dry": "yarn start dry",
"dev": "yarn build:tsc && yarn start:raw",
"test": "yarn lint && yarn tsc --noEmit",
@@ -74,11 +76,11 @@
"deep-lock": "^1.0.0",
"discord-akairo": "npm:@notenoughupdates/discord-akairo@dev",
"discord-api-types": "0.37.1",
- "discord.js": "npm:@notenoughupdates/discord.js@dev",
+ "discord.js": "npm:@notenoughupdates/discord.js@forum",
"fuse.js": "^6.6.2",
"gif-to-apng": "^0.1.2",
"googleapis": "^105.0.0",
- "got": "^12.3.0",
+ "got": "^12.3.1",
"lodash": "^4.17.21",
"mathjs": "^11.0.1",
"nanoid": "^4.0.0",
@@ -99,15 +101,15 @@
"@types/eslint": "^8.4.5",
"@types/express": "^4.17.13",
"@types/lodash": "^4.14.182",
- "@types/node": "^18.6.4",
+ "@types/node": "^18.6.5",
"@types/numeral": "^2.0.2",
"@types/pg": "^8.6.5",
"@types/prettier": "^2.7.0",
"@types/rimraf": "^3.0.2",
"@types/tinycolor2": "^1.4.3",
"@types/validator": "^13.7.5",
- "@typescript-eslint/eslint-plugin": "^5.32.0",
- "@typescript-eslint/parser": "^5.32.0",
+ "@typescript-eslint/eslint-plugin": "^5.33.0",
+ "@typescript-eslint/parser": "^5.33.0",
"electron": "^20.0.1",
"eslint": "^8.21.0",
"eslint-config-prettier": "^8.5.0",
@@ -115,7 +117,12 @@
"eslint-plugin-import": "^2.26.0",
"node-fetch": "^3.2.10",
"ts-essentials": "^9.2.0",
- "vitest": "^0.21.0"
+ "vitest": "^0.21.1"
},
- "packageManager": "yarn@3.2.2"
+ "packageManager": "yarn@3.2.2",
+ "resolutions": {
+ "@discordjs/builders@workspace:^": "^1.1.0",
+ "@discordjs/collection@workspace:^": "^1.0.1",
+ "@discordjs/rest@workspace:^": "^1.0.1"
+ }
}
diff --git a/src/commands/config/config.ts b/src/commands/config/config.ts
index f2b4284..f6b8bfa 100644
--- a/src/commands/config/config.ts
+++ b/src/commands/config/config.ts
@@ -24,9 +24,9 @@ import {
ButtonBuilder,
ButtonStyle,
EmbedBuilder,
- Formatters,
GuildMember,
InteractionUpdateOptions,
+ italic,
PermissionFlagsBits,
Role,
SelectMenuBuilder,
@@ -371,7 +371,7 @@ export default class ConfigCommand extends BushCommand {
new ButtonBuilder({ style: ButtonStyle.Primary, customId: 'command_settingsBack', label: 'Back' })
);
settingsEmbed.setDescription(
- `${Formatters.italic(guildSettingsObj[setting].description)}\n\n**Type:** ${guildSettingsObj[setting].type}`
+ `${italic(guildSettingsObj[setting].description)}\n\n**Type:** ${guildSettingsObj[setting].type}`
);
settingsEmbed.setFooter({
diff --git a/src/commands/dev/eval.ts b/src/commands/dev/eval.ts
index a317e00..04db2eb 100644
--- a/src/commands/dev/eval.ts
+++ b/src/commands/dev/eval.ts
@@ -4,7 +4,6 @@ import {
assertAll,
BushCommand,
BushInspectOptions,
- clientSendAndPermCheck,
CodeBlockLang,
colors,
emojis,
@@ -175,7 +174,7 @@ export default class EvalCommand extends BushCommand {
],
slash: true,
ownerOnly: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/dev/say.ts b/src/commands/dev/say.ts
index 2246588..c7b3c40 100644
--- a/src/commands/dev/say.ts
+++ b/src/commands/dev/say.ts
@@ -1,12 +1,4 @@
-import {
- AllowedMentions,
- BushCommand,
- clientSendAndPermCheck,
- emojis,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, BushCommand, emojis, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import { ApplicationCommandOptionType } from 'discord.js';
export default class SayCommand extends BushCommand {
@@ -29,7 +21,7 @@ export default class SayCommand extends BushCommand {
}
],
ownerOnly: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: [],
slash: true
});
diff --git a/src/commands/dev/sh.ts b/src/commands/dev/sh.ts
index 609129d..56a3b69 100644
--- a/src/commands/dev/sh.ts
+++ b/src/commands/dev/sh.ts
@@ -1,13 +1,4 @@
-import {
- ArgType,
- BushCommand,
- clientSendAndPermCheck,
- colors,
- emojis,
- formatError,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { ArgType, BushCommand, colors, emojis, formatError, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
import chalk from 'chalk';
import { exec } from 'child_process';
@@ -44,7 +35,7 @@ export default class ShCommand extends BushCommand {
}
],
ownerOnly: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/info/help.ts b/src/commands/info/help.ts
index 492f25d..348c74f 100644
--- a/src/commands/info/help.ts
+++ b/src/commands/info/help.ts
@@ -86,7 +86,7 @@ export default class HelpCommand extends BushCommand {
.setColor(colors.default)
.setTimestamp()
.setFooter({ text: `For more information about a command use ${prefix_}help <command>` });
- for (const [, category] of this.handler.categories) {
+ for (const [, category] of this.handler.categories.sort((a, b) => a.id.localeCompare(b.id))) {
const categoryFilter = category.filter((command) => {
if (command.pseudo) return false;
if (command.hidden && !args.showHidden) return false;
diff --git a/src/commands/info/userInfo.ts b/src/commands/info/userInfo.ts
index 7b67816..6def866 100644
--- a/src/commands/info/userInfo.ts
+++ b/src/commands/info/userInfo.ts
@@ -62,6 +62,7 @@ export default class UserInfoCommand extends BushCommand {
: typeof args.user === 'object'
? args.user
: await this.client.users.fetch(`${args.user}`).catch(() => undefined);
+
if (user === undefined) return message.util.reply(`${emojis.error} Invalid user.`);
const member = message.guild ? await message.guild.members.fetch(user.id).catch(() => undefined) : undefined;
await user.fetch(true); // gets banner info and accent color
@@ -85,6 +86,9 @@ export default class UserInfoCommand extends BushCommand {
// Flags
if (user.client.config.owners.includes(user.id)) emojis.push(mappings.otherEmojis.Developer);
if (superUsers.includes(user.id)) emojis.push(mappings.otherEmojis.Superuser);
+
+ if (user.bot) emojis.push(mappings.otherEmojis.Bot);
+
const flags = user.flags?.toArray();
if (flags) {
flags.forEach((f) => {
diff --git a/src/lib/common/util/Format.ts b/src/lib/common/util/Format.ts
index 8e7c302..5188c2b 100644
--- a/src/lib/common/util/Format.ts
+++ b/src/lib/common/util/Format.ts
@@ -1,5 +1,7 @@
import { type CodeBlockLang } from '#lib';
import {
+ bold as discordBold,
+ codeBlock as discordCodeBlock,
escapeBold as discordEscapeBold,
escapeCodeBlock as discordEscapeCodeBlock,
escapeInlineCode as discordEscapeInlineCode,
@@ -9,7 +11,11 @@ import {
escapeSpoiler as discordEscapeSpoiler,
escapeStrikethrough as discordEscapeStrikethrough,
escapeUnderline as discordEscapeUnderline,
- Formatters
+ inlineCode as discordInlineCode,
+ italic as discordItalic,
+ spoiler as discordSpoiler,
+ strikethrough as discordStrikethrough,
+ underscore as discordUnderscore
} from 'discord.js';
/**
@@ -26,8 +32,8 @@ export function codeBlock(content: string): string;
export function codeBlock(language: CodeBlockLang, content: string): string;
export function codeBlock(languageOrContent: string, content?: string): string {
return typeof content === 'undefined'
- ? Formatters.codeBlock(discordEscapeCodeBlock(`${languageOrContent}`))
- : Formatters.codeBlock(`${languageOrContent}`, discordEscapeCodeBlock(`${content}`));
+ ? discordCodeBlock(discordEscapeCodeBlock(`${languageOrContent}`))
+ : discordCodeBlock(`${languageOrContent}`, discordEscapeCodeBlock(`${content}`));
}
/**
@@ -35,7 +41,7 @@ export function codeBlock(languageOrContent: string, content?: string): string {
* @param content The content to wrap.
*/
export function inlineCode(content: string): string {
- return Formatters.inlineCode(discordEscapeInlineCode(`${content}`));
+ return discordInlineCode(discordEscapeInlineCode(`${content}`));
}
/**
@@ -43,7 +49,7 @@ export function inlineCode(content: string): string {
* @param content The content to wrap.
*/
export function italic(content: string): string {
- return Formatters.italic(discordEscapeItalic(`${content}`));
+ return discordItalic(discordEscapeItalic(`${content}`));
}
/**
@@ -51,7 +57,7 @@ export function italic(content: string): string {
* @param content The content to wrap.
*/
export function bold(content: string): string {
- return Formatters.bold(discordEscapeBold(`${content}`));
+ return discordBold(discordEscapeBold(`${content}`));
}
/**
@@ -59,7 +65,7 @@ export function bold(content: string): string {
* @param content The content to wrap.
*/
export function underscore(content: string): string {
- return Formatters.underscore(discordEscapeUnderline(`${content}`));
+ return discordUnderscore(discordEscapeUnderline(`${content}`));
}
/**
@@ -67,7 +73,7 @@ export function underscore(content: string): string {
* @param content The content to wrap.
*/
export function strikethrough(content: string): string {
- return Formatters.strikethrough(discordEscapeStrikethrough(`${content}`));
+ return discordStrikethrough(discordEscapeStrikethrough(`${content}`));
}
/**
@@ -75,7 +81,7 @@ export function strikethrough(content: string): string {
* @param content The content to wrap.
*/
export function spoiler(content: string): string {
- return Formatters.spoiler(discordEscapeSpoiler(`${content}`));
+ return discordSpoiler(discordEscapeSpoiler(`${content}`));
}
/**
diff --git a/src/lib/extensions/discord-akairo/BushClient.ts b/src/lib/extensions/discord-akairo/BushClient.ts
index 855c252..9ca02a2 100644
--- a/src/lib/extensions/discord-akairo/BushClient.ts
+++ b/src/lib/extensions/discord-akairo/BushClient.ts
@@ -15,6 +15,7 @@ import { patch, type PatchedElements } from '@notenoughupdates/events-intercept'
import * as Sentry from '@sentry/node';
import {
AkairoClient,
+ ArgumentTypeCaster,
ContextMenuCommandHandler,
version as akairoVersion,
type ArgumentPromptData,
@@ -406,17 +407,17 @@ export class BushClient<Ready extends boolean = boolean> extends AkairoClient<Re
};
this.listenerHandler.setEmitters(emitters);
this.commandHandler.resolver.addTypes({
- duration,
- contentWithDuration,
- permission,
- snowflake,
- discordEmoji,
- roleWithDuration,
- abbreviatedNumber,
- durationSeconds,
- globalUser,
- messageLink,
- tinyColor
+ duration: <ArgumentTypeCaster>duration,
+ contentWithDuration: <ArgumentTypeCaster>contentWithDuration,
+ permission: <ArgumentTypeCaster>permission,
+ snowflake: <ArgumentTypeCaster>snowflake,
+ discordEmoji: <ArgumentTypeCaster>discordEmoji,
+ roleWithDuration: <ArgumentTypeCaster>roleWithDuration,
+ abbreviatedNumber: <ArgumentTypeCaster>abbreviatedNumber,
+ durationSeconds: <ArgumentTypeCaster>durationSeconds,
+ globalUser: <ArgumentTypeCaster>globalUser,
+ messageLink: <ArgumentTypeCaster>messageLink,
+ tinyColor: <ArgumentTypeCaster>tinyColor
});
this.sentry.setTag('process', process.pid.toString());
diff --git a/src/lib/extensions/discord.js/ExtendedGuild.ts b/src/lib/extensions/discord.js/ExtendedGuild.ts
index e55851b..3dce7ca 100644
--- a/src/lib/extensions/discord.js/ExtendedGuild.ts
+++ b/src/lib/extensions/discord.js/ExtendedGuild.ts
@@ -739,6 +739,7 @@ export class ExtendedGuild extends Guild {
// todo: use enum for this
case 24 as MessageType: {
const embed = quote.embeds[0];
+ // eslint-disable-next-line deprecation/deprecation
assert.equal(embed.data.type, 'auto_moderation_message');
const ruleName = embed.fields!.find((f) => f.name === 'rule_name')!.value;
const channelId = embed.fields!.find((f) => f.name === 'channel_id')!.value;
diff --git a/src/lib/utils/BushConstants.ts b/src/lib/utils/BushConstants.ts
index 0fd9113..abac4af 100644
--- a/src/lib/utils/BushConstants.ts
+++ b/src/lib/utils/BushConstants.ts
@@ -331,6 +331,7 @@ export const mappings = deepLock({
Admin: '<:admin:848963914628333598>',
Superuser: '<:superUser:848947986326224926>',
Developer: '<:developer:848954538111139871>',
+ Bot: '<:bot:1006929813203853427>',
BushVerified: '<:verfied:853360152090771497>',
BoostTier1: '<:boostitle:853363736679940127>',
BoostTier2: '<:boostitle:853363752728789075>',
diff --git a/src/lib/utils/BushLogger.ts b/src/lib/utils/BushLogger.ts
index 995dd82..21d10a0 100644
--- a/src/lib/utils/BushLogger.ts
+++ b/src/lib/utils/BushLogger.ts
@@ -1,6 +1,6 @@
import chalk from 'chalk';
// eslint-disable-next-line @typescript-eslint/no-unused-vars
-import { Client, EmbedBuilder, escapeMarkdown, Formatters, PartialTextBasedChannelFields, type Message } from 'discord.js';
+import { bold, Client, EmbedBuilder, escapeMarkdown, PartialTextBasedChannelFields, type Message } from 'discord.js';
import { stripVTControlCharacters as stripColor } from 'node:util';
import repl, { REPLServer, REPL_MODE_STRICT } from 'repl';
import { WriteStream } from 'tty';
@@ -77,7 +77,7 @@ function parseFormatting(
.split(/<<|>>/)
.map((value, index) => {
if (discordFormat) {
- return index % 2 === 0 ? escapeMarkdown(value) : Formatters.bold(escapeMarkdown(value));
+ return index % 2 === 0 ? escapeMarkdown(value) : bold(escapeMarkdown(value));
} else {
return index % 2 === 0 || !color ? value : chalk[color](value);
}
@@ -106,11 +106,9 @@ function inspectContent(content: any, depth = 2, colors = true): string {
function getTimeStamp(): string {
const now = new Date();
const minute = pad(now.getMinutes());
- const hour = pad(now.getHours() % 12);
- const meridiem = now.getHours() > 12 ? 'PM' : 'AM';
- const year = now.getFullYear().toString().slice(2).padStart(2, '0');
- const date = `${pad(now.getMonth() + 1)}/${pad(now.getDay())}/${year}`;
- return `${date} ${hour}:${minute} ${meridiem}`;
+ const hour = pad(now.getHours());
+ const date = `${pad(now.getMonth() + 1)}/${pad(now.getDay())}`;
+ return `${date} ${hour}:${minute}`;
}
/**
diff --git a/src/lib/utils/BushUtils.ts b/src/lib/utils/BushUtils.ts
index af173f9..de01ac0 100644
--- a/src/lib/utils/BushUtils.ts
+++ b/src/lib/utils/BushUtils.ts
@@ -466,9 +466,13 @@ export function clientSendAndPermCheck(
permissions: bigint[] = [],
checkChannel = false
): PermissionsString[] | null {
+ if (!message.inGuild() || !message.channel) return null;
+
const missing: PermissionsString[] = [];
- const sendPerm = message.channel!.isThread() ? 'SendMessages' : 'SendMessagesInThreads';
- if (!message.inGuild()) return null;
+ const sendPerm = message.channel.isThread() ? 'SendMessages' : 'SendMessagesInThreads';
+
+ // todo: remove once forum channels are fixed
+ if (message.channel.parent === null && message.channel.isThread()) return null;
if (!message.guild.members.me!.permissionsIn(message.channel!.id).has(sendPerm)) missing.push(sendPerm);
diff --git a/src/listeners/commands/commandError.ts b/src/listeners/commands/commandError.ts
index 04ea517..f12881a 100644
--- a/src/listeners/commands/commandError.ts
+++ b/src/listeners/commands/commandError.ts
@@ -1,6 +1,7 @@
import { capitalize, colors, format, formatError, SlashMessage, type BushCommandHandlerEvents } from '#lib';
import { type AkairoMessage, type Command } from 'discord-akairo';
-import { ChannelType, Client, EmbedBuilder, escapeInlineCode, Formatters, GuildTextBasedChannel, type Message } from 'discord.js';
+import { ChannelType, Client, EmbedBuilder, escapeInlineCode, GuildTextBasedChannel, type Message } from 'discord.js';
+import { bold } from '../../lib/common/util/Format.js';
import { BushListener } from '../../lib/extensions/discord-akairo/BushListener.js';
export default class CommandErrorListener extends BushListener {
@@ -163,11 +164,9 @@ export default class CommandErrorListener extends BushListener {
if (options.type === 'command-dev' || options.type === 'command-log')
embeds[0].setTitle(`${options.isSlash ? 'Slash ' : ''}CommandError #${format.input(`${options.errorNum}`)}`);
else if (options.type === 'uncaughtException')
- embeds[0].setTitle(`${options.context ? `[${Formatters.bold(options.context)}] An Error Occurred` : 'Uncaught Exception'}`);
+ embeds[0].setTitle(`${options.context ? `[${bold(options.context)}] An Error Occurred` : 'Uncaught Exception'}`);
else if (options.type === 'unhandledRejection')
- embeds[0].setTitle(
- `${options.context ? `[${Formatters.bold(options.context)}] An Error Occurred` : 'Unhandled Promise Rejection'}`
- );
+ embeds[0].setTitle(`${options.context ? `[${bold(options.context)}] An Error Occurred` : 'Unhandled Promise Rejection'}`);
return embeds;
}
diff --git a/yarn.lock b/yarn.lock
index 78eeb0a..776f94c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -14,7 +14,7 @@ __metadata:
languageName: node
linkType: hard
-"@discordjs/builders@npm:^1.0.0, @discordjs/builders@npm:^1.1.0":
+"@discordjs/builders@npm:^1.1.0":
version: 1.1.0
resolution: "@discordjs/builders@npm:1.1.0"
dependencies:
@@ -27,14 +27,14 @@ __metadata:
languageName: node
linkType: hard
-"@discordjs/collection@npm:^1.0.0, @discordjs/collection@npm:^1.0.1":
+"@discordjs/collection@npm:^1.0.1":
version: 1.0.1
resolution: "@discordjs/collection@npm:1.0.1"
checksum: 6477ae9870f3c069b190f673a6b34467930b409a6d763f1b0d4f6169051b8499d03de7b0e7e4c3697222845aea6d94283573ad6a488b50516764df675915ff44
languageName: node
linkType: hard
-"@discordjs/rest@npm:^1.0.0, @discordjs/rest@npm:^1.0.1":
+"@discordjs/rest@npm:^1.0.1":
version: 1.0.1
resolution: "@discordjs/rest@npm:1.0.1"
dependencies:
@@ -71,9 +71,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-loong64@npm:0.14.53":
- version: 0.14.53
- resolution: "@esbuild/linux-loong64@npm:0.14.53"
+"@esbuild/linux-loong64@npm:0.14.54":
+ version: 0.14.54
+ resolution: "@esbuild/linux-loong64@npm:0.14.54"
conditions: os=linux & cpu=loong64
languageName: node
linkType: hard
@@ -236,9 +236,9 @@ __metadata:
linkType: hard
"@sapphire/async-queue@npm:^1.3.2":
- version: 1.3.2
- resolution: "@sapphire/async-queue@npm:1.3.2"
- checksum: 348f35a278bff68cb6d5e2c2219b03ce66243162522003bb14426e5fdad251300bea8ef3883043eb034c181dddd52296a519e9f377075a5b31074807fe163e76
+ version: 1.4.0
+ resolution: "@sapphire/async-queue@npm:1.4.0"
+ checksum: 1361898e82aceee4189dd4bd3d2516f560ed15c3fb048a51e9df26f3e506c5935ef87160e4fdbd15facb8c2f2417cd896ee92c14f784aaf4d3ae96d0b21fbddf
languageName: node
linkType: hard
@@ -416,10 +416,10 @@ __metadata:
languageName: node
linkType: hard
-"@types/chai@npm:*, @types/chai@npm:^4.3.1":
- version: 4.3.1
- resolution: "@types/chai@npm:4.3.1"
- checksum: 2ee246b76c469cd620a7a1876a73bc597074361b67d547b4bd96a0c1adb43597ede2d8589ab626192e14349d83cbb646cc11e2c179eeeb43ff11596de94d82c4
+"@types/chai@npm:*, @types/chai@npm:^4.3.3":
+ version: 4.3.3
+ resolution: "@types/chai@npm:4.3.3"
+ checksum: 20cd094753e137cfc35939cae7f0ed78ecda7861e5c94704efab6979b9121a63807e9b631bdcf3a2792d6c6dba44050b13387262f9e63ebb040741c01c345f0a
languageName: node
linkType: hard
@@ -556,17 +556,17 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:*, @types/node@npm:^18.6.4":
- version: 18.6.4
- resolution: "@types/node@npm:18.6.4"
- checksum: fc453dd2b541f5812ba1a8f957f577727cf2d8aee886f1d5c03eb153b2b3373d2e0953c5bd2b7a5b184073bc317f54ec91f1ec4830a58eda4a833e90654021de
+"@types/node@npm:*, @types/node@npm:^18.6.5":
+ version: 18.6.5
+ resolution: "@types/node@npm:18.6.5"
+ checksum: e3e66c9a84b94010a57c1b9dac882c08484278d74f9d120dbe6a3e45d00740d178bd1d34a5deee28197c94b9f4359153b637bab9b305328e865027e9987a0f3d
languageName: node
linkType: hard
"@types/node@npm:^16.11.26":
- version: 16.11.45
- resolution: "@types/node@npm:16.11.45"
- checksum: 57d61c951024f66d796e71e4a972faef266007398cd4e93a195822fea2d5deb41d0615f394a99ece89772b145ff057321d138c7e3442455dc7d785ff67cebde3
+ version: 16.11.47
+ resolution: "@types/node@npm:16.11.47"
+ checksum: 26811000753fd1bb9a90a563fc72942ac3ad5d5b6c97609a090c1e24210e040597ba060e55a7a46cb22cc84dafee112d741f45652139c6166e8ce0c970b4f05a
languageName: node
linkType: hard
@@ -670,13 +670,13 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/eslint-plugin@npm:^5.32.0":
- version: 5.32.0
- resolution: "@typescript-eslint/eslint-plugin@npm:5.32.0"
+"@typescript-eslint/eslint-plugin@npm:^5.33.0":
+ version: 5.33.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:5.33.0"
dependencies:
- "@typescript-eslint/scope-manager": 5.32.0
- "@typescript-eslint/type-utils": 5.32.0
- "@typescript-eslint/utils": 5.32.0
+ "@typescript-eslint/scope-manager": 5.33.0
+ "@typescript-eslint/type-utils": 5.33.0
+ "@typescript-eslint/utils": 5.33.0
debug: ^4.3.4
functional-red-black-tree: ^1.0.1
ignore: ^5.2.0
@@ -689,53 +689,53 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 9785c34d9742b51130237bfe244924ca6dfd529bdcc5932a5cf81558f0235099c963a11125df393037db51ce451f7ab9442aba3c3a8bb2e0607569a0e31480c8
+ checksum: d408f3f474b34fefde8ee65d98deb126949fd7d8e211a7f95c5cc2b507dedbf8eb239f3895e0c37aa6338989531e37c5f35c2e0de36a126c52f0846e89605487
languageName: node
linkType: hard
"@typescript-eslint/experimental-utils@npm:^5.0.0":
- version: 5.32.0
- resolution: "@typescript-eslint/experimental-utils@npm:5.32.0"
+ version: 5.33.0
+ resolution: "@typescript-eslint/experimental-utils@npm:5.33.0"
dependencies:
- "@typescript-eslint/utils": 5.32.0
+ "@typescript-eslint/utils": 5.33.0
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- checksum: cbeff88d45b56179e5fc5a979e79b132a84566aeec277368c6705e9bc4371b9e867a37d169bbb225f9b7cea6d4f8d431e51d2db64c140b6f704c5de822a7c4d9
+ checksum: 51374c63afd368e992278c321819cca64354f0a160de07780378cd30fe148e9a239676b4005869ff0dc1910575e60cc96535a36be3d509b7e22c0cec7b0eed12
languageName: node
linkType: hard
-"@typescript-eslint/parser@npm:^5.32.0":
- version: 5.32.0
- resolution: "@typescript-eslint/parser@npm:5.32.0"
+"@typescript-eslint/parser@npm:^5.33.0":
+ version: 5.33.0
+ resolution: "@typescript-eslint/parser@npm:5.33.0"
dependencies:
- "@typescript-eslint/scope-manager": 5.32.0
- "@typescript-eslint/types": 5.32.0
- "@typescript-eslint/typescript-estree": 5.32.0
+ "@typescript-eslint/scope-manager": 5.33.0
+ "@typescript-eslint/types": 5.33.0
+ "@typescript-eslint/typescript-estree": 5.33.0
debug: ^4.3.4
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 3fcfa183cad125c3198fd63701c6e13dad1cc984d309e8cd40ec9a2eb857902abfd7e9ee3f030b18eb1c18c795a61ea289ef147a7f9dfac38df905e7514316af
+ checksum: 2617aba987a70ee6b16ecc6afa6d245422df33a9d056018ff2e316159e667a0ab9d9c15fcea95e0ba65832661e71cc2753a221e77f0b0fab278e52c4497b8278
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:5.32.0":
- version: 5.32.0
- resolution: "@typescript-eslint/scope-manager@npm:5.32.0"
+"@typescript-eslint/scope-manager@npm:5.33.0":
+ version: 5.33.0
+ resolution: "@typescript-eslint/scope-manager@npm:5.33.0"
dependencies:
- "@typescript-eslint/types": 5.32.0
- "@typescript-eslint/visitor-keys": 5.32.0
- checksum: 69bdeb029f39d1112299dc0cb0ddef30e51bdb782fdb79cc4e72fa448e00d71e39938d3bff3fa4ee43b3416c2e3b4564de2c37252914772b07eeedafb14412d6
+ "@typescript-eslint/types": 5.33.0
+ "@typescript-eslint/visitor-keys": 5.33.0
+ checksum: b2cbea9abd528d01a5acb2d68a2a5be51ec6827760d3869bdd70920cf6c3a4f9f96d87c77177f8313009d9db71253e4a75f8393f38651e2abaf91ef28e60fb9d
languageName: node
linkType: hard
-"@typescript-eslint/type-utils@npm:5.32.0":
- version: 5.32.0
- resolution: "@typescript-eslint/type-utils@npm:5.32.0"
+"@typescript-eslint/type-utils@npm:5.33.0":
+ version: 5.33.0
+ resolution: "@typescript-eslint/type-utils@npm:5.33.0"
dependencies:
- "@typescript-eslint/utils": 5.32.0
+ "@typescript-eslint/utils": 5.33.0
debug: ^4.3.4
tsutils: ^3.21.0
peerDependencies:
@@ -743,23 +743,23 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 4063808ca054789bebc6adb376d15c13e38f8ea14fa2842c38ae616d77fb77681b67a04b77887cf9ceb6f801ab3fc5eddfb6325779ab821404c62f36c56310bb
+ checksum: a1d1ffb42fe96bfc2339cc2875e218aa82fa9391be04c1a266bb11da1eca6835555687e81cde75477c60e6702049cd4dde7d2638e7e9b9d8cf4b7b2242353a6e
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:5.32.0":
- version: 5.32.0
- resolution: "@typescript-eslint/types@npm:5.32.0"
- checksum: 6758f54d8d7763893cd7c1753f525ef1777eee8b558bf3d54fd2a2ce691ca0cf813c68a26e4db83a1deae4e4a62b247f1195e15a1f3577f1293849f9e55a232c
+"@typescript-eslint/types@npm:5.33.0":
+ version: 5.33.0
+ resolution: "@typescript-eslint/types@npm:5.33.0"
+ checksum: 8bbddda84cb3adf5c659b0d42547a2d6ab87f4eea574aca5dd63a3bd85169f32796ecbddad3b27f18a609070f6b1d18a54018d488bad746ae0f6ea5c02206109
languageName: node
linkType: hard
-"@typescript-eslint/typescript-estree@npm:5.32.0":
- version: 5.32.0
- resolution: "@typescript-eslint/typescript-estree@npm:5.32.0"
+"@typescript-eslint/typescript-estree@npm:5.33.0":
+ version: 5.33.0
+ resolution: "@typescript-eslint/typescript-estree@npm:5.33.0"
dependencies:
- "@typescript-eslint/types": 5.32.0
- "@typescript-eslint/visitor-keys": 5.32.0
+ "@typescript-eslint/types": 5.33.0
+ "@typescript-eslint/visitor-keys": 5.33.0
debug: ^4.3.4
globby: ^11.1.0
is-glob: ^4.0.3
@@ -768,33 +768,33 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 6aee08be5d36603d038fb8340f324f5cb38519150c9b37c012f0c1ff2a4d8cf22fbc6835de31d069949c2b3d8ed3e729076a724ef29db4289d9fe73b97c9d310
+ checksum: 26f9005cdfb14654125a33d90d872b926820e560dff8970c4629fd5f6f47ad2a31e4c63161564d21bb42a8fc3ced0033994854ee37336ae07d90ccf6300d702b
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:5.32.0":
- version: 5.32.0
- resolution: "@typescript-eslint/utils@npm:5.32.0"
+"@typescript-eslint/utils@npm:5.33.0":
+ version: 5.33.0
+ resolution: "@typescript-eslint/utils@npm:5.33.0"
dependencies:
"@types/json-schema": ^7.0.9
- "@typescript-eslint/scope-manager": 5.32.0
- "@typescript-eslint/types": 5.32.0
- "@typescript-eslint/typescript-estree": 5.32.0
+ "@typescript-eslint/scope-manager": 5.33.0
+ "@typescript-eslint/types": 5.33.0
+ "@typescript-eslint/typescript-estree": 5.33.0
eslint-scope: ^5.1.1
eslint-utils: ^3.0.0
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- checksum: cfd88d93508c8fb0db17d2726691e1383db390357fa0637bd8111558fbe72da5130d995294001d71b1d929d620fbce3f20a70b277a77ca21a4241b3b470dc758
+ checksum: 6ce5ee5eabeb6d73538b24e6487f811ecb0ef3467bd366cbd15bf30d904bdedb73fc6f48cf2e2e742dda462b42999ea505e8b59255545825ec9db86f3d423ea7
languageName: node
linkType: hard
-"@typescript-eslint/visitor-keys@npm:5.32.0":
- version: 5.32.0
- resolution: "@typescript-eslint/visitor-keys@npm:5.32.0"
+"@typescript-eslint/visitor-keys@npm:5.33.0":
+ version: 5.33.0
+ resolution: "@typescript-eslint/visitor-keys@npm:5.33.0"
dependencies:
- "@typescript-eslint/types": 5.32.0
+ "@typescript-eslint/types": 5.33.0
eslint-visitor-keys: ^3.3.0
- checksum: 1f9b756d648c2346a6e8538ffde729d3d9ce6621fded3d9f15c96aa0ebf8f511daf8232470423fb36359c2113538a4daaf3336181be78a0cfbfd297af91ce9ba
+ checksum: d7e3653de6bac6841e6fcc54226b93ad6bdca4aa76ebe7d83459c016c3eebcc50d4f65ee713174bc267d765295b642d1927a778c5de707b8389e3fcc052aa4a1
languageName: node
linkType: hard
@@ -992,9 +992,9 @@ __metadata:
linkType: hard
"bignumber.js@npm:^9.0.0":
- version: 9.0.2
- resolution: "bignumber.js@npm:9.0.2"
- checksum: 8637b71d0a99104b20413c47578953970006fec6b4df796b9dcfd9835ea9c402ea0e727eba9a5ca9f9a393c1d88b6168c5bbe0887598b708d4f8b4870ad62e1f
+ version: 9.1.0
+ resolution: "bignumber.js@npm:9.1.0"
+ checksum: 52ec2bb5a3874d7dc1a1018f28f8f7aff4683515ffd09d6c2d93191343c76567ae0ee32cc45149d53afb2b904bc62ed471a307b35764beea7e9db78e56bef6c6
languageName: node
linkType: hard
@@ -1118,21 +1118,21 @@ __metadata:
"@types/eslint": ^8.4.5
"@types/express": ^4.17.13
"@types/lodash": ^4.14.182
- "@types/node": ^18.6.4
+ "@types/node": ^18.6.5
"@types/numeral": ^2.0.2
"@types/pg": ^8.6.5
"@types/prettier": ^2.7.0
"@types/rimraf": ^3.0.2
"@types/tinycolor2": ^1.4.3
"@types/validator": ^13.7.5
- "@typescript-eslint/eslint-plugin": ^5.32.0
- "@typescript-eslint/parser": ^5.32.0
+ "@typescript-eslint/eslint-plugin": ^5.33.0
+ "@typescript-eslint/parser": ^5.33.0
canvas: ^2.9.3
chalk: ^5.0.1
deep-lock: ^1.0.0
discord-akairo: "npm:@notenoughupdates/discord-akairo@dev"
discord-api-types: 0.37.1
- discord.js: "npm:@notenoughupdates/discord.js@dev"
+ discord.js: "npm:@notenoughupdates/discord.js@forum"
electron: ^20.0.1
eslint: ^8.21.0
eslint-config-prettier: ^8.5.0
@@ -1141,7 +1141,7 @@ __metadata:
fuse.js: ^6.6.2
gif-to-apng: ^0.1.2
googleapis: ^105.0.0
- got: ^12.3.0
+ got: ^12.3.1
lodash: ^4.17.21
mathjs: ^11.0.1
nanoid: ^4.0.0
@@ -1156,7 +1156,7 @@ __metadata:
tinycolor2: ^1.4.2
ts-essentials: ^9.2.0
typescript: ^4.7.4
- vitest: ^0.21.0
+ vitest: ^0.21.1
vm2: ^3.9.10
languageName: unknown
linkType: soft
@@ -1643,9 +1643,11 @@ __metadata:
linkType: hard
"discord-akairo@npm:@notenoughupdates/discord-akairo@dev":
- version: 9.1.3-dev.1655521909.d87c26d
- resolution: "@notenoughupdates/discord-akairo@npm:9.1.3-dev.1655521909.d87c26d"
- checksum: b1e03bae5ddfadd190de2230904f04b9f434ba2580ecd4780c926f40173d2a85bee570640143584c3b2cd534c1a679cab7a0ab5bb4dc5402c0eb6e6e881bec88
+ version: 10.0.0-dev.1660140200.a