Compare commits

...

7 Commits

Author SHA1 Message Date
almeidx
943dc19b45 fix(core): webhook delete query type, removeMember await 2026-04-05 22:29:18 +01:00
René
1f9affd979 perf(collection): avoid duplicated population of new collections (#11473) 2026-04-01 09:56:37 +00:00
Almeida
339b8b5655 chore: upgrade dependencies (#11470)
* chore: upgrade dependencies

* chore: upgrade some major dependencies

* chore: bump shiki to v4

* chore: bump actions dependencies

* chore: upgrade meilisearch dependency

* chore: set aria-hidden on GitHubIcon

* fix: use official github icon
2026-03-31 09:57:57 +01:00
Almeida
9b7ea5a1b7 fix: sendSoundboardSound return type (#11452)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2026-03-29 09:25:00 +00:00
Almeida
8bcf8c94e9 feat(GuildMember): add collectibles (#11468)
feat(GuildMember): add collectibles, fix partial update handling
2026-03-29 09:19:42 +00:00
Muhammad Bin Ali
22b820fbf2 fix(util): detect Cloudflare Workers in shouldUseGlobalFetchAndWebSocket (#11456)
Co-authored-by: Muhammad Ali <muhammadali@cloudflare.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2026-03-26 15:46:57 +00:00
epochzx
9ade8dcc71 docs: fix typo in sharding guide (#11467)
Fix a typo in sharding guide
2026-03-26 10:26:40 +00:00
47 changed files with 6638 additions and 6508 deletions

View File

@@ -9,7 +9,7 @@ Before you dive into this section, please note that sharding may not be necessar
If your bot is in a total of 2,000 or more servers, then please continue with this guide. Otherwise, it may be a good idea to wait until then.
<Callout>
Sharding is only relevant if you app uses gateway events. For webhook callbacks, this is completely irrelevant!
Sharding is only relevant if your app uses gateway events. For webhook callbacks, this is completely irrelevant!
</Callout>
## How does sharding work?

View File

@@ -3,14 +3,14 @@ title: Updating to v15
icon: ArrowDownToLine
---
import { Github } from 'lucide-react';
import { GitHubIcon } from '@/components/GitHubIcon.tsx';
<Callout type="idea">
**Version 15 is in a pre-release** state, but should be usable!
That being said, we do not recommend you update your production instance without careful and thorough testing!
Please report any bugs you experience at our GitHub repository:
<Github className="inline text-red-400"/> https://github.com/discordjs/discord.js/issues
<GitHubIcon className="inline text-red-400"/> https://github.com/discordjs/discord.js/issues
</Callout>

View File

@@ -48,18 +48,18 @@
"homepage": "https://discord.js.org",
"funding": "https://github.com/discordjs/discord.js?sponsor",
"dependencies": {
"@opennextjs/cloudflare": "^1.16.5",
"@vercel/analytics": "^1.6.1",
"fumadocs-core": "^16.6.3",
"fumadocs-mdx": "^14.2.7",
"fumadocs-twoslash": "^3.1.13",
"fumadocs-ui": "^16.6.3",
"@opennextjs/cloudflare": "^1.18.0",
"@vercel/analytics": "^2.0.1",
"fumadocs-core": "^16.7.7",
"fumadocs-mdx": "^14.2.11",
"fumadocs-twoslash": "^3.1.14",
"fumadocs-ui": "^16.7.7",
"geist": "^1.7.0",
"lucide-react": "^0.559.0",
"mermaid": "^11.12.3",
"next": "^16.1.6",
"lucide-react": "^1.7.0",
"mermaid": "^11.13.0",
"next": "^16.2.1",
"next-themes": "^0.4.6",
"p-retry": "^7.1.1",
"p-retry": "^8.0.0",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"sharp": "^0.34.5",
@@ -68,31 +68,31 @@
"twoslash": "^0.3.6"
},
"devDependencies": {
"@shikijs/rehype": "^3.22.0",
"@tailwindcss/postcss": "^4.2.0",
"@shikijs/rehype": "^4.0.2",
"@tailwindcss/postcss": "^4.2.2",
"@types/mdx": "^2.0.13",
"@types/node": "^24.10.13",
"@types/node": "^24.12.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"autoprefixer": "^10.4.24",
"autoprefixer": "^10.4.27",
"babel-plugin-react-compiler": "^1.0.0",
"cpy-cli": "^6.0.0",
"cpy-cli": "^7.0.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-pretty": "^7.0.0",
"git-describe": "^4.1.1",
"postcss": "^8.5.6",
"postcss": "^8.5.8",
"prettier": "^3.8.1",
"prettier-plugin-tailwindcss": "^0.7.2",
"remark-gfm": "^4.0.1",
"remark-rehype": "^11.1.2",
"shiki": "^3.22.0",
"tailwindcss": "^4.2.0",
"turbo": "^2.8.10",
"shiki": "^4.0.2",
"tailwindcss": "^4.2.2",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vercel": "^49.2.0",
"wrangler": "^4.67.0"
"vercel": "^50.37.3",
"wrangler": "^4.78.0"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -0,0 +1,27 @@
import type { ComponentProps } from 'react';
export function GitHubIcon(props: ComponentProps<'svg'>) {
return (
<svg
aria-hidden
fill="none"
height={96}
viewBox="0 0 98 96"
width={98}
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<g clipPath="url(#clip0_730_27126)">
<path
d="M41.44 69.385C28.807 67.853 19.906 58.762 19.906 46.99c0-4.785 1.723-9.953 4.594-13.398-1.244-3.158-1.053-9.858.383-12.633 3.828-.479 8.996 1.531 12.058 4.307 3.637-1.149 7.465-1.723 12.155-1.723 4.69 0 8.517.574 11.963 1.627 2.966-2.68 8.23-4.69 12.058-4.211 1.34 2.584 1.531 9.283.287 12.537 3.063 3.637 4.69 8.518 4.69 13.494 0 11.772-8.9 20.672-21.725 22.3 3.254 2.104 5.455 6.698 5.455 11.962v9.953c0 2.871 2.393 4.498 5.264 3.35C84.41 87.95 98 70.629 98 49.19 98 22.107 75.988 0 48.904 0 21.82 0 0 22.107 0 49.191c0 21.246 13.494 38.856 31.678 45.46 2.584.956 5.072-.766 5.072-3.35v-7.657c-1.34.575-3.063.958-4.594.958-6.316 0-10.049-3.446-12.728-9.858-1.053-2.584-2.201-4.115-4.403-4.402-1.148-.096-1.53-.574-1.53-1.149 0-1.148 1.913-2.01 3.827-2.01 2.776 0 5.168 1.723 7.657 5.264 1.914 2.776 3.923 4.02 6.316 4.02 2.392 0 3.924-.861 6.125-3.063 1.627-1.627 2.871-3.062 4.02-4.02z"
fill="#000"
/>
</g>
<defs>
<clipPath id="clip0_730_27126">
<path d="M0 0H98V96H0z" fill="#fff" />
</clipPath>
</defs>
</svg>
);
}

View File

@@ -6,7 +6,7 @@ import { Mermaid } from '@/components/mdx/mermaid';
export function getMDXComponents(components?: MDXComponents): MDXComponents {
return {
...defaultMdxComponents,
...(defaultMdxComponents as MDXComponents),
Popup,
PopupContent,
PopupTrigger,

View File

@@ -50,16 +50,16 @@
"tslib": "^2.8.1"
},
"devDependencies": {
"@types/node": "^24.10.13",
"@types/node": "^24.12.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"terser": "^5.46.0",
"terser": "^5.46.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3"
},
"engines": {

View File

@@ -51,27 +51,27 @@
"homepage": "https://discord.js.org",
"funding": "https://github.com/discordjs/discord.js?sponsor",
"dependencies": {
"@opennextjs/cloudflare": "^1.16.5",
"@opennextjs/cloudflare": "^1.18.0",
"@radix-ui/react-collapsible": "^1.1.12",
"@react-icons/all-files": "^4.1.0",
"@tanstack/react-query": "^5.90.21",
"@vercel/analytics": "^1.6.1",
"@tanstack/react-query": "^5.95.2",
"@vercel/analytics": "^2.0.1",
"@vercel/postgres": "^0.10.0",
"cloudflare": "^5.2.0",
"cmdk": "^1.1.1",
"cva": "1.0.0-beta.3",
"geist": "^1.7.0",
"jotai": "^2.18.0",
"lucide-react": "^0.559.0",
"meilisearch": "^0.54.0",
"next": "^16.1.6",
"jotai": "^2.19.0",
"lucide-react": "^1.7.0",
"meilisearch": "^0.56.0",
"next": "^16.2.1",
"next-themes": "^0.4.6",
"nuqs": "^2.8.8",
"nuqs": "^2.8.9",
"overlayscrollbars": "^2.14.0",
"overlayscrollbars-react": "^0.5.6",
"react": "^19.2.4",
"react-aria": "^3.46.0",
"react-aria-components": "^1.15.1",
"react-aria": "^3.47.0",
"react-aria-components": "^1.16.0",
"react-dom": "^19.2.4",
"safe-mdx": "^1.3.9",
"sharp": "^0.34.5",
@@ -80,32 +80,32 @@
"usehooks-ts": "^3.1.1"
},
"devDependencies": {
"@shikijs/rehype": "^3.22.0",
"@tailwindcss/postcss": "^4.2.0",
"@shikijs/rehype": "^4.0.2",
"@tailwindcss/postcss": "^4.2.2",
"@tailwindcss/typography": "^0.5.19",
"@types/node": "^24.10.13",
"@types/node": "^24.12.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"autoprefixer": "^10.4.24",
"autoprefixer": "^10.4.27",
"babel-plugin-react-compiler": "^1.0.0",
"cpy-cli": "^6.0.0",
"cpy-cli": "^7.0.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-pretty": "^7.0.0",
"git-describe": "^4.1.1",
"postcss": "^8.5.6",
"postcss": "^8.5.8",
"prettier": "^3.8.1",
"prettier-plugin-tailwindcss": "^0.7.2",
"remark-gfm": "^4.0.1",
"remark-rehype": "^11.1.2",
"shiki": "^3.22.0",
"tailwindcss": "^4.2.0",
"shiki": "^4.0.2",
"tailwindcss": "^4.2.2",
"tailwindcss-react-aria-components": "^2.0.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vercel": "^49.2.0",
"wrangler": "^4.67.0"
"vercel": "^50.37.3",
"wrangler": "^4.78.0"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -3,7 +3,7 @@
import { Command } from 'cmdk';
import { useAtom, useSetAtom } from 'jotai';
import { ArrowRight } from 'lucide-react';
import MeiliSearch from 'meilisearch';
import { MeiliSearch } from 'meilisearch';
import dynamic from 'next/dynamic';
import { usePathname, useRouter } from 'next/navigation';
import { useEffect, useState } from 'react';

View File

@@ -4,18 +4,35 @@ import type {
DynamicImportThemeRegistration,
HighlighterGeneric,
} from 'shiki/types';
import { createSingletonShorthands, createdBundledHighlighter } from 'shiki/core';
import { createBundledHighlighter, createSingletonShorthands } from 'shiki/core';
import { createJavaScriptRegexEngine } from 'shiki/engine-javascript.mjs';
type BundledLanguage = 'typescript' | 'ts' | 'javascript' | 'js' | 'shellscript' | 'bash' | 'sh' | 'shell' | 'zsh';
type BundledLanguage =
| 'typescript'
| 'ts'
| 'cts'
| 'mts'
| 'javascript'
| 'js'
| 'cjs'
| 'mjs'
| 'shellscript'
| 'bash'
| 'sh'
| 'shell'
| 'zsh';
type BundledTheme = 'github-light' | 'github-dark-dimmed';
type Highlighter = HighlighterGeneric<BundledLanguage, BundledTheme>;
const bundledLanguages = {
typescript: () => import('shiki/langs/typescript.mjs'),
ts: () => import('shiki/langs/typescript.mjs'),
cts: () => import('shiki/langs/typescript.mjs'),
mts: () => import('shiki/langs/typescript.mjs'),
javascript: () => import('shiki/langs/javascript.mjs'),
js: () => import('shiki/langs/javascript.mjs'),
cjs: () => import('shiki/langs/javascript.mjs'),
mjs: () => import('shiki/langs/javascript.mjs'),
shellscript: () => import('shiki/langs/shellscript.mjs'),
bash: () => import('shiki/langs/shellscript.mjs'),
sh: () => import('shiki/langs/shellscript.mjs'),
@@ -28,7 +45,7 @@ const bundledThemes = {
'github-dark-dimmed': () => import('shiki/themes/github-dark-dimmed.mjs'),
} as Record<BundledTheme, DynamicImportThemeRegistration>;
const createHighlighter = /* @__PURE__ */ createdBundledHighlighter<BundledLanguage, BundledTheme>({
const createHighlighter = /* @__PURE__ */ createBundledHighlighter<BundledLanguage, BundledTheme>({
langs: bundledLanguages,
themes: bundledThemes,
engine: () => createJavaScriptRegexEngine(),

View File

@@ -51,33 +51,33 @@
"homepage": "https://discord.js.org",
"funding": "https://github.com/discordjs/discord.js?sponsor",
"devDependencies": {
"@commitlint/cli": "^20.4.2",
"@commitlint/config-angular": "^20.4.2",
"@commitlint/cli": "^20.5.0",
"@commitlint/config-angular": "^20.5.0",
"@favware/cliff-jumper": "^6.0.0",
"@favware/npm-deprecate": "^2.0.0",
"@types/lodash.merge": "^4.6.9",
"@unocss/eslint-plugin": "^66.6.0",
"@vitest/coverage-v8": "^4.0.18",
"@unocss/eslint-plugin": "^66.6.7",
"@vitest/coverage-v8": "^4.1.2",
"conventional-changelog-cli": "^5.0.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-react-compiler": "19.1.0-rc.2",
"husky": "^9.1.7",
"is-ci": "^4.1.0",
"lint-staged": "^16.2.7",
"lint-staged": "^16.4.0",
"lodash.merge": "^4.6.2",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"typescript-eslint": "^8.56.0",
"unocss": "^66.6.0",
"vercel": "^49.2.0",
"vitest": "^4.0.18"
"typescript-eslint": "^8.57.2",
"unocss": "^66.6.7",
"vercel": "^50.37.3",
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"
},
"packageManager": "pnpm@10.30.1"
"packageManager": "pnpm@10.33.0"
}

View File

@@ -41,35 +41,35 @@
"homepage": "https://discord.js.org",
"funding": "https://github.com/discordjs/discord.js?sponsor",
"dependencies": {
"@actions/core": "^2.0.3",
"@actions/github": "^6.0.1",
"@actions/glob": "^0.5.1",
"@aws-sdk/client-s3": "^3.994.0",
"@actions/core": "^3.0.0",
"@actions/github": "^9.0.0",
"@actions/glob": "^0.6.1",
"@aws-sdk/client-s3": "^3.1019.0",
"@discordjs/scripts": "workspace:^",
"cloudflare": "^5.2.0",
"commander": "^14.0.3",
"meilisearch": "^0.54.0",
"meilisearch": "^0.56.0",
"p-limit": "^7.3.0",
"p-queue": "^9.1.0",
"tslib": "^2.8.1",
"undici": "7.22.0"
"undici": "7.24.6"
},
"devDependencies": {
"@npm/types": "^2.1.0",
"@types/bun": "^1.3.9",
"@types/node": "^24.10.13",
"@vitest/coverage-v8": "^4.0.18",
"@types/bun": "^1.3.11",
"@types/node": "^24.12.0",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"terser": "^5.46.0",
"terser": "^5.46.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -36,16 +36,16 @@
"@rushstack/node-core-library": "5.13.1"
},
"devDependencies": {
"@types/node": "^24.10.13",
"@types/node": "^24.12.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"terser": "^5.46.0",
"terser": "^5.46.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3"
}
}

View File

@@ -50,16 +50,16 @@
"@microsoft/tsdoc": "~0.15.1"
},
"devDependencies": {
"@types/node": "^24.10.13",
"@types/node": "^24.12.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"terser": "^5.46.0",
"terser": "^5.46.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3"
},
"engines": {

View File

@@ -63,19 +63,19 @@
"typescript": "~5.5.4"
},
"devDependencies": {
"@types/lodash": "^4.17.23",
"@types/node": "^24.10.13",
"@types/lodash": "^4.17.24",
"@types/node": "^24.12.0",
"@types/resolve": "^1.20.6",
"@types/semver": "^7.7.1",
"cpy-cli": "^6.0.0",
"cpy-cli": "^7.0.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.2.9",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"terser": "^5.46.0",
"terser": "^5.46.1",
"tsup": "^8.5.1",
"turbo": "^2.8.7"
"turbo": "^2.8.21"
}
}

View File

@@ -71,25 +71,25 @@
"@discordjs/ws": "workspace:^",
"@msgpack/msgpack": "^3.1.3",
"@vladfrangu/async_event_emitter": "^2.4.7",
"ioredis": "^5.9.3"
"ioredis": "^5.10.1"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -66,7 +66,7 @@
"funding": "https://github.com/discordjs/discord.js?sponsor",
"dependencies": {
"@discordjs/util": "workspace:^",
"discord-api-types": "^0.38.41",
"discord-api-types": "^0.38.43",
"ts-mixer": "^6.0.4",
"tslib": "^2.8.1",
"zod": "^4.3.6"
@@ -75,19 +75,19 @@
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -64,19 +64,19 @@
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -1023,7 +1023,10 @@ export class Collection<Key, Value> extends Map<Key, Value> {
* but returns a Collection instead of an Array.
*/
public toReversed() {
return new this.constructor[Symbol.species](this).reverse();
const entries = [...this.entries()];
entries.reverse();
return new this.constructor[Symbol.species](entries);
}
/**
@@ -1039,7 +1042,10 @@ export class Collection<Key, Value> extends Map<Key, Value> {
* ```
*/
public toSorted(compareFunction: Comparator<Key, Value> = Collection.defaultSort): Collection<Key, Value> {
return new this.constructor[Symbol.species](this).sort(compareFunction);
const entries = [...this.entries()];
entries.sort((a, b): number => compareFunction(a[1], b[1], a[0], b[0]));
return new this.constructor[Symbol.species](entries);
}
public toJSON() {

View File

@@ -70,25 +70,25 @@
"@discordjs/ws": "workspace:^",
"@sapphire/snowflake": "^3.5.5",
"@vladfrangu/async_event_emitter": "^2.4.7",
"discord-api-types": "^0.38.41"
"discord-api-types": "^0.38.43"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -31,7 +31,6 @@ import {
type RESTPostAPIChannelWebhookJSONBody,
type RESTPostAPIChannelWebhookResult,
type RESTPostAPIGuildForumThreadsJSONBody,
type RESTPostAPISendSoundboardSoundResult,
type RESTPostAPISoundboardSendSoundJSONBody,
type RESTPutAPIChannelPermissionJSONBody,
type RESTPutAPIChannelRecipientJSONBody,
@@ -702,11 +701,11 @@ export class ChannelsAPI {
body: RESTPostAPISoundboardSendSoundJSONBody,
{ auth, signal }: Pick<RequestData, 'auth' | 'signal'> = {},
) {
return this.rest.post(Routes.sendSoundboardSound(channelId), {
await this.rest.post(Routes.sendSoundboardSound(channelId), {
auth,
body,
signal,
}) as Promise<RESTPostAPISendSoundboardSoundResult>;
});
}
/**

View File

@@ -1237,7 +1237,7 @@ export class GuildsAPI {
userId: Snowflake,
{ auth, reason, signal }: Pick<RequestData, 'auth' | 'reason' | 'signal'> = {},
) {
return this.rest.delete(Routes.guildMember(guildId, userId), { auth, reason, signal });
await this.rest.delete(Routes.guildMember(guildId, userId), { auth, reason, signal });
}
/**

View File

@@ -16,6 +16,7 @@ import {
type RESTPostAPIWebhookWithTokenQuery,
type RESTPostAPIWebhookWithTokenSlackQuery,
type RESTPostAPIWebhookWithTokenWaitResult,
type RESTDeleteAPIWebhookWithTokenMessageQuery,
type Snowflake,
} from 'discord-api-types/v10';
@@ -259,7 +260,7 @@ export class WebhooksAPI {
id: Snowflake,
token: string,
messageId: Snowflake,
query: { thread_id?: Snowflake } = {},
query: RESTDeleteAPIWebhookWithTokenMessageQuery = {},
{ signal }: Pick<RequestData, 'signal'> = {},
) {
await this.rest.delete(Routes.webhookMessage(id, token, messageId), {

View File

@@ -57,16 +57,16 @@
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@types/node": "^22.19.15",
"@types/prompts": "^2.4.9",
"@types/validate-npm-package-name": "^4.0.2",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"terser": "^5.46.0",
"terser": "^5.46.1",
"tsup": "^8.5.1",
"typescript": "~5.9.3"
},

View File

@@ -15,7 +15,7 @@
"discord.js": "^14.25.1"
},
"devDependencies": {
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",

View File

@@ -16,8 +16,8 @@
},
"devDependencies": {
"@sapphire/ts-config": "^5.0.3",
"@types/bun": "^1.3.9",
"eslint": "^9.39.2",
"@types/bun": "^1.3.11",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",

View File

@@ -15,7 +15,7 @@
"discord.js": "^14.25.1"
},
"devDependencies": {
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",

View File

@@ -17,8 +17,8 @@
},
"devDependencies": {
"@sapphire/ts-config": "^5.0.3",
"@types/node": "^22.19.11",
"eslint": "^9.39.2",
"@types/node": "^22.19.15",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",

View File

@@ -73,12 +73,12 @@
"@discordjs/ws": "workspace:^",
"@sapphire/snowflake": "3.5.5",
"@vladfrangu/async_event_emitter": "^2.4.7",
"discord-api-types": "^0.38.41",
"discord-api-types": "^0.38.43",
"fast-deep-equal": "3.1.3",
"lodash.snakecase": "4.1.1",
"magic-bytes.js": "^1.13.0",
"tslib": "^2.8.1",
"undici": "7.22.0"
"undici": "7.24.6"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
@@ -86,15 +86,15 @@
"@discordjs/docgen": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@types/node": "^22.19.15",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsd": "^0.33.0",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3"
},
"engines": {

View File

@@ -5,6 +5,7 @@ const { DiscordjsError, ErrorCodes } = require('../errors/index.js');
const { GuildMemberRoleManager } = require('../managers/GuildMemberRoleManager.js');
const { GuildMemberFlagsBitField } = require('../util/GuildMemberFlagsBitField.js');
const { PermissionsBitField } = require('../util/PermissionsBitField.js');
const { _transformCollectibles } = require('../util/Transformers.js');
const { Base } = require('./Base.js');
const { VoiceState } = require('./VoiceState.js');
@@ -150,6 +151,17 @@ class GuildMember extends Base {
} else {
this.avatarDecorationData = null;
}
if ('collectibles' in data) {
/**
* The member's collectibles
*
* @type {?Collectibles}
*/
this.collectibles = data.collectibles ? _transformCollectibles(data.collectibles) : null;
} else {
this.collectibles ??= null;
}
}
_clone() {
@@ -599,7 +611,11 @@ class GuildMember extends Base {
(this._roles.length === member._roles.length &&
this._roles.every((role, index) => role === member._roles[index]))) &&
this.avatarDecorationData?.asset === member.avatarDecorationData?.asset &&
this.avatarDecorationData?.skuId === member.avatarDecorationData?.skuId
this.avatarDecorationData?.skuId === member.avatarDecorationData?.skuId &&
this.collectibles?.nameplate?.skuId === member.collectibles?.nameplate?.skuId &&
this.collectibles?.nameplate?.asset === member.collectibles?.nameplate?.asset &&
this.collectibles?.nameplate?.label === member.collectibles?.nameplate?.label &&
this.collectibles?.nameplate?.palette === member.collectibles?.nameplate?.palette
);
}

View File

@@ -170,15 +170,15 @@ class User extends Base {
* @property {?NameplateData} nameplate The user's nameplate data
*/
if (data.collectibles) {
if ('collectibles' in data) {
/**
* The user's collectibles
*
* @type {?Collectibles}
*/
this.collectibles = _transformCollectibles(data.collectibles);
this.collectibles = data.collectibles ? _transformCollectibles(data.collectibles) : null;
} else {
this.collectibles = null;
this.collectibles ??= null;
}
/**

View File

@@ -1638,6 +1638,7 @@ export class GuildMember extends Base {
public avatarDecorationData: AvatarDecorationData | null;
public banner: string | null;
public get bannable(): boolean;
public collectibles: Collectibles | null;
public get dmChannel(): DMChannel | null;
public get displayColor(): number;
public get displayHexColor(): HexColorString;

View File

@@ -68,16 +68,16 @@
},
"devDependencies": {
"@types/jsdoc-to-markdown": "^7.0.6",
"@types/node": "^24.10.13",
"@types/node": "^24.12.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"terser": "^5.46.0",
"terser": "^5.46.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3"
},
"engines": {

View File

@@ -55,25 +55,25 @@
"homepage": "https://discord.js.org",
"funding": "https://github.com/discordjs/discord.js?sponsor",
"dependencies": {
"discord-api-types": "^0.38.41"
"discord-api-types": "^0.38.43"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -72,25 +72,25 @@
"@discordjs/rest": "workspace:^",
"@discordjs/util": "workspace:^",
"@discordjs/ws": "workspace:^",
"discord-api-types": "^0.38.41"
"discord-api-types": "^0.38.43"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -68,27 +68,27 @@
"@discordjs/rest": "workspace:^",
"@discordjs/util": "workspace:^",
"tslib": "^2.8.1",
"undici": "7.22.0"
"undici": "7.24.6"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@types/supertest": "^6.0.3",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@types/supertest": "^7.2.0",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"supertest": "^7.2.2",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -88,29 +88,29 @@
"@sapphire/async-queue": "^1.5.5",
"@sapphire/snowflake": "^3.5.5",
"@vladfrangu/async_event_emitter": "^2.4.7",
"discord-api-types": "^0.38.41",
"discord-api-types": "^0.38.43",
"magic-bytes.js": "^1.13.0",
"tslib": "^2.8.1",
"undici": "7.22.0",
"undici": "7.24.6",
"uuid": "^13.0.0"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -60,30 +60,30 @@
"homepage": "https://discord.js.org",
"funding": "https://github.com/discordjs/discord.js?sponsor",
"dependencies": {
"@actions/glob": "^0.5.1",
"@actions/glob": "^0.6.1",
"@discordjs/api-extractor-model": "workspace:^",
"@discordjs/api-extractor-utils": "workspace:^",
"@microsoft/tsdoc": "~0.15.1",
"@microsoft/tsdoc-config": "~0.17.1",
"@vercel/blob": "^2.3.0",
"@vercel/blob": "^2.3.2",
"@vercel/postgres": "^0.10.0",
"commander": "^14.0.3",
"tslib": "^2.8.1",
"undici": "7.22.0",
"yaml": "^2.8.2"
"undici": "7.24.6",
"yaml": "^2.8.3"
},
"devDependencies": {
"@turbo/gen": "^2.8.10",
"@types/node": "^24.10.13",
"@turbo/gen": "^2.8.21",
"@types/node": "^24.12.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"terser": "^5.46.0",
"terser": "^5.46.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3"
},
"engines": {

View File

@@ -59,19 +59,19 @@
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^24.10.13",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^24.12.0",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -63,26 +63,26 @@
"dependencies": {
"@discordjs/formatters": "workspace:^",
"@sapphire/snowflake": "^3.5.5",
"discord-api-types": "^0.38.41"
"discord-api-types": "^0.38.43"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"cpy-cli": "^6.0.0",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cpy-cli": "^7.0.0",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -52,7 +52,7 @@
"homepage": "https://discord.js.org",
"funding": "https://github.com/discordjs/discord.js?sponsor",
"dependencies": {
"@ariakit/react": "^0.4.21",
"@ariakit/react": "^0.4.24",
"@react-icons/all-files": "^4.1.0",
"react": "^19.2.4",
"react-dom": "^19.2.4"
@@ -60,30 +60,30 @@
"devDependencies": {
"@favware/cliff-jumper": "^6.0.0",
"@react-icons/all-files": "^4.1.0",
"@storybook/addon-docs": "^10.2.10",
"@storybook/addon-links": "^10.2.10",
"@storybook/addon-themes": "^10.2.10",
"@storybook/builder-vite": "^10.2.10",
"@storybook/react": "^10.2.10",
"@storybook/react-vite": "^10.2.10",
"@types/node": "^24.10.13",
"@storybook/addon-docs": "^10.3.3",
"@storybook/addon-links": "^10.3.3",
"@storybook/addon-themes": "^10.3.3",
"@storybook/builder-vite": "^10.3.3",
"@storybook/react": "^10.3.3",
"@storybook/react-vite": "^10.3.3",
"@types/node": "^24.12.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@unocss/eslint-plugin": "^66.6.0",
"@unocss/reset": "^66.6.0",
"@vitejs/plugin-react": "^5.1.4",
"chromatic": "^13.3.5",
"@unocss/eslint-plugin": "^66.6.7",
"@unocss/reset": "^66.6.7",
"@vitejs/plugin-react": "^5.2.0",
"chromatic": "^16.0.0",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"prop-types": "^15.8.1",
"storybook": "^10.2.10",
"turbo": "^2.8.10",
"storybook": "^10.3.3",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"unocss": "^66.6.0",
"unocss": "^66.6.7",
"vite": "^7.3.1",
"vite-plugin-dts": "^4.5.4"
},

View File

@@ -0,0 +1,47 @@
import { afterEach, describe, expect, test, vi } from 'vitest';
import { shouldUseGlobalFetchAndWebSocket } from '../src/index.js';
describe('shouldUseGlobalFetchAndWebSocket', () => {
afterEach(() => {
vi.unstubAllGlobals();
});
test('GIVEN browser env with fetch and WebSocket THEN returns true', () => {
vi.stubGlobal('process', undefined);
vi.stubGlobal('fetch', () => void 0);
vi.stubGlobal('WebSocket', class {});
expect(shouldUseGlobalFetchAndWebSocket()).toBe(true);
});
test('GIVEN browser env without fetch or WebSocket THEN returns false', () => {
vi.stubGlobal('process', undefined);
vi.stubGlobal('fetch', globalThis.fetch);
vi.stubGlobal('WebSocket', globalThis.WebSocket);
// @ts-expect-error Testing missing globals
delete globalThis.fetch;
// @ts-expect-error Testing missing globals
delete globalThis.WebSocket;
expect(shouldUseGlobalFetchAndWebSocket()).toBe(false);
});
test('GIVEN Cloudflare Workers with nodejs_compat THEN returns true', () => {
vi.stubGlobal('process', { versions: { node: '22.19.0' } });
vi.stubGlobal('WebSocketPair', class {});
expect(shouldUseGlobalFetchAndWebSocket()).toBe(true);
});
test('GIVEN Node.js THEN returns false', () => {
vi.stubGlobal('process', { versions: { node: '22.19.0' } });
expect(shouldUseGlobalFetchAndWebSocket()).toBe(false);
});
test('GIVEN Deno THEN returns true', () => {
vi.stubGlobal('process', { versions: { deno: '1.0.0' } });
expect(shouldUseGlobalFetchAndWebSocket()).toBe(true);
});
test('GIVEN Bun THEN returns true', () => {
vi.stubGlobal('process', { versions: { bun: '1.0.0' } });
expect(shouldUseGlobalFetchAndWebSocket()).toBe(true);
});
});

View File

@@ -62,25 +62,25 @@
"homepage": "https://discord.js.org",
"funding": "https://github.com/discordjs/discord.js?sponsor",
"dependencies": {
"discord-api-types": "^0.38.41"
"discord-api-types": "^0.38.43"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18"
"vitest": "^4.1.2"
},
"engines": {
"node": ">=22.12.0"

View File

@@ -6,6 +6,14 @@ export function shouldUseGlobalFetchAndWebSocket() {
return 'fetch' in globalThis && 'WebSocket' in globalThis;
}
// Cloudflare Workers with nodejs_compat polyfills process (including
// process.versions.node), but natively supports the Web WebSocket API.
// WebSocketPair is a Workers-only global; no other runtime exposes it.
// @ts-expect-error WebSocketPair is not in the globalThis type
if (typeof globalThis.WebSocketPair !== 'undefined') {
return true;
}
if ('versions' in globalThis.process) {
return 'deno' in globalThis.process.versions || 'bun' in globalThis.process.versions;
}

View File

@@ -63,12 +63,12 @@
"homepage": "https://discord.js.org",
"funding": "https://github.com/discordjs/discord.js?sponsor",
"dependencies": {
"@snazzah/davey": "^0.1.9",
"@snazzah/davey": "^0.1.11",
"@types/ws": "^8.18.1",
"discord-api-types": "^0.38.41",
"discord-api-types": "^0.38.43",
"prism-media": "^1.3.5",
"tslib": "^2.8.1",
"ws": "^8.19.0"
"ws": "^8.20.0"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
@@ -76,19 +76,19 @@
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@noble/ciphers": "^2.1.1",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18",
"vitest": "^4.1.2",
"vitest-websocket-mock": "^0.5.0"
},
"engines": {

View File

@@ -78,28 +78,28 @@
"@sapphire/async-queue": "^1.5.5",
"@types/ws": "^8.18.1",
"@vladfrangu/async_event_emitter": "^2.4.7",
"discord-api-types": "^0.38.41",
"discord-api-types": "^0.38.43",
"tslib": "^2.8.1",
"ws": "^8.19.0"
"ws": "^8.20.0"
},
"devDependencies": {
"@discordjs/api-extractor": "workspace:^",
"@discordjs/scripts": "workspace:^",
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^22.19.11",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^22.19.15",
"@vitest/coverage-v8": "^4.1.2",
"cross-env": "^10.1.0",
"esbuild-plugin-version-injector": "^1.2.1",
"eslint": "^9.39.2",
"eslint": "^9.39.4",
"eslint-config-neon": "^0.3.2",
"eslint-formatter-compact": "^9.0.1",
"eslint-formatter-pretty": "^7.0.0",
"mock-socket": "^9.3.1",
"prettier": "^3.8.1",
"tsup": "^8.5.1",
"turbo": "^2.8.10",
"turbo": "^2.8.21",
"typescript": "~5.9.3",
"vitest": "^4.0.18",
"vitest": "^4.1.2",
"zlib-sync": "^0.1.10"
},
"engines": {

12532
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -3,24 +3,22 @@ packages:
- packages/*
- packages/create-discord-bot/template/**/*
allowBuilds:
'@discordjs/opus': true
'@tailwindcss/oxide': true
bufferutil: true
core-js-pure: false
esbuild: true
protobufjs: true
rclone.js: true
sharp: true
unrs-resolver: false
utf-8-validate: true
workerd: true
zlib-sync: true
autoInstallPeers: false
ignoredBuiltDependencies:
- core-js-pure
- unrs-resolver
onlyBuiltDependencies:
- '@discordjs/opus'
- '@tailwindcss/oxide'
- bufferutil
- esbuild
- protobufjs
- rclone.js
- sharp
- utf-8-validate
- workerd
- zlib-sync
patchedDependencies:
'@microsoft/tsdoc-config@0.17.1': patches/@microsoft__tsdoc-config@0.17.1.patch