seyfert 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/LICENSE +190 -190
  2. package/README.md +46 -46
  3. package/lib/api/Router.d.ts +9 -0
  4. package/lib/api/Router.js +16 -8
  5. package/lib/api/Routes/cdn.d.ts +26 -15
  6. package/lib/api/api.d.ts +2 -3
  7. package/lib/api/api.js +4 -9
  8. package/lib/api/index.d.ts +0 -1
  9. package/lib/api/index.js +0 -1
  10. package/lib/builders/Modal.d.ts +4 -1
  11. package/lib/builders/Modal.js +4 -1
  12. package/lib/cache/adapters/default.d.ts +1 -0
  13. package/lib/cache/adapters/default.js +4 -0
  14. package/lib/cache/adapters/redis.d.ts +2 -0
  15. package/lib/cache/adapters/redis.js +17 -0
  16. package/lib/cache/adapters/types.d.ts +1 -0
  17. package/lib/cache/adapters/workeradapter.d.ts +1 -0
  18. package/lib/cache/adapters/workeradapter.js +6 -9
  19. package/lib/cache/index.d.ts +3 -1
  20. package/lib/cache/index.js +3 -0
  21. package/lib/cache/resources/overwrites.d.ts +2 -0
  22. package/lib/client/base.d.ts +1 -1
  23. package/lib/client/base.js +8 -5
  24. package/lib/client/onmessagecreate.js +15 -12
  25. package/lib/client/workerclient.js +5 -11
  26. package/lib/commands/applications/chat.d.ts +9 -6
  27. package/lib/commands/applications/chat.js +4 -1
  28. package/lib/commands/applications/shared.d.ts +4 -0
  29. package/lib/commands/applications/shared.js +6 -0
  30. package/lib/commands/decorators.d.ts +11 -1
  31. package/lib/commands/decorators.js +24 -0
  32. package/lib/common/shorters/channels.d.ts +3 -0
  33. package/lib/common/shorters/channels.js +3 -2
  34. package/lib/common/types/options.d.ts +2 -2
  35. package/lib/structures/GuildEmoji.d.ts +2 -2
  36. package/lib/structures/GuildEmoji.js +1 -1
  37. package/lib/structures/GuildMember.js +1 -1
  38. package/lib/structures/User.d.ts +2 -3
  39. package/lib/structures/User.js +8 -3
  40. package/lib/structures/Webhook.js +1 -1
  41. package/lib/structures/channels.d.ts +5 -0
  42. package/lib/structures/extra/BaseGuild.js +3 -3
  43. package/lib/websocket/discord/worker.d.ts +1 -1
  44. package/lib/websocket/discord/workermanager.js +3 -9
  45. package/lib/websocket/structures/timeout.js +9 -12
  46. package/package.json +1 -1
  47. package/lib/api/CDN.d.ts +0 -212
  48. package/lib/api/CDN.js +0 -228
  49. package/lib/client/http/adapters/bun.d.ts +0 -14
  50. package/lib/client/http/adapters/bun.js +0 -117
  51. package/lib/client/http/adapters/index.d.ts +0 -15
  52. package/lib/client/http/adapters/index.js +0 -27
  53. package/lib/client/http/adapters/uws.d.ts +0 -17
  54. package/lib/client/http/adapters/uws.js +0 -142
  55. package/lib/client/http/httpclient.d.ts +0 -13
  56. package/lib/client/http/httpclient.js +0 -48
  57. package/lib/common/shorters/overwrites.d.ts +0 -29
  58. package/lib/common/shorters/overwrites.js +0 -63
  59. package/lib/components/listener.d.ts +0 -11
  60. package/lib/components/listener.js +0 -17
  61. package/lib/structures/extra/BaseComponent.d.ts +0 -9
  62. package/lib/structures/extra/BaseComponent.js +0 -12
  63. package/lib/structures/extra/BaseSelectMenuComponent.d.ts +0 -9
  64. package/lib/structures/extra/BaseSelectMenuComponent.js +0 -13
@@ -1,117 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.HttpBunAdapter = void 0;
7
- const v10_1 = require("discord-api-types/v10");
8
- const magic_bytes_js_1 = __importDefault(require("magic-bytes.js"));
9
- const _1 = require(".");
10
- const api_1 = require("../../../api");
11
- const utils_1 = require("../../../api/utils/utils");
12
- const oninteractioncreate_1 = require("../../oninteractioncreate");
13
- let nacl;
14
- try {
15
- nacl = require('tweetnacl');
16
- }
17
- catch {
18
- // I always cum
19
- }
20
- class HttpBunAdapter extends _1.HttpAdapter {
21
- app;
22
- constructor(options) {
23
- super();
24
- this.client = options.client;
25
- this.debugger = options.debugger;
26
- this.logger = options.logger;
27
- if (typeof Bun === 'undefined') {
28
- throw new Error('You are not using buntime.');
29
- }
30
- if (!nacl) {
31
- throw new Error('No tweetnacl installed.');
32
- }
33
- }
34
- listen() {
35
- const self = this;
36
- this.app = Bun.serve({
37
- fetch(request) {
38
- if (new URL(request.url).pathname === '/interactions') {
39
- return self.onPacket(request);
40
- }
41
- return new Response('?');
42
- },
43
- port: 8080
44
- });
45
- this.logger.info(`Listening to port ${this.port}`);
46
- }
47
- async verifySignature(req) {
48
- const timestamp = req.headers.get('x-signature-timestamp');
49
- const ed25519 = req.headers.get('x-signature-ed25519');
50
- const body = await req.json();
51
- if (nacl.sign.detached.verify(Buffer.from(timestamp + JSON.stringify(body)), Buffer.from(ed25519, 'hex'), this.publicKeyHex)) {
52
- return body;
53
- }
54
- return;
55
- }
56
- async onPacket(req) {
57
- const rawBody = await this.verifySignature(req);
58
- if (!rawBody) {
59
- this.debugger?.debug('Invalid request/No info, returning 418 status.');
60
- // I'm a teapot
61
- return new Response('', {
62
- status: 418
63
- });
64
- }
65
- else {
66
- switch (rawBody.type) {
67
- case v10_1.InteractionType.Ping:
68
- this.debugger?.debug('Ping interaction received, responding.');
69
- return new Response(JSON.stringify({ type: v10_1.InteractionResponseType.Pong }), {
70
- headers: {
71
- 'Content-Type': 'application/json'
72
- }
73
- });
74
- default:
75
- return new Promise(resolve => {
76
- (0, oninteractioncreate_1.onInteractionCreate)(this.client, rawBody, -1, async ({ body, files }) => {
77
- let response;
78
- const headers = {};
79
- if (files) {
80
- response = new FormData();
81
- for (const [index, file] of files.entries()) {
82
- const fileKey = file.key ?? `files[${index}]`;
83
- if ((0, utils_1.isBufferLike)(file.data)) {
84
- let contentType = file.contentType;
85
- if (!contentType) {
86
- const [parsedType] = (0, magic_bytes_js_1.default)(file.data);
87
- if (parsedType) {
88
- contentType =
89
- api_1.OverwrittenMimeTypes[parsedType.mime] ??
90
- parsedType.mime ??
91
- 'application/octet-stream';
92
- }
93
- }
94
- response.append(fileKey, new Blob([file.data], { type: contentType }), file.name);
95
- }
96
- else {
97
- response.append(fileKey, new Blob([`${file.data}`], { type: file.contentType }), file.name);
98
- }
99
- }
100
- if (body) {
101
- response.append('payload_json', JSON.stringify(body));
102
- }
103
- }
104
- else {
105
- response = body ?? {};
106
- headers['Content-Type'] = 'application/json';
107
- }
108
- resolve(new Response(JSON.stringify(response), {
109
- headers
110
- }));
111
- });
112
- });
113
- }
114
- }
115
- }
116
- }
117
- exports.HttpBunAdapter = HttpBunAdapter;
@@ -1,15 +0,0 @@
1
- /// <reference types="node" />
2
- import { Logger } from '../../../common';
3
- import { HttpClient } from '../httpclient';
4
- export * from './bun';
5
- export * from './uws';
6
- export declare abstract class HttpAdapter {
7
- port: number;
8
- client: HttpClient;
9
- debugger?: Logger;
10
- logger: Logger;
11
- publicKeyHex: Buffer;
12
- abstract onPacket(...args: any[]): any;
13
- abstract listen(): any;
14
- abstract verifySignature(...args: any[]): any;
15
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.HttpAdapter = void 0;
18
- __exportStar(require("./bun"), exports);
19
- __exportStar(require("./uws"), exports);
20
- class HttpAdapter {
21
- port;
22
- client;
23
- debugger;
24
- logger;
25
- publicKeyHex;
26
- }
27
- exports.HttpAdapter = HttpAdapter;
@@ -1,17 +0,0 @@
1
- import { APIInteraction } from "discord-api-types/v10";
2
- import { HttpRequest, HttpResponse } from "uWebSockets.js";
3
- import { HttpAdapter } from ".";
4
- import { Logger } from "../../../common";
5
- import { HttpClient } from "../httpclient";
6
- export declare class HttpUWSAdapter extends HttpAdapter {
7
- app: ReturnType<typeof import('uWebSockets.js').App>;
8
- constructor(options: {
9
- client: HttpClient;
10
- debugger?: Logger;
11
- logger: Logger;
12
- });
13
- listen(): void;
14
- verifySignature(res: HttpResponse, req: HttpRequest): Promise<APIInteraction | undefined>;
15
- onPacket(res: HttpResponse, req: HttpRequest): Promise<void>;
16
- protected readJson<T extends Record<string, any>>(res: HttpResponse): Promise<T>;
17
- }
@@ -1,142 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.HttpUWSAdapter = void 0;
7
- const v10_1 = require("discord-api-types/v10");
8
- const magic_bytes_js_1 = __importDefault(require("magic-bytes.js"));
9
- const _1 = require(".");
10
- const api_1 = require("../../../api");
11
- const utils_1 = require("../../../api/utils/utils");
12
- const oninteractioncreate_1 = require("../../oninteractioncreate");
13
- let UWS;
14
- let nacl;
15
- try {
16
- UWS = require('uWebSockets.js');
17
- }
18
- catch {
19
- // easter egg #1
20
- }
21
- try {
22
- nacl = require('tweetnacl');
23
- }
24
- catch {
25
- // I always cum
26
- }
27
- class HttpUWSAdapter extends _1.HttpAdapter {
28
- app;
29
- constructor(options) {
30
- super();
31
- this.client = options.client;
32
- this.debugger = options.debugger;
33
- this.logger = options.logger;
34
- if (!UWS) {
35
- throw new Error('No uws installed.');
36
- }
37
- if (!nacl) {
38
- throw new Error('No tweetnacl installed.');
39
- }
40
- }
41
- listen() {
42
- this.app = UWS.App();
43
- this.app.post('/interactions', (res, req) => {
44
- return this.onPacket(res, req);
45
- });
46
- this.app.listen(this.port, () => {
47
- this.logger.info(`Listening to port ${this.port}`);
48
- });
49
- }
50
- async verifySignature(res, req) {
51
- const timestamp = req.getHeader('x-signature-timestamp');
52
- const ed25519 = req.getHeader('x-signature-ed25519');
53
- const body = await this.readJson(res);
54
- if (nacl.sign.detached.verify(Buffer.from(timestamp + JSON.stringify(body)), Buffer.from(ed25519, 'hex'), this.publicKeyHex)) {
55
- return body;
56
- }
57
- return;
58
- }
59
- async onPacket(res, req) {
60
- const rawBody = await this.verifySignature(res, req);
61
- if (!rawBody) {
62
- this.debugger?.debug('Invalid request/No info, returning 418 status.');
63
- // I'm a teapot
64
- res.writeStatus('418').end();
65
- }
66
- else {
67
- switch (rawBody.type) {
68
- case v10_1.InteractionType.Ping:
69
- this.debugger?.debug('Ping interaction received, responding.');
70
- res
71
- .writeHeader('Content-Type', 'application/json')
72
- .end(JSON.stringify({ type: v10_1.InteractionResponseType.Pong }));
73
- break;
74
- default:
75
- await (0, oninteractioncreate_1.onInteractionCreate)(this.client, rawBody, -1, async ({ body, files }) => {
76
- res.cork(() => {
77
- let response;
78
- const headers = {};
79
- if (files) {
80
- response = new FormData();
81
- for (const [index, file] of files.entries()) {
82
- const fileKey = file.key ?? `files[${index}]`;
83
- if ((0, utils_1.isBufferLike)(file.data)) {
84
- let contentType = file.contentType;
85
- if (!contentType) {
86
- const [parsedType] = (0, magic_bytes_js_1.default)(file.data);
87
- if (parsedType) {
88
- contentType =
89
- api_1.OverwrittenMimeTypes[parsedType.mime] ??
90
- parsedType.mime ??
91
- 'application/octet-stream';
92
- }
93
- }
94
- response.append(fileKey, new Blob([file.data], { type: contentType }), file.name);
95
- }
96
- else {
97
- response.append(fileKey, new Blob([`${file.data}`], { type: file.contentType }), file.name);
98
- }
99
- }
100
- if (body) {
101
- response.append('payload_json', JSON.stringify(body));
102
- }
103
- }
104
- else {
105
- response = body ?? {};
106
- headers['Content-Type'] = 'application/json';
107
- }
108
- for (const i in headers) {
109
- res.writeHeader(i, headers[i]);
110
- }
111
- return res.end(JSON.stringify(response));
112
- });
113
- });
114
- break;
115
- }
116
- }
117
- }
118
- readJson(res) {
119
- return new Promise((cb, err) => {
120
- let buffer;
121
- res.onData((ab, isLast) => {
122
- const chunk = Buffer.from(ab);
123
- if (isLast) {
124
- let json;
125
- try {
126
- json = JSON.parse(buffer ? Buffer.concat([buffer, chunk]).toString() : chunk.toString());
127
- }
128
- catch (e) {
129
- res.close();
130
- return;
131
- }
132
- cb(json);
133
- }
134
- else {
135
- buffer = Buffer.concat(buffer ? [buffer, chunk] : [chunk]);
136
- }
137
- });
138
- res.onAborted(err);
139
- });
140
- }
141
- }
142
- exports.HttpUWSAdapter = HttpUWSAdapter;
@@ -1,13 +0,0 @@
1
- import type { DeepPartial } from '../../common';
2
- import type { BaseClientOptions, StartOptions } from '../base';
3
- import { BaseClient } from '../base';
4
- import { HttpAdapter } from './adapters';
5
- export declare class HttpClient extends BaseClient {
6
- adapter: HttpAdapter;
7
- constructor(options?: BaseClientOptions);
8
- protected execute(options?: {
9
- publicKey?: string;
10
- port?: number;
11
- }): Promise<any>;
12
- start(options?: DeepPartial<Omit<StartOptions, 'connection'>>): Promise<any>;
13
- }
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HttpClient = void 0;
4
- const base_1 = require("../base");
5
- const adapters_1 = require("./adapters");
6
- class HttpClient extends base_1.BaseClient {
7
- adapter;
8
- constructor(options) {
9
- super(options);
10
- if (typeof Bun !== 'undefined') {
11
- this.adapter = new adapters_1.HttpBunAdapter({
12
- client: this,
13
- logger: this.logger,
14
- debugger: this.debugger
15
- });
16
- }
17
- else {
18
- this.adapter = new adapters_1.HttpUWSAdapter({
19
- client: this,
20
- logger: this.logger,
21
- debugger: this.debugger
22
- });
23
- }
24
- }
25
- async execute(options) {
26
- await super.execute();
27
- const { publicKey: publicKeyRC, port: portRC, applicationId: applicationIdRC, } = await this.getRC();
28
- const publicKey = options?.publicKey ?? publicKeyRC;
29
- const port = options?.port ?? portRC;
30
- if (!publicKey) {
31
- throw new Error('Expected a publicKey, check your config file');
32
- }
33
- if (!port) {
34
- throw new Error('Expected a port, check your config file');
35
- }
36
- if (applicationIdRC) {
37
- this.applicationId = applicationIdRC;
38
- }
39
- this.adapter.port = port;
40
- this.adapter.publicKeyHex = Buffer.from(publicKey, 'hex');
41
- return this.adapter.listen();
42
- }
43
- async start(options = {}) {
44
- await super.start(options);
45
- return this.execute(options.httpConnection);
46
- }
47
- }
48
- exports.HttpClient = HttpClient;
@@ -1,29 +0,0 @@
1
- import type { GuildMember, GuildRole } from '../../structures';
2
- import { PermissionsBitField } from '../../structures/extra/Permissions';
3
- import { BaseShorter } from './base';
4
- export declare class OverwritesShorter extends BaseShorter {
5
- get overwrites(): {
6
- memberPermissions: (channelId: string, member: GuildMember, checkAdmin?: boolean) => Promise<PermissionsBitField>;
7
- overwritesFor: (channelId: string, member: GuildMember) => Promise<{
8
- everyone: {
9
- type: number;
10
- id: string;
11
- deny: PermissionsBitField;
12
- allow: PermissionsBitField;
13
- } | undefined;
14
- roles: {
15
- type: number;
16
- id: string;
17
- deny: PermissionsBitField;
18
- allow: PermissionsBitField;
19
- }[];
20
- member: {
21
- type: number;
22
- id: string;
23
- deny: PermissionsBitField;
24
- allow: PermissionsBitField;
25
- } | undefined;
26
- }>;
27
- rolePermissions: (channelId: string, role: GuildRole, checkAdmin?: boolean) => Promise<PermissionsBitField>;
28
- };
29
- }
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverwritesShorter = void 0;
4
- const v10_1 = require("discord-api-types/v10");
5
- const Permissions_1 = require("../../structures/extra/Permissions");
6
- const base_1 = require("./base");
7
- class OverwritesShorter extends base_1.BaseShorter {
8
- get overwrites() {
9
- return {
10
- memberPermissions: async (channelId, member, checkAdmin = true) => {
11
- const permissions = await member.fetchPermissions();
12
- if (checkAdmin && permissions.has(v10_1.PermissionFlagsBits.Administrator)) {
13
- return new Permissions_1.PermissionsBitField(Permissions_1.PermissionsBitField.All);
14
- }
15
- const overwrites = await this.overwrites.overwritesFor(channelId, member);
16
- permissions.remove(overwrites.everyone?.deny.bits ?? 0n);
17
- permissions.add(overwrites.everyone?.allow.bits ?? 0n);
18
- permissions.remove(overwrites.roles.length > 0 ? overwrites.roles.map(role => role.deny.bits) : 0n);
19
- permissions.add(overwrites.roles.length > 0 ? overwrites.roles.map(role => role.allow.bits) : 0n);
20
- permissions.remove(overwrites.member?.deny.bits ?? 0n);
21
- permissions.add(overwrites.member?.allow.bits ?? 0n);
22
- return permissions;
23
- },
24
- overwritesFor: async (channelId, member) => {
25
- const roleOverwrites = [];
26
- let memberOverwrites;
27
- let everyoneOverwrites;
28
- const channelOverwrites = await this.client.cache.overwrites?.get(channelId) ?? [];
29
- for (const overwrite of channelOverwrites) {
30
- if (overwrite.id === member.guildId) {
31
- everyoneOverwrites = overwrite;
32
- }
33
- else if (member.roles.values.includes(overwrite.id)) {
34
- roleOverwrites.push(overwrite);
35
- }
36
- else if (overwrite.id === member.id) {
37
- memberOverwrites = overwrite;
38
- }
39
- }
40
- return {
41
- everyone: everyoneOverwrites,
42
- roles: roleOverwrites,
43
- member: memberOverwrites,
44
- };
45
- },
46
- rolePermissions: async (channelId, role, checkAdmin = true) => {
47
- if (checkAdmin && role.permissions.has(v10_1.PermissionFlagsBits.Administrator)) {
48
- return new Permissions_1.PermissionsBitField(Permissions_1.PermissionsBitField.All);
49
- }
50
- const channelOverwrites = await this.client.cache.overwrites?.get(channelId) ?? [];
51
- const everyoneOverwrites = channelOverwrites.find(x => x.id === role.guildId);
52
- const roleOverwrites = channelOverwrites.find(x => x.id === role.id);
53
- const permissions = new Permissions_1.PermissionsBitField(role.permissions.bits);
54
- permissions.remove(everyoneOverwrites?.deny.bits ?? 0n);
55
- permissions.add(everyoneOverwrites?.allow.bits ?? 0n);
56
- permissions.remove(roleOverwrites?.deny.bits ?? 0n);
57
- permissions.add(roleOverwrites?.allow.bits ?? 0n);
58
- return permissions;
59
- },
60
- };
61
- }
62
- }
63
- exports.OverwritesShorter = OverwritesShorter;
@@ -1,11 +0,0 @@
1
- /// <reference types="node" />
2
- import type { ActionRow, BuilderComponents, ListenerOptions } from '../builders';
3
- import type { RestOrArray } from '../common';
4
- export declare class ComponentsListener<T extends BuilderComponents> {
5
- readonly options: ListenerOptions;
6
- components: ActionRow<T>[];
7
- idle?: NodeJS.Timeout;
8
- timeout?: NodeJS.Timeout;
9
- constructor(options?: ListenerOptions);
10
- addRows(...row: RestOrArray<ActionRow<T>>): this;
11
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ComponentsListener = void 0;
4
- class ComponentsListener {
5
- options;
6
- components = [];
7
- idle;
8
- timeout;
9
- constructor(options = {}) {
10
- this.options = options;
11
- }
12
- addRows(...row) {
13
- this.components = this.components.concat(row.flat());
14
- return this;
15
- }
16
- }
17
- exports.ComponentsListener = ComponentsListener;
@@ -1,9 +0,0 @@
1
- import type { APIBaseComponent, ComponentType } from '../../common';
2
- export interface BaseComponent<T extends ComponentType> extends APIBaseComponent<T> {
3
- }
4
- export declare class BaseComponent<T extends ComponentType> {
5
- constructor(data: APIBaseComponent<T>);
6
- toJSON(): {
7
- type: T;
8
- };
9
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseComponent = void 0;
4
- class BaseComponent {
5
- constructor(data) {
6
- Object.assign(this, data);
7
- }
8
- toJSON() {
9
- return { type: this.type };
10
- }
11
- }
12
- exports.BaseComponent = BaseComponent;
@@ -1,9 +0,0 @@
1
- import type { APIBaseSelectMenuComponent, ComponentType, Identify, ObjectToLower } from '../../common';
2
- import { BaseComponent } from './BaseComponent';
3
- export type APISelectMenuComponentTypes = ComponentType.ChannelSelect | ComponentType.MentionableSelect | ComponentType.RoleSelect | ComponentType.StringSelect | ComponentType.UserSelect;
4
- export interface BaseSelectMenuComponent<T extends APISelectMenuComponentTypes> extends BaseComponent<T>, ObjectToLower<Identify<Omit<APIBaseSelectMenuComponent<APISelectMenuComponentTypes>, 'type'>>> {
5
- }
6
- export declare class BaseSelectMenuComponent<T extends APISelectMenuComponentTypes> extends BaseComponent<T> {
7
- constructor(data: APIBaseSelectMenuComponent<T>);
8
- toJSON(): this;
9
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseSelectMenuComponent = void 0;
4
- const BaseComponent_1 = require("./BaseComponent");
5
- class BaseSelectMenuComponent extends BaseComponent_1.BaseComponent {
6
- constructor(data) {
7
- super(data);
8
- }
9
- toJSON() {
10
- return { ...this };
11
- }
12
- }
13
- exports.BaseSelectMenuComponent = BaseSelectMenuComponent;